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.
- checksums.yaml +7 -0
- data/.gitignore +2 -0
- data/.rubocop.yml +7 -0
- data/.rubocop_todo.yml +371 -0
- data/AUTHORS +4 -2
- data/CHANGELOG +302 -262
- data/Gemfile +10 -0
- data/Gemfile.lock +45 -0
- data/MANIFEST +6 -6
- data/README.md +1 -1
- data/Rakefile +12 -11
- data/bin/rwish +6 -5
- data/example/choose_color.rb +5 -4
- data/example/choose_directory.rb +5 -4
- data/example/dialog.rb +9 -8
- data/example/hello.rb +2 -1
- data/example/message_box.rb +8 -5
- data/example/option_menu.rb +4 -3
- data/example/popup.rb +4 -3
- data/example/set_palette.rb +5 -4
- data/example/text.rb +30 -30
- data/example/tile/kroc_demo_small.rb +51 -55
- data/example/tile/kroc_rb_demo.rb +74 -83
- data/example/tile/notebook.rb +6 -9
- data/example/tile/theme_hello.rb +6 -8
- data/example/tile/themes.rb +4 -2
- data/example/tile/treeview.rb +16 -14
- data/example/tkgo.rb +120 -88
- data/example/various.rb +8 -7
- data/example/wait.rb +3 -2
- data/ffi-tk.gemspec +21 -20
- data/gemset.nix +134 -0
- data/lib/ffi-tk.rb +10 -11
- data/lib/ffi-tk/command.rb +3 -2
- data/lib/ffi-tk/command/after.rb +8 -7
- data/lib/ffi-tk/command/bell.rb +2 -1
- data/lib/ffi-tk/command/bind.rb +1 -0
- data/lib/ffi-tk/command/bindtags.rb +1 -0
- data/lib/ffi-tk/command/cget.rb +31 -24
- data/lib/ffi-tk/command/choose_color.rb +2 -1
- data/lib/ffi-tk/command/choose_directory.rb +2 -1
- data/lib/ffi-tk/command/clipboard.rb +6 -5
- data/lib/ffi-tk/command/configure.rb +23 -21
- data/lib/ffi-tk/command/destroy.rb +2 -1
- data/lib/ffi-tk/command/dialog.rb +4 -3
- data/lib/ffi-tk/command/event.rb +1 -0
- data/lib/ffi-tk/command/focus.rb +2 -1
- data/lib/ffi-tk/command/font.rb +12 -9
- data/lib/ffi-tk/command/get_open_file.rb +1 -0
- data/lib/ffi-tk/command/get_save_file.rb +1 -0
- data/lib/ffi-tk/command/grab.rb +2 -1
- data/lib/ffi-tk/command/grid.rb +7 -6
- data/lib/ffi-tk/command/image.rb +5 -4
- data/lib/ffi-tk/command/lower.rb +1 -0
- data/lib/ffi-tk/command/message_box.rb +2 -1
- data/lib/ffi-tk/command/option_menu.rb +3 -2
- data/lib/ffi-tk/command/pack.rb +5 -4
- data/lib/ffi-tk/command/place.rb +5 -4
- data/lib/ffi-tk/command/popup.rb +2 -1
- data/lib/ffi-tk/command/raise.rb +1 -0
- data/lib/ffi-tk/command/scrollable.rb +7 -10
- data/lib/ffi-tk/command/selection.rb +4 -3
- data/lib/ffi-tk/command/set_palette.rb +2 -1
- data/lib/ffi-tk/command/tk_cmd.rb +1 -0
- data/lib/ffi-tk/command/vars.rb +2 -1
- data/lib/ffi-tk/command/wait.rb +2 -1
- data/lib/ffi-tk/command/winfo.rb +9 -8
- data/lib/ffi-tk/command/wm.rb +11 -10
- data/lib/ffi-tk/core_extensions.rb +5 -4
- data/lib/ffi-tk/event/data.rb +32 -31
- data/lib/ffi-tk/event/handler.rb +4 -3
- data/lib/ffi-tk/ffi/tcl.rb +42 -31
- data/lib/ffi-tk/ffi/tcl/cmd_proc.rb +2 -1
- data/lib/ffi-tk/ffi/tcl/eval_result.rb +47 -8
- data/lib/ffi-tk/ffi/tcl/interp.rb +7 -4
- data/lib/ffi-tk/ffi/tcl/obj.rb +7 -32
- data/lib/ffi-tk/ffi/tcl/time.rb +2 -1
- data/lib/ffi-tk/ffi/tk.rb +8 -7
- data/lib/ffi-tk/geometry.rb +20 -17
- data/lib/ffi-tk/thread_sender.rb +1 -0
- data/lib/ffi-tk/tk.rb +23 -23
- data/lib/ffi-tk/variable.rb +25 -3
- data/lib/ffi-tk/version.rb +1 -1
- data/lib/ffi-tk/widget.rb +2 -1
- data/lib/ffi-tk/widget/button.rb +4 -1
- data/lib/ffi-tk/widget/canvas.rb +18 -15
- data/lib/ffi-tk/widget/canvas/arc.rb +2 -1
- data/lib/ffi-tk/widget/canvas/bitmap.rb +2 -1
- data/lib/ffi-tk/widget/canvas/image.rb +2 -1
- data/lib/ffi-tk/widget/canvas/item.rb +4 -4
- data/lib/ffi-tk/widget/canvas/line.rb +2 -1
- data/lib/ffi-tk/widget/canvas/oval.rb +2 -1
- data/lib/ffi-tk/widget/canvas/polygon.rb +2 -1
- data/lib/ffi-tk/widget/canvas/rectangle.rb +2 -1
- data/lib/ffi-tk/widget/canvas/text.rb +2 -1
- data/lib/ffi-tk/widget/canvas/window.rb +2 -1
- data/lib/ffi-tk/widget/checkbutton.rb +4 -1
- data/lib/ffi-tk/widget/entry.rb +4 -1
- data/lib/ffi-tk/widget/frame.rb +4 -1
- data/lib/ffi-tk/widget/label.rb +4 -1
- data/lib/ffi-tk/widget/labelframe.rb +4 -1
- data/lib/ffi-tk/widget/listbox.rb +5 -2
- data/lib/ffi-tk/widget/menu.rb +4 -1
- data/lib/ffi-tk/widget/menubutton.rb +4 -1
- data/lib/ffi-tk/widget/message.rb +4 -1
- data/lib/ffi-tk/widget/panedwindow.rb +5 -2
- data/lib/ffi-tk/widget/radiobutton.rb +4 -1
- data/lib/ffi-tk/widget/root.rb +1 -0
- data/lib/ffi-tk/widget/scale.rb +4 -1
- data/lib/ffi-tk/widget/scrollbar.rb +4 -1
- data/lib/ffi-tk/widget/spinbox.rb +4 -1
- data/lib/ffi-tk/widget/text.rb +20 -16
- data/lib/ffi-tk/widget/text/peer.rb +1 -0
- data/lib/ffi-tk/widget/tile.rb +2 -1
- data/lib/ffi-tk/widget/tile/button.rb +4 -1
- data/lib/ffi-tk/widget/tile/checkbutton.rb +4 -1
- data/lib/ffi-tk/widget/tile/combobox.rb +5 -2
- data/lib/ffi-tk/widget/tile/entry.rb +4 -1
- data/lib/ffi-tk/widget/tile/frame.rb +4 -1
- data/lib/ffi-tk/widget/tile/label.rb +4 -2
- data/lib/ffi-tk/widget/tile/labelframe.rb +4 -1
- data/lib/ffi-tk/widget/tile/menubutton.rb +4 -1
- data/lib/ffi-tk/widget/tile/notebook.rb +4 -1
- data/lib/ffi-tk/widget/tile/panedwindow.rb +4 -1
- data/lib/ffi-tk/widget/tile/progressbar.rb +4 -2
- data/lib/ffi-tk/widget/tile/radiobutton.rb +4 -1
- data/lib/ffi-tk/widget/tile/scale.rb +4 -1
- data/lib/ffi-tk/widget/tile/scrollbar.rb +7 -4
- data/lib/ffi-tk/widget/tile/separator.rb +4 -1
- data/lib/ffi-tk/widget/tile/sizegrip.rb +4 -1
- data/lib/ffi-tk/widget/tile/style.rb +16 -17
- data/lib/ffi-tk/widget/tile/treeview.rb +11 -5
- data/lib/ffi-tk/widget/toplevel.rb +4 -1
- data/shell.nix +19 -0
- data/spec/ffi-tk/command/bind.rb +5 -4
- data/spec/ffi-tk/command/bindtags.rb +2 -1
- data/spec/ffi-tk/command/clipboard.rb +4 -3
- data/spec/ffi-tk/command/font.rb +20 -19
- data/spec/ffi-tk/command/image.rb +13 -5
- data/spec/ffi-tk/command/pack.rb +3 -2
- data/spec/ffi-tk/command/place.rb +4 -3
- data/spec/ffi-tk/command/selection.rb +2 -1
- data/spec/ffi-tk/command/vars.rb +3 -2
- data/spec/ffi-tk/command/winfo.rb +10 -10
- data/spec/ffi-tk/command/wm.rb +23 -22
- data/spec/ffi-tk/event.rb +23 -21
- data/spec/ffi-tk/tile/button.rb +8 -8
- data/spec/ffi-tk/tile/checkbutton.rb +1 -1
- data/spec/ffi-tk/tile/combobox.rb +11 -12
- data/spec/ffi-tk/tile/entry.rb +18 -19
- data/spec/ffi-tk/tile/frame.rb +13 -13
- data/spec/ffi-tk/tile/label.rb +2 -2
- data/spec/ffi-tk/tile/labelframe.rb +1 -1
- data/spec/ffi-tk/tile/menubutton.rb +1 -1
- data/spec/ffi-tk/tile/notebook.rb +22 -20
- data/spec/ffi-tk/tile/panedwindow.rb +1 -1
- data/spec/ffi-tk/tile/progressbar.rb +1 -1
- data/spec/ffi-tk/tile/radiobutton.rb +1 -1
- data/spec/ffi-tk/tile/scale.rb +1 -1
- data/spec/ffi-tk/tile/scrollbar.rb +1 -16
- data/spec/ffi-tk/tile/separator.rb +2 -2
- data/spec/ffi-tk/tile/sizegrip.rb +1 -1
- data/spec/ffi-tk/tile/style.rb +63 -65
- data/spec/ffi-tk/tile/treeview.rb +11 -10
- data/spec/ffi-tk/variable.rb +5 -4
- data/spec/ffi-tk/widget/button.rb +3 -2
- data/spec/ffi-tk/widget/canvas.rb +59 -58
- data/spec/ffi-tk/widget/checkbutton.rb +6 -5
- data/spec/ffi-tk/widget/entry.rb +112 -103
- data/spec/ffi-tk/widget/frame.rb +2 -1
- data/spec/ffi-tk/widget/label.rb +2 -1
- data/spec/ffi-tk/widget/labelframe.rb +1 -0
- data/spec/ffi-tk/widget/listbox.rb +5 -4
- data/spec/ffi-tk/widget/menu.rb +3 -2
- data/spec/ffi-tk/widget/menubutton.rb +1 -0
- data/spec/ffi-tk/widget/message.rb +1 -0
- data/spec/ffi-tk/widget/panedwindow.rb +1 -0
- data/spec/ffi-tk/widget/radiobutton.rb +1 -0
- data/spec/ffi-tk/widget/root.rb +2 -1
- data/spec/ffi-tk/widget/scale.rb +1 -0
- data/spec/ffi-tk/widget/scrollbar.rb +1 -0
- data/spec/ffi-tk/widget/spinbox.rb +1 -0
- data/spec/ffi-tk/widget/text.rb +63 -54
- data/spec/ffi-tk/widget/toplevel.rb +1 -0
- data/spec/helper.rb +3 -1
- data/tasks/authors.rake +3 -2
- data/tasks/bacon.rake +13 -11
- data/tasks/changelog.rake +1 -0
- data/tasks/gem.rake +13 -11
- data/tasks/manifest.rake +2 -1
- data/tasks/release.rake +11 -32
- data/tasks/reversion.rake +2 -1
- metadata +52 -75
- data/spec/ffi-tk/command/grid.rb +0 -6
- data/tasks/gem_setup.rake +0 -113
- data/tasks/grancher.rake +0 -12
- data/tasks/rcov.rake +0 -17
- data/tasks/setup.rake +0 -12
- 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
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
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
|
-
|
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
|
25
|
+
THEMELIST.each do |theme, name|
|
25
26
|
b = Tk::Tile::RadioButton.new(frame, text: name, value: theme,
|
26
|
-
|
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
|
31
|
+
end
|
32
|
+
RUBY_THEMELIST.each do |theme, name, available|
|
32
33
|
b = Tk::Tile::RadioButton.new(frame, text: name, value: theme,
|
33
|
-
|
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
|
-
|
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, :
|
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
|
67
|
+
BUTTONS.each do |icon|
|
69
68
|
i += 1
|
70
69
|
Tk::Tile::Button.new(tb, text: icon,
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
CHECKBOXES.each
|
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
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
mb = Tk::Tile::MenuButton.new(tb, text: 'toolbar'
|
87
|
-
|
88
|
-
|
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
|
-
|
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
|
107
|
-
#menu.add(:radiobutton, :label=> Tk.tk_call('string', 'totitle', str),
|
108
|
-
menu.add(:radiobutton, :
|
109
|
-
|
110
|
-
|
111
|
-
|
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
|
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
|
-
|
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('.', :
|
15
|
-
|
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.
|
19
|
-
Tk::Tile::Style.
|
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
|
-
|
27
|
+
padding: [10, 3], font: Tk::Tile::Font::Default)
|
30
28
|
|
31
29
|
Tk::Tile::Style.map('TNotebook.Tab',
|
32
|
-
:
|
33
|
-
:
|
34
|
-
:
|
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
|
-
:
|
39
|
-
:
|
40
|
-
:
|
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', {:
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
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', {:
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
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
|
-
[
|
68
|
-
|
69
|
-
|
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
|
-
[
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
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
|
-
[
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
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
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
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
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
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
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
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(
|
135
|
-
|
126
|
+
Tk::Tile::Style.theme_create('kroc-rb', parent: 'alt', settings: proc { kroc_rb_settings })
|
data/example/tile/notebook.rb
CHANGED
@@ -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 =
|
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(
|
25
|
+
nb.add(t, text: 'new tab')
|
26
26
|
nb.select t
|
27
27
|
|
28
|
-
t.value =
|
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(
|
40
|
-
nb.insert(
|
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
|
data/example/tile/theme_hello.rb
CHANGED
@@ -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('.', :
|
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('.', :
|
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'
|
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
|