glimmer-dsl-tk 0.0.42 → 0.0.43
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 +8 -1
- data/README.md +96 -37
- data/VERSION +1 -1
- data/glimmer-dsl-tk.gemspec +0 -0
- data/lib/glimmer/tk/widget_proxy.rb +2 -2
- data/lib/glimmer-dsl-tk.rb +2 -1
- data/lib/os.rb +36 -0
- data/samples/hello/hello_drag_and_drop.rb +94 -35
- metadata +2 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e07fd35aa994530b829c419c68d6ddb23e443055e374f1777ef78e1b4f3235c2
|
4
|
+
data.tar.gz: d543e113f866f4f28c5093f4d69b86910387bf4630b8ad58e64877f83bd054e4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 99ce3e9598f70e10b3a4ee882f584cbfca9d6f41bce358f71e7028911ad2274788c55428175a1805484dfcd3dc6251da7251d592d0312861bf96872966626ba5
|
7
|
+
data.tar.gz: 96fdf7e866610ced773cdaa62bc097b0eac5845d57691d860053b78b543205e343c00f23a45a0d7e32471d33070b89359a021ccafff71d75ba230bb6f2da3889
|
data/CHANGELOG.md
CHANGED
@@ -1,10 +1,17 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## 0.0.43
|
4
|
+
|
5
|
+
- Modified Hello, Drag and Drop! to include a list
|
6
|
+
- Removed the need to require `'glimmer/tk/drag_and_drop_extension'` to do drag and drop; it is automatically included in `require 'glimmer-dsl-tk'` now.
|
7
|
+
- Remove 'os' gem due to Tk having the capability to detect the OS it is on using `Tk.windowingsystem` (include Glimmer implementation of `OS` class having `OS.mac?`, `OS.windows?` and `OS.linux?`)
|
8
|
+
- Default to 'clam' Tk theme on Linux ('alt' looks a bit too classic with certain widgets)
|
9
|
+
|
3
10
|
## 0.0.42
|
4
11
|
|
5
12
|
- Add vertical/horizontal scrollbars to Meta-Sample
|
6
13
|
- Keep only vertical scrollbar in Hello, Text!
|
7
|
-
- Fix issue with including bwidgets and iwidgets in Windows
|
14
|
+
- Fix issue with including bwidgets and iwidgets in Windows (by removing from default requires, leaving to users to require manually when needed only and only systems that support them)
|
8
15
|
- Fix Hello, Menu Bar! sample in Windows (by disabling Windows-special System menu, which does not seem to be working in Tk)
|
9
16
|
|
10
17
|
## 0.0.41
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=85 />](https://github.com/AndyObtiva/glimmer) Glimmer DSL for Tk 0.0.
|
1
|
+
# [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=85 />](https://github.com/AndyObtiva/glimmer) Glimmer DSL for Tk 0.0.43
|
2
2
|
## MRI Ruby Desktop Development GUI Library
|
3
3
|
[](http://badge.fury.io/rb/glimmer-dsl-tk)
|
4
4
|
[](https://github.com/AndyObtiva/glimmer-dsl-tk/actions/workflows/ruby.yml)
|
@@ -181,7 +181,7 @@ gem install glimmer-dsl-tk
|
|
181
181
|
|
182
182
|
Add the following to `Gemfile`:
|
183
183
|
```
|
184
|
-
gem 'glimmer-dsl-tk', '0.0.
|
184
|
+
gem 'glimmer-dsl-tk', '0.0.43'
|
185
185
|
```
|
186
186
|
|
187
187
|
And, then run:
|
@@ -2683,27 +2683,31 @@ Glimmer app:
|
|
2683
2683
|
Glimmer code (from [samples/hello/hello_drag_and_drop.rb](samples/hello/hello_drag_and_drop.rb)):
|
2684
2684
|
|
2685
2685
|
```ruby
|
2686
|
-
require
|
2687
|
-
require "glimmer/tk/drag_and_drop_extension"
|
2686
|
+
require 'glimmer-dsl-tk'
|
2688
2687
|
|
2689
2688
|
include Glimmer
|
2690
2689
|
|
2691
2690
|
root {
|
2692
2691
|
title "Hello, Drag and Drop!"
|
2692
|
+
|
2693
2693
|
frame {
|
2694
2694
|
padding 5
|
2695
|
+
|
2695
2696
|
labelframe {
|
2696
2697
|
text "Drag sources"
|
2697
2698
|
padding 5
|
2699
|
+
|
2698
2700
|
label {
|
2699
|
-
text "Entry"
|
2700
2701
|
grid :row => 0, :column => 0
|
2702
|
+
text "Entry"
|
2701
2703
|
}
|
2704
|
+
|
2702
2705
|
entry {
|
2706
|
+
grid :row => 0, :column => 1, :pady => 5, :sticky => "e"
|
2703
2707
|
text "Drag entry text"
|
2704
2708
|
width 30
|
2705
|
-
|
2706
|
-
on_drag_start
|
2709
|
+
|
2710
|
+
on_drag_start do |event|
|
2707
2711
|
event.data = event.source.textvariable&.value
|
2708
2712
|
event.source.configure(:cursor => "hand2")
|
2709
2713
|
TkLabel.new(event.tooltip) {
|
@@ -2712,111 +2716,166 @@ root {
|
|
2712
2716
|
bitmap "warning"
|
2713
2717
|
compound "right"
|
2714
2718
|
}.pack
|
2715
|
-
|
2716
|
-
|
2719
|
+
end
|
2720
|
+
|
2721
|
+
on_drag_motion do |event|
|
2717
2722
|
if event.drop_accepted
|
2718
2723
|
event.source.configure(:cursor => "hand1")
|
2719
2724
|
else
|
2720
2725
|
event.source.configure(:cursor => "hand2")
|
2721
2726
|
end
|
2722
2727
|
event.tooltip.geometry("+#{event.x_root + 10}+#{event.y_root - 4}")
|
2723
|
-
|
2728
|
+
end
|
2724
2729
|
}
|
2730
|
+
|
2725
2731
|
label {
|
2726
|
-
text "Label"
|
2727
2732
|
grid :row => 1, :column => 0
|
2733
|
+
text "Label"
|
2728
2734
|
}
|
2735
|
+
|
2729
2736
|
label {
|
2737
|
+
grid :row => 1, :column => 1, :pady => 10, :sticky => "e"
|
2730
2738
|
text "Drag label text"
|
2731
2739
|
width 30
|
2732
|
-
grid :row => 1, :column => 1, :pady => 10, :sticky => "e"
|
2733
2740
|
drag_source true
|
2734
2741
|
}
|
2742
|
+
|
2735
2743
|
label {
|
2736
|
-
text "Combobox"
|
2737
2744
|
grid :row => 2, :column => 0
|
2745
|
+
text "Combobox"
|
2738
2746
|
}
|
2747
|
+
|
2739
2748
|
combobox {
|
2749
|
+
grid :row => 2, :column => 1, :pady => 5, :sticky => "e"
|
2740
2750
|
text "Spain"
|
2741
2751
|
values %w[USA Canada Mexico Columbia UK Australia Germany Italy Spain]
|
2742
2752
|
width 27
|
2743
|
-
|
2744
|
-
on_drag_start
|
2753
|
+
|
2754
|
+
on_drag_start do |event|
|
2745
2755
|
event.data = event.source.textvariable&.value
|
2746
|
-
|
2756
|
+
end
|
2747
2757
|
}
|
2758
|
+
|
2748
2759
|
label {
|
2749
|
-
text "Button"
|
2750
2760
|
grid :row => 3, :column => 0
|
2761
|
+
text 'List'
|
2762
|
+
}
|
2763
|
+
|
2764
|
+
country_list = list {
|
2765
|
+
grid :row => 3, :column => 1, :pady => 5, :sticky => "e"
|
2766
|
+
selectmode 'browse'
|
2767
|
+
items %w[USA Canada Mexico]
|
2768
|
+
selection 'Canada'
|
2769
|
+
height 3
|
2770
|
+
|
2771
|
+
on_drag_start do |event|
|
2772
|
+
event.data = event.source.selection.to_a.first.text
|
2773
|
+
end
|
2774
|
+
}
|
2775
|
+
|
2776
|
+
label {
|
2777
|
+
grid :row => 4, :column => 0
|
2778
|
+
text "Button"
|
2751
2779
|
}
|
2780
|
+
|
2752
2781
|
button {
|
2782
|
+
grid :row => 4, :column => 1, :pady => 5, :sticky => "w"
|
2753
2783
|
text "Drag it"
|
2754
|
-
grid :row => 3, :column => 1, :pady => 5, :sticky => "w"
|
2755
2784
|
drag_source true
|
2756
2785
|
}
|
2757
2786
|
}
|
2758
2787
|
|
2759
2788
|
labelframe {
|
2760
|
-
text "Drop targets"
|
2761
2789
|
grid :sticky => "nsew", :pady => 15
|
2790
|
+
text "Drop targets"
|
2762
2791
|
padding 5
|
2792
|
+
|
2763
2793
|
label {
|
2764
|
-
text "Entry"
|
2765
2794
|
grid :row => 0, :column => 0
|
2795
|
+
text "Entry"
|
2766
2796
|
}
|
2797
|
+
|
2767
2798
|
entry {
|
2768
|
-
width 30
|
2769
2799
|
grid :row => 0, :column => 1, :pady => 5, :sticky => "e"
|
2800
|
+
width 30
|
2801
|
+
|
2770
2802
|
on_drop { |event|
|
2771
2803
|
event.target.textvariable.value = event.data
|
2772
2804
|
}
|
2773
2805
|
}
|
2806
|
+
|
2774
2807
|
label {
|
2775
|
-
text "Label"
|
2776
2808
|
grid :row => 1, :column => 0
|
2809
|
+
text "Label"
|
2777
2810
|
}
|
2811
|
+
|
2778
2812
|
label {
|
2779
|
-
width 30
|
2780
2813
|
grid :row => 1, :column => 1, :pady => 10, :sticky => "e"
|
2814
|
+
width 30
|
2781
2815
|
borderwidth 2
|
2782
2816
|
relief "solid"
|
2783
|
-
|
2817
|
+
|
2818
|
+
on_drop do |event|
|
2784
2819
|
event.target.textvariable.value = event.data
|
2785
|
-
|
2820
|
+
end
|
2786
2821
|
}
|
2822
|
+
|
2787
2823
|
label {
|
2788
|
-
text "Combobox"
|
2789
2824
|
grid :row => 2, :column => 0
|
2825
|
+
text "Combobox"
|
2790
2826
|
}
|
2827
|
+
|
2791
2828
|
combobox {
|
2792
|
-
width 27
|
2793
2829
|
grid :row => 2, :column => 1, :pady => 5, :sticky => "e"
|
2794
|
-
|
2830
|
+
width 27
|
2831
|
+
|
2832
|
+
on_drop do |event|
|
2795
2833
|
event.target.textvariable.value = event.data
|
2796
|
-
|
2834
|
+
end
|
2835
|
+
}
|
2836
|
+
|
2837
|
+
label {
|
2838
|
+
grid :row => 3, :column => 0
|
2839
|
+
text 'List'
|
2840
|
+
}
|
2841
|
+
|
2842
|
+
list {
|
2843
|
+
grid :row => 3, :column => 1, :pady => 5, :sticky => "e"
|
2844
|
+
selectmode 'browse'
|
2845
|
+
height 3
|
2846
|
+
|
2847
|
+
on_drop do |event|
|
2848
|
+
event.target.insert('', 'end', :text => event.data)
|
2849
|
+
end
|
2797
2850
|
}
|
2851
|
+
|
2798
2852
|
label {
|
2853
|
+
grid :row => 4, :column => 0
|
2799
2854
|
text "Button"
|
2800
|
-
grid :row => 3, :column => 0
|
2801
2855
|
}
|
2856
|
+
|
2802
2857
|
button {
|
2858
|
+
grid :row => 4, :column => 1, :pady => 5, :sticky => "w"
|
2803
2859
|
text "Drop here"
|
2804
|
-
|
2805
|
-
on_drop
|
2860
|
+
|
2861
|
+
on_drop do |event|
|
2806
2862
|
event.target.text = event.data
|
2807
|
-
|
2863
|
+
end
|
2808
2864
|
}
|
2865
|
+
|
2809
2866
|
label {
|
2867
|
+
grid :row => 5, :column => 0
|
2810
2868
|
text "Checkbutton"
|
2811
|
-
grid :row => 4, :column => 0
|
2812
2869
|
}
|
2870
|
+
|
2813
2871
|
checkbutton {
|
2872
|
+
grid :row => 5, :column => 1, :pady => 5, :sticky => "w"
|
2814
2873
|
text "Drop here to destroy a widget\n(except button)"
|
2815
|
-
|
2816
|
-
on_drop
|
2874
|
+
|
2875
|
+
on_drop do |event|
|
2817
2876
|
event.target.text = event.data
|
2818
2877
|
event.source.destroy unless event.source.is_a? Tk::Button
|
2819
|
-
|
2878
|
+
end
|
2820
2879
|
}
|
2821
2880
|
}
|
2822
2881
|
}
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.43
|
data/glimmer-dsl-tk.gemspec
CHANGED
Binary file
|
@@ -49,10 +49,10 @@ module Glimmer
|
|
49
49
|
# TODO consider exposing this via Glimmer::Config
|
50
50
|
potential_tk_widget_class_names = [
|
51
51
|
"::Tk::Tile::#{tk_widget_class_basename}",
|
52
|
-
"::Tk::BWidget::#{tk_widget_class_basename}",
|
53
|
-
"::Tk::Iwidgets::#{tk_widget_class_basename}",
|
54
52
|
"::Tk#{tk_widget_class_basename}",
|
55
53
|
"::Tk::#{tk_widget_class_basename}",
|
54
|
+
"::Tk::BWidget::#{tk_widget_class_basename}",
|
55
|
+
"::Tk::Iwidgets::#{tk_widget_class_basename}",
|
56
56
|
"::Glimmer::Tk::#{tk_widget_class_basename}Proxy",
|
57
57
|
]
|
58
58
|
tk_widget_class = nil
|
data/lib/glimmer-dsl-tk.rb
CHANGED
@@ -39,6 +39,7 @@ require 'delegate'
|
|
39
39
|
# require 'ext/glimmer/config'
|
40
40
|
# require 'ext/glimmer'
|
41
41
|
require 'glimmer/dsl/tk/dsl'
|
42
|
+
require 'glimmer/tk/drag_and_drop_extension'
|
42
43
|
|
43
44
|
Glimmer::Config.loop_max_count = -1
|
44
45
|
|
@@ -48,7 +49,7 @@ Glimmer::Config.excluded_keyword_checkers << lambda do |method_symbol, *args|
|
|
48
49
|
result ||= method == 'load_iseq'
|
49
50
|
end
|
50
51
|
|
51
|
-
Tk::Tile::Style.theme_use '
|
52
|
+
Tk::Tile::Style.theme_use 'clam' if OS.linux?
|
52
53
|
|
53
54
|
::TkOption.add '*tearOff', 0
|
54
55
|
|
data/lib/os.rb
ADDED
@@ -0,0 +1,36 @@
|
|
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
|
+
class OS
|
23
|
+
class << self
|
24
|
+
def mac?
|
25
|
+
Tk.windowingsystem == 'aqua'
|
26
|
+
end
|
27
|
+
|
28
|
+
def windows?
|
29
|
+
Tk.windowingsystem == 'win32'
|
30
|
+
end
|
31
|
+
|
32
|
+
def linux?
|
33
|
+
Tk.windowingsystem == 'x11'
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -19,27 +19,31 @@
|
|
19
19
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
20
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
21
21
|
|
22
|
-
require
|
23
|
-
require "glimmer/tk/drag_and_drop_extension"
|
22
|
+
require 'glimmer-dsl-tk'
|
24
23
|
|
25
24
|
include Glimmer
|
26
25
|
|
27
26
|
root {
|
28
27
|
title "Hello, Drag and Drop!"
|
28
|
+
|
29
29
|
frame {
|
30
30
|
padding 5
|
31
|
+
|
31
32
|
labelframe {
|
32
33
|
text "Drag sources"
|
33
34
|
padding 5
|
35
|
+
|
34
36
|
label {
|
35
|
-
text "Entry"
|
36
37
|
grid :row => 0, :column => 0
|
38
|
+
text "Entry"
|
37
39
|
}
|
40
|
+
|
38
41
|
entry {
|
42
|
+
grid :row => 0, :column => 1, :pady => 5, :sticky => "e"
|
39
43
|
text "Drag entry text"
|
40
44
|
width 30
|
41
|
-
|
42
|
-
on_drag_start
|
45
|
+
|
46
|
+
on_drag_start do |event|
|
43
47
|
event.data = event.source.textvariable&.value
|
44
48
|
event.source.configure(:cursor => "hand2")
|
45
49
|
TkLabel.new(event.tooltip) {
|
@@ -48,111 +52,166 @@ root {
|
|
48
52
|
bitmap "warning"
|
49
53
|
compound "right"
|
50
54
|
}.pack
|
51
|
-
|
52
|
-
|
55
|
+
end
|
56
|
+
|
57
|
+
on_drag_motion do |event|
|
53
58
|
if event.drop_accepted
|
54
59
|
event.source.configure(:cursor => "hand1")
|
55
60
|
else
|
56
61
|
event.source.configure(:cursor => "hand2")
|
57
62
|
end
|
58
63
|
event.tooltip.geometry("+#{event.x_root + 10}+#{event.y_root - 4}")
|
59
|
-
|
64
|
+
end
|
60
65
|
}
|
66
|
+
|
61
67
|
label {
|
62
|
-
text "Label"
|
63
68
|
grid :row => 1, :column => 0
|
69
|
+
text "Label"
|
64
70
|
}
|
71
|
+
|
65
72
|
label {
|
73
|
+
grid :row => 1, :column => 1, :pady => 10, :sticky => "e"
|
66
74
|
text "Drag label text"
|
67
75
|
width 30
|
68
|
-
grid :row => 1, :column => 1, :pady => 10, :sticky => "e"
|
69
76
|
drag_source true
|
70
77
|
}
|
78
|
+
|
71
79
|
label {
|
72
|
-
text "Combobox"
|
73
80
|
grid :row => 2, :column => 0
|
81
|
+
text "Combobox"
|
74
82
|
}
|
83
|
+
|
75
84
|
combobox {
|
85
|
+
grid :row => 2, :column => 1, :pady => 5, :sticky => "e"
|
76
86
|
text "Spain"
|
77
87
|
values %w[USA Canada Mexico Columbia UK Australia Germany Italy Spain]
|
78
88
|
width 27
|
79
|
-
|
80
|
-
on_drag_start
|
89
|
+
|
90
|
+
on_drag_start do |event|
|
81
91
|
event.data = event.source.textvariable&.value
|
82
|
-
|
92
|
+
end
|
83
93
|
}
|
94
|
+
|
84
95
|
label {
|
85
|
-
text "Button"
|
86
96
|
grid :row => 3, :column => 0
|
97
|
+
text 'List'
|
98
|
+
}
|
99
|
+
|
100
|
+
country_list = list {
|
101
|
+
grid :row => 3, :column => 1, :pady => 5, :sticky => "e"
|
102
|
+
selectmode 'browse'
|
103
|
+
items %w[USA Canada Mexico]
|
104
|
+
selection 'Canada'
|
105
|
+
height 3
|
106
|
+
|
107
|
+
on_drag_start do |event|
|
108
|
+
event.data = event.source.selection.to_a.first.text
|
109
|
+
end
|
110
|
+
}
|
111
|
+
|
112
|
+
label {
|
113
|
+
grid :row => 4, :column => 0
|
114
|
+
text "Button"
|
87
115
|
}
|
116
|
+
|
88
117
|
button {
|
118
|
+
grid :row => 4, :column => 1, :pady => 5, :sticky => "w"
|
89
119
|
text "Drag it"
|
90
|
-
grid :row => 3, :column => 1, :pady => 5, :sticky => "w"
|
91
120
|
drag_source true
|
92
121
|
}
|
93
122
|
}
|
94
123
|
|
95
124
|
labelframe {
|
96
|
-
text "Drop targets"
|
97
125
|
grid :sticky => "nsew", :pady => 15
|
126
|
+
text "Drop targets"
|
98
127
|
padding 5
|
128
|
+
|
99
129
|
label {
|
100
|
-
text "Entry"
|
101
130
|
grid :row => 0, :column => 0
|
131
|
+
text "Entry"
|
102
132
|
}
|
133
|
+
|
103
134
|
entry {
|
104
|
-
width 30
|
105
135
|
grid :row => 0, :column => 1, :pady => 5, :sticky => "e"
|
136
|
+
width 30
|
137
|
+
|
106
138
|
on_drop { |event|
|
107
139
|
event.target.textvariable.value = event.data
|
108
140
|
}
|
109
141
|
}
|
142
|
+
|
110
143
|
label {
|
111
|
-
text "Label"
|
112
144
|
grid :row => 1, :column => 0
|
145
|
+
text "Label"
|
113
146
|
}
|
147
|
+
|
114
148
|
label {
|
115
|
-
width 30
|
116
149
|
grid :row => 1, :column => 1, :pady => 10, :sticky => "e"
|
150
|
+
width 30
|
117
151
|
borderwidth 2
|
118
152
|
relief "solid"
|
119
|
-
|
153
|
+
|
154
|
+
on_drop do |event|
|
120
155
|
event.target.textvariable.value = event.data
|
121
|
-
|
156
|
+
end
|
122
157
|
}
|
158
|
+
|
123
159
|
label {
|
124
|
-
text "Combobox"
|
125
160
|
grid :row => 2, :column => 0
|
161
|
+
text "Combobox"
|
126
162
|
}
|
163
|
+
|
127
164
|
combobox {
|
128
|
-
width 27
|
129
165
|
grid :row => 2, :column => 1, :pady => 5, :sticky => "e"
|
130
|
-
|
166
|
+
width 27
|
167
|
+
|
168
|
+
on_drop do |event|
|
131
169
|
event.target.textvariable.value = event.data
|
132
|
-
|
170
|
+
end
|
133
171
|
}
|
172
|
+
|
134
173
|
label {
|
135
|
-
text "Button"
|
136
174
|
grid :row => 3, :column => 0
|
175
|
+
text 'List'
|
176
|
+
}
|
177
|
+
|
178
|
+
list {
|
179
|
+
grid :row => 3, :column => 1, :pady => 5, :sticky => "e"
|
180
|
+
selectmode 'browse'
|
181
|
+
height 3
|
182
|
+
|
183
|
+
on_drop do |event|
|
184
|
+
event.target.insert('', 'end', :text => event.data)
|
185
|
+
end
|
186
|
+
}
|
187
|
+
|
188
|
+
label {
|
189
|
+
grid :row => 4, :column => 0
|
190
|
+
text "Button"
|
137
191
|
}
|
192
|
+
|
138
193
|
button {
|
194
|
+
grid :row => 4, :column => 1, :pady => 5, :sticky => "w"
|
139
195
|
text "Drop here"
|
140
|
-
|
141
|
-
on_drop
|
196
|
+
|
197
|
+
on_drop do |event|
|
142
198
|
event.target.text = event.data
|
143
|
-
|
199
|
+
end
|
144
200
|
}
|
201
|
+
|
145
202
|
label {
|
203
|
+
grid :row => 5, :column => 0
|
146
204
|
text "Checkbutton"
|
147
|
-
grid :row => 4, :column => 0
|
148
205
|
}
|
206
|
+
|
149
207
|
checkbutton {
|
208
|
+
grid :row => 5, :column => 1, :pady => 5, :sticky => "w"
|
150
209
|
text "Drop here to destroy a widget\n(except button)"
|
151
|
-
|
152
|
-
on_drop
|
210
|
+
|
211
|
+
on_drop do |event|
|
153
212
|
event.target.text = event.data
|
154
213
|
event.source.destroy unless event.source.is_a? Tk::Button
|
155
|
-
|
214
|
+
end
|
156
215
|
}
|
157
216
|
}
|
158
217
|
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
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.43
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- AndyMaleh
|
@@ -38,26 +38,6 @@ 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
|
61
41
|
- !ruby/object:Gem::Dependency
|
62
42
|
name: tk
|
63
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -246,6 +226,7 @@ files:
|
|
246
226
|
- lib/glimmer/tk/treeview_proxy.rb
|
247
227
|
- lib/glimmer/tk/variable_owner.rb
|
248
228
|
- lib/glimmer/tk/widget_proxy.rb
|
229
|
+
- lib/os.rb
|
249
230
|
- samples/elaborate/meta_sample.rb
|
250
231
|
- samples/hello/hello_built_in_dialog.rb
|
251
232
|
- samples/hello/hello_button.rb
|