glimmer-dsl-libui 0.0.23 → 0.0.24
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 +6 -0
- data/README.md +63 -8
- data/VERSION +1 -1
- data/examples/basic_table.rb +1 -1
- data/examples/basic_table_button.rb +1 -5
- data/examples/basic_table_checkbox.rb +25 -0
- data/examples/editable_column_table.rb +1 -1
- data/examples/editable_table.rb +1 -1
- data/glimmer-dsl-libui.gemspec +0 -0
- data/lib/glimmer/libui/checkbox_column_proxy.rb +42 -0
- data/lib/glimmer/libui/table_proxy.rb +11 -6
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 48620214d8ee4d8658822fd623fbc35cacca3a65fdb9b50b9c0e594f37bce0ad
|
4
|
+
data.tar.gz: 595c65cc0ec5c8f94eea6b2aa542cd3f55870d537d3de4fa230b237e58a13835
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 52bfdf8599bc77a418a96a3ed4e3e072c06c328a9597325d66b21419cfde80ade7475f3744870ad0413383d72154db9caea0158e5a2f82e2e7446f231b1eb800
|
7
|
+
data.tar.gz: b8f10cae326f757cf6fdbff6085db5d9302696109158046c19cca0d57aaad63f9d28e30509155e69fa3d26bcc48541e3276e04d21c27969425663177da32a3a5
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## 0.0.24
|
4
|
+
|
5
|
+
- New examples/basic_table_checkbox.rb
|
6
|
+
- Support table `checkbox_column`
|
7
|
+
- Improve support for table row deletion upon actual `cell_rows` deletion by handling multiple-row deletion not just single-row deletion
|
8
|
+
|
3
9
|
## 0.0.23
|
4
10
|
|
5
11
|
- Have `image` not require `width` and `height` if it only has one `image_part` (defaults to `image_part` `width` and `height`)
|
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.24
|
2
2
|
## Prerequisite-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)
|
@@ -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.24](#-glimmer-dsl-for-libui-0024)
|
47
47
|
- [Glimmer GUI DSL Concepts](#glimmer-gui-dsl-concepts)
|
48
48
|
- [Usage](#usage)
|
49
49
|
- [API](#api)
|
@@ -75,6 +75,7 @@ Other [Glimmer](https://rubygems.org/gems/glimmer) DSL gems you might be interes
|
|
75
75
|
- [Basic Table Image](#basic-table-image)
|
76
76
|
- [Basic Table Image Text](#basic-table-image-text)
|
77
77
|
- [Basic Table Button](#basic-table-button)
|
78
|
+
- [Basic Table Checkbox](#basic-table-checkbox)
|
78
79
|
- [Contributing to glimmer-dsl-libui](#contributing-to-glimmer-dsl-libui)
|
79
80
|
- [Help](#help)
|
80
81
|
- [Issues](#issues)
|
@@ -162,7 +163,7 @@ gem install glimmer-dsl-libui
|
|
162
163
|
Or install via Bundler `Gemfile`:
|
163
164
|
|
164
165
|
```ruby
|
165
|
-
gem 'glimmer-dsl-libui', '~> 0.0.
|
166
|
+
gem 'glimmer-dsl-libui', '~> 0.0.24'
|
166
167
|
```
|
167
168
|
|
168
169
|
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.
|
@@ -219,7 +220,9 @@ Control(Args) | Properties | Listeners
|
|
219
220
|
------------- | ---------- | ---------
|
220
221
|
`about_menu_item` | None | `on_clicked`
|
221
222
|
`button(text as String)` | `text` (`String`) | `on_clicked`
|
223
|
+
`button_column(name as String)` | `enabled` (Boolean) | None
|
222
224
|
`checkbox(text as String)` | `checked` (Boolean), `text` (`String`) | `on_toggled`
|
225
|
+
`checkbox_column(name as String)` | None | None
|
223
226
|
`combobox` | `items` (`Array` of `String`), `selected` (`Integer`) | `on_selected`
|
224
227
|
`color_button` | `color` (Array of `red` as `Float`, `green` as `Float`, `blue` as `Float`, `alpha` as `Float`), `red` as `Float`, `green` as `Float`, `blue` as `Float`, `alpha` as `Float` | `on_changed`
|
225
228
|
`date_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`
|
@@ -1810,7 +1813,7 @@ data = [
|
|
1810
1813
|
%w[cat meow],
|
1811
1814
|
%w[dog woof],
|
1812
1815
|
%w[checken cock-a-doodle-doo],
|
1813
|
-
%w[
|
1816
|
+
%w[horse neigh],
|
1814
1817
|
%w[cow moo]
|
1815
1818
|
]
|
1816
1819
|
|
@@ -1868,7 +1871,7 @@ data = [
|
|
1868
1871
|
%w[cat meow],
|
1869
1872
|
%w[dog woof],
|
1870
1873
|
%w[chicken cock-a-doodle-doo],
|
1871
|
-
%w[
|
1874
|
+
%w[horse neigh],
|
1872
1875
|
%w[cow moo]
|
1873
1876
|
]
|
1874
1877
|
|
@@ -1927,7 +1930,7 @@ data = [
|
|
1927
1930
|
%w[cat meow],
|
1928
1931
|
%w[dog woof],
|
1929
1932
|
%w[chicken cock-a-doodle-doo],
|
1930
|
-
%w[
|
1933
|
+
%w[horse neigh],
|
1931
1934
|
%w[cow moo]
|
1932
1935
|
]
|
1933
1936
|
|
@@ -1985,7 +1988,7 @@ data = [
|
|
1985
1988
|
%w[cat calm meow],
|
1986
1989
|
%w[dog loyal woof],
|
1987
1990
|
%w[chicken bird cock-a-doodle-doo],
|
1988
|
-
%w[
|
1991
|
+
%w[horse fast neigh],
|
1989
1992
|
%w[cow slow moo]
|
1990
1993
|
]
|
1991
1994
|
|
@@ -2281,7 +2284,7 @@ data = [
|
|
2281
2284
|
%w[cat meow delete],
|
2282
2285
|
%w[dog woof delete],
|
2283
2286
|
%w[chicken cock-a-doodle-doo delete],
|
2284
|
-
%w[
|
2287
|
+
%w[horse neigh delete],
|
2285
2288
|
%w[cow moo delete]
|
2286
2289
|
]
|
2287
2290
|
|
@@ -2302,6 +2305,58 @@ window('Animal sounds', 300, 200) {
|
|
2302
2305
|
}.show
|
2303
2306
|
```
|
2304
2307
|
|
2308
|
+
### Basic Table Checkbox
|
2309
|
+
|
2310
|
+
[examples/basic_table_checkbox.rb](examples/basic_table_checkbox.rb)
|
2311
|
+
|
2312
|
+
Run with this command from the root of the project if you cloned the project:
|
2313
|
+
|
2314
|
+
```
|
2315
|
+
ruby -r './lib/glimmer-dsl-libui' examples/basic_table_checkbox.rb
|
2316
|
+
```
|
2317
|
+
|
2318
|
+
Run with this command if you installed the [Ruby gem](https://rubygems.org/gems/glimmer-dsl-libui):
|
2319
|
+
|
2320
|
+
```
|
2321
|
+
ruby -r glimmer-dsl-libui -e "require 'examples/basic_table_checkbox'"
|
2322
|
+
```
|
2323
|
+
|
2324
|
+
Mac
|
2325
|
+
|
2326
|
+

|
2327
|
+
|
2328
|
+
Linux
|
2329
|
+
|
2330
|
+

|
2331
|
+
|
2332
|
+
New [Glimmer DSL for LibUI](https://rubygems.org/gems/glimmer-dsl-libui) Version:
|
2333
|
+
|
2334
|
+
```ruby
|
2335
|
+
require 'glimmer-dsl-libui'
|
2336
|
+
|
2337
|
+
include Glimmer
|
2338
|
+
|
2339
|
+
data = [
|
2340
|
+
['cat', 'meow', true],
|
2341
|
+
['dog', 'woof', true],
|
2342
|
+
['chicken', 'cock-a-doodle-doo', false],
|
2343
|
+
['horse', 'neigh', true],
|
2344
|
+
['cow', 'moo', true]
|
2345
|
+
]
|
2346
|
+
|
2347
|
+
window('Animal sounds', 300, 200) {
|
2348
|
+
horizontal_box {
|
2349
|
+
table {
|
2350
|
+
text_column('Animal')
|
2351
|
+
text_column('Description')
|
2352
|
+
checkbox_column('Mammal')
|
2353
|
+
|
2354
|
+
cell_rows data
|
2355
|
+
}
|
2356
|
+
}
|
2357
|
+
}.show
|
2358
|
+
```
|
2359
|
+
|
2305
2360
|
## Contributing to glimmer-dsl-libui
|
2306
2361
|
|
2307
2362
|
- Check out the latest master to make sure the feature hasn't been
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.24
|
data/examples/basic_table.rb
CHANGED
@@ -8,7 +8,7 @@ data = [
|
|
8
8
|
%w[cat meow delete],
|
9
9
|
%w[dog woof delete],
|
10
10
|
%w[chicken cock-a-doodle-doo delete],
|
11
|
-
%w[
|
11
|
+
%w[horse neigh delete],
|
12
12
|
%w[cow moo delete]
|
13
13
|
]
|
14
14
|
|
@@ -26,8 +26,4 @@ window('Animal sounds', 300, 200) {
|
|
26
26
|
cell_rows data # implicit data-binding
|
27
27
|
}
|
28
28
|
}
|
29
|
-
|
30
|
-
on_closing do
|
31
|
-
puts 'Bye Bye'
|
32
|
-
end
|
33
29
|
}.show
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'glimmer-dsl-libui'
|
4
|
+
|
5
|
+
include Glimmer
|
6
|
+
|
7
|
+
data = [
|
8
|
+
['cat', 'meow', true],
|
9
|
+
['dog', 'woof', true],
|
10
|
+
['chicken', 'cock-a-doodle-doo', false],
|
11
|
+
['horse', 'neigh', true],
|
12
|
+
['cow', 'moo', true]
|
13
|
+
]
|
14
|
+
|
15
|
+
window('Animal sounds', 300, 200) {
|
16
|
+
horizontal_box {
|
17
|
+
table {
|
18
|
+
text_column('Animal')
|
19
|
+
text_column('Description')
|
20
|
+
checkbox_column('Mammal')
|
21
|
+
|
22
|
+
cell_rows data
|
23
|
+
}
|
24
|
+
}
|
25
|
+
}.show
|
data/examples/editable_table.rb
CHANGED
data/glimmer-dsl-libui.gemspec
CHANGED
Binary file
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# Copyright (c) 2021 Andy Maleh
|
2
|
+
#
|
3
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
# a copy of this software and associated documentation files (the
|
5
|
+
# "Software"), to deal in the Software without restriction, including
|
6
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
# the following conditions:
|
10
|
+
#
|
11
|
+
# The above copyright notice and this permission notice shall be
|
12
|
+
# included in all copies or substantial portions of the Software.
|
13
|
+
#
|
14
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
21
|
+
|
22
|
+
require 'glimmer/libui/control_proxy'
|
23
|
+
require 'glimmer/libui/column'
|
24
|
+
require 'glimmer/libui/editable_column'
|
25
|
+
|
26
|
+
module Glimmer
|
27
|
+
module LibUI
|
28
|
+
# Proxy for LibUI checkbox column objects
|
29
|
+
#
|
30
|
+
# Follows the Proxy Design Pattern
|
31
|
+
class CheckboxColumnProxy < ControlProxy
|
32
|
+
include Column
|
33
|
+
# include EditableColumn # TODO enable this once checkbox column becomes editable on macosx in C libui (currently has a bug)
|
34
|
+
|
35
|
+
private
|
36
|
+
|
37
|
+
def build_control
|
38
|
+
@parent_proxy.append_checkbox_column(name, column_index, -1)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -70,11 +70,10 @@ module Glimmer
|
|
70
70
|
@cell_rows.tap do
|
71
71
|
@last_cell_rows = @cell_rows.clone
|
72
72
|
Glimmer::DataBinding::Observer.proc do
|
73
|
-
if
|
74
|
-
|
75
|
-
|
73
|
+
if @cell_rows.size < @last_cell_rows.size && @last_cell_rows.include_all?(*@cell_rows)
|
74
|
+
@last_cell_rows.array_diff_indexes(@cell_rows).reverse.each do |index|
|
75
|
+
::LibUI.table_model_row_deleted(model, index)
|
76
76
|
end
|
77
|
-
::LibUI.table_model_row_deleted(model, row)
|
78
77
|
end
|
79
78
|
@last_cell_rows = @cell_rows.clone
|
80
79
|
end.observe(self, :cell_rows)
|
@@ -112,8 +111,8 @@ module Glimmer
|
|
112
111
|
0
|
113
112
|
when ImageColumnProxy, ImageTextColumnProxy
|
114
113
|
1
|
115
|
-
|
116
|
-
|
114
|
+
when CheckboxColumnProxy
|
115
|
+
2
|
117
116
|
# when CheckboxTextColumnProxy
|
118
117
|
# 2
|
119
118
|
# when ProgressBarColumnProxy
|
@@ -128,6 +127,8 @@ module Glimmer
|
|
128
127
|
::LibUI.new_table_value_string((expanded_cell_rows[row] && expanded_cell_rows[row][column]).to_s)
|
129
128
|
when ImageColumnProxy, ImageTextColumnProxy
|
130
129
|
::LibUI.new_table_value_image((expanded_cell_rows[row] && (expanded_cell_rows[row][column].respond_to?(:libui) ? expanded_cell_rows[row][column].libui : expanded_cell_rows[row][column])))
|
130
|
+
when CheckboxColumnProxy
|
131
|
+
::LibUI.new_table_value_int((expanded_cell_rows[row] && (expanded_cell_rows[row][column] == 1 || expanded_cell_rows[row][column].to_s.strip.downcase == 'true' ? 1 : 0)))
|
131
132
|
end
|
132
133
|
end
|
133
134
|
@model_handler.SetCellValue = rbcallback(0, [1, 1, 4, 4, 1]) do |_, _, row, column, val|
|
@@ -141,6 +142,10 @@ module Glimmer
|
|
141
142
|
@cell_rows[row][column][1] = ::LibUI.table_value_string(val).to_s
|
142
143
|
when ButtonColumnProxy
|
143
144
|
@columns[column].notify_listeners(:on_clicked, row)
|
145
|
+
when CheckboxColumnProxy
|
146
|
+
column = @columns[column].index
|
147
|
+
@cell_rows[row] ||= []
|
148
|
+
@cell_rows[row][column] = ::LibUI.table_value_int(val).to_i == 1
|
144
149
|
end
|
145
150
|
end
|
146
151
|
|
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.0.
|
4
|
+
version: 0.0.24
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Maleh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-09-
|
11
|
+
date: 2021-09-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: glimmer
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 2.1.
|
19
|
+
version: 2.1.5
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 2.1.
|
26
|
+
version: 2.1.5
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: os
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -198,6 +198,7 @@ files:
|
|
198
198
|
- examples/basic_entry.rb
|
199
199
|
- examples/basic_table.rb
|
200
200
|
- examples/basic_table_button.rb
|
201
|
+
- examples/basic_table_checkbox.rb
|
201
202
|
- examples/basic_table_image.rb
|
202
203
|
- examples/basic_table_image_text.rb
|
203
204
|
- examples/basic_window.rb
|
@@ -228,6 +229,7 @@ files:
|
|
228
229
|
- lib/glimmer/libui/button_column_proxy.rb
|
229
230
|
- lib/glimmer/libui/button_proxy.rb
|
230
231
|
- lib/glimmer/libui/check_menu_item_proxy.rb
|
232
|
+
- lib/glimmer/libui/checkbox_column_proxy.rb
|
231
233
|
- lib/glimmer/libui/checkbox_proxy.rb
|
232
234
|
- lib/glimmer/libui/color_button_proxy.rb
|
233
235
|
- lib/glimmer/libui/column.rb
|