reflexion 0.2.1 → 0.3.1
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/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
|