reflexion 0.1.49 → 0.1.51
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.doc/ext/reflex/device.cpp +19 -0
- data/.doc/ext/reflex/native.cpp +4 -0
- data/.doc/ext/reflex/window.cpp +33 -3
- data/ChangeLog.md +11 -0
- data/VERSION +1 -1
- data/ext/reflex/device.cpp +20 -0
- data/ext/reflex/native.cpp +4 -0
- data/ext/reflex/window.cpp +38 -6
- data/include/reflex/device.h +17 -0
- data/include/reflex/window.h +9 -1
- data/include/reflex.h +2 -0
- data/lib/reflex/window.rb +6 -0
- data/src/ios/device.mm +34 -0
- data/src/ios/view_controller.mm +31 -0
- data/src/ios/window.mm +98 -7
- data/src/osx/device.mm +19 -0
- data/src/osx/window.mm +6 -0
- data/src/window.cpp +14 -0
- data/test/test_device.rb +10 -0
- data/test/test_window.rb +12 -0
- metadata +10 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dd2a3ef38fbccf989e0db7bea54c917873e44219de47aad92baf4cfafd6f861e
|
4
|
+
data.tar.gz: ac310728d1f35471f74b47724fe26d6e40695304620df3c53c5b65397dec70d6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 415b3a49fc3650be49c66e92f4c12ea600a7cdd01ad4a056f1c10d6169a489d7a14eee032c53f064d3b95b18e99144e4eedeb218706f009df54f40a8d67e73e9
|
7
|
+
data.tar.gz: f7b8fdaddbb3c73f4befebb2e80d983d8c9ff94280e46fd84b6731069b785ead45cfa4c8d276f877a5ef2a1e6bae102efa601c59de45d4a69f1926f544bfadc2
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#include "reflex/device.h"
|
2
|
+
#include "defs.h"
|
3
|
+
|
4
|
+
|
5
|
+
static
|
6
|
+
VALUE vibrate(VALUE self)
|
7
|
+
{
|
8
|
+
Reflex::vibrate();
|
9
|
+
return self;
|
10
|
+
}
|
11
|
+
|
12
|
+
|
13
|
+
void
|
14
|
+
Init_reflex_device ()
|
15
|
+
{
|
16
|
+
Module mReflex = rb_define_module("Reflex");
|
17
|
+
|
18
|
+
rb_define_singleton_method(mReflex, "vibrate", RUBY_METHOD_FUNC(vibrate), 0);
|
19
|
+
}
|
data/.doc/ext/reflex/native.cpp
CHANGED
@@ -36,6 +36,8 @@ void Init_reflex_screen ();
|
|
36
36
|
void Init_reflex_window ();
|
37
37
|
void Init_reflex_view ();
|
38
38
|
|
39
|
+
void Init_reflex_device ();
|
40
|
+
|
39
41
|
void Init_reflex_image_view ();
|
40
42
|
|
41
43
|
|
@@ -85,6 +87,8 @@ extern "C" void
|
|
85
87
|
Init_reflex_window();
|
86
88
|
Init_reflex_view();
|
87
89
|
|
90
|
+
Init_reflex_device();
|
91
|
+
|
88
92
|
Init_reflex_image_view();
|
89
93
|
|
90
94
|
RUCY_CATCH
|
data/.doc/ext/reflex/window.cpp
CHANGED
@@ -166,6 +166,31 @@ VALUE is_resizable(VALUE self)
|
|
166
166
|
return value(THIS->has_flag(Reflex::Window::FLAG_RESIZABLE));
|
167
167
|
}
|
168
168
|
|
169
|
+
static const uint ORIENTATION_MASK =
|
170
|
+
Reflex::Window::FLAG_PORTRAIT | Reflex::Window::FLAG_LANDSCAPE;
|
171
|
+
|
172
|
+
static
|
173
|
+
VALUE set_orientations(VALUE self, VALUE orientations)
|
174
|
+
{
|
175
|
+
using namespace Reflex;
|
176
|
+
|
177
|
+
CHECK;
|
178
|
+
|
179
|
+
uint flags = to<uint>(orientations);
|
180
|
+
THIS->set_flag(
|
181
|
+
( flags & ORIENTATION_MASK) |
|
182
|
+
(THIS->flags() & ~ORIENTATION_MASK));
|
183
|
+
}
|
184
|
+
|
185
|
+
static
|
186
|
+
VALUE get_orientations(VALUE self)
|
187
|
+
{
|
188
|
+
using namespace Reflex;
|
189
|
+
|
190
|
+
CHECK;
|
191
|
+
return value(THIS->flags() & ORIENTATION_MASK);
|
192
|
+
}
|
193
|
+
|
169
194
|
static
|
170
195
|
VALUE get_screen(VALUE self)
|
171
196
|
{
|
@@ -345,11 +370,13 @@ Init_reflex_window ()
|
|
345
370
|
rb_define_method(cWindow, "frame=", RUBY_METHOD_FUNC(set_frame), -1);
|
346
371
|
rb_define_method(cWindow, "frame", RUBY_METHOD_FUNC(get_frame), 0);
|
347
372
|
rb_define_method(cWindow, "closable=", RUBY_METHOD_FUNC(set_closable), 1);
|
348
|
-
cWindow.define_method("closable?",
|
373
|
+
cWindow.define_method("closable?", is_closable);
|
349
374
|
rb_define_method(cWindow, "minimizable=", RUBY_METHOD_FUNC(set_minimizable), 1);
|
350
|
-
cWindow.define_method("minimizable?",
|
375
|
+
cWindow.define_method("minimizable?", is_minimizable);
|
351
376
|
rb_define_method(cWindow, "resizable=", RUBY_METHOD_FUNC(set_resizable), 1);
|
352
|
-
cWindow.define_method("resizable?",
|
377
|
+
cWindow.define_method("resizable?", is_resizable);
|
378
|
+
rb_define_method(cWindow, "orientations=", RUBY_METHOD_FUNC(set_orientations), 1);
|
379
|
+
rb_define_method(cWindow, "orientations", RUBY_METHOD_FUNC(get_orientations), 0);
|
353
380
|
rb_define_method(cWindow, "hidden", RUBY_METHOD_FUNC(hidden), 0);
|
354
381
|
rb_define_method(cWindow, "screen", RUBY_METHOD_FUNC(get_screen), 0);
|
355
382
|
rb_define_method(cWindow, "root", RUBY_METHOD_FUNC(get_root), 0);
|
@@ -373,6 +400,9 @@ Init_reflex_window ()
|
|
373
400
|
rb_define_method(cWindow, "on_pointer_move", RUBY_METHOD_FUNC(on_pointer_move), 1);
|
374
401
|
rb_define_method(cWindow, "on_pointer_cancel", RUBY_METHOD_FUNC(on_pointer_cancel), 1);
|
375
402
|
rb_define_method(cWindow, "on_wheel", RUBY_METHOD_FUNC(on_wheel), 1);
|
403
|
+
|
404
|
+
cWindow.define_const("ORIENTATION_PORTRAIT", Reflex::Window::FLAG_PORTRAIT);
|
405
|
+
cWindow.define_const("ORIENTATION_LANDSCAPE", Reflex::Window::FLAG_LANDSCAPE);
|
376
406
|
}
|
377
407
|
|
378
408
|
|
data/ChangeLog.md
CHANGED
@@ -1,6 +1,17 @@
|
|
1
1
|
# reflex ChangeLog
|
2
2
|
|
3
3
|
|
4
|
+
## [v0.1.51] - 2023-07-30
|
5
|
+
|
6
|
+
- Fix typo
|
7
|
+
|
8
|
+
|
9
|
+
## [v0.1.50] - 2023-07-30
|
10
|
+
|
11
|
+
- Add Window::FLAG_PORTRAIT and Window::FLAG_LANDSCAPE
|
12
|
+
- Add Reflex.vibrate()
|
13
|
+
|
14
|
+
|
4
15
|
## [v0.1.49] - 2023-07-11
|
5
16
|
|
6
17
|
- Fix assertion fail if the view size is 0
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.51
|
@@ -0,0 +1,20 @@
|
|
1
|
+
#include "reflex/device.h"
|
2
|
+
#include "defs.h"
|
3
|
+
|
4
|
+
|
5
|
+
static
|
6
|
+
RUCY_DEF0(vibrate)
|
7
|
+
{
|
8
|
+
Reflex::vibrate();
|
9
|
+
return self;
|
10
|
+
}
|
11
|
+
RUCY_END
|
12
|
+
|
13
|
+
|
14
|
+
void
|
15
|
+
Init_reflex_device ()
|
16
|
+
{
|
17
|
+
Module mReflex = define_module("Reflex");
|
18
|
+
|
19
|
+
mReflex.define_singleton_method("vibrate", vibrate);
|
20
|
+
}
|
data/ext/reflex/native.cpp
CHANGED
@@ -36,6 +36,8 @@ void Init_reflex_screen ();
|
|
36
36
|
void Init_reflex_window ();
|
37
37
|
void Init_reflex_view ();
|
38
38
|
|
39
|
+
void Init_reflex_device ();
|
40
|
+
|
39
41
|
void Init_reflex_image_view ();
|
40
42
|
|
41
43
|
|
@@ -85,6 +87,8 @@ extern "C" void
|
|
85
87
|
Init_reflex_window();
|
86
88
|
Init_reflex_view();
|
87
89
|
|
90
|
+
Init_reflex_device();
|
91
|
+
|
88
92
|
Init_reflex_image_view();
|
89
93
|
|
90
94
|
RUCY_CATCH
|
data/ext/reflex/window.cpp
CHANGED
@@ -184,6 +184,33 @@ RUCY_DEF0(is_resizable)
|
|
184
184
|
}
|
185
185
|
RUCY_END
|
186
186
|
|
187
|
+
static const uint ORIENTATION_MASK =
|
188
|
+
Reflex::Window::FLAG_PORTRAIT | Reflex::Window::FLAG_LANDSCAPE;
|
189
|
+
|
190
|
+
static
|
191
|
+
RUCY_DEF1(set_orientations, orientations)
|
192
|
+
{
|
193
|
+
using namespace Reflex;
|
194
|
+
|
195
|
+
CHECK;
|
196
|
+
|
197
|
+
uint flags = to<uint>(orientations);
|
198
|
+
THIS->set_flag(
|
199
|
+
( flags & ORIENTATION_MASK) |
|
200
|
+
(THIS->flags() & ~ORIENTATION_MASK));
|
201
|
+
}
|
202
|
+
RUCY_END
|
203
|
+
|
204
|
+
static
|
205
|
+
RUCY_DEF0(get_orientations)
|
206
|
+
{
|
207
|
+
using namespace Reflex;
|
208
|
+
|
209
|
+
CHECK;
|
210
|
+
return value(THIS->flags() & ORIENTATION_MASK);
|
211
|
+
}
|
212
|
+
RUCY_END
|
213
|
+
|
187
214
|
static
|
188
215
|
RUCY_DEF0(get_screen)
|
189
216
|
{
|
@@ -384,12 +411,14 @@ Init_reflex_window ()
|
|
384
411
|
cWindow.define_method("title", get_title);
|
385
412
|
cWindow.define_method("frame=", set_frame);
|
386
413
|
cWindow.define_method("frame", get_frame);
|
387
|
-
cWindow.define_method("closable=",
|
388
|
-
cWindow.define_method("closable?",
|
389
|
-
cWindow.define_method("minimizable=",
|
390
|
-
cWindow.define_method("minimizable?",
|
391
|
-
cWindow.define_method("resizable=",
|
392
|
-
cWindow.define_method("resizable?",
|
414
|
+
cWindow.define_method("closable=", set_closable);
|
415
|
+
cWindow.define_method("closable?", is_closable);
|
416
|
+
cWindow.define_method("minimizable=", set_minimizable);
|
417
|
+
cWindow.define_method("minimizable?", is_minimizable);
|
418
|
+
cWindow.define_method("resizable=", set_resizable);
|
419
|
+
cWindow.define_method("resizable?", is_resizable);
|
420
|
+
cWindow.define_method("orientations=", set_orientations);
|
421
|
+
cWindow.define_method("orientations", get_orientations);
|
393
422
|
cWindow.define_method("hidden", hidden);
|
394
423
|
cWindow.define_method("screen", get_screen);
|
395
424
|
cWindow.define_method("root", get_root);
|
@@ -413,6 +442,9 @@ Init_reflex_window ()
|
|
413
442
|
cWindow.define_method("on_pointer_move", on_pointer_move);
|
414
443
|
cWindow.define_method("on_pointer_cancel", on_pointer_cancel);
|
415
444
|
cWindow.define_method("on_wheel", on_wheel);
|
445
|
+
|
446
|
+
cWindow.define_const("ORIENTATION_PORTRAIT", Reflex::Window::FLAG_PORTRAIT);
|
447
|
+
cWindow.define_const("ORIENTATION_LANDSCAPE", Reflex::Window::FLAG_LANDSCAPE);
|
416
448
|
}
|
417
449
|
|
418
450
|
|
data/include/reflex/window.h
CHANGED
@@ -39,7 +39,11 @@ namespace Reflex
|
|
39
39
|
|
40
40
|
FLAG_RESIZABLE = Xot::bit(2),
|
41
41
|
|
42
|
-
|
42
|
+
FLAG_PORTRAIT = Xot::bit(3),
|
43
|
+
|
44
|
+
FLAG_LANDSCAPE = Xot::bit(4),
|
45
|
+
|
46
|
+
FLAG_LAST = FLAG_LANDSCAPE
|
43
47
|
|
44
48
|
};// Flag
|
45
49
|
|
@@ -69,6 +73,10 @@ namespace Reflex
|
|
69
73
|
|
70
74
|
virtual Bounds frame () const;
|
71
75
|
|
76
|
+
virtual void set_flag (uint flags);
|
77
|
+
|
78
|
+
virtual uint flags () const;
|
79
|
+
|
72
80
|
virtual void add_flag (uint flags);
|
73
81
|
|
74
82
|
virtual void remove_flag (uint flags);
|
data/include/reflex.h
CHANGED
data/lib/reflex/window.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'forwardable'
|
2
2
|
require 'xot/setter'
|
3
|
+
require 'xot/bit_flag_accessor'
|
3
4
|
require 'xot/universal_accessor'
|
4
5
|
require 'xot/block_util'
|
5
6
|
require 'xot/inspectable'
|
@@ -19,6 +20,11 @@ module Reflex
|
|
19
20
|
|
20
21
|
extend Forwardable
|
21
22
|
|
23
|
+
bit_flag_accessor :orientations do
|
24
|
+
flag :portrait, ORIENTATION_PORTRAIT
|
25
|
+
flag :landscape, ORIENTATION_LANDSCAPE
|
26
|
+
end
|
27
|
+
|
22
28
|
def_delegators :root,
|
23
29
|
:add_child, :add,
|
24
30
|
:remove_child, :remove,
|
data/src/ios/device.mm
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
// -*- objc -*-
|
2
|
+
#include "reflex/device.h"
|
3
|
+
|
4
|
+
|
5
|
+
#import <UIKit/UIKit.h>
|
6
|
+
|
7
|
+
|
8
|
+
namespace Reflex
|
9
|
+
{
|
10
|
+
|
11
|
+
|
12
|
+
static UIImpactFeedbackGenerator* g_feedback_generator = nil;
|
13
|
+
|
14
|
+
static UIImpactFeedbackGenerator*
|
15
|
+
get_feedback_generator ()
|
16
|
+
{
|
17
|
+
if (g_feedback_generator == nil)
|
18
|
+
{
|
19
|
+
g_feedback_generator =
|
20
|
+
[[UIImpactFeedbackGenerator alloc]
|
21
|
+
initWithStyle: UIImpactFeedbackStyleLight];
|
22
|
+
}
|
23
|
+
return g_feedback_generator;
|
24
|
+
}
|
25
|
+
|
26
|
+
void
|
27
|
+
vibrate ()
|
28
|
+
{
|
29
|
+
//[get_feedback_generator() prepare];
|
30
|
+
[get_feedback_generator() impactOccurred];
|
31
|
+
}
|
32
|
+
|
33
|
+
|
34
|
+
}// Reflex
|
data/src/ios/view_controller.mm
CHANGED
@@ -440,6 +440,37 @@ ReflexViewController_get_show_fun ()
|
|
440
440
|
}
|
441
441
|
}
|
442
442
|
|
443
|
+
#if 0
|
444
|
+
- (BOOL)shouldAutorotate
|
445
|
+
{
|
446
|
+
Reflex::Window* win = self.window;
|
447
|
+
if (!win) return [super shouldAutorotate];
|
448
|
+
|
449
|
+
return win->has_flag(Reflex::Window::FLAG_RESIZABLE);
|
450
|
+
}
|
451
|
+
|
452
|
+
- (UIInterfaceOrientationMask)supportedInterfaceOrientations
|
453
|
+
{
|
454
|
+
Reflex::Window* win = self.window;
|
455
|
+
if (!win || !win->has_flag(Reflex::Window::FLAG_RESIZABLE))
|
456
|
+
return UIInterfaceOrientationMaskAll;
|
457
|
+
|
458
|
+
UIInterfaceOrientationMask mask = 0;
|
459
|
+
|
460
|
+
if (win->has_flag(Reflex::Window::FLAG_PORTRAIT))
|
461
|
+
{
|
462
|
+
mask |=
|
463
|
+
UIInterfaceOrientationMaskPortrait |
|
464
|
+
UIInterfaceOrientationMaskPortraitUpsideDown;
|
465
|
+
}
|
466
|
+
|
467
|
+
if (win->has_flag(Reflex::Window::FLAG_LANDSCAPE))
|
468
|
+
mask |= UIInterfaceOrientationMaskLandscape;
|
469
|
+
|
470
|
+
return mask;
|
471
|
+
}
|
472
|
+
#endif
|
473
|
+
|
443
474
|
- (void) titleDidChange
|
444
475
|
{
|
445
476
|
}
|
data/src/ios/window.mm
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
#include "window.h"
|
3
3
|
|
4
4
|
|
5
|
+
#import <UIKit/UIKit.h>
|
5
6
|
#include "reflex/exception.h"
|
6
7
|
#include "screen.h"
|
7
8
|
#import "view_controller.h"
|
@@ -52,7 +53,10 @@ namespace Reflex
|
|
52
53
|
uint
|
53
54
|
Window_default_flags ()
|
54
55
|
{
|
55
|
-
return
|
56
|
+
return
|
57
|
+
Window::FLAG_RESIZABLE |
|
58
|
+
Window::FLAG_PORTRAIT |
|
59
|
+
Window::FLAG_LANDSCAPE;
|
56
60
|
}
|
57
61
|
|
58
62
|
void
|
@@ -138,6 +142,96 @@ namespace Reflex
|
|
138
142
|
return Bounds(b.origin.x, b.origin.y, b.size.width, b.size.height);
|
139
143
|
}
|
140
144
|
|
145
|
+
static UIInterfaceOrientationMask g_orientation_mask =
|
146
|
+
UIInterfaceOrientationMaskAll;
|
147
|
+
|
148
|
+
static UIInterfaceOrientation
|
149
|
+
current_orientation (UIViewController* vc)
|
150
|
+
{
|
151
|
+
switch (UIDevice.currentDevice.orientation)
|
152
|
+
{
|
153
|
+
case UIDeviceOrientationPortrait: return UIInterfaceOrientationPortrait;
|
154
|
+
case UIDeviceOrientationLandscapeLeft: return UIInterfaceOrientationLandscapeLeft;
|
155
|
+
case UIDeviceOrientationLandscapeRight: return UIInterfaceOrientationLandscapeRight;
|
156
|
+
case UIDeviceOrientationPortraitUpsideDown: return UIInterfaceOrientationPortraitUpsideDown;
|
157
|
+
default: return vc.preferredInterfaceOrientationForPresentation;
|
158
|
+
}
|
159
|
+
}
|
160
|
+
|
161
|
+
static UIInterfaceOrientationMask
|
162
|
+
to_mask (UIInterfaceOrientation orientation)
|
163
|
+
{
|
164
|
+
switch (orientation)
|
165
|
+
{
|
166
|
+
case UIInterfaceOrientationPortrait: return UIInterfaceOrientationMaskPortrait;
|
167
|
+
case UIInterfaceOrientationLandscapeLeft: return UIInterfaceOrientationMaskLandscapeLeft;
|
168
|
+
case UIInterfaceOrientationLandscapeRight: return UIInterfaceOrientationMaskLandscapeRight;
|
169
|
+
case UIInterfaceOrientationPortraitUpsideDown: return UIInterfaceOrientationMaskPortraitUpsideDown;
|
170
|
+
default: return 0;
|
171
|
+
}
|
172
|
+
}
|
173
|
+
|
174
|
+
static UIInterfaceOrientation
|
175
|
+
get_proper_orientation (UIViewController* vc, UIInterfaceOrientationMask mask)
|
176
|
+
{
|
177
|
+
UIInterfaceOrientation current = current_orientation(vc);
|
178
|
+
if (to_mask(current) & mask) return current;
|
179
|
+
if (UIInterfaceOrientationMaskPortrait & mask) return UIInterfaceOrientationPortrait;
|
180
|
+
if (UIInterfaceOrientationMaskLandscapeLeft & mask) return UIInterfaceOrientationLandscapeLeft;
|
181
|
+
if (UIInterfaceOrientationMaskLandscapeRight & mask) return UIInterfaceOrientationLandscapeRight;
|
182
|
+
if (UIInterfaceOrientationMaskPortraitUpsideDown & mask) return UIInterfaceOrientationPortraitUpsideDown;
|
183
|
+
return UIInterfaceOrientationPortrait;
|
184
|
+
}
|
185
|
+
|
186
|
+
static void
|
187
|
+
update_orientation_mask (UIViewController* vc, UIInterfaceOrientationMask mask)
|
188
|
+
{
|
189
|
+
if (!vc) return;
|
190
|
+
|
191
|
+
if (@available(iOS 16.0, *))
|
192
|
+
[vc setNeedsUpdateOfSupportedInterfaceOrientations];
|
193
|
+
else
|
194
|
+
{
|
195
|
+
[UIDevice.currentDevice
|
196
|
+
setValue: [NSNumber numberWithInteger: get_proper_orientation(vc, mask)]
|
197
|
+
forKey: @"orientation"];
|
198
|
+
[UIViewController attemptRotationToDeviceOrientation];
|
199
|
+
}
|
200
|
+
}
|
201
|
+
|
202
|
+
void
|
203
|
+
Window_set_orientation_mask (UIViewController* vc, UIInterfaceOrientationMask mask)
|
204
|
+
{
|
205
|
+
if (mask == g_orientation_mask) return;
|
206
|
+
|
207
|
+
g_orientation_mask = mask;
|
208
|
+
update_orientation_mask(vc, mask);
|
209
|
+
}
|
210
|
+
|
211
|
+
UIInterfaceOrientationMask
|
212
|
+
Window_get_orientation_mask ()
|
213
|
+
{
|
214
|
+
return g_orientation_mask;
|
215
|
+
}
|
216
|
+
|
217
|
+
static UIInterfaceOrientationMask
|
218
|
+
flags_to_orientation_mask (uint flags)
|
219
|
+
{
|
220
|
+
UIInterfaceOrientationMask mask = 0;
|
221
|
+
|
222
|
+
if (flags & Window::FLAG_PORTRAIT)
|
223
|
+
{
|
224
|
+
mask |=
|
225
|
+
UIInterfaceOrientationMaskPortrait |
|
226
|
+
UIInterfaceOrientationPortraitUpsideDown;
|
227
|
+
}
|
228
|
+
|
229
|
+
if (flags & Window::FLAG_LANDSCAPE)
|
230
|
+
mask |= UIInterfaceOrientationMaskLandscape;
|
231
|
+
|
232
|
+
return mask != 0 ? mask : UIInterfaceOrientationMaskAll;
|
233
|
+
}
|
234
|
+
|
141
235
|
void
|
142
236
|
Window_set_flags (Window* window, uint flags)
|
143
237
|
{
|
@@ -147,8 +241,9 @@ namespace Reflex
|
|
147
241
|
if (Xot::has_flag(flags, Window::FLAG_MINIMIZABLE))
|
148
242
|
argument_error(__FILE__, __LINE__, "FLAG_MINIMIZABLE is not supported");
|
149
243
|
|
150
|
-
|
151
|
-
|
244
|
+
Window_set_orientation_mask(
|
245
|
+
get_vc(window),
|
246
|
+
flags_to_orientation_mask(flags & (Window::FLAG_PORTRAIT | Window::FLAG_LANDSCAPE)));
|
152
247
|
}
|
153
248
|
|
154
249
|
static UIScreen*
|
@@ -156,13 +251,9 @@ namespace Reflex
|
|
156
251
|
{
|
157
252
|
UIWindow* w = get_vc(&window).view.window;
|
158
253
|
if (@available(iOS 13.0, *))
|
159
|
-
{
|
160
254
|
return w.windowScene.screen;
|
161
|
-
}
|
162
255
|
else
|
163
|
-
{
|
164
256
|
return w.screen;
|
165
|
-
}
|
166
257
|
}
|
167
258
|
|
168
259
|
Screen
|
data/src/osx/device.mm
ADDED
data/src/osx/window.mm
CHANGED
@@ -142,6 +142,12 @@ namespace Reflex
|
|
142
142
|
void
|
143
143
|
Window_set_flags (Window* window, uint flags)
|
144
144
|
{
|
145
|
+
if (Xot::has_flag(flags, Window::FLAG_PORTRAIT))
|
146
|
+
argument_error(__FILE__, __LINE__, "FLAG_PORTRAIT is not supported");
|
147
|
+
|
148
|
+
if (Xot::has_flag(flags, Window::FLAG_LANDSCAPE))
|
149
|
+
argument_error(__FILE__, __LINE__, "FLAG_LANDSCAPE is not supported");
|
150
|
+
|
145
151
|
NativeWindow* native = get_native(window);
|
146
152
|
NSWindowStyleMask styleMask =
|
147
153
|
Window_make_style_mask(window->self->flags, native.styleMask);
|
data/src/window.cpp
CHANGED
@@ -546,6 +546,20 @@ namespace Reflex
|
|
546
546
|
return Window_get_frame(*this);
|
547
547
|
}
|
548
548
|
|
549
|
+
void
|
550
|
+
Window::set_flag (uint flags)
|
551
|
+
{
|
552
|
+
Window_set_flags(this, flags);
|
553
|
+
|
554
|
+
self->flags = flags;
|
555
|
+
}
|
556
|
+
|
557
|
+
uint
|
558
|
+
Window::flags () const
|
559
|
+
{
|
560
|
+
return self->flags;
|
561
|
+
}
|
562
|
+
|
549
563
|
void
|
550
564
|
Window::add_flag (uint flags)
|
551
565
|
{
|
data/test/test_device.rb
ADDED
data/test/test_window.rb
CHANGED
@@ -121,6 +121,18 @@ class TestWindow < Test::Unit::TestCase
|
|
121
121
|
assert_true w.resizable?
|
122
122
|
end
|
123
123
|
|
124
|
+
def test_orientations()
|
125
|
+
w = win
|
126
|
+
assert_equal [], w.orientations
|
127
|
+
|
128
|
+
assert_raise(ArgumentError) {w.orientations = [:portrait]}.then do |e|
|
129
|
+
assert_match /portrait.*not supported/i, e.message
|
130
|
+
end
|
131
|
+
assert_raise(ArgumentError) {w.orientations = [:landscape]}.then do |e|
|
132
|
+
assert_match /landscape.*not supported/i, e.message
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
124
136
|
def test_screen()
|
125
137
|
assert_not_nil win.screen
|
126
138
|
end
|
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.51
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- xordog
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-07-
|
11
|
+
date: 2023-07-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: xot
|
@@ -103,6 +103,7 @@ extra_rdoc_files:
|
|
103
103
|
- ".doc/ext/reflex/application.cpp"
|
104
104
|
- ".doc/ext/reflex/capture_event.cpp"
|
105
105
|
- ".doc/ext/reflex/contact_event.cpp"
|
106
|
+
- ".doc/ext/reflex/device.cpp"
|
106
107
|
- ".doc/ext/reflex/draw_event.cpp"
|
107
108
|
- ".doc/ext/reflex/ellipse_shape.cpp"
|
108
109
|
- ".doc/ext/reflex/event.cpp"
|
@@ -136,6 +137,7 @@ files:
|
|
136
137
|
- ".doc/ext/reflex/application.cpp"
|
137
138
|
- ".doc/ext/reflex/capture_event.cpp"
|
138
139
|
- ".doc/ext/reflex/contact_event.cpp"
|
140
|
+
- ".doc/ext/reflex/device.cpp"
|
139
141
|
- ".doc/ext/reflex/draw_event.cpp"
|
140
142
|
- ".doc/ext/reflex/ellipse_shape.cpp"
|
141
143
|
- ".doc/ext/reflex/event.cpp"
|
@@ -178,6 +180,7 @@ files:
|
|
178
180
|
- ext/reflex/capture_event.cpp
|
179
181
|
- ext/reflex/contact_event.cpp
|
180
182
|
- ext/reflex/defs.h
|
183
|
+
- ext/reflex/device.cpp
|
181
184
|
- ext/reflex/draw_event.cpp
|
182
185
|
- ext/reflex/ellipse_shape.cpp
|
183
186
|
- ext/reflex/event.cpp
|
@@ -213,6 +216,7 @@ files:
|
|
213
216
|
- include/reflex/application.h
|
214
217
|
- include/reflex/debug.h
|
215
218
|
- include/reflex/defs.h
|
219
|
+
- include/reflex/device.h
|
216
220
|
- include/reflex/event.h
|
217
221
|
- include/reflex/exception.h
|
218
222
|
- include/reflex/filter.h
|
@@ -352,6 +356,7 @@ files:
|
|
352
356
|
- src/ios/app_delegate.mm
|
353
357
|
- src/ios/application.h
|
354
358
|
- src/ios/application.mm
|
359
|
+
- src/ios/device.mm
|
355
360
|
- src/ios/event.h
|
356
361
|
- src/ios/event.mm
|
357
362
|
- src/ios/reflex.mm
|
@@ -365,6 +370,7 @@ files:
|
|
365
370
|
- src/osx/app_delegate.mm
|
366
371
|
- src/osx/application.h
|
367
372
|
- src/osx/application.mm
|
373
|
+
- src/osx/device.mm
|
368
374
|
- src/osx/event.h
|
369
375
|
- src/osx/event.mm
|
370
376
|
- src/osx/native_window.h
|
@@ -403,6 +409,7 @@ files:
|
|
403
409
|
- test/test_application.rb
|
404
410
|
- test/test_capture_event.rb
|
405
411
|
- test/test_contact_event.rb
|
412
|
+
- test/test_device.rb
|
406
413
|
- test/test_draw_event.rb
|
407
414
|
- test/test_event.rb
|
408
415
|
- test/test_focus_event.rb
|
@@ -453,6 +460,7 @@ test_files:
|
|
453
460
|
- test/test_application.rb
|
454
461
|
- test/test_capture_event.rb
|
455
462
|
- test/test_contact_event.rb
|
463
|
+
- test/test_device.rb
|
456
464
|
- test/test_draw_event.rb
|
457
465
|
- test/test_event.rb
|
458
466
|
- test/test_focus_event.rb
|