glimmer-dsl-tk 0.0.21 → 0.0.22
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/README.md +126 -15
- data/VERSION +1 -1
- data/glimmer-dsl-tk.gemspec +0 -0
- data/lib/glimmer/tk/button_proxy.rb +11 -0
- data/lib/glimmer/tk/checkbutton_proxy.rb +44 -0
- data/lib/glimmer/tk/root_proxy.rb +1 -1
- data/lib/glimmer/tk/widget_proxy.rb +20 -0
- data/lib/glimmer-dsl-tk.rb +1 -0
- data/samples/hello/hello_checkbutton.rb +89 -0
- metadata +25 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f1af2971637c33b4dcebacf0de9239fa24402b92325157df38453a1ba535d99c
|
4
|
+
data.tar.gz: f327b2f968225d46be3768dc109aba6799ad4b00cd4c77b2584ed3729de57a7d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a94b3eff61254b4b134cd19011c51ea1ec1ca952f6f2a753897840a0586cd39ca41483f4701a6746d8768b186a28790f6a010dfa6ba8f27d38d1698058ee11b4
|
7
|
+
data.tar.gz: d0fba3f64cb7b54f94ae6c00d7d6dbe4c1fe400cbc66c15c55b3648cfa3d05b0cb2eba123e6a4a9b1e79c78e9f0c9376282a2f9829d8f95013aa9804bcc05609
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -83,16 +83,18 @@ Other [Glimmer](https://github.com/AndyObtiva/glimmer) DSL gems:
|
|
83
83
|
- [Icon Photo](#icon-photo)
|
84
84
|
- [The Grid Geometry Manager](#the-grid-geometry-manager)
|
85
85
|
- [Bidirectional Data-Binding](#bidirectional-data-binding)
|
86
|
-
- [
|
86
|
+
- [Label Data-Binding](#label-data-binding)
|
87
87
|
- [Combobox Data-Binding](#combobox-data-binding)
|
88
88
|
- [List Single Selection Data-Binding](#list-single-selection-data-binding)
|
89
89
|
- [List Multi Selection Data-Binding](#list-multi-selection-data-binding)
|
90
90
|
- [Entry Data-Binding](#entry-data-binding)
|
91
|
-
|
91
|
+
- [Checkbox Data-Binding](#checkbox-data-binding)
|
92
|
+
- [Command Callback](#command-callback)
|
92
93
|
- [Gotchas](#gotchas)
|
93
94
|
- [Samples](#samples)
|
94
95
|
- [Hello, World!](#hello-world)
|
95
96
|
- [Hello, Button!](#hello-button)
|
97
|
+
- [Hello, Checkbutton!](#hello-checkbutton)
|
96
98
|
- [Hello, Frame!](#hello-frame)
|
97
99
|
- [Hello, Root!](#hello-root)
|
98
100
|
- [Hello, Notebook!](#hello-notebook)
|
@@ -248,6 +250,7 @@ root {
|
|
248
250
|
keyword(args) | attributes | event bindings & callbacks
|
249
251
|
------------- | ---------- | ---------
|
250
252
|
`button` | `text`, `image` (optional keyword args: `subsample`, `zoom`, `from`, `to`, `shrink`, `compositingrule`), `compound` (`'center', 'top', 'bottom', 'left', 'right'`), `default` (`'active', 'normal'`) | `command {}`
|
253
|
+
`checkbutton` | `text`, `variable` (Boolean), `image` (optional keyword args: `subsample`, `zoom`, `from`, `to`, `shrink`, `compositingrule`), `compound` (`'center', 'top', 'bottom', 'left', 'right'`), `default` (`'active', 'normal'`) | `command {}`
|
251
254
|
`combobox` | `state`, `text` | `'ComboboxSelected'`
|
252
255
|
`entry` | `width`, `text` | None
|
253
256
|
`frame(text: nil)` | `width`, `height`, `borderwidth`, `relief` (`'flat' (default), 'raised', 'sunken', 'solid', 'ridge', 'groove'`) | None
|
@@ -371,7 +374,7 @@ More details can be found in the [Hello, Computed!](#hello-computed) sample belo
|
|
371
374
|
|
372
375
|
Glimmer supports Shine syntax bidirectional data-binding via the `<=>` operator (read-write) and unidirectional data-binding via the `<=` operator (read-only), which takes a model and an attribute (the `bind` keyword may also be used as the old-style of data-binding).
|
373
376
|
|
374
|
-
###
|
377
|
+
### Label Data-Binding
|
375
378
|
|
376
379
|
Example:
|
377
380
|
|
@@ -379,11 +382,11 @@ This assumes a `Person` model with a `country` attribute.
|
|
379
382
|
|
380
383
|
```ruby
|
381
384
|
label {
|
382
|
-
text
|
385
|
+
text <= [person, :country]
|
383
386
|
}
|
384
387
|
```
|
385
388
|
|
386
|
-
That code binds the `textvariable` value of the `label` to the `country` property on the `person` model.
|
389
|
+
That code binds the `textvariable` value of the `label` unidirectionally (read-only) to the `country` property on the `person` model.
|
387
390
|
|
388
391
|
It automatically handles all the Tk plumbing behind the scenes.
|
389
392
|
|
@@ -424,8 +427,8 @@ This assumes a `Person` model with a `country` attribute representing their curr
|
|
424
427
|
}
|
425
428
|
```
|
426
429
|
|
427
|
-
That code binds the `items` text of the `list` to the `country_options`
|
428
|
-
It also binds the `selection` text of the `list` to the `country`
|
430
|
+
That code binds the `items` text of the `list` to the `country_options` attribute on the `person` model (data-binding attribute + "_options" by convention).
|
431
|
+
It also binds the `selection` text of the `list` to the `country` attribute on the `person` model.
|
429
432
|
|
430
433
|
It automatically handles all the Tk plumbing behind the scenes.
|
431
434
|
|
@@ -445,8 +448,8 @@ This assumes a `Person` model with a `provinces` attribute representing their cu
|
|
445
448
|
}
|
446
449
|
```
|
447
450
|
|
448
|
-
That code binds the `items` text of the `list` to the `provinces_options`
|
449
|
-
It also binds the `selection` text of the `list` to the `provinces`
|
451
|
+
That code binds the `items` text of the `list` to the `provinces_options` attribute on the `person` model (data-binding attribute + "_options" by convention).
|
452
|
+
It also binds the `selection` text of the `list` to the `provinces` attribute on the `person` model.
|
450
453
|
|
451
454
|
It automatically handles all the Tk plumbing behind the scenes.
|
452
455
|
|
@@ -464,30 +467,47 @@ This assumes a `Person` model with a `country` attribute.
|
|
464
467
|
}
|
465
468
|
```
|
466
469
|
|
467
|
-
That code binds the `textvariable` value of the `entry` to the `country`
|
470
|
+
That code binds the `textvariable` value of the `entry` to the `country` attribute on the `person` model.
|
468
471
|
|
469
472
|
It automatically handles all the Tk plumbing behind the scenes.
|
470
473
|
|
471
474
|
More details can be found in the [Hello, Computed!](#hello-computed) sample below.
|
472
475
|
|
473
|
-
|
476
|
+
### Checkbox Data-Binding
|
477
|
+
|
478
|
+
Example:
|
479
|
+
|
480
|
+
This assumes a `Person` model with a boolean `adult` attribute.
|
481
|
+
|
482
|
+
```ruby
|
483
|
+
checkbutton {
|
484
|
+
variable <=> [person, :adult]
|
485
|
+
}
|
486
|
+
```
|
487
|
+
|
488
|
+
That code binds the `variable` value of the `checkbutton` to the boolean `adult` attribute on the `person` model.
|
474
489
|
|
475
|
-
|
490
|
+
It automatically handles all the Tk plumbing behind the scenes.
|
491
|
+
|
492
|
+
More details can be found in the [Hello, Checkbutton!](#hello-checkbutton) sample below.
|
493
|
+
|
494
|
+
## Command Callback
|
495
|
+
|
496
|
+
`button` and `checkbutton` can set a `command` block to trigger when the user clicks the button/checkbutton. This may be done with the `command` keyword, passing in a block directly.
|
476
497
|
|
477
498
|
Example:
|
478
499
|
|
479
500
|
```ruby
|
480
501
|
button {
|
481
502
|
text "Reset Selection"
|
503
|
+
|
482
504
|
command {
|
483
505
|
person.reset_country
|
484
506
|
}
|
485
507
|
}
|
486
508
|
```
|
487
509
|
|
488
|
-
|
489
|
-
|
490
|
-
More details can be found in the [Hello, Combobox!](#hello-combobox) sample below.
|
510
|
+
More details can be found in the [Hello, Button!](#hello-button) sample below.
|
491
511
|
|
492
512
|
## Gotchas
|
493
513
|
|
@@ -628,6 +648,97 @@ Glimmer app:
|
|
628
648
|
|
629
649
|

|
630
650
|
|
651
|
+
### Hello, Checkbutton!
|
652
|
+
|
653
|
+
Glimmer code (from [samples/hello/hello_checkbutton.rb](samples/hello/hello_checkbutton.rb)):
|
654
|
+
|
655
|
+
```ruby
|
656
|
+
require 'glimmer-dsl-tk'
|
657
|
+
|
658
|
+
class HelloCheckbutton
|
659
|
+
class Person
|
660
|
+
attr_accessor :skiing, :snowboarding, :snowmobiling, :snowshoeing
|
661
|
+
|
662
|
+
def initialize
|
663
|
+
reset_activities!
|
664
|
+
end
|
665
|
+
|
666
|
+
def reset_activities!
|
667
|
+
self.skiing = false
|
668
|
+
self.snowboarding = true
|
669
|
+
self.snowmobiling = false
|
670
|
+
self.snowshoeing = false
|
671
|
+
end
|
672
|
+
end
|
673
|
+
|
674
|
+
include Glimmer
|
675
|
+
|
676
|
+
def initialize
|
677
|
+
@person = Person.new
|
678
|
+
end
|
679
|
+
|
680
|
+
def launch
|
681
|
+
root {
|
682
|
+
title 'Hello, Checkbutton!'
|
683
|
+
background '#ececec' if OS.mac?
|
684
|
+
|
685
|
+
label {
|
686
|
+
text 'Check all snow activities you are interested in:'
|
687
|
+
font 'caption'
|
688
|
+
}
|
689
|
+
|
690
|
+
frame {
|
691
|
+
checkbutton {
|
692
|
+
text 'Skiing'
|
693
|
+
variable <=> [@person, :skiing]
|
694
|
+
}
|
695
|
+
|
696
|
+
checkbutton {
|
697
|
+
text 'Snowboarding'
|
698
|
+
variable <=> [@person, :snowboarding]
|
699
|
+
}
|
700
|
+
|
701
|
+
checkbutton {
|
702
|
+
text 'Snowmobiling'
|
703
|
+
variable <=> [@person, :snowmobiling]
|
704
|
+
}
|
705
|
+
|
706
|
+
checkbutton {
|
707
|
+
text 'Snowshoeing'
|
708
|
+
variable <=> [@person, :snowshoeing]
|
709
|
+
}
|
710
|
+
}
|
711
|
+
|
712
|
+
button {
|
713
|
+
text 'Reset Activities'
|
714
|
+
|
715
|
+
command do
|
716
|
+
@person.reset_activities!
|
717
|
+
end
|
718
|
+
}
|
719
|
+
}.open
|
720
|
+
end
|
721
|
+
end
|
722
|
+
|
723
|
+
HelloCheckbutton.new.launch
|
724
|
+
```
|
725
|
+
|
726
|
+
Run with [glimmer-dsl-tk](https://rubygems.org/gems/glimmer-dsl-tk) gem installed:
|
727
|
+
|
728
|
+
```
|
729
|
+
ruby -r glimmer-dsl-tk -e "require 'samples/hello/hello_checkbutton'"
|
730
|
+
```
|
731
|
+
|
732
|
+
Alternatively, run from cloned project without [glimmer-dsl-tk](https://rubygems.org/gems/glimmer-dsl-tk) gem installed:
|
733
|
+
|
734
|
+
```
|
735
|
+
ruby -r ./lib/glimmer-dsl-tk.rb ./samples/hello/hello_checkbutton.rb
|
736
|
+
```
|
737
|
+
|
738
|
+
Glimmer app:
|
739
|
+
|
740
|
+

|
741
|
+
|
631
742
|
### Hello, Frame!
|
632
743
|
|
633
744
|
Glimmer code (from [samples/hello/hello_frame.rb](samples/hello/hello_frame.rb)):
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.22
|
data/glimmer-dsl-tk.gemspec
CHANGED
Binary file
|
@@ -27,9 +27,20 @@ module Glimmer
|
|
27
27
|
#
|
28
28
|
# Follows the Proxy Design Pattern
|
29
29
|
class ButtonProxy < WidgetProxy
|
30
|
+
# TODO extract to a module
|
31
|
+
|
30
32
|
def command_block=(proc)
|
31
33
|
tk.command(proc)
|
32
34
|
end
|
35
|
+
|
36
|
+
def handle_listener(listener_name, &listener)
|
37
|
+
case listener_name.to_s.downcase
|
38
|
+
when 'command'
|
39
|
+
command(listener)
|
40
|
+
else
|
41
|
+
super
|
42
|
+
end
|
43
|
+
end
|
33
44
|
end
|
34
45
|
end
|
35
46
|
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# Copyright (c) 2020-2021 Andy Maleh
|
2
|
+
#
|
3
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
# a copy of this software and associated documentation files (the
|
5
|
+
# "Software"), to deal in the Software without restriction, including
|
6
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
# the following conditions:
|
10
|
+
#
|
11
|
+
# The above copyright notice and this permission notice shall be
|
12
|
+
# included in all copies or substantial portions of the Software.
|
13
|
+
#
|
14
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
21
|
+
|
22
|
+
require 'glimmer/tk/widget_proxy'
|
23
|
+
|
24
|
+
module Glimmer
|
25
|
+
module Tk
|
26
|
+
# Proxy for Tk::Tile::Checkbutton
|
27
|
+
#
|
28
|
+
# Follows the Proxy Design Pattern
|
29
|
+
class ChecktbuttonProxy < WidgetProxy
|
30
|
+
def command_block=(proc)
|
31
|
+
tk.command(proc)
|
32
|
+
end
|
33
|
+
|
34
|
+
def handle_listener(listener_name, &listener)
|
35
|
+
case listener_name.to_s.downcase
|
36
|
+
when 'command'
|
37
|
+
command(listener)
|
38
|
+
else
|
39
|
+
super
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -127,7 +127,7 @@ module Glimmer
|
|
127
127
|
end
|
128
128
|
|
129
129
|
def handle_listener(listener_name, &listener)
|
130
|
-
case listener_name.to_s
|
130
|
+
case listener_name.to_s.upcase
|
131
131
|
when 'WM_DELETE_WINDOW', 'DELETE_WINDOW'
|
132
132
|
listener_name = 'WM_DELETE_WINDOW'
|
133
133
|
@tk.protocol(listener_name, &listener)
|
@@ -64,6 +64,9 @@ module Glimmer
|
|
64
64
|
attr_reader :parent_proxy, :tk, :args, :keyword
|
65
65
|
|
66
66
|
DEFAULT_INITIALIZERS = {
|
67
|
+
'checkbutton' => lambda do |tk|
|
68
|
+
tk.variable = ::TkVariable.new
|
69
|
+
end,
|
67
70
|
'combobox' => lambda do |tk|
|
68
71
|
tk.textvariable = ::TkVariable.new
|
69
72
|
end,
|
@@ -212,6 +215,16 @@ module Glimmer
|
|
212
215
|
setter: {name: 'image=', invoker: lambda { |widget, args| @tk.image = image_argument(args) }},
|
213
216
|
},
|
214
217
|
},
|
218
|
+
::Tk::Tile::TCheckbutton => {
|
219
|
+
'image' => {
|
220
|
+
getter: {name: 'image', invoker: lambda { |widget, args| @tk.image }},
|
221
|
+
setter: {name: 'image=', invoker: lambda { |widget, args| @tk.image = image_argument(args) }},
|
222
|
+
},
|
223
|
+
'variable' => {
|
224
|
+
getter: {name: 'variable', invoker: lambda { |widget, args| @tk.variable&.value.to_i == 1 }},
|
225
|
+
setter: {name: 'variable=', invoker: lambda { |widget, args| @tk.variable&.value = args.first.is_a?(Integer) ? args.first : (args.first ? 1 : 0) }},
|
226
|
+
},
|
227
|
+
},
|
215
228
|
::Tk::Tile::TCombobox => {
|
216
229
|
'text' => {
|
217
230
|
getter: {name: 'text', invoker: lambda { |widget, args| @tk.textvariable&.value }},
|
@@ -239,6 +252,13 @@ module Glimmer
|
|
239
252
|
|
240
253
|
def widget_attribute_listener_installers
|
241
254
|
@tk_widget_attribute_listener_installers ||= {
|
255
|
+
::Tk::Tile::TCheckbutton => {
|
256
|
+
'variable' => lambda do |observer|
|
257
|
+
@tk.command {
|
258
|
+
observer.call(@tk.variable.value.to_i == 1)
|
259
|
+
}
|
260
|
+
end,
|
261
|
+
},
|
242
262
|
::Tk::Tile::TCombobox => {
|
243
263
|
'text' => lambda do |observer|
|
244
264
|
if observer.is_a?(Glimmer::DataBinding::ModelBinding)
|
data/lib/glimmer-dsl-tk.rb
CHANGED
@@ -0,0 +1,89 @@
|
|
1
|
+
# Copyright (c) 2020-2021 Andy Maleh
|
2
|
+
#
|
3
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
# a copy of this software and associated documentation files (the
|
5
|
+
# "Software"), to deal in the Software without restriction, including
|
6
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
# the following conditions:
|
10
|
+
#
|
11
|
+
# The above copyright notice and this permission notice shall be
|
12
|
+
# included in all copies or substantial portions of the Software.
|
13
|
+
#
|
14
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
21
|
+
|
22
|
+
require 'glimmer-dsl-tk'
|
23
|
+
|
24
|
+
class HelloCheckbutton
|
25
|
+
class Person
|
26
|
+
attr_accessor :skiing, :snowboarding, :snowmobiling, :snowshoeing
|
27
|
+
|
28
|
+
def initialize
|
29
|
+
reset_activities!
|
30
|
+
end
|
31
|
+
|
32
|
+
def reset_activities!
|
33
|
+
self.skiing = false
|
34
|
+
self.snowboarding = true
|
35
|
+
self.snowmobiling = false
|
36
|
+
self.snowshoeing = false
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
include Glimmer
|
41
|
+
|
42
|
+
def initialize
|
43
|
+
@person = Person.new
|
44
|
+
end
|
45
|
+
|
46
|
+
def launch
|
47
|
+
root {
|
48
|
+
title 'Hello, Checkbutton!'
|
49
|
+
background '#ececec' if OS.mac?
|
50
|
+
|
51
|
+
label {
|
52
|
+
text 'Check all snow activities you are interested in:'
|
53
|
+
font 'caption'
|
54
|
+
}
|
55
|
+
|
56
|
+
frame {
|
57
|
+
checkbutton {
|
58
|
+
text 'Skiing'
|
59
|
+
variable <=> [@person, :skiing]
|
60
|
+
}
|
61
|
+
|
62
|
+
checkbutton {
|
63
|
+
text 'Snowboarding'
|
64
|
+
variable <=> [@person, :snowboarding]
|
65
|
+
}
|
66
|
+
|
67
|
+
checkbutton {
|
68
|
+
text 'Snowmobiling'
|
69
|
+
variable <=> [@person, :snowmobiling]
|
70
|
+
}
|
71
|
+
|
72
|
+
checkbutton {
|
73
|
+
text 'Snowshoeing'
|
74
|
+
variable <=> [@person, :snowshoeing]
|
75
|
+
}
|
76
|
+
}
|
77
|
+
|
78
|
+
button {
|
79
|
+
text 'Reset Activities'
|
80
|
+
|
81
|
+
command do
|
82
|
+
@person.reset_activities!
|
83
|
+
end
|
84
|
+
}
|
85
|
+
}.open
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
HelloCheckbutton.new.launch
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: glimmer-dsl-tk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.22
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- AndyMaleh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-10-
|
11
|
+
date: 2021-10-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: glimmer
|
@@ -38,6 +38,26 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 0.13.1
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: os
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 1.0.0
|
48
|
+
- - "<"
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: 2.0.0
|
51
|
+
type: :runtime
|
52
|
+
prerelease: false
|
53
|
+
version_requirements: !ruby/object:Gem::Requirement
|
54
|
+
requirements:
|
55
|
+
- - ">="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: 1.0.0
|
58
|
+
- - "<"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: 2.0.0
|
41
61
|
- !ruby/object:Gem::Dependency
|
42
62
|
name: tk
|
43
63
|
requirement: !ruby/object:Gem::Requirement
|
@@ -203,6 +223,7 @@ files:
|
|
203
223
|
- lib/glimmer/dsl/tk/shine_data_binding_expression.rb
|
204
224
|
- lib/glimmer/dsl/tk/widget_expression.rb
|
205
225
|
- lib/glimmer/tk/button_proxy.rb
|
226
|
+
- lib/glimmer/tk/checkbutton_proxy.rb
|
206
227
|
- lib/glimmer/tk/entry_proxy.rb
|
207
228
|
- lib/glimmer/tk/frame_proxy.rb
|
208
229
|
- lib/glimmer/tk/label_proxy.rb
|
@@ -212,6 +233,7 @@ files:
|
|
212
233
|
- lib/glimmer/tk/treeview_proxy.rb
|
213
234
|
- lib/glimmer/tk/widget_proxy.rb
|
214
235
|
- samples/hello/hello_button.rb
|
236
|
+
- samples/hello/hello_checkbutton.rb
|
215
237
|
- samples/hello/hello_combobox.rb
|
216
238
|
- samples/hello/hello_computed.rb
|
217
239
|
- samples/hello/hello_computed/contact.rb
|
@@ -252,7 +274,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
252
274
|
- !ruby/object:Gem::Version
|
253
275
|
version: '0'
|
254
276
|
requirements: []
|
255
|
-
rubygems_version: 3.2.
|
277
|
+
rubygems_version: 3.2.22
|
256
278
|
signing_key:
|
257
279
|
specification_version: 4
|
258
280
|
summary: Glimmer DSL for Tk
|