glimmer-dsl-libui 0.6.0.pre.3 → 0.6.0
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/LICENSE.txt +1 -1
- data/README.md +3 -5
- data/VERSION +1 -1
- data/bin/girb_runner.rb +1 -1
- data/docs/examples/GLIMMER-DSL-LIBUI-ADVANCED-EXAMPLES.md +1 -1
- data/docs/examples/GLIMMER-DSL-LIBUI-BASIC-EXAMPLES.md +0 -56
- data/examples/basic_table_checkbox.rb +13 -1
- data/examples/basic_table_checkbox_text.rb +13 -1
- data/examples/tetris/model/block.rb +1 -1
- data/examples/tetris/model/game.rb +1 -1
- data/examples/tetris/model/past_game.rb +1 -1
- data/examples/tetris/model/tetromino.rb +1 -1
- data/examples/tetris.rb +1 -1
- data/examples/tic_tac_toe/board.rb +1 -1
- data/examples/tic_tac_toe/cell.rb +1 -1
- data/glimmer-dsl-libui.gemspec +0 -0
- data/lib/glimmer/dsl/libui/bind_expression.rb +1 -1
- data/lib/glimmer/dsl/libui/control_expression.rb +1 -1
- data/lib/glimmer/dsl/libui/custom_control_expression.rb +1 -1
- data/lib/glimmer/dsl/libui/data_binding_expression.rb +1 -1
- data/lib/glimmer/dsl/libui/dsl.rb +1 -1
- data/lib/glimmer/dsl/libui/file_expression.rb +1 -1
- data/lib/glimmer/dsl/libui/listener_expression.rb +1 -1
- data/lib/glimmer/dsl/libui/observe_expression.rb +1 -1
- data/lib/glimmer/dsl/libui/open_file_expression.rb +1 -1
- data/lib/glimmer/dsl/libui/open_folder_expression.rb +1 -1
- data/lib/glimmer/dsl/libui/operation_expression.rb +1 -1
- data/lib/glimmer/dsl/libui/property_expression.rb +1 -1
- data/lib/glimmer/dsl/libui/save_file_expression.rb +1 -1
- data/lib/glimmer/dsl/libui/shape_expression.rb +1 -1
- data/lib/glimmer/dsl/libui/shine_data_binding_expression.rb +1 -1
- data/lib/glimmer/dsl/libui/string_expression.rb +1 -1
- data/lib/glimmer/dsl/libui/tab_item_expression.rb +1 -1
- data/lib/glimmer/fiddle_consumer.rb +1 -1
- data/lib/glimmer/libui/attributed_string.rb +1 -1
- data/lib/glimmer/libui/control_proxy/area_proxy/scrolling_area_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/area_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/box/horizontal_box_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/box/vertical_box_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/box.rb +1 -1
- data/lib/glimmer/libui/control_proxy/button_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/checkbox_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/color_button_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/column/background_color_column_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/column/button_column_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/column/checkbox_column_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/column/checkbox_text_color_column_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/column/checkbox_text_column_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/column/image_column_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/column/image_text_color_column_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/column/image_text_column_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/column/progress_bar_column_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/column/text_color_column_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/column/text_column_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/column.rb +1 -1
- data/lib/glimmer/libui/control_proxy/combobox_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/date_time_picker_proxy/date_picker_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/date_time_picker_proxy/time_picker_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/date_time_picker_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/dual_column.rb +1 -1
- data/lib/glimmer/libui/control_proxy/editable_column.rb +1 -1
- data/lib/glimmer/libui/control_proxy/editable_combobox_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/enableable_column.rb +1 -1
- data/lib/glimmer/libui/control_proxy/entry_proxy/password_entry_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/entry_proxy/search_entry_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/entry_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/font_button_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/form_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/grid_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/group_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/image_part_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/image_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/label_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/matrix_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/menu_item_proxy/about_menu_item_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/menu_item_proxy/check_menu_item_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/menu_item_proxy/preferences_menu_item_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/menu_item_proxy/quit_menu_item_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/menu_item_proxy/radio_menu_item_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/menu_item_proxy/separator_menu_item_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/menu_item_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/menu_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/message_box/msg_box_error_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/message_box/msg_box_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/message_box.rb +1 -1
- data/lib/glimmer/libui/control_proxy/multiline_entry_proxy/non_wrapping_multiline_entry_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/multiline_entry_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/open_type_features_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/open_type_tag_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/path_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/radio_buttons_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/slider_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/spinbox_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/tab_item_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/table_proxy.rb +243 -98
- data/lib/glimmer/libui/control_proxy/text_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/transformable.rb +1 -1
- data/lib/glimmer/libui/control_proxy/triple_column.rb +1 -1
- data/lib/glimmer/libui/control_proxy/window_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy.rb +1 -1
- data/lib/glimmer/libui/custom_control/code_area.rb +1 -1
- data/lib/glimmer/libui/custom_control/refined_table.rb +2 -2
- data/lib/glimmer/libui/custom_control.rb +1 -1
- data/lib/glimmer/libui/custom_window.rb +1 -1
- data/lib/glimmer/libui/data_bindable.rb +1 -1
- data/lib/glimmer/libui/parent.rb +1 -1
- data/lib/glimmer/libui/shape/arc.rb +1 -1
- data/lib/glimmer/libui/shape/bezier.rb +1 -1
- data/lib/glimmer/libui/shape/circle.rb +1 -1
- data/lib/glimmer/libui/shape/figure.rb +1 -1
- data/lib/glimmer/libui/shape/line.rb +1 -1
- data/lib/glimmer/libui/shape/polybezier.rb +1 -1
- data/lib/glimmer/libui/shape/polygon.rb +1 -1
- data/lib/glimmer/libui/shape/polyline.rb +1 -1
- data/lib/glimmer/libui/shape/rectangle.rb +1 -1
- data/lib/glimmer/libui/shape/square.rb +1 -1
- data/lib/glimmer/libui/shape.rb +1 -1
- data/lib/glimmer/libui.rb +1 -1
- data/lib/glimmer-dsl-libui.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cd6518993a36f3108798c6e510e7e8b4cf948738106d78320e3c50a0537d6046
|
4
|
+
data.tar.gz: a06bd741f0900f8311a771cd5acdabefa22e7f7d07f7a2878cc85e03a086c916
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b42863592aeff2f871c596bbe8e43fd74646d4a3b7b413ead62bd07f8baf1a40f3109a73e23709441eb32403edac51088211c0c373ea0fa5c29c1f97c6581ff3
|
7
|
+
data.tar.gz: cb642dc20da632413d2fc7a29900158120d9d4146401c334a8681044a048e7a925ed05d7f845ecaf6e75f05a5fbdabc055c5bac28c7713228c466ef116f9db01
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,26 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## 0.6.0
|
4
|
+
|
5
|
+
- Upgrade to `libui` Ruby gem version 0.1.0.pre.0, which includes a newer C libui alpha release (libui-ng Nov 13, 2022)
|
6
|
+
- Support table `cell_rows` `Enumerator` value to do lazy loading of data upon display of rows instead of immediate loading of all table data, thus improving performance of table initial render for very large datasets
|
7
|
+
- Fix issue with `table` `progress_bar_column` not getting updated successfully on Windows if there were dual or triple columns before it.
|
8
|
+
- Fix issue with `table` `progress_bar_column` not getting updated successfully on Windows if data-binding table to an array of models instead of an array of arrays
|
9
|
+
- Fix issue with `table` `checkbox_column` checkbox editing not working in Mac by including a new C libui-ng release
|
10
|
+
- Fix issue with `table` `checkbox_text_column` checkbox editing not working in Mac or Windows by including a new C libui-ng release
|
11
|
+
- Update examples/basic_table_checkbox.rb to enable editing checkbox values
|
12
|
+
- Update examples/basic_table_checkbox_text.rb to enable editing checkbox/text values
|
13
|
+
- [final] Optimize `table` scrolling performance when having many rows and columns (prevent recalculation of `expanded_cell_rows` on every cell evaluation). Resolve: https://github.com/AndyObtiva/glimmer-dsl-libui/issues/38
|
14
|
+
- [final] `refined_table` `pagination: false` option to disable pagination, but keep filtering.
|
15
|
+
- [final] Fix issue with `Glimmer::LibUI::interpret_color` support for `[r, g, b, a]` `Array`-based colors, returning `[r, g, b]` only without alpha value
|
16
|
+
- [final] Fix issue "Cannot add rows to a table that started empty": https://github.com/AndyObtiva/glimmer-dsl-libui/issues/36
|
17
|
+
- [final] `window` `#open` method as alias to `#show`
|
18
|
+
- [final] `window` `#focused?` read-only property
|
19
|
+
- [final] Document `window` `on_focus_changed` listener
|
20
|
+
- [final] Update `examples/basic_child_window.rb` to demo `on_focus_changed` and `focused?`
|
21
|
+
- [final] `open_folder` support
|
22
|
+
- [final] examples/control_gallery.rb now includes an "Open Folder" File menu item
|
23
|
+
|
3
24
|
## 0.6.0.pre.3
|
4
25
|
|
5
26
|
- Optimize `table` scrolling performance when having many rows and columns (prevent recalculation of `expanded_cell_rows` on every cell evaluation). Resolve: https://github.com/AndyObtiva/glimmer-dsl-libui/issues/38
|
data/LICENSE.txt
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.6.0
|
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.6.0
|
2
2
|
## Prerequisite-Free Ruby Desktop Development GUI Library
|
3
3
|
### The Quickest Way From Zero To GUI
|
4
4
|
[![Gem Version](https://badge.fury.io/rb/glimmer-dsl-libui.svg)](http://badge.fury.io/rb/glimmer-dsl-libui)
|
@@ -542,7 +542,7 @@ gem install glimmer-dsl-libui
|
|
542
542
|
Or install via Bundler `Gemfile`:
|
543
543
|
|
544
544
|
```ruby
|
545
|
-
gem 'glimmer-dsl-libui', '~> 0.6.0
|
545
|
+
gem 'glimmer-dsl-libui', '~> 0.6.0'
|
546
546
|
```
|
547
547
|
|
548
548
|
Test that installation worked by running the [Meta-Example](#examples):
|
@@ -2219,8 +2219,6 @@ Learn more from data-binding usage in [Login](/docs/examples/GLIMMER-DSL-LIBUI-A
|
|
2219
2219
|
### API Gotchas
|
2220
2220
|
|
2221
2221
|
- There is no proper way to destroy `grid` children due to [libui](https://github.com/andlabs/libui) not offering any API for deleting them from `grid` (no `grid_delete` similar to `box_delete` for `horizontal_box` and `vertical_box`).
|
2222
|
-
- `table` `checkbox_column` checkbox editing only works on Linux and Windows (not Mac) due to a current limitation in [libui](https://github.com/andlabs/ui/issues/357).
|
2223
|
-
- `table` `checkbox_text_column` checkbox editing only works on Linux (not Mac or Windows) due to a current limitation in [libui](https://github.com/andlabs/ui/issues/357).
|
2224
2222
|
- `text` `align` property seems not to work on the Mac ([libui](https://github.com/andlabs/libui) has an [issue](https://github.com/andlabs/libui/pull/407) about it)
|
2225
2223
|
- `text` `string` `background` does not work on Windows due to an [issue in libui](https://github.com/andlabs/libui/issues/347).
|
2226
2224
|
- `table` `progress_bar` column on Windows cannot be updated with a positive value if it started initially with `-1` (it ignores update to avoid crashing due to an issue in [libui](https://github.com/andlabs/libui) on Windows.
|
@@ -2720,7 +2718,7 @@ Note that the latest development sometimes takes place in the [development](http
|
|
2720
2718
|
|
2721
2719
|
[MIT](LICENSE.txt)
|
2722
2720
|
|
2723
|
-
Copyright (c) 2021-
|
2721
|
+
Copyright (c) 2021-2023 Andy Maleh
|
2724
2722
|
|
2725
2723
|
--
|
2726
2724
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.6.0
|
1
|
+
0.6.0
|
data/bin/girb_runner.rb
CHANGED
@@ -3068,7 +3068,7 @@ class Tetris
|
|
3068
3068
|
|
3069
3069
|
def show_about_dialog
|
3070
3070
|
Glimmer::LibUI.queue_main do
|
3071
|
-
msg_box('About', 'Glimmer Tetris - Glimmer DSL for LibUI Example - Copyright (c) 2021-
|
3071
|
+
msg_box('About', 'Glimmer Tetris - Glimmer DSL for LibUI Example - Copyright (c) 2021-2023 Andy Maleh')
|
3072
3072
|
end
|
3073
3073
|
end
|
3074
3074
|
end
|
@@ -1400,34 +1400,6 @@ Mac | Windows | Linux
|
|
1400
1400
|
----|---------|------
|
1401
1401
|
![glimmer-dsl-libui-mac-basic-table-checkbox.png](/images/glimmer-dsl-libui-mac-basic-table-checkbox.png) | ![glimmer-dsl-libui-windows-basic-table-checkbox.png](/images/glimmer-dsl-libui-windows-basic-table-checkbox.png) | ![glimmer-dsl-libui-linux-basic-table-checkbox.png](/images/glimmer-dsl-libui-linux-basic-table-checkbox.png)
|
1402
1402
|
|
1403
|
-
New [Glimmer DSL for LibUI](https://rubygems.org/gems/glimmer-dsl-libui) Version:
|
1404
|
-
|
1405
|
-
```ruby
|
1406
|
-
require 'glimmer-dsl-libui'
|
1407
|
-
|
1408
|
-
include Glimmer
|
1409
|
-
|
1410
|
-
data = [
|
1411
|
-
['cat', 'meow', true],
|
1412
|
-
['dog', 'woof', true],
|
1413
|
-
['chicken', 'cock-a-doodle-doo', false],
|
1414
|
-
['horse', 'neigh', true],
|
1415
|
-
['cow', 'moo', true]
|
1416
|
-
]
|
1417
|
-
|
1418
|
-
window('Animal sounds', 300, 200) {
|
1419
|
-
horizontal_box {
|
1420
|
-
table {
|
1421
|
-
text_column('Animal')
|
1422
|
-
text_column('Description')
|
1423
|
-
checkbox_column('Mammal')
|
1424
|
-
|
1425
|
-
cell_rows data
|
1426
|
-
}
|
1427
|
-
}
|
1428
|
-
}.show
|
1429
|
-
```
|
1430
|
-
|
1431
1403
|
## Basic Table Checkbox Text
|
1432
1404
|
|
1433
1405
|
[examples/basic_table_checkbox_text.rb](/examples/basic_table_checkbox_text.rb)
|
@@ -1448,34 +1420,6 @@ Mac | Windows | Linux
|
|
1448
1420
|
----|---------|------
|
1449
1421
|
![glimmer-dsl-libui-mac-basic-table-checkbox-text.png](/images/glimmer-dsl-libui-mac-basic-table-checkbox-text.png) | ![glimmer-dsl-libui-windows-basic-table-checkbox-text.png](/images/glimmer-dsl-libui-windows-basic-table-checkbox-text.png) | ![glimmer-dsl-libui-linux-basic-table-checkbox-text.png](/images/glimmer-dsl-libui-linux-basic-table-checkbox-text.png)
|
1450
1422
|
|
1451
|
-
New [Glimmer DSL for LibUI](https://rubygems.org/gems/glimmer-dsl-libui) Version:
|
1452
|
-
|
1453
|
-
```ruby
|
1454
|
-
require 'glimmer-dsl-libui'
|
1455
|
-
|
1456
|
-
include Glimmer
|
1457
|
-
|
1458
|
-
data = [
|
1459
|
-
['cat', 'meow', [true, 'mammal']],
|
1460
|
-
['dog', 'woof', [true, 'mammal']],
|
1461
|
-
['chicken', 'cock-a-doodle-doo', [false, 'mammal']],
|
1462
|
-
['horse', 'neigh', [true, 'mammal']],
|
1463
|
-
['cow', 'moo', [true, 'mammal']]
|
1464
|
-
]
|
1465
|
-
|
1466
|
-
window('Animal sounds', 400, 200) {
|
1467
|
-
horizontal_box {
|
1468
|
-
table {
|
1469
|
-
text_column('Animal')
|
1470
|
-
text_column('Sound')
|
1471
|
-
checkbox_text_column('Description')
|
1472
|
-
|
1473
|
-
cell_rows data
|
1474
|
-
}
|
1475
|
-
}
|
1476
|
-
}.show
|
1477
|
-
```
|
1478
|
-
|
1479
1423
|
## Basic Table Progress Bar
|
1480
1424
|
|
1481
1425
|
[examples/basic_table_progress_bar.rb](/examples/basic_table_progress_bar.rb)
|
@@ -17,9 +17,21 @@ window('Animal sounds', 400, 200) {
|
|
17
17
|
table {
|
18
18
|
text_column('Animal')
|
19
19
|
text_column('Description')
|
20
|
-
checkbox_column('Mammal')
|
20
|
+
checkbox_column('Mammal') {
|
21
|
+
editable true
|
22
|
+
}
|
21
23
|
|
22
24
|
cell_rows data
|
25
|
+
|
26
|
+
on_changed do |row, type, row_data| # fires on all changes (even ones happening through data array)
|
27
|
+
puts "Row #{row} #{type}: #{row_data}"
|
28
|
+
$stdout.flush
|
29
|
+
end
|
30
|
+
|
31
|
+
on_edited do |row, row_data| # only fires on direct table editing
|
32
|
+
puts "Row #{row} edited: #{row_data}"
|
33
|
+
$stdout.flush
|
34
|
+
end
|
23
35
|
}
|
24
36
|
}
|
25
37
|
}.show
|
@@ -17,9 +17,21 @@ window('Animal sounds', 400, 200) {
|
|
17
17
|
table {
|
18
18
|
text_column('Animal')
|
19
19
|
text_column('Sound')
|
20
|
-
checkbox_text_column('Description')
|
20
|
+
checkbox_text_column('Description') {
|
21
|
+
editable true
|
22
|
+
}
|
21
23
|
|
22
24
|
cell_rows data
|
25
|
+
|
26
|
+
on_changed do |row, type, row_data| # fires on all changes (even ones happening through data array)
|
27
|
+
puts "Row #{row} #{type}: #{row_data.map(&:to_s)}"
|
28
|
+
$stdout.flush
|
29
|
+
end
|
30
|
+
|
31
|
+
on_edited do |row, row_data| # only fires on direct table editing
|
32
|
+
puts "Row #{row} edited: #{row_data.map(&:to_s)}"
|
33
|
+
$stdout.flush
|
34
|
+
end
|
23
35
|
}
|
24
36
|
}
|
25
37
|
}.show
|
data/examples/tetris.rb
CHANGED
@@ -391,7 +391,7 @@ class Tetris
|
|
391
391
|
|
392
392
|
def show_about_dialog
|
393
393
|
Glimmer::LibUI.queue_main do
|
394
|
-
msg_box('About', 'Glimmer Tetris - Glimmer DSL for LibUI Example - Copyright (c) 2021-
|
394
|
+
msg_box('About', 'Glimmer Tetris - Glimmer DSL for LibUI Example - Copyright (c) 2021-2023 Andy Maleh')
|
395
395
|
end
|
396
396
|
end
|
397
397
|
end
|
data/glimmer-dsl-libui.gemspec
CHANGED
Binary file
|