glimmer-dsl-libui 0.0.19 → 0.0.20
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/README.md +67 -5
- data/VERSION +1 -1
- data/examples/editable_column_table.rb +31 -0
- data/glimmer-dsl-libui.gemspec +0 -0
- data/lib/glimmer/libui/text_column_proxy.rb +12 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d4f4c60e8967700c477acdd623d75af1b119ab243f90e22b4f9861d9fbde3705
|
4
|
+
data.tar.gz: f92952b04a511a54107114cad3b7b336b4731720b4a6844097353c97fd16f4a5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7fb3cd049cadd55cfb9750c6167804a8af54d793498bc3a67ac1efe913ec4497e2dec7ed19c176d644ecf8f49e721ad33e5b4d49fc32cafb073ccf5b0b08cc9c
|
7
|
+
data.tar.gz: bf246270c2651c86fa311ac72e02dd75c1ba03074286e254edfb6a99ae2dc59a1084e4317649d04cea31abf1c6b68908bf962d5b091a5a205d56830b138eb0ee
|
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.20
|
2
2
|
## Prerequisite-Free Ruby Desktop Development GUI Library
|
3
3
|
[![Gem Version](https://badge.fury.io/rb/glimmer-dsl-libui.svg)](http://badge.fury.io/rb/glimmer-dsl-libui)
|
4
4
|
[![Maintainability](https://api.codeclimate.com/v1/badges/ce2853efdbecf6ebdc73/maintainability)](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.0.
|
46
|
+
- [Glimmer DSL for LibUI 0.0.20](#-glimmer-dsl-for-libui-0020)
|
47
47
|
- [Glimmer GUI DSL Concepts](#glimmer-gui-dsl-concepts)
|
48
48
|
- [Usage](#usage)
|
49
49
|
- [API](#api)
|
@@ -70,6 +70,9 @@ Other [Glimmer](https://rubygems.org/gems/glimmer) DSL gems you might be interes
|
|
70
70
|
- [Grid](#grid)
|
71
71
|
- [Form](#form)
|
72
72
|
- [Basic Table](#basic-table)
|
73
|
+
- [Editable Table](#editable-table)
|
74
|
+
- [Editable Column Table](#editable-column-table)
|
75
|
+
- [Basic Table Image](#basic-table-image)
|
73
76
|
- [Contributing to glimmer-dsl-libui](#contributing-to-glimmer-dsl-libui)
|
74
77
|
- [Help](#help)
|
75
78
|
- [Issues](#issues)
|
@@ -157,7 +160,7 @@ gem install glimmer-dsl-libui
|
|
157
160
|
Or install via Bundler `Gemfile`:
|
158
161
|
|
159
162
|
```ruby
|
160
|
-
gem 'glimmer-dsl-libui', '~> 0.0.
|
163
|
+
gem 'glimmer-dsl-libui', '~> 0.0.20'
|
161
164
|
```
|
162
165
|
|
163
166
|
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.
|
@@ -246,7 +249,7 @@ Control(Args) | Properties | Listeners
|
|
246
249
|
`tab` | `margined` (Boolean), `num_pages` (`Integer`) | None
|
247
250
|
`tab_item(name as String)` | `index` [read-only] (`Integer`), `margined` (Boolean), `name` [read-only] (`String`) | None
|
248
251
|
`table` | `cell_rows` (`Array` (rows) of `Arrays` (row columns) of cell values (e.g. `String` values)), `editable` as Boolean | None
|
249
|
-
`text_column(name as String)` |
|
252
|
+
`text_column(name as String)` | `editable` as Boolean | None
|
250
253
|
`time_picker` | `time` (`Hash` of keys: `sec` as `Integer`, `min` as `Integer`, `hour` as `Integer`, `mday` as `Integer`, `mon` as `Integer`, `year` as `Integer`, `wday` as `Integer`, `yday` as `Integer`, `dst` as Boolean) | `on_changed`
|
251
254
|
`vertical_box` | `padded` (Boolean) | None
|
252
255
|
`window(title as String, width as Integer, height as Integer, has_menubar as Boolean)` | `borderless` (Boolean), `content_size` (width `Numeric`, height `Numeric`), `fullscreen` (Boolean), `margined` (Boolean), `title` (`String`) | `on_closing`, `on_content_size_changed`, `on_destroy`
|
@@ -311,7 +314,7 @@ Control(Args) | Properties | Listeners
|
|
311
314
|
- When destroying a control nested under a `window` or `group`, it is automatically unset as their child to allow successful destruction
|
312
315
|
- For `date_time_picker`, `date_picker`, and `time_picker`, make sure `time` hash values for `mon`, `wday`, and `yday` are 1-based instead of [libui](https://github.com/andlabs/libui) original 0-based values, and return `dst` as Boolean instead of `isdst` as `1`/`0`
|
313
316
|
- Smart defaults for `grid` child attributes are `left` (`0`), `top` (`0`), `xspan` (`1`), `yspan` (`1`), `hexpand` (`false`), `halign` (`0`), `vexpand` (`false`), and `valign` (`0`)
|
314
|
-
- The `table` control automatically constructs required `TableModelHandler`, `TableModel`, and `TableParams`, calculating all their arguments from `cell_rows`
|
317
|
+
- The `table` control automatically constructs required `TableModelHandler`, `TableModel`, and `TableParams`, calculating all their arguments from `cell_rows` and `editable` properties (e.g. `NumRows`) as well as nested columns (e.g. `text_column`)
|
315
318
|
- Table model instances are automatically freed from memory after `window` is destroyed.
|
316
319
|
- `image` instances are automatically freed from memory after `window` is destroyed.
|
317
320
|
|
@@ -1940,6 +1943,65 @@ window('Editable animal sounds', 300, 200) {
|
|
1940
1943
|
}.show
|
1941
1944
|
```
|
1942
1945
|
|
1946
|
+
### Editable Column Table
|
1947
|
+
|
1948
|
+
[examples/editable_column_table.rb](examples/editable_column_table.rb)
|
1949
|
+
|
1950
|
+
Run with this command from the root of the project if you cloned the project:
|
1951
|
+
|
1952
|
+
```
|
1953
|
+
ruby -r './lib/glimmer-dsl-libui' examples/editable_column_table.rb
|
1954
|
+
```
|
1955
|
+
|
1956
|
+
Run with this command if you installed the [Ruby gem](https://rubygems.org/gems/glimmer-dsl-libui):
|
1957
|
+
|
1958
|
+
```
|
1959
|
+
ruby -r glimmer-dsl-libui -e "require 'examples/editable_column_table'"
|
1960
|
+
```
|
1961
|
+
|
1962
|
+
Mac
|
1963
|
+
|
1964
|
+
![glimmer-dsl-libui-mac-editable-column-table-editing.png](images/glimmer-dsl-libui-mac-editable-column-table-editing.png)
|
1965
|
+
![glimmer-dsl-libui-mac-editable-column-table-edited.png](images/glimmer-dsl-libui-mac-editable-column-table-edited.png)
|
1966
|
+
|
1967
|
+
Linux
|
1968
|
+
|
1969
|
+
![glimmer-dsl-libui-linux-editable-column-table-editing.png](images/glimmer-dsl-libui-linux-editable-column-table-editing.png)
|
1970
|
+
![glimmer-dsl-libui-linux-editable-column-table-edited.png](images/glimmer-dsl-libui-linux-editable-column-table-edited.png)
|
1971
|
+
|
1972
|
+
New [Glimmer DSL for LibUI](https://rubygems.org/gems/glimmer-dsl-libui) Version:
|
1973
|
+
|
1974
|
+
```ruby
|
1975
|
+
require 'glimmer-dsl-libui'
|
1976
|
+
|
1977
|
+
include Glimmer
|
1978
|
+
|
1979
|
+
data = [
|
1980
|
+
%w[cat calm meow],
|
1981
|
+
%w[dog loyal woof],
|
1982
|
+
%w[chicken bird cock-a-doodle-doo],
|
1983
|
+
%w[hourse fast neigh],
|
1984
|
+
%w[cow slow moo]
|
1985
|
+
]
|
1986
|
+
|
1987
|
+
window('Editable column animal sounds', 400, 200) {
|
1988
|
+
horizontal_box {
|
1989
|
+
table {
|
1990
|
+
text_column('Animal')
|
1991
|
+
text_column('Description')
|
1992
|
+
text_column('Sound (Editable)') {
|
1993
|
+
editable true
|
1994
|
+
}
|
1995
|
+
|
1996
|
+
cell_rows data
|
1997
|
+
}
|
1998
|
+
}
|
1999
|
+
|
2000
|
+
on_closing do
|
2001
|
+
puts 'Bye Bye'
|
2002
|
+
end
|
2003
|
+
}.show
|
2004
|
+
```
|
1943
2005
|
|
1944
2006
|
### Basic Table Image
|
1945
2007
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.20
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'glimmer-dsl-libui'
|
4
|
+
|
5
|
+
include Glimmer
|
6
|
+
|
7
|
+
data = [
|
8
|
+
%w[cat calm meow],
|
9
|
+
%w[dog loyal woof],
|
10
|
+
%w[chicken bird cock-a-doodle-doo],
|
11
|
+
%w[hourse fast neigh],
|
12
|
+
%w[cow slow moo]
|
13
|
+
]
|
14
|
+
|
15
|
+
window('Editable column animal sounds', 400, 200) {
|
16
|
+
horizontal_box {
|
17
|
+
table {
|
18
|
+
text_column('Animal')
|
19
|
+
text_column('Description')
|
20
|
+
text_column('Sound (Editable)') {
|
21
|
+
editable true
|
22
|
+
}
|
23
|
+
|
24
|
+
cell_rows data
|
25
|
+
}
|
26
|
+
}
|
27
|
+
|
28
|
+
on_closing do
|
29
|
+
puts 'Bye Bye'
|
30
|
+
end
|
31
|
+
}.show
|
data/glimmer-dsl-libui.gemspec
CHANGED
Binary file
|
@@ -30,10 +30,21 @@ module Glimmer
|
|
30
30
|
class TextColumnProxy < ControlProxy
|
31
31
|
include Column
|
32
32
|
|
33
|
+
def editable(value = nil)
|
34
|
+
if value.nil?
|
35
|
+
@editable
|
36
|
+
else
|
37
|
+
@editable = !!value
|
38
|
+
end
|
39
|
+
end
|
40
|
+
alias editable= editable
|
41
|
+
alias set_editable editable
|
42
|
+
alias editable? editable
|
43
|
+
|
33
44
|
private
|
34
45
|
|
35
46
|
def build_control
|
36
|
-
@parent_proxy.append_text_column(name, next_column_index, @parent_proxy.editable? ? -2 : -1)
|
47
|
+
@parent_proxy.append_text_column(name, next_column_index, @parent_proxy.editable? || editable? ? -2 : -1)
|
37
48
|
super
|
38
49
|
end
|
39
50
|
end
|
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.20
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Maleh
|
@@ -177,7 +177,7 @@ dependencies:
|
|
177
177
|
- !ruby/object:Gem::Version
|
178
178
|
version: 1.4.0
|
179
179
|
description: Glimmer DSL for LibUI - Prerequisite-Free Ruby Desktop Development GUI
|
180
|
-
Library (
|
180
|
+
Library (No need to pre-install any prerequisites. Just install the gem and have
|
181
181
|
platform-independent native GUI that just works!)
|
182
182
|
email: andy.am@gmail.com
|
183
183
|
executables:
|
@@ -203,6 +203,7 @@ files:
|
|
203
203
|
- examples/color_button.rb
|
204
204
|
- examples/control_gallery.rb
|
205
205
|
- examples/date_time_picker.rb
|
206
|
+
- examples/editable_column_table.rb
|
206
207
|
- examples/editable_table.rb
|
207
208
|
- examples/font_button.rb
|
208
209
|
- examples/form.rb
|