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
@@ -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
 
@@ -7,86 +8,83 @@ Tk.init
7
8
  Tk::Tile::Style.theme_use 'alt'
8
9
 
9
10
  THEMELIST = [
10
- ['default', 'Default'],
11
- ['classic', 'Classic'],
12
- ['alt', 'Revitalized'],
13
- ['clam', 'Clam'],
11
+ %w(default Default),
12
+ %w(classic Classic),
13
+ %w(alt Revitalized),
14
+ %w(clam Clam),
14
15
  ['winnative', 'Windows native'],
15
16
  ['xpnative', 'XP Native'],
16
- ['aqua', 'Aqua'],
17
- ]
18
- RUBY_THEMELIST = []
17
+ %w(aqua Aqua)
18
+ ].freeze
19
+ RUBY_THEMELIST = [].freeze
19
20
  RUBY_THEMELIST << ['kroc-rb', 'Kroc (by Ruby)', false]
20
21
 
21
22
  def makeThemeControl(parent)
22
23
  frame = Tk::Tile::LabelFrame.new parent, text: 'Theme'
23
24
 
24
- THEMELIST.each{|theme, name|
25
+ THEMELIST.each do |theme, name|
25
26
  b = Tk::Tile::RadioButton.new(frame, text: name, value: theme,
26
- command: proc{ Tk::Tile::Style.theme_use(theme) } )
27
+ command: proc { Tk::Tile::Style.theme_use(theme) })
27
28
 
28
29
  b.grid sticky: 'ew'
29
30
  b.state(:disabled) unless Tk::Tile::Style.theme_names.include?(theme)
30
- }
31
- RUBY_THEMELIST.each{|theme, name, available|
31
+ end
32
+ RUBY_THEMELIST.each do |theme, name, available|
32
33
  b = Tk::Tile::RadioButton.new(frame, text: name, value: theme,
33
- command: proc{ Tk::Tile::Style.theme_use(theme) } )
34
+ command: proc { Tk::Tile::Style.theme_use(theme) })
34
35
 
35
36
  b.grid sticky: 'ew'
36
37
  b.state(:disabled) unless available # ? use #ttk_state
37
- }
38
+ end
38
39
  frame
39
40
  end
40
41
 
41
42
  makeThemeControl(Tk.root).pack side: 'left'
42
43
 
44
+ BUTTONS = %w(open new save).freeze
45
+ TOOLBARS = [].freeze
46
+ CHECKBOXES = %w(bold italic).freeze
47
+ ICON = {}.freeze
43
48
 
44
- BUTTONS = ['open', 'new', 'save']
45
- TOOLBARS = []
46
- CHECKBOXES = ['bold', 'italic']
47
- ICON = {}
48
-
49
- #def loadIcons(file)
49
+ # def loadIcons(file)
50
50
  # Tk.load_tclscript(file)
51
51
  # img_data = TkVarAccess.new('ImgData')
52
52
  # img_data.keys.each{|icon|
53
53
  # $ICON[icon] = TkPhotoImage.new(:data=>img_data[icon])
54
54
  # }
55
- #end
56
- #loadIcons(File.join(demodir, 'iconlib.tcl'))
57
-
55
+ # end
56
+ # loadIcons(File.join(demodir, 'iconlib.tcl'))
58
57
 
59
58
  def makeToolbars(parent)
60
59
  #
61
60
  # Tile toolbar:
62
61
  #
63
62
 
64
- tb = Tk::Tile::Frame.new(parent, :class => 'Toolbar')
65
- #tb = Tk::Tile::Frame.new(parent)
63
+ tb = Tk::Tile::Frame.new(parent, class: 'Toolbar')
64
+ # tb = Tk::Tile::Frame.new(parent)
66
65
  TOOLBARS << tb
67
66
  i = 0
68
- BUTTONS.each{|icon|
67
+ BUTTONS.each do |icon|
69
68
  i += 1
70
69
  Tk::Tile::Button.new(tb, text: icon,
71
- # :image=>$ICON[icon],
72
- # :compound=>$V[:COMPOUND],
73
- :style=>:Toolbutton).grid(:row=>0, :column=>i,
74
- :sticky=>:news)
75
- }
76
- CHECKBOXES.each{|icon|
70
+ # :image=>$ICON[icon],
71
+ # :compound=>$V[:COMPOUND],
72
+ style: :Toolbutton).grid(row: 0, column: i,
73
+ sticky: :news)
74
+ end
75
+ CHECKBOXES.each do |icon|
77
76
  i += 1
78
77
  Tk::Tile::CheckButton.new(tb, text: icon,
79
- #:image=>$ICON[icon],
80
- #:variable=>$V.ref(icon),
81
- #:compound=>$V[:COMPOUND],
82
- :style=>:Toolbutton).grid(:row=>0, :column=>i,
83
- :sticky=>:news)
84
- }
85
-
86
- mb = Tk::Tile::MenuButton.new(tb, text: 'toolbar',
87
- #:image=>$ICON['file'],
88
- #:compound=>$V[:COMPOUND]
89
- )
78
+ #:image=>$ICON[icon],
79
+ #:variable=>$V.ref(icon),
80
+ #:compound=>$V[:COMPOUND],
81
+ style: :Toolbutton).grid(row: 0, column: i,
82
+ sticky: :news)
83
+ end
84
+
85
+ mb = Tk::Tile::MenuButton.new(tb, text: 'toolbar')
86
+ #:image=>$ICON['file'],
87
+ #:compound=>$V[:COMPOUND]
90
88
  mb.configure menu: makeCompoundMenu(mb)
91
89
 
92
90
  i += 1
@@ -95,7 +93,7 @@ def makeToolbars(parent)
95
93
  i += 1
96
94
  tb.grid_columnconfigure(i, weight: 1)
97
95
 
98
- return tb
96
+ tb
99
97
  end
100
98
 
101
99
  #
@@ -103,21 +101,19 @@ end
103
101
  #
104
102
  def makeCompoundMenu(mb)
105
103
  menu = Tk::Menu.new(mb)
106
- %w(text image none top bottom left right center).each{|str|
107
- #menu.add(:radiobutton, :label=> Tk.tk_call('string', 'totitle', str),
108
- menu.add(:radiobutton, :label=> str,
109
- :value=>str,
110
- #:variable=>$V.ref(:COMPOUND),
111
- :command=> proc{ puts "foo"; true } )
112
- }
104
+ %w(text image none top bottom left right center).each do |str|
105
+ # menu.add(:radiobutton, :label=> Tk.tk_call('string', 'totitle', str),
106
+ menu.add(:radiobutton, label: str,
107
+ value: str,
108
+ #:variable=>$V.ref(:COMPOUND),
109
+ command: proc { puts 'foo'; true })
110
+ end
113
111
  menu
114
112
  end
115
113
 
116
114
  makeToolbars(Tk.root)
117
- #makeToolbars(Tk.root).pack
118
- TOOLBARS.each { |tb| tb.pack }
115
+ # makeToolbars(Tk.root).pack
116
+ TOOLBARS.each(&:pack)
119
117
 
120
-
121
- #puts Tk::Tile::Style.theme_names.inspect
118
+ # puts Tk::Tile::Style.theme_names.inspect
122
119
  Tk.mainloop
123
-
@@ -1,135 +1,126 @@
1
+ # frozen_string_literal: true
1
2
  #
2
3
  # based on:
3
4
  # >> kroc.rb - by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
5
  # >> kroc.tcl - Copyright (C) 2004 David Zolli <kroc@kroc.tk>
5
6
  #
6
7
 
7
- #NOTE not ready, needs photoimage and load_images
8
+ # NOTE not ready, needs photoimage and load_images
8
9
  # * some parts are used in Tile::Style specs and work as excepted
9
10
 
10
- #imgdir = File.join(File.dirname(__FILE__), 'kroc', 'kroc')
11
- #$images = Tk::Tile.load_images(imgdir, '*.gif')
11
+ # imgdir = File.join(File.dirname(__FILE__), 'kroc', 'kroc')
12
+ # $images = Tk::Tile.load_images(imgdir, '*.gif')
12
13
 
13
14
  def kroc_rb_settings
14
- Tk::Tile::Style.configure('.', :background=>'#FCB64F',
15
- :troughcolor=>'#F8C278', :borderwidth=>1)
15
+ Tk::Tile::Style.configure('.', background: '#FCB64F',
16
+ troughcolor: '#F8C278', borderwidth: 1)
16
17
 
18
+ Tk::Tile::Style.configure('.', font: Tk::Tile::Font::Default, borderwidth: 1)
19
+ Tk::Tile::Style.configure(font: Tk::Tile::Font::Default, borderwidth: 1)
17
20
 
18
- Tk::Tile::Style.configure('.', :font=>Tk::Tile::Font::Default, :borderwidth=>1)
19
- Tk::Tile::Style.configure(:font=>Tk::Tile::Font::Default, :borderwidth=>1)
21
+ Tk::Tile::Style.map('.', background: [:active, '#694418'])
22
+ Tk::Tile::Style.map(foreground: [:disabled, '#B2B2B2', :active, '#FFE7CB'])
20
23
 
21
-
22
- Tk::Tile::Style.map('.', :background=>[:active, '#694418'])
23
- Tk::Tile::Style.map(:foreground=>[:disabled, '#B2B2B2', :active, '#FFE7CB'])
24
-
25
-
26
- Tk::Tile::Style.configure('TButton', :padding=>[10,4])
24
+ Tk::Tile::Style.configure('TButton', padding: [10, 4])
27
25
 
28
26
  Tk::Tile::Style.configure('TNotebook.Tab',
29
- :padding=>[10, 3], :font=>Tk::Tile::Font::Default)
27
+ padding: [10, 3], font: Tk::Tile::Font::Default)
30
28
 
31
29
  Tk::Tile::Style.map('TNotebook.Tab',
32
- :background=>[:selected, '#FCB64F', '', '#FFE6BA'],
33
- :foreground=>['', 'black'],
34
- :padding=>[:selected, [10, 6, 10, 3]])
30
+ background: [:selected, '#FCB64F', '', '#FFE6BA'],
31
+ foreground: ['', 'black'],
32
+ padding: [:selected, [10, 6, 10, 3]])
35
33
 
36
34
  # Tk::Tile::Style.map('TScrollbar',
37
35
  Tk::Tile::Style.map(Tk::Tile::TScrollbar,
38
- :background=>[:pressed, '#694418'],
39
- :arrowcolor=>[:pressed, '#FEF7CB'],
40
- :relief=>[:pressed, :sunken])
36
+ background: [:pressed, '#694418'],
37
+ arrowcolor: [:pressed, '#FEF7CB'],
38
+ relief: [:pressed, :sunken])
41
39
 
42
40
  # Tk::Tile::Style.layout('Vertical.TScrollbar',
43
41
  Tk::Tile::Style.layout(Tk::Tile.style('Vertical', Tk::Tile::TScrollbar),
44
- ['Scrollbar.trough', {:children=>[
45
- 'Scrollbar.uparrow', {:side=>:top},
46
- 'Scrollbar.downarrow', {:side=>:bottom},
47
- 'Scrollbar.uparrow', {:side=>:bottom},
48
- 'Scrollbar.thumb', {:side=>:top, :expand=>true}
49
- ]}
50
- ])
42
+ ['Scrollbar.trough', { children: [
43
+ 'Scrollbar.uparrow', { side: :top },
44
+ 'Scrollbar.downarrow', { side: :bottom },
45
+ 'Scrollbar.uparrow', { side: :bottom },
46
+ 'Scrollbar.thumb', { side: :top, expand: true }
47
+ ] }])
51
48
 
52
49
  # Tk::Tile::Style.layout('Horizontal.TScrollbar',
53
50
  Tk::Tile::Style.layout(Tk::Tile.style('Horizontal', Tk::Tile::TScrollbar),
54
- ['Scrollbar.trough', {:children=>[
55
- 'Scrollbar.leftarrow', {:side=>:left},
56
- 'Scrollbar.rightarrow', {:side=>:right},
57
- 'Scrollbar.leftarrow', {:side=>:right},
58
- 'Scrollbar.thumb', {:side=>:left, :expand=>true}
59
- ]}
60
- ])
51
+ ['Scrollbar.trough', { children: [
52
+ 'Scrollbar.leftarrow', { side: :left },
53
+ 'Scrollbar.rightarrow', { side: :right },
54
+ 'Scrollbar.leftarrow', { side: :right },
55
+ 'Scrollbar.thumb', { side: :left, expand: true }
56
+ ] }])
61
57
 
62
58
  #
63
59
  # Elements:
64
60
  #
65
61
  Tk::Tile::Style.element_create('Button.button',
66
62
  :image,
67
- [ $images['button-n'],
68
- :pressed, $images['button-p'],
69
- :active, $images['button-h'],
70
- ], :border=>3, :sticky=>:ew)
63
+ [$images['button-n'],
64
+ :pressed, $images['button-p'],
65
+ :active, $images['button-h']], border: 3, sticky: :ew)
71
66
 
72
67
  Tk::Tile::Style.element_create('Checkbutton.indicator',
73
68
  :image,
74
- [ $images['check-nu'],
75
- [:pressed, :selected],$images['check-nc'],
76
- :pressed, $images['check-nu'],
77
- [:active, :selected], $images['check-hc'],
78
- :active, $images['check-hu'],
79
- :selected, $images['check-nc'],
80
- ], :sticky=>:w)
69
+ [$images['check-nu'],
70
+ [:pressed, :selected], $images['check-nc'],
71
+ :pressed, $images['check-nu'],
72
+ [:active, :selected], $images['check-hc'],
73
+ :active, $images['check-hu'],
74
+ :selected, $images['check-nc']], sticky: :w)
81
75
 
82
76
  Tk::Tile::Style.element_create('Radiobutton.indicator',
83
77
  :image,
84
- [ $images['radio-nu'],
85
- [:pressed,:selected],$images['radio-nc'],
86
- :pressed, $images['radio-nu'],
87
- [:active,:selected], $images['radio-hc'],
88
- :active, $images['radio-hu'],
89
- :selected, $images['radio-nc'],
90
- ], :sticky=>:w)
91
-
78
+ [$images['radio-nu'],
79
+ [:pressed, :selected], $images['radio-nc'],
80
+ :pressed, $images['radio-nu'],
81
+ [:active, :selected], $images['radio-hc'],
82
+ :active, $images['radio-hu'],
83
+ :selected, $images['radio-nc']], sticky: :w)
92
84
 
93
85
  #
94
86
  # Settings:
95
87
  #
96
88
  # Tk::Tile::Style.layout(Tk::Tile::TButton,
97
89
  Tk::Tile::Style.layout('TButton', [
98
- 'Button.button', {:children=>[
99
- 'Button.focus', {:children=>[
100
- 'Button.padding', {:children=>[
101
- 'Button.label', {:expand=>true, :sticky=>''}
102
- ]}
103
- ]}
104
- ]}
105
- ])
90
+ 'Button.button', { children: [
91
+ 'Button.focus', { children: [
92
+ 'Button.padding', { children: [
93
+ 'Button.label', { expand: true, sticky: '' }
94
+ ] }
95
+ ] }
96
+ ] }
97
+ ])
106
98
 
107
99
  # Tk::Tile::Style.layout(Tk::Tile::TCheckbutton,
108
100
  Tk::Tile::Style.layout('TCheckbutton', [
109
- 'Checkbutton.background', # this is not needed in tile 0.5 or later
110
- 'Checkbutton.border', {:children=>[
111
- 'Checkbutton.padding', {:children=>[
112
- 'Checkbutton.indicator', {:side=>:left},
113
- 'Checkbutton.focus', {:side=>:left, :children=>[
114
- 'Checkbutton.label'
115
- ]}
116
- ]}
117
- ]}
118
- ])
101
+ 'Checkbutton.background', # this is not needed in tile 0.5 or later
102
+ 'Checkbutton.border', { children: [
103
+ 'Checkbutton.padding', { children: [
104
+ 'Checkbutton.indicator', { side: :left },
105
+ 'Checkbutton.focus', { side: :left, children: [
106
+ 'Checkbutton.label'
107
+ ] }
108
+ ] }
109
+ ] }
110
+ ])
119
111
 
120
112
  # Tk::Tile::Style.layout(Tk::Tile::TRadiobutton,
121
113
  Tk::Tile::Style.layout('TRadiobutton', [
122
- 'Radiobutton.background', # this is not needed in tile 0.5 or later
123
- 'Radiobutton.border', {:children=>[
124
- 'Radiobutton.padding', {:children=>[
125
- 'Radiobutton.indicator', {:side=>:left},
126
- 'Radiobutton.focus', {:expand=>true, :sticky=>:w, :children=>[
127
- 'Radiobutton.label', {:side=>:right, :expand=>true}
128
- ]}
129
- ]}
130
- ]}
131
- ])
114
+ 'Radiobutton.background', # this is not needed in tile 0.5 or later
115
+ 'Radiobutton.border', { children: [
116
+ 'Radiobutton.padding', { children: [
117
+ 'Radiobutton.indicator', { side: :left },
118
+ 'Radiobutton.focus', { expand: true, sticky: :w, children: [
119
+ 'Radiobutton.label', { side: :right, expand: true }
120
+ ] }
121
+ ] }
122
+ ] }
123
+ ])
132
124
  end
133
125
 
134
- Tk::Tile::Style.theme_create( 'kroc-rb', parent: 'alt', settings: proc{ kroc_rb_settings() } )
135
-
126
+ Tk::Tile::Style.theme_create('kroc-rb', parent: 'alt', settings: proc { kroc_rb_settings })
@@ -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
 
@@ -13,19 +14,18 @@ text.value = 'text..'
13
14
  # create labelframe
14
15
  @labelframe = Tk::Tile::LabelFrame.new(nb, text: 'label headline').pack
15
16
 
16
-
17
17
  # create buttons inside labelframe
18
18
  Tk::Button.new(@labelframe, text: 'Jump Tab') do
19
19
  nb.select text
20
- text.value = "current tab options: " + nb.tab(text).inspect
20
+ text.value = 'current tab options: ' + nb.tab(text).inspect
21
21
  end.pack
22
22
 
23
23
  add_button = Tk::Button.new(@labelframe, text: 'Add Tab') do
24
24
  t = Tk::Text.new(nb)
25
- nb.add( t, text: 'new tab' )
25
+ nb.add(t, text: 'new tab')
26
26
  nb.select t
27
27
 
28
- t.value = "current tab options: " + nb.tab(t).inspect
28
+ t.value = 'current tab options: ' + nb.tab(t).inspect
29
29
 
30
30
  add_button.configure state: :disabled
31
31
  end.pack
@@ -34,15 +34,12 @@ Tk::Button.new(@labelframe, text: 'Close Example') do
34
34
  Tk.exit
35
35
  end.pack
36
36
 
37
-
38
37
  # attach labelframe and Tk::Text to notebook widget
39
- nb.add( @labelframe, text: 'labelframe tab' )
40
- nb.insert( 0, text, text: 'text tab' )
41
-
38
+ nb.add(@labelframe, text: 'labelframe tab')
39
+ nb.insert(0, text, text: 'text tab')
42
40
 
43
41
  # select labelframe tab
44
42
  nb.select @labelframe
45
43
  nb.pack
46
44
 
47
-
48
45
  Tk.mainloop
@@ -1,35 +1,33 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require_relative '../../lib/ffi-tk'
4
5
 
5
6
  Tk.init
6
7
 
7
-
8
8
  Tk::Tile::Style.theme_settings 'alt' do
9
9
  Tk::Tile::Style.configure '.', background: 'red'
10
10
  Tk::Tile::Style.configure 'test.label', background: 'blue'
11
11
 
12
- Tk::Tile::Style.map('.', :background=>[:active, '#694418'])
12
+ Tk::Tile::Style.map('.', background: [:active, '#694418'])
13
13
  end
14
14
 
15
-
16
15
  button1 = Tk::Tile::Button.new('.', text: 'Hello, World!', width: 100) do
17
16
  button1.destroy
18
17
  Tk.exit
19
18
  end
20
19
 
21
20
  button2 = Tk::Tile::Button.new(button1, text: 'Wien!', width: 50) do
22
- Tk::Tile::Style.map('.', :background=>[:active, '#FFFFFF'])
21
+ Tk::Tile::Style.map('.', background: [:active, '#FFFFFF'])
23
22
  button2.destroy
24
23
  end
25
24
 
26
- #button3 = Tk::Tile::Button.new(button1, text: 'apply theme', style: 'test.label' ) do
27
- button3 = Tk::Tile::Button.new('.', text: 'apply theme' ) do
25
+ # button3 = Tk::Tile::Button.new(button1, text: 'apply theme', style: 'test.label' ) do
26
+ button3 = Tk::Tile::Button.new('.', text: 'apply theme') do
28
27
  Tk::Tile::Style.theme_use 'alt'
29
28
  button3.destroy
30
29
  end
31
- #button3.style 'test.label'
32
-
30
+ # button3.style 'test.label'
33
31
 
34
32
  button1.pack
35
33
  button2.pack