glimmer-dsl-libui 0.1.10 → 0.1.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/README.md +104 -2
- data/VERSION +1 -1
- data/examples/control_gallery.rb +1 -1
- data/examples/form_table.rb +20 -0
- data/examples/login.rb +45 -0
- data/glimmer-dsl-libui.gemspec +0 -0
- data/lib/glimmer/libui/control_proxy/area_proxy/scrolling_area_proxy.rb +40 -0
- data/lib/glimmer/libui/control_proxy/area_proxy.rb +6 -0
- data/lib/glimmer/libui/control_proxy/entry_proxy/password_entry_proxy.rb +36 -0
- data/lib/glimmer/libui/control_proxy/entry_proxy/search_entry_proxy.rb +36 -0
- data/lib/glimmer/libui/control_proxy/entry_proxy.rb +39 -0
- data/lib/glimmer/libui/control_proxy.rb +1 -0
- metadata +8 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b34fe2a7db4662a9588587bd62efa37358ebe3f543d40d771471ff46406767b5
|
4
|
+
data.tar.gz: e743595f9c5f25d54da5ad7abdeb634d074487b9d724ab787b70abad3c4aa7e7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: df37167d19bb74775589ab3471578d75d4ff485f5f85076cf986617fa9190adc1075eda7e87c133e15517f907efdcc7b985bc37dcd02cabde382fd11afcf76ae
|
7
|
+
data.tar.gz: a0cc3fae77a4d382035ddeaae2671953283a1bc148f3dcfab89c037eb5ba6bbbc1527579890fde4794cea8ed85ca04b4ef65d23ea482589c6a786581487a301d
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## 0.1.11
|
4
|
+
|
5
|
+
- New examples/login.rb
|
6
|
+
- Amend examples/form_table.rb with use of a `search_entry` to support table filtering
|
7
|
+
- Support `password_entry` control
|
8
|
+
- Support `search_entry` control
|
9
|
+
- Fix issue with setting control `enabled` property
|
10
|
+
|
3
11
|
## 0.1.10
|
4
12
|
|
5
13
|
- Upgrade to glimmer 2.2.1
|
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.1.
|
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.1.11
|
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)
|
@@ -191,7 +191,7 @@ Other [Glimmer](https://rubygems.org/gems/glimmer) DSL gems you might be interes
|
|
191
191
|
|
192
192
|
## Table of Contents
|
193
193
|
|
194
|
-
- [Glimmer DSL for LibUI 0.1.10](#-glimmer-dsl-for-libui-
|
194
|
+
- [Glimmer DSL for LibUI 0.1.10](#-glimmer-dsl-for-libui-0111)
|
195
195
|
- [Glimmer GUI DSL Concepts](#glimmer-gui-dsl-concepts)
|
196
196
|
- [Usage](#usage)
|
197
197
|
- [Girb (Glimmer IRB)](#girb-glimmer-irb)
|
@@ -234,6 +234,7 @@ Other [Glimmer](https://rubygems.org/gems/glimmer) DSL gems you might be interes
|
|
234
234
|
- [Area Gallery](#area-gallery)
|
235
235
|
- [Histogram](#histogram)
|
236
236
|
- [Basic Transform](#basic-transform)
|
237
|
+
- [Login](#login)
|
237
238
|
- [Contributing to glimmer-dsl-libui](#contributing-to-glimmer-dsl-libui)
|
238
239
|
- [Help](#help)
|
239
240
|
- [Issues](#issues)
|
@@ -429,6 +430,7 @@ Control(Args) | Properties | Listeners
|
|
429
430
|
`msg_box(window = main_window as Glimmer::LibUI::WindowProxy, title as String, description as String)` | None | None
|
430
431
|
`msg_box_error(window = main_window as Glimmer::LibUI::WindowProxy, title as String, description as String)` | None | None
|
431
432
|
`non_wrapping_multiline_entry` | `read_only` (Boolean), `text` (`String`) | `on_changed`
|
433
|
+
`password_entry` | `read_only` (Boolean), `text` (`String`) | `on_changed`
|
432
434
|
`path(draw_fill_mode = :winding)` | `fill` (`Hash` of `:r` as `0`-`255`, `:g` as `0`-`255`, `:b` as `0`-`255`, `:a` as `0.0`-`1.0`), `stroke` (`Hash` of `:r` as `0`-`255`, `:g` as `0`-`255`, `:b` as `0`-`255`, `:a` as `0.0`-`1.0`, `:cap` as (`:round`, `:square`, `:flat`), `:join` as (`:miter`, `:round`, `:bevel`), `:thickness` as `Numeric`, `:miter_limit` as `Numeric`, `:dashes` as `Array` of `Numeric` ) | None
|
433
435
|
`preferences_menu_item` | None | `on_clicked`
|
434
436
|
`progress_bar` | `value` (`Numeric`) | None
|
@@ -436,6 +438,7 @@ Control(Args) | Properties | Listeners
|
|
436
438
|
`quit_menu_item` | None | `on_clicked`
|
437
439
|
`radio_buttons` | `selected` (`Integer`) | `on_selected`
|
438
440
|
`rectangle(x as Numeric, y as Numeric, width as Numeric, height as Numeric)` | `x` (`Numeric`), `y` (`Numeric`), `width` (`Numeric`), `height` (`Numeric`) | None
|
441
|
+
`search_entry` | `read_only` (Boolean), `text` (`String`) | `on_changed`
|
439
442
|
`slider(min as Numeric, max as Numeric)` | `value` (`Numeric`) | `on_changed`
|
440
443
|
`spinbox(min as Numeric, max as Numeric)` | `value` (`Numeric`) | `on_changed`
|
441
444
|
`square(x as Numeric, y as Numeric, length as Numeric)` | `x` (`Numeric`), `y` (`Numeric`), `length` (`Numeric`) | None
|
@@ -445,6 +448,7 @@ Control(Args) | Properties | Listeners
|
|
445
448
|
`text_column(name as String)` | `editable` (Boolean) | None
|
446
449
|
`time_picker` | `time` (`Hash` of keys: `sec` as `Integer`, `min` as `Integer`, `hour` as `Integer`) | `on_changed`
|
447
450
|
`vertical_box` | `padded` (Boolean) | None
|
451
|
+
`vertical_separator` | None | None
|
448
452
|
`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`
|
449
453
|
|
450
454
|
### Common Control Properties
|
@@ -2995,15 +2999,19 @@ Mac
|
|
2995
2999
|
|
2996
3000
|
![glimmer-dsl-libui-mac-form-table.png](images/glimmer-dsl-libui-mac-form-table.png)
|
2997
3001
|
![glimmer-dsl-libui-mac-form-table-contact-entered.png](images/glimmer-dsl-libui-mac-form-table-contact-entered.png)
|
3002
|
+
![glimmer-dsl-libui-mac-form-table-filtered.png](images/glimmer-dsl-libui-mac-form-table-filtered.png)
|
2998
3003
|
|
2999
3004
|
Linux
|
3000
3005
|
|
3001
3006
|
![glimmer-dsl-libui-linux-form-table.png](images/glimmer-dsl-libui-linux-form-table.png)
|
3002
3007
|
![glimmer-dsl-libui-linux-form-table-contact-entered.png](images/glimmer-dsl-libui-linux-form-table-contact-entered.png)
|
3008
|
+
![glimmer-dsl-libui-linux-form-table-filtered.png](images/glimmer-dsl-libui-linux-form-table-filtered.png)
|
3003
3009
|
|
3004
3010
|
New [Glimmer DSL for LibUI](https://rubygems.org/gems/glimmer-dsl-libui) Version:
|
3005
3011
|
|
3006
3012
|
```ruby
|
3013
|
+
# frozen_string_literal: true
|
3014
|
+
|
3007
3015
|
require 'glimmer-dsl-libui'
|
3008
3016
|
|
3009
3017
|
include Glimmer
|
@@ -3049,6 +3057,7 @@ window('Contacts', 600, 600) { |w|
|
|
3049
3057
|
msg_box_error(w, 'Validation Error!', 'All fields are required! Please make sure to enter a value for all fields.')
|
3050
3058
|
else
|
3051
3059
|
data << new_row # automatically inserts a row into the table due to implicit data-binding
|
3060
|
+
@unfiltered_data = data.dup
|
3052
3061
|
@name_entry.text = ''
|
3053
3062
|
@email_entry.text = ''
|
3054
3063
|
@phone_entry.text = ''
|
@@ -3058,6 +3067,25 @@ window('Contacts', 600, 600) { |w|
|
|
3058
3067
|
end
|
3059
3068
|
}
|
3060
3069
|
|
3070
|
+
search_entry { |se|
|
3071
|
+
stretchy false
|
3072
|
+
|
3073
|
+
on_changed do
|
3074
|
+
filter_value = se.text
|
3075
|
+
@unfiltered_data ||= data.dup
|
3076
|
+
# Unfilter first to remove any previous filters
|
3077
|
+
data.replace(@unfiltered_data) # affects table indirectly through implicit data-binding
|
3078
|
+
# Now, apply filter if entered
|
3079
|
+
unless filter_value.empty?
|
3080
|
+
data.filter! do |row_data| # affects table indirectly through implicit data-binding
|
3081
|
+
row_data.any? do |cell|
|
3082
|
+
cell.to_s.downcase.include?(filter_value.downcase)
|
3083
|
+
end
|
3084
|
+
end
|
3085
|
+
end
|
3086
|
+
end
|
3087
|
+
}
|
3088
|
+
|
3061
3089
|
table {
|
3062
3090
|
text_column('Name')
|
3063
3091
|
text_column('Email')
|
@@ -4384,6 +4412,80 @@ window('Basic Transform', 350, 350) {
|
|
4384
4412
|
}.show
|
4385
4413
|
```
|
4386
4414
|
|
4415
|
+
### Login
|
4416
|
+
|
4417
|
+
[examples/login.rb](examples/login.rb)
|
4418
|
+
|
4419
|
+
Run with this command from the root of the project if you cloned the project:
|
4420
|
+
|
4421
|
+
```
|
4422
|
+
ruby -r './lib/glimmer-dsl-libui' examples/login.rb
|
4423
|
+
```
|
4424
|
+
|
4425
|
+
Run with this command if you installed the [Ruby gem](https://rubygems.org/gems/glimmer-dsl-libui):
|
4426
|
+
|
4427
|
+
```
|
4428
|
+
ruby -r glimmer-dsl-libui -e "require 'examples/login'"
|
4429
|
+
```
|
4430
|
+
|
4431
|
+
Mac
|
4432
|
+
|
4433
|
+
![glimmer-dsl-libui-mac-login.png](images/glimmer-dsl-libui-mac-login.png)
|
4434
|
+
![glimmer-dsl-libui-mac-login-logged-in.png](images/glimmer-dsl-libui-mac-login-logged-in.png)
|
4435
|
+
|
4436
|
+
Linux
|
4437
|
+
|
4438
|
+
![glimmer-dsl-libui-linux-login.png](images/glimmer-dsl-libui-linux-login.png)
|
4439
|
+
![glimmer-dsl-libui-linux-login-logged-in.png](images/glimmer-dsl-libui-linux-login-logged-in.png)
|
4440
|
+
|
4441
|
+
New [Glimmer DSL for LibUI](https://rubygems.org/gems/glimmer-dsl-libui) Version:
|
4442
|
+
|
4443
|
+
```ruby
|
4444
|
+
require 'glimmer-dsl-libui'
|
4445
|
+
|
4446
|
+
include Glimmer
|
4447
|
+
|
4448
|
+
window('Login') {
|
4449
|
+
margined true
|
4450
|
+
|
4451
|
+
vertical_box {
|
4452
|
+
form {
|
4453
|
+
@username_entry = entry {
|
4454
|
+
label 'Username:'
|
4455
|
+
}
|
4456
|
+
|
4457
|
+
@password_entry = password_entry {
|
4458
|
+
label 'Password:'
|
4459
|
+
}
|
4460
|
+
}
|
4461
|
+
|
4462
|
+
horizontal_box {
|
4463
|
+
@login_button = button('Login') {
|
4464
|
+
on_clicked do
|
4465
|
+
@username_entry.enabled = false
|
4466
|
+
@password_entry.enabled = false
|
4467
|
+
@login_button.enabled = false
|
4468
|
+
@logout_button.enabled = true
|
4469
|
+
end
|
4470
|
+
}
|
4471
|
+
|
4472
|
+
@logout_button = button('Logout') {
|
4473
|
+
enabled false
|
4474
|
+
|
4475
|
+
on_clicked do
|
4476
|
+
@username_entry.text = ''
|
4477
|
+
@password_entry.text = ''
|
4478
|
+
@username_entry.enabled = true
|
4479
|
+
@password_entry.enabled = true
|
4480
|
+
@login_button.enabled = true
|
4481
|
+
@logout_button.enabled = false
|
4482
|
+
end
|
4483
|
+
}
|
4484
|
+
}
|
4485
|
+
}
|
4486
|
+
}.show
|
4487
|
+
```
|
4488
|
+
|
4387
4489
|
## Contributing to glimmer-dsl-libui
|
4388
4490
|
|
4389
4491
|
- Check out the latest master to make sure the feature hasn't been
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.11
|
data/examples/control_gallery.rb
CHANGED
data/examples/form_table.rb
CHANGED
@@ -45,6 +45,7 @@ window('Contacts', 600, 600) { |w|
|
|
45
45
|
msg_box_error(w, 'Validation Error!', 'All fields are required! Please make sure to enter a value for all fields.')
|
46
46
|
else
|
47
47
|
data << new_row # automatically inserts a row into the table due to implicit data-binding
|
48
|
+
@unfiltered_data = data.dup
|
48
49
|
@name_entry.text = ''
|
49
50
|
@email_entry.text = ''
|
50
51
|
@phone_entry.text = ''
|
@@ -54,6 +55,25 @@ window('Contacts', 600, 600) { |w|
|
|
54
55
|
end
|
55
56
|
}
|
56
57
|
|
58
|
+
search_entry { |se|
|
59
|
+
stretchy false
|
60
|
+
|
61
|
+
on_changed do
|
62
|
+
filter_value = se.text
|
63
|
+
@unfiltered_data ||= data.dup
|
64
|
+
# Unfilter first to remove any previous filters
|
65
|
+
data.replace(@unfiltered_data) # affects table indirectly through implicit data-binding
|
66
|
+
# Now, apply filter if entered
|
67
|
+
unless filter_value.empty?
|
68
|
+
data.filter! do |row_data| # affects table indirectly through implicit data-binding
|
69
|
+
row_data.any? do |cell|
|
70
|
+
cell.to_s.downcase.include?(filter_value.downcase)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
}
|
76
|
+
|
57
77
|
table {
|
58
78
|
text_column('Name')
|
59
79
|
text_column('Email')
|
data/examples/login.rb
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'glimmer-dsl-libui'
|
4
|
+
|
5
|
+
include Glimmer
|
6
|
+
|
7
|
+
window('Login') {
|
8
|
+
margined true
|
9
|
+
|
10
|
+
vertical_box {
|
11
|
+
form {
|
12
|
+
@username_entry = entry {
|
13
|
+
label 'Username:'
|
14
|
+
}
|
15
|
+
|
16
|
+
@password_entry = password_entry {
|
17
|
+
label 'Password:'
|
18
|
+
}
|
19
|
+
}
|
20
|
+
|
21
|
+
horizontal_box {
|
22
|
+
@login_button = button('Login') {
|
23
|
+
on_clicked do
|
24
|
+
@username_entry.enabled = false
|
25
|
+
@password_entry.enabled = false
|
26
|
+
@login_button.enabled = false
|
27
|
+
@logout_button.enabled = true
|
28
|
+
end
|
29
|
+
}
|
30
|
+
|
31
|
+
@logout_button = button('Logout') {
|
32
|
+
enabled false
|
33
|
+
|
34
|
+
on_clicked do
|
35
|
+
@username_entry.text = ''
|
36
|
+
@password_entry.text = ''
|
37
|
+
@username_entry.enabled = true
|
38
|
+
@password_entry.enabled = true
|
39
|
+
@login_button.enabled = true
|
40
|
+
@logout_button.enabled = false
|
41
|
+
end
|
42
|
+
}
|
43
|
+
}
|
44
|
+
}
|
45
|
+
}.show
|
data/glimmer-dsl-libui.gemspec
CHANGED
Binary file
|
@@ -0,0 +1,40 @@
|
|
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/area_proxy'
|
23
|
+
|
24
|
+
module Glimmer
|
25
|
+
module LibUI
|
26
|
+
class ControlProxy
|
27
|
+
class AreaProxy < ControlProxy
|
28
|
+
# Proxy for LibUI scrolling area objects
|
29
|
+
#
|
30
|
+
# Follows the Proxy Design Pattern
|
31
|
+
class ScrollingAreaProxy < AreaProxy
|
32
|
+
def build_control
|
33
|
+
@area_handler = ::LibUI::FFI::AreaHandler.malloc
|
34
|
+
@libui = ::LibUI.new_scrolling_area(@area_handler, *@args)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -55,6 +55,10 @@ module Glimmer
|
|
55
55
|
|
56
56
|
attr_reader :area_handler
|
57
57
|
|
58
|
+
def libui_api_keyword
|
59
|
+
'area'
|
60
|
+
end
|
61
|
+
|
58
62
|
def post_add_content
|
59
63
|
super
|
60
64
|
install_listeners
|
@@ -193,3 +197,5 @@ module Glimmer
|
|
193
197
|
end
|
194
198
|
end
|
195
199
|
end
|
200
|
+
|
201
|
+
Dir[File.expand_path("./#{File.basename(__FILE__, '.rb')}/*.rb", __dir__)].each {|f| require f}
|
@@ -0,0 +1,36 @@
|
|
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/entry_proxy'
|
23
|
+
|
24
|
+
module Glimmer
|
25
|
+
module LibUI
|
26
|
+
class ControlProxy
|
27
|
+
class EntryProxy < ControlProxy
|
28
|
+
# Proxy for LibUI password entry objects
|
29
|
+
#
|
30
|
+
# Follows the Proxy Design Pattern
|
31
|
+
class PasswordEntryProxy < EntryProxy
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,36 @@
|
|
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/entry_proxy'
|
23
|
+
|
24
|
+
module Glimmer
|
25
|
+
module LibUI
|
26
|
+
class ControlProxy
|
27
|
+
class EntryProxy < ControlProxy
|
28
|
+
# Proxy for LibUI search entry objects
|
29
|
+
#
|
30
|
+
# Follows the Proxy Design Pattern
|
31
|
+
class SearchEntryProxy < EntryProxy
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,39 @@
|
|
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
|
+
|
24
|
+
module Glimmer
|
25
|
+
module LibUI
|
26
|
+
class ControlProxy
|
27
|
+
# Proxy for LibUI entry objects
|
28
|
+
#
|
29
|
+
# Follows the Proxy Design Pattern
|
30
|
+
class EntryProxy < ControlProxy
|
31
|
+
def libui_api_keyword
|
32
|
+
'entry'
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
Dir[File.expand_path("./#{File.basename(__FILE__, '.rb')}/*.rb", __dir__)].each {|f| require f}
|
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.1.
|
4
|
+
version: 0.1.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Maleh
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 2.2.
|
19
|
+
version: 2.2.2
|
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.2.
|
26
|
+
version: 2.2.2
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: os
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -238,6 +238,7 @@ files:
|
|
238
238
|
- examples/form_table.rb
|
239
239
|
- examples/grid.rb
|
240
240
|
- examples/histogram.rb
|
241
|
+
- examples/login.rb
|
241
242
|
- examples/meta_example.rb
|
242
243
|
- examples/midi_player.rb
|
243
244
|
- examples/simple_notepad.rb
|
@@ -256,6 +257,7 @@ files:
|
|
256
257
|
- lib/glimmer/libui.rb
|
257
258
|
- lib/glimmer/libui/control_proxy.rb
|
258
259
|
- lib/glimmer/libui/control_proxy/area_proxy.rb
|
260
|
+
- lib/glimmer/libui/control_proxy/area_proxy/scrolling_area_proxy.rb
|
259
261
|
- lib/glimmer/libui/control_proxy/box.rb
|
260
262
|
- lib/glimmer/libui/control_proxy/box/horizontal_box_proxy.rb
|
261
263
|
- lib/glimmer/libui/control_proxy/box/vertical_box_proxy.rb
|
@@ -278,6 +280,9 @@ files:
|
|
278
280
|
- lib/glimmer/libui/control_proxy/editable_column.rb
|
279
281
|
- lib/glimmer/libui/control_proxy/editable_combobox_proxy.rb
|
280
282
|
- lib/glimmer/libui/control_proxy/enableable_column.rb
|
283
|
+
- lib/glimmer/libui/control_proxy/entry_proxy.rb
|
284
|
+
- lib/glimmer/libui/control_proxy/entry_proxy/password_entry_proxy.rb
|
285
|
+
- lib/glimmer/libui/control_proxy/entry_proxy/search_entry_proxy.rb
|
281
286
|
- lib/glimmer/libui/control_proxy/font_button_proxy.rb
|
282
287
|
- lib/glimmer/libui/control_proxy/form_proxy.rb
|
283
288
|
- lib/glimmer/libui/control_proxy/grid_proxy.rb
|