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
@@ -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