glimmer-dsl-libui 0.3.0 → 0.3.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +35 -0
  3. data/README.md +1229 -1210
  4. data/VERSION +1 -1
  5. data/examples/area_gallery.rb +28 -28
  6. data/examples/area_gallery2.rb +113 -110
  7. data/examples/area_gallery3.rb +28 -28
  8. data/examples/area_gallery4.rb +112 -110
  9. data/examples/basic_area.rb +1 -3
  10. data/examples/basic_area2.rb +1 -3
  11. data/examples/basic_area3.rb +17 -0
  12. data/examples/basic_area4.rb +19 -0
  13. data/examples/basic_scrolling_area.rb +79 -0
  14. data/examples/basic_table_color.rb +1 -11
  15. data/examples/basic_table_color2.rb +39 -0
  16. data/examples/basic_table_image.rb +2 -14
  17. data/examples/basic_table_image2.rb +44 -0
  18. data/examples/basic_table_image_text.rb +2 -13
  19. data/examples/basic_table_image_text2.rb +44 -0
  20. data/examples/basic_transform.rb +3 -6
  21. data/examples/basic_transform2.rb +34 -0
  22. data/examples/color_the_circles.rb +1 -3
  23. data/examples/dynamic_area.rb +1 -3
  24. data/examples/dynamic_area2.rb +5 -7
  25. data/examples/form_table.rb +4 -0
  26. data/examples/grid.rb +4 -4
  27. data/examples/histogram.rb +4 -8
  28. data/examples/meta_example.rb +50 -10
  29. data/examples/snake.rb +1 -3
  30. data/examples/tetris.rb +15 -18
  31. data/examples/tic_tac_toe/board.rb +4 -2
  32. data/examples/tic_tac_toe.rb +1 -3
  33. data/glimmer-dsl-libui.gemspec +0 -0
  34. data/lib/glimmer/dsl/libui/shape_expression.rb +6 -1
  35. data/lib/glimmer/libui/control_proxy/area_proxy/scrolling_area_proxy.rb +35 -0
  36. data/lib/glimmer/libui/control_proxy/area_proxy.rb +1 -0
  37. data/lib/glimmer/libui/control_proxy/column.rb +2 -2
  38. data/lib/glimmer/libui/control_proxy/image_proxy.rb +42 -35
  39. data/lib/glimmer/libui/control_proxy/table_proxy.rb +15 -2
  40. data/lib/glimmer/libui/control_proxy/window_proxy.rb +20 -0
  41. data/lib/glimmer/libui/shape.rb +49 -1
  42. metadata +12 -19
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.0
1
+ 0.3.4
@@ -4,50 +4,50 @@ include Glimmer
4
4
 
5
5
  window('Area Gallery', 400, 400) {
6
6
  area {
7
- path { # declarative stable path
8
- square(0, 0, 100)
9
- square(100, 100, 400)
10
-
11
- fill r: 102, g: 102, b: 204
12
- }
13
- path { # declarative stable path
14
- rectangle(0, 100, 100, 400)
15
- rectangle(100, 0, 400, 100)
16
-
17
- # linear gradient (has x0, y0, x1, y1, and stops)
18
- fill x0: 10, y0: 10, x1: 350, y1: 350, stops: [{pos: 0.25, r: 204, g: 102, b: 204}, {pos: 0.75, r: 102, g: 102, b: 204}]
19
- }
20
- path { # declarative stable path
21
- polygon(100, 100, 100, 400, 400, 100, 400, 400)
22
-
7
+ polygon(100, 100, 100, 400, 400, 100, 400, 400) { # declarative stable path (implicit path syntax for a single shape nested directly under area)
23
8
  fill r: 202, g: 102, b: 104, a: 0.5
24
9
  stroke r: 0, g: 0, b: 0
25
10
  }
26
- path { # declarative stable path
27
- polybezier(0, 0, 200, 100, 100, 200, 400, 100, 300, 100, 100, 300, 100, 400, 100, 300, 300, 100, 400, 400)
28
-
11
+
12
+ polybezier(0, 0,
13
+ 200, 100, 100, 200, 400, 100,
14
+ 300, 100, 100, 300, 100, 400,
15
+ 100, 300, 300, 100, 400, 400) { # declarative stable path (implicit path syntax for a single shape nested directly under area)
29
16
  fill r: 202, g: 102, b: 204, a: 0.5
30
17
  stroke r: 0, g: 0, b: 0, thickness: 2, dashes: [50, 10, 10, 10], dash_phase: -50.0
31
18
  }
32
- path { # declarative stable path
33
- polyline(100, 100, 400, 100, 100, 400, 400, 400, 0, 0)
34
19
 
20
+ polyline(100, 100, 400, 100, 100, 400, 400, 400, 0, 0) { # declarative stable path (implicit path syntax for a single shape nested directly under area)
35
21
  stroke r: 0, g: 0, b: 0, thickness: 2
36
22
  }
37
- path { # declarative stable path
38
- arc(404, 216, 190, 90, 90, false)
39
-
23
+
24
+ arc(404, 216, 190, 90, 90, false) { # declarative stable path (implicit path syntax for a single shape nested directly under area)
40
25
  # radial gradient (has an outer_radius in addition to x0, y0, x1, y1, and stops)
41
26
  fill outer_radius: 90, x0: 0, y0: 0, x1: 500, y1: 500, stops: [{pos: 0.25, r: 102, g: 102, b: 204, a: 0.5}, {pos: 0.75, r: 204, g: 102, b: 204}]
42
27
  stroke r: 0, g: 0, b: 0, thickness: 2, dashes: [50, 10, 10, 10], dash_phase: -50.0
43
28
  }
44
- path { # declarative stable path
45
- circle(200, 200, 90)
46
-
29
+
30
+ circle(200, 200, 90) { # declarative stable path (implicit path syntax for a single shape nested directly under area)
47
31
  fill r: 202, g: 102, b: 204, a: 0.5
48
32
  stroke r: 0, g: 0, b: 0, thickness: 2
49
33
  }
50
- text(161, 40, 100) { # x, y, width
34
+
35
+ path { # declarative stable path (explicit path syntax for multiple shapes sharing attributes)
36
+ square(0, 0, 100)
37
+ square(100, 100, 400)
38
+
39
+ fill r: 102, g: 102, b: 204
40
+ }
41
+
42
+ path { # declarative stable path (explicit path syntax for multiple shapes sharing attributes)
43
+ rectangle(0, 100, 100, 400)
44
+ rectangle(100, 0, 400, 100)
45
+
46
+ # linear gradient (has x0, y0, x1, y1, and stops)
47
+ fill x0: 10, y0: 10, x1: 350, y1: 350, stops: [{pos: 0.25, r: 204, g: 102, b: 204}, {pos: 0.75, r: 102, g: 102, b: 204}]
48
+ }
49
+
50
+ text(161, 40, 100) { # declarative stable text
51
51
  string('Area Gallery') {
52
52
  font family: 'Arial', size: (OS.mac? ? 14 : 11)
53
53
  color :black
@@ -4,12 +4,120 @@ include Glimmer
4
4
 
5
5
  window('Area Gallery', 400, 400) {
6
6
  area {
7
- path { # declarative stable path
7
+
8
+ figure { # declarative stable path with explicit attributes (implicit path syntax for a single shape nested directly under area)
9
+ x 100
10
+ y 100
11
+
12
+ line {
13
+ x 100
14
+ y 400
15
+ }
16
+
17
+ line {
18
+ x 400
19
+ y 100
20
+ }
21
+
22
+ line {
23
+ x 400
24
+ y 400
25
+ }
26
+
27
+ closed true # polygon figure is closed (last point forms a line with first point)
28
+ fill r: 202, g: 102, b: 104, a: 0.5
29
+ stroke r: 0, g: 0, b: 0
30
+ }
31
+
32
+ figure { # declarative stable path with explicit attributes (implicit path syntax for a single shape nested directly under area)
33
+ x 0
34
+ y 0
35
+
36
+ bezier {
37
+ c1_x 200
38
+ c1_y 100
39
+ c2_x 100
40
+ c2_y 200
41
+ end_x 400
42
+ end_y 100
43
+ }
44
+
45
+ bezier {
46
+ c1_x 300
47
+ c1_y 100
48
+ c2_x 100
49
+ c2_y 300
50
+ end_x 100
51
+ end_y 400
52
+ }
53
+
54
+ bezier {
55
+ c1_x 100
56
+ c1_y 300
57
+ c2_x 300
58
+ c2_y 100
59
+ end_x 400
60
+ end_y 400
61
+ }
62
+
63
+ fill r: 202, g: 102, b: 204, a: 0.5
64
+ stroke r: 0, g: 0, b: 0, thickness: 2, dashes: [50, 10, 10, 10], dash_phase: -50.0
65
+ }
66
+
67
+ figure { # declarative stable path with explicit attributes (implicit path syntax for a single shape nested directly under area)
68
+ x 100
69
+ y 100
70
+
71
+ line {
72
+ x 400
73
+ y 100
74
+ }
75
+
76
+ line {
77
+ x 100
78
+ y 400
79
+ }
80
+
81
+ line {
82
+ x 400
83
+ y 400
84
+ }
85
+
86
+ line {
87
+ x 0
88
+ y 0
89
+ }
90
+
91
+ stroke r: 0, g: 0, b: 0, thickness: 2
92
+ }
93
+
94
+ arc { # declarative stable path with explicit attributes (implicit path syntax for a single shape nested directly under area)
95
+ x_center 404
96
+ y_center 216
97
+ radius 190
98
+ start_angle 90
99
+ sweep 90
100
+ is_negative false
101
+ # radial gradient (has an outer_radius in addition to x0, y0, x1, y1, and stops)
102
+ fill outer_radius: 90, x0: 0, y0: 0, x1: 500, y1: 500, stops: [{pos: 0.25, r: 102, g: 102, b: 204, a: 0.5}, {pos: 0.75, r: 204, g: 102, b: 204}]
103
+ stroke r: 0, g: 0, b: 0, thickness: 2, dashes: [50, 10, 10, 10], dash_phase: -50.0
104
+ }
105
+
106
+ circle { # declarative stable path with explicit attributes (implicit path syntax for a single shape nested directly under area)
107
+ x_center 200
108
+ y_center 200
109
+ radius 90
110
+ fill r: 202, g: 102, b: 204, a: 0.5
111
+ stroke r: 0, g: 0, b: 0, thickness: 2
112
+ }
113
+
114
+ path { # declarative stable path with explicit attributes (explicit path syntax for multiple shapes sharing attributes)
8
115
  square {
9
116
  x 0
10
117
  y 0
11
118
  length 100
12
119
  }
120
+
13
121
  square {
14
122
  x 100
15
123
  y 100
@@ -18,13 +126,15 @@ window('Area Gallery', 400, 400) {
18
126
 
19
127
  fill r: 102, g: 102, b: 204
20
128
  }
21
- path { # declarative stable path
129
+
130
+ path { # declarative stable path with explicit attributes (explicit path syntax for multiple shapes sharing attributes)
22
131
  rectangle {
23
132
  x 0
24
133
  y 100
25
134
  width 100
26
135
  height 400
27
136
  }
137
+
28
138
  rectangle {
29
139
  x 100
30
140
  y 0
@@ -35,115 +145,8 @@ window('Area Gallery', 400, 400) {
35
145
  # linear gradient (has x0, y0, x1, y1, and stops)
36
146
  fill x0: 10, y0: 10, x1: 350, y1: 350, stops: [{pos: 0.25, r: 204, g: 102, b: 204}, {pos: 0.75, r: 102, g: 102, b: 204}]
37
147
  }
38
- path { # declarative stable path
39
- figure {
40
- x 100
41
- y 100
42
-
43
- line {
44
- x 100
45
- y 400
46
- }
47
- line {
48
- x 400
49
- y 100
50
- }
51
- line {
52
- x 400
53
- y 400
54
- }
55
-
56
- closed true
57
- }
58
-
59
- fill r: 202, g: 102, b: 104, a: 0.5
60
- stroke r: 0, g: 0, b: 0
61
- }
62
- path { # declarative stable path
63
- figure {
64
- x 0
65
- y 0
66
-
67
- bezier {
68
- c1_x 200
69
- c1_y 100
70
- c2_x 100
71
- c2_y 200
72
- end_x 400
73
- end_y 100
74
- }
75
- bezier {
76
- c1_x 300
77
- c1_y 100
78
- c2_x 100
79
- c2_y 300
80
- end_x 100
81
- end_y 400
82
- }
83
- bezier {
84
- c1_x 100
85
- c1_y 300
86
- c2_x 300
87
- c2_y 100
88
- end_x 400
89
- end_y 400
90
- }
91
- }
92
-
93
- fill r: 202, g: 102, b: 204, a: 0.5
94
- stroke r: 0, g: 0, b: 0, thickness: 2, dashes: [50, 10, 10, 10], dash_phase: -50.0
95
- }
96
- path { # declarative stable path
97
- polyline(100, 100, 400, 100, 100, 400, 400, 400, 0, 0)
98
- figure {
99
- x 100
100
- y 100
101
-
102
- line {
103
- x 400
104
- y 100
105
- }
106
- line {
107
- x 100
108
- y 400
109
- }
110
- line {
111
- x 400
112
- y 400
113
- }
114
- line {
115
- x 0
116
- y 0
117
- }
118
- }
119
148
 
120
- stroke r: 0, g: 0, b: 0, thickness: 2
121
- }
122
- path { # declarative stable path
123
- arc {
124
- x_center 404
125
- y_center 216
126
- radius 190
127
- start_angle 90
128
- sweep 90
129
- is_negative false
130
- }
131
-
132
- # radial gradient (has an outer_radius in addition to x0, y0, x1, y1, and stops)
133
- fill outer_radius: 90, x0: 0, y0: 0, x1: 500, y1: 500, stops: [{pos: 0.25, r: 102, g: 102, b: 204, a: 0.5}, {pos: 0.75, r: 204, g: 102, b: 204}]
134
- stroke r: 0, g: 0, b: 0, thickness: 2, dashes: [50, 10, 10, 10], dash_phase: -50.0
135
- }
136
- path { # declarative stable path
137
- circle {
138
- x_center 200
139
- y_center 200
140
- radius 90
141
- }
142
-
143
- fill r: 202, g: 102, b: 204, a: 0.5
144
- stroke r: 0, g: 0, b: 0, thickness: 2
145
- }
146
- text {
149
+ text { # declarative stable text with explicit attributes
147
150
  x 161
148
151
  y 40
149
152
  width 100
@@ -5,50 +5,50 @@ include Glimmer
5
5
  window('Area Gallery', 400, 400) {
6
6
  area {
7
7
  on_draw do |area_draw_params|
8
- path { # a dynamic path is added semi-declaratively inside on_draw block
9
- square(0, 0, 100)
10
- square(100, 100, 400)
11
-
12
- fill r: 102, g: 102, b: 204
13
- }
14
- path { # a dynamic path is added semi-declaratively inside on_draw block
15
- rectangle(0, 100, 100, 400)
16
- rectangle(100, 0, 400, 100)
17
-
18
- # linear gradient (has x0, y0, x1, y1, and stops)
19
- fill x0: 10, y0: 10, x1: 350, y1: 350, stops: [{pos: 0.25, r: 204, g: 102, b: 204}, {pos: 0.75, r: 102, g: 102, b: 204}]
20
- }
21
- path { # a dynamic path is added semi-declaratively inside on_draw block
22
- polygon(100, 100, 100, 400, 400, 100, 400, 400)
23
-
8
+ polygon(100, 100, 100, 400, 400, 100, 400, 400) { # dynamic path, added semi-declaratively inside on_draw block
24
9
  fill r: 202, g: 102, b: 104, a: 0.5
25
10
  stroke r: 0, g: 0, b: 0
26
11
  }
27
- path { # a dynamic path is added semi-declaratively inside on_draw block
28
- polybezier(0, 0, 200, 100, 100, 200, 400, 100, 300, 100, 100, 300, 100, 400, 100, 300, 300, 100, 400, 400)
29
-
12
+
13
+ polybezier(0, 0,
14
+ 200, 100, 100, 200, 400, 100,
15
+ 300, 100, 100, 300, 100, 400,
16
+ 100, 300, 300, 100, 400, 400) { # dynamic path, added semi-declaratively inside on_draw block
30
17
  fill r: 202, g: 102, b: 204, a: 0.5
31
18
  stroke r: 0, g: 0, b: 0, thickness: 2, dashes: [50, 10, 10, 10], dash_phase: -50.0
32
19
  }
33
- path { # a dynamic path is added semi-declaratively inside on_draw block
34
- polyline(100, 100, 400, 100, 100, 400, 400, 400, 0, 0)
35
20
 
21
+ polyline(100, 100, 400, 100, 100, 400, 400, 400, 0, 0) { # dynamic path, added semi-declaratively inside on_draw block
36
22
  stroke r: 0, g: 0, b: 0, thickness: 2
37
23
  }
38
- path { # a dynamic path is added semi-declaratively inside on_draw block
39
- arc(404, 216, 190, 90, 90, false)
40
-
24
+
25
+ arc(404, 216, 190, 90, 90, false) { # dynamic path, added semi-declaratively inside on_draw block
41
26
  # radial gradient (has an outer_radius in addition to x0, y0, x1, y1, and stops)
42
27
  fill outer_radius: 90, x0: 0, y0: 0, x1: 500, y1: 500, stops: [{pos: 0.25, r: 102, g: 102, b: 204, a: 0.5}, {pos: 0.75, r: 204, g: 102, b: 204}]
43
28
  stroke r: 0, g: 0, b: 0, thickness: 2, dashes: [50, 10, 10, 10], dash_phase: -50.0
44
29
  }
45
- path { # a dynamic path is added semi-declaratively inside on_draw block
46
- circle(200, 200, 90)
47
-
30
+
31
+ circle(200, 200, 90) { # dynamic path, added semi-declaratively inside on_draw block
48
32
  fill r: 202, g: 102, b: 204, a: 0.5
49
33
  stroke r: 0, g: 0, b: 0, thickness: 2
50
34
  }
51
- text(161, 40, 100) { # x, y, width
35
+
36
+ path { # dynamic path, added semi-declaratively inside on_draw block
37
+ square(0, 0, 100)
38
+ square(100, 100, 400)
39
+
40
+ fill r: 102, g: 102, b: 204
41
+ }
42
+
43
+ path { # dynamic path, added semi-declaratively inside on_draw block
44
+ rectangle(0, 100, 100, 400)
45
+ rectangle(100, 0, 400, 100)
46
+
47
+ # linear gradient (has x0, y0, x1, y1, and stops)
48
+ fill x0: 10, y0: 10, x1: 350, y1: 350, stops: [{pos: 0.25, r: 204, g: 102, b: 204}, {pos: 0.75, r: 102, g: 102, b: 204}]
49
+ }
50
+
51
+ text(161, 40, 100) { # dynamic text added semi-declaratively inside on_draw block
52
52
  string('Area Gallery') {
53
53
  font family: 'Arial', size: (OS.mac? ? 14 : 11)
54
54
  color :black
@@ -5,12 +5,119 @@ include Glimmer
5
5
  window('Area Gallery', 400, 400) {
6
6
  area {
7
7
  on_draw do |area_draw_params|
8
- path { # a dynamic path is added semi-declaratively inside on_draw block
8
+ figure { # dynamic path, added semi-declaratively inside on_draw block
9
+ x 100
10
+ y 100
11
+
12
+ line {
13
+ x 100
14
+ y 400
15
+ }
16
+
17
+ line {
18
+ x 400
19
+ y 100
20
+ }
21
+
22
+ line {
23
+ x 400
24
+ y 400
25
+ }
26
+
27
+ closed true # polygon figure is closed (last point forms a line with first point)
28
+ fill r: 202, g: 102, b: 104, a: 0.5
29
+ stroke r: 0, g: 0, b: 0
30
+ }
31
+
32
+ figure { # dynamic path, added semi-declaratively inside on_draw block
33
+ x 0
34
+ y 0
35
+
36
+ bezier {
37
+ c1_x 200
38
+ c1_y 100
39
+ c2_x 100
40
+ c2_y 200
41
+ end_x 400
42
+ end_y 100
43
+ }
44
+
45
+ bezier {
46
+ c1_x 300
47
+ c1_y 100
48
+ c2_x 100
49
+ c2_y 300
50
+ end_x 100
51
+ end_y 400
52
+ }
53
+
54
+ bezier {
55
+ c1_x 100
56
+ c1_y 300
57
+ c2_x 300
58
+ c2_y 100
59
+ end_x 400
60
+ end_y 400
61
+ }
62
+
63
+ fill r: 202, g: 102, b: 204, a: 0.5
64
+ stroke r: 0, g: 0, b: 0, thickness: 2, dashes: [50, 10, 10, 10], dash_phase: -50.0
65
+ }
66
+
67
+ figure { # dynamic path, added semi-declaratively inside on_draw block
68
+ x 100
69
+ y 100
70
+
71
+ line {
72
+ x 400
73
+ y 100
74
+ }
75
+
76
+ line {
77
+ x 100
78
+ y 400
79
+ }
80
+
81
+ line {
82
+ x 400
83
+ y 400
84
+ }
85
+
86
+ line {
87
+ x 0
88
+ y 0
89
+ }
90
+
91
+ stroke r: 0, g: 0, b: 0, thickness: 2
92
+ }
93
+
94
+ arc { # dynamic path, added semi-declaratively inside on_draw block
95
+ x_center 404
96
+ y_center 216
97
+ radius 190
98
+ start_angle 90
99
+ sweep 90
100
+ is_negative false
101
+ # radial gradient (has an outer_radius in addition to x0, y0, x1, y1, and stops)
102
+ fill outer_radius: 90, x0: 0, y0: 0, x1: 500, y1: 500, stops: [{pos: 0.25, r: 102, g: 102, b: 204, a: 0.5}, {pos: 0.75, r: 204, g: 102, b: 204}]
103
+ stroke r: 0, g: 0, b: 0, thickness: 2, dashes: [50, 10, 10, 10], dash_phase: -50.0
104
+ }
105
+
106
+ circle { # dynamic path, added semi-declaratively inside on_draw block
107
+ x_center 200
108
+ y_center 200
109
+ radius 90
110
+ fill r: 202, g: 102, b: 204, a: 0.5
111
+ stroke r: 0, g: 0, b: 0, thickness: 2
112
+ }
113
+
114
+ path { # dynamic path, added semi-declaratively inside on_draw block
9
115
  square {
10
116
  x 0
11
117
  y 0
12
118
  length 100
13
119
  }
120
+
14
121
  square {
15
122
  x 100
16
123
  y 100
@@ -19,13 +126,15 @@ window('Area Gallery', 400, 400) {
19
126
 
20
127
  fill r: 102, g: 102, b: 204
21
128
  }
22
- path { # a dynamic path is added semi-declaratively inside on_draw block
129
+
130
+ path { # dynamic path, added semi-declaratively inside on_draw block
23
131
  rectangle {
24
132
  x 0
25
133
  y 100
26
134
  width 100
27
135
  height 400
28
136
  }
137
+
29
138
  rectangle {
30
139
  x 100
31
140
  y 0
@@ -36,115 +145,8 @@ window('Area Gallery', 400, 400) {
36
145
  # linear gradient (has x0, y0, x1, y1, and stops)
37
146
  fill x0: 10, y0: 10, x1: 350, y1: 350, stops: [{pos: 0.25, r: 204, g: 102, b: 204}, {pos: 0.75, r: 102, g: 102, b: 204}]
38
147
  }
39
- path { # a dynamic path is added semi-declaratively inside on_draw block
40
- figure {
41
- x 100
42
- y 100
43
-
44
- line {
45
- x 100
46
- y 400
47
- }
48
- line {
49
- x 400
50
- y 100
51
- }
52
- line {
53
- x 400
54
- y 400
55
- }
56
-
57
- closed true
58
- }
59
-
60
- fill r: 202, g: 102, b: 104, a: 0.5
61
- stroke r: 0, g: 0, b: 0
62
- }
63
- path { # a dynamic path is added semi-declaratively inside on_draw block
64
- figure {
65
- x 0
66
- y 0
67
-
68
- bezier {
69
- c1_x 200
70
- c1_y 100
71
- c2_x 100
72
- c2_y 200
73
- end_x 400
74
- end_y 100
75
- }
76
- bezier {
77
- c1_x 300
78
- c1_y 100
79
- c2_x 100
80
- c2_y 300
81
- end_x 100
82
- end_y 400
83
- }
84
- bezier {
85
- c1_x 100
86
- c1_y 300
87
- c2_x 300
88
- c2_y 100
89
- end_x 400
90
- end_y 400
91
- }
92
- }
93
-
94
- fill r: 202, g: 102, b: 204, a: 0.5
95
- stroke r: 0, g: 0, b: 0, thickness: 2, dashes: [50, 10, 10, 10], dash_phase: -50.0
96
- }
97
- path { # a dynamic path is added semi-declaratively inside on_draw block
98
- polyline(100, 100, 400, 100, 100, 400, 400, 400, 0, 0)
99
- figure {
100
- x 100
101
- y 100
102
-
103
- line {
104
- x 400
105
- y 100
106
- }
107
- line {
108
- x 100
109
- y 400
110
- }
111
- line {
112
- x 400
113
- y 400
114
- }
115
- line {
116
- x 0
117
- y 0
118
- }
119
- }
120
148
 
121
- stroke r: 0, g: 0, b: 0, thickness: 2
122
- }
123
- path { # a dynamic path is added semi-declaratively inside on_draw block
124
- arc {
125
- x_center 404
126
- y_center 216
127
- radius 190
128
- start_angle 90
129
- sweep 90
130
- is_negative false
131
- }
132
-
133
- # radial gradient (has an outer_radius in addition to x0, y0, x1, y1, and stops)
134
- fill outer_radius: 90, x0: 0, y0: 0, x1: 500, y1: 500, stops: [{pos: 0.25, r: 102, g: 102, b: 204, a: 0.5}, {pos: 0.75, r: 204, g: 102, b: 204}]
135
- stroke r: 0, g: 0, b: 0, thickness: 2, dashes: [50, 10, 10, 10], dash_phase: -50.0
136
- }
137
- path { # a dynamic path is added semi-declaratively inside on_draw block
138
- circle {
139
- x_center 200
140
- y_center 200
141
- radius 90
142
- }
143
-
144
- fill r: 202, g: 102, b: 204, a: 0.5
145
- stroke r: 0, g: 0, b: 0, thickness: 2
146
- }
147
- text {
149
+ text { # dynamic path, added semi-declaratively inside on_draw block
148
150
  x 161
149
151
  y 40
150
152
  width 100
@@ -7,9 +7,7 @@ window('Basic Area', 400, 400) {
7
7
 
8
8
  vertical_box {
9
9
  area {
10
- path { # a stable path is added declaratively
11
- rectangle(0, 0, 400, 400)
12
-
10
+ rectangle(0, 0, 400, 400) { # stable implicit path shape, added declaratively
13
11
  fill r: 102, g: 102, b: 204, a: 1.0
14
12
  }
15
13
  }
@@ -8,9 +8,7 @@ window('Basic Area', 400, 400) {
8
8
  vertical_box {
9
9
  area {
10
10
  on_draw do |area_draw_params|
11
- path { # a dynamic path is added semi-declaratively inside on_draw block
12
- rectangle(0, 0, 400, 400)
13
-
11
+ rectangle(0, 0, 400, 400) { # dynamic implicit path shape, added semi-declaratively inside on_draw block
14
12
  fill r: 102, g: 102, b: 204, a: 1.0
15
13
  }
16
14
  end
@@ -0,0 +1,17 @@
1
+ require 'glimmer-dsl-libui'
2
+
3
+ include Glimmer
4
+
5
+ window('Basic Area', 400, 400) {
6
+ margined true
7
+
8
+ vertical_box {
9
+ area {
10
+ path { # stable path, added declaratively
11
+ rectangle(0, 0, 400, 400)
12
+
13
+ fill r: 102, g: 102, b: 204, a: 1.0
14
+ }
15
+ }
16
+ }
17
+ }.show