glimmer-dsl-libui 0.11.5 → 0.11.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +15 -0
- data/README.md +46 -6
- data/VERSION +1 -1
- data/glimmer-dsl-libui.gemspec +0 -0
- data/lib/glimmer/dsl/libui/listener_expression.rb +1 -0
- data/lib/glimmer/libui/control_proxy/path_proxy.rb +1 -0
- data/lib/glimmer/libui/control_proxy/table_proxy.rb +1 -1
- data/lib/glimmer/libui/control_proxy/text_proxy.rb +2 -1
- data/lib/glimmer/libui/shape/arc.rb +1 -0
- data/lib/glimmer/libui/shape/bezier.rb +1 -0
- data/lib/glimmer/libui/shape/circle.rb +1 -0
- data/lib/glimmer/libui/shape/composite_shape.rb +1 -0
- data/lib/glimmer/libui/shape/figure.rb +1 -0
- data/lib/glimmer/libui/shape/line.rb +1 -0
- data/lib/glimmer/libui/shape/polybezier.rb +1 -0
- data/lib/glimmer/libui/shape/polygon.rb +1 -0
- data/lib/glimmer/libui/shape/polyline.rb +1 -0
- data/lib/glimmer/libui/shape/rectangle.rb +1 -0
- data/lib/glimmer/libui/shape/square.rb +1 -0
- data/lib/glimmer/libui/shape.rb +1 -0
- data/lib/glimmer/libui.rb +2 -0
- data/lib/glimmer/rake_task/list.rb +1 -1
- data/lib/glimmer/rake_task/scaffold.rb +35 -27
- data/lib/glimmer-dsl-libui.rb +0 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 07dbccff31a389edf42d2fa69ae2ef9b9542d2117d01dfdb50eb586ebc76306c
|
4
|
+
data.tar.gz: ba4cd480c791257bbbf762e1dd96dff5ab0a04b152ff6c65e4eaf02acc6808e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6cfdf98cce4e5a8b51abdef7ed0e030314ec580f454897383189140ad01c81be98f1e134422a5e9ca8fd48ee6b96153d595935cbc1b39133c98da20f8e8122e0
|
7
|
+
data.tar.gz: 4b6d53753335cdfad880df26cd6fdc2affa537a101d73ff6d833f2f050fcb0ab24943423ccbd8b08aca9c5c8a063997cb0f43f9731bad3d1eb55fcf92de11182
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,20 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## 0.11.7
|
4
|
+
|
5
|
+
- Fix issue with `table` `checkbox_text_color_column` checkbox edits not working
|
6
|
+
|
7
|
+
## 0.11.6
|
8
|
+
|
9
|
+
- Organize scaffolded application menus under a `menu_bar` method
|
10
|
+
- Optimize performance of startup time, cutting ~26ms by delaying load of certain gems until needed:
|
11
|
+
- Cut ~16ms of startup time by not loading `perfect-shape` gem until area canvas graphics are used
|
12
|
+
- Cut ~10ms of startup time by not loading `color` gem until used by `Glimmer::LibUI.interpret_color` method
|
13
|
+
- Optimize performance of scaffolding, cutting ~54ms by not loading `facets` gem completely, yet load used part of facets only ('facets/string/titlecase')
|
14
|
+
- Optimize performance of glimmer command listing of gems, cutting ~54ms by not loading `facets` gem completely, yet load used part of facets only ('facets/string/titlecase')
|
15
|
+
- Fix issue with `listener_expression.rb` failing for `TextProxy` due to not having `can_handle_listener?` method.
|
16
|
+
- Fix issue with `TextProxy.can_handle_listener?` crashing when `text` is nested under `area` `on_draw`
|
17
|
+
|
3
18
|
## 0.11.5
|
4
19
|
|
5
20
|
- Support table explicit data-binding with a model attribute that returns an Enumerator (instead of an Array)
|
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.11.
|
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.11.7
|
2
2
|
## Prerequisite-Free Ruby Desktop Development Cross-Platform Native GUI Library ([Fukuoka Award Winning](http://www.digitalfukuoka.jp/topics/187?locale=ja))
|
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)
|
@@ -28,7 +28,7 @@ The main trade-off in using [Glimmer DSL for LibUI](https://rubygems.org/gems/gl
|
|
28
28
|
- [Declarative DSL syntax](#glimmer-gui-dsl-concepts) that visually maps to the GUI control hierarchy
|
29
29
|
- [Convention over configuration](#smart-defaults-and-conventions) via smart defaults and automation of low-level details
|
30
30
|
- Requiring the [least amount of syntax](#glimmer-gui-dsl-concepts) possible to build GUI
|
31
|
-
- [Custom Component](#custom-components) support (Custom Controls, Custom Windows, and Custom Shapes)
|
31
|
+
- [Custom Component](#custom-components) support (Custom Controls, Custom Windows, and Custom Shapes), including external Ruby gems (e.g. [Graphs and Charts](https://github.com/AndyObtiva/glimmer-libui-cc-graphs_and_charts))
|
32
32
|
- [Bidirectional/Unidirectional Data-Binding](#data-binding) to declaratively wire and automatically synchronize GUI Views with Models
|
33
33
|
- [Scaffolding](#scaffold-application) for new custom windows/controls, apps, and gems
|
34
34
|
- [Far Future Plan] Native-Executable packaging on Mac, Windows, and Linux.
|
@@ -47,8 +47,28 @@ Mac | Windows | Linux
|
|
47
47
|
----|---------|------
|
48
48
|
![glimmer-dsl-libui-mac-basic-window.png](images/glimmer-dsl-libui-mac-basic-window.png) | ![glimmer-dsl-libui-windows-basic-window.png](images/glimmer-dsl-libui-windows-basic-window.png) | ![glimmer-dsl-libui-linux-basic-window.png](images/glimmer-dsl-libui-linux-basic-window.png)
|
49
49
|
|
50
|
+
Basic Button
|
51
|
+
|
52
|
+
```ruby
|
53
|
+
require 'glimmer-dsl-libui'
|
54
|
+
|
55
|
+
include Glimmer
|
56
|
+
|
57
|
+
window('hello world', 300, 200) {
|
58
|
+
button('Button') {
|
59
|
+
on_clicked do
|
60
|
+
msg_box('Information', 'You clicked the button')
|
61
|
+
end
|
62
|
+
}
|
63
|
+
}.show
|
64
|
+
```
|
65
|
+
|
50
66
|
Basic Table Progress Bar
|
51
67
|
|
68
|
+
Mac | Windows | Linux
|
69
|
+
----|---------|------
|
70
|
+
![glimmer-dsl-libui-mac-basic-button.png](/images/glimmer-dsl-libui-mac-basic-button.png) ![glimmer-dsl-libui-mac-basic-button-msg-box.png](/images/glimmer-dsl-libui-mac-basic-button-msg-box.png) | ![glimmer-dsl-libui-windows-basic-button.png](/images/glimmer-dsl-libui-windows-basic-button.png) ![glimmer-dsl-libui-windows-basic-button-msg-box.png](/images/glimmer-dsl-libui-windows-basic-button-msg-box.png) | ![glimmer-dsl-libui-linux-basic-button.png](/images/glimmer-dsl-libui-linux-basic-button.png) ![glimmer-dsl-libui-linux-basic-button-msg-box.png](/images/glimmer-dsl-libui-linux-basic-button-msg-box.png)
|
71
|
+
|
52
72
|
```ruby
|
53
73
|
require 'glimmer-dsl-libui'
|
54
74
|
|
@@ -433,7 +453,7 @@ gem install glimmer-dsl-libui
|
|
433
453
|
Or install via Bundler `Gemfile`:
|
434
454
|
|
435
455
|
```ruby
|
436
|
-
gem 'glimmer-dsl-libui', '~> 0.11.
|
456
|
+
gem 'glimmer-dsl-libui', '~> 0.11.7'
|
437
457
|
```
|
438
458
|
|
439
459
|
Test that installation worked by running the [Glimmer Meta-Example](#examples):
|
@@ -640,7 +660,7 @@ Mac | Windows | Linux
|
|
640
660
|
|
641
661
|
Application scaffolding enables automatically generating the directories/files of a new desktop GUI application that follows the MVC architecture and can be packaged as a Ruby gem that includes an executable script for running the app conveniently. It also ensures that software engineers follow the recommended Glimmer DSL for LibUI conventions and best practices. Application Scaffolding greatly improves software engineering productivity when building desktop applications with [Glimmer DSL for LibUI](https://rubygems.org/gems/glimmer-dsl-libui).
|
642
662
|
|
643
|
-
Application Scaffolding relies on the
|
663
|
+
Application Scaffolding relies on the juwelier Ruby gem, which expects a local Git config of [`user.name`](https://docs.github.com/en/get-started/getting-started-with-git/setting-your-username-in-git#setting-your-git-username-for-every-repository-on-your-computer) (git config --global user.name "FirstName LastName") and `github.user` (`git config --global github.user githubusername`).
|
644
664
|
|
645
665
|
Scaffold Glimmer DSL for LibUI application with this command:
|
646
666
|
|
@@ -1356,6 +1376,8 @@ window {
|
|
1356
1376
|
...
|
1357
1377
|
```
|
1358
1378
|
|
1379
|
+
A real external Custom Control Gem is [Graphs and Charts](https://github.com/AndyObtiva/glimmer-libui-cc-graphs_and_charts).
|
1380
|
+
|
1359
1381
|
### Scaffold Custom Window Gem
|
1360
1382
|
|
1361
1383
|
A custom window is a specialization of a custom control that has a `window` as its `body` root.
|
@@ -1753,7 +1775,7 @@ These are all the supported keywords. Note that some keywords do not represent c
|
|
1753
1775
|
Keyword(Args) | Properties | Listeners
|
1754
1776
|
------------- | ---------- | ---------
|
1755
1777
|
`about_menu_item` | None | `on_clicked`
|
1756
|
-
`area` | `auto_draw_enabled` | `on_draw(area_draw_params)`, `on_mouse_event(area_mouse_event)`, `on_mouse_down(area_mouse_event)`, `on_mouse_up(area_mouse_event)`, `on_mouse_drag_started(area_mouse_event)`, `on_mouse_dragged(area_mouse_event)`, `on_mouse_dropped(area_mouse_event)`, `on_mouse_entered`, `on_mouse_exited`, `on_key_event(area_key_event)`, `on_key_down(area_key_event)`, `on_key_up(area_key_event)`
|
1778
|
+
`area` | `auto_draw_enabled` | `on_draw(area_draw_params)`, `on_mouse_event(area_mouse_event)`, `on_mouse_moved(area_mouse_event)`, `on_mouse_down(area_mouse_event)`, `on_mouse_up(area_mouse_event)`, `on_mouse_drag_started(area_mouse_event)`, `on_mouse_dragged(area_mouse_event)`, `on_mouse_dropped(area_mouse_event)`, `on_mouse_entered`, `on_mouse_exited`, `on_key_event(area_key_event)`, `on_key_down(area_key_event)`, `on_key_up(area_key_event)`
|
1757
1779
|
`arc(x_center as Numeric, y_center as Numeric, radius as Numeric, start_angle as Numeric, sweep as Numeric, is_negative as Boolean)` | `x_center` (`Numeric`), `y_center` (`Numeric`), `radius` (`Numeric`), `start_angle` (`Numeric`), `sweep` (`Numeric`), `is_negative` (Boolean) | None
|
1758
1780
|
`background_color_column` | None | None
|
1759
1781
|
`bezier(x = nil as Numeric, y = nil as Numeric, c1_x as Numeric, c1_y as Numeric, c2_x as Numeric, c2_y as Numeric, end_x as Numeric, end_y as Numeric)` | `x` (`Numeric`), `y` (`Numeric`), `c1_x` (`Numeric`), `c1_y` (`Numeric`), `c2_x` (`Numeric`), `c2_y` (`Numeric`), `end_x` (`Numeric`), `end_y` (`Numeric`) | None
|
@@ -3001,7 +3023,7 @@ For example, you can define a custom `address_view` control as an aggregate of m
|
|
3001
3023
|
|
3002
3024
|
There are two ways to define custom components:
|
3003
3025
|
- Method-Based: simply define a method representing the custom component you want (e.g. `address_view`) with any options needed (e.g. `address(address_model: some_model)`).
|
3004
|
-
- Class-Based: define a class matching the camelcased name of the custom component by convention (e.g. the `address_view` custom component keyword would have a class called `AddressView`) and `include Glimmer::LibUI::CustomControl`, `include Glimmer::LibUI::CustomWindow`, or `include Glimmer::LibUI::CustomShape` depending on if the component represents a standard control, a whole window, or an [area canvas graphics shape](#area-path-shapes). Classes add the benefit of being able to distribute the custom components into a separate file for external reuse from multiple views or for sharing as a Ruby gem.
|
3026
|
+
- Class-Based: define a class matching the camelcased name of the custom component by convention (e.g. the `address_view` custom component keyword would have a class called `AddressView`) and `include Glimmer::LibUI::CustomControl`, `include Glimmer::LibUI::CustomWindow`, or `include Glimmer::LibUI::CustomShape` depending on if the component represents a standard control, a whole window, or an [area canvas graphics shape](#area-path-shapes). Classes add the benefit of being able to distribute the custom components into a separate file for external reuse from multiple views or for sharing as a Ruby gem (e.g. [Graphs and Charts Ruby gem](https://github.com/AndyObtiva/glimmer-libui-cc-graphs_and_charts)).
|
3005
3027
|
|
3006
3028
|
It is OK to use the terms "custom control", "custom component", and "custom keyword" synonymously though "custom component" is a broader term that covers things other than controls too like custom shapes (e.g. `cube`), custom attributed strings (e.g. `alternating_color_string`), and custom transforms (`isometric_transform`).
|
3007
3029
|
|
@@ -4124,6 +4146,16 @@ Mac | Windows | Linux
|
|
4124
4146
|
----|---------|------
|
4125
4147
|
![glimmer-dsl-libui-mac-form-table.png](/images/glimmer-dsl-libui-mac-form-table.png) | ![glimmer-dsl-libui-windows-form-table.png](/images/glimmer-dsl-libui-windows-form-table.png) | ![glimmer-dsl-libui-linux-form-table.png](/images/glimmer-dsl-libui-linux-form-table.png)
|
4126
4148
|
|
4149
|
+
## Libraries
|
4150
|
+
|
4151
|
+
### Graphs and Charts
|
4152
|
+
|
4153
|
+
This is a Ruby gem that aims at providing support for graphs and charts (custom controls) in Glimmer DSL for LibUI.
|
4154
|
+
|
4155
|
+
https://github.com/AndyObtiva/glimmer-libui-cc-graphs_and_charts
|
4156
|
+
|
4157
|
+
![basic line graph](https://github.com/AndyObtiva/glimmer-libui-cc-graphs_and_charts/raw/master/screenshots/glimmer-libui-cc-graphs_and_charts-mac-basic-line-graph.png)
|
4158
|
+
|
4127
4159
|
## Applications
|
4128
4160
|
|
4129
4161
|
Here are some applications built with [Glimmer DSL for LibUI](https://rubygems.org/gems/glimmer-dsl-libui)
|
@@ -4190,6 +4222,14 @@ This is built as an exploratory software prototype by [Ari Brown](https://github
|
|
4190
4222
|
|
4191
4223
|
![Electric Avenue](https://user-images.githubusercontent.com/16188/260890040-b4b28429-1789-4cdd-a708-45a2bd62b70f.png)
|
4192
4224
|
|
4225
|
+
### Adamantite
|
4226
|
+
|
4227
|
+
A local password manager written in Ruby (closed source software):
|
4228
|
+
|
4229
|
+
https://rubygems.org/gems/adamantite
|
4230
|
+
|
4231
|
+
![Adamantite password manager](/images/glimmer-dsl-libui-mac-application-adamantite.png)
|
4232
|
+
|
4193
4233
|
## Process
|
4194
4234
|
|
4195
4235
|
[Glimmer Process](https://github.com/AndyObtiva/glimmer/blob/master/PROCESS.md)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.11.
|
1
|
+
0.11.7
|
data/glimmer-dsl-libui.gemspec
CHANGED
Binary file
|
@@ -167,6 +167,7 @@ module Glimmer
|
|
167
167
|
end
|
168
168
|
|
169
169
|
def perfect_shape
|
170
|
+
require 'perfect-shape'
|
170
171
|
the_perfect_shape_dependencies = perfect_shape_dependencies
|
171
172
|
if the_perfect_shape_dependencies != @perfect_shape_dependencies
|
172
173
|
draw_fill_mode, _ = @perfect_shape_dependencies = the_perfect_shape_dependencies
|
@@ -519,7 +519,7 @@ module Glimmer
|
|
519
519
|
attribute = column_attributes[column]
|
520
520
|
table_cell_row.send("#{attribute}=", ::LibUI.table_value_int(val).to_i == 1)
|
521
521
|
end
|
522
|
-
when Column::CheckboxTextColumnProxy
|
522
|
+
when Column::CheckboxTextColumnProxy, Column::CheckboxTextColorColumnProxy
|
523
523
|
column = @columns[column].index
|
524
524
|
if table_cell_row.is_a?(Array)
|
525
525
|
table_cell_row[column] ||= []
|
@@ -174,7 +174,7 @@ module Glimmer
|
|
174
174
|
end
|
175
175
|
|
176
176
|
def can_handle_listener?(listener_name)
|
177
|
-
area_proxy
|
177
|
+
area_proxy&.can_handle_listener?(listener_name)
|
178
178
|
end
|
179
179
|
|
180
180
|
def handle_listener(listener_name, &listener)
|
@@ -184,6 +184,7 @@ module Glimmer
|
|
184
184
|
end
|
185
185
|
|
186
186
|
def perfect_shape
|
187
|
+
require 'perfect-shape'
|
187
188
|
the_perfect_shape_dependencies = perfect_shape_dependencies
|
188
189
|
if the_perfect_shape_dependencies != @perfect_shape_dependencies
|
189
190
|
absolute_x, absolute_y, width, height = @perfect_shape_dependencies = the_perfect_shape_dependencies
|
@@ -51,6 +51,7 @@ module Glimmer
|
|
51
51
|
end
|
52
52
|
|
53
53
|
def perfect_shape
|
54
|
+
require 'perfect-shape'
|
54
55
|
the_perfect_shape_dependencies = perfect_shape_dependencies
|
55
56
|
if the_perfect_shape_dependencies != @perfect_shape_dependencies
|
56
57
|
absolute_x_center, absolute_y_center, radius, start_angle, sweep, is_negative = @perfect_shape_dependencies = the_perfect_shape_dependencies
|
@@ -62,6 +62,7 @@ module Glimmer
|
|
62
62
|
end
|
63
63
|
|
64
64
|
def perfect_shape
|
65
|
+
require 'perfect-shape'
|
65
66
|
the_perfect_shape_dependencies = perfect_shape_dependencies
|
66
67
|
if the_perfect_shape_dependencies != @perfect_shape_dependencies
|
67
68
|
absolute_x, absolute_y, absolute_c1_x, absolute_c1_y, absolute_c2_x, absolute_c2_y, absolute_end_x, absolute_end_y = @perfect_shape_dependencies = the_perfect_shape_dependencies
|
@@ -51,6 +51,7 @@ module Glimmer
|
|
51
51
|
end
|
52
52
|
|
53
53
|
def perfect_shape
|
54
|
+
require 'perfect-shape'
|
54
55
|
the_perfect_shape_dependencies = perfect_shape_dependencies
|
55
56
|
if the_perfect_shape_dependencies != @perfect_shape_dependencies
|
56
57
|
absolute_x_center, absolute_y_center, radius = @perfect_shape_dependencies = the_perfect_shape_dependencies
|
@@ -87,6 +87,7 @@ module Glimmer
|
|
87
87
|
end
|
88
88
|
|
89
89
|
def perfect_shape
|
90
|
+
require 'perfect-shape'
|
90
91
|
perfect_shape_dependencies = [x, y, children.map(&:perfect_shape_dependencies)]
|
91
92
|
if perfect_shape_dependencies != @perfect_shape_dependencies
|
92
93
|
x, y, _ = @perfect_shape_dependencies = perfect_shape_dependencies
|
@@ -58,6 +58,7 @@ module Glimmer
|
|
58
58
|
end
|
59
59
|
|
60
60
|
def perfect_shape
|
61
|
+
require 'perfect-shape'
|
61
62
|
the_perfect_shape_dependencies = perfect_shape_dependencies
|
62
63
|
if the_perfect_shape_dependencies != @perfect_shape_dependencies
|
63
64
|
absolute_x, absolute_y, closed, draw_fill_mode, children = @perfect_shape_dependencies = the_perfect_shape_dependencies
|
@@ -61,6 +61,7 @@ module Glimmer
|
|
61
61
|
end
|
62
62
|
|
63
63
|
def perfect_shape
|
64
|
+
require 'perfect-shape'
|
64
65
|
the_perfect_shape_dependencies = perfect_shape_dependencies
|
65
66
|
if the_perfect_shape_dependencies != @perfect_shape_dependencies
|
66
67
|
absolute_x, absolute_y, absolute_end_x, absolute_end_y = @perfect_shape_dependencies = the_perfect_shape_dependencies
|
@@ -45,6 +45,7 @@ module Glimmer
|
|
45
45
|
end
|
46
46
|
|
47
47
|
def perfect_shape
|
48
|
+
require 'perfect-shape'
|
48
49
|
the_perfect_shape_dependencies = perfect_shape_dependencies
|
49
50
|
if the_perfect_shape_dependencies != @perfect_shape_dependencies
|
50
51
|
absolute_point_array = @perfect_shape_dependencies = the_perfect_shape_dependencies
|
@@ -46,6 +46,7 @@ module Glimmer
|
|
46
46
|
end
|
47
47
|
|
48
48
|
def perfect_shape
|
49
|
+
require 'perfect-shape'
|
49
50
|
the_perfect_shape_dependencies = perfect_shape_dependencies
|
50
51
|
if the_perfect_shape_dependencies != @perfect_shape_dependencies
|
51
52
|
absolute_point_array = @perfect_shape_dependencies = the_perfect_shape_dependencies
|
@@ -45,6 +45,7 @@ module Glimmer
|
|
45
45
|
end
|
46
46
|
|
47
47
|
def perfect_shape
|
48
|
+
require 'perfect-shape'
|
48
49
|
the_perfect_shape_dependencies = perfect_shape_dependencies
|
49
50
|
if the_perfect_shape_dependencies != @perfect_shape_dependencies
|
50
51
|
absolute_point_array = @perfect_shape_dependencies = the_perfect_shape_dependencies
|
@@ -39,6 +39,7 @@ module Glimmer
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def perfect_shape
|
42
|
+
require 'perfect-shape'
|
42
43
|
the_perfect_shape_dependencies = perfect_shape_dependencies
|
43
44
|
if the_perfect_shape_dependencies != @perfect_shape_dependencies
|
44
45
|
absolute_x, absolute_y, width, height = @perfect_shape_dependencies = the_perfect_shape_dependencies
|
@@ -41,6 +41,7 @@ module Glimmer
|
|
41
41
|
end
|
42
42
|
|
43
43
|
def perfect_shape
|
44
|
+
require 'perfect-shape'
|
44
45
|
the_perfect_shape_dependencies = perfect_shape_dependencies
|
45
46
|
if the_perfect_shape_dependencies != @perfect_shape_dependencies
|
46
47
|
@perfect_shape_dependencies = the_perfect_shape_dependencies
|
data/lib/glimmer/libui/shape.rb
CHANGED
@@ -182,6 +182,7 @@ module Glimmer
|
|
182
182
|
return unless respond_to?(:point_array)
|
183
183
|
|
184
184
|
point_array = self.point_array || []
|
185
|
+
require 'perfect-shape'
|
185
186
|
point_array = PerfectShape::MultiPoint.normalize_point_array(point_array)
|
186
187
|
point_array.map do |point|
|
187
188
|
if composite_shape
|
data/lib/glimmer/libui.rb
CHANGED
@@ -92,6 +92,7 @@ module Glimmer
|
|
92
92
|
value[:a] = value.delete(:alpha) if value[:alpha]
|
93
93
|
value
|
94
94
|
elsif value.is_a?(String) && !value.start_with?('0x') && !value.start_with?('#') && !value.downcase.match(/^((([1-9a-f]){6})|(([1-9a-f]){3}))$/)
|
95
|
+
require 'color'
|
95
96
|
color = Color::RGB.extract_colors(value).first
|
96
97
|
color.nil? ? {} : {
|
97
98
|
r: color.red,
|
@@ -194,6 +195,7 @@ module Glimmer
|
|
194
195
|
end
|
195
196
|
|
196
197
|
def x11_colors
|
198
|
+
require 'color'
|
197
199
|
Color::RGB.constants.reject {|c| c.to_s.upcase == c.to_s}.map(&:to_s).map(&:underscore).map(&:to_sym)
|
198
200
|
end
|
199
201
|
|
@@ -19,8 +19,8 @@
|
|
19
19
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
20
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
21
21
|
|
22
|
-
require 'facets'
|
23
22
|
require 'text-table'
|
23
|
+
require 'facets/string/titlecase'
|
24
24
|
|
25
25
|
module Glimmer
|
26
26
|
module RakeTask
|
@@ -21,7 +21,7 @@
|
|
21
21
|
|
22
22
|
require 'fileutils'
|
23
23
|
require 'os'
|
24
|
-
require 'facets'
|
24
|
+
require 'facets/string/titlecase'
|
25
25
|
|
26
26
|
# TODO refactor to nest under RakeTask namespace
|
27
27
|
|
@@ -578,32 +578,7 @@ require '#{window_type == :app ? current_dir_name : namespace}/model/greeting'
|
|
578
578
|
custom_window_file_content += <<-MULTI_LINE_STRING
|
579
579
|
before_body do
|
580
580
|
@greeting = Model::Greeting.new
|
581
|
-
|
582
|
-
menu('File') {
|
583
|
-
menu_item('Preferences...') {
|
584
|
-
on_clicked do
|
585
|
-
display_preferences_dialog
|
586
|
-
end
|
587
|
-
}
|
588
|
-
|
589
|
-
# Enables quitting with CMD+Q on Mac with Mac Quit menu item
|
590
|
-
quit_menu_item if OS.mac?
|
591
|
-
}
|
592
|
-
menu('Help') {
|
593
|
-
if OS.mac?
|
594
|
-
about_menu_item {
|
595
|
-
on_clicked do
|
596
|
-
display_about_dialog
|
597
|
-
end
|
598
|
-
}
|
599
|
-
end
|
600
|
-
|
601
|
-
menu_item('About') {
|
602
|
-
on_clicked do
|
603
|
-
display_about_dialog
|
604
|
-
end
|
605
|
-
}
|
606
|
-
}
|
581
|
+
menu_bar
|
607
582
|
end
|
608
583
|
MULTI_LINE_STRING
|
609
584
|
elsif window_type == :gem
|
@@ -670,6 +645,39 @@ require '#{window_type == :app ? current_dir_name : namespace}/model/greeting'
|
|
670
645
|
}
|
671
646
|
MULTI_LINE_STRING
|
672
647
|
|
648
|
+
if %i[app].include?(window_type)
|
649
|
+
custom_window_file_content += <<-MULTI_LINE_STRING
|
650
|
+
|
651
|
+
def menu_bar
|
652
|
+
menu('File') {
|
653
|
+
menu_item('Preferences...') {
|
654
|
+
on_clicked do
|
655
|
+
display_preferences_dialog
|
656
|
+
end
|
657
|
+
}
|
658
|
+
|
659
|
+
# Enables quitting with CMD+Q on Mac with Mac Quit menu item
|
660
|
+
quit_menu_item if OS.mac?
|
661
|
+
}
|
662
|
+
menu('Help') {
|
663
|
+
if OS.mac?
|
664
|
+
about_menu_item {
|
665
|
+
on_clicked do
|
666
|
+
display_about_dialog
|
667
|
+
end
|
668
|
+
}
|
669
|
+
end
|
670
|
+
|
671
|
+
menu_item('About') {
|
672
|
+
on_clicked do
|
673
|
+
display_about_dialog
|
674
|
+
end
|
675
|
+
}
|
676
|
+
}
|
677
|
+
end
|
678
|
+
MULTI_LINE_STRING
|
679
|
+
end
|
680
|
+
|
673
681
|
if %i[gem app].include?(window_type)
|
674
682
|
custom_window_file_content += <<-MULTI_LINE_STRING
|
675
683
|
|
data/lib/glimmer-dsl-libui.rb
CHANGED
@@ -23,11 +23,9 @@ $LOAD_PATH.unshift(File.expand_path('..', __FILE__))
|
|
23
23
|
|
24
24
|
# External requires
|
25
25
|
require 'glimmer'
|
26
|
-
require 'perfect-shape'
|
27
26
|
# require 'logging'
|
28
27
|
require 'puts_debuggerer' if (ENV['PD'] || ENV['pd']).to_s.downcase == 'true'
|
29
28
|
# require 'super_module'
|
30
|
-
require 'color'
|
31
29
|
require 'os'
|
32
30
|
require 'equalizer'
|
33
31
|
require 'array_include_methods'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: glimmer-dsl-libui
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.11.
|
4
|
+
version: 0.11.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Maleh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-12-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: glimmer
|
@@ -640,7 +640,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
640
640
|
- !ruby/object:Gem::Version
|
641
641
|
version: '0'
|
642
642
|
requirements: []
|
643
|
-
rubygems_version: 3.
|
643
|
+
rubygems_version: 3.5.1
|
644
644
|
signing_key:
|
645
645
|
specification_version: 4
|
646
646
|
summary: Glimmer DSL for LibUI (Fukuoka Award Winning Prerequisite-Free Ruby Desktop
|