glimmer-dsl-swt 4.23.1.1 → 4.23.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3c37ec4445272c326501c750fcbb49f51476bb3a65caca31c5d41d23e5c8ed7b
4
- data.tar.gz: 78f436deedcd9bc89ff9123cc475510cb8276f26d1ff4f4baa835ea94c6a4d8c
3
+ metadata.gz: 8ee026868e1804b6f2869a86e9a5065e71da62719404a48b0dcd84543ff4456c
4
+ data.tar.gz: 5a0873cbeeaf9b79d4c6f1e9f21457b27c7f84a36a7ea7494e7f7000f528f200
5
5
  SHA512:
6
- metadata.gz: 16ca52eb3ce54d6483060ceb5c4ec9aa1d7faeb4cececd379fcef8d305e15dc12732a93ef06b6b373710f16155d9fff4cedd08c1bef49bdcf0c9573c60e56ebf
7
- data.tar.gz: b656ab11c677463ecffe51591fb1eb06028f58d93c0037ee881d00f7c49815ad0f666e6cd91a02b7c373d9d2b30a58bd6501f7f93780a238b3654aedaf53bc3d
6
+ metadata.gz: 1d160e6cca46cd9c9a64b9b6f218ad758862deedc101e2a6ff3f9a3700094cac5e2860b495d013138e741841331c88f29155658398afb48e50fc2fb3a83d9f3e
7
+ data.tar.gz: 19d84761f50d5ec8b9a160def8fdfb2dcd67ec11f3625b2162224deedea84d528f409d4f42cf5c1092795108f2f4a07f1cab3fc8bb58f01edaff3ee445a2aae8
data/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # Change Log
2
2
 
3
+ ## 4.23.1.4
4
+
5
+ - Improve convenience by making `sash_form` accept `orientation` with SWT style symbols directly (`:horizontal` directly instead of `swt(:horizontal)`)
6
+ - Improve convenience by making `sash_form` accept `maximized_control` as Glimmer DSL for SWT widget proxy instead of low-level SWT widget (`@label` instead of `@label.swt_widget`)
7
+ - Update Hello, Sash Form! to add Sash Color and simplify with new `sash_form` improvements
8
+
9
+ ## 4.23.1.3
10
+
11
+ - Update initial tab folder width in Weather sample
12
+ - Add Help menu to scaffolded apps/gems with About menu item that used to be in the scaffolded File menu
13
+ - Fix names of icons generated for custom shell gems to get them picked up by the `glimmer package` command
14
+ - Fix issue with shell not packing layout correctly on initial open (might be caused by the latest version of SWT under certain scenarios)
15
+ - Fix setting of Display app_name and app_version in scaffolded apps and custom shells
16
+
17
+ ## 4.23.1.2
18
+
19
+ - Add Hello, Pop Up Context Menu! video tutorial to Glimmer Meta-Sample
20
+ - Add Hello, Menu Bar! video tutorial to Glimmer Meta-Sample
21
+ - Add Language & Country menus to Hello, Menu Bar!
22
+ - Fix "Last Name" label in Hello, Tree! (was a duplicate "First Name" by mistake)
23
+
3
24
  ## 4.23.1.1
4
25
 
5
26
  - Switch order of buttons in Glimmer Meta-Sample to put Tutorial first
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.23.1.1
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.23.1.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)
@@ -19,9 +19,9 @@ Featured in JRuby Cookbook](http://shop.oreilly.com/product/9780596519650.do) an
19
19
 
20
20
  ![Eclipse SWT RCP NASA Mars Rover](/images/glimmer-eclipse-swt-rcp-nasa-mars-rover.png)
21
21
 
22
- [Glimmer DSL for SWT](https://rubygems.org/gems/glimmer-dsl-swt) 4.23.1.1 includes [SWT 4.23](https://download.eclipse.org/eclipse/downloads/drops4/R-4.23-202203080310/), which was released on March 8, 2022. 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.
22
+ [Glimmer DSL for SWT](https://rubygems.org/gems/glimmer-dsl-swt) 4.23.1.4 includes [SWT 4.23](https://download.eclipse.org/eclipse/downloads/drops4/R-4.23-202203080310/), which was released on March 8, 2022. 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.
23
23
 
24
- **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.
24
+ **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. That was [originally conceived back in 2007](https://andymaleh.blogspot.com/2007/12/data-shining-in-glimmer.html).
25
25
 
26
26
  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.
27
27
 
@@ -333,7 +333,7 @@ jgem install glimmer-dsl-swt
333
333
 
334
334
  Or this command if you want a specific version:
335
335
  ```
336
- jgem install glimmer-dsl-swt -v 4.23.1.1
336
+ jgem install glimmer-dsl-swt -v 4.23.1.4
337
337
  ```
338
338
 
339
339
  `jgem` is JRuby's version of `gem` command.
@@ -361,7 +361,7 @@ Note: if you're using activerecord or activesupport, keep in mind that Glimmer u
361
361
 
362
362
  Add the following to `Gemfile`:
363
363
  ```
364
- gem 'glimmer-dsl-swt', '~> 4.23.1.1'
364
+ gem 'glimmer-dsl-swt', '~> 4.23.1.4'
365
365
  ```
366
366
 
367
367
  And, then run:
@@ -384,7 +384,7 @@ glimmer
384
384
  ```
385
385
 
386
386
  ```
387
- Glimmer (JRuby Desktop Development GUI Framework) - JRuby Gem: glimmer-dsl-swt v4.23.1.1
387
+ Glimmer (JRuby Desktop Development GUI Framework) - JRuby Gem: glimmer-dsl-swt v4.23.1.4
388
388
 
389
389
  Usage: glimmer [--bundler] [--pd] [--quiet] [--debug] [--log-level=VALUE] [[ENV_VAR=VALUE]...] [[-jruby-option]...] (application.rb or task[task_args]) [[application2.rb]...]
390
390
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 4.23.1.1
1
+ 4.23.1.4
@@ -938,12 +938,10 @@ shell {
938
938
 
939
939
  The system tray allows showing icons for various apps that need to stay on for extended periods of time and provide quick access.
940
940
 
941
- In Glimmer DSL for SWT, generating tray items is automated via the `tray_item` keyword, which can be nested under `shell` and then have a child `menu` underneath that pops up when the user clicks on its icon in the system tray.
941
+ In Glimmer DSL for SWT, generating tray items is automated via the `tray_item` keyword, which can be nested under `shell` and then have a child `menu` underneath that pops up when the user clicks on its icon in the system tray. It is recommended that the related shell is declared with the `:on_top` style (in addition to the default style `:shell_trim`) to ensure it opens above all apps when shown.
942
942
 
943
943
  Note that if you would like to display notifications, you can use the [Nebula Notifier custom widget](https://github.com/AndyObtiva/glimmer-cw-nebula#notifier). Alternatively, you can look into the [Two Slices](https://github.com/sshtools/two-slices) Java library.
944
944
 
945
- Note how the shell was declared with the `:on_top` style (in addition to the default, which is `:shell_trim`) to ensure it opens above all apps when the "Show Application" menu item is selected.
946
-
947
945
  Example code:
948
946
 
949
947
  ```ruby
@@ -1044,6 +1042,10 @@ It can be customized with the `weights` attribute by setting initial weights to
1044
1042
 
1045
1043
  One noteworthy thing about the Glimmer implementation is that, unlike behavior in SWT, it allows declaring `weights` before the content of the `sash_form`, thus providing more natural and convenient syntax (Glimmer automatically takes care of sending that declaration to SWT at the end of declaring `sash_form` content as per the SWT requirements)
1046
1044
 
1045
+ You can customize the color of the sash by setting the `background` attribute.
1046
+
1047
+ Also, you can customize the `sash_width` (`Integer`) and `orientation` properties (`swt(:horizontal)` or `swt(:vertical)`).
1048
+
1047
1049
  Example (you may copy/paste in [`girb`](GLIMMER_GIRB.md)):
1048
1050
 
1049
1051
  ```ruby
@@ -3606,7 +3608,7 @@ Learn more at the [Hello, Tree!](/docs/reference/GLIMMER_SAMPLES.md#hello-tree)
3606
3608
 
3607
3609
  #### DateTime
3608
3610
 
3609
- `date_time` represents the SWT DateTime widget.
3611
+ `date_time` represents the SWT [DateTime](https://help.eclipse.org/latest/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/swt/widgets/DateTime.html) widget.
3610
3612
 
3611
3613
  Glimmer s the following alias keywords for it for convenience:
3612
3614
  - `date`: `date_time(:date)`
@@ -3615,15 +3617,15 @@ Glimmer s the following alias keywords for it for convenience:
3615
3617
  - `calendar`: `date_time(:calendar)`
3616
3618
 
3617
3619
  You can data-bind any of these properties:
3618
- - `date_time bind(model, :property)`: produces a Ruby DateTime object
3619
- - `date bind(model, :property)`: produces a Ruby Date object
3620
- - `time bind(model, :property)`: produces a Ruby Time object
3621
- - `year bind(model, :property)`: produces an integer
3622
- - `month bind(model, :property)`: produces an integer
3623
- - `day bind(model, :property)`: produces an integer
3624
- - `hours bind(model, :property)`: produces an integer
3625
- - `minutes bind(model, :property)`: produces an integer
3626
- - `seconds bind(model, :property)`: produces an integer
3620
+ - `date_time <=> [model, :property]`: produces a Ruby DateTime object
3621
+ - `date <=> [model, :property]`: produces a Ruby Date object
3622
+ - `time <=> [model, :property]`: produces a Ruby Time object
3623
+ - `year <=> [model, :property]`: produces an integer
3624
+ - `month <=> [model, :property]`: produces an integer
3625
+ - `day <=> [model, :property]`: produces an integer
3626
+ - `hours <=> [model, :property]`: produces an integer
3627
+ - `minutes <=> [model, :property]`: produces an integer
3628
+ - `seconds <=> [model, :property]`: produces an integer
3627
3629
 
3628
3630
  Learn more at the [Hello, Date Time!](/docs/reference/GLIMMER_SAMPLES.md#hello-date-time) sample.
3629
3631
 
@@ -682,7 +682,7 @@ Hello, Print!
682
682
 
683
683
  #### Hello, Date Time!
684
684
 
685
- This sample demonstrates the use of [date_time](#datetime) widget keywords in Glimmer: `date`, `date_drop_down`, `time`, and `calendar`
685
+ This sample demonstrates the use of [date_time](/docs/reference/GLIMMER_GUI_DSL_SYNTAX.md#datetime) widget keywords in Glimmer: `date`, `date_drop_down`, `time`, and `calendar`
686
686
 
687
687
  Code:
688
688
 
@@ -1429,6 +1429,12 @@ Gladiator is a good demonstration of:
1429
1429
 
1430
1430
  [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer-cs-timer/master/glimmer-timer-screenshot.png" />](https://github.com/AndyObtiva/glimmer-cs-timer)
1431
1431
 
1432
+ #### Contact Manager
1433
+
1434
+ [<img src="https://raw.githubusercontent.com/AndyObtiva/contact_manager/master/icons/linux/Contact%20Manager.png" height=40 /> Contact Manager](https://github.com/AndyObtiva/contact_manager) is an enhanced version of the included Contact Manager elaborate sample, which demonstrates how to connect to a [SQLite database](https://www.sqlite.org/index.html) with [ActiveRecord](https://rubygems.org/gems/activerecord).
1435
+
1436
+ [<img src="https://raw.githubusercontent.com/AndyObtiva/contact_manager/master/screenshots/contact-manager.png" /> ](https://github.com/AndyObtiva/contact_manager)
1437
+
1432
1438
  ## License
1433
1439
 
1434
1440
  [MIT](LICENSE.txt)
Binary file
@@ -280,17 +280,17 @@ module Glimmer
280
280
  write 'spec/spec_helper.rb', spec_helper_file
281
281
 
282
282
  mkdir_p 'icons/windows'
283
- icon_file = "icons/windows/#{human_name(custom_shell_name)}.ico"
283
+ icon_file = "icons/windows/#{human_name(gem_name)}.ico"
284
284
  cp File.expand_path('../../../../icons/scaffold_app.ico', __FILE__), icon_file
285
285
  puts "Created #{current_dir_name}/#{icon_file}"
286
286
 
287
287
  mkdir_p 'icons/macosx'
288
- icon_file = "icons/macosx/#{human_name(custom_shell_name)}.icns"
288
+ icon_file = "icons/macosx/#{human_name(gem_name)}.icns"
289
289
  cp File.expand_path('../../../../icons/scaffold_app.icns', __FILE__), icon_file
290
290
  puts "Created #{current_dir_name}/#{icon_file}"
291
291
 
292
292
  mkdir_p 'icons/linux'
293
- icon_file = "icons/linux/#{human_name(custom_shell_name)}.png"
293
+ icon_file = "icons/linux/#{human_name(gem_name)}.png"
294
294
  cp File.expand_path('../../../../icons/scaffold_app.png', __FILE__), icon_file
295
295
  puts "Created #{current_dir_name}/#{icon_file}"
296
296
 
@@ -445,9 +445,13 @@ module Glimmer
445
445
  end
446
446
 
447
447
  class #{class_name(app_name)}
448
+ include Glimmer
449
+
448
450
  APP_ROOT = File.expand_path('../..', __FILE__)
449
451
  VERSION = File.read(File.join(APP_ROOT, 'VERSION'))
450
452
  LICENSE = File.read(File.join(APP_ROOT, 'LICENSE.txt'))
453
+ Display.app_name = '#{human_name(app_name)}'
454
+ Display.app_version = VERSION
451
455
  end
452
456
 
453
457
  require '#{file_name(app_name)}/view/app_view'
@@ -574,6 +578,8 @@ module Glimmer
574
578
  APP_ROOT = File.expand_path('../../../..', __FILE__)
575
579
  VERSION = File.read(File.join(APP_ROOT, 'VERSION'))
576
580
  LICENSE = File.read(File.join(APP_ROOT, 'LICENSE.txt'))
581
+ Display.app_name = '#{human_name(custom_shell_name)}'
582
+ Display.app_version = VERSION
577
583
 
578
584
  MULTI_LINE_STRING
579
585
  end
@@ -594,8 +600,6 @@ module Glimmer
594
600
  if %i[gem app desktopify].include?(shell_type)
595
601
  custom_shell_file_content += <<-MULTI_LINE_STRING
596
602
  before_body do
597
- Display.app_name = '#{shell_type == :gem ? human_name(custom_shell_name) : human_name(namespace)}'
598
- Display.app_version = VERSION
599
603
  @display = display {
600
604
  on_about do
601
605
  display_about_dialog
@@ -630,8 +634,8 @@ module Glimmer
630
634
  shell#{'(:fill_screen)' if shell_type == :desktopify} {
631
635
  # Replace example content below with custom shell content
632
636
  minimum_size #{shell_type == :desktopify ? '768, 432' : '420, 240'}
633
- image File.join(APP_ROOT, 'icons', 'windows', "#{human_name(shell_type == :gem ? custom_shell_name : current_dir_name)}.ico") if OS.windows?
634
- image File.join(APP_ROOT, 'icons', 'linux', "#{human_name(shell_type == :gem ? custom_shell_name : current_dir_name)}.png") unless OS.windows?
637
+ image File.join(APP_ROOT, 'icons', 'windows', "#{human_name(current_dir_name)}.ico") if OS.windows?
638
+ image File.join(APP_ROOT, 'icons', 'linux', "#{human_name(current_dir_name)}.png") unless OS.windows?
635
639
  text "#{human_name(namespace)}#{' - ' + human_name(custom_shell_name) if shell_type != :desktopify}"
636
640
 
637
641
  MULTI_LINE_STRING
@@ -661,18 +665,21 @@ module Glimmer
661
665
  text '&File'
662
666
 
663
667
  menu_item {
664
- text '&About...'
668
+ text '&Preferences...'
665
669
 
666
670
  on_widget_selected do
667
- display_about_dialog
671
+ #{shell_type == :desktopify ? 'display_about_dialog' : 'display_preferences_dialog'}
668
672
  end
669
673
  }
674
+ }
675
+ menu {
676
+ text '&Help'
670
677
 
671
678
  menu_item {
672
- text '&Preferences...'
679
+ text '&About...'
673
680
 
674
681
  on_widget_selected do
675
- #{shell_type == :desktopify ? 'display_about_dialog' : 'display_preferences_dialog'}
682
+ display_about_dialog
676
683
  end
677
684
  }
678
685
  }
@@ -121,7 +121,8 @@ module Glimmer
121
121
  @swt_widget.setVisible(true)
122
122
  else
123
123
  @opened_before = true
124
- @swt_widget.pack
124
+ @swt_widget.layout(true, true)
125
+ @swt_widget.pack(true)
125
126
  center_within_display
126
127
  @swt_widget.open
127
128
  end
@@ -1141,6 +1141,14 @@ module Glimmer
1141
1141
  items: lambda do |value|
1142
1142
  value.to_java :string
1143
1143
  end,
1144
+ maximized_control: lambda do |value|
1145
+ value = (value.respond_to?(:swt_widget) ? value.swt_widget : value) if swt_widget.is_a?(SashForm)
1146
+ value
1147
+ end,
1148
+ orientation: lambda do |value|
1149
+ value = SWTProxy[value] if swt_widget.is_a?(SashForm)
1150
+ value
1151
+ end,
1144
1152
  selection: lambda do |value|
1145
1153
  value = value.to_f if swt_widget.is_a?(Spinner)
1146
1154
  value
@@ -12,3 +12,8 @@ Hello, Styled Text!: ahs54DPmmso
12
12
  Hello, Code Text!: y0rNzMURnHY
13
13
  Hello, Tree!: M-ZOFyzbEKo
14
14
  Hello, Table!: 3zyyXq7WJwc
15
+ Hello, Pop Up Context Menu!: kupwWSZdsQE
16
+ Hello, Menu Bar!: 3RRVFIfA_UM
17
+ Weather: rC6x6aj1MdA
18
+ Hello, Date Time!: MpXbPEMUrns
19
+ Hello, Sash Form!: F7j2TTpbX6s
@@ -72,7 +72,9 @@ class Weather
72
72
  }
73
73
 
74
74
  tab_folder {
75
- layout_data(:center, :center, true, true)
75
+ layout_data(:center, :center, true, true) {
76
+ width_hint 250
77
+ }
76
78
 
77
79
  ['℃', '℉'].each do |temp_unit|
78
80
  tab_item {
@@ -41,6 +41,7 @@ shell {
41
41
  menu_bar {
42
42
  menu {
43
43
  text '&File'
44
+
44
45
  menu_item {
45
46
  text '&New'
46
47
  accelerator :command, :N
@@ -52,6 +53,7 @@ shell {
52
53
  }.open
53
54
  end
54
55
  }
56
+
55
57
  menu_item {
56
58
  text '&Open...'
57
59
  accelerator :command, :O
@@ -63,10 +65,13 @@ shell {
63
65
  }.open
64
66
  end
65
67
  }
68
+
66
69
  menu {
67
70
  text 'Open &Recent'
71
+
68
72
  menu_item {
69
73
  text 'File 1'
74
+
70
75
  on_widget_selected do
71
76
  message_box {
72
77
  text 'File 1'
@@ -74,8 +79,10 @@ shell {
74
79
  }.open
75
80
  end
76
81
  }
82
+
77
83
  menu_item {
78
84
  text 'File 2'
85
+
79
86
  on_widget_selected do
80
87
  message_box {
81
88
  text 'File 2'
@@ -84,7 +91,9 @@ shell {
84
91
  end
85
92
  }
86
93
  }
94
+
87
95
  menu_item(:separator)
96
+
88
97
  menu_item {
89
98
  text 'E&xit'
90
99
 
@@ -93,21 +102,26 @@ shell {
93
102
  end
94
103
  }
95
104
  }
105
+
96
106
  menu {
97
107
  text '&Edit'
108
+
98
109
  menu_item {
99
110
  text 'Cut'
100
111
  accelerator :command, :X
101
112
  }
113
+
102
114
  menu_item {
103
115
  text 'Copy'
104
116
  accelerator :command, :C
105
117
  }
118
+
106
119
  menu_item {
107
120
  text 'Paste'
108
121
  accelerator :command, :V
109
122
  }
110
123
  }
124
+
111
125
  menu {
112
126
  text '&Options'
113
127
 
@@ -119,6 +133,7 @@ shell {
119
133
  @select_multiple_menu.enabled = true
120
134
  end
121
135
  }
136
+
122
137
  @select_one_menu = menu {
123
138
  text '&Select One'
124
139
  enabled false
@@ -126,13 +141,16 @@ shell {
126
141
  menu_item(:radio) {
127
142
  text 'Option 1'
128
143
  }
144
+
129
145
  menu_item(:radio) {
130
146
  text 'Option 2'
131
147
  }
148
+
132
149
  menu_item(:radio) {
133
150
  text 'Option 3'
134
151
  }
135
152
  }
153
+
136
154
  @select_multiple_menu = menu {
137
155
  text '&Select Multiple'
138
156
  enabled false
@@ -140,18 +158,64 @@ shell {
140
158
  menu_item(:check) {
141
159
  text 'Option 4'
142
160
  }
161
+
143
162
  menu_item(:check) {
144
163
  text 'Option 5'
145
164
  }
165
+
146
166
  menu_item(:check) {
147
167
  text 'Option 6'
148
168
  }
149
169
  }
150
170
  }
171
+
172
+ menu {
173
+ text '&Language'
174
+
175
+ ['denmark', 'finland', 'france', 'germany', 'italy', 'mexico', 'netherlands', 'norway', 'usa'].each do |image_name|
176
+ menu_item(:radio) { |a_menu_item|
177
+ image File.expand_path("images/#{image_name}.png", __dir__)
178
+ selection image_name == 'usa'
179
+
180
+ on_widget_selected do
181
+ if a_menu_item.selection
182
+ message_box {
183
+ text 'Language Selection'
184
+ message "You selected the language of #{image_name.capitalize}!"
185
+ }.open
186
+ end
187
+ end
188
+ }
189
+ end
190
+ }
191
+
192
+ menu {
193
+ text '&Country'
194
+
195
+ ['denmark', 'finland', 'france', 'germany', 'italy', 'mexico', 'netherlands', 'norway', 'usa'].each do |image_name|
196
+ menu_item(:radio) { |a_menu_item|
197
+ text image_name.capitalize
198
+ image File.expand_path("images/#{image_name}.png", __dir__)
199
+ selection image_name == 'usa'
200
+
201
+ on_widget_selected do
202
+ if a_menu_item.selection
203
+ message_box {
204
+ text 'Country Selection'
205
+ message "You selected the country of #{image_name.capitalize}!"
206
+ }.open
207
+ end
208
+ end
209
+ }
210
+ end
211
+ }
212
+
151
213
  menu {
152
214
  text '&Format'
215
+
153
216
  menu {
154
217
  text '&Background Color'
218
+
155
219
  COLORS.each { |color_style|
156
220
  menu_item(:radio) {
157
221
  text color_style.to_s.split('_').map(&:capitalize).join(' ')
@@ -162,8 +226,10 @@ shell {
162
226
  }
163
227
  }
164
228
  }
229
+
165
230
  menu {
166
231
  text 'Foreground &Color'
232
+
167
233
  COLORS.each { |color_style|
168
234
  menu_item(:radio) {
169
235
  text color_style.to_s.split('_').map(&:capitalize).join(' ')
@@ -175,8 +241,10 @@ shell {
175
241
  }
176
242
  }
177
243
  }
244
+
178
245
  menu {
179
246
  text '&View'
247
+
180
248
  menu_item(:radio) {
181
249
  text 'Small'
182
250
 
@@ -185,6 +253,7 @@ shell {
185
253
  @label.parent.pack
186
254
  end
187
255
  }
256
+
188
257
  menu_item(:radio) {
189
258
  text 'Medium'
190
259
  selection true
@@ -194,6 +263,7 @@ shell {
194
263
  @label.parent.pack
195
264
  end
196
265
  }
266
+
197
267
  menu_item(:radio) {
198
268
  text 'Large'
199
269
 
@@ -203,8 +273,10 @@ shell {
203
273
  end
204
274
  }
205
275
  }
276
+
206
277
  menu {
207
278
  text '&Help'
279
+
208
280
  menu_item {
209
281
  text '&Manual'
210
282
  accelerator :command, :shift, :M
@@ -216,6 +288,7 @@ shell {
216
288
  }.open
217
289
  end
218
290
  }
291
+
219
292
  menu_item {
220
293
  text '&Tutorial'
221
294
  accelerator :command, :shift, :T
@@ -227,7 +300,9 @@ shell {
227
300
  }.open
228
301
  end
229
302
  }
303
+
230
304
  menu_item(:separator)
305
+
231
306
  menu_item {
232
307
  text '&Report an Issue...'
233
308
 
@@ -22,22 +22,15 @@
22
22
  require 'glimmer-dsl-swt'
23
23
 
24
24
  class SashFormPresenter
25
- include Glimmer
26
-
27
- attr_accessor :sash_width, :orientation, :orientation_style
25
+ attr_accessor :sash_width, :sash_color, :orientation
28
26
 
29
27
  def initialize
30
- @sash_width = 10
31
- self.orientation = 'horizontal'
28
+ self.sash_width = 10
29
+ self.orientation = :horizontal
32
30
  end
33
31
 
34
32
  def orientation_options
35
- ['horizontal', 'vertical']
36
- end
37
-
38
- def orientation=(value)
39
- @orientation = value
40
- self.orientation_style = swt(@orientation)
33
+ [:horizontal, :vertical]
41
34
  end
42
35
  end
43
36
 
@@ -55,7 +48,8 @@ shell {
55
48
  height_hint 200
56
49
  }
57
50
  sash_width <=> [@presenter, :sash_width]
58
- orientation <=> [@presenter, :orientation_style]
51
+ background <=> [@presenter, :sash_color]
52
+ orientation <=> [@presenter, :orientation]
59
53
  weights 1, 2
60
54
 
61
55
  @green_label = label {
@@ -90,6 +84,20 @@ shell {
90
84
  font height: 16
91
85
  }
92
86
 
87
+ label {
88
+ layout_data(:right, :center, true, false)
89
+ text 'Sash Color:'
90
+ font height: 16
91
+ }
92
+ button {
93
+ layout_data :fill, :center, true, false
94
+ text "Choose Color..."
95
+
96
+ on_widget_selected do
97
+ @presenter.sash_color = color_dialog.open
98
+ end
99
+ }
100
+
93
101
  label {
94
102
  layout_data(:right, :center, true, false)
95
103
  text 'Orientation:'
@@ -110,7 +118,7 @@ shell {
110
118
  font height: 16
111
119
 
112
120
  on_widget_selected do
113
- @sash_form.maximized_control = @green_label.swt_widget
121
+ @sash_form.maximized_control = @green_label
114
122
  end
115
123
  }
116
124
  button {
@@ -120,7 +128,7 @@ shell {
120
128
  font height: 16
121
129
 
122
130
  on_widget_selected do
123
- @sash_form.maximized_control = @red_label.swt_widget
131
+ @sash_form.maximized_control = @red_label
124
132
  end
125
133
  }
126
134
 
@@ -335,7 +335,7 @@ class HelloTree
335
335
 
336
336
  label {
337
337
  layout_data(:fill, :center, false, false)
338
- text 'First Name:'
338
+ text 'Last Name:'
339
339
  font height: 16, style: :bold
340
340
  }
341
341
  text {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glimmer-dsl-swt
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.23.1.1
4
+ version: 4.23.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Maleh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-03 00:00:00.000000000 Z
11
+ date: 2022-06-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement