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
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -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
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' => {:
|
14
|
-
}
|
13
|
+
'ffi' => { version: '~> 1.9' }
|
14
|
+
}.freeze
|
15
15
|
|
16
16
|
DEVELOPMENT_DEPENDENCIES = {
|
17
|
-
'bacon'
|
18
|
-
}
|
17
|
+
'bacon' => { version: '~> 1.2' }
|
18
|
+
}.freeze
|
19
19
|
|
20
|
-
GEMSPEC = Gem::Specification.new
|
20
|
+
GEMSPEC = Gem::Specification.new do |s|
|
21
21
|
s.name = 'ffi-tk'
|
22
22
|
s.author = "Michael 'manveru' Fellinger"
|
23
|
-
s.summary =
|
24
|
-
s.description =
|
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 :
|
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
|
-
|
5
|
-
else
|
6
|
-
|
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
|
|
data/example/choose_color.rb
CHANGED
@@ -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
|
data/example/choose_directory.rb
CHANGED
@@ -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
|
data/example/dialog.rb
CHANGED
@@ -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
|
-
|
20
|
+
'Of course you do!'
|
20
21
|
when 1
|
21
|
-
|
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
|
-
|
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
|
data/example/hello.rb
CHANGED
data/example/message_box.rb
CHANGED
@@ -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
|
data/example/option_menu.rb
CHANGED
@@ -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
|
data/example/popup.rb
CHANGED
@@ -1,14 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
require 'ffi-tk'
|
2
3
|
Tk.init
|
3
4
|
|
4
|
-
command =
|
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__
|
data/example/set_palette.rb
CHANGED
@@ -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
|
data/example/text.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
|
|
@@ -10,38 +11,37 @@ text.pack
|
|
10
11
|
p text.bbox '0.1'
|
11
12
|
p text.index 'end'
|
12
13
|
|
13
|
-
%w
|
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
|