reflexion 0.1.23 → 0.1.24

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.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/.doc/ext/reflex/capture_event.cpp +6 -5
  3. data/.doc/ext/reflex/contact_event.cpp +14 -12
  4. data/.doc/ext/reflex/draw_event.cpp +10 -8
  5. data/.doc/ext/reflex/event.cpp +2 -10
  6. data/.doc/ext/reflex/focus_event.cpp +14 -13
  7. data/.doc/ext/reflex/frame_event.cpp +17 -17
  8. data/.doc/ext/reflex/key_event.cpp +20 -19
  9. data/.doc/ext/reflex/pointer_event.cpp +1 -1
  10. data/.doc/ext/reflex/scroll_event.cpp +14 -17
  11. data/.doc/ext/reflex/timer.cpp +9 -1
  12. data/.doc/ext/reflex/timer_event.cpp +4 -13
  13. data/.doc/ext/reflex/update_event.cpp +6 -5
  14. data/.doc/ext/reflex/wheel_event.cpp +39 -22
  15. data/VERSION +1 -1
  16. data/ext/reflex/capture_event.cpp +6 -5
  17. data/ext/reflex/contact_event.cpp +16 -14
  18. data/ext/reflex/draw_event.cpp +9 -7
  19. data/ext/reflex/event.cpp +2 -11
  20. data/ext/reflex/focus_event.cpp +14 -13
  21. data/ext/reflex/frame_event.cpp +16 -16
  22. data/ext/reflex/key_event.cpp +20 -19
  23. data/ext/reflex/pointer_event.cpp +1 -1
  24. data/ext/reflex/scroll_event.cpp +15 -18
  25. data/ext/reflex/timer.cpp +15 -6
  26. data/ext/reflex/timer_event.cpp +9 -19
  27. data/ext/reflex/update_event.cpp +6 -5
  28. data/ext/reflex/wheel_event.cpp +40 -21
  29. data/include/reflex/event.h +224 -115
  30. data/include/reflex/shape.h +2 -2
  31. data/lib/reflex/contact_event.rb +7 -7
  32. data/lib/reflex/focus_event.rb +8 -8
  33. data/lib/reflex/key_event.rb +8 -8
  34. data/lib/reflex/pointer.rb +3 -3
  35. data/lib/reflex/timer_event.rb +2 -1
  36. data/lib/reflex/wheel_event.rb +1 -9
  37. data/lib/reflex/window.rb +1 -1
  38. data/reflex.gemspec +4 -4
  39. data/src/event.cpp +630 -76
  40. data/src/event.h +15 -0
  41. data/src/image_view.cpp +2 -2
  42. data/src/ios/view_controller.mm +1 -1
  43. data/src/osx/event.h +1 -1
  44. data/src/osx/event.mm +9 -9
  45. data/src/osx/native_window.mm +1 -1
  46. data/src/shape.cpp +11 -13
  47. data/src/shape.h +1 -1
  48. data/src/view.cpp +137 -89
  49. data/src/view.h +5 -6
  50. data/src/window.cpp +44 -38
  51. data/src/world.cpp +6 -4
  52. data/test/test_capture_event.rb +16 -0
  53. data/test/test_contact_event.rb +40 -0
  54. data/test/test_draw_event.rb +35 -0
  55. data/test/test_event.rb +20 -6
  56. data/test/test_focus_event.rb +34 -0
  57. data/test/test_frame_event.rb +38 -0
  58. data/test/test_key_event.rb +33 -0
  59. data/test/test_pointer.rb +14 -14
  60. data/test/test_pointer_event.rb +1 -1
  61. data/test/test_scroll_event.rb +39 -0
  62. data/test/test_timer_event.rb +38 -0
  63. data/test/test_update_event.rb +29 -0
  64. data/test/test_wheel_event.rb +40 -0
  65. metadata +29 -11
data/src/window.cpp CHANGED
@@ -31,17 +31,16 @@ namespace Reflex
31
31
 
32
32
  window->self->focus.reset(view);
33
33
 
34
- FocusEvent e(FocusEvent::BLUR, view, current);
35
-
36
34
  if (current)
37
35
  {
36
+ FocusEvent e(FocusEvent::BLUR, view, current);
38
37
  current->on_focus(&e);
39
38
  current->redraw();
40
39
  }
41
40
 
42
41
  if (view)
43
42
  {
44
- e.type = FocusEvent::FOCUS;
43
+ FocusEvent e(FocusEvent::FOCUS, view, current);
45
44
  view->on_focus(&e);
46
45
  view->redraw();
47
46
  }
@@ -133,8 +132,8 @@ namespace Reflex
133
132
 
134
133
  Rays::Bounds frame = window->frame();
135
134
 
136
- event->painter = painter;
137
- event->bounds.reset(0, 0, frame.width, frame.height);
135
+ DrawEvent_set_painter(event, painter);
136
+ DrawEvent_set_bounds(event, Bounds(0, 0, frame.width, frame.height));
138
137
 
139
138
  painter->begin();
140
139
  painter->push_state();
@@ -142,7 +141,7 @@ namespace Reflex
142
141
 
143
142
  window->on_draw(event);
144
143
  if (!event->is_blocked())
145
- Reflex::View_draw_tree(window->root(), *event, 0, frame.move_to(0));
144
+ Reflex::View_draw_tree(window->root(), event, 0, frame.move_to(0));
146
145
 
147
146
  painter->pop_state();
148
147
  painter->end();
@@ -166,29 +165,31 @@ namespace Reflex
166
165
  if (!event)
167
166
  argument_error(__FILE__, __LINE__);
168
167
 
169
- window->on_key(event);
170
-
171
- switch (event->type)
172
- {
173
- case KeyEvent::DOWN: window->on_key_down(event); break;
174
- case KeyEvent::UP: window->on_key_up(event); break;
175
- default: break;
176
- }
177
-
178
168
  for (auto& [view, targets] : window->self->captures)
179
169
  {
180
170
  if (!is_capturing(view.get(), targets, View::CAPTURE_KEY))
181
171
  continue;
182
172
 
183
- KeyEvent e = *event;
184
- e.captured = true;
185
- View_call_key_event(const_cast<View*>(view.get()), e);
173
+ KeyEvent e = event->dup();
174
+ KeyEvent_set_captured(&e, true);
175
+ View_call_key_event(const_cast<View*>(view.get()), &e);
186
176
  }
187
177
 
188
178
  if (window->self->focus)
189
- View_call_key_event(window->self->focus.get(), *event);
179
+ View_call_key_event(window->self->focus.get(), event);
190
180
 
191
181
  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
+ }
192
193
  }
193
194
 
194
195
  static void
@@ -259,12 +260,13 @@ namespace Reflex
259
260
  {
260
261
  if (targets.empty()) continue;
261
262
 
262
- PointerEvent e(true);
263
- extract_targeted_pointers(&e, extracteds, targets, pointers);
264
- if (e.empty()) continue;
263
+ PointerEvent event;
264
+ PointerEvent_set_captured(&event, true);
265
+ extract_targeted_pointers(&event, extracteds, targets, pointers);
266
+ if (event.empty()) continue;
265
267
 
266
- PointerEvent_update_for_capturing_view(&e, view);
267
- View_call_pointer_event(const_cast<View*>(view.get()), e);
268
+ PointerEvent_update_for_capturing_view(&event, view);
269
+ View_call_pointer_event(const_cast<View*>(view.get()), &event);
268
270
  }
269
271
  }
270
272
 
@@ -293,15 +295,16 @@ namespace Reflex
293
295
 
294
296
  if (views_capturing_all.empty()) return;
295
297
 
296
- PointerEvent event(true);
298
+ PointerEvent event;
299
+ PointerEvent_set_captured(&event, true);
297
300
  extract_hovering_pointers(&event, extracteds, pointers);
298
301
  if (event.empty()) return;
299
302
 
300
303
  for (auto& view : views_capturing_all)
301
304
  {
302
- PointerEvent e = event;
305
+ PointerEvent e = event.dup();
303
306
  PointerEvent_update_for_capturing_view(&e, view);
304
- View_call_pointer_event(const_cast<View*>(view.get()), e);
307
+ View_call_pointer_event(const_cast<View*>(view.get()), &e);
305
308
  }
306
309
  }
307
310
 
@@ -359,6 +362,19 @@ namespace Reflex
359
362
  if (!event)
360
363
  argument_error(__FILE__, __LINE__);
361
364
 
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
+
362
378
  window->on_pointer(event);
363
379
 
364
380
  switch ((*event)[0].action())
@@ -369,16 +385,6 @@ namespace Reflex
369
385
  case Pointer::CANCEL: window->on_pointer_cancel(event); break;
370
386
  default: break;
371
387
  }
372
-
373
- call_captured_pointer_events(window, event);
374
-
375
- if (!event->empty())
376
- {
377
- PointerEvent_update_for_child_view(event, window->root());
378
- View_call_pointer_event(window->root(), *event);
379
- }
380
-
381
- cleanup_captures(window);
382
388
  }
383
389
 
384
390
  void
@@ -391,7 +397,7 @@ namespace Reflex
391
397
 
392
398
  window->on_wheel(event);
393
399
 
394
- View_call_wheel_event(window->root(), *event);
400
+ View_call_wheel_event(window->root(), event);
395
401
  }
396
402
 
397
403
 
data/src/world.cpp CHANGED
@@ -251,8 +251,9 @@ namespace Reflex
251
251
  if (!View_is_active(*s1->owner()) || !View_is_active(*s2->owner()))
252
252
  return;
253
253
 
254
- Shape_call_contact_event(s1, ContactEvent(ContactEvent::BEGIN, s2));
255
- Shape_call_contact_event(s2, ContactEvent(ContactEvent::BEGIN, s1));
254
+ ContactEvent e1(ContactEvent::BEGIN, s2), e2(ContactEvent::BEGIN, s1);
255
+ Shape_call_contact_event(s1, &e1);
256
+ Shape_call_contact_event(s2, &e2);
256
257
  }
257
258
 
258
259
  void
@@ -267,8 +268,9 @@ namespace Reflex
267
268
  if (!View_is_active(*s1->owner()) || !View_is_active(*s2->owner()))
268
269
  return;
269
270
 
270
- Shape_call_contact_event(s1, ContactEvent(ContactEvent::END, s2));
271
- Shape_call_contact_event(s2, ContactEvent(ContactEvent::END, s1));
271
+ ContactEvent e1(ContactEvent::END, s2), e2(ContactEvent::END, s1);
272
+ Shape_call_contact_event(s1, &e1);
273
+ Shape_call_contact_event(s2, &e2);
272
274
  }
273
275
 
274
276
 
@@ -12,6 +12,22 @@ class TestCaptureEvent < Test::Unit::TestCase
12
12
  })
13
13
  end
14
14
 
15
+ def test_initialize()
16
+ e = event :key, :pointer
17
+ assert_equal [:key], e.begin
18
+ assert_equal [:pointer], e.end
19
+ end
20
+
21
+ def test_dup()
22
+ e1 = event :key, :pointer
23
+ e2 = e1.dup
24
+ e1.block
25
+ e3 = e1.dup
26
+ assert_true e1.blocked?
27
+ assert_false e2.blocked?
28
+ assert_true e3.blocked?
29
+ end
30
+
15
31
  def test_begin()
16
32
  c = event [:key, :pointer], []
17
33
  assert_equal [:key, :pointer], c.begin
@@ -0,0 +1,40 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+
4
+ require_relative 'helper'
5
+
6
+
7
+ class TestContactEvent < Test::Unit::TestCase
8
+
9
+ def event(*args)
10
+ Reflex::ContactEvent.new(*args)
11
+ end
12
+
13
+ def shape()
14
+ Reflex::RectShape.new
15
+ end
16
+
17
+ def view(*args)
18
+ Reflex::View.new(*args)
19
+ end
20
+
21
+ def test_initialize()
22
+ s, v = shape, view
23
+ v.shape = s# attach to view
24
+ e = event Reflex::ContactEvent::BEGIN, s
25
+ assert_equal :begin, e.action
26
+ assert_equal s, e.shape
27
+ assert_equal v, e.view
28
+ end
29
+
30
+ def test_dup()
31
+ e1 = event Reflex::ContactEvent::BEGIN, shape
32
+ e2 = e1.dup
33
+ e1.block
34
+ e3 = e1.dup
35
+ assert_true e1.blocked?
36
+ assert_false e2.blocked?
37
+ assert_true e3.blocked?
38
+ end
39
+
40
+ end# TestContactEvent
@@ -0,0 +1,35 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+
4
+ require_relative 'helper'
5
+
6
+
7
+ class TestDrawEvent < Test::Unit::TestCase
8
+
9
+ def event(*args)
10
+ Reflex::DrawEvent.new(*args)
11
+ end
12
+
13
+ def bounds(*args)
14
+ Rays::Bounds.new(*args)
15
+ end
16
+
17
+ def test_initialize()
18
+ e = event 1, 2
19
+ assert_nil e.painter
20
+ assert_equal bounds(0), e.bounds
21
+ assert_equal 1, e.dt
22
+ assert_equal 2, e.fps
23
+ end
24
+
25
+ def test_dup()
26
+ e1 = event 1, 2
27
+ e2 = e1.dup
28
+ e1.block
29
+ e3 = e1.dup
30
+ assert_true e1.blocked?
31
+ assert_false e2.blocked?
32
+ assert_true e3.blocked?
33
+ end
34
+
35
+ end# TestDrawEvent
data/test/test_event.rb CHANGED
@@ -7,7 +7,7 @@ require_relative 'helper'
7
7
  class TestEvent < Test::Unit::TestCase
8
8
 
9
9
  def event()
10
- Reflex::Event.new
10
+ Reflex::UpdateEvent.new 0, 0
11
11
  end
12
12
 
13
13
  def test_dup()
@@ -15,16 +15,30 @@ class TestEvent < Test::Unit::TestCase
15
15
  e2 = e1.dup
16
16
  e1.block
17
17
  e3 = e1.dup
18
- assert_equal true, e1.blocked?
19
- assert_equal false, e2.blocked?
20
- assert_equal true, e3.blocked?
18
+ assert_true e1.blocked?
19
+ assert_false e2.blocked?
20
+ assert_true e3.blocked?
21
21
  end
22
22
 
23
23
  def test_block()
24
24
  e = event
25
- assert_equal false, e.blocked?
25
+ assert_false e.blocked?
26
26
  e.block
27
- assert_equal true, e.blocked?
27
+ assert_true e.blocked?
28
+ end
29
+
30
+ def test_block_propagation()
31
+ e1 = event
32
+ e2 = e1.dup
33
+ e3 = e2.dup
34
+ assert_false e1.blocked?
35
+ assert_false e2.blocked?
36
+ assert_false e3.blocked?
37
+
38
+ e2.block
39
+ assert_true e1.blocked?
40
+ assert_true e2.blocked?
41
+ assert_false e3.blocked?
28
42
  end
29
43
 
30
44
  def test_time()
@@ -0,0 +1,34 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+
4
+ require_relative 'helper'
5
+
6
+
7
+ class TestFocusEvent < Test::Unit::TestCase
8
+
9
+ def event(*args)
10
+ Reflex::FocusEvent.new(*args)
11
+ end
12
+
13
+ def view(*args)
14
+ Reflex::View.new(*args)
15
+ end
16
+
17
+ def test_initialize()
18
+ e = event Reflex::FocusEvent::FOCUS, view(name: :a), view(name: :b)
19
+ assert_equal :focus, e.action
20
+ assert_equal 'a', e.current.name
21
+ assert_equal 'b', e.last .name
22
+ end
23
+
24
+ def test_dup()
25
+ e1 = event Reflex::FocusEvent::FOCUS, view, view
26
+ e2 = e1.dup
27
+ e1.block
28
+ e3 = e1.dup
29
+ assert_true e1.blocked?
30
+ assert_false e2.blocked?
31
+ assert_true e3.blocked?
32
+ end
33
+
34
+ end# TestFocusEvent
@@ -0,0 +1,38 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+
4
+ require_relative 'helper'
5
+
6
+
7
+ class TestFrameEvent < Test::Unit::TestCase
8
+
9
+ def event(*args)
10
+ Reflex::FrameEvent.new(*args)
11
+ end
12
+
13
+ def bounds(*args)
14
+ Rays::Bounds.new(*args)
15
+ end
16
+
17
+ def test_initialize()
18
+ e = event bounds(1, 2, 3, 4, 5, 6), 7, 8, 9, 10, 11, 12
19
+ assert_equal bounds(1, 2, 3, 4, 5, 6), e.frame
20
+ assert_equal 7, e.dx
21
+ assert_equal 8, e.dy
22
+ assert_equal 9, e.dw
23
+ assert_equal 10, e.dh
24
+ assert_equal 11, e.angle
25
+ assert_equal 12, e.dangle
26
+ end
27
+
28
+ def test_dup()
29
+ e1 = event bounds(1, 2, 3, 4, 5, 6), 7, 8, 9, 10, 11, 12
30
+ e2 = e1.dup
31
+ e1.block
32
+ e3 = e1.dup
33
+ assert_true e1.blocked?
34
+ assert_false e2.blocked?
35
+ assert_true e3.blocked?
36
+ end
37
+
38
+ end# TestFrameEvent
@@ -0,0 +1,33 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+
4
+ require_relative 'helper'
5
+
6
+
7
+ class TestKeyEvent < Test::Unit::TestCase
8
+
9
+ def event(*args)
10
+ Reflex::KeyEvent.new(*args)
11
+ end
12
+
13
+ def test_initialize()
14
+ e = event Reflex::KeyEvent::DOWN, 'a', 1, 2, 3
15
+ assert_equal :down, e.action
16
+ assert_equal 'a', e.chars
17
+ assert_equal 1, e.code
18
+ assert_equal 2, e.modifiers
19
+ assert_equal 3, e.repeat
20
+ assert_false e.captured?
21
+ end
22
+
23
+ def test_dup()
24
+ e1 = event Reflex::KeyEvent::DOWN, 'a', 1, 2, 3
25
+ e2 = e1.dup
26
+ e1.block
27
+ e3 = e1.dup
28
+ assert_true e1.blocked?
29
+ assert_false e2.blocked?
30
+ assert_true e3.blocked?
31
+ end
32
+
33
+ end# TestKeyEvent
data/test/test_pointer.rb CHANGED
@@ -42,7 +42,7 @@ class TestPointer < Test::Unit::TestCase
42
42
  time: 6)
43
43
 
44
44
  assert_equal 1, p.id
45
- assert_equal [:touch], p.type
45
+ assert_equal [:touch], p.types
46
46
  assert_equal :down, p.action
47
47
  assert_equal [2, 3], p.position.to_a
48
48
  assert_equal 4, p.modifiers
@@ -52,45 +52,45 @@ class TestPointer < Test::Unit::TestCase
52
52
  assert_nil p.prev
53
53
  end
54
54
 
55
- def test_type()
56
- def type(t)
55
+ def test_types()
56
+ def create(t)
57
57
  pointer(type: t).tap do |o|
58
58
  def o.test()
59
- [type, mouse?, left?, right?, middle?, touch?, pen?]
59
+ [types, mouse?, left?, right?, middle?, touch?, pen?]
60
60
  end
61
61
  end
62
62
  end
63
63
 
64
- o = type TYPE_NONE
64
+ o = create TYPE_NONE
65
65
  assert_equal [[], F, F, F, F, F, F], o.test
66
66
 
67
- o = type MOUSE
67
+ o = create MOUSE
68
68
  assert_equal [[:mouse], T, F, F, F, F, F], o.test
69
69
 
70
- o = type LEFT
70
+ o = create LEFT
71
71
  assert_equal [[:mouse_left], F, T, F, F, F, F], o.test
72
72
 
73
- o = type RIGHT
73
+ o = create RIGHT
74
74
  assert_equal [[:mouse_right], F, F, T, F, F, F], o.test
75
75
 
76
- o = type MIDDLE
76
+ o = create MIDDLE
77
77
  assert_equal [[:mouse_middle], F, F, F, T, F, F], o.test
78
78
 
79
- o = type TOUCH
79
+ o = create TOUCH
80
80
  assert_equal [[:touch], F, F, F, F, T, F], o.test
81
81
 
82
- o = type PEN
82
+ o = create PEN
83
83
  assert_equal [[:pen], F, F, F, F, F, T], o.test
84
84
 
85
- o = type LEFT | RIGHT
85
+ o = create LEFT | RIGHT
86
86
  types = [:mouse_left, :mouse_right]
87
87
  assert_equal [types, F, T, T, F, F, F], o.test
88
88
 
89
- o = type LEFT | RIGHT | MIDDLE
89
+ o = create LEFT | RIGHT | MIDDLE
90
90
  types = [:mouse_left, :mouse_right, :mouse_middle]
91
91
  assert_equal [types, F, T, T, T, F, F], o.test
92
92
 
93
- o = type MOUSE | LEFT | RIGHT | MIDDLE | TOUCH | PEN
93
+ o = create MOUSE | LEFT | RIGHT | MIDDLE | TOUCH | PEN
94
94
  types = [:mouse, :mouse_left, :mouse_right, :mouse_middle, :touch, :pen]
95
95
  assert_equal [types, T, T, T, T, T, T], o.test
96
96
  end
@@ -48,7 +48,7 @@ class TestPointerEvent < Test::Unit::TestCase
48
48
  assert_equal false, e.captured?
49
49
 
50
50
  assert_equal 1, p1.id
51
- assert_equal [:touch], p1.type
51
+ assert_equal [:touch], p1.types
52
52
  assert_equal :down, p1.action
53
53
  assert_equal [2, 3], p1.position.to_a
54
54
  assert_equal [2, 3], p1.pos .to_a
@@ -0,0 +1,39 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+
4
+ require_relative 'helper'
5
+
6
+
7
+ class TestScrollEvent < Test::Unit::TestCase
8
+
9
+ def event(*args)
10
+ Reflex::ScrollEvent.new(*args)
11
+ end
12
+
13
+ def point(*args)
14
+ Rays::Point.new(*args)
15
+ end
16
+
17
+ def test_initialize()
18
+ e = event 1, 2, 3, 4, 5, 6
19
+ assert_equal 1, e.x
20
+ assert_equal 2, e.y
21
+ assert_equal 3, e.z
22
+ assert_equal 4, e.dx
23
+ assert_equal 5, e.dy
24
+ assert_equal 6, e.dz
25
+ assert_equal point(1, 2, 3), e. scroll
26
+ assert_equal point(4, 5, 6), e.dscroll
27
+ end
28
+
29
+ def test_dup()
30
+ e1 = event 1, 2, 3, 4, 5, 6
31
+ e2 = e1.dup
32
+ e1.block
33
+ e3 = e1.dup
34
+ assert_true e1.blocked?
35
+ assert_false e2.blocked?
36
+ assert_true e3.blocked?
37
+ end
38
+
39
+ end# TestScrollEvent
@@ -0,0 +1,38 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+
4
+ require_relative 'helper'
5
+
6
+
7
+ class TestTimerEvent < Test::Unit::TestCase
8
+
9
+ def event(*args)
10
+ Reflex::TimerEvent.new(*args)
11
+ end
12
+
13
+ def timer(seconds = 0, count = 1)
14
+ Reflex::View.new.timeout(seconds, count: count)
15
+ end
16
+
17
+ def test_initialize()
18
+ t = timer 1, 2
19
+ e = event t
20
+ assert_equal t, e.timer
21
+ assert_equal t.owner, e.owner
22
+ assert_equal t.id, e.id
23
+ assert_equal 1, e.interval
24
+ assert_equal 2, e.count
25
+ assert_false e.finished?
26
+ end
27
+
28
+ def test_dup()
29
+ e1 = event timer
30
+ e2 = e1.dup
31
+ e1.block
32
+ e3 = e1.dup
33
+ assert_true e1.blocked?
34
+ assert_false e2.blocked?
35
+ assert_true e3.blocked?
36
+ end
37
+
38
+ end# TestTimerEvent
@@ -0,0 +1,29 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+
4
+ require_relative 'helper'
5
+
6
+
7
+ class TestUpdateEvent < Test::Unit::TestCase
8
+
9
+ def event(*args)
10
+ Reflex::UpdateEvent.new(*args)
11
+ end
12
+
13
+ def test_initialize()
14
+ e = event 1, 2
15
+ assert_equal 1, e.now
16
+ assert_equal 2, e.dt
17
+ end
18
+
19
+ def test_dup()
20
+ e1 = event 1, 2
21
+ e2 = e1.dup
22
+ e1.block
23
+ e3 = e1.dup
24
+ assert_true e1.blocked?
25
+ assert_false e2.blocked?
26
+ assert_true e3.blocked?
27
+ end
28
+
29
+ end# TestUpdateEvent
@@ -0,0 +1,40 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+
4
+ require_relative 'helper'
5
+
6
+
7
+ class TestWheelEvent < Test::Unit::TestCase
8
+
9
+ def event(*args)
10
+ Reflex::WheelEvent.new(*args)
11
+ end
12
+
13
+ def point(*args)
14
+ Rays::Point.new(*args)
15
+ end
16
+
17
+ def test_initialize()
18
+ e = event 1, 2, 3, 4, 5, 6, 7
19
+ assert_equal 1, e.x
20
+ assert_equal 2, e.y
21
+ assert_equal 3, e.z
22
+ assert_equal 4, e.dx
23
+ assert_equal 5, e.dy
24
+ assert_equal 6, e.dz
25
+ assert_equal 7, e.modifiers
26
+ assert_equal point(1, 2, 3), e. position
27
+ assert_equal point(4, 5, 6), e.dposition
28
+ end
29
+
30
+ def test_dup()
31
+ e1 = event 1, 2, 3, 4, 5, 6, 7
32
+ e2 = e1.dup
33
+ e1.block
34
+ e3 = e1.dup
35
+ assert_true e1.blocked?
36
+ assert_false e2.blocked?
37
+ assert_true e3.blocked?
38
+ end
39
+
40
+ end# TestWheelEvent