reflexion 0.2.1 → 0.3.1
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/.doc/ext/reflex/application.cpp +1 -1
- data/.doc/ext/reflex/capture_event.cpp +1 -1
- data/.doc/ext/reflex/contact_event.cpp +1 -1
- data/.doc/ext/reflex/draw_event.cpp +1 -1
- data/.doc/ext/reflex/ellipse_shape.cpp +1 -1
- data/.doc/ext/reflex/event.cpp +1 -1
- data/.doc/ext/reflex/filter.cpp +1 -1
- data/.doc/ext/reflex/focus_event.cpp +1 -1
- data/.doc/ext/reflex/frame_event.cpp +1 -1
- data/.doc/ext/reflex/image_view.cpp +1 -1
- data/.doc/ext/reflex/key_event.cpp +74 -69
- data/.doc/ext/reflex/line_shape.cpp +1 -1
- data/.doc/ext/reflex/motion_event.cpp +1 -1
- data/.doc/ext/reflex/pointer.cpp +7 -16
- data/.doc/ext/reflex/pointer_event.cpp +1 -1
- data/.doc/ext/reflex/polygon_shape.cpp +1 -1
- data/.doc/ext/reflex/rect_shape.cpp +1 -1
- data/.doc/ext/reflex/reflex.cpp +58 -50
- data/.doc/ext/reflex/screen.cpp +1 -1
- data/.doc/ext/reflex/scroll_event.cpp +1 -1
- data/.doc/ext/reflex/selector.cpp +2 -2
- data/.doc/ext/reflex/shape.cpp +1 -1
- data/.doc/ext/reflex/style.cpp +1 -1
- data/.doc/ext/reflex/style_length.cpp +5 -3
- data/.doc/ext/reflex/timer.cpp +1 -1
- data/.doc/ext/reflex/timer_event.cpp +1 -1
- data/.doc/ext/reflex/update_event.cpp +1 -1
- data/.doc/ext/reflex/view.cpp +17 -9
- data/.doc/ext/reflex/wheel_event.cpp +1 -1
- data/.doc/ext/reflex/window.cpp +1 -1
- data/.github/workflows/release-gem.yml +1 -1
- data/.github/workflows/test.yml +3 -0
- data/ChangeLog.md +17 -0
- data/Gemfile.lock +1 -1
- data/LICENSE +1 -1
- data/Rakefile +1 -2
- data/VERSION +1 -1
- data/ext/reflex/application.cpp +1 -1
- data/ext/reflex/capture_event.cpp +1 -1
- data/ext/reflex/contact_event.cpp +1 -1
- data/ext/reflex/defs.h +2 -0
- data/ext/reflex/draw_event.cpp +1 -1
- data/ext/reflex/ellipse_shape.cpp +1 -1
- data/ext/reflex/event.cpp +1 -1
- data/ext/reflex/extconf.rb +4 -4
- data/ext/reflex/filter.cpp +1 -1
- data/ext/reflex/focus_event.cpp +1 -1
- data/ext/reflex/frame_event.cpp +1 -1
- data/ext/reflex/image_view.cpp +1 -1
- data/ext/reflex/key_event.cpp +74 -69
- data/ext/reflex/line_shape.cpp +1 -1
- data/ext/reflex/motion_event.cpp +1 -1
- data/ext/reflex/pointer.cpp +7 -17
- data/ext/reflex/pointer_event.cpp +1 -1
- data/ext/reflex/polygon_shape.cpp +1 -1
- data/ext/reflex/rect_shape.cpp +1 -1
- data/ext/reflex/reflex.cpp +58 -50
- data/ext/reflex/screen.cpp +1 -1
- data/ext/reflex/scroll_event.cpp +1 -1
- data/ext/reflex/selector.cpp +2 -2
- data/ext/reflex/shape.cpp +1 -1
- data/ext/reflex/style.cpp +1 -1
- data/ext/reflex/style_length.cpp +5 -3
- data/ext/reflex/timer.cpp +1 -1
- data/ext/reflex/timer_event.cpp +1 -1
- data/ext/reflex/update_event.cpp +1 -1
- data/ext/reflex/view.cpp +18 -9
- data/ext/reflex/wheel_event.cpp +1 -1
- data/ext/reflex/window.cpp +1 -1
- data/include/reflex/defs.h +204 -187
- data/include/reflex/pointer.h +3 -5
- data/include/reflex/reflex.h +1 -0
- data/include/reflex/ruby/application.h +2 -2
- data/include/reflex/ruby/event.h +26 -26
- data/include/reflex/ruby/exception.h +3 -3
- data/include/reflex/ruby/filter.h +2 -2
- data/include/reflex/ruby/image_view.h +2 -2
- data/include/reflex/ruby/pointer.h +2 -2
- data/include/reflex/ruby/reflex.h +1 -1
- data/include/reflex/ruby/screen.h +2 -2
- data/include/reflex/ruby/selector.h +2 -2
- data/include/reflex/ruby/shape.h +10 -10
- data/include/reflex/ruby/style.h +4 -4
- data/include/reflex/ruby/timer.h +3 -3
- data/include/reflex/ruby/view.h +2 -2
- data/include/reflex/ruby/window.h +2 -2
- data/include/reflex/view.h +3 -1
- data/lib/reflex/extension.rb +4 -0
- data/lib/reflex/pointer.rb +1 -1
- data/lib/reflex/pointer_event.rb +2 -2
- data/reflex.gemspec +4 -4
- data/src/body.cpp +12 -6
- data/src/event.cpp +17 -31
- data/src/event.h +3 -3
- data/src/filter.cpp +3 -1
- data/src/ios/event.mm +20 -27
- data/src/osx/application.mm +6 -5
- data/src/osx/event.mm +1 -2
- data/src/pointer.cpp +12 -32
- data/src/pointer.h +0 -2
- data/src/selector.cpp +3 -1
- data/src/shape.cpp +5 -3
- data/src/style.cpp +14 -8
- data/src/view.cpp +47 -24
- data/src/win32/application.cpp +48 -35
- data/src/win32/device.cpp +18 -0
- data/src/win32/event.cpp +219 -0
- data/src/win32/event.h +50 -0
- data/src/win32/opengl.cpp +54 -27
- data/src/win32/opengl.h +15 -13
- data/src/win32/reflex.cpp +10 -16
- data/src/win32/screen.cpp +61 -0
- data/src/win32/screen.h +21 -0
- data/src/win32/window.cpp +445 -240
- data/src/window.cpp +28 -30
- data/src/window.h +3 -12
- data/test/test_pointer.rb +8 -10
- data/test/test_pointer_event.rb +8 -9
- data/test/test_window.rb +24 -21
- metadata +15 -12
- data/src/win32/defs.cpp +0 -303
- data/src/win32/defs.h +0 -34
data/src/window.cpp
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
#include <assert.h>
|
|
5
|
+
#include <algorithm>
|
|
5
6
|
#include <set>
|
|
6
7
|
#include "reflex/exception.h"
|
|
7
8
|
#include "view.h"
|
|
@@ -18,9 +19,7 @@ namespace Reflex
|
|
|
18
19
|
|
|
19
20
|
using ExtractedPointerIDSet = std::set<Pointer::ID>;
|
|
20
21
|
|
|
21
|
-
using
|
|
22
|
-
|
|
23
|
-
using TargetPointerMap = Window::Data::TargetPointerMap;
|
|
22
|
+
using CaptureTargetIDList = Window::Data::CaptureTargetIDList;
|
|
24
23
|
|
|
25
24
|
|
|
26
25
|
Window::Data::Data ()
|
|
@@ -34,16 +33,12 @@ namespace Reflex
|
|
|
34
33
|
}
|
|
35
34
|
|
|
36
35
|
|
|
37
|
-
Window::Data::PointerData::PointerData (uint view_index)
|
|
38
|
-
: view_index(view_index)
|
|
39
|
-
{
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
|
|
43
36
|
void
|
|
44
37
|
Window_set_focus (Window* window, View* view)
|
|
45
38
|
{
|
|
46
|
-
if (!window
|
|
39
|
+
if (!window)
|
|
40
|
+
argument_error(__FILE__, __LINE__);
|
|
41
|
+
if (!view)
|
|
47
42
|
argument_error(__FILE__, __LINE__);
|
|
48
43
|
|
|
49
44
|
View* current = window->self->focus.get();
|
|
@@ -88,8 +83,7 @@ namespace Reflex
|
|
|
88
83
|
}
|
|
89
84
|
|
|
90
85
|
void
|
|
91
|
-
Window_register_capture (
|
|
92
|
-
Window* window, View* view, Pointer::ID target, uint view_index)
|
|
86
|
+
Window_register_capture (Window* window, View* view, Pointer::ID target)
|
|
93
87
|
{
|
|
94
88
|
if (!view)
|
|
95
89
|
argument_error(__FILE__, __LINE__);
|
|
@@ -100,10 +94,12 @@ namespace Reflex
|
|
|
100
94
|
if (target < 0) return;
|
|
101
95
|
|
|
102
96
|
auto& targets = window->self->captures[view];
|
|
103
|
-
if (targets.
|
|
97
|
+
if (std::find(targets.begin(), targets.end(), target) != targets.end())
|
|
104
98
|
return;
|
|
105
99
|
|
|
106
|
-
targets.insert(
|
|
100
|
+
targets.insert(
|
|
101
|
+
target == CAPTURE_ALL ? targets.begin() : targets.end(),
|
|
102
|
+
target);
|
|
107
103
|
}
|
|
108
104
|
|
|
109
105
|
void
|
|
@@ -116,7 +112,7 @@ namespace Reflex
|
|
|
116
112
|
if (captures_it == window->self->captures.end()) return;
|
|
117
113
|
|
|
118
114
|
auto& targets = captures_it->second;
|
|
119
|
-
auto targets_it = targets.
|
|
115
|
+
auto targets_it = std::find(targets.begin(), targets.end(), target);
|
|
120
116
|
if (targets_it == targets.end()) return;
|
|
121
117
|
|
|
122
118
|
targets.erase(targets_it);
|
|
@@ -156,7 +152,9 @@ namespace Reflex
|
|
|
156
152
|
void
|
|
157
153
|
Window_call_draw_event (Window* window, DrawEvent* event)
|
|
158
154
|
{
|
|
159
|
-
if (!window
|
|
155
|
+
if (!window)
|
|
156
|
+
argument_error(__FILE__, __LINE__);
|
|
157
|
+
if (!event)
|
|
160
158
|
argument_error(__FILE__, __LINE__);
|
|
161
159
|
|
|
162
160
|
Painter* painter = window->painter();
|
|
@@ -181,12 +179,12 @@ namespace Reflex
|
|
|
181
179
|
}
|
|
182
180
|
|
|
183
181
|
static bool
|
|
184
|
-
|
|
185
|
-
const View* view, const
|
|
182
|
+
is_capturing_all (
|
|
183
|
+
const View* view, const CaptureTargetIDList& targets, View::Capture type)
|
|
186
184
|
{
|
|
187
185
|
return
|
|
188
186
|
!targets.empty() &&
|
|
189
|
-
targets
|
|
187
|
+
targets[0] == CAPTURE_ALL &&
|
|
190
188
|
(view->capture() & type) == type;
|
|
191
189
|
}
|
|
192
190
|
|
|
@@ -209,8 +207,12 @@ namespace Reflex
|
|
|
209
207
|
|
|
210
208
|
for (auto& [view, targets] : window->self->captures)
|
|
211
209
|
{
|
|
212
|
-
if (
|
|
210
|
+
if (
|
|
211
|
+
!view->window() ||
|
|
212
|
+
!is_capturing_all(view.get(), targets, View::CAPTURE_KEY))
|
|
213
|
+
{
|
|
213
214
|
continue;
|
|
215
|
+
}
|
|
214
216
|
|
|
215
217
|
KeyEvent e = event->dup();
|
|
216
218
|
KeyEvent_set_captured(&e, true);
|
|
@@ -334,7 +336,7 @@ namespace Reflex
|
|
|
334
336
|
result->clear();
|
|
335
337
|
for (const auto& [view, targets] : window->self->captures)
|
|
336
338
|
{
|
|
337
|
-
if (
|
|
339
|
+
if (is_capturing_all(view.get(), targets, View::CAPTURE_POINTER))
|
|
338
340
|
result->emplace_back(view);
|
|
339
341
|
}
|
|
340
342
|
}
|
|
@@ -360,28 +362,24 @@ namespace Reflex
|
|
|
360
362
|
static void
|
|
361
363
|
extract_pointer (
|
|
362
364
|
PointerEvent* event, ExtractedPointerIDSet* extracteds,
|
|
363
|
-
const Pointer& pointer
|
|
365
|
+
const Pointer& pointer)
|
|
364
366
|
{
|
|
365
|
-
PointerEvent_add_pointer(event, pointer
|
|
366
|
-
{
|
|
367
|
-
Pointer_set_view_index(p, view_index);
|
|
368
|
-
});
|
|
369
|
-
|
|
367
|
+
PointerEvent_add_pointer(event, pointer);
|
|
370
368
|
extracteds->insert(pointer.id());
|
|
371
369
|
}
|
|
372
370
|
|
|
373
371
|
static void
|
|
374
372
|
extract_targeted_pointers (
|
|
375
373
|
PointerEvent* event, ExtractedPointerIDSet* extracteds,
|
|
376
|
-
const
|
|
374
|
+
const CaptureTargetIDList& targets, const PointerMap& pointers)
|
|
377
375
|
{
|
|
378
376
|
assert(event->empty());
|
|
379
377
|
|
|
380
|
-
for (auto
|
|
378
|
+
for (auto pointer_id : targets)
|
|
381
379
|
{
|
|
382
380
|
auto it = pointers.find(pointer_id);
|
|
383
381
|
if (it != pointers.end())
|
|
384
|
-
extract_pointer(event, extracteds, it->second
|
|
382
|
+
extract_pointer(event, extracteds, it->second);
|
|
385
383
|
}
|
|
386
384
|
}
|
|
387
385
|
|
data/src/window.h
CHANGED
|
@@ -28,18 +28,9 @@ namespace Reflex
|
|
|
28
28
|
struct Window::Data
|
|
29
29
|
{
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
{
|
|
33
|
-
|
|
34
|
-
uint view_index;
|
|
35
|
-
|
|
36
|
-
PointerData (uint view_index);
|
|
31
|
+
typedef std::vector<Pointer::ID> CaptureTargetIDList;
|
|
37
32
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
typedef std::map<Pointer::ID, PointerData> TargetPointerMap;
|
|
41
|
-
|
|
42
|
-
typedef std::map<View::Ref, TargetPointerMap> CaptureMap;
|
|
33
|
+
typedef std::map<View::Ref, CaptureTargetIDList> CaptureMap;
|
|
43
34
|
|
|
44
35
|
int hide_count = 1;
|
|
45
36
|
|
|
@@ -112,7 +103,7 @@ namespace Reflex
|
|
|
112
103
|
void Window_set_focus (Window* window, View* view);
|
|
113
104
|
|
|
114
105
|
void Window_register_capture (
|
|
115
|
-
Window* window, View* view, Pointer::ID target
|
|
106
|
+
Window* window, View* view, Pointer::ID target);
|
|
116
107
|
|
|
117
108
|
void Window_unregister_capture (
|
|
118
109
|
Window* window, View* view, Pointer::ID target);
|
data/test/test_pointer.rb
CHANGED
|
@@ -23,11 +23,11 @@ class TestPointer < Test::Unit::TestCase
|
|
|
23
23
|
|
|
24
24
|
def pointer(
|
|
25
25
|
id: 0, types: TYPE_NONE, action: ACTION_NONE,
|
|
26
|
-
position: 0, modifiers: 0,
|
|
26
|
+
position: 0, modifiers: 0, click_count: 0, drag: false,
|
|
27
27
|
time: 0)
|
|
28
28
|
|
|
29
29
|
Reflex::Pointer.new(
|
|
30
|
-
id, types, action, position, modifiers,
|
|
30
|
+
id, types, action, position, modifiers, click_count, drag, time)
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
def test_initialize()
|
|
@@ -35,8 +35,8 @@ class TestPointer < Test::Unit::TestCase
|
|
|
35
35
|
|
|
36
36
|
p = pointer(
|
|
37
37
|
id: 1, types: TOUCH, action: UP,
|
|
38
|
-
position: [2, 3], modifiers: 4,
|
|
39
|
-
time:
|
|
38
|
+
position: [2, 3], modifiers: 4, click_count: 5, drag: true,
|
|
39
|
+
time: 6)
|
|
40
40
|
|
|
41
41
|
assert_equal 1, p.id
|
|
42
42
|
assert_equal [:touch], p.types
|
|
@@ -45,10 +45,9 @@ class TestPointer < Test::Unit::TestCase
|
|
|
45
45
|
assert_equal 2, p.x
|
|
46
46
|
assert_equal 3, p.y
|
|
47
47
|
assert_equal 4, p.modifiers
|
|
48
|
-
assert_equal true, p.drag?
|
|
49
48
|
assert_equal 5, p.click_count
|
|
50
|
-
assert_equal
|
|
51
|
-
assert_equal
|
|
49
|
+
assert_equal true, p.drag?
|
|
50
|
+
assert_equal 6, p.time
|
|
52
51
|
assert_nil p.prev
|
|
53
52
|
assert_nil p.down
|
|
54
53
|
end
|
|
@@ -147,10 +146,9 @@ class TestPointer < Test::Unit::TestCase
|
|
|
147
146
|
assert_not_equal pointer, pointer(action: Reflex::Pointer::UP)
|
|
148
147
|
assert_not_equal pointer, pointer(position: 2)
|
|
149
148
|
assert_not_equal pointer, pointer(modifiers: 3)
|
|
150
|
-
assert_not_equal pointer, pointer(drag: true)
|
|
151
149
|
assert_not_equal pointer, pointer(click_count: 4)
|
|
152
|
-
assert_not_equal pointer, pointer(
|
|
153
|
-
assert_not_equal pointer, pointer(time:
|
|
150
|
+
assert_not_equal pointer, pointer(drag: true)
|
|
151
|
+
assert_not_equal pointer, pointer(time: 5)
|
|
154
152
|
end
|
|
155
153
|
|
|
156
154
|
end# TestPointer
|
data/test/test_pointer_event.rb
CHANGED
|
@@ -17,11 +17,11 @@ class TestPointerEvent < Test::Unit::TestCase
|
|
|
17
17
|
|
|
18
18
|
def pointer(
|
|
19
19
|
id: 0, type: TYPE_NONE, action: ACTION_NONE,
|
|
20
|
-
position: 0, modifiers: 0,
|
|
20
|
+
position: 0, modifiers: 0, click_count: 0, drag: false,
|
|
21
21
|
time: 0)
|
|
22
22
|
|
|
23
23
|
Reflex::Pointer.new(
|
|
24
|
-
id, type, action, position, modifiers,
|
|
24
|
+
id, type, action, position, modifiers, click_count, drag, time)
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
def test_initialize()
|
|
@@ -31,12 +31,12 @@ class TestPointerEvent < Test::Unit::TestCase
|
|
|
31
31
|
|
|
32
32
|
p1 = pointer(
|
|
33
33
|
id: 1, type: TOUCH, action: DOWN,
|
|
34
|
-
position: [2, 3], modifiers: 4, drag: true, click_count: 5,
|
|
35
|
-
time:
|
|
34
|
+
position: [2, 3], modifiers: 4, drag: true, click_count: 5,
|
|
35
|
+
time: 6)
|
|
36
36
|
p2 = pointer(
|
|
37
37
|
id: 10, type: PEN, action: UP,
|
|
38
|
-
position: [20, 30], modifiers: 40, drag: false, click_count: 50,
|
|
39
|
-
time:
|
|
38
|
+
position: [20, 30], modifiers: 40, drag: false, click_count: 50,
|
|
39
|
+
time: 60)
|
|
40
40
|
e = event p1, p2
|
|
41
41
|
|
|
42
42
|
assert_equal [p1, p2], e.pointers.to_a
|
|
@@ -51,10 +51,9 @@ class TestPointerEvent < Test::Unit::TestCase
|
|
|
51
51
|
assert_equal 2, e.x
|
|
52
52
|
assert_equal 3, e.y
|
|
53
53
|
assert_equal 4, e.modifiers
|
|
54
|
-
assert_equal true, e.drag?
|
|
55
54
|
assert_equal 5, e.click_count
|
|
56
|
-
assert_equal
|
|
57
|
-
assert_equal
|
|
55
|
+
assert_equal true, e.drag?
|
|
56
|
+
assert_equal 6, e.time
|
|
58
57
|
end
|
|
59
58
|
|
|
60
59
|
def test_dup()
|
data/test/test_window.rb
CHANGED
|
@@ -47,27 +47,30 @@ class TestWindow < Test::Unit::TestCase
|
|
|
47
47
|
b = w.frame.dup
|
|
48
48
|
assert_equal b, w.frame
|
|
49
49
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
w.frame =
|
|
54
|
-
w.frame = [1
|
|
55
|
-
w.frame = [1, 2
|
|
56
|
-
w.frame = [1, 2, 3
|
|
57
|
-
w.frame = [1, 2, 3,
|
|
58
|
-
w.frame = [1, 2, 3, 4
|
|
59
|
-
|
|
60
|
-
w.frame =
|
|
61
|
-
w.frame = [
|
|
62
|
-
|
|
63
|
-
w.frame =
|
|
64
|
-
w.frame = [point(1
|
|
65
|
-
w.frame =
|
|
66
|
-
w.frame = [point(1, 2
|
|
67
|
-
w.frame = [point(1, 2
|
|
68
|
-
|
|
69
|
-
w.frame =
|
|
70
|
-
w.frame = [
|
|
50
|
+
min_width = w.frame.width
|
|
51
|
+
minw = -> value {[min_width, value].max}
|
|
52
|
+
|
|
53
|
+
w.frame = 1; assert_equal [0, 0, minw[1], 1], w.frame.to_a
|
|
54
|
+
w.frame = [1]; assert_equal [0, 0, minw[1], 1], w.frame.to_a
|
|
55
|
+
w.frame = [1, 2]; assert_equal [0, 0, minw[1], 2], w.frame.to_a
|
|
56
|
+
w.frame = [1, 2, 3]; assert_equal [0, 0, minw[1], 2], w.frame.to_a
|
|
57
|
+
w.frame = [1, 2, 3]; assert_equal [0, 0, 0, minw[1], 2, 0], w.frame.to_a(3)
|
|
58
|
+
w.frame = [1, 2, 3, 4]; assert_equal [1, 2, minw[3], 4], w.frame.to_a
|
|
59
|
+
w.frame = [1, 2, 3, 4]; assert_equal [1, 2, 0, minw[3], 4, 0], w.frame.to_a(3)
|
|
60
|
+
w.frame = [1, 2, 3, 4, 5, 6]; assert_equal [1, 2, minw[4], 5], w.frame.to_a
|
|
61
|
+
w.frame = [1, 2, 3, 4, 5, 6]; assert_equal [1, 2, 0, minw[4], 5, 0], w.frame.to_a(3)
|
|
62
|
+
|
|
63
|
+
w.frame = point(1); assert_equal [0, 0, minw[1], 1], w.frame.to_a
|
|
64
|
+
w.frame = [point(1)]; assert_equal [0, 0, minw[1], 1], w.frame.to_a
|
|
65
|
+
w.frame = point(1, 2); assert_equal [0, 0, minw[1], 2], w.frame.to_a
|
|
66
|
+
w.frame = [point(1, 2)]; assert_equal [0, 0, minw[1], 2], w.frame.to_a
|
|
67
|
+
w.frame = [point(1, 2), point(3, 4)]; assert_equal [1, 2, minw[3], 4], w.frame.to_a
|
|
68
|
+
w.frame = [point(1, 2), point(3, 4)]; assert_equal [1, 2, 0, minw[3], 4, 0], w.frame.to_a(3)
|
|
69
|
+
w.frame = [point(1, 2, 3), point(4, 5, 6)]; assert_equal [1, 2, minw[4], 5], w.frame.to_a
|
|
70
|
+
w.frame = [point(1, 2, 3), point(4, 5, 6)]; assert_equal [1, 2, 0, minw[4], 5, 0], w.frame.to_a(3)
|
|
71
|
+
|
|
72
|
+
w.frame = bounds(1, 2, 3, 4, 5, 6); assert_equal [1, 2, 0, minw[4], 5, 0], w.frame.to_a(3)
|
|
73
|
+
w.frame = [bounds(1, 2, 3, 4, 5, 6)]; assert_equal [1, 2, 0, minw[4], 5, 0], w.frame.to_a(3)
|
|
71
74
|
end
|
|
72
75
|
|
|
73
76
|
def test_closable?()
|
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.
|
|
4
|
+
version: 0.3.1
|
|
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: 2025-01-12 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.
|
|
19
|
+
version: 0.3.1
|
|
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.
|
|
26
|
+
version: 0.3.1
|
|
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.
|
|
33
|
+
version: 0.3.1
|
|
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.
|
|
40
|
+
version: 0.3.1
|
|
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.
|
|
47
|
+
version: 0.3.1
|
|
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.
|
|
54
|
+
version: 0.3.1
|
|
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.
|
|
61
|
+
version: 0.3.1
|
|
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.
|
|
68
|
+
version: 0.3.1
|
|
69
69
|
description: This library helps you to develop interactive graphical user interface.
|
|
70
70
|
email: xordog@gmail.com
|
|
71
71
|
executables: []
|
|
@@ -369,11 +369,14 @@ files:
|
|
|
369
369
|
- src/view.cpp
|
|
370
370
|
- src/view.h
|
|
371
371
|
- src/win32/application.cpp
|
|
372
|
-
- src/win32/
|
|
373
|
-
- src/win32/
|
|
372
|
+
- src/win32/device.cpp
|
|
373
|
+
- src/win32/event.cpp
|
|
374
|
+
- src/win32/event.h
|
|
374
375
|
- src/win32/opengl.cpp
|
|
375
376
|
- src/win32/opengl.h
|
|
376
377
|
- src/win32/reflex.cpp
|
|
378
|
+
- src/win32/screen.cpp
|
|
379
|
+
- src/win32/screen.h
|
|
377
380
|
- src/win32/window.cpp
|
|
378
381
|
- src/window.cpp
|
|
379
382
|
- src/window.h
|