glimmer-dsl-libui 0.11.6 → 0.11.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e595d6ac3d153abe32d9148d5984261d1c6673f1e501ab3f280e139e268d75ee
4
- data.tar.gz: caf883ace7e4a19e5a7f3ee288ad4726ad84b5b79a722320855591c21421d793
3
+ metadata.gz: 07dbccff31a389edf42d2fa69ae2ef9b9542d2117d01dfdb50eb586ebc76306c
4
+ data.tar.gz: ba4cd480c791257bbbf762e1dd96dff5ab0a04b152ff6c65e4eaf02acc6808e5
5
5
  SHA512:
6
- metadata.gz: cdfca8b76f1b14b0fa2c88bb5ef8262b946158e68ba55cc5777bb908d14c7ae0698d3438ef2bcf3c5db0767987ca64613a24344c59badf831dfec3766c8fcabf
7
- data.tar.gz: 5dd802c7de992b79055d616431b8d43d817fc06186d1c14852d3e6e8eecdad18b16af69d89e63f33a558c907a56e7bf6d240387ec405fff58efec36cea4fa89b
6
+ metadata.gz: 6cfdf98cce4e5a8b51abdef7ed0e030314ec580f454897383189140ad01c81be98f1e134422a5e9ca8fd48ee6b96153d595935cbc1b39133c98da20f8e8122e0
7
+ data.tar.gz: 4b6d53753335cdfad880df26cd6fdc2affa537a101d73ff6d833f2f050fcb0ab24943423ccbd8b08aca9c5c8a063997cb0f43f9731bad3d1eb55fcf92de11182
data/CHANGELOG.md CHANGED
@@ -1,11 +1,17 @@
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
+
3
7
  ## 0.11.6
4
8
 
5
9
  - Organize scaffolded application menus under a `menu_bar` method
6
- - Avoid loading `facets` gem completely in scaffold and list tasks, yet load used part of facets only ('facets/string/titlecase')
7
- - Avoid loading `perfect-shape` gem until area canvas graphics are used
8
- - Avoid loading `color` gem until used by `Glimmer::LibUI.interpret_color` 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')
9
15
  - Fix issue with `listener_expression.rb` failing for `TextProxy` due to not having `can_handle_listener?` method.
10
16
  - Fix issue with `TextProxy.can_handle_listener?` crashing when `text` is nested under `area` `on_draw`
11
17
 
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.6
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.6'
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 [juwelier](https://rubygems.org/gems/juwelier) Ruby gem, which expects having a local Git config (global settings in `~/.gitconfig`) 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), [`user.email`](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address#setting-your-email-address-for-every-repository-on-your-computer), and `github.user`.
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.6
1
+ 0.11.7
Binary file
@@ -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] ||= []
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.6
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-12-01 00:00:00.000000000 Z
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.4.6
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