glimmer-dsl-swt 4.23.1.5 → 4.24.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +16 -0
- data/README.md +52 -13
- data/VERSION +1 -1
- data/docs/reference/GLIMMER_GUI_DSL_SYNTAX.md +698 -41
- data/docs/reference/GLIMMER_SAMPLES.md +2 -22
- data/glimmer-dsl-swt.gemspec +0 -0
- data/lib/glimmer/swt/custom/shape/path_segment.rb +1 -0
- data/lib/glimmer/swt/custom/shape.rb +5 -2
- data/lib/glimmer/swt/menu_proxy.rb +0 -3
- data/samples/elaborate/game_of_life/model/grid.rb +1 -1
- data/samples/elaborate/game_of_life.rb +13 -1
- data/samples/elaborate/meta_sample/tutorials.yml +5 -0
- data/samples/hello/hello_canvas_data_binding.rb +695 -38
- data/samples/hello/hello_canvas_drag_and_drop.rb +31 -2
- data/samples/hello/hello_tray_item.rb +0 -6
- data/vendor/swt/linux/swt.jar +0 -0
- data/vendor/swt/linux_aarch64/swt.jar +0 -0
- data/vendor/swt/mac/swt.jar +0 -0
- data/vendor/swt/mac_aarch64/swt.jar +0 -0
- data/vendor/swt/windows/swt.jar +0 -0
- metadata +16 -2
@@ -82,7 +82,6 @@
|
|
82
82
|
- [Snake](#snake)
|
83
83
|
- [External Samples](#external-samples)
|
84
84
|
- [Glimmer Calculator](#glimmer-calculator)
|
85
|
-
- [Gladiator](#gladiator)
|
86
85
|
- [Timer](#timer)
|
87
86
|
- [Contact Manager App](#contact-manager-app)
|
88
87
|
- [License](#license)
|
@@ -863,7 +862,7 @@ Hello, Canvas! Colors Changed
|
|
863
862
|
|
864
863
|
Hello, Canvas! Data-Binding (changing a `text` shape `string` via data-binding changes from another thread)
|
865
864
|
|
866
|
-
![Hello Canvas Data Binding](/images/glimmer-hello-canvas-data-binding.gif)
|
865
|
+
![Hello Canvas Text Data Binding](/images/glimmer-hello-canvas-text-data-binding.gif)
|
867
866
|
|
868
867
|
#### Hello, Canvas Animation!
|
869
868
|
|
@@ -923,9 +922,7 @@ Code:
|
|
923
922
|
|
924
923
|
Hello, Canvas Data Binding!
|
925
924
|
|
926
|
-
![Hello Canvas Data Binding](/images/glimmer-hello-canvas-data-binding.
|
927
|
-
|
928
|
-
![Hello Canvas Data Binding Line Changed](/images/glimmer-hello-canvas-data-binding-line-changed.png)
|
925
|
+
![Hello Canvas Data Binding](/images/glimmer-hello-canvas-data-binding.gif)
|
929
926
|
|
930
927
|
#### Hello, Canvas Shape Listeners!
|
931
928
|
|
@@ -1407,23 +1404,6 @@ Snake
|
|
1407
1404
|
|
1408
1405
|
[<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer-cs-calculator/master/glimmer-cs-calculator-screenshot.png" />](https://github.com/AndyObtiva/glimmer-cs-calculator)
|
1409
1406
|
|
1410
|
-
#### Gladiator
|
1411
|
-
|
1412
|
-
[<img src='https://raw.githubusercontent.com/AndyObtiva/glimmer-cs-gladiator/master/images/glimmer-cs-gladiator-logo.png' height=40 /> Gladiator](https://github.com/AndyObtiva/glimmer-cs-gladiator) (short for Glimmer Editor) is a Glimmer sample project under on-going development.
|
1413
|
-
You may check it out to learn how to build a Glimmer Custom Shell gem.
|
1414
|
-
|
1415
|
-
[<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer-cs-gladiator/master/images/glimmer-gladiator.png" />](https://github.com/AndyObtiva/glimmer-cs-gladiator)
|
1416
|
-
|
1417
|
-
Gladiator is a good demonstration of:
|
1418
|
-
- MVP Pattern
|
1419
|
-
- Tree data-binding
|
1420
|
-
- List data-binding
|
1421
|
-
- Text selection data-binding
|
1422
|
-
- Tabs
|
1423
|
-
- Context menus
|
1424
|
-
- Custom Shell
|
1425
|
-
- Custom widget
|
1426
|
-
|
1427
1407
|
#### Timer
|
1428
1408
|
|
1429
1409
|
[<img alt="Glimmer Timer Icon" src="https://raw.githubusercontent.com/AndyObtiva/glimmer-cs-timer/master/images/glimmer-timer-logo.png" height=40 /> Timer](https://github.com/AndyObtiva/glimmer-cs-timer) is a sample app demonstrating data-binding, multi-threading, and JSound (Java Sound) library integration in a desktop application.
|
data/glimmer-dsl-swt.gemspec
CHANGED
Binary file
|
@@ -98,6 +98,7 @@ module Glimmer
|
|
98
98
|
|
99
99
|
def add_to_swt_path(swt_path)
|
100
100
|
the_path_segment_args = path_segment_args.dup
|
101
|
+
the_path_segment_args = the_path_segment_args.first if the_path_segment_args.size == 1 && the_path_segment_args.first.is_a?(Array)
|
101
102
|
if !is_a?(Point) && self.class != Path
|
102
103
|
if !previous_point_connected?
|
103
104
|
if the_path_segment_args.count == default_path_segment_arg_count
|
@@ -562,7 +562,8 @@ module Glimmer
|
|
562
562
|
end
|
563
563
|
|
564
564
|
def has_attribute?(attribute_name, *args)
|
565
|
-
|
565
|
+
attribute_name == 'data' or
|
566
|
+
self.class.gc_instance_methods.include?(attribute_setter(attribute_name)) or
|
566
567
|
parameter_name?(attribute_name) or
|
567
568
|
(respond_to?(attribute_name, super: true) and respond_to?(ruby_attribute_setter(attribute_name), super: true))
|
568
569
|
end
|
@@ -577,7 +578,9 @@ module Glimmer
|
|
577
578
|
property_change = nil
|
578
579
|
ruby_attribute_getter_name = ruby_attribute_getter(attribute_name)
|
579
580
|
ruby_attribute_setter_name = ruby_attribute_setter(attribute_name)
|
580
|
-
if
|
581
|
+
if attribute_name == 'data'
|
582
|
+
set_data(*args)
|
583
|
+
elsif parameter_name?(attribute_name)
|
581
584
|
return if ruby_attribute_getter_name == (args.size == 1 ? args.first : args)
|
582
585
|
set_parameter_attribute(ruby_attribute_getter_name, *args)
|
583
586
|
elsif (respond_to?(attribute_name, super: true) and respond_to?(ruby_attribute_setter_name, super: true))
|
@@ -74,9 +74,6 @@ module Glimmer
|
|
74
74
|
DisplayProxy.instance.auto_exec { parent.swt_widget.setMenuBar(swt_widget) }
|
75
75
|
elsif styles.include?(:pop_up)
|
76
76
|
if parent.swt_widget.is_a?(TrayItem)
|
77
|
-
parent.on_widget_selected {
|
78
|
-
self.visible = true
|
79
|
-
}
|
80
77
|
parent.on_menu_detected {
|
81
78
|
self.visible = true
|
82
79
|
}
|
@@ -48,11 +48,23 @@ class GameOfLife
|
|
48
48
|
(0...HEIGHT).each do |row_index|
|
49
49
|
(0...WIDTH).each do |column_index|
|
50
50
|
rectangle(column_index*CELL_WIDTH, row_index*CELL_HEIGHT, CELL_WIDTH, CELL_HEIGHT) {
|
51
|
-
background <= [@grid.cell_rows[row_index][column_index],
|
51
|
+
background <= [@grid.cell_rows[row_index][column_index], :alive, on_read: ->(a) {a ? :black : :white}]
|
52
52
|
|
53
53
|
on_mouse_down do
|
54
54
|
@grid.cell_rows[row_index][column_index].toggle_aliveness!
|
55
55
|
end
|
56
|
+
|
57
|
+
on_drag_detected do
|
58
|
+
@drag_detected = true
|
59
|
+
end
|
60
|
+
|
61
|
+
on_mouse_move do
|
62
|
+
@grid.cell_rows[row_index][column_index].live! if @drag_detected
|
63
|
+
end
|
64
|
+
|
65
|
+
on_mouse_up do
|
66
|
+
@drag_detected = false
|
67
|
+
end
|
56
68
|
}
|
57
69
|
end
|
58
70
|
end
|
@@ -17,3 +17,8 @@ Hello, Menu Bar!: 3RRVFIfA_UM
|
|
17
17
|
Weather: rC6x6aj1MdA
|
18
18
|
Hello, Date Time!: MpXbPEMUrns
|
19
19
|
Hello, Sash Form!: F7j2TTpbX6s
|
20
|
+
Hello, Cursor!: 4AYlo8n3WFc
|
21
|
+
Hello, Tray Item!: VYXgIr5zxMM
|
22
|
+
Hello, Drag And Drop!: zJSG5ysow0M
|
23
|
+
Hello, Canvas Drag And Drop!: e7taTbRrDAM
|
24
|
+
Game Of Life: pDE79YRjOjs
|