glimmer-dsl-libui 0.0.2 → 0.0.3
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 +4 -0
- data/README.md +90 -7
- data/VERSION +1 -1
- data/examples/basic_entry.rb +1 -1
- data/examples/simple_notepad.rb +15 -0
- data/glimmer-dsl-libui.gemspec +0 -0
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6d8ea366932ccab5730b36184d7577cf09c23532809c153aaaa5b22a79780bde
|
4
|
+
data.tar.gz: 044c9ad6ff2b80030b70b497b4cea87efd9720c0ba167c8a96c5b5fdc60a2f03
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4abd11ef0a3f79e46e20eca75bc7e0deb2555567837bdcb90d4b84022417dbb419aef1ee0a8dd1ef48ee3a52b330e63eedd1876a86ab89a4da46ffd936043b7a
|
7
|
+
data.tar.gz: 6e372ea2b1fa6263f5c1a601e583a44a52a9f619c9141af7f30cb238c2d91ae125de09078cbf384c3482fcb5fc06e4e32e0c2a61a30a2a025f6677af8b998ebf
|
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.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.0.3
|
2
2
|
## Dependency-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)
|
@@ -51,8 +51,8 @@ The Glimmer GUI DSL provides a declarative syntax for [LibUI](https://github.com
|
|
51
51
|
The Glimmer GUI DSL follows these simple concepts in mapping from [LibUI](https://github.com/kojix2/LibUI) syntax:
|
52
52
|
- **Control**: [LibUI](https://github.com/kojix2/LibUI) controls may be declared by lower-case underscored name (aka keyword) (e.g. `window` or `button`). Behind the scenes, they are represented by keyword methods that map to corresponding `LibUI.new_keyword` methods receiving args (e.g. `window('hello world', 300, 200, 1)`).
|
53
53
|
- **Content/Properties/Listeners Block**: Any keyword may be optionally followed by a Ruby curly-brace multi-line-block containing nested controls (content) and/or properties (attributes) (e.g. `window('hello world', 300, 200, 1) {button('greet')}`). It optionally recives one arg representing the control (e.g. `button('greet') {|b| on_clicked { puts b.text}}`)
|
54
|
-
- **Property**: Control properties may be declared inside keyword blocks with lower-case underscored name followed by property value args (e.g. `title "hello world"` inside `group`). Behind the scenes,
|
55
|
-
- **Listener**: Control listeners may be declared inside keyword blocks with listener lower-case underscored name beginning with `on_` and receiving required block handler (e.g. `on_clicked {puts 'clicked'}` inside `button`). Behind the scenes,
|
54
|
+
- **Property**: Control properties may be declared inside keyword blocks with lower-case underscored name followed by property value args (e.g. `title "hello world"` inside `group`). Behind the scenes, properties correspond to `control_set_property` methods.
|
55
|
+
- **Listener**: Control listeners may be declared inside keyword blocks with listener lower-case underscored name beginning with `on_` and receiving required block handler (e.g. `on_clicked {puts 'clicked'}` inside `button`). Behind the scenes, listeners correspond to `control_on_event` methods.
|
56
56
|
|
57
57
|
Example of an app written in [LibUI](https://github.com/kojix2/LibUI)'s procedural imperative syntax:
|
58
58
|
|
@@ -65,7 +65,11 @@ UI.init
|
|
65
65
|
|
66
66
|
main_window = UI.new_window('hello world', 300, 200, 1)
|
67
67
|
|
68
|
-
UI.
|
68
|
+
button = UI.new_button('Button')
|
69
|
+
|
70
|
+
UI.button_on_clicked(button) do
|
71
|
+
UI.msg_box(main_window, 'Information', 'You clicked the button')
|
72
|
+
end
|
69
73
|
|
70
74
|
UI.window_on_closing(main_window) do
|
71
75
|
puts 'Bye Bye'
|
@@ -74,6 +78,9 @@ UI.window_on_closing(main_window) do
|
|
74
78
|
0
|
75
79
|
end
|
76
80
|
|
81
|
+
UI.window_set_child(main_window, button)
|
82
|
+
UI.control_show(main_window)
|
83
|
+
|
77
84
|
UI.main
|
78
85
|
UI.quit
|
79
86
|
```
|
@@ -85,7 +92,13 @@ require 'glimmer-dsl-libui'
|
|
85
92
|
|
86
93
|
include Glimmer
|
87
94
|
|
88
|
-
window('hello world', 300, 200, 1) {
|
95
|
+
window('hello world', 300, 200, 1) { |w|
|
96
|
+
button('Button') {
|
97
|
+
on_clicked do
|
98
|
+
msg_box(w, 'Information', 'You clicked the button')
|
99
|
+
end
|
100
|
+
}
|
101
|
+
|
89
102
|
on_closing do
|
90
103
|
puts 'Bye Bye'
|
91
104
|
end
|
@@ -103,7 +116,7 @@ gem install glimmer-dsl-libui
|
|
103
116
|
Or install via Bundler `Gemfile`:
|
104
117
|
|
105
118
|
```ruby
|
106
|
-
gem 'glimmer-dsl-libui', '~> 0.0.
|
119
|
+
gem 'glimmer-dsl-libui', '~> 0.0.3'
|
107
120
|
```
|
108
121
|
|
109
122
|
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.
|
@@ -377,7 +390,7 @@ include Glimmer
|
|
377
390
|
window('Basic Entry', 300, 50, 1) { |w|
|
378
391
|
horizontal_box {
|
379
392
|
e = entry {
|
380
|
-
stretchy 1
|
393
|
+
# stretchy 1 # Smart default option for appending to horizontal_box
|
381
394
|
|
382
395
|
on_changed do
|
383
396
|
puts e.text
|
@@ -401,6 +414,76 @@ window('Basic Entry', 300, 50, 1) { |w|
|
|
401
414
|
}.show
|
402
415
|
```
|
403
416
|
|
417
|
+
### Simple Notepad
|
418
|
+
|
419
|
+
[examples/simple_notepad.rb](examples/simple_notepad.rb)
|
420
|
+
|
421
|
+
Run with this command from the root of the project if you cloned the project:
|
422
|
+
|
423
|
+
```
|
424
|
+
ruby -r './lib/glimmer-dsl-libui' examples/simple_notepad.rb
|
425
|
+
```
|
426
|
+
|
427
|
+
Run with this command if you installed the [Ruby gem](https://rubygems.org/gems/glimmer-dsl-libui):
|
428
|
+
|
429
|
+
```
|
430
|
+
ruby -r glimmer-dsl-libui -e "require 'examples/simple_notepad'"
|
431
|
+
```
|
432
|
+
|
433
|
+
Mac
|
434
|
+
|
435
|
+

|
436
|
+
|
437
|
+
Linux
|
438
|
+
|
439
|
+

|
440
|
+
|
441
|
+
[LibUI](https://github.com/kojix2/LibUI) Original Version:
|
442
|
+
|
443
|
+
```ruby
|
444
|
+
require 'libui'
|
445
|
+
|
446
|
+
UI = LibUI
|
447
|
+
|
448
|
+
UI.init
|
449
|
+
|
450
|
+
main_window = UI.new_window('Notepad', 500, 300, 1)
|
451
|
+
UI.window_on_closing(main_window) do
|
452
|
+
puts 'Bye Bye'
|
453
|
+
UI.control_destroy(main_window)
|
454
|
+
UI.quit
|
455
|
+
0
|
456
|
+
end
|
457
|
+
|
458
|
+
vbox = UI.new_vertical_box
|
459
|
+
UI.window_set_child(main_window, vbox)
|
460
|
+
|
461
|
+
entry = UI.new_non_wrapping_multiline_entry
|
462
|
+
UI.box_append(vbox, entry, 1)
|
463
|
+
|
464
|
+
UI.control_show(main_window)
|
465
|
+
UI.main
|
466
|
+
UI.quit
|
467
|
+
```
|
468
|
+
|
469
|
+
[Glimmer DSL for LibUI](https://rubygems.org/gems/glimmer-dsl-libui) Version:
|
470
|
+
|
471
|
+
```ruby
|
472
|
+
require 'glimmer-dsl-libui'
|
473
|
+
|
474
|
+
include Glimmer
|
475
|
+
|
476
|
+
window('Notepad', 500, 300, 1) {
|
477
|
+
on_closing do
|
478
|
+
puts 'Bye Bye'
|
479
|
+
end
|
480
|
+
|
481
|
+
vertical_box {
|
482
|
+
non_wrapping_multiline_entry
|
483
|
+
}
|
484
|
+
}.show
|
485
|
+
```
|
486
|
+
|
404
487
|
## Contributing to glimmer-dsl-libui
|
405
488
|
|
406
489
|
- Check out the latest master to make sure the feature hasn't been
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.3
|
data/examples/basic_entry.rb
CHANGED
data/glimmer-dsl-libui.gemspec
CHANGED
Binary file
|
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.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Maleh
|
@@ -163,6 +163,7 @@ files:
|
|
163
163
|
- examples/basic_button.rb
|
164
164
|
- examples/basic_entry.rb
|
165
165
|
- examples/basic_window.rb
|
166
|
+
- examples/simple_notepad.rb
|
166
167
|
- glimmer-dsl-libui.gemspec
|
167
168
|
- lib/glimmer-dsl-libui.rb
|
168
169
|
- lib/glimmer/dsl/libui/control_expression.rb
|