ffi-tk 2010.08.23 → 2018.02.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +2 -0
  3. data/.rubocop.yml +7 -0
  4. data/.rubocop_todo.yml +371 -0
  5. data/AUTHORS +4 -2
  6. data/CHANGELOG +302 -262
  7. data/Gemfile +10 -0
  8. data/Gemfile.lock +45 -0
  9. data/MANIFEST +6 -6
  10. data/README.md +1 -1
  11. data/Rakefile +12 -11
  12. data/bin/rwish +6 -5
  13. data/example/choose_color.rb +5 -4
  14. data/example/choose_directory.rb +5 -4
  15. data/example/dialog.rb +9 -8
  16. data/example/hello.rb +2 -1
  17. data/example/message_box.rb +8 -5
  18. data/example/option_menu.rb +4 -3
  19. data/example/popup.rb +4 -3
  20. data/example/set_palette.rb +5 -4
  21. data/example/text.rb +30 -30
  22. data/example/tile/kroc_demo_small.rb +51 -55
  23. data/example/tile/kroc_rb_demo.rb +74 -83
  24. data/example/tile/notebook.rb +6 -9
  25. data/example/tile/theme_hello.rb +6 -8
  26. data/example/tile/themes.rb +4 -2
  27. data/example/tile/treeview.rb +16 -14
  28. data/example/tkgo.rb +120 -88
  29. data/example/various.rb +8 -7
  30. data/example/wait.rb +3 -2
  31. data/ffi-tk.gemspec +21 -20
  32. data/gemset.nix +134 -0
  33. data/lib/ffi-tk.rb +10 -11
  34. data/lib/ffi-tk/command.rb +3 -2
  35. data/lib/ffi-tk/command/after.rb +8 -7
  36. data/lib/ffi-tk/command/bell.rb +2 -1
  37. data/lib/ffi-tk/command/bind.rb +1 -0
  38. data/lib/ffi-tk/command/bindtags.rb +1 -0
  39. data/lib/ffi-tk/command/cget.rb +31 -24
  40. data/lib/ffi-tk/command/choose_color.rb +2 -1
  41. data/lib/ffi-tk/command/choose_directory.rb +2 -1
  42. data/lib/ffi-tk/command/clipboard.rb +6 -5
  43. data/lib/ffi-tk/command/configure.rb +23 -21
  44. data/lib/ffi-tk/command/destroy.rb +2 -1
  45. data/lib/ffi-tk/command/dialog.rb +4 -3
  46. data/lib/ffi-tk/command/event.rb +1 -0
  47. data/lib/ffi-tk/command/focus.rb +2 -1
  48. data/lib/ffi-tk/command/font.rb +12 -9
  49. data/lib/ffi-tk/command/get_open_file.rb +1 -0
  50. data/lib/ffi-tk/command/get_save_file.rb +1 -0
  51. data/lib/ffi-tk/command/grab.rb +2 -1
  52. data/lib/ffi-tk/command/grid.rb +7 -6
  53. data/lib/ffi-tk/command/image.rb +5 -4
  54. data/lib/ffi-tk/command/lower.rb +1 -0
  55. data/lib/ffi-tk/command/message_box.rb +2 -1
  56. data/lib/ffi-tk/command/option_menu.rb +3 -2
  57. data/lib/ffi-tk/command/pack.rb +5 -4
  58. data/lib/ffi-tk/command/place.rb +5 -4
  59. data/lib/ffi-tk/command/popup.rb +2 -1
  60. data/lib/ffi-tk/command/raise.rb +1 -0
  61. data/lib/ffi-tk/command/scrollable.rb +7 -10
  62. data/lib/ffi-tk/command/selection.rb +4 -3
  63. data/lib/ffi-tk/command/set_palette.rb +2 -1
  64. data/lib/ffi-tk/command/tk_cmd.rb +1 -0
  65. data/lib/ffi-tk/command/vars.rb +2 -1
  66. data/lib/ffi-tk/command/wait.rb +2 -1
  67. data/lib/ffi-tk/command/winfo.rb +9 -8
  68. data/lib/ffi-tk/command/wm.rb +11 -10
  69. data/lib/ffi-tk/core_extensions.rb +5 -4
  70. data/lib/ffi-tk/event/data.rb +32 -31
  71. data/lib/ffi-tk/event/handler.rb +4 -3
  72. data/lib/ffi-tk/ffi/tcl.rb +42 -31
  73. data/lib/ffi-tk/ffi/tcl/cmd_proc.rb +2 -1
  74. data/lib/ffi-tk/ffi/tcl/eval_result.rb +47 -8
  75. data/lib/ffi-tk/ffi/tcl/interp.rb +7 -4
  76. data/lib/ffi-tk/ffi/tcl/obj.rb +7 -32
  77. data/lib/ffi-tk/ffi/tcl/time.rb +2 -1
  78. data/lib/ffi-tk/ffi/tk.rb +8 -7
  79. data/lib/ffi-tk/geometry.rb +20 -17
  80. data/lib/ffi-tk/thread_sender.rb +1 -0
  81. data/lib/ffi-tk/tk.rb +23 -23
  82. data/lib/ffi-tk/variable.rb +25 -3
  83. data/lib/ffi-tk/version.rb +1 -1
  84. data/lib/ffi-tk/widget.rb +2 -1
  85. data/lib/ffi-tk/widget/button.rb +4 -1
  86. data/lib/ffi-tk/widget/canvas.rb +18 -15
  87. data/lib/ffi-tk/widget/canvas/arc.rb +2 -1
  88. data/lib/ffi-tk/widget/canvas/bitmap.rb +2 -1
  89. data/lib/ffi-tk/widget/canvas/image.rb +2 -1
  90. data/lib/ffi-tk/widget/canvas/item.rb +4 -4
  91. data/lib/ffi-tk/widget/canvas/line.rb +2 -1
  92. data/lib/ffi-tk/widget/canvas/oval.rb +2 -1
  93. data/lib/ffi-tk/widget/canvas/polygon.rb +2 -1
  94. data/lib/ffi-tk/widget/canvas/rectangle.rb +2 -1
  95. data/lib/ffi-tk/widget/canvas/text.rb +2 -1
  96. data/lib/ffi-tk/widget/canvas/window.rb +2 -1
  97. data/lib/ffi-tk/widget/checkbutton.rb +4 -1
  98. data/lib/ffi-tk/widget/entry.rb +4 -1
  99. data/lib/ffi-tk/widget/frame.rb +4 -1
  100. data/lib/ffi-tk/widget/label.rb +4 -1
  101. data/lib/ffi-tk/widget/labelframe.rb +4 -1
  102. data/lib/ffi-tk/widget/listbox.rb +5 -2
  103. data/lib/ffi-tk/widget/menu.rb +4 -1
  104. data/lib/ffi-tk/widget/menubutton.rb +4 -1
  105. data/lib/ffi-tk/widget/message.rb +4 -1
  106. data/lib/ffi-tk/widget/panedwindow.rb +5 -2
  107. data/lib/ffi-tk/widget/radiobutton.rb +4 -1
  108. data/lib/ffi-tk/widget/root.rb +1 -0
  109. data/lib/ffi-tk/widget/scale.rb +4 -1
  110. data/lib/ffi-tk/widget/scrollbar.rb +4 -1
  111. data/lib/ffi-tk/widget/spinbox.rb +4 -1
  112. data/lib/ffi-tk/widget/text.rb +20 -16
  113. data/lib/ffi-tk/widget/text/peer.rb +1 -0
  114. data/lib/ffi-tk/widget/tile.rb +2 -1
  115. data/lib/ffi-tk/widget/tile/button.rb +4 -1
  116. data/lib/ffi-tk/widget/tile/checkbutton.rb +4 -1
  117. data/lib/ffi-tk/widget/tile/combobox.rb +5 -2
  118. data/lib/ffi-tk/widget/tile/entry.rb +4 -1
  119. data/lib/ffi-tk/widget/tile/frame.rb +4 -1
  120. data/lib/ffi-tk/widget/tile/label.rb +4 -2
  121. data/lib/ffi-tk/widget/tile/labelframe.rb +4 -1
  122. data/lib/ffi-tk/widget/tile/menubutton.rb +4 -1
  123. data/lib/ffi-tk/widget/tile/notebook.rb +4 -1
  124. data/lib/ffi-tk/widget/tile/panedwindow.rb +4 -1
  125. data/lib/ffi-tk/widget/tile/progressbar.rb +4 -2
  126. data/lib/ffi-tk/widget/tile/radiobutton.rb +4 -1
  127. data/lib/ffi-tk/widget/tile/scale.rb +4 -1
  128. data/lib/ffi-tk/widget/tile/scrollbar.rb +7 -4
  129. data/lib/ffi-tk/widget/tile/separator.rb +4 -1
  130. data/lib/ffi-tk/widget/tile/sizegrip.rb +4 -1
  131. data/lib/ffi-tk/widget/tile/style.rb +16 -17
  132. data/lib/ffi-tk/widget/tile/treeview.rb +11 -5
  133. data/lib/ffi-tk/widget/toplevel.rb +4 -1
  134. data/shell.nix +19 -0
  135. data/spec/ffi-tk/command/bind.rb +5 -4
  136. data/spec/ffi-tk/command/bindtags.rb +2 -1
  137. data/spec/ffi-tk/command/clipboard.rb +4 -3
  138. data/spec/ffi-tk/command/font.rb +20 -19
  139. data/spec/ffi-tk/command/image.rb +13 -5
  140. data/spec/ffi-tk/command/pack.rb +3 -2
  141. data/spec/ffi-tk/command/place.rb +4 -3
  142. data/spec/ffi-tk/command/selection.rb +2 -1
  143. data/spec/ffi-tk/command/vars.rb +3 -2
  144. data/spec/ffi-tk/command/winfo.rb +10 -10
  145. data/spec/ffi-tk/command/wm.rb +23 -22
  146. data/spec/ffi-tk/event.rb +23 -21
  147. data/spec/ffi-tk/tile/button.rb +8 -8
  148. data/spec/ffi-tk/tile/checkbutton.rb +1 -1
  149. data/spec/ffi-tk/tile/combobox.rb +11 -12
  150. data/spec/ffi-tk/tile/entry.rb +18 -19
  151. data/spec/ffi-tk/tile/frame.rb +13 -13
  152. data/spec/ffi-tk/tile/label.rb +2 -2
  153. data/spec/ffi-tk/tile/labelframe.rb +1 -1
  154. data/spec/ffi-tk/tile/menubutton.rb +1 -1
  155. data/spec/ffi-tk/tile/notebook.rb +22 -20
  156. data/spec/ffi-tk/tile/panedwindow.rb +1 -1
  157. data/spec/ffi-tk/tile/progressbar.rb +1 -1
  158. data/spec/ffi-tk/tile/radiobutton.rb +1 -1
  159. data/spec/ffi-tk/tile/scale.rb +1 -1
  160. data/spec/ffi-tk/tile/scrollbar.rb +1 -16
  161. data/spec/ffi-tk/tile/separator.rb +2 -2
  162. data/spec/ffi-tk/tile/sizegrip.rb +1 -1
  163. data/spec/ffi-tk/tile/style.rb +63 -65
  164. data/spec/ffi-tk/tile/treeview.rb +11 -10
  165. data/spec/ffi-tk/variable.rb +5 -4
  166. data/spec/ffi-tk/widget/button.rb +3 -2
  167. data/spec/ffi-tk/widget/canvas.rb +59 -58
  168. data/spec/ffi-tk/widget/checkbutton.rb +6 -5
  169. data/spec/ffi-tk/widget/entry.rb +112 -103
  170. data/spec/ffi-tk/widget/frame.rb +2 -1
  171. data/spec/ffi-tk/widget/label.rb +2 -1
  172. data/spec/ffi-tk/widget/labelframe.rb +1 -0
  173. data/spec/ffi-tk/widget/listbox.rb +5 -4
  174. data/spec/ffi-tk/widget/menu.rb +3 -2
  175. data/spec/ffi-tk/widget/menubutton.rb +1 -0
  176. data/spec/ffi-tk/widget/message.rb +1 -0
  177. data/spec/ffi-tk/widget/panedwindow.rb +1 -0
  178. data/spec/ffi-tk/widget/radiobutton.rb +1 -0
  179. data/spec/ffi-tk/widget/root.rb +2 -1
  180. data/spec/ffi-tk/widget/scale.rb +1 -0
  181. data/spec/ffi-tk/widget/scrollbar.rb +1 -0
  182. data/spec/ffi-tk/widget/spinbox.rb +1 -0
  183. data/spec/ffi-tk/widget/text.rb +63 -54
  184. data/spec/ffi-tk/widget/toplevel.rb +1 -0
  185. data/spec/helper.rb +3 -1
  186. data/tasks/authors.rake +3 -2
  187. data/tasks/bacon.rake +13 -11
  188. data/tasks/changelog.rake +1 -0
  189. data/tasks/gem.rake +13 -11
  190. data/tasks/manifest.rake +2 -1
  191. data/tasks/release.rake +11 -32
  192. data/tasks/reversion.rake +2 -1
  193. metadata +52 -75
  194. data/spec/ffi-tk/command/grid.rb +0 -6
  195. data/tasks/gem_setup.rake +0 -113
  196. data/tasks/grancher.rake +0 -12
  197. data/tasks/rcov.rake +0 -17
  198. data/tasks/setup.rake +0 -12
  199. data/tasks/ycov.rake +0 -84
data/Gemfile ADDED
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+ source 'https://rubygems.org' do
3
+ gem 'ffi'
4
+ gem 'bacon'
5
+ gem 'pry'
6
+ gem 'ast'
7
+ gem 'bundler'
8
+ gem 'rubocop', require: false
9
+ gem 'simplecov', require: false
10
+ end
@@ -0,0 +1,45 @@
1
+ GEM
2
+ remote: https://rubygems.org/
3
+ specs:
4
+ ast (2.3.0)
5
+ bacon (1.2.0)
6
+ coderay (1.1.2)
7
+ docile (1.1.5)
8
+ ffi (1.9.14)
9
+ json (2.0.2)
10
+ method_source (0.9.0)
11
+ parser (2.3.3.1)
12
+ ast (~> 2.2)
13
+ powerpack (0.1.1)
14
+ pry (0.11.3)
15
+ coderay (~> 1.1.0)
16
+ method_source (~> 0.9.0)
17
+ rainbow (2.2.1)
18
+ rubocop (0.46.0)
19
+ parser (>= 2.3.1.1, < 3.0)
20
+ powerpack (~> 0.1)
21
+ rainbow (>= 1.99.1, < 3.0)
22
+ ruby-progressbar (~> 1.7)
23
+ unicode-display_width (~> 1.0, >= 1.0.1)
24
+ ruby-progressbar (1.8.1)
25
+ simplecov (0.12.0)
26
+ docile (~> 1.1.0)
27
+ json (>= 1.8, < 3)
28
+ simplecov-html (~> 0.10.0)
29
+ simplecov-html (0.10.0)
30
+ unicode-display_width (1.1.2)
31
+
32
+ PLATFORMS
33
+ ruby
34
+
35
+ DEPENDENCIES
36
+ ast!
37
+ bacon!
38
+ bundler!
39
+ ffi!
40
+ pry!
41
+ rubocop!
42
+ simplecov!
43
+
44
+ BUNDLED WITH
45
+ 1.14.6
data/MANIFEST CHANGED
@@ -1,6 +1,10 @@
1
1
  .gitignore
2
+ .rubocop.yml
3
+ .rubocop_todo.yml
2
4
  AUTHORS
3
5
  CHANGELOG
6
+ Gemfile
7
+ Gemfile.lock
4
8
  MANIFEST
5
9
  README.md
6
10
  Rakefile
@@ -27,6 +31,7 @@ example/tkgo.rb
27
31
  example/various.rb
28
32
  example/wait.rb
29
33
  ffi-tk.gemspec
34
+ gemset.nix
30
35
  lib/ffi-tk.rb
31
36
  lib/ffi-tk/command.rb
32
37
  lib/ffi-tk/command/after.rb
@@ -128,11 +133,11 @@ lib/ffi-tk/widget/tile/sizegrip.rb
128
133
  lib/ffi-tk/widget/tile/style.rb
129
134
  lib/ffi-tk/widget/tile/treeview.rb
130
135
  lib/ffi-tk/widget/toplevel.rb
136
+ shell.nix
131
137
  spec/ffi-tk/command/bind.rb
132
138
  spec/ffi-tk/command/bindtags.rb
133
139
  spec/ffi-tk/command/clipboard.rb
134
140
  spec/ffi-tk/command/font.rb
135
- spec/ffi-tk/command/grid.rb
136
141
  spec/ffi-tk/command/image.rb
137
142
  spec/ffi-tk/command/pack.rb
138
143
  spec/ffi-tk/command/place.rb
@@ -184,11 +189,6 @@ tasks/authors.rake
184
189
  tasks/bacon.rake
185
190
  tasks/changelog.rake
186
191
  tasks/gem.rake
187
- tasks/gem_setup.rake
188
- tasks/grancher.rake
189
192
  tasks/manifest.rake
190
- tasks/rcov.rake
191
193
  tasks/release.rake
192
194
  tasks/reversion.rake
193
- tasks/setup.rake
194
- tasks/ycov.rake
data/README.md CHANGED
@@ -31,7 +31,7 @@ Ruby-FFI ships with JRuby and Rubinius, and is available as a gem for MRI.
31
31
  Tk.init
32
32
 
33
33
  Tk::Button.new('.', text: 'Press me'){
34
- Tk::MessageBox.new(message: 'Hello, World!')
34
+ Tk.message_box(message: 'Hello, World!')
35
35
  }.pack
36
36
 
37
37
  Tk.mainloop
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
+ # frozen_string_literal: true
1
2
  require 'rake'
2
3
  require 'rake/clean'
3
- require 'rake/gempackagetask'
4
4
  require 'time'
5
5
  require 'date'
6
6
 
@@ -10,19 +10,20 @@ PROJECT_README = 'README.md'
10
10
  PROJECT_VERSION = (ENV['VERSION'] || Date.today.strftime('%Y.%m.%d')).dup
11
11
 
12
12
  DEPENDENCIES = {
13
- 'ffi' => {:version => '= 0.6.3'},
14
- }
13
+ 'ffi' => { version: '~> 1.9' }
14
+ }.freeze
15
15
 
16
16
  DEVELOPMENT_DEPENDENCIES = {
17
- 'bacon' => {:version => '>= 1.1.0'},
18
- }
17
+ 'bacon' => { version: '~> 1.2' }
18
+ }.freeze
19
19
 
20
- GEMSPEC = Gem::Specification.new{|s|
20
+ GEMSPEC = Gem::Specification.new do |s|
21
21
  s.name = 'ffi-tk'
22
22
  s.author = "Michael 'manveru' Fellinger"
23
- s.summary = "Pure Ruby FFI wrapper for the Tk GUI toolkit."
24
- s.description = "Pure Ruby FFI wrapper for the Tk GUI toolkit."
23
+ s.summary = 'Pure Ruby FFI wrapper for the Tk GUI toolkit.'
24
+ s.description = 'Comfortably talk with Tcl/Tk using FFI.'
25
25
  s.email = 'm.fellinger@gmail.com'
26
+ s.licenses = ['MIT']
26
27
  s.homepage = 'http://github.com/manveru/ffi-tk'
27
28
  s.platform = Gem::Platform::RUBY
28
29
  s.version = PROJECT_VERSION
@@ -30,7 +31,7 @@ GEMSPEC = Gem::Specification.new{|s|
30
31
  s.has_rdoc = true
31
32
  s.require_path = 'lib'
32
33
  s.required_rubygems_version = '>= 1.3.3'
33
- }
34
+ end
34
35
 
35
36
  DEPENDENCIES.each do |name, options|
36
37
  GEMSPEC.add_dependency(name, options[:version])
@@ -40,8 +41,8 @@ DEVELOPMENT_DEPENDENCIES.each do |name, options|
40
41
  GEMSPEC.add_development_dependency(name, options[:version])
41
42
  end
42
43
 
43
- Dir['tasks/*.rake'].each{|f| import(f) }
44
+ Dir['tasks/*.rake'].each { |f| import(f) }
44
45
 
45
- task :default => [:bacon]
46
+ task default: [:bacon]
46
47
 
47
48
  CLEAN.include('')
data/bin/rwish CHANGED
@@ -1,10 +1,11 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
- if File.symlink?(__FILE__)
4
- lib = File.expand_path('../../lib/ffi-tk', File.readlink(__FILE__))
5
- else
6
- lib = File.expand_path('../../lib/ffi-tk', __FILE__)
7
- end
4
+ lib = if File.symlink?(__FILE__)
5
+ File.expand_path('../../lib/ffi-tk', File.readlink(__FILE__))
6
+ else
7
+ File.expand_path('../../lib/ffi-tk', __FILE__)
8
+ end
8
9
 
9
10
  require lib
10
11
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'ffi-tk'
2
3
 
3
4
  Tk.init
@@ -5,7 +6,7 @@ Tk.init
5
6
  label = Tk::Label.new(Tk.root, text: 'Press any key to open the dialog')
6
7
  label.pack
7
8
 
8
- Tk.root.bind('<Key>'){
9
+ Tk.root.bind('<Key>') do
9
10
  dir = Tk.choose_color(initialcolor: 'grey', title: 'Choose a color')
10
11
 
11
12
  label.configure text: 'Press any key to close the window'
@@ -16,7 +17,7 @@ Tk.root.bind('<Key>'){
16
17
  Tk::Label.new(Tk.root, text: 'No color selected').pack
17
18
  end
18
19
 
19
- Tk.root.bind('<Key>'){ exit }
20
- }
20
+ Tk.root.bind('<Key>') { exit }
21
+ end
21
22
 
22
- Tk.mainloop
23
+ Tk.mainloop
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'ffi-tk'
2
3
 
3
4
  Tk.init
@@ -5,7 +6,7 @@ Tk.init
5
6
  label = Tk::Label.new(Tk.root, text: 'Press any key to open the dialog')
6
7
  label.pack
7
8
 
8
- Tk.root.bind('<Key>'){
9
+ Tk.root.bind('<Key>') do
9
10
  dir = Tk.choose_directory(initialdir: '~', title: 'Choose a directory')
10
11
 
11
12
  label.configure text: 'Press any key to close the window'
@@ -16,7 +17,7 @@ Tk.root.bind('<Key>'){
16
17
  Tk::Label.new(Tk.root, text: 'No directory selected').pack
17
18
  end
18
19
 
19
- Tk.root.bind('<Key>'){ exit }
20
- }
20
+ Tk.root.bind('<Key>') { exit }
21
+ end
21
22
 
22
- Tk.mainloop
23
+ Tk.mainloop
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'ffi-tk'
2
3
 
3
4
  Tk.init
@@ -5,7 +6,7 @@ Tk.init
5
6
  label = Tk::Label.new(Tk.root, text: 'Press any key to open the dialog')
6
7
  label.pack
7
8
 
8
- Tk.root.bind('<Key>'){
9
+ Tk.root.bind('<Key>') do
9
10
  question = 'Do you love ruby?'
10
11
  answers = ['Yes', 'No', "I'm not sure"]
11
12
  reply =
@@ -16,22 +17,22 @@ Tk.root.bind('<Key>'){
16
17
  text =
17
18
  case reply
18
19
  when 0
19
- "Of course you do!"
20
+ 'Of course you do!'
20
21
  when 1
21
- "Your loss"
22
+ 'Your loss'
22
23
  when 2
23
- Tk::Button.new(Tk.root, text: 'Show source'){
24
+ Tk::Button.new(Tk.root, text: 'Show source') do
24
25
  text = Tk::Text.new(Tk.root)
25
26
  text.insert :end, File.read(__FILE__)
26
27
  text.pack
27
- }.pack
28
+ end.pack
28
29
 
29
30
  "If you haven't fallen in love yet, take a look at my source."
30
31
  end
31
32
 
32
33
  Tk::Label.new(Tk.root, text: text).pack
33
34
 
34
- Tk.root.bind('<Key>'){ exit }
35
- }
35
+ Tk.root.bind('<Key>') { exit }
36
+ end
36
37
 
37
- Tk.mainloop
38
+ Tk.mainloop
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require_relative '../lib/ffi-tk'
4
5
 
@@ -8,4 +9,4 @@ Tk::Button.new('.', text: 'Hello, World!') do
8
9
  Tk.exit
9
10
  end.pack
10
11
 
11
- Tk.mainloop
12
+ Tk.mainloop
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'ffi-tk'
2
3
 
3
4
  Tk.init
@@ -5,12 +6,13 @@ Tk.init
5
6
  label = Tk::Label.new(Tk.root, text: 'Press any key to open the dialog')
6
7
  label.pack
7
8
 
8
- Tk.root.bind('<Key>'){
9
+ Tk.root.bind('<Key>') do
9
10
  answer = Tk.message_box(
10
11
  message: 'Really quit?',
11
12
  icon: :question,
12
13
  type: :yesno,
13
- detail: 'Select "Yes" to make the application exit')
14
+ detail: 'Select "Yes" to make the application exit'
15
+ )
14
16
 
15
17
  case answer
16
18
  when :yes
@@ -18,9 +20,10 @@ Tk.root.bind('<Key>'){
18
20
  when :no
19
21
  Tk.message_box(
20
22
  message: 'I know you like this application!',
21
- type: :ok)
23
+ type: :ok
24
+ )
22
25
  exit
23
26
  end
24
- }
27
+ end
25
28
 
26
- Tk.mainloop
29
+ Tk.mainloop
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'ffi-tk'
2
3
 
3
4
  Tk.init
@@ -7,11 +8,11 @@ label.pack
7
8
 
8
9
  var = Tk.option_menu('.foo', 'Yes', 'Of course', 'Maybe', 'Maybe not', 'No', 'Never')
9
10
  Tk::Pack.pack('.foo')
10
- Tk::Bind.bind('.foo', '<Configure>'){ label.configure(text: var.get) }
11
+ Tk::Bind.bind('.foo', '<Configure>') { label.configure(text: var.get) }
11
12
  var.set 'Maybe' # initial option
12
13
 
13
14
  label.configure text: var.get
14
15
 
15
- Tk::Button.new(Tk.root, text: 'Exit'){ exit }.pack
16
+ Tk::Button.new(Tk.root, text: 'Exit') { exit }.pack
16
17
 
17
- Tk.mainloop
18
+ Tk.mainloop
@@ -1,14 +1,15 @@
1
+ # frozen_string_literal: true
1
2
  require 'ffi-tk'
2
3
  Tk.init
3
4
 
4
- command = lambda{ Tk::Bell.bell }
5
+ command = -> { Tk::Bell.bell }
5
6
  menu = Tk::Menu.new(Tk.root)
6
7
  menu.add(:command, label: 'Example 1', command: command)
7
8
  menu.add(:command, label: 'Example 2', command: command)
8
9
  label = Tk::Label.new(Tk.root, text: 'Click me!').pack
9
- label.bind('<1>'){|event| Tk.popup(menu, event.x, event.y) }
10
+ label.bind('<1>') { |event| Tk.popup(menu, event.x, event.y) }
10
11
 
11
- Tk::Button.new(Tk.root, text: 'Exit'){ exit }.pack
12
+ Tk::Button.new(Tk.root, text: 'Exit') { exit }.pack
12
13
 
13
14
  Tk.mainloop
14
15
  __END__
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'ffi-tk'
2
3
 
3
4
  Tk.init
@@ -22,11 +23,11 @@ Tk::Label.new(Tk.root, text: desc).pack
22
23
 
23
24
  @exception = Tk::Label.new(Tk.root).pack
24
25
  @entry = Tk::Entry.new(Tk.root).pack
25
- @entry.bind('<Return>'){
26
+ @entry.bind('<Return>') do
26
27
  change_palette(@entry.get)
27
28
  @entry.delete(0, :end)
28
- }
29
+ end
29
30
 
30
- Tk::Button.new(Tk.root, text: 'Exit'){ exit }.pack
31
+ Tk::Button.new(Tk.root, text: 'Exit') { exit }.pack
31
32
 
32
- Tk.mainloop
33
+ Tk.mainloop
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require_relative '../lib/ffi-tk'
4
5
 
@@ -10,38 +11,37 @@ text.pack
10
11
  p text.bbox '0.1'
11
12
  p text.index 'end'
12
13
 
13
- %w[ autoseparators autoseparators blockcursor endline inactiveselectbackground
14
- maxundo spacing1 spacing2 spacing3 startline state tabs tabstyle undo width wrap
14
+ %w( autoseparators autoseparators blockcursor endline inactiveselectbackground
15
+ maxundo spacing1 spacing2 spacing3 startline state tabs tabstyle undo width wrap
15
16
 
16
- background bg
17
- borderwidth bd
18
- cursor
19
- exportselection
20
- font
21
- foreground
22
- fg
23
- highlightbackground
24
- highlightcolor
25
- highlightthickness
26
- insertbackground
27
- insertborderwidth
28
- insertofftime
29
- insertontime
30
- insertwidth
31
- padx
32
- pady
33
- relief
34
- selectbackground
35
- selectborderwidth
36
- selectforeground
37
- setgrid
38
- takefocus
39
- xscrollcommand
40
- yscrollcommand
41
- ].each do |option|
17
+ background bg
18
+ borderwidth bd
19
+ cursor
20
+ exportselection
21
+ font
22
+ foreground
23
+ fg
24
+ highlightbackground
25
+ highlightcolor
26
+ highlightthickness
27
+ insertbackground
28
+ insertborderwidth
29
+ insertofftime
30
+ insertontime
31
+ insertwidth
32
+ padx
33
+ pady
34
+ relief
35
+ selectbackground
36
+ selectborderwidth
37
+ selectforeground
38
+ setgrid
39
+ takefocus
40
+ xscrollcommand
41
+ yscrollcommand).each do |option|
42
42
  p option: text.cget(option)
43
43
  end
44
44
 
45
- Tk.root.bind('Control-q'){ exit }
45
+ Tk.root.bind('Control-q') { exit }
46
46
 
47
- Tk.mainloop
47
+ Tk.mainloop