glimmer-dsl-tk 0.0.31 → 0.0.32
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 +3 -3
- data/VERSION +1 -1
- data/glimmer-dsl-tk.gemspec +0 -0
- data/samples/hello/hello_text.rb +53 -41
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 84f9643bc9497d251b1b17d52734874c954ce8ff085aee06f5a59bb98a79a1af
|
4
|
+
data.tar.gz: 2a1a77e76cfbd54fa463bc8c1ea3cb2e3e175b2996471bb3e80caf588f77f1dc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5af953ed2716d179f70b6b844bde3fa67d808406f5796c0cedb06625e04a05945eba0ff00e8f1783603d6f5509b1abb2d31c6e10033bf0caf46e345172abff01
|
7
|
+
data.tar.gz: 6f2316a161c55c14acca0da4e6704908617bdec23058245d74352a3eb118bf26bb3671bfa78065aefd5ca23a985a9acbae547fdea7c571dc0ab103f462527d4d
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## 0.0.32
|
4
|
+
|
5
|
+
- Hello, Text! Find Dialog toolbar button
|
6
|
+
- Hello, Text! Find Dialog Windows/Linux CONTROL+F shortcut alternative to Mac CMD+F
|
7
|
+
|
3
8
|
## 0.0.31
|
4
9
|
|
5
10
|
- Improve Hello, Text! (toolbar buttons: justify left, justify center, justify right)
|
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 Tk 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 Tk 0.0.32
|
2
2
|
## MRI Ruby Desktop Development GUI Library
|
3
3
|
[![Gem Version](https://badge.fury.io/rb/glimmer-dsl-tk.svg)](http://badge.fury.io/rb/glimmer-dsl-tk)
|
4
4
|
[![Ruby](https://github.com/AndyObtiva/glimmer-dsl-tk/actions/workflows/ruby.yml/badge.svg)](https://github.com/AndyObtiva/glimmer-dsl-tk/actions/workflows/ruby.yml)
|
@@ -158,7 +158,7 @@ gem install glimmer-dsl-tk
|
|
158
158
|
|
159
159
|
Add the following to `Gemfile`:
|
160
160
|
```
|
161
|
-
gem 'glimmer-dsl-tk', '~> 0.0.
|
161
|
+
gem 'glimmer-dsl-tk', '~> 0.0.32'
|
162
162
|
```
|
163
163
|
|
164
164
|
And, then run:
|
@@ -200,7 +200,7 @@ The Glimmer GUI DSL follows these simple concepts in mapping from Tk syntax:
|
|
200
200
|
- **Widget Keyword**: Any Tk widget (e.g. `Tk::Tile::Label`) or toplevel window (e.g. `TkRoot`) may be declared by its lower-case underscored name without the namespace (e.g. `label` or `root`). This is called a keyword and is represented in the Glimmer GUI DSL by a Ruby method behind the scenes.
|
201
201
|
- **Args**: Any keyword method may optionally take arguments surrounded by parentheses (e.g. a `frame` nested under a `notebook` may receive tab options like `frame(text: 'Users')`, which gets used behind the scenes by Tk code such as `notebook.add tab, text: 'Users'`)
|
202
202
|
- **Content/Options Block**: Any keyword may optionally be followed by a Ruby curly-brace block containing nested widgets (content) and attributes (options). Attributes are simply Tk option keywords followed by arguments and no block (e.g. `title 'Hello, World!'` under a `root`)
|
203
|
-
- **Event Binding Block**: `on(event) {}` keyword receiving a Tk binding event name (e.g. `KeyPress` or `ComboboxSelected`).
|
203
|
+
- **Event Binding Block**: `on(event) {}` keyword receiving a Tk binding event name (e.g. `KeyPress` or `ComboboxSelected`). Surrounding event by `<>` is optional as [Glimmer DSL for Tk](https://rubygems.org/gems/glimmer-dsl-tk) can take care of that automatically.
|
204
204
|
|
205
205
|
Example of an app written in [Tk](https://www.tcl.tk/) imperative syntax:
|
206
206
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.32
|
data/glimmer-dsl-tk.gemspec
CHANGED
Binary file
|
data/samples/hello/hello_text.rb
CHANGED
@@ -99,7 +99,7 @@ class HelloText
|
|
99
99
|
end
|
100
100
|
|
101
101
|
def launch
|
102
|
-
root {
|
102
|
+
@root = root {
|
103
103
|
title 'Hello, Text!'
|
104
104
|
width 1280
|
105
105
|
height 800
|
@@ -273,6 +273,15 @@ class HelloText
|
|
273
273
|
@text.get_open_file_to_insert_image
|
274
274
|
end
|
275
275
|
}
|
276
|
+
|
277
|
+
button {
|
278
|
+
grid row: 1, column: column_index += 1, column_weight: 0
|
279
|
+
image File.expand_path("images/search.png", __dir__), subsample: 32
|
280
|
+
|
281
|
+
on('command') do
|
282
|
+
show_find_dialog
|
283
|
+
end
|
284
|
+
}
|
276
285
|
}
|
277
286
|
|
278
287
|
@text = text {
|
@@ -282,49 +291,52 @@ class HelloText
|
|
282
291
|
value <=> [self, :document]
|
283
292
|
|
284
293
|
on('KeyPress') do |event|
|
285
|
-
if event.state == 8 && event.
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
tl.grab_release
|
311
|
-
tl.destroy
|
312
|
-
end
|
313
|
-
end
|
314
|
-
}
|
315
|
-
button {
|
316
|
-
text 'Find'
|
317
|
-
default 'active'
|
318
|
-
|
319
|
-
on('command') do
|
320
|
-
find
|
321
|
-
end
|
322
|
-
}
|
323
|
-
}
|
294
|
+
show_find_dialog if (event.keysym == 'f') && ((OS.mac? && event.state == 8) || (!OS.mac? && event.state == 4))
|
295
|
+
end
|
296
|
+
}
|
297
|
+
}
|
298
|
+
@root.open
|
299
|
+
end
|
300
|
+
|
301
|
+
def show_find_dialog
|
302
|
+
toplevel(@root) { |tl|
|
303
|
+
title 'Find'
|
304
|
+
|
305
|
+
label {
|
306
|
+
text 'Text:'
|
307
|
+
}
|
308
|
+
entry { |e|
|
309
|
+
focus true
|
310
|
+
text <=> [
|
311
|
+
self,
|
312
|
+
:find_text,
|
313
|
+
after_write: lambda do
|
314
|
+
text_index = @text.search(/#{find_text}/i, 'insert')
|
315
|
+
unless text_index.to_s.empty?
|
316
|
+
@text.tag_remove('sel', '1.0', 'end')
|
317
|
+
@text.tag_add('sel', text_index, "#{text_index} + #{find_text.size} chars")
|
318
|
+
end
|
324
319
|
end
|
320
|
+
]
|
321
|
+
|
322
|
+
on('KeyPress') do |event|
|
323
|
+
if event.keysym == 'Return'
|
324
|
+
find
|
325
|
+
elsif event.keysym == 'Escape'
|
326
|
+
tl.grab_release
|
327
|
+
tl.destroy
|
328
|
+
end
|
329
|
+
end
|
330
|
+
}
|
331
|
+
button {
|
332
|
+
text 'Find'
|
333
|
+
default 'active'
|
334
|
+
|
335
|
+
on('command') do
|
336
|
+
find
|
325
337
|
end
|
326
338
|
}
|
327
|
-
}
|
339
|
+
}
|
328
340
|
end
|
329
341
|
end
|
330
342
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: glimmer-dsl-tk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.32
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- AndyMaleh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-10-
|
11
|
+
date: 2021-10-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: glimmer
|