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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b21f636473fd5ec680195625f775ee0e324c0a8b75da8b54495fa65fc4831240
4
- data.tar.gz: f5fdb73a7042b0c8fbacecd3da1b12cd568540fb4bbff732bdec166870c9f3b5
3
+ metadata.gz: 52288a5e598995e6c18b383655f5d20b4a0262237746b88ed5408cf3e5554025
4
+ data.tar.gz: ddd6f6977200341f3afd26f17d49c744ae1e47b76c33df93bd92f2d9283dcf41
5
5
  SHA512:
6
- metadata.gz: c84fe590235e2d6accdac0c1201f9eb3cc456ebc68f7826a50cd562f942e021d875e24e396431af19d62066badc0f365b256541cbccff8f99bfa30b8d5e382ff
7
- data.tar.gz: aa65600b586920743817256a1ab0c34c5a1428c5c7785759521e2ab602ffed17c95ec6e816a488d48e0181d5516743c382cc56e85fe95a26dd7fa209cd04cde7
6
+ metadata.gz: f7935b26729230d5827e0b40fa3750fb522422727fb600aa5433b9ae08576d63af57bdb590f858d9e5d2215e2efe7b22a455bdb49ff9078339f0781b9c124630
7
+ data.tar.gz: 3ca780dfc92485cccef7583aaaf40a337a215f3567b2e09cbe2a2917bd5f70663917e946f365c2eed214bbda492f7fc6c1d17735a712efdddff2600d03b023b9
data/Rakefile CHANGED
@@ -28,4 +28,4 @@ test_ruby_extension
28
28
  generate_documents
29
29
  build_ruby_gem
30
30
 
31
- task :default => :test
31
+ task :default => :ext
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.24
1
+ 0.1.27
@@ -35,7 +35,7 @@ namespace Reflex
35
35
 
36
36
  virtual void hide ();
37
37
 
38
- virtual void close ();
38
+ virtual void close (bool force = false);
39
39
 
40
40
  virtual void redraw ();
41
41
 
@@ -14,7 +14,7 @@ module Reflex
14
14
 
15
15
  def_delegators :first,
16
16
  :id,
17
- :type, :mouse?, :touch?, :pen?,
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} #{type} #{action} (#{x.round 2}, #{y.round 2}) mod:#{modifiers} click:#{click_count} drag:#{drag?} time:#{time.round 2}>"
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.24'
32
- s.add_runtime_dependency 'rucy', '~> 0.1.24'
33
- s.add_runtime_dependency 'beeps', '~> 0.1.24'
34
- s.add_runtime_dependency 'rays', '~> 0.1.24'
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}
@@ -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
@@ -6,6 +6,7 @@
6
6
  #import <CoreMotion/CoreMotion.h>
7
7
  #include "reflex/event.h"
8
8
  #include "reflex/exception.h"
9
+ #include "application.h"
9
10
 
10
11
 
11
12
  @implementation ReflexAppDelegate
@@ -13,6 +13,12 @@ extern "C" {
13
13
  }
14
14
 
15
15
 
16
+ @interface ReflexAppDelegate (Bind)
17
+ - (void) bind: (Reflex::Application*) application;
18
+ - (BOOL) callOnStart;
19
+ @end
20
+
21
+
16
22
  namespace Reflex
17
23
  {
18
24
 
@@ -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, strong) ReflexViewController* reflexViewController;
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
- [self.reflexViewController viewDidResize];
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 = [[NSString alloc] initWithUTF8String: title];
105
+ get_vc(window).title = [NSString stringWithUTF8String: title];
108
106
  }
109
107
 
110
108
  const char*
@@ -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 prevPointer;
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 (prevPointer)
385
- Reflex::Pointer_set_prev(&pointer, &prevPointer);
386
- prevPointer = pointer;
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.24
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: 2021-12-04 00:00:00.000000000 Z
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.24
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.24
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.24
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.24
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.24
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.24
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.24
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.24
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.32
398
+ rubygems_version: 3.2.33
399
399
  signing_key:
400
400
  specification_version: 4
401
401
  summary: A Graphical User Interface Tool Kit.