glimmer-dsl-swt 4.20.13.6 → 4.20.13.10
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 +17 -0
- data/README.md +5 -5
- data/VERSION +1 -1
- data/docs/reference/GLIMMER_SAMPLES.md +13 -0
- data/docs/reference/GLIMMER_STYLE_GUIDE.md +2 -1
- data/glimmer-dsl-swt.gemspec +0 -0
- data/lib/glimmer/rake_task/scaffold.rb +14 -14
- data/lib/glimmer/swt/custom/code_text.rb +4 -4
- data/lib/glimmer/swt/custom/shape.rb +1 -1
- data/lib/glimmer/swt/image_proxy.rb +1 -1
- data/samples/elaborate/calculator.rb +2 -2
- data/samples/elaborate/contact_manager.rb +2 -2
- data/samples/elaborate/klondike_solitaire.rb +93 -0
- data/samples/elaborate/klondike_solitaire/model/column_pile.rb +60 -0
- data/samples/elaborate/klondike_solitaire/model/dealing_pile.rb +33 -0
- data/samples/elaborate/klondike_solitaire/model/dealt_pile.rb +25 -0
- data/samples/elaborate/klondike_solitaire/model/foundation_pile.rb +40 -0
- data/samples/elaborate/klondike_solitaire/model/game.rb +37 -0
- data/samples/elaborate/klondike_solitaire/model/playing_card.rb +86 -0
- data/samples/elaborate/klondike_solitaire/view/action_panel.rb +30 -0
- data/samples/elaborate/klondike_solitaire/view/column_pile.rb +66 -0
- data/samples/elaborate/klondike_solitaire/view/dealing_pile.rb +36 -0
- data/samples/elaborate/klondike_solitaire/view/dealt_pile.rb +38 -0
- data/samples/elaborate/klondike_solitaire/view/empty_playing_card.rb +33 -0
- data/samples/elaborate/klondike_solitaire/view/foundation_pile.rb +59 -0
- data/samples/elaborate/klondike_solitaire/view/hidden_playing_card.rb +26 -0
- data/samples/elaborate/klondike_solitaire/view/playing_card.rb +35 -0
- data/samples/elaborate/klondike_solitaire/view/tableau.rb +41 -0
- data/samples/elaborate/login.rb +2 -2
- data/samples/elaborate/mandelbrot_fractal.rb +12 -12
- data/samples/elaborate/meta_sample.rb +2 -2
- data/samples/elaborate/metronome.rb +2 -2
- data/samples/elaborate/stock_ticker.rb +8 -8
- data/samples/elaborate/tetris.rb +4 -4
- data/samples/elaborate/tetris/view/bevel.rb +2 -2
- data/samples/elaborate/tetris/view/score_lane.rb +2 -2
- data/samples/elaborate/tic_tac_toe.rb +6 -6
- data/samples/elaborate/timer.rb +4 -4
- data/samples/elaborate/weather.rb +4 -4
- data/samples/hello/hello_button.rb +2 -2
- data/samples/hello/hello_c_combo.rb +2 -2
- data/samples/hello/hello_canvas.rb +4 -4
- data/samples/hello/hello_canvas_animation.rb +2 -2
- data/samples/hello/hello_canvas_data_binding.rb +2 -2
- data/samples/hello/hello_checkbox.rb +2 -2
- data/samples/hello/hello_checkbox_group.rb +2 -2
- data/samples/hello/hello_code_text.rb +2 -2
- data/samples/hello/hello_color_dialog.rb +2 -2
- data/samples/hello/hello_combo.rb +2 -2
- data/samples/hello/hello_computed.rb +14 -22
- data/samples/hello/hello_cool_bar.rb +2 -2
- data/samples/hello/hello_cursor.rb +2 -2
- data/samples/hello/hello_custom_shape.rb +2 -2
- data/samples/hello/hello_custom_shell.rb +2 -2
- data/samples/hello/hello_custom_widget.rb +4 -4
- data/samples/hello/hello_date_time.rb +2 -2
- data/samples/hello/hello_directory_dialog.rb +2 -2
- data/samples/hello/hello_file_dialog.rb +2 -2
- data/samples/hello/hello_font_dialog.rb +2 -2
- data/samples/hello/hello_group.rb +2 -2
- data/samples/hello/hello_list_multi_selection.rb +2 -2
- data/samples/hello/hello_list_single_selection.rb +2 -2
- data/samples/hello/hello_progress_bar.rb +2 -2
- data/samples/hello/hello_radio.rb +2 -2
- data/samples/hello/hello_radio_group.rb +2 -2
- data/samples/hello/hello_scale.rb +2 -2
- data/samples/hello/hello_spinner.rb +2 -2
- data/samples/hello/hello_table.rb +2 -2
- data/samples/hello/hello_text.rb +2 -2
- data/samples/hello/hello_tool_bar.rb +2 -2
- data/samples/hello/hello_tray_item.rb +2 -2
- data/samples/hello/hello_tree.rb +4 -4
- metadata +18 -2
@@ -26,7 +26,7 @@ class HelloCodeText
|
|
26
26
|
|
27
27
|
attr_accessor :ruby_code, :js_code, :html_code
|
28
28
|
|
29
|
-
before_body
|
29
|
+
before_body do
|
30
30
|
self.ruby_code = <<~RUBY
|
31
31
|
greeting = 'Hello, World!'
|
32
32
|
|
@@ -73,7 +73,7 @@ class HelloCodeText
|
|
73
73
|
</body>
|
74
74
|
</html>
|
75
75
|
HTML
|
76
|
-
|
76
|
+
end
|
77
77
|
|
78
78
|
body {
|
79
79
|
shell {
|
@@ -44,13 +44,13 @@ class HelloComputed
|
|
44
44
|
|
45
45
|
include Glimmer::UI::CustomShell
|
46
46
|
|
47
|
-
before_body
|
47
|
+
before_body do
|
48
48
|
@contact = Contact.new(
|
49
49
|
first_name: 'Barry',
|
50
50
|
last_name: 'McKibbin',
|
51
51
|
year_of_birth: 1985
|
52
52
|
)
|
53
|
-
|
53
|
+
end
|
54
54
|
|
55
55
|
body {
|
56
56
|
shell {
|
@@ -66,51 +66,43 @@ class HelloComputed
|
|
66
66
|
|
67
67
|
label {text 'First &Name: '}
|
68
68
|
text {
|
69
|
+
fill_horizontally_layout_data
|
69
70
|
text <=> [@contact, :first_name]
|
70
|
-
layout_data {
|
71
|
-
horizontal_alignment :fill
|
72
|
-
grab_excess_horizontal_space true
|
73
|
-
}
|
74
71
|
}
|
75
72
|
|
76
73
|
label {text '&Last Name: '}
|
77
74
|
text {
|
75
|
+
fill_horizontally_layout_data
|
78
76
|
text <=> [@contact, :last_name]
|
79
|
-
layout_data {
|
80
|
-
horizontal_alignment :fill
|
81
|
-
grab_excess_horizontal_space true
|
82
|
-
}
|
83
77
|
}
|
84
78
|
|
85
79
|
label {text '&Year of Birth: '}
|
86
80
|
text {
|
81
|
+
fill_horizontally_layout_data
|
87
82
|
text <=> [@contact, :year_of_birth]
|
88
|
-
layout_data {
|
89
|
-
horizontal_alignment :fill
|
90
|
-
grab_excess_horizontal_space true
|
91
|
-
}
|
92
83
|
}
|
93
84
|
|
94
85
|
label {text 'Name: '}
|
95
86
|
label {
|
87
|
+
fill_horizontally_layout_data
|
96
88
|
text <= [@contact, :name, computed_by: [:first_name, :last_name]]
|
97
|
-
layout_data {
|
98
|
-
horizontal_alignment :fill
|
99
|
-
grab_excess_horizontal_space true
|
100
|
-
}
|
101
89
|
}
|
102
90
|
|
103
91
|
label {text 'Age: '}
|
104
92
|
label {
|
93
|
+
fill_horizontally_layout_data
|
105
94
|
text <= [@contact, :age, on_write: :to_i, computed_by: [:year_of_birth]]
|
106
|
-
layout_data {
|
107
|
-
horizontal_alignment :fill
|
108
|
-
grab_excess_horizontal_space true
|
109
|
-
}
|
110
95
|
}
|
111
96
|
}
|
112
97
|
}
|
113
98
|
}
|
99
|
+
|
100
|
+
def fill_horizontally_layout_data
|
101
|
+
layout_data {
|
102
|
+
horizontal_alignment :fill
|
103
|
+
grab_excess_horizontal_space true
|
104
|
+
}
|
105
|
+
end
|
114
106
|
end
|
115
107
|
|
116
108
|
HelloComputed.launch
|
@@ -27,12 +27,12 @@ class StickFigure
|
|
27
27
|
|
28
28
|
options :x, :y, :width, :height
|
29
29
|
|
30
|
-
before_body
|
30
|
+
before_body do
|
31
31
|
@head_width = width*0.2
|
32
32
|
@head_height = height*0.2
|
33
33
|
@trunk_height = height*0.4
|
34
34
|
@extremity_length = height*0.4
|
35
|
-
|
35
|
+
end
|
36
36
|
|
37
37
|
body {
|
38
38
|
shape(x + @head_width/2.0 + @extremity_length, y) {
|
@@ -34,9 +34,9 @@ class EmailShell
|
|
34
34
|
# single option with default value
|
35
35
|
option :to, default: '"John Irwin" <john.irwin@example.com>'
|
36
36
|
|
37
|
-
before_body
|
37
|
+
before_body do
|
38
38
|
@swt_style |= swt(:shell_trim, :modeless)
|
39
|
-
|
39
|
+
end
|
40
40
|
|
41
41
|
body {
|
42
42
|
# pass received swt_style through to shell to customize it (e.g. :dialog_trim for a blocking shell)
|
@@ -34,12 +34,12 @@ class GreetingLabel
|
|
34
34
|
# internal attribute (not a custom widget option)
|
35
35
|
attr_accessor :color
|
36
36
|
|
37
|
-
before_body
|
37
|
+
before_body do
|
38
38
|
@font = {height: 24, style: :bold}
|
39
39
|
@color = :black
|
40
|
-
|
40
|
+
end
|
41
41
|
|
42
|
-
after_body
|
42
|
+
after_body do
|
43
43
|
return if colors.nil?
|
44
44
|
|
45
45
|
Thread.new {
|
@@ -48,7 +48,7 @@ class GreetingLabel
|
|
48
48
|
sleep(1)
|
49
49
|
}
|
50
50
|
}
|
51
|
-
|
51
|
+
end
|
52
52
|
|
53
53
|
body {
|
54
54
|
# pass received swt_style through to label to customize (e.g. :center to center text)
|
@@ -28,13 +28,13 @@ class HelloProgressBar
|
|
28
28
|
attr_accessor :minimum, :maximum, :selection, :delay
|
29
29
|
end
|
30
30
|
|
31
|
-
before_body
|
31
|
+
before_body do
|
32
32
|
@progress_model = ProgressModel.new
|
33
33
|
@progress_model.minimum = 0
|
34
34
|
@progress_model.maximum = 100
|
35
35
|
@progress_model.selection = 0
|
36
36
|
@progress_model.delay = 0.01
|
37
|
-
|
37
|
+
end
|
38
38
|
|
39
39
|
body {
|
40
40
|
shell {
|
data/samples/hello/hello_text.rb
CHANGED
@@ -5,7 +5,7 @@ class HelloText
|
|
5
5
|
|
6
6
|
attr_accessor :default, :center, :left, :right, :password, :telephone, :read_only, :wrap, :multi
|
7
7
|
|
8
|
-
before_body
|
8
|
+
before_body do
|
9
9
|
self.default = 'default is :border style'
|
10
10
|
self.center = 'centered'
|
11
11
|
self.left = 'left-aligned'
|
@@ -15,7 +15,7 @@ class HelloText
|
|
15
15
|
self.read_only = 'Telephone area code is 555'
|
16
16
|
self.wrap = 'wraps if text content is too long like this example'
|
17
17
|
self.multi = "multi-line enables hitting enter,\nbut does not wrap by default"
|
18
|
-
|
18
|
+
end
|
19
19
|
|
20
20
|
body {
|
21
21
|
shell {
|
@@ -27,7 +27,7 @@ class HelloTrayItem
|
|
27
27
|
# boolean that indicates if application is visible
|
28
28
|
attr_accessor :show_application
|
29
29
|
|
30
|
-
before_body
|
30
|
+
before_body do
|
31
31
|
# application starts visible
|
32
32
|
@show_application = true
|
33
33
|
# pre-render an icon image using the Canvas Shape DSL
|
@@ -48,7 +48,7 @@ class HelloTrayItem
|
|
48
48
|
foreground :white
|
49
49
|
}
|
50
50
|
}
|
51
|
-
|
51
|
+
end
|
52
52
|
|
53
53
|
body {
|
54
54
|
shell(:shell_trim, :on_top) { # make it always appear on top of everything
|