glimmer-dsl-tk 0.0.47 → 0.0.48
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/bin/girb +0 -0
- data/glimmer-dsl-tk.gemspec +0 -0
- data/lib/glimmer/tk/drag_and_drop_event.rb +23 -0
- data/lib/glimmer/tk/draggable_and_droppable.rb +4 -23
- data/lib/{os.rb → glimmer/tk/os.rb} +24 -12
- data/lib/glimmer-dsl-tk.rb +4 -4
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8c99ac84c772515736f995d5a5ab31aaa38bbbe986d26d1c1566c8d49c5347c9
|
4
|
+
data.tar.gz: 192d47da74f8630c268f52f7601b67126cbe07d2284defc8a8a6174a068b6274
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 950ef28b2882ee22d7adf49528eb8fe0e3aa3c1949ea92ec319274af09bd5c10b5832a78ace63b1e77404fa26c9f0e0fe29ba78d398162150ca235b0441566fa
|
7
|
+
data.tar.gz: 65f424fc3206e9bbd30bbae63da5a249f259c4619d5e987b1ab19b5e608442f0502f3b9ec5b2aac92c6cf92dfc67fa08727297d8b06aee22c3d910a865458c01
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## 0.0.48
|
4
|
+
|
5
|
+
- Moved `OS` class to `Glimmer::Tk::OS` to avoid clashing with os gem when installed for users
|
6
|
+
- Moved `DragAndDropEvent` from `Glimmer::Tk::DraggableAndDroppable` into `Glimmer::Tk` namespace directly as `Glimmer::Tk::DragAndDropEvent`
|
7
|
+
|
3
8
|
## 0.0.47
|
4
9
|
|
5
10
|
- Upgrade to glimmer 2.5.1 (includes more advanced data-binding/observer features)
|
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.48
|
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)
|
@@ -53,7 +53,7 @@ Glimmer app:
|
|
53
53
|
|
54
54
|
NOTE: Glimmer DSL for Tk is currently in early alpha mode (incomplete). Please help make better by contributing, adopting for small or low risk projects, and providing feedback. It is still an early alpha, so the more feedback and issues you report the better.
|
55
55
|
|
56
|
-
Other [Glimmer](https://github.com/AndyObtiva/glimmer) DSL gems:
|
56
|
+
Other [Glimmer](https://github.com/AndyObtiva/glimmer) DSL gems you might be interested in:
|
57
57
|
- [glimmer-dsl-swt](https://github.com/AndyObtiva/glimmer-dsl-swt): Glimmer DSL for SWT (JRuby Desktop Development GUI Framework)
|
58
58
|
- [glimmer-dsl-opal](https://github.com/AndyObtiva/glimmer-dsl-opal): Glimmer DSL for Opal (Pure Ruby Web GUI and Auto-Webifier of Desktop Apps)
|
59
59
|
- [glimmer-dsl-libui](https://github.com/AndyObtiva/glimmer-dsl-libui): Glimmer DSL for LibUI (Prerequisite-Free Ruby Desktop Development GUI Library)
|
@@ -182,7 +182,7 @@ gem install glimmer-dsl-tk
|
|
182
182
|
|
183
183
|
Add the following to `Gemfile`:
|
184
184
|
```
|
185
|
-
gem 'glimmer-dsl-tk', '0.0.
|
185
|
+
gem 'glimmer-dsl-tk', '0.0.48'
|
186
186
|
```
|
187
187
|
|
188
188
|
And, then run:
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.48
|
data/bin/girb
CHANGED
File without changes
|
data/glimmer-dsl-tk.gemspec
CHANGED
Binary file
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Glimmer
|
2
|
+
module Tk
|
3
|
+
DragAndDropEvent = Struct.new(:source, :target, :tooltip, :x_root, :y_root, :data, :drop_accepted) do
|
4
|
+
alias drop_accepted? drop_accepted
|
5
|
+
|
6
|
+
def as_json(*)
|
7
|
+
klass = self.class.name
|
8
|
+
{
|
9
|
+
JSON.create_id => klass,
|
10
|
+
"v" => [values[0].object_id, values[1].object_id, values[2].object_id].concat(values.drop 3),
|
11
|
+
}
|
12
|
+
end
|
13
|
+
|
14
|
+
def to_json(*args)
|
15
|
+
as_json.to_json(*args)
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.json_create(object)
|
19
|
+
new(*[ObjectSpace._id2ref(object["v"][0]), ObjectSpace._id2ref(object["v"][1]).proxy, ObjectSpace._id2ref(object["v"][2])].concat(object["v"].drop 3))
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -19,6 +19,7 @@
|
|
19
19
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
20
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
21
21
|
|
22
|
+
require_relative 'drag_and_drop_event'
|
22
23
|
require "json"
|
23
24
|
|
24
25
|
module Glimmer
|
@@ -65,11 +66,11 @@ module Glimmer
|
|
65
66
|
def on_drop_block=(value)
|
66
67
|
@on_drop_block = value
|
67
68
|
self.tk.bind("<DropEvent>", proc { |tk_event|
|
68
|
-
drop_event = DragAndDropEvent.json_create(JSON.parse("{" + tk_event.detail + "}"))
|
69
|
+
drop_event = Glimmer::Tk::DragAndDropEvent.json_create(JSON.parse("{" + tk_event.detail + "}"))
|
69
70
|
@on_drop_block.call(drop_event) if self == drop_event.target
|
70
71
|
})
|
71
72
|
self.tk.bind("<DropCheckEvent>", proc { |tk_event|
|
72
|
-
drop_check_event = DragAndDropEvent.json_create(JSON.parse("{" + tk_event.detail + "}"))
|
73
|
+
drop_check_event = Glimmer::Tk::DragAndDropEvent.json_create(JSON.parse("{" + tk_event.detail + "}"))
|
73
74
|
drop_check_event.source.event_generate("<DropAcceptedEvent>")
|
74
75
|
})
|
75
76
|
end
|
@@ -86,7 +87,7 @@ module Glimmer
|
|
86
87
|
tooltip = WidgetProxy.new('toplevel', root_parent_proxy, [])
|
87
88
|
tooltip.overrideredirect(1) #create tooltip window to display dragged data
|
88
89
|
tooltip.geometry("+#{tk_event.x_root + 10}+#{tk_event.y_root - 2}")
|
89
|
-
drag_event = DragAndDropEvent.new(self, nil, tooltip, tk_event.x_root, tk_event.y_root, nil, false)
|
90
|
+
drag_event = Glimmer::Tk::DragAndDropEvent.new(self, nil, tooltip, tk_event.x_root, tk_event.y_root, nil, false)
|
90
91
|
if @drag_source
|
91
92
|
tk_event.widget.configure(:cursor => "hand2")
|
92
93
|
# Default data to drag is text
|
@@ -159,26 +160,6 @@ module Glimmer
|
|
159
160
|
@tk.bind_remove('<DropCheckEvent>')
|
160
161
|
@on_drop_block = nil
|
161
162
|
end
|
162
|
-
|
163
|
-
DragAndDropEvent = Struct.new(:source, :target, :tooltip, :x_root, :y_root, :data, :drop_accepted) do
|
164
|
-
alias drop_accepted? drop_accepted
|
165
|
-
|
166
|
-
def as_json(*)
|
167
|
-
klass = self.class.name
|
168
|
-
{
|
169
|
-
JSON.create_id => klass,
|
170
|
-
"v" => [values[0].object_id, values[1].object_id, values[2].object_id].concat(values.drop 3),
|
171
|
-
}
|
172
|
-
end
|
173
|
-
|
174
|
-
def to_json(*args)
|
175
|
-
as_json.to_json(*args)
|
176
|
-
end
|
177
|
-
|
178
|
-
def self.json_create(object)
|
179
|
-
new(*[ObjectSpace._id2ref(object["v"][0]), ObjectSpace._id2ref(object["v"][1]).proxy, ObjectSpace._id2ref(object["v"][2])].concat(object["v"].drop 3))
|
180
|
-
end
|
181
|
-
end
|
182
163
|
end
|
183
164
|
end
|
184
165
|
end
|
@@ -19,18 +19,30 @@
|
|
19
19
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
20
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
21
21
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
22
|
+
require 'tk'
|
23
|
+
|
24
|
+
module Glimmer
|
25
|
+
module Tk
|
26
|
+
class OS
|
27
|
+
class << self
|
28
|
+
def mac?
|
29
|
+
::Tk.windowingsystem == 'aqua'
|
30
|
+
end
|
31
|
+
|
32
|
+
def windows?
|
33
|
+
::Tk.windowingsystem == 'win32'
|
34
|
+
end
|
35
|
+
|
36
|
+
def linux?
|
37
|
+
::Tk.windowingsystem == 'x11'
|
38
|
+
end
|
39
|
+
end
|
34
40
|
end
|
35
41
|
end
|
36
42
|
end
|
43
|
+
|
44
|
+
begin
|
45
|
+
OS
|
46
|
+
rescue
|
47
|
+
::OS = Glimmer::Tk::OS
|
48
|
+
end
|
data/lib/glimmer-dsl-tk.rb
CHANGED
@@ -29,7 +29,6 @@ require 'puts_debuggerer' if ENV['pd'].to_s.downcase == 'true'
|
|
29
29
|
require 'tk'
|
30
30
|
#require 'tkextlib/bwidget' # does not work on Windows
|
31
31
|
#require 'tkextlib/iwidgets' # does not work on Windows
|
32
|
-
require 'os'
|
33
32
|
require 'facets/hash/symbolize_keys'
|
34
33
|
require 'facets/string/underscore'
|
35
34
|
require 'facets/string/camelcase'
|
@@ -38,6 +37,7 @@ require 'delegate'
|
|
38
37
|
# Internal requires
|
39
38
|
# require 'ext/glimmer/config'
|
40
39
|
# require 'ext/glimmer'
|
40
|
+
require 'glimmer/tk/os'
|
41
41
|
require 'glimmer/dsl/tk/dsl'
|
42
42
|
|
43
43
|
Glimmer::Config.loop_max_count = -1
|
@@ -48,11 +48,11 @@ Glimmer::Config.excluded_keyword_checkers << lambda do |method_symbol, *args|
|
|
48
48
|
result ||= method == 'load_iseq'
|
49
49
|
end
|
50
50
|
|
51
|
-
Tk::Tile::Style.theme_use 'clam' if OS.linux?
|
51
|
+
::Tk::Tile::Style.theme_use 'clam' if OS.linux?
|
52
52
|
|
53
53
|
::TkOption.add '*tearOff', 0
|
54
54
|
|
55
|
-
class ::Tk::TkSysMenu_Window < Tk::Menu
|
56
|
-
include Tk::SystemMenu
|
55
|
+
class ::Tk::TkSysMenu_Window < ::Tk::Menu
|
56
|
+
include ::Tk::SystemMenu
|
57
57
|
SYSMENU_NAME = 'window'
|
58
58
|
end
|
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.48
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- AndyMaleh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-11-
|
11
|
+
date: 2021-11-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: glimmer
|
@@ -208,6 +208,7 @@ files:
|
|
208
208
|
- lib/glimmer/dsl/tk/widget_expression.rb
|
209
209
|
- lib/glimmer/tk/checkbutton_proxy.rb
|
210
210
|
- lib/glimmer/tk/combobox_proxy.rb
|
211
|
+
- lib/glimmer/tk/drag_and_drop_event.rb
|
211
212
|
- lib/glimmer/tk/draggable_and_droppable.rb
|
212
213
|
- lib/glimmer/tk/entry_proxy.rb
|
213
214
|
- lib/glimmer/tk/frame_proxy.rb
|
@@ -217,6 +218,7 @@ files:
|
|
217
218
|
- lib/glimmer/tk/menu_item_proxy.rb
|
218
219
|
- lib/glimmer/tk/menu_proxy.rb
|
219
220
|
- lib/glimmer/tk/notebook_proxy.rb
|
221
|
+
- lib/glimmer/tk/os.rb
|
220
222
|
- lib/glimmer/tk/radiobutton_proxy.rb
|
221
223
|
- lib/glimmer/tk/root_proxy.rb
|
222
224
|
- lib/glimmer/tk/scrollbar_frame_proxy.rb
|
@@ -228,7 +230,6 @@ files:
|
|
228
230
|
- lib/glimmer/tk/variable_owner.rb
|
229
231
|
- lib/glimmer/tk/widget.rb
|
230
232
|
- lib/glimmer/tk/widget_proxy.rb
|
231
|
-
- lib/os.rb
|
232
233
|
- samples/elaborate/meta_sample.rb
|
233
234
|
- samples/hello/hello_built_in_dialog.rb
|
234
235
|
- samples/hello/hello_button.rb
|
@@ -293,7 +294,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
293
294
|
- !ruby/object:Gem::Version
|
294
295
|
version: '0'
|
295
296
|
requirements: []
|
296
|
-
rubygems_version: 3.2.
|
297
|
+
rubygems_version: 3.2.22
|
297
298
|
signing_key:
|
298
299
|
specification_version: 4
|
299
300
|
summary: Glimmer DSL for Tk
|