ffi-tk 2010.08.23 → 2018.02.20

Sign up to get free protection for your applications and to get access to all the features.
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