reflexion 0.1.24 → 0.1.27
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/Rakefile +1 -1
- data/VERSION +1 -1
- data/include/reflex/window.h +1 -1
- data/lib/reflex/pointer_event.rb +2 -2
- data/reflex.gemspec +4 -4
- data/src/ios/app_delegate.h +0 -6
- data/src/ios/app_delegate.mm +1 -0
- data/src/ios/application.mm +6 -0
- data/src/ios/view_controller.mm +14 -8
- data/src/ios/window.mm +2 -4
- data/src/osx/native_window.mm +22 -4
- data/src/window.cpp +25 -29
- metadata +11 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 52288a5e598995e6c18b383655f5d20b4a0262237746b88ed5408cf3e5554025
|
4
|
+
data.tar.gz: ddd6f6977200341f3afd26f17d49c744ae1e47b76c33df93bd92f2d9283dcf41
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f7935b26729230d5827e0b40fa3750fb522422727fb600aa5433b9ae08576d63af57bdb590f858d9e5d2215e2efe7b22a455bdb49ff9078339f0781b9c124630
|
7
|
+
data.tar.gz: 3ca780dfc92485cccef7583aaaf40a337a215f3567b2e09cbe2a2917bd5f70663917e946f365c2eed214bbda492f7fc6c1d17735a712efdddff2600d03b023b9
|
data/Rakefile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.27
|
data/include/reflex/window.h
CHANGED
data/lib/reflex/pointer_event.rb
CHANGED
@@ -14,7 +14,7 @@ module Reflex
|
|
14
14
|
|
15
15
|
def_delegators :first,
|
16
16
|
:id,
|
17
|
-
:
|
17
|
+
:types, :mouse?, :touch?, :pen?,
|
18
18
|
:mouse_left?, :left?, :mouse_right?, :right?, :mouse_middle?, :middle?,
|
19
19
|
:action, :down?, :up?, :move?, :cancel?, :stay?,
|
20
20
|
:position, :pos, :x, :y, :modifiers, :click_count, :drag?,
|
@@ -25,7 +25,7 @@ module Reflex
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def inspect()
|
28
|
-
"#<Reflex::PointerEvent id:#{id} #{
|
28
|
+
"#<Reflex::PointerEvent id:#{id} #{types} #{action} (#{x.round 2}, #{y.round 2}) mod:#{modifiers} click:#{click_count} drag:#{drag?} time:#{time.round 2}>"
|
29
29
|
end
|
30
30
|
|
31
31
|
private
|
data/reflex.gemspec
CHANGED
@@ -28,10 +28,10 @@ Gem::Specification.new do |s|
|
|
28
28
|
s.platform = Gem::Platform::RUBY
|
29
29
|
s.required_ruby_version = '>= 2.6.0'
|
30
30
|
|
31
|
-
s.add_runtime_dependency 'xot', '~> 0.1.
|
32
|
-
s.add_runtime_dependency 'rucy', '~> 0.1.
|
33
|
-
s.add_runtime_dependency 'beeps', '~> 0.1.
|
34
|
-
s.add_runtime_dependency 'rays', '~> 0.1.
|
31
|
+
s.add_runtime_dependency 'xot', '~> 0.1.27'
|
32
|
+
s.add_runtime_dependency 'rucy', '~> 0.1.27'
|
33
|
+
s.add_runtime_dependency 'beeps', '~> 0.1.27'
|
34
|
+
s.add_runtime_dependency 'rays', '~> 0.1.27'
|
35
35
|
|
36
36
|
s.files = `git ls-files`.split $/
|
37
37
|
s.executables = s.files.grep(%r{^bin/}) {|f| File.basename f}
|
data/src/ios/app_delegate.h
CHANGED
@@ -1,12 +1,6 @@
|
|
1
1
|
// -*- objc -*-
|
2
2
|
#import <UIKit/UIApplication.h>
|
3
|
-
#include "application.h"
|
4
3
|
|
5
4
|
|
6
5
|
@interface ReflexAppDelegate : UIResponder <UIApplicationDelegate>
|
7
|
-
|
8
|
-
- (void) bind: (Reflex::Application*) application;
|
9
|
-
|
10
|
-
- (BOOL) callOnStart;
|
11
|
-
|
12
6
|
@end// ReflexAppDelegate
|
data/src/ios/app_delegate.mm
CHANGED
data/src/ios/application.mm
CHANGED
data/src/ios/view_controller.mm
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
static ReflexViewController*
|
17
17
|
create_reflex_view_controller ()
|
18
18
|
{
|
19
|
-
return [[ReflexViewController alloc] init];
|
19
|
+
return [[[ReflexViewController alloc] init] autorelease];
|
20
20
|
}
|
21
21
|
|
22
22
|
static UIViewController*
|
@@ -102,7 +102,7 @@ ReflexViewController_get_show_fun ()
|
|
102
102
|
|
103
103
|
@interface ReflexView ()
|
104
104
|
|
105
|
-
@property(nonatomic,
|
105
|
+
@property(nonatomic, unsafe_unretained) ReflexViewController* reflexViewController;
|
106
106
|
|
107
107
|
@end
|
108
108
|
|
@@ -112,7 +112,9 @@ ReflexViewController_get_show_fun ()
|
|
112
112
|
- (void) layoutSubviews
|
113
113
|
{
|
114
114
|
[super layoutSubviews];
|
115
|
-
|
115
|
+
|
116
|
+
if (self.reflexViewController)
|
117
|
+
[self.reflexViewController viewDidResize];
|
116
118
|
}
|
117
119
|
|
118
120
|
@end
|
@@ -153,6 +155,9 @@ ReflexViewController_get_show_fun ()
|
|
153
155
|
|
154
156
|
- (void) dealloc
|
155
157
|
{
|
158
|
+
Reflex::Window* win = self.window;
|
159
|
+
if (win) win->close(true);
|
160
|
+
|
156
161
|
[self cleanup];
|
157
162
|
[super dealloc];
|
158
163
|
}
|
@@ -227,6 +232,11 @@ ReflexViewController_get_show_fun ()
|
|
227
232
|
[self setupReflexView];
|
228
233
|
}
|
229
234
|
|
235
|
+
- (ReflexView*) createReflexView
|
236
|
+
{
|
237
|
+
return [[[ReflexView alloc] initWithFrame: self.view.bounds] autorelease];
|
238
|
+
}
|
239
|
+
|
230
240
|
- (void) setupReflexView
|
231
241
|
{
|
232
242
|
ReflexView* view = [self createReflexView];
|
@@ -256,11 +266,6 @@ ReflexViewController_get_show_fun ()
|
|
256
266
|
self.reflexView = view;
|
257
267
|
}
|
258
268
|
|
259
|
-
- (ReflexView*) createReflexView
|
260
|
-
{
|
261
|
-
return [[[ReflexView alloc] initWithFrame: self.view.bounds] autorelease];
|
262
|
-
}
|
263
|
-
|
264
269
|
- (void) cleanupReflexView
|
265
270
|
{
|
266
271
|
ReflexView* view = self.reflexView;
|
@@ -270,6 +275,7 @@ ReflexViewController_get_show_fun ()
|
|
270
275
|
if (context && context == [EAGLContext currentContext])
|
271
276
|
[EAGLContext setCurrentContext: (EAGLContext*) Rays::get_offscreen_context()];
|
272
277
|
|
278
|
+
view.reflexViewController = nil;
|
273
279
|
[view removeFromSuperview];
|
274
280
|
|
275
281
|
self.reflexView = nil;
|
data/src/ios/window.mm
CHANGED
@@ -51,8 +51,7 @@ namespace Reflex
|
|
51
51
|
void
|
52
52
|
Window_initialize (Window* window)
|
53
53
|
{
|
54
|
-
ReflexViewController* vc =
|
55
|
-
[ReflexViewController_get_create_fun()() autorelease];
|
54
|
+
ReflexViewController* vc = ReflexViewController_get_create_fun()();
|
56
55
|
if (!vc)
|
57
56
|
reflex_error(__FILE__, __LINE__);
|
58
57
|
|
@@ -95,7 +94,6 @@ namespace Reflex
|
|
95
94
|
void
|
96
95
|
Window_close (Window* window)
|
97
96
|
{
|
98
|
-
not_implemented_error(__FILE__, __LINE__);
|
99
97
|
}
|
100
98
|
|
101
99
|
void
|
@@ -104,7 +102,7 @@ namespace Reflex
|
|
104
102
|
if (!title)
|
105
103
|
argument_error(__FILE__, __LINE__);
|
106
104
|
|
107
|
-
get_vc(window).title = [
|
105
|
+
get_vc(window).title = [NSString stringWithUTF8String: title];
|
108
106
|
}
|
109
107
|
|
110
108
|
const char*
|
data/src/osx/native_window.mm
CHANGED
@@ -34,6 +34,20 @@ count_mouse_buttons (const Reflex::PointerEvent& e)
|
|
34
34
|
return nbuttons;
|
35
35
|
}
|
36
36
|
|
37
|
+
static void
|
38
|
+
update_pixel_density (Reflex::Window* window)
|
39
|
+
{
|
40
|
+
assert(window);
|
41
|
+
|
42
|
+
Rays::Painter* painter = window->painter();
|
43
|
+
if (!painter) return;
|
44
|
+
|
45
|
+
float pd = Window_get_pixel_density(*window);
|
46
|
+
if (painter->pixel_density() != pd)
|
47
|
+
painter->canvas(window->frame().dup().move_to(0, 0), pd);
|
48
|
+
}
|
49
|
+
|
50
|
+
|
37
51
|
@implementation NativeWindow
|
38
52
|
|
39
53
|
{
|
@@ -43,7 +57,7 @@ count_mouse_buttons (const Reflex::PointerEvent& e)
|
|
43
57
|
int update_count;
|
44
58
|
int clicking_count;
|
45
59
|
Reflex::Pointer::ID pointer_id;
|
46
|
-
Reflex::Pointer
|
60
|
+
Reflex::Pointer prev_pointer;
|
47
61
|
}
|
48
62
|
|
49
63
|
- (id) init
|
@@ -196,6 +210,8 @@ count_mouse_buttons (const Reflex::PointerEvent& e)
|
|
196
210
|
Reflex::Window* win = self.window;
|
197
211
|
if (!win) return;
|
198
212
|
|
213
|
+
update_pixel_density(win);
|
214
|
+
|
199
215
|
if (update_count == 0)
|
200
216
|
[self update];
|
201
217
|
|
@@ -381,9 +397,11 @@ count_mouse_buttons (const Reflex::PointerEvent& e)
|
|
381
397
|
assert(e->size() == 1);
|
382
398
|
|
383
399
|
Reflex::Pointer& pointer = Reflex::PointerEvent_pointer_at(e, 0);
|
384
|
-
if (
|
385
|
-
Reflex::Pointer_set_prev(&pointer, &
|
386
|
-
|
400
|
+
if (prev_pointer)
|
401
|
+
Reflex::Pointer_set_prev(&pointer, &prev_pointer);
|
402
|
+
|
403
|
+
prev_pointer = pointer;
|
404
|
+
Reflex::Pointer_set_prev(&prev_pointer, NULL);
|
387
405
|
}
|
388
406
|
|
389
407
|
- (void) scrollWheel: (NSEvent*) event
|
data/src/window.cpp
CHANGED
@@ -165,6 +165,15 @@ namespace Reflex
|
|
165
165
|
if (!event)
|
166
166
|
argument_error(__FILE__, __LINE__);
|
167
167
|
|
168
|
+
window->on_key(event);
|
169
|
+
|
170
|
+
switch (event->action())
|
171
|
+
{
|
172
|
+
case KeyEvent::DOWN: window->on_key_down(event); break;
|
173
|
+
case KeyEvent::UP: window->on_key_up(event); break;
|
174
|
+
default: break;
|
175
|
+
}
|
176
|
+
|
168
177
|
for (auto& [view, targets] : window->self->captures)
|
169
178
|
{
|
170
179
|
if (!is_capturing(view.get(), targets, View::CAPTURE_KEY))
|
@@ -179,17 +188,6 @@ namespace Reflex
|
|
179
188
|
View_call_key_event(window->self->focus.get(), event);
|
180
189
|
|
181
190
|
cleanup_captures(window);
|
182
|
-
|
183
|
-
if (event->is_blocked()) return;
|
184
|
-
|
185
|
-
window->on_key(event);
|
186
|
-
|
187
|
-
switch (event->action())
|
188
|
-
{
|
189
|
-
case KeyEvent::DOWN: window->on_key_down(event); break;
|
190
|
-
case KeyEvent::UP: window->on_key_up(event); break;
|
191
|
-
default: break;
|
192
|
-
}
|
193
191
|
}
|
194
192
|
|
195
193
|
static void
|
@@ -362,19 +360,6 @@ namespace Reflex
|
|
362
360
|
if (!event)
|
363
361
|
argument_error(__FILE__, __LINE__);
|
364
362
|
|
365
|
-
call_captured_pointer_events(window, event);
|
366
|
-
|
367
|
-
if (!event->empty())
|
368
|
-
{
|
369
|
-
PointerEvent_update_for_child_view(event, window->root());
|
370
|
-
View_call_pointer_event(window->root(), event);
|
371
|
-
}
|
372
|
-
|
373
|
-
cleanup_captures(window);
|
374
|
-
|
375
|
-
if (event->empty() || event->is_blocked())
|
376
|
-
return;
|
377
|
-
|
378
363
|
window->on_pointer(event);
|
379
364
|
|
380
365
|
switch ((*event)[0].action())
|
@@ -385,6 +370,16 @@ namespace Reflex
|
|
385
370
|
case Pointer::CANCEL: window->on_pointer_cancel(event); break;
|
386
371
|
default: break;
|
387
372
|
}
|
373
|
+
|
374
|
+
call_captured_pointer_events(window, event);
|
375
|
+
|
376
|
+
if (!event->empty())
|
377
|
+
{
|
378
|
+
PointerEvent_update_for_child_view(event, window->root());
|
379
|
+
View_call_pointer_event(window->root(), event);
|
380
|
+
}
|
381
|
+
|
382
|
+
cleanup_captures(window);
|
388
383
|
}
|
389
384
|
|
390
385
|
void
|
@@ -415,9 +410,7 @@ namespace Reflex
|
|
415
410
|
|
416
411
|
Window::~Window ()
|
417
412
|
{
|
418
|
-
//close();
|
419
|
-
|
420
|
-
View_set_window(self->root.get(), NULL);
|
413
|
+
//close(true);
|
421
414
|
}
|
422
415
|
|
423
416
|
void
|
@@ -453,11 +446,14 @@ namespace Reflex
|
|
453
446
|
}
|
454
447
|
|
455
448
|
void
|
456
|
-
Window::close ()
|
449
|
+
Window::close (bool force)
|
457
450
|
{
|
458
451
|
Event e;
|
459
452
|
on_close(&e);
|
460
|
-
if (e.is_blocked()) return;
|
453
|
+
if (!force && e.is_blocked()) return;
|
454
|
+
|
455
|
+
View_set_window(self->root.get(), NULL);
|
456
|
+
self->root.reset();
|
461
457
|
|
462
458
|
Window_close(this);
|
463
459
|
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: reflexion
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.27
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- xordog
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-07-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: xot
|
@@ -16,56 +16,56 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.1.
|
19
|
+
version: 0.1.27
|
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: 0.1.
|
26
|
+
version: 0.1.27
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rucy
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.1.
|
33
|
+
version: 0.1.27
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.1.
|
40
|
+
version: 0.1.27
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: beeps
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.1.
|
47
|
+
version: 0.1.27
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0.1.
|
54
|
+
version: 0.1.27
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rays
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.1.
|
61
|
+
version: 0.1.27
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 0.1.
|
68
|
+
version: 0.1.27
|
69
69
|
description: This library helps you to develop interactive graphical user interface.
|
70
70
|
email: xordog@gmail.com
|
71
71
|
executables: []
|
@@ -395,7 +395,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
395
395
|
- !ruby/object:Gem::Version
|
396
396
|
version: '0'
|
397
397
|
requirements: []
|
398
|
-
rubygems_version: 3.2.
|
398
|
+
rubygems_version: 3.2.33
|
399
399
|
signing_key:
|
400
400
|
specification_version: 4
|
401
401
|
summary: A Graphical User Interface Tool Kit.
|