glimmer-dsl-swt 4.18.4.5 → 4.18.4.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (148) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/LICENSE.txt +20 -20
  4. data/README.md +4 -4
  5. data/RUBY_VERSION +1 -1
  6. data/VERSION +1 -1
  7. data/bin/girb +31 -31
  8. data/bin/girb_runner.rb +34 -34
  9. data/bin/glimmer +26 -26
  10. data/docs/reference/GLIMMER_GUI_DSL_SYNTAX.md +1 -1
  11. data/docs/reference/GLIMMER_PACKAGING_AND_DISTRIBUTION.md +1 -1
  12. data/glimmer-dsl-swt.gemspec +6 -5
  13. data/lib/ext/glimmer.rb +41 -41
  14. data/lib/ext/glimmer/config.rb +167 -167
  15. data/lib/ext/rouge/themes/glimmer.rb +29 -29
  16. data/lib/glimmer-dsl-swt.rb +44 -44
  17. data/lib/glimmer/Rakefile +26 -26
  18. data/lib/glimmer/data_binding/list_selection_binding.rb +72 -72
  19. data/lib/glimmer/data_binding/observable_widget.rb +38 -38
  20. data/lib/glimmer/data_binding/shine.rb +44 -44
  21. data/lib/glimmer/data_binding/table_items_binding.rb +89 -89
  22. data/lib/glimmer/data_binding/tree_items_binding.rb +108 -108
  23. data/lib/glimmer/data_binding/widget_binding.rb +73 -73
  24. data/lib/glimmer/dsl/swt/animation_expression.rb +43 -43
  25. data/lib/glimmer/dsl/swt/async_exec_expression.rb +35 -35
  26. data/lib/glimmer/dsl/swt/bind_expression.rb +58 -58
  27. data/lib/glimmer/dsl/swt/block_property_expression.rb +41 -41
  28. data/lib/glimmer/dsl/swt/checkbox_group_selection_data_binding_expression.rb +61 -61
  29. data/lib/glimmer/dsl/swt/color_expression.rb +40 -40
  30. data/lib/glimmer/dsl/swt/column_properties_expression.rb +45 -45
  31. data/lib/glimmer/dsl/swt/combo_selection_data_binding_expression.rb +67 -67
  32. data/lib/glimmer/dsl/swt/cursor_expression.rb +44 -44
  33. data/lib/glimmer/dsl/swt/data_binding_expression.rb +55 -55
  34. data/lib/glimmer/dsl/swt/dialog_expression.rb +48 -48
  35. data/lib/glimmer/dsl/swt/directory_dialog_expression.rb +48 -48
  36. data/lib/glimmer/dsl/swt/display_expression.rb +40 -40
  37. data/lib/glimmer/dsl/swt/dnd_expression.rb +46 -46
  38. data/lib/glimmer/dsl/swt/dsl.rb +63 -63
  39. data/lib/glimmer/dsl/swt/expand_item_expression.rb +60 -60
  40. data/lib/glimmer/dsl/swt/file_dialog_expression.rb +48 -48
  41. data/lib/glimmer/dsl/swt/font_expression.rb +49 -49
  42. data/lib/glimmer/dsl/swt/image_expression.rb +50 -50
  43. data/lib/glimmer/dsl/swt/layout_data_expression.rb +46 -46
  44. data/lib/glimmer/dsl/swt/layout_expression.rb +50 -50
  45. data/lib/glimmer/dsl/swt/list_selection_data_binding_expression.rb +65 -65
  46. data/lib/glimmer/dsl/swt/menu_bar_expression.rb +54 -54
  47. data/lib/glimmer/dsl/swt/menu_expression.rb +53 -53
  48. data/lib/glimmer/dsl/swt/message_box_expression.rb +54 -54
  49. data/lib/glimmer/dsl/swt/multiply_expression.rb +53 -53
  50. data/lib/glimmer/dsl/swt/pixel_expression.rb +38 -0
  51. data/lib/glimmer/dsl/swt/property_expression.rb +46 -46
  52. data/lib/glimmer/dsl/swt/radio_group_selection_data_binding_expression.rb +61 -61
  53. data/lib/glimmer/dsl/swt/rgb_expression.rb +33 -33
  54. data/lib/glimmer/dsl/swt/rgba_expression.rb +33 -33
  55. data/lib/glimmer/dsl/swt/shape_expression.rb +54 -54
  56. data/lib/glimmer/dsl/swt/shell_expression.rb +46 -46
  57. data/lib/glimmer/dsl/swt/swt_expression.rb +46 -46
  58. data/lib/glimmer/dsl/swt/sync_exec_expression.rb +36 -36
  59. data/lib/glimmer/dsl/swt/tab_item_expression.rb +54 -54
  60. data/lib/glimmer/dsl/swt/table_items_data_binding_expression.rb +52 -52
  61. data/lib/glimmer/dsl/swt/transform_expression.rb +55 -55
  62. data/lib/glimmer/dsl/swt/tree_items_data_binding_expression.rb +52 -52
  63. data/lib/glimmer/dsl/swt/tree_properties_expression.rb +47 -47
  64. data/lib/glimmer/dsl/swt/widget_expression.rb +67 -66
  65. data/lib/glimmer/dsl/swt/widget_listener_expression.rb +53 -53
  66. data/lib/glimmer/rake_task.rb +220 -220
  67. data/lib/glimmer/rake_task/list.rb +97 -97
  68. data/lib/glimmer/rake_task/package.rb +139 -139
  69. data/lib/glimmer/rake_task/scaffold.rb +765 -765
  70. data/lib/glimmer/swt/color_proxy.rb +107 -107
  71. data/lib/glimmer/swt/cursor_proxy.rb +66 -66
  72. data/lib/glimmer/swt/custom/animation.rb +2 -5
  73. data/lib/glimmer/swt/custom/checkbox_group.rb +181 -181
  74. data/lib/glimmer/swt/custom/code_text.rb +1 -0
  75. data/lib/glimmer/swt/custom/drawable.rb +65 -49
  76. data/lib/glimmer/swt/custom/radio_group.rb +176 -176
  77. data/lib/glimmer/swt/custom/shape.rb +38 -35
  78. data/lib/glimmer/swt/date_time_proxy.rb +85 -85
  79. data/lib/glimmer/swt/directory_dialog_proxy.rb +65 -65
  80. data/lib/glimmer/swt/dnd_proxy.rb +51 -51
  81. data/lib/glimmer/swt/expand_item_proxy.rb +97 -97
  82. data/lib/glimmer/swt/file_dialog_proxy.rb +66 -66
  83. data/lib/glimmer/swt/font_proxy.rb +94 -94
  84. data/lib/glimmer/swt/image_proxy.rb +184 -184
  85. data/lib/glimmer/swt/layout_data_proxy.rb +105 -105
  86. data/lib/glimmer/swt/layout_proxy.rb +112 -112
  87. data/lib/glimmer/swt/menu_proxy.rb +126 -126
  88. data/lib/glimmer/swt/message_box_proxy.rb +89 -89
  89. data/lib/glimmer/swt/packages.rb +37 -37
  90. data/lib/glimmer/swt/properties.rb +74 -49
  91. data/lib/glimmer/swt/sash_form_proxy.rb +53 -53
  92. data/lib/glimmer/swt/scrolled_composite_proxy.rb +37 -37
  93. data/lib/glimmer/swt/style_constantizable.rb +157 -157
  94. data/lib/glimmer/swt/styled_text_proxy.rb +38 -38
  95. data/lib/glimmer/swt/swt_proxy.rb +59 -59
  96. data/lib/glimmer/swt/tab_item_proxy.rb +91 -91
  97. data/lib/glimmer/swt/table_column_proxy.rb +57 -57
  98. data/lib/glimmer/swt/transform_proxy.rb +109 -109
  99. data/lib/glimmer/swt/tree_proxy.rb +145 -145
  100. data/lib/glimmer/swt/widget_listener_proxy.rb +64 -64
  101. data/lib/glimmer/swt/widget_proxy.rb +9 -3
  102. data/lib/glimmer/ui/custom_shell.rb +82 -82
  103. data/lib/glimmer/util/proc_tracker.rb +39 -39
  104. data/samples/elaborate/contact_manager.rb +142 -142
  105. data/samples/elaborate/contact_manager/contact.rb +32 -32
  106. data/samples/elaborate/contact_manager/contact_manager_presenter.rb +47 -47
  107. data/samples/elaborate/contact_manager/contact_repository.rb +169 -169
  108. data/samples/elaborate/login.rb +123 -123
  109. data/samples/elaborate/mandelbrot_fractal.rb +103 -0
  110. data/samples/elaborate/tetris/model/block.rb +48 -48
  111. data/samples/elaborate/tetris/model/past_game.rb +39 -39
  112. data/samples/elaborate/tetris/view/playfield.rb +1 -1
  113. data/samples/elaborate/tic_tac_toe.rb +76 -76
  114. data/samples/elaborate/tic_tac_toe/board.rb +145 -145
  115. data/samples/elaborate/tic_tac_toe/cell.rb +48 -48
  116. data/samples/elaborate/user_profile.rb +76 -76
  117. data/samples/hello/hello_browser.rb +31 -31
  118. data/samples/hello/hello_button.rb +46 -46
  119. data/samples/hello/hello_canvas.rb +64 -64
  120. data/samples/hello/hello_checkbox.rb +85 -85
  121. data/samples/hello/hello_checkbox_group.rb +71 -71
  122. data/samples/hello/hello_code_text.rb +104 -104
  123. data/samples/hello/hello_combo.rb +63 -63
  124. data/samples/hello/hello_computed.rb +96 -96
  125. data/samples/hello/hello_computed/contact.rb +42 -42
  126. data/samples/hello/hello_custom_shell.rb +155 -155
  127. data/samples/hello/hello_custom_widget.rb +86 -86
  128. data/samples/hello/hello_date_time.rb +63 -63
  129. data/samples/hello/hello_dialog.rb +78 -78
  130. data/samples/hello/hello_directory_dialog.rb +60 -60
  131. data/samples/hello/hello_drag_and_drop.rb +50 -50
  132. data/samples/hello/hello_expand_bar.rb +110 -110
  133. data/samples/hello/hello_file_dialog.rb +60 -60
  134. data/samples/hello/hello_group.rb +104 -104
  135. data/samples/hello/hello_link.rb +80 -80
  136. data/samples/hello/hello_list_multi_selection.rb +74 -74
  137. data/samples/hello/hello_list_single_selection.rb +59 -59
  138. data/samples/hello/hello_menu_bar.rb +241 -241
  139. data/samples/hello/hello_message_box.rb +37 -37
  140. data/samples/hello/hello_pop_up_context_menu.rb +84 -84
  141. data/samples/hello/hello_radio.rb +108 -108
  142. data/samples/hello/hello_radio_group.rb +87 -87
  143. data/samples/hello/hello_sash_form.rb +137 -137
  144. data/samples/hello/hello_spinner.rb +69 -69
  145. data/samples/hello/hello_styled_text.rb +138 -138
  146. data/samples/hello/hello_tab.rb +50 -50
  147. data/samples/hello/hello_world.rb +29 -29
  148. metadata +4 -3
@@ -1,86 +1,86 @@
1
- # Copyright (c) 2007-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
- # This class declares a `greeting_label` custom widget (by convention)
23
- class GreetingLabel
24
- include Glimmer::UI::CustomWidget
25
-
26
- # multiple options without default values
27
- options :name, :colors
28
-
29
- # single option with default value
30
- option :greeting, default: 'Hello'
31
-
32
- # internal attribute (not a custom widget option)
33
- attr_accessor :color
34
-
35
- before_body {
36
- @font = {height: 24, style: :bold}
37
- @color = :black
38
- }
39
-
40
- after_body {
41
- return if colors.nil?
42
-
43
- Thread.new {
44
- colors.cycle { |color|
45
- async_exec {
46
- self.color = color
47
- }
48
- sleep(1)
49
- }
50
- }
51
- }
52
-
53
- body {
54
- # pass received swt_style through to label to customize (e.g. :center to center text)
55
- label(swt_style) {
56
- text "#{greeting}, #{name}!"
57
- font @font
58
- foreground bind(self, :color)
59
- }
60
- }
61
-
62
- end
63
-
64
- # including Glimmer enables the Glimmer DSL syntax, including auto-discovery of the `greeting_label` custom widget
65
- include Glimmer
66
-
67
- shell {
68
- fill_layout :vertical
69
-
70
- minimum_size 215, 215
71
- text 'Hello, Custom Widget!'
72
-
73
- # custom widget options are passed in a hash
74
- greeting_label(name: 'Sean')
75
-
76
- # pass :center SWT style followed by custom widget options hash
77
- greeting_label(:center, name: 'Laura', greeting: 'Aloha') #
78
-
79
- greeting_label(:right, name: 'Rick') {
80
- # you can nest attributes under custom widgets just like any standard widget
81
- foreground :red
82
- }
83
-
84
- # the colors option cycles between colors for the label foreground every second
85
- greeting_label(:center, name: 'Mary', greeting: 'Aloha', colors: [:red, :dark_green, :blue])
86
- }.open
1
+ # Copyright (c) 2007-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
+ # This class declares a `greeting_label` custom widget (by convention)
23
+ class GreetingLabel
24
+ include Glimmer::UI::CustomWidget
25
+
26
+ # multiple options without default values
27
+ options :name, :colors
28
+
29
+ # single option with default value
30
+ option :greeting, default: 'Hello'
31
+
32
+ # internal attribute (not a custom widget option)
33
+ attr_accessor :color
34
+
35
+ before_body {
36
+ @font = {height: 24, style: :bold}
37
+ @color = :black
38
+ }
39
+
40
+ after_body {
41
+ return if colors.nil?
42
+
43
+ Thread.new {
44
+ colors.cycle { |color|
45
+ async_exec {
46
+ self.color = color
47
+ }
48
+ sleep(1)
49
+ }
50
+ }
51
+ }
52
+
53
+ body {
54
+ # pass received swt_style through to label to customize (e.g. :center to center text)
55
+ label(swt_style) {
56
+ text "#{greeting}, #{name}!"
57
+ font @font
58
+ foreground bind(self, :color)
59
+ }
60
+ }
61
+
62
+ end
63
+
64
+ # including Glimmer enables the Glimmer DSL syntax, including auto-discovery of the `greeting_label` custom widget
65
+ include Glimmer
66
+
67
+ shell {
68
+ fill_layout :vertical
69
+
70
+ minimum_size 215, 215
71
+ text 'Hello, Custom Widget!'
72
+
73
+ # custom widget options are passed in a hash
74
+ greeting_label(name: 'Sean')
75
+
76
+ # pass :center SWT style followed by custom widget options hash
77
+ greeting_label(:center, name: 'Laura', greeting: 'Aloha') #
78
+
79
+ greeting_label(:right, name: 'Rick') {
80
+ # you can nest attributes under custom widgets just like any standard widget
81
+ foreground :red
82
+ }
83
+
84
+ # the colors option cycles between colors for the label foreground every second
85
+ greeting_label(:center, name: 'Mary', greeting: 'Aloha', colors: [:red, :dark_green, :blue])
86
+ }.open
@@ -1,63 +1,63 @@
1
- # Copyright (c) 2007-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 HelloDateTime
23
- class Person
24
- attr_accessor :date_of_birth
25
- end
26
-
27
- include Glimmer
28
-
29
- def launch
30
- person = Person.new
31
- person.date_of_birth = DateTime.new(2013, 7, 12, 18, 37, 23)
32
-
33
- shell {
34
- row_layout :vertical
35
-
36
- text 'Hello, Date Time!'
37
- minimum_size 180, 180
38
-
39
- label {
40
- text 'Date of Birth'
41
- font height: 16, style: :bold
42
- }
43
-
44
- date { # alias for date_time(:date)
45
- date_time bind(person, :date_of_birth)
46
- }
47
-
48
- date_drop_down { # alias for date_time(:date, :drop_down)
49
- date_time bind(person, :date_of_birth)
50
- }
51
-
52
- time { # alias for date_time(:time)
53
- date_time bind(person, :date_of_birth)
54
- }
55
-
56
- calendar { # alias for date_time(:calendar)
57
- date_time bind(person, :date_of_birth)
58
- }
59
- }.open
60
- end
61
- end
62
-
63
- HelloDateTime.new.launch
1
+ # Copyright (c) 2007-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 HelloDateTime
23
+ class Person
24
+ attr_accessor :date_of_birth
25
+ end
26
+
27
+ include Glimmer
28
+
29
+ def launch
30
+ person = Person.new
31
+ person.date_of_birth = DateTime.new(2013, 7, 12, 18, 37, 23)
32
+
33
+ shell {
34
+ row_layout :vertical
35
+
36
+ text 'Hello, Date Time!'
37
+ minimum_size 180, 180
38
+
39
+ label {
40
+ text 'Date of Birth'
41
+ font height: 16, style: :bold
42
+ }
43
+
44
+ date { # alias for date_time(:date)
45
+ date_time bind(person, :date_of_birth)
46
+ }
47
+
48
+ date_drop_down { # alias for date_time(:date, :drop_down)
49
+ date_time bind(person, :date_of_birth)
50
+ }
51
+
52
+ time { # alias for date_time(:time)
53
+ date_time bind(person, :date_of_birth)
54
+ }
55
+
56
+ calendar { # alias for date_time(:calendar)
57
+ date_time bind(person, :date_of_birth)
58
+ }
59
+ }.open
60
+ end
61
+ end
62
+
63
+ HelloDateTime.new.launch
@@ -1,78 +1,78 @@
1
- # Copyright (c) 2007-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
- include Glimmer
23
-
24
- shell {
25
- row_layout :vertical
26
-
27
- text 'Hello, Dialog!'
28
-
29
- 7.times { |n|
30
- dialog_number = n + 1
31
-
32
- button {
33
- layout_data {
34
- width 200
35
- height 50
36
- }
37
- text "Dialog #{dialog_number}"
38
-
39
- on_widget_selected {
40
- dialog { |dialog_proxy|
41
- row_layout(:vertical) {
42
- center true
43
- }
44
-
45
- text "Dialog #{dialog_number}"
46
-
47
- label {
48
- text "Given `dialog` is modal, you cannot interact with the main window till the dialog is closed."
49
- }
50
- composite {
51
- row_layout {
52
- margin_height 0
53
- margin_top 0
54
- margin_bottom 0
55
- }
56
-
57
- label {
58
- text "Unlike `message_box`, `dialog` can contain arbitrary widgets:"
59
- }
60
- radio {
61
- text 'Radio'
62
- }
63
- checkbox {
64
- text 'Checkbox'
65
- }
66
- }
67
- button {
68
- text 'Close'
69
-
70
- on_widget_selected {
71
- dialog_proxy.close
72
- }
73
- }
74
- }.open
75
- }
76
- }
77
- }
78
- }.open
1
+ # Copyright (c) 2007-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
+ include Glimmer
23
+
24
+ shell {
25
+ row_layout :vertical
26
+
27
+ text 'Hello, Dialog!'
28
+
29
+ 7.times { |n|
30
+ dialog_number = n + 1
31
+
32
+ button {
33
+ layout_data {
34
+ width 200
35
+ height 50
36
+ }
37
+ text "Dialog #{dialog_number}"
38
+
39
+ on_widget_selected {
40
+ dialog { |dialog_proxy|
41
+ row_layout(:vertical) {
42
+ center true
43
+ }
44
+
45
+ text "Dialog #{dialog_number}"
46
+
47
+ label {
48
+ text "Given `dialog` is modal, you cannot interact with the main window till the dialog is closed."
49
+ }
50
+ composite {
51
+ row_layout {
52
+ margin_height 0
53
+ margin_top 0
54
+ margin_bottom 0
55
+ }
56
+
57
+ label {
58
+ text "Unlike `message_box`, `dialog` can contain arbitrary widgets:"
59
+ }
60
+ radio {
61
+ text 'Radio'
62
+ }
63
+ checkbox {
64
+ text 'Checkbox'
65
+ }
66
+ }
67
+ button {
68
+ text 'Close'
69
+
70
+ on_widget_selected {
71
+ dialog_proxy.close
72
+ }
73
+ }
74
+ }.open
75
+ }
76
+ }
77
+ }
78
+ }.open