glimmer-dsl-libui 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/README.md +190 -5
- data/VERSION +1 -1
- data/examples/basic_area2.rb +19 -0
- data/examples/dynamic_area.rb +99 -0
- data/glimmer-dsl-libui.gemspec +0 -0
- data/lib/glimmer/libui/area_proxy.rb +37 -0
- data/lib/glimmer/libui/button_column_proxy.rb +6 -1
- data/lib/glimmer/libui/path_proxy.rb +13 -5
- data/lib/glimmer/libui/window_proxy.rb +7 -1
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '0938fd7cd0d762ecf27c7897a6305ec9a1d8b447917c4612c864e87486e44241'
|
4
|
+
data.tar.gz: 7387d2a5d966bbf5f2e70184013cc8056023b94375b1ec1e9941bcdac0c8da27
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c44c83599999686358def664edf39c9f4cdcac415fd608d3668109eaba098b296cd27ce33130d8b0318904f89b406a5bddc2df808233f85c5474dc1165bbbfd2
|
7
|
+
data.tar.gz: c9d69205562886250e16359b5db53d426d4cea2d96da8bdac34c41b1488f7cd74e9e3864fa82636cd351169fab60e945f56a19f5219fc59312b4fc5d11e63770
|
data/CHANGELOG.md
CHANGED
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 LibUI 0.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 LibUI 0.1.1
|
2
2
|
## Prerequisite-Free Ruby Desktop Development GUI Library
|
3
3
|
[](http://badge.fury.io/rb/glimmer-dsl-libui)
|
4
4
|
[](https://codeclimate.com/github/AndyObtiva/glimmer-dsl-libui/maintainability)
|
@@ -43,7 +43,7 @@ Other [Glimmer](https://rubygems.org/gems/glimmer) DSL gems you might be interes
|
|
43
43
|
|
44
44
|
## Table of Contents
|
45
45
|
|
46
|
-
- [Glimmer DSL for LibUI 0.1.
|
46
|
+
- [Glimmer DSL for LibUI 0.1.1](#-glimmer-dsl-for-libui-011)
|
47
47
|
- [Glimmer GUI DSL Concepts](#glimmer-gui-dsl-concepts)
|
48
48
|
- [Usage](#usage)
|
49
49
|
- [API](#api)
|
@@ -82,6 +82,7 @@ Other [Glimmer](https://rubygems.org/gems/glimmer) DSL gems you might be interes
|
|
82
82
|
- [Basic Table Progress Bar](#basic-table-progress-bar)
|
83
83
|
- [Form Table](#form-table)
|
84
84
|
- [Basic Area](#basic-area)
|
85
|
+
- [Dynamic Area](#dynamic-area)
|
85
86
|
- [Contributing to glimmer-dsl-libui](#contributing-to-glimmer-dsl-libui)
|
86
87
|
- [Help](#help)
|
87
88
|
- [Issues](#issues)
|
@@ -169,7 +170,7 @@ gem install glimmer-dsl-libui
|
|
169
170
|
Or install via Bundler `Gemfile`:
|
170
171
|
|
171
172
|
```ruby
|
172
|
-
gem 'glimmer-dsl-libui', '~> 0.1.
|
173
|
+
gem 'glimmer-dsl-libui', '~> 0.1.1'
|
173
174
|
```
|
174
175
|
|
175
176
|
Add `require 'glimmer-dsl-libui'` at the top, and then `include Glimmer` into the top-level main object for testing or into an actual class for serious usage.
|
@@ -225,7 +226,7 @@ w.libui # => #<Fiddle::Pointer:0x00007fde53997980 ptr=0x00007fde51352a60 size=0
|
|
225
226
|
Control(Args) | Properties | Listeners
|
226
227
|
------------- | ---------- | ---------
|
227
228
|
`about_menu_item` | None | `on_clicked`
|
228
|
-
`area` | None |
|
229
|
+
`area` | None | `on_draw`
|
229
230
|
`button(text as String)` | `text` (`String`) | `on_clicked`
|
230
231
|
`button_column(name as String)` | `enabled` (Boolean) | None
|
231
232
|
`checkbox(text as String)` | `checked` (Boolean), `text` (`String`) | `on_toggled`
|
@@ -328,7 +329,61 @@ Note that the `cell_rows` property declaration results in "implicit data-binding
|
|
328
329
|
|
329
330
|
### Area API
|
330
331
|
|
331
|
-
The `area` control can
|
332
|
+
The `area` control can be used in one of two ways:
|
333
|
+
- Declaratively via stable paths: useful for stable paths that will not change later on. Simply nest `path` and figures like `rectangle` and all drawing logic is generated automatically.
|
334
|
+
- Semi-declaratively via on_draw listener dynamic paths: useful for more dynamic paths that will definitely change. Open an `on_draw` listener block and nest `path(area_draw_params)` and figures like `rectangle` and all drawing logic is generated automatically.
|
335
|
+
|
336
|
+
Here is an example of a declarative `area` with a stable path (you may copy/paste in [`girb`](#girb-glimmer-irb)):
|
337
|
+
|
338
|
+
```ruby
|
339
|
+
require 'glimmer-dsl-libui'
|
340
|
+
|
341
|
+
include Glimmer
|
342
|
+
|
343
|
+
window('Basic Area', 400, 400) {
|
344
|
+
margined true
|
345
|
+
|
346
|
+
vertical_box {
|
347
|
+
area {
|
348
|
+
path { # a stable path is added declaratively
|
349
|
+
rectangle(0, 0, 400, 400)
|
350
|
+
|
351
|
+
fill r: 102, g: 102, b: 204, a: 1.0
|
352
|
+
}
|
353
|
+
}
|
354
|
+
}
|
355
|
+
}.show
|
356
|
+
```
|
357
|
+
|
358
|
+

|
359
|
+
|
360
|
+
Here is the same example using a semi-declarative `area` with `on_draw` listener and a dynamic path (you may copy/paste in [`girb`](#girb-glimmer-irb)):
|
361
|
+
|
362
|
+
```ruby
|
363
|
+
require 'glimmer-dsl-libui'
|
364
|
+
|
365
|
+
include Glimmer
|
366
|
+
|
367
|
+
window('Basic Area', 400, 400) {
|
368
|
+
margined true
|
369
|
+
|
370
|
+
vertical_box {
|
371
|
+
area {
|
372
|
+
on_draw do |area_draw_params|
|
373
|
+
path(area_draw_params) { # a dynamic path is added semi-declaratively inside on_draw block
|
374
|
+
rectangle(0, 0, 400, 400)
|
375
|
+
|
376
|
+
fill r: 102, g: 102, b: 204, a: 1.0
|
377
|
+
}
|
378
|
+
end
|
379
|
+
}
|
380
|
+
}
|
381
|
+
}.show
|
382
|
+
```
|
383
|
+
|
384
|
+
Check [examples/dynamic_area.rb](#dynamic-area) for a more detailed semi-declarative example.
|
385
|
+
|
386
|
+
To redraw an `area`, you may call `#queue_redraw_all` method.
|
332
387
|
|
333
388
|
### Smart Defaults and Conventions
|
334
389
|
|
@@ -2689,6 +2744,136 @@ window('Basic Area', 400, 400) {
|
|
2689
2744
|
}.show
|
2690
2745
|
```
|
2691
2746
|
|
2747
|
+
### Dynamic Area
|
2748
|
+
|
2749
|
+
[examples/dynamic_area.rb](examples/dynamic_area.rb)
|
2750
|
+
|
2751
|
+
Run with this command from the root of the project if you cloned the project:
|
2752
|
+
|
2753
|
+
```
|
2754
|
+
ruby -r './lib/glimmer-dsl-libui' examples/dynamic_area.rb
|
2755
|
+
```
|
2756
|
+
|
2757
|
+
Run with this command if you installed the [Ruby gem](https://rubygems.org/gems/glimmer-dsl-libui):
|
2758
|
+
|
2759
|
+
```
|
2760
|
+
ruby -r glimmer-dsl-libui -e "require 'examples/dynamic_area'"
|
2761
|
+
```
|
2762
|
+
|
2763
|
+
Mac
|
2764
|
+
|
2765
|
+

|
2766
|
+

|
2767
|
+
|
2768
|
+
Linux
|
2769
|
+
|
2770
|
+

|
2771
|
+

|
2772
|
+
|
2773
|
+
New [Glimmer DSL for LibUI](https://rubygems.org/gems/glimmer-dsl-libui) Version:
|
2774
|
+
|
2775
|
+
```ruby
|
2776
|
+
require 'glimmer-dsl-libui'
|
2777
|
+
|
2778
|
+
include Glimmer
|
2779
|
+
|
2780
|
+
window('Dynamic Area', 240, 500) {
|
2781
|
+
margined true
|
2782
|
+
|
2783
|
+
vertical_box {
|
2784
|
+
label('Rectangle Properties') {
|
2785
|
+
stretchy false
|
2786
|
+
}
|
2787
|
+
|
2788
|
+
form {
|
2789
|
+
stretchy false
|
2790
|
+
|
2791
|
+
@x_spinbox = spinbox(0, 1000) {
|
2792
|
+
label 'x'
|
2793
|
+
value 25
|
2794
|
+
|
2795
|
+
on_changed do
|
2796
|
+
@area.queue_redraw_all
|
2797
|
+
end
|
2798
|
+
}
|
2799
|
+
|
2800
|
+
@y_spinbox = spinbox(0, 1000) {
|
2801
|
+
label 'y'
|
2802
|
+
value 25
|
2803
|
+
|
2804
|
+
on_changed do
|
2805
|
+
@area.queue_redraw_all
|
2806
|
+
end
|
2807
|
+
}
|
2808
|
+
|
2809
|
+
@width_spinbox = spinbox(0, 1000) {
|
2810
|
+
label 'width'
|
2811
|
+
value 150
|
2812
|
+
|
2813
|
+
on_changed do
|
2814
|
+
@area.queue_redraw_all
|
2815
|
+
end
|
2816
|
+
}
|
2817
|
+
|
2818
|
+
@height_spinbox = spinbox(0, 1000) {
|
2819
|
+
label 'height'
|
2820
|
+
value 150
|
2821
|
+
|
2822
|
+
on_changed do
|
2823
|
+
@area.queue_redraw_all
|
2824
|
+
end
|
2825
|
+
}
|
2826
|
+
|
2827
|
+
@red_spinbox = spinbox(0, 255) {
|
2828
|
+
label 'red'
|
2829
|
+
value 102
|
2830
|
+
|
2831
|
+
on_changed do
|
2832
|
+
@area.queue_redraw_all
|
2833
|
+
end
|
2834
|
+
}
|
2835
|
+
|
2836
|
+
@green_spinbox = spinbox(0, 255) {
|
2837
|
+
label 'green'
|
2838
|
+
value 102
|
2839
|
+
|
2840
|
+
on_changed do
|
2841
|
+
@area.queue_redraw_all
|
2842
|
+
end
|
2843
|
+
}
|
2844
|
+
|
2845
|
+
@blue_spinbox = spinbox(0, 255) {
|
2846
|
+
label 'blue'
|
2847
|
+
value 204
|
2848
|
+
|
2849
|
+
on_changed do
|
2850
|
+
@area.queue_redraw_all
|
2851
|
+
end
|
2852
|
+
}
|
2853
|
+
|
2854
|
+
@alpha_spinbox = spinbox(0, 100) {
|
2855
|
+
label 'alpha'
|
2856
|
+
value 100
|
2857
|
+
|
2858
|
+
on_changed do
|
2859
|
+
@area.queue_redraw_all
|
2860
|
+
end
|
2861
|
+
}
|
2862
|
+
}
|
2863
|
+
|
2864
|
+
@area = area {
|
2865
|
+
on_draw do |area_draw_params|
|
2866
|
+
path(area_draw_params) { # a dynamic path is added semi-declaratively inside on_draw block
|
2867
|
+
rectangle(@x_spinbox.value, @y_spinbox.value, @width_spinbox.value, @height_spinbox.value)
|
2868
|
+
|
2869
|
+
fill r: @red_spinbox.value, g: @green_spinbox.value, b: @blue_spinbox.value, a: @alpha_spinbox.value / 100.0
|
2870
|
+
}
|
2871
|
+
end
|
2872
|
+
}
|
2873
|
+
}
|
2874
|
+
}.show
|
2875
|
+
```
|
2876
|
+
|
2692
2877
|
## Contributing to glimmer-dsl-libui
|
2693
2878
|
|
2694
2879
|
- Check out the latest master to make sure the feature hasn't been
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
@@ -0,0 +1,19 @@
|
|
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
|
+
on_draw do |area_draw_params|
|
11
|
+
path(area_draw_params) { # a dynamic path is added semi-declaratively inside on_draw block
|
12
|
+
rectangle(0, 0, 400, 400)
|
13
|
+
|
14
|
+
fill r: 102, g: 102, b: 204, a: 1.0
|
15
|
+
}
|
16
|
+
end
|
17
|
+
}
|
18
|
+
}
|
19
|
+
}.show
|
@@ -0,0 +1,99 @@
|
|
1
|
+
require 'glimmer-dsl-libui'
|
2
|
+
|
3
|
+
include Glimmer
|
4
|
+
|
5
|
+
window('Dynamic Area', 240, 600) {
|
6
|
+
margined true
|
7
|
+
|
8
|
+
vertical_box {
|
9
|
+
label('Rectangle Properties') {
|
10
|
+
stretchy false
|
11
|
+
}
|
12
|
+
|
13
|
+
form {
|
14
|
+
stretchy false
|
15
|
+
|
16
|
+
@x_spinbox = spinbox(0, 1000) {
|
17
|
+
label 'x'
|
18
|
+
value 25
|
19
|
+
|
20
|
+
on_changed do
|
21
|
+
@area.queue_redraw_all
|
22
|
+
end
|
23
|
+
}
|
24
|
+
|
25
|
+
@y_spinbox = spinbox(0, 1000) {
|
26
|
+
label 'y'
|
27
|
+
value 25
|
28
|
+
|
29
|
+
on_changed do
|
30
|
+
@area.queue_redraw_all
|
31
|
+
end
|
32
|
+
}
|
33
|
+
|
34
|
+
@width_spinbox = spinbox(0, 1000) {
|
35
|
+
label 'width'
|
36
|
+
value 150
|
37
|
+
|
38
|
+
on_changed do
|
39
|
+
@area.queue_redraw_all
|
40
|
+
end
|
41
|
+
}
|
42
|
+
|
43
|
+
@height_spinbox = spinbox(0, 1000) {
|
44
|
+
label 'height'
|
45
|
+
value 150
|
46
|
+
|
47
|
+
on_changed do
|
48
|
+
@area.queue_redraw_all
|
49
|
+
end
|
50
|
+
}
|
51
|
+
|
52
|
+
@red_spinbox = spinbox(0, 255) {
|
53
|
+
label 'red'
|
54
|
+
value 102
|
55
|
+
|
56
|
+
on_changed do
|
57
|
+
@area.queue_redraw_all
|
58
|
+
end
|
59
|
+
}
|
60
|
+
|
61
|
+
@green_spinbox = spinbox(0, 255) {
|
62
|
+
label 'green'
|
63
|
+
value 102
|
64
|
+
|
65
|
+
on_changed do
|
66
|
+
@area.queue_redraw_all
|
67
|
+
end
|
68
|
+
}
|
69
|
+
|
70
|
+
@blue_spinbox = spinbox(0, 255) {
|
71
|
+
label 'blue'
|
72
|
+
value 204
|
73
|
+
|
74
|
+
on_changed do
|
75
|
+
@area.queue_redraw_all
|
76
|
+
end
|
77
|
+
}
|
78
|
+
|
79
|
+
@alpha_spinbox = spinbox(0, 100) {
|
80
|
+
label 'alpha'
|
81
|
+
value 100
|
82
|
+
|
83
|
+
on_changed do
|
84
|
+
@area.queue_redraw_all
|
85
|
+
end
|
86
|
+
}
|
87
|
+
}
|
88
|
+
|
89
|
+
@area = area {
|
90
|
+
on_draw do |area_draw_params|
|
91
|
+
path(area_draw_params) { # a dynamic path is added semi-declaratively inside on_draw block
|
92
|
+
rectangle(@x_spinbox.value, @y_spinbox.value, @width_spinbox.value, @height_spinbox.value)
|
93
|
+
|
94
|
+
fill r: @red_spinbox.value, g: @green_spinbox.value, b: @blue_spinbox.value, a: @alpha_spinbox.value / 100.0
|
95
|
+
}
|
96
|
+
end
|
97
|
+
}
|
98
|
+
}
|
99
|
+
}.show
|
data/glimmer-dsl-libui.gemspec
CHANGED
Binary file
|
@@ -46,6 +46,29 @@ module Glimmer
|
|
46
46
|
@children ||= []
|
47
47
|
end
|
48
48
|
|
49
|
+
def on_draw(&block)
|
50
|
+
@on_draw_procs ||= []
|
51
|
+
if block.nil?
|
52
|
+
@on_draw_procs
|
53
|
+
else
|
54
|
+
@on_draw_procs << block
|
55
|
+
block
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def can_handle_listener?(listener_name)
|
60
|
+
listener_name == 'on_draw' || super
|
61
|
+
end
|
62
|
+
|
63
|
+
def handle_listener(listener_name, &listener)
|
64
|
+
case listener_name
|
65
|
+
when 'on_draw'
|
66
|
+
on_draw(&listener)
|
67
|
+
else
|
68
|
+
super
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
49
72
|
private
|
50
73
|
|
51
74
|
def build_control
|
@@ -56,13 +79,27 @@ module Glimmer
|
|
56
79
|
def install_listeners
|
57
80
|
@area_handler.Draw = fiddle_closure_block_caller(0, [1, 1, 1]) do |_, _, area_draw_params|
|
58
81
|
area_draw_params = ::LibUI::FFI::AreaDrawParams.new(area_draw_params)
|
82
|
+
area_draw_params = area_draw_params_hash(area_draw_params)
|
59
83
|
children.each {|child| child.draw(area_draw_params)}
|
84
|
+
on_draw.each {|listener| listener.call(area_draw_params) }
|
60
85
|
end
|
61
86
|
@area_handler.MouseEvent = fiddle_closure_block_caller(0, [0]) {}
|
62
87
|
@area_handler.MouseCrossed = fiddle_closure_block_caller(0, [0]) {}
|
63
88
|
@area_handler.DragBroken = fiddle_closure_block_caller(0, [0]) {}
|
64
89
|
@area_handler.KeyEvent = fiddle_closure_block_caller(0, [0]) {}
|
65
90
|
end
|
91
|
+
|
92
|
+
def area_draw_params_hash(area_draw_params)
|
93
|
+
{
|
94
|
+
context: area_draw_params.Context,
|
95
|
+
area_width: area_draw_params.AreaWidth,
|
96
|
+
area_height: area_draw_params.AreaHeight,
|
97
|
+
clip_x: area_draw_params.ClipX,
|
98
|
+
clip_y: area_draw_params.ClipY,
|
99
|
+
clip_width: area_draw_params.ClipWidth,
|
100
|
+
clip_height: area_draw_params.ClipHeight,
|
101
|
+
}
|
102
|
+
end
|
66
103
|
end
|
67
104
|
end
|
68
105
|
end
|
@@ -35,7 +35,12 @@ module Glimmer
|
|
35
35
|
def on_clicked(&block)
|
36
36
|
# TODO consider generalizing into custom listeners and moving to ControlProxy
|
37
37
|
@on_clicked_procs ||= []
|
38
|
-
|
38
|
+
if block.nil?
|
39
|
+
@on_clicked_procs
|
40
|
+
else
|
41
|
+
@on_clicked_procs << block
|
42
|
+
block
|
43
|
+
end
|
39
44
|
end
|
40
45
|
|
41
46
|
def can_handle_listener?(listener_name)
|
@@ -42,6 +42,11 @@ module Glimmer
|
|
42
42
|
children << child
|
43
43
|
end
|
44
44
|
|
45
|
+
def post_add_content
|
46
|
+
super
|
47
|
+
draw(area_draw_params) if @parent_proxy.nil?
|
48
|
+
end
|
49
|
+
|
45
50
|
def children
|
46
51
|
@children ||= []
|
47
52
|
end
|
@@ -50,8 +55,8 @@ module Glimmer
|
|
50
55
|
build_control
|
51
56
|
children.each {|child| child.draw(area_draw_params)}
|
52
57
|
::LibUI.draw_path_end(@libui)
|
53
|
-
::LibUI.draw_fill(area_draw_params
|
54
|
-
::LibUI.draw_stroke(area_draw_params
|
58
|
+
::LibUI.draw_fill(area_draw_params[:context], @libui, fill_draw_brush.to_ptr) unless fill.empty?
|
59
|
+
::LibUI.draw_stroke(area_draw_params[:context], @libui, stroke_draw_brush, draw_stroke_params) unless stroke.empty?
|
55
60
|
::LibUI.draw_free_path(@libui)
|
56
61
|
end
|
57
62
|
|
@@ -103,11 +108,14 @@ module Glimmer
|
|
103
108
|
@draw_stroke_params.DashPhase = @stroke[:dash_phase] || 0
|
104
109
|
@draw_stroke_params
|
105
110
|
end
|
111
|
+
|
112
|
+
# returns area_draw_params if built inside on_draw listener (not needed if declared outside)
|
113
|
+
def area_draw_params
|
114
|
+
@args[0] if @parent_proxy.nil?
|
115
|
+
end
|
106
116
|
|
107
117
|
def destroy
|
108
|
-
|
109
|
-
@parent_proxy.children.delete(self)
|
110
|
-
end
|
118
|
+
@parent_proxy.children.delete(self) unless @parent_proxy.nil?
|
111
119
|
end
|
112
120
|
|
113
121
|
private
|
@@ -48,8 +48,14 @@ module Glimmer
|
|
48
48
|
end
|
49
49
|
|
50
50
|
def on_destroy(&block)
|
51
|
+
# TODO look into a way to generalize this logic for multiple listeners
|
51
52
|
@on_destroy_procs ||= []
|
52
|
-
|
53
|
+
if block.nil?
|
54
|
+
@on_destroy_procs
|
55
|
+
else
|
56
|
+
@on_destroy_procs << block
|
57
|
+
block
|
58
|
+
end
|
53
59
|
end
|
54
60
|
|
55
61
|
def show
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: glimmer-dsl-libui
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Maleh
|
@@ -195,6 +195,7 @@ files:
|
|
195
195
|
- bin/girb
|
196
196
|
- bin/girb_runner.rb
|
197
197
|
- examples/basic_area.rb
|
198
|
+
- examples/basic_area2.rb
|
198
199
|
- examples/basic_button.rb
|
199
200
|
- examples/basic_entry.rb
|
200
201
|
- examples/basic_table.rb
|
@@ -209,6 +210,7 @@ files:
|
|
209
210
|
- examples/color_button.rb
|
210
211
|
- examples/control_gallery.rb
|
211
212
|
- examples/date_time_picker.rb
|
213
|
+
- examples/dynamic_area.rb
|
212
214
|
- examples/editable_column_table.rb
|
213
215
|
- examples/editable_table.rb
|
214
216
|
- examples/font_button.rb
|