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 +4 -4
- data/CHANGELOG.md +21 -0
- data/README.md +6 -6
- data/VERSION +1 -1
- data/docs/reference/GLIMMER_GUI_DSL_SYNTAX.md +15 -13
- data/docs/reference/GLIMMER_SAMPLES.md +7 -1
- data/glimmer-dsl-swt.gemspec +0 -0
- data/lib/glimmer/rake_task/scaffold.rb +18 -11
- data/lib/glimmer/swt/shell_proxy.rb +2 -1
- data/lib/glimmer/swt/widget_proxy.rb +8 -0
- data/samples/elaborate/meta_sample/tutorials.yml +5 -0
- data/samples/elaborate/weather.rb +3 -1
- data/samples/hello/hello_menu_bar.rb +75 -0
- data/samples/hello/hello_sash_form.rb +22 -14
- data/samples/hello/hello_tree.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8ee026868e1804b6f2869a86e9a5065e71da62719404a48b0dcd84543ff4456c
|
4
|
+
data.tar.gz: 5a0873cbeeaf9b79d4c6f1e9f21457b27c7f84a36a7ea7494e7f7000f528f200
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
+
# [<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.
|
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.
|
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.
|
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.
|
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
|
+
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
|
3619
|
-
- `date
|
3620
|
-
- `time
|
3621
|
-
- `year
|
3622
|
-
- `month
|
3623
|
-
- `day
|
3624
|
-
- `hours
|
3625
|
-
- `minutes
|
3626
|
-
- `seconds
|
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)
|
data/glimmer-dsl-swt.gemspec
CHANGED
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(
|
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(
|
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(
|
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(
|
634
|
-
image File.join(APP_ROOT, 'icons', 'linux', "#{human_name(
|
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 '&
|
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 '&
|
679
|
+
text '&About...'
|
673
680
|
|
674
681
|
on_widget_selected do
|
675
|
-
|
682
|
+
display_about_dialog
|
676
683
|
end
|
677
684
|
}
|
678
685
|
}
|
@@ -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
|
@@ -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
|
-
|
26
|
-
|
27
|
-
attr_accessor :sash_width, :orientation, :orientation_style
|
25
|
+
attr_accessor :sash_width, :sash_color, :orientation
|
28
26
|
|
29
27
|
def initialize
|
30
|
-
|
31
|
-
self.orientation =
|
28
|
+
self.sash_width = 10
|
29
|
+
self.orientation = :horizontal
|
32
30
|
end
|
33
31
|
|
34
32
|
def orientation_options
|
35
|
-
[
|
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
|
-
|
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
|
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
|
131
|
+
@sash_form.maximized_control = @red_label
|
124
132
|
end
|
125
133
|
}
|
126
134
|
|
data/samples/hello/hello_tree.rb
CHANGED
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.
|
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-
|
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
|