glimmer-dsl-swt 4.22.2.0 → 4.22.2.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (274) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +20 -0
  3. data/LICENSE.txt +1 -1
  4. data/README.md +20 -14
  5. data/VERSION +1 -1
  6. data/bin/girb +1 -1
  7. data/bin/girb_runner.rb +1 -1
  8. data/bin/glimmer +1 -1
  9. data/bin/glimmer-setup +1 -1
  10. data/docs/reference/GLIMMER_COMMAND.md +1 -1
  11. data/docs/reference/GLIMMER_CONFIGURATION.md +1 -1
  12. data/docs/reference/GLIMMER_GIRB.md +1 -1
  13. data/docs/reference/GLIMMER_GUI_DSL_SYNTAX.md +146 -1
  14. data/docs/reference/GLIMMER_PACKAGING_AND_DISTRIBUTION.md +13 -32
  15. data/docs/reference/GLIMMER_SAMPLES.md +16 -1
  16. data/docs/reference/GLIMMER_STYLE_GUIDE.md +6 -0
  17. data/glimmer-dsl-swt.gemspec +0 -0
  18. data/lib/ext/glimmer/config.rb +1 -1
  19. data/lib/ext/glimmer.rb +4 -4
  20. data/lib/ext/rouge/themes/glimmer.rb +21 -0
  21. data/lib/glimmer/Rakefile +6 -6
  22. data/lib/glimmer/data_binding/list_selection_binding.rb +1 -1
  23. data/lib/glimmer/data_binding/observable_widget.rb +1 -1
  24. data/lib/glimmer/data_binding/table_items_binding.rb +1 -1
  25. data/lib/glimmer/data_binding/tree_items_binding.rb +1 -1
  26. data/lib/glimmer/data_binding/widget_binding.rb +1 -1
  27. data/lib/glimmer/dsl/swt/animation_expression.rb +1 -1
  28. data/lib/glimmer/dsl/swt/async_exec_expression.rb +1 -1
  29. data/lib/glimmer/dsl/swt/auto_exec_expression.rb +1 -1
  30. data/lib/glimmer/dsl/swt/bind_expression.rb +1 -1
  31. data/lib/glimmer/dsl/swt/block_property_expression.rb +1 -1
  32. data/lib/glimmer/dsl/swt/c_tab_item_expression.rb +1 -1
  33. data/lib/glimmer/dsl/swt/checkbox_group_selection_data_binding_expression.rb +1 -1
  34. data/lib/glimmer/dsl/swt/color_expression.rb +1 -1
  35. data/lib/glimmer/dsl/swt/column_properties_expression.rb +1 -1
  36. data/lib/glimmer/dsl/swt/combo_selection_data_binding_expression.rb +1 -1
  37. data/lib/glimmer/dsl/swt/cursor_expression.rb +1 -1
  38. data/lib/glimmer/dsl/swt/custom_shape_expression.rb +1 -1
  39. data/lib/glimmer/dsl/swt/custom_widget_expression.rb +1 -1
  40. data/lib/glimmer/dsl/swt/data_binding_expression.rb +1 -1
  41. data/lib/glimmer/dsl/swt/dialog_expression.rb +1 -1
  42. data/lib/glimmer/dsl/swt/display_expression.rb +1 -1
  43. data/lib/glimmer/dsl/swt/dnd_expression.rb +1 -1
  44. data/lib/glimmer/dsl/swt/dsl.rb +1 -1
  45. data/lib/glimmer/dsl/swt/exec_expression.rb +2 -3
  46. data/lib/glimmer/dsl/swt/expand_item_expression.rb +1 -1
  47. data/lib/glimmer/dsl/swt/font_expression.rb +1 -1
  48. data/lib/glimmer/dsl/swt/image_expression.rb +1 -1
  49. data/lib/glimmer/dsl/swt/layout_data_expression.rb +1 -1
  50. data/lib/glimmer/dsl/swt/layout_expression.rb +1 -1
  51. data/lib/glimmer/dsl/swt/list_selection_data_binding_expression.rb +1 -1
  52. data/lib/glimmer/dsl/swt/listener_expression.rb +1 -1
  53. data/lib/glimmer/dsl/swt/menu_bar_expression.rb +1 -1
  54. data/lib/glimmer/dsl/swt/menu_expression.rb +1 -1
  55. data/lib/glimmer/dsl/swt/message_box_expression.rb +1 -1
  56. data/lib/glimmer/dsl/swt/multiply_expression.rb +1 -1
  57. data/lib/glimmer/dsl/swt/observe_expression.rb +1 -1
  58. data/lib/glimmer/dsl/swt/pixel_expression.rb +1 -1
  59. data/lib/glimmer/dsl/swt/property_expression.rb +1 -1
  60. data/lib/glimmer/dsl/swt/radio_group_selection_data_binding_expression.rb +1 -1
  61. data/lib/glimmer/dsl/swt/rgb_expression.rb +1 -1
  62. data/lib/glimmer/dsl/swt/rgba_expression.rb +1 -1
  63. data/lib/glimmer/dsl/swt/shape_expression.rb +1 -1
  64. data/lib/glimmer/dsl/swt/shell_expression.rb +1 -1
  65. data/lib/glimmer/dsl/swt/shine_data_binding_expression.rb +1 -1
  66. data/lib/glimmer/dsl/swt/swt_expression.rb +1 -1
  67. data/lib/glimmer/dsl/swt/sync_call_expression.rb +1 -1
  68. data/lib/glimmer/dsl/swt/sync_exec_expression.rb +1 -1
  69. data/lib/glimmer/dsl/swt/tab_item_expression.rb +1 -1
  70. data/lib/glimmer/dsl/swt/table_items_data_binding_expression.rb +1 -1
  71. data/lib/glimmer/dsl/swt/timer_exec_expression.rb +1 -1
  72. data/lib/glimmer/dsl/swt/transform_expression.rb +1 -1
  73. data/lib/glimmer/dsl/swt/tray_expression.rb +1 -1
  74. data/lib/glimmer/dsl/swt/tray_item_expression.rb +1 -1
  75. data/lib/glimmer/dsl/swt/tree_items_data_binding_expression.rb +1 -1
  76. data/lib/glimmer/dsl/swt/tree_properties_expression.rb +1 -1
  77. data/lib/glimmer/dsl/swt/widget_expression.rb +1 -1
  78. data/lib/glimmer/launcher.rb +1 -1
  79. data/lib/glimmer/rake_task/list.rb +1 -1
  80. data/lib/glimmer/rake_task/package.rb +1 -1
  81. data/lib/glimmer/rake_task/scaffold.rb +4 -5
  82. data/lib/glimmer/rake_task.rb +1 -1
  83. data/lib/glimmer/swt/c_tab_item_proxy.rb +1 -1
  84. data/lib/glimmer/swt/color_proxy.rb +1 -1
  85. data/lib/glimmer/swt/combo_proxy.rb +1 -1
  86. data/lib/glimmer/swt/cursor_proxy.rb +1 -1
  87. data/lib/glimmer/swt/custom/animation.rb +1 -1
  88. data/lib/glimmer/swt/custom/checkbox_group.rb +1 -1
  89. data/lib/glimmer/swt/custom/code_text.rb +1 -1
  90. data/lib/glimmer/swt/custom/drawable.rb +1 -1
  91. data/lib/glimmer/swt/custom/radio_group.rb +1 -1
  92. data/lib/glimmer/swt/custom/shape/arc.rb +1 -1
  93. data/lib/glimmer/swt/custom/shape/cubic.rb +1 -1
  94. data/lib/glimmer/swt/custom/shape/focus.rb +1 -1
  95. data/lib/glimmer/swt/custom/shape/image.rb +1 -1
  96. data/lib/glimmer/swt/custom/shape/line.rb +1 -1
  97. data/lib/glimmer/swt/custom/shape/oval.rb +1 -1
  98. data/lib/glimmer/swt/custom/shape/path.rb +1 -1
  99. data/lib/glimmer/swt/custom/shape/path_segment.rb +1 -1
  100. data/lib/glimmer/swt/custom/shape/point.rb +1 -1
  101. data/lib/glimmer/swt/custom/shape/polygon.rb +1 -1
  102. data/lib/glimmer/swt/custom/shape/polyline.rb +1 -1
  103. data/lib/glimmer/swt/custom/shape/quad.rb +1 -1
  104. data/lib/glimmer/swt/custom/shape/rectangle.rb +1 -1
  105. data/lib/glimmer/swt/custom/shape/text.rb +1 -1
  106. data/lib/glimmer/swt/custom/shape.rb +1 -1
  107. data/lib/glimmer/swt/date_time_proxy.rb +1 -1
  108. data/lib/glimmer/swt/dialog_proxy.rb +1 -1
  109. data/lib/glimmer/swt/display_proxy.rb +1 -1
  110. data/lib/glimmer/swt/dnd_proxy.rb +1 -1
  111. data/lib/glimmer/swt/expand_item_proxy.rb +1 -1
  112. data/lib/glimmer/swt/font_proxy.rb +1 -1
  113. data/lib/glimmer/swt/image_proxy.rb +2 -1
  114. data/lib/glimmer/swt/layout_data_proxy.rb +5 -1
  115. data/lib/glimmer/swt/layout_proxy.rb +1 -1
  116. data/lib/glimmer/swt/menu_proxy.rb +1 -1
  117. data/lib/glimmer/swt/message_box_proxy.rb +1 -1
  118. data/lib/glimmer/swt/packages.rb +1 -1
  119. data/lib/glimmer/swt/properties.rb +1 -1
  120. data/lib/glimmer/swt/proxy_properties.rb +1 -1
  121. data/lib/glimmer/swt/sash_form_proxy.rb +1 -1
  122. data/lib/glimmer/swt/scrolled_composite_proxy.rb +1 -1
  123. data/lib/glimmer/swt/shape_listener_proxy.rb +1 -1
  124. data/lib/glimmer/swt/shell_proxy.rb +1 -1
  125. data/lib/glimmer/swt/style_constantizable.rb +1 -1
  126. data/lib/glimmer/swt/styled_text_proxy.rb +1 -1
  127. data/lib/glimmer/swt/swt_proxy.rb +1 -1
  128. data/lib/glimmer/swt/tab_folder_proxy.rb +1 -1
  129. data/lib/glimmer/swt/tab_item_proxy.rb +1 -1
  130. data/lib/glimmer/swt/table_column_proxy.rb +1 -1
  131. data/lib/glimmer/swt/table_proxy.rb +1 -1
  132. data/lib/glimmer/swt/tool_bar_proxy.rb +1 -1
  133. data/lib/glimmer/swt/transform_proxy.rb +1 -1
  134. data/lib/glimmer/swt/tray_item_proxy.rb +1 -1
  135. data/lib/glimmer/swt/tray_proxy.rb +1 -1
  136. data/lib/glimmer/swt/tree_proxy.rb +1 -1
  137. data/lib/glimmer/swt/widget_listener_proxy.rb +1 -1
  138. data/lib/glimmer/swt/widget_proxy.rb +1 -1
  139. data/lib/glimmer/ui/custom_shape.rb +1 -1
  140. data/lib/glimmer/ui/custom_shell.rb +1 -1
  141. data/lib/glimmer/ui/custom_widget.rb +1 -1
  142. data/lib/glimmer/ui.rb +21 -0
  143. data/lib/glimmer/util/proc_tracker.rb +4 -4
  144. data/lib/glimmer-dsl-swt.rb +1 -1
  145. data/samples/elaborate/battleship/model/cell.rb +1 -1
  146. data/samples/elaborate/battleship/model/game.rb +1 -1
  147. data/samples/elaborate/battleship/model/grid.rb +1 -1
  148. data/samples/elaborate/battleship/model/ship.rb +1 -1
  149. data/samples/elaborate/battleship/model/ship_collection.rb +1 -1
  150. data/samples/elaborate/battleship/view/action_panel.rb +1 -1
  151. data/samples/elaborate/battleship/view/cell.rb +1 -1
  152. data/samples/elaborate/battleship/view/grid.rb +1 -1
  153. data/samples/elaborate/battleship/view/ship.rb +1 -1
  154. data/samples/elaborate/battleship/view/ship_collection.rb +1 -1
  155. data/samples/elaborate/battleship.rb +1 -1
  156. data/samples/elaborate/calculator.rb +1 -1
  157. data/samples/elaborate/clock.rb +1 -1
  158. data/samples/elaborate/connect4/model/grid.rb +1 -1
  159. data/samples/elaborate/connect4/model/slot.rb +1 -1
  160. data/samples/elaborate/connect4.rb +1 -1
  161. data/samples/elaborate/contact_manager/contact.rb +1 -1
  162. data/samples/elaborate/contact_manager/contact_manager_presenter.rb +1 -1
  163. data/samples/elaborate/contact_manager/contact_repository.rb +1 -1
  164. data/samples/elaborate/contact_manager.rb +1 -1
  165. data/samples/elaborate/game_of_life/model/cell.rb +1 -1
  166. data/samples/elaborate/game_of_life/model/grid.rb +1 -1
  167. data/samples/elaborate/game_of_life.rb +1 -1
  168. data/samples/elaborate/login.rb +1 -1
  169. data/samples/elaborate/mandelbrot_fractal.rb +1 -1
  170. data/samples/elaborate/meta_sample.rb +1 -1
  171. data/samples/elaborate/metronome.rb +1 -1
  172. data/samples/elaborate/parking/model/parking_floor.rb +1 -1
  173. data/samples/elaborate/parking/model/parking_presenter.rb +1 -1
  174. data/samples/elaborate/parking/model/parking_spot.rb +1 -1
  175. data/samples/elaborate/parking.rb +1 -1
  176. data/samples/elaborate/quarto/model/game.rb +1 -1
  177. data/samples/elaborate/quarto/model/piece/cube.rb +1 -1
  178. data/samples/elaborate/quarto/model/piece/cylinder.rb +1 -1
  179. data/samples/elaborate/quarto/model/piece.rb +1 -1
  180. data/samples/elaborate/quarto/view/available_pieces_area.rb +1 -1
  181. data/samples/elaborate/quarto/view/board.rb +1 -1
  182. data/samples/elaborate/quarto/view/cell.rb +1 -1
  183. data/samples/elaborate/quarto/view/cube.rb +1 -1
  184. data/samples/elaborate/quarto/view/cylinder.rb +1 -1
  185. data/samples/elaborate/quarto/view/message_box_panel.rb +1 -1
  186. data/samples/elaborate/quarto/view/piece.rb +1 -1
  187. data/samples/elaborate/quarto/view/selected_piece_area.rb +1 -1
  188. data/samples/elaborate/quarto.rb +1 -1
  189. data/samples/elaborate/snake/model/apple.rb +33 -0
  190. data/samples/elaborate/snake/model/game.rb +68 -0
  191. data/samples/elaborate/snake/model/snake.rb +95 -0
  192. data/samples/elaborate/snake/model/vertebra.rb +22 -0
  193. data/samples/elaborate/snake/presenter/cell.rb +27 -0
  194. data/samples/elaborate/snake/presenter/grid.rb +49 -0
  195. data/samples/elaborate/snake.rb +103 -0
  196. data/samples/elaborate/stock_ticker.rb +1 -1
  197. data/samples/elaborate/tetris/model/block.rb +1 -1
  198. data/samples/elaborate/tetris/model/game.rb +1 -1
  199. data/samples/elaborate/tetris/model/past_game.rb +1 -1
  200. data/samples/elaborate/tetris/model/tetromino.rb +1 -1
  201. data/samples/elaborate/tetris/view/bevel.rb +1 -1
  202. data/samples/elaborate/tetris/view/block.rb +1 -1
  203. data/samples/elaborate/tetris/view/high_score_dialog.rb +1 -1
  204. data/samples/elaborate/tetris/view/playfield.rb +1 -1
  205. data/samples/elaborate/tetris/view/score_lane.rb +1 -1
  206. data/samples/elaborate/tetris/view/tetris_menu_bar.rb +1 -1
  207. data/samples/elaborate/tetris.rb +8 -8
  208. data/samples/elaborate/tic_tac_toe/board.rb +1 -1
  209. data/samples/elaborate/tic_tac_toe/cell.rb +1 -1
  210. data/samples/elaborate/tic_tac_toe.rb +1 -1
  211. data/samples/elaborate/timer.rb +1 -1
  212. data/samples/elaborate/user_profile.rb +1 -1
  213. data/samples/elaborate/weather.rb +1 -1
  214. data/samples/hello/hello_arrow.rb +1 -1
  215. data/samples/hello/hello_browser.rb +1 -1
  216. data/samples/hello/hello_button.rb +1 -1
  217. data/samples/hello/hello_c_combo.rb +1 -1
  218. data/samples/hello/hello_c_tab.rb +1 -1
  219. data/samples/hello/hello_canvas.rb +1 -1
  220. data/samples/hello/hello_canvas_animation.rb +1 -1
  221. data/samples/hello/hello_canvas_animation_multi.rb +1 -1
  222. data/samples/hello/hello_canvas_data_binding.rb +1 -1
  223. data/samples/hello/hello_canvas_path.rb +1 -1
  224. data/samples/hello/hello_canvas_shape_listeners.rb +1 -1
  225. data/samples/hello/hello_checkbox.rb +1 -1
  226. data/samples/hello/hello_checkbox_group.rb +1 -1
  227. data/samples/hello/hello_code_text.rb +1 -1
  228. data/samples/hello/hello_color_dialog.rb +1 -1
  229. data/samples/hello/hello_combo.rb +1 -1
  230. data/samples/hello/hello_composite.rb +1 -1
  231. data/samples/hello/hello_computed.rb +1 -1
  232. data/samples/hello/hello_cool_bar.rb +1 -1
  233. data/samples/hello/hello_cursor.rb +1 -1
  234. data/samples/hello/hello_custom_shape.rb +1 -1
  235. data/samples/hello/hello_custom_shell.rb +1 -1
  236. data/samples/hello/hello_custom_widget.rb +1 -1
  237. data/samples/hello/hello_date_time.rb +1 -1
  238. data/samples/hello/hello_dialog.rb +1 -1
  239. data/samples/hello/hello_directory_dialog.rb +1 -1
  240. data/samples/hello/hello_drag_and_drop.rb +1 -1
  241. data/samples/hello/hello_expand_bar.rb +1 -1
  242. data/samples/hello/hello_file_dialog.rb +1 -1
  243. data/samples/hello/hello_font_dialog.rb +1 -1
  244. data/samples/hello/hello_group.rb +1 -1
  245. data/samples/hello/hello_label.rb +1 -1
  246. data/samples/hello/hello_layout.rb +1 -1
  247. data/samples/hello/hello_link.rb +1 -1
  248. data/samples/hello/hello_list_multi_selection.rb +1 -1
  249. data/samples/hello/hello_list_single_selection.rb +1 -1
  250. data/samples/hello/hello_menu_bar.rb +1 -1
  251. data/samples/hello/hello_message_box.rb +1 -1
  252. data/samples/hello/hello_pop_up_context_menu.rb +1 -1
  253. data/samples/hello/hello_print.rb +1 -1
  254. data/samples/hello/hello_print_dialog.rb +1 -1
  255. data/samples/hello/hello_progress_bar.rb +1 -1
  256. data/samples/hello/hello_radio.rb +1 -1
  257. data/samples/hello/hello_radio_group.rb +1 -1
  258. data/samples/hello/hello_sash_form.rb +1 -1
  259. data/samples/hello/hello_scale.rb +1 -1
  260. data/samples/hello/hello_scrolled_composite.rb +1 -1
  261. data/samples/hello/hello_shape.rb +1 -1
  262. data/samples/hello/hello_shell.rb +1 -1
  263. data/samples/hello/hello_slider.rb +1 -1
  264. data/samples/hello/hello_spinner.rb +1 -1
  265. data/samples/hello/hello_styled_text.rb +1 -1
  266. data/samples/hello/hello_tab.rb +1 -1
  267. data/samples/hello/hello_table.rb +1 -1
  268. data/samples/hello/hello_text.rb +1 -1
  269. data/samples/hello/hello_toggle.rb +1 -1
  270. data/samples/hello/hello_tool_bar.rb +1 -1
  271. data/samples/hello/hello_tray_item.rb +1 -1
  272. data/samples/hello/hello_tree.rb +1 -1
  273. data/samples/hello/hello_world.rb +1 -1
  274. metadata +11 -18
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 980aa1462abaaaba10965a3479335f3e9def40aff66d8a8241526f4b652232e7
4
- data.tar.gz: 11de3f19cb26d5185719bcde3fc5f97df25c665b18beaa466645e7cd9db5a3ea
3
+ metadata.gz: a8861fe71a1b90e50066bb3a91bbfb8de450ebfb8cfe93e63a52c3ef737ce3d7
4
+ data.tar.gz: d72ca16aa028f0b7ab0b91294b5c2e7627ab9f3014afd9764ad7b1b58369abb6
5
5
  SHA512:
6
- metadata.gz: a6dcc628fa448c9cac1c1e8540bcbfcde0b6b63a36f7213c89d7608f56392f4c162284eaf85dc300d06f97966f89fc5e49b1f0dae5aa123563bad8d5760e2dc2
7
- data.tar.gz: c52de736843bd49253aa4fff70453f317d661a5aff379538d47a9c4efd0e6dfc85910769dd7220c6f2819b7ba51fee0fadf74061a886419a2208d31a221856c2
6
+ metadata.gz: d81c567963f645563679a704791f5b739b1cbe9b5a04ad65d9b12bebfe52a442c131ae8933af5aabb141e31631ad0e525c25fa639c49c0f5567e7acf9cc946b0
7
+ data.tar.gz: 5883f1ad7759e1e752bc22bac9bb722a0a3748aba73efd1a7b992aee137d13ed120c60748d2f9c3738cd5ccb462ee695ae90079ac13d9d910d2e01acde82b38d
data/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # Change Log
2
2
 
3
+ ## 4.22.2.4
4
+
5
+ - Address the warning regarding using Ruby singletons on Java objects (shows up when running `glimmer samples`)
6
+ - Fix order of calling `require 'app_name/view/app_view'` in scaffolded app (must be last)
7
+
8
+ ## 4.22.2.3
9
+
10
+ - Support `#content { }` on `layout_data`
11
+ - Fix issue with data-binding `layout_data {exclude}` property using Shine `<=>` syntax
12
+
13
+ ## 4.22.2.2
14
+
15
+ - Snake elaborate sample
16
+ - Fixed `timer_exec(time_in_millis) {}` expresion
17
+
18
+ ## 4.22.2.1
19
+
20
+ - Upgrade to glimmer 2.6.0
21
+ - Fixed issue of `"unsupported Java version "17", defaulting to 1.7"` when scaffolding an application
22
+
3
23
  ## 4.22.2.0
4
24
 
5
25
  - Upgrade to JRuby 9.3.3.0 (supporting ARM64/AARCH64)
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2007-2021 Andy Maleh
1
+ Copyright (c) 2007-2022 Andy Maleh
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
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 SWT 4.22.2.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 SWT 4.22.2.4
2
2
  ## JRuby Desktop Development GUI Framework
3
3
  [![Gem Version](https://badge.fury.io/rb/glimmer-dsl-swt.svg)](http://badge.fury.io/rb/glimmer-dsl-swt)
4
4
  [![Travis CI](https://travis-ci.com/AndyObtiva/glimmer-dsl-swt.svg?branch=master)](https://travis-ci.com/github/AndyObtiva/glimmer-dsl-swt)
@@ -17,19 +17,25 @@ Featured in JRuby Cookbook](http://shop.oreilly.com/product/9780596519650.do) an
17
17
 
18
18
  ![Eclipse SWT RCP NASA Mars Rover](/images/glimmer-eclipse-swt-rcp-nasa-mars-rover.png)
19
19
 
20
- [Glimmer DSL for SWT](https://rubygems.org/gems/glimmer-dsl-swt) 4.22.2.0 includes [SWT 4.22](https://download.eclipse.org/eclipse/downloads/drops4/R-4.22-202111241800/), which was released on November 24, 2021. Gem version numbers are in sync with the SWT library versions. The first two digits represent the SWT version number. The last two digits represent the minor and patch versions of Glimmer DSL for SWT. Note that SWT now supports AARCH64/ARM64 on Mac and Linux!
20
+ [Glimmer DSL for SWT](https://rubygems.org/gems/glimmer-dsl-swt) 4.22.2.4 includes [SWT 4.22](https://download.eclipse.org/eclipse/downloads/drops4/R-4.22-202111241800/), which was released on November 24, 2021. Gem version numbers are in sync with the SWT library versions. The first two digits represent the SWT version number. The last two digits represent the minor and patch versions of Glimmer DSL for SWT.
21
21
 
22
22
  **Starting in version 4.20.0.0, [Glimmer DSL for SWT](https://rubygems.org/gems/glimmer-dsl-swt) comes with the new [***Shine***](/docs/reference/GLIMMER_GUI_DSL_SYNTAX.md#shine) syntax** for highly intuitive and visually expressive View/Model Attribute Mapping, relying on `<=>` for bidirectional (two-way) data-binding and `<=` for unidirectional (one-way) data-binding, providing an alternative to the `bind` keyword.
23
23
 
24
24
  Please help make [Glimmer DSL for SWT](https://rubygems.org/gems/glimmer-dsl-swt) better by providing feedback and [contributing](#contributing) whenever possible. Any feature suggestions that are accepted could be implemented within weeks if not days.
25
25
 
26
- Other [Glimmer](https://rubygems.org/gems/glimmer) DSL gems you might be interested in:
27
- - [glimmer-dsl-opal](https://github.com/AndyObtiva/glimmer-dsl-opal): Glimmer DSL for Opal (Pure Ruby Web GUI and Auto-Webifier of Desktop Apps)
28
- - [glimmer-dsl-libui](https://github.com/AndyObtiva/glimmer-dsl-libui): Glimmer DSL for LibUI (Prerequisite-Free Ruby Desktop Development GUI Library)
29
- - [glimmer-dsl-tk](https://github.com/AndyObtiva/glimmer-dsl-tk): Glimmer DSL for Tk (MRI Ruby Desktop Development GUI Library)
30
- - [glimmer-dsl-gtk](https://github.com/AndyObtiva/glimmer-dsl-gtk): Glimmer DSL for GTK (Ruby-GNOME Desktop Development GUI Library)
31
- - [glimmer-dsl-xml](https://github.com/AndyObtiva/glimmer-dsl-xml): Glimmer DSL for XML (& HTML)
32
- - [glimmer-dsl-css](https://github.com/AndyObtiva/glimmer-dsl-css): Glimmer DSL for CSS
26
+ **[Glimmer](https://rubygems.org/gems/glimmer) DSL Comparison Table:**
27
+ DSL | Platforms | Native? | Vector Graphics? | Pros | Cons | Prereqs
28
+ ----|-----------|---------|------------------|------|------|--------
29
+ [Glimmer DSL for SWT (JRuby Desktop Development GUI Framework)](https://github.com/AndyObtiva/glimmer-dsl-swt) | Mac / Windows / Linux | Yes | Yes (Canvas Shape DSL) | Very Mature / Scaffolding / Native Executable Packaging / Custom Widgets | Slow JRuby Startup Time / Heavy Memory Footprint | Java / JRuby
30
+ [Glimmer DSL for Opal (Pure Ruby Web GUI and Auto-Webifier of Desktop Apps)](https://github.com/AndyObtiva/glimmer-dsl-opal) | All Web Browsers | No | Yes (Canvas Shape DSL) | Simpler than All JavaScript Technologies / Auto-Webify Desktop Apps | Setup Process / Only Rails 5 Support for Now | Rails
31
+ [Glimmer DSL for LibUI (Prerequisite-Free Ruby Desktop Development GUI Library)](https://github.com/AndyObtiva/glimmer-dsl-libui) | Mac / Windows / Linux | Yes | Yes (Area API) | Fast Startup Time / Light Memory Footprint | LibUI is an Incomplete Mid-Alpha Only | None Other Than MRI Ruby
32
+ [Glimmer DSL for Tk (MRI Ruby Desktop Development GUI Library)](https://github.com/AndyObtiva/glimmer-dsl-tk) | Mac / Windows / Linux | Some Native-Themed Widgets (Not Truly Native) | Yes (Canvas) | Fast Startup Time / Light Memory Footprint | Widgets Do Not Look Truly Native, Espcially on Linux | ActiveTcl / MRI Ruby
33
+ [Glimmer DSL for GTK (Ruby-GNOME Desktop Development GUI Library)](https://github.com/AndyObtiva/glimmer-dsl-gtk) | Mac / Windows / Linux | Only on Linux | Yes (Cairo) | Complete Access to GNOME Features on Linux (Forte) | Not Native on Mac and Windows | None Other Than MRI Ruby on Linux / Brew Packages on Mac / MSYS & MING Toolchains on Windows / MRI Ruby
34
+ [Glimmer DSL for FX (FOX Toolkit Ruby Desktop Development GUI Library)](https://github.com/AndyObtiva/glimmer-dsl-fx) | Mac (requires XQuartz) / Windows / Linux | No | Yes (Canvas) | No Prerequisites on Windows (Forte Since Binaries Are Included Out of The Box) | Widgets Do Not Look Native / Mac Usage Obtrusively Starts XQuartz | None Other Than MRI Ruby on Windows / XQuarts on Mac / MRI Ruby
35
+ [Glimmer DSL for JFX (JRuby JavaFX Desktop Development GUI Library)](https://github.com/AndyObtiva/glimmer-dsl-jfx) | Mac / Windows / Linux | No | Yes (javafx.scene.shape and javafx.scene.canvas) | Rich in Custom Widgets | Slow JRuby Startup Time / Heavy Memory Footprint / Widgets Do Not Look Native | Java / JRuby / JavaFX SDK
36
+ [Glimmer DSL for Swing (JRuby Swing Desktop Development GUI Library)](https://github.com/AndyObtiva/glimmer-dsl-swing) | Mac / Windows / Linux | No | Yes (Java2D) | Very Mature | Slow JRuby Startup Time / Heavy Memory Footprint / Widgets Do Not Look Native | Java / JRuby
37
+ [Glimmer DSL for XML (& HTML)](https://github.com/AndyObtiva/glimmer-dsl-xml) | All Web Browsers | No | Yes (SVG) | Programmable / Lighter-weight Than Actual XML | XML Elements Are Sometimes Not Well-Named (Many Types of Input) | None
38
+ [Glimmer DSL for CSS](https://github.com/AndyObtiva/glimmer-dsl-css) | All Web Browsers | No | Yes | Programmable | CSS Is Over-Engineered / Too Many Features To Learn | None
33
39
 
34
40
  ## Examples
35
41
 
@@ -296,7 +302,7 @@ https://www.eclipse.org/swt/faq.php
296
302
  - JDK 17 (17.0.1) (find at https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html / Ensure PATH includes Java bin directory for `jpackage` command to work when packaging Glimmer applications)
297
303
  - [RVM](http://rvm.io) on Mac & Linux (not available on Windows)
298
304
  - JRuby 9.3.3.0 (supporting Ruby 2.6.x syntax) (get via [RVM](http://rvm.io) on Mac and Linux by running `rvm install jruby-9.3.3.0`; On Windows, find at [https://www.jruby.org/download](https://www.jruby.org/download))
299
- - SWT 4.22 (already included in the [glimmer-dsl-swt](https://rubygems.org/gems/glimmer-dsl-swt) gem). Note that SWT now supports AARCH64/ARM64 on Mac and Linux!
305
+ - SWT 4.22 (already included in the [glimmer-dsl-swt](https://rubygems.org/gems/glimmer-dsl-swt) gem). Note that SWT supports ARM64/AARCH64 on Mac and Linux since version 4.20.
300
306
  - Git (comes with Mac and Linux. Install on Windows: https://git-scm.com/download/win )
301
307
 
302
308
  Glimmer might still work on other versions of Java, JRuby and SWT, but there are no guarantees, so it is best to stick to the pre-requisites outlined above.
@@ -325,7 +331,7 @@ jgem install glimmer-dsl-swt
325
331
 
326
332
  Or this command if you want a specific version:
327
333
  ```
328
- jgem install glimmer-dsl-swt -v 4.22.2.0
334
+ jgem install glimmer-dsl-swt -v 4.22.2.4
329
335
  ```
330
336
 
331
337
  `jgem` is JRuby's version of `gem` command.
@@ -353,7 +359,7 @@ Note: if you're using activerecord or activesupport, keep in mind that Glimmer u
353
359
 
354
360
  Add the following to `Gemfile`:
355
361
  ```
356
- gem 'glimmer-dsl-swt', '~> 4.22.2.0'
362
+ gem 'glimmer-dsl-swt', '~> 4.22.2.4'
357
363
  ```
358
364
 
359
365
  And, then run:
@@ -376,7 +382,7 @@ glimmer
376
382
  ```
377
383
 
378
384
  ```
379
- Glimmer (JRuby Desktop Development GUI Framework) - JRuby Gem: glimmer-dsl-swt v4.22.2.0
385
+ Glimmer (JRuby Desktop Development GUI Framework) - JRuby Gem: glimmer-dsl-swt v4.22.2.4
380
386
 
381
387
  Usage: glimmer [--bundler] [--pd] [--quiet] [--debug] [--log-level=VALUE] [[ENV_VAR=VALUE]...] [[-jruby-option]...] (application.rb or task[task_args]) [[application2.rb]...]
382
388
 
@@ -692,7 +698,7 @@ You may apply for contributing to any of these Glimmer DSL gems whether you pref
692
698
 
693
699
  [MIT](LICENSE.txt)
694
700
 
695
- Copyright (c) 2007-2021 - Andy Maleh.
701
+ Copyright (c) 2007-2022 - Andy Maleh.
696
702
 
697
703
  --
698
704
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 4.22.2.0
1
+ 4.22.2.4
data/bin/girb CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env jruby
2
2
 
3
- # Copyright (c) 2007-2021 Andy Maleh
3
+ # Copyright (c) 2007-2022 Andy Maleh
4
4
  #
5
5
  # Permission is hereby granted, free of charge, to any person obtaining
6
6
  # a copy of this software and associated documentation files (the
data/bin/girb_runner.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2007-2021 Andy Maleh
1
+ # Copyright (c) 2007-2022 Andy Maleh
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining
4
4
  # a copy of this software and associated documentation files (the
data/bin/glimmer CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env jruby
2
2
 
3
- # Copyright (c) 2007-2021 Andy Maleh
3
+ # Copyright (c) 2007-2022 Andy Maleh
4
4
  #
5
5
  # Permission is hereby granted, free of charge, to any person obtaining
6
6
  # a copy of this software and associated documentation files (the
data/bin/glimmer-setup CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env jruby
2
2
 
3
- # Copyright (c) 2020-2021 Andy Maleh
3
+ # Copyright (c) 2007-2022 Andy Maleh
4
4
  #
5
5
  # Permission is hereby granted, free of charge, to any person obtaining
6
6
  # a copy of this software and associated documentation files (the
@@ -668,4 +668,4 @@ jruby -J-XstartOnFirstThread -J-classpath "path_to/swt.jar" -r glimmer-dsl-swt -
668
668
 
669
669
  [MIT](LICENSE.txt)
670
670
 
671
- Copyright (c) 2007-2021 - Andy Maleh.
671
+ Copyright (c) 2007-2022 - Andy Maleh.
@@ -195,4 +195,4 @@ large scale updates in the rare cases where optimization is needed.
195
195
 
196
196
  [MIT](LICENSE.txt)
197
197
 
198
- Copyright (c) 2007-2021 - Andy Maleh.
198
+ Copyright (c) 2007-2022 - Andy Maleh.
@@ -27,4 +27,4 @@ If you need a more GUI interactive option to experiment with Glimmer GUI DSL Syn
27
27
 
28
28
  [MIT](LICENSE.txt)
29
29
 
30
- Copyright (c) 2007-2021 - Andy Maleh.
30
+ Copyright (c) 2007-2022 - Andy Maleh.
@@ -1495,6 +1495,13 @@ Glimmer composites always come with `grid_layout` by default, but you can still
1495
1495
 
1496
1496
  Glimmer shell always comes with `fill_layout` having `:horizontal` type.
1497
1497
 
1498
+ If you ever want to force a re-layout on a `composite` or `shell`, you can call the following:
1499
+
1500
+ ```ruby
1501
+ composite_or_shell.layout(true, true)
1502
+ composite_or_shell.pack(true)
1503
+ ```
1504
+
1498
1505
  This is a great guide for learning more about SWT layouts:
1499
1506
 
1500
1507
  https://www.eclipse.org/articles/Article-Understanding-Layouts/Understanding-Layouts.htm
@@ -1579,6 +1586,144 @@ composite {
1579
1586
 
1580
1587
  If you data-bind any layout data properties, when they change, the shell containing their widget re-packs its children (calls `#pack` method automatically) to ensure proper relayout of all widgets.
1581
1588
 
1589
+ Also, if you ever want a widget to be excluded from layout entirely (in addition to having `visible false` on the widget), you can set `layout_data { exclude true }` or data-bind `exclude` property of `layout_data` to have a widget included/excluded automatically based on a condition.
1590
+
1591
+ Here is a re-implementation of the [Login sample](/docs/reference/GLIMMER_SAMPLES.md#login) that hides/shows login/logout buttons upon login/logout (you may copy/paste in [`girb`](GLIMMER_GIRB.md)):
1592
+
1593
+ ```ruby
1594
+ require 'glimmer-dsl-swt'
1595
+
1596
+ class LoginPresenter
1597
+
1598
+ attr_accessor :user_name
1599
+ attr_accessor :password
1600
+ attr_accessor :status
1601
+
1602
+ def initialize
1603
+ @user_name = ""
1604
+ @password = ""
1605
+ @status = "Logged Out"
1606
+ end
1607
+
1608
+ def status=(status)
1609
+ @status = status
1610
+ end
1611
+
1612
+ def valid?
1613
+ !@user_name.to_s.strip.empty? && !@password.to_s.strip.empty?
1614
+ end
1615
+
1616
+ def logged_in?
1617
+ self.status == "Logged In"
1618
+ end
1619
+
1620
+ def logged_out?
1621
+ !self.logged_in?
1622
+ end
1623
+
1624
+ def login!
1625
+ return unless valid?
1626
+ self.status = "Logged In"
1627
+ end
1628
+
1629
+ def logout!
1630
+ self.user_name = ""
1631
+ self.password = ""
1632
+ self.status = "Logged Out"
1633
+ end
1634
+
1635
+ end
1636
+
1637
+ class Login
1638
+ include Glimmer::UI::CustomShell
1639
+
1640
+ before_body do
1641
+ @presenter = LoginPresenter.new
1642
+ end
1643
+
1644
+ body {
1645
+ shell {
1646
+ text "Login"
1647
+
1648
+ composite {
1649
+ grid_layout(2, false) #two columns with differing widths
1650
+
1651
+ label { text "Username:" } # goes in column 1
1652
+ @user_name_text = text { # goes in column 2
1653
+ layout_data :fill, :center, true, false
1654
+ text <=> [@presenter, :user_name]
1655
+ enabled <= [@presenter, :logged_out?, computed_by: :status]
1656
+
1657
+ on_key_pressed { |event|
1658
+ @password_text.set_focus if event.keyCode == swt(:cr)
1659
+ }
1660
+ }
1661
+
1662
+ label { text "Password:" }
1663
+ @password_text = text(:password, :border) {
1664
+ layout_data :fill, :center, true, false
1665
+ text <=> [@presenter, :password]
1666
+ enabled <= [@presenter, :logged_out?, computed_by: :status]
1667
+
1668
+ on_key_pressed { |event|
1669
+ @presenter.login! if event.keyCode == swt(:cr)
1670
+ }
1671
+ }
1672
+
1673
+ label { text "Status:" }
1674
+ label {
1675
+ layout_data :fill, :center, true, false
1676
+ text <= [@presenter, :status]
1677
+ }
1678
+
1679
+ button {
1680
+ layout_data {
1681
+ exclude <= [@presenter, :logged_in?, computed_by: :status]
1682
+ }
1683
+
1684
+ text "Login"
1685
+ visible <= [@presenter, :logged_out?, computed_by: :status]
1686
+
1687
+ on_widget_selected { @presenter.login! }
1688
+ on_key_pressed { |event|
1689
+ if event.keyCode == swt(:cr)
1690
+ @presenter.login!
1691
+ end
1692
+ }
1693
+ }
1694
+
1695
+ button {
1696
+ layout_data {
1697
+ exclude <= [@presenter, :logged_out?, computed_by: :status]
1698
+ }
1699
+
1700
+ text "Logout"
1701
+ visible <= [@presenter, :logged_in?, computed_by: :status]
1702
+
1703
+ on_widget_selected { @presenter.logout! }
1704
+ on_key_pressed { |event|
1705
+ if event.keyCode == swt(:cr)
1706
+ @presenter.logout!
1707
+ @user_name_text.set_focus
1708
+ end
1709
+ }
1710
+ }
1711
+ }
1712
+ }
1713
+ }
1714
+ end
1715
+
1716
+ Login.launch
1717
+ ```
1718
+
1719
+ Login (with `exclude` data-binding) - Logged Out
1720
+
1721
+ ![Login Exclude Logged Out](/images/glimmer-login-exclude-logged-out.png)
1722
+
1723
+ Login (with `exclude` data-binding) - Logged In
1724
+
1725
+ ![Login Exclude Logged In](/images/glimmer-login-exclude-logged-in.png)
1726
+
1582
1727
  **NOTE**: Layout data must never be reused between widgets. Always specify or clone again for every widget.
1583
1728
 
1584
1729
  This is a great guide for learning more about SWT layouts:
@@ -4694,4 +4839,4 @@ Learn more at the [JRuby Performance Profile WIKI page](https://github.com/jruby
4694
4839
 
4695
4840
  [MIT](LICENSE.txt)
4696
4841
 
4697
- Copyright (c) 2007-2021 - Andy Maleh.
4842
+ Copyright (c) 2007-2022 - Andy Maleh.
@@ -171,7 +171,7 @@ Afterwards, you may add signing arguments to `jpackage` via `Glimmer::RakeTask::
171
171
 
172
172
  ### Packaging Gotchas
173
173
 
174
- 1. Zsh (Z Shell)
174
+ 1- Zsh (Z Shell)
175
175
 
176
176
  Currently, `Glimmer::RakeTask::Package.jpackage_extra_args` is only honored when packaging from bash, not zsh.
177
177
 
@@ -181,32 +181,7 @@ You can get around that in zsh by running glimmer package commands with `bash -c
181
181
  bash -c 'source ~/.glimmer_source; glimmer package'
182
182
  ```
183
183
 
184
- 2. unsupported Java version "16", defaulting to 1.7
185
-
186
- If you get this error while packaging:
187
-
188
- ```
189
- unsupported Java version "16", defaulting to 1.7
190
- [ERROR] Internal error: org.jruby.exceptions.RaiseException: (LoadError) library `java' could not be loaded: java.lang.reflect.InaccessibleObjectException: Unable to make protected native java.lang.Object java.lang.Object.clone() throws java.lang.CloneNotSupportedException accessible: module java.base does not "opens java.lang" to unnamed module @138caeca -> [Help 1]
191
- org.apache.maven.InternalErrorException: Internal error: org.jruby.exceptions.RaiseException: (LoadError) library `java' could not be loaded: java.lang.reflect.InaccessibleObjectException: Unable to make protected native java.lang.Object java.lang.Object.clone() throws java.lang.CloneNotSupportedException accessible: module java.base does not "opens java.lang" to unnamed module @138caeca
192
- at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:121)
193
- at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
194
- at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
195
- at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
196
- at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
197
- at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
198
- at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
199
- at java.base/java.lang.reflect.Method.invoke(Method.java:567)
200
- at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
201
- at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
202
- at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
203
- at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
204
- Caused by: org.jruby.exceptions.RaiseException: (LoadError) library `java' could not be loaded: java.lang.reflect.InaccessibleObjectException: Unable to make protected native java.lang.Object java.lang.Object.clone() throws java.lang.CloneNotSupportedException accessible: module java.base does not "opens java.lang" to unnamed module @138caeca
205
- [ERROR]
206
- [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
207
- ```
208
-
209
- 3. jpackage missing from PATH on the Mac
184
+ 2- jpackage missing from PATH on the Mac
210
185
 
211
186
  On the Mac, the latest JDK 16 installable DMG/PKG is resulting in `jpackage` to be missing from `PATH`. To include, you might need to add `export PATH="/Library/Java/JavaVirtualMachines/jdk-16.0.2.jdk/Contents/Home/bin:$PATH"` to `~/.zprofile` or `~/.bashrc`
212
187
  ```
@@ -218,7 +193,7 @@ On the Mac, the latest JDK 16 installable DMG/PKG is resulting in `jpackage` to
218
193
 
219
194
  Please ignore. It should be harmless. If you get blocked by it for any reason, please open an Issue about it.
220
195
 
221
- 4. Java on Windows System PATH
196
+ 3- Java on Windows System PATH
222
197
 
223
198
  If you get any errors running Java on Windows, keep in mind that you need to have the Java binaries "C:\Program Files\Java\jdk-16.0.2\bin" on the Windows System PATH environment variable.
224
199
 
@@ -229,7 +204,7 @@ Simply replace it with the simple path mentioned above (`"C:\Program Files\Java\
229
204
 
230
205
  Lastly, reinstall JRuby to ensure it is using Java from the right path.
231
206
 
232
- 5. File paths in app running from packaged JAR file
207
+ 4- File paths in app running from packaged JAR file
233
208
 
234
209
  Glimmer packaged apps always reside within a JAR file before being wrapped by a native executable.
235
210
 
@@ -242,16 +217,22 @@ file_path = file_path.sub(/^uri\:classloader\:/, '').sub(/^\/+/, '')
242
217
  jcl = JRuby.runtime.jruby_class_loader
243
218
  resource = jcl.get_resource_as_stream(file_path)
244
219
  file_input_stream = resource.to_io.to_input_stream
245
- ```
220
+ ```
246
221
 
247
222
  The `image` keyword in Glimmer automatically does that work when passing an image path produced from inside a JAR file.
248
223
 
249
- 6. NAME.app is damaged and can't be opened. You should move it to the trash
224
+ 5- NAME.app is damaged and can't be opened. You should move it to the trash
250
225
 
251
226
  If you package an app for the Mac and an end-user gets the error message above upon installing, note that you probably have a system incompatibility issue between your OS/CPU Architecture and the end-user's OS/CPU Architecture. To resolve the issue, make sure to repackage the app for the Mac on a system perfectly matching the end-user's OS/CPU Architecture (sometimes, packaging on a newer MacOS with the same CPU Architecture also works, but you would have to test that to confirm and ensure full compatibility).
252
227
 
253
- 7. Message about a Mac app for which the developer cannot be verified (Move To Trash or Cancel)
228
+ 6- Message about a Mac app for which the developer cannot be verified (Move To Trash or Cancel)
254
229
 
255
230
  If you get the above message when running a packaged Mac app for the first time, choose cancel and then immediately go to System Preferences -> Security & Privacy -> General Tab -> Choose Open Anyway at the bottom where the app name should be showing.
256
231
 
257
232
  This would not be an issue if the app was [signed by Apple as per Mac Application Distribution instructions](#mac-application-distribution)
233
+
234
+ ## License
235
+
236
+ [MIT](LICENSE.txt)
237
+
238
+ Copyright (c) 2007-2022 - Andy Maleh.
@@ -79,6 +79,7 @@
79
79
  - [Metronome](#metronome)
80
80
  - [Weather](#weather)
81
81
  - [Quarto](#quarto)
82
+ - [Snake](#snake)
82
83
  - [External Samples](#external-samples)
83
84
  - [Glimmer Calculator](#glimmer-calculator)
84
85
  - [Gladiator](#gladiator)
@@ -1375,6 +1376,20 @@ Quarto
1375
1376
 
1376
1377
  ![Quarto](/images/glimmer-quarto.png)
1377
1378
 
1379
+ #### Snake
1380
+
1381
+ This is the classic Snake game, which demonstrates MVP (Model-View-Presenter) and data-binding written [test-first](/spec/samples/elaborate/snake/model/game_spec.rb).
1382
+
1383
+ Code:
1384
+
1385
+ [samples/elaborate/snake.rb](/samples/elaborate/snake.rb)
1386
+
1387
+ Snake
1388
+
1389
+ ![Snake](/images/glimmer-snake.png)
1390
+
1391
+ ![Snake Video](/images/glimmer-snake.gif)
1392
+
1378
1393
  ### External Samples
1379
1394
 
1380
1395
  #### Glimmer Calculator
@@ -1426,4 +1441,4 @@ This is an external enhanced version of [Metronome](#metronome) that can be pack
1426
1441
 
1427
1442
  [MIT](LICENSE.txt)
1428
1443
 
1429
- Copyright (c) 2007-2021 - Andy Maleh.
1444
+ Copyright (c) 2007-2022 - Andy Maleh.
@@ -13,3 +13,9 @@
13
13
  - Custom widget/shell/shape `before_body` and `after_body` blocks are declared as `do; end` blocks.
14
14
  - Custom widgets receive additional keyword arguments called options, which come after the SWT styles.
15
15
  - Pure logic multi-line blocks that do not constitute GUI DSL view elements (such as `Thread.new`, `loop`, `each` and `observe` blocks) rely on the `do; end` style to clearly separate logic code from view code.
16
+
17
+ ## License
18
+
19
+ [MIT](LICENSE.txt)
20
+
21
+ Copyright (c) 2007-2022 - Andy Maleh.
Binary file
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2007-2021 Andy Maleh
1
+ # Copyright (c) 2007-2022 Andy Maleh
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining
4
4
  # a copy of this software and associated documentation files (the
data/lib/ext/glimmer.rb CHANGED
@@ -1,5 +1,5 @@
1
- # Copyright (c) 2007-2021 Andy Maleh
2
- #
1
+ # Copyright (c) 2007-2022 Andy Maleh
2
+ #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining
4
4
  # a copy of this software and associated documentation files (the
5
5
  # "Software"), to deal in the Software without restriction, including
@@ -7,10 +7,10 @@
7
7
  # distribute, sublicense, and/or sell copies of the Software, and to
8
8
  # permit persons to whom the Software is furnished to do so, subject to
9
9
  # the following conditions:
10
- #
10
+ #
11
11
  # The above copyright notice and this permission notice shall be
12
12
  # included in all copies or substantial portions of the Software.
13
- #
13
+ #
14
14
  # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
15
  # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
16
  # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
@@ -1,3 +1,24 @@
1
+ # Copyright (c) 2007-2022 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
+
1
22
  module Rouge
2
23
  module Themes
3
24
  # A port of the pastie style from Pygments.
data/lib/glimmer/Rakefile CHANGED
@@ -1,5 +1,5 @@
1
- # Copyright (c) 2007-2021 Andy Maleh
2
- #
1
+ # Copyright (c) 2007-2022 Andy Maleh
2
+ #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining
4
4
  # a copy of this software and associated documentation files (the
5
5
  # "Software"), to deal in the Software without restriction, including
@@ -7,10 +7,10 @@
7
7
  # distribute, sublicense, and/or sell copies of the Software, and to
8
8
  # permit persons to whom the Software is furnished to do so, subject to
9
9
  # the following conditions:
10
- #
10
+ #
11
11
  # The above copyright notice and this permission notice shall be
12
12
  # included in all copies or substantial portions of the Software.
13
- #
13
+ #
14
14
  # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
15
  # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
16
  # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
@@ -19,8 +19,8 @@
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
- # This Rakefile gets used from Glimmer::Launcher when the current directory for running the `glimmer` command
23
- # does not have a Rakefile (e.g. during scaffolding).
22
+ # This Rakefile gets used from Glimmer::Launcher when the current directory for running the `glimmer` command
23
+ # does not have a Rakefile (e.g. during scaffolding).
24
24
  # It is not needed when running from inside a scaffolded app or gem, or an app with a Rakefile that has
25
25
  # `require 'glimmer/rake_task'`
26
26
  require 'glimmer/rake_task'
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2007-2021 Andy Maleh
1
+ # Copyright (c) 2007-2022 Andy Maleh
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining
4
4
  # a copy of this software and associated documentation files (the
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2007-2021 Andy Maleh
1
+ # Copyright (c) 2007-2022 Andy Maleh
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining
4
4
  # a copy of this software and associated documentation files (the
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2007-2021 Andy Maleh
1
+ # Copyright (c) 2007-2022 Andy Maleh
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining
4
4
  # a copy of this software and associated documentation files (the
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2007-2021 Andy Maleh
1
+ # Copyright (c) 2007-2022 Andy Maleh
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining
4
4
  # a copy of this software and associated documentation files (the
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2007-2021 Andy Maleh
1
+ # Copyright (c) 2007-2022 Andy Maleh
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining
4
4
  # a copy of this software and associated documentation files (the
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2007-2021 Andy Maleh
1
+ # Copyright (c) 2007-2022 Andy Maleh
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining
4
4
  # a copy of this software and associated documentation files (the
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2007-2021 Andy Maleh
1
+ # Copyright (c) 2007-2022 Andy Maleh
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining
4
4
  # a copy of this software and associated documentation files (the
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2007-2021 Andy Maleh
1
+ # Copyright (c) 2007-2022 Andy Maleh
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining
4
4
  # a copy of this software and associated documentation files (the
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2007-2021 Andy Maleh
1
+ # Copyright (c) 2007-2022 Andy Maleh
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining
4
4
  # a copy of this software and associated documentation files (the