reflexion 0.1.21 → 0.1.25

Sign up to get free protection for your applications and to get access to all the features.
Files changed (129) 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 +18 -16
  4. data/.doc/ext/reflex/draw_event.cpp +10 -8
  5. data/.doc/ext/reflex/event.cpp +10 -10
  6. data/.doc/ext/reflex/focus_event.cpp +18 -17
  7. data/.doc/ext/reflex/frame_event.cpp +17 -17
  8. data/.doc/ext/reflex/key_event.cpp +227 -28
  9. data/.doc/ext/reflex/native.cpp +2 -0
  10. data/.doc/ext/reflex/pointer.cpp +158 -0
  11. data/.doc/ext/reflex/pointer_event.cpp +32 -91
  12. data/.doc/ext/reflex/scroll_event.cpp +14 -17
  13. data/.doc/ext/reflex/selector.cpp +8 -0
  14. data/.doc/ext/reflex/timer.cpp +9 -1
  15. data/.doc/ext/reflex/timer_event.cpp +4 -13
  16. data/.doc/ext/reflex/update_event.cpp +6 -5
  17. data/.doc/ext/reflex/view.cpp +57 -0
  18. data/.doc/ext/reflex/wheel_event.cpp +39 -22
  19. data/.doc/ext/reflex/window.cpp +24 -0
  20. data/VERSION +1 -1
  21. data/ext/reflex/capture_event.cpp +6 -5
  22. data/ext/reflex/contact_event.cpp +18 -16
  23. data/ext/reflex/draw_event.cpp +9 -7
  24. data/ext/reflex/event.cpp +11 -11
  25. data/ext/reflex/focus_event.cpp +18 -17
  26. data/ext/reflex/frame_event.cpp +16 -16
  27. data/ext/reflex/key_event.cpp +228 -28
  28. data/ext/reflex/native.cpp +2 -0
  29. data/ext/reflex/pointer.cpp +170 -0
  30. data/ext/reflex/pointer_event.cpp +31 -96
  31. data/ext/reflex/scroll_event.cpp +15 -18
  32. data/ext/reflex/selector.cpp +9 -0
  33. data/ext/reflex/timer.cpp +15 -6
  34. data/ext/reflex/timer_event.cpp +9 -19
  35. data/ext/reflex/update_event.cpp +6 -5
  36. data/ext/reflex/view.cpp +67 -3
  37. data/ext/reflex/wheel_event.cpp +40 -21
  38. data/ext/reflex/window.cpp +30 -3
  39. data/include/reflex/defs.h +140 -106
  40. data/include/reflex/event.h +232 -124
  41. data/include/reflex/pointer.h +107 -0
  42. data/include/reflex/ruby/pointer.h +41 -0
  43. data/include/reflex/ruby/view.h +9 -0
  44. data/include/reflex/ruby/window.h +9 -0
  45. data/include/reflex/selector.h +1 -1
  46. data/include/reflex/shape.h +2 -2
  47. data/include/reflex/view.h +6 -4
  48. data/include/reflex/window.h +10 -8
  49. data/lib/reflex/application.rb +3 -3
  50. data/lib/reflex/autoinit.rb +1 -1
  51. data/lib/reflex/button.rb +7 -7
  52. data/lib/reflex/capture_event.rb +7 -7
  53. data/lib/reflex/contact_event.rb +10 -10
  54. data/lib/reflex/draw_event.rb +2 -2
  55. data/lib/reflex/ellipse_shape.rb +2 -2
  56. data/lib/reflex/focus_event.rb +11 -11
  57. data/lib/reflex/frame_event.rb +5 -5
  58. data/lib/reflex/helper.rb +20 -20
  59. data/lib/reflex/image_view.rb +2 -2
  60. data/lib/reflex/key_event.rb +12 -12
  61. data/lib/reflex/model.rb +22 -22
  62. data/lib/reflex/model_owner.rb +7 -7
  63. data/lib/reflex/model_view.rb +1 -1
  64. data/lib/reflex/module.rb +5 -5
  65. data/lib/reflex/pointer.rb +107 -0
  66. data/lib/reflex/pointer_event.rb +16 -54
  67. data/lib/reflex/polygon_shape.rb +2 -2
  68. data/lib/reflex/reflex.rb +3 -3
  69. data/lib/reflex/scroll_event.rb +1 -1
  70. data/lib/reflex/selector.rb +4 -4
  71. data/lib/reflex/shape.rb +13 -13
  72. data/lib/reflex/style.rb +11 -11
  73. data/lib/reflex/style_length.rb +1 -1
  74. data/lib/reflex/text_view.rb +2 -2
  75. data/lib/reflex/timer.rb +2 -2
  76. data/lib/reflex/timer_event.rb +3 -2
  77. data/lib/reflex/update_event.rb +1 -1
  78. data/lib/reflex/view.rb +32 -32
  79. data/lib/reflex/wheel_event.rb +2 -10
  80. data/lib/reflex/window.rb +6 -6
  81. data/lib/reflex.rb +1 -0
  82. data/lib/reflexion.rb +17 -17
  83. data/reflex.gemspec +5 -5
  84. data/samples/reflexion/noise.rb +1 -1
  85. data/samples/tree.rb +1 -1
  86. data/src/event.cpp +792 -86
  87. data/src/event.h +47 -0
  88. data/src/image_view.cpp +2 -2
  89. data/src/ios/event.h +15 -3
  90. data/src/ios/event.mm +126 -11
  91. data/src/ios/view_controller.mm +50 -22
  92. data/src/ios/window.mm +1 -1
  93. data/src/osx/event.h +15 -4
  94. data/src/osx/event.mm +214 -24
  95. data/src/osx/native_window.mm +84 -17
  96. data/src/pointer.cpp +203 -0
  97. data/src/pointer.h +26 -0
  98. data/src/selector.cpp +1 -1
  99. data/src/shape.cpp +11 -13
  100. data/src/shape.h +1 -1
  101. data/src/view.cpp +205 -118
  102. data/src/view.h +5 -10
  103. data/src/window.cpp +334 -104
  104. data/src/window.h +22 -3
  105. data/src/world.cpp +6 -4
  106. data/test/helper.rb +3 -3
  107. data/test/test_application.rb +1 -1
  108. data/test/test_capture_event.rb +22 -6
  109. data/test/test_contact_event.rb +40 -0
  110. data/test/test_draw_event.rb +35 -0
  111. data/test/test_event.rb +33 -5
  112. data/test/test_focus_event.rb +34 -0
  113. data/test/test_frame_event.rb +38 -0
  114. data/test/test_has_frame.rb +11 -11
  115. data/test/test_key_event.rb +33 -0
  116. data/test/test_pointer.rb +149 -0
  117. data/test/test_pointer_event.rb +70 -104
  118. data/test/test_reflex.rb +1 -1
  119. data/test/test_scroll_event.rb +39 -0
  120. data/test/test_selector.rb +15 -8
  121. data/test/test_shape.rb +8 -8
  122. data/test/test_style.rb +13 -13
  123. data/test/test_style_length.rb +5 -5
  124. data/test/test_timer_event.rb +38 -0
  125. data/test/test_update_event.rb +29 -0
  126. data/test/test_view.rb +57 -30
  127. data/test/test_wheel_event.rb +40 -0
  128. data/test/test_window.rb +29 -27
  129. metadata +64 -35
@@ -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
@@ -6,15 +6,43 @@ require_relative 'helper'
6
6
 
7
7
  class TestEvent < Test::Unit::TestCase
8
8
 
9
- def event ()
10
- Reflex::Event.new
9
+ def event()
10
+ Reflex::UpdateEvent.new 0, 0
11
11
  end
12
12
 
13
- def test_block ()
13
+ def test_dup()
14
+ e1 = event
15
+ e2 = e1.dup
16
+ e1.block
17
+ e3 = e1.dup
18
+ assert_true e1.blocked?
19
+ assert_false e2.blocked?
20
+ assert_true e3.blocked?
21
+ end
22
+
23
+ def test_block()
14
24
  e = event
15
- assert_equal false, e.block?
25
+ assert_false e.blocked?
16
26
  e.block
17
- assert_equal true, e.block?
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?
42
+ end
43
+
44
+ def test_time()
45
+ assert_in_delta Time.now.to_f, event.time, 0.001
18
46
  end
19
47
 
20
48
  end# TestEvent
@@ -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
@@ -6,11 +6,11 @@ require_relative 'helper'
6
6
 
7
7
  class TestHasFrame < Test::Unit::TestCase
8
8
 
9
- def view (*args)
10
- Reflex::View.new *args
9
+ def view(*args)
10
+ Reflex::View.new(*args)
11
11
  end
12
12
 
13
- def test_accessors ()
13
+ def test_accessors()
14
14
  v = view
15
15
  b = v.frame.dup
16
16
  assert_equal b, v.frame
@@ -28,18 +28,18 @@ class TestHasFrame < Test::Unit::TestCase
28
28
  assert_equal [15, 25, 30, 90, 190, 300], v.frame.to_a(3)
29
29
  end
30
30
 
31
- def test_move ()
31
+ def test_move()
32
32
  v = view
33
- v.move_to 10, 10; assert_equal [10, 10], v.pos.to_a
34
- v.move_by 40, 40; assert_equal [50, 50], v.pos.to_a
35
- v.move_by -10, -10; assert_equal [40, 40], v.pos.to_a
33
+ v.move_to( 10, 10); assert_equal [10, 10], v.pos.to_a
34
+ v.move_by( 40, 40); assert_equal [50, 50], v.pos.to_a
35
+ v.move_by(-10, -10); assert_equal [40, 40], v.pos.to_a
36
36
  end
37
37
 
38
- def test_resize ()
38
+ def test_resize()
39
39
  v = view
40
- v.resize_to 100, 100; assert_equal [100, 100], v.size.to_a
41
- v.resize_by 400, 400; assert_equal [500, 500], v.size.to_a
42
- v.resize_by -100, -100; assert_equal [400, 400], v.size.to_a
40
+ v.resize_to( 100, 100); assert_equal [100, 100], v.size.to_a
41
+ v.resize_by( 400, 400); assert_equal [500, 500], v.size.to_a
42
+ v.resize_by(-100, -100); assert_equal [400, 400], v.size.to_a
43
43
  end
44
44
 
45
45
  end# TestHasFrame
@@ -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
@@ -0,0 +1,149 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+
4
+ require_relative 'helper'
5
+
6
+
7
+ class TestPointer < Test::Unit::TestCase
8
+
9
+ TYPE_NONE = Reflex::Pointer::TYPE_NONE
10
+ MOUSE = Reflex::Pointer::MOUSE
11
+ LEFT = Reflex::Pointer::MOUSE_LEFT
12
+ RIGHT = Reflex::Pointer::MOUSE_RIGHT
13
+ MIDDLE = Reflex::Pointer::MOUSE_MIDDLE
14
+ TOUCH = Reflex::Pointer::TOUCH
15
+ PEN = Reflex::Pointer::PEN
16
+
17
+ ACTION_NONE = Reflex::Pointer::ACTION_NONE
18
+ DOWN = Reflex::Pointer::DOWN
19
+ UP = Reflex::Pointer::UP
20
+ MOVE = Reflex::Pointer::MOVE
21
+ STAY = Reflex::Pointer::STAY
22
+ CANCEL = Reflex::Pointer::CANCEL
23
+
24
+ T = true
25
+ F = false
26
+
27
+ def pointer(
28
+ id: 0, type: TYPE_NONE, action: ACTION_NONE,
29
+ position: 0, modifiers: 0, click_count: 0, drag: false,
30
+ time: 0)
31
+
32
+ Reflex::Pointer.new(
33
+ id, type, action, position, modifiers, click_count, drag, time)
34
+ end
35
+
36
+ def test_initialize()
37
+ assert_nothing_raised {pointer}
38
+
39
+ p = pointer(
40
+ id: 1, type: TOUCH, action: DOWN,
41
+ position: [2, 3], modifiers: 4, click_count: 5, drag: true,
42
+ time: 6)
43
+
44
+ assert_equal 1, p.id
45
+ assert_equal [:touch], p.types
46
+ assert_equal :down, p.action
47
+ assert_equal [2, 3], p.position.to_a
48
+ assert_equal 4, p.modifiers
49
+ assert_equal 5, p.click_count
50
+ assert_equal true, p.drag?
51
+ assert_equal 6, p.time
52
+ assert_nil p.prev
53
+ end
54
+
55
+ def test_types()
56
+ def create(t)
57
+ pointer(type: t).tap do |o|
58
+ def o.test()
59
+ [types, mouse?, left?, right?, middle?, touch?, pen?]
60
+ end
61
+ end
62
+ end
63
+
64
+ o = create TYPE_NONE
65
+ assert_equal [[], F, F, F, F, F, F], o.test
66
+
67
+ o = create MOUSE
68
+ assert_equal [[:mouse], T, F, F, F, F, F], o.test
69
+
70
+ o = create LEFT
71
+ assert_equal [[:mouse_left], F, T, F, F, F, F], o.test
72
+
73
+ o = create RIGHT
74
+ assert_equal [[:mouse_right], F, F, T, F, F, F], o.test
75
+
76
+ o = create MIDDLE
77
+ assert_equal [[:mouse_middle], F, F, F, T, F, F], o.test
78
+
79
+ o = create TOUCH
80
+ assert_equal [[:touch], F, F, F, F, T, F], o.test
81
+
82
+ o = create PEN
83
+ assert_equal [[:pen], F, F, F, F, F, T], o.test
84
+
85
+ o = create LEFT | RIGHT
86
+ types = [:mouse_left, :mouse_right]
87
+ assert_equal [types, F, T, T, F, F, F], o.test
88
+
89
+ o = create LEFT | RIGHT | MIDDLE
90
+ types = [:mouse_left, :mouse_right, :mouse_middle]
91
+ assert_equal [types, F, T, T, T, F, F], o.test
92
+
93
+ o = create MOUSE | LEFT | RIGHT | MIDDLE | TOUCH | PEN
94
+ types = [:mouse, :mouse_left, :mouse_right, :mouse_middle, :touch, :pen]
95
+ assert_equal [types, T, T, T, T, T, T], o.test
96
+ end
97
+
98
+ def test_action()
99
+ def action(a)
100
+ pointer(action: a).tap do |o|
101
+ def o.test()
102
+ [action, down?, up?, move?, cancel?, stay?]
103
+ end
104
+ end
105
+ end
106
+
107
+ o = action ACTION_NONE
108
+ assert_equal [:none, F, F, F, F, F], o.test
109
+
110
+ o = action DOWN
111
+ assert_equal [:down, T, F, F, F, F], o.test
112
+
113
+ o = action UP
114
+ assert_equal [:up, F, T, F, F, F], o.test
115
+
116
+ o = action MOVE
117
+ assert_equal [:move, F, F, T, F, F], o.test
118
+
119
+ o = action CANCEL
120
+ assert_equal [:cancel, F, F, F, T, F], o.test
121
+
122
+ o = action STAY
123
+ assert_equal [:stay, F, F, F, F, T], o.test
124
+ end
125
+
126
+ def test_position()
127
+ assert_equal [1, 1], pointer(position: 1 ).position.to_a
128
+ assert_equal [2, 3], pointer(position: [2, 3]).position.to_a
129
+ end
130
+
131
+ def test_xy()
132
+ assert_equal 1, pointer(position: [1, 2]).x
133
+ assert_equal 2, pointer(position: [1, 2]).y
134
+ end
135
+
136
+ def test_compare()
137
+ assert_equal pointer, pointer
138
+
139
+ assert_not_equal pointer, pointer(id: 1)
140
+ assert_not_equal pointer, pointer(type: Reflex::Pointer::PEN)
141
+ assert_not_equal pointer, pointer(action: Reflex::Pointer::UP)
142
+ assert_not_equal pointer, pointer(position: 2)
143
+ assert_not_equal pointer, pointer(modifiers: 3)
144
+ assert_not_equal pointer, pointer(click_count: 4)
145
+ assert_not_equal pointer, pointer(drag: true)
146
+ assert_not_equal pointer, pointer(time: 5)
147
+ end
148
+
149
+ end# TestPointer
@@ -6,125 +6,91 @@ require_relative 'helper'
6
6
 
7
7
  class TestPointerEvent < Test::Unit::TestCase
8
8
 
9
- E = Reflex::PointerEvent
10
- T = true
11
- F = false
12
-
13
- TYPE_NONE = E::TYPE_NONE
14
- DOWN = E::TYPE_DOWN
15
- UP = E::TYPE_UP
16
- MOVE = E::TYPE_MOVE
17
-
18
- POINTER_NONE = E::POINTER_NONE
19
- LEFT = E::POINTER_MOUSE_LEFT
20
- RIGHT = E::POINTER_MOUSE_RIGHT
21
- MIDDLE = E::POINTER_MOUSE_MIDDLE
22
- TOUCH = E::POINTER_TOUCH
23
- PEN = E::POINTER_PEN
24
-
25
- def event (
26
- type = TYPE_NONE, pointer_type = POINTER_NONE,
27
- modifiers = 0, count = 0, drag = false,
28
- positions: [0])
29
-
30
- Reflex::PointerEvent.new type, pointer_type, modifiers, count, drag, positions
31
- end
32
-
33
- def test_initialize ()
34
- assert_nothing_raised {event positions: 10.times.to_a}
35
- assert_raise(ArgumentError) {event positions: 11.times.to_a}
36
- assert_raise(ArgumentError) {event positions: []}
37
- end
38
-
39
- def test_type ()
40
- def type (arg)
41
- event(arg).tap do |o|
42
- def o.test ()
43
- [type, down?, up?, move?]
44
- end
45
- end
46
- end
9
+ TYPE_NONE = Reflex::Pointer::TYPE_NONE
10
+ TOUCH = Reflex::Pointer::TOUCH
11
+ PEN = Reflex::Pointer::PEN
47
12
 
48
- o = type TYPE_NONE
49
- assert_equal [:none, F, F, F], o.test
13
+ ACTION_NONE = Reflex::Pointer::ACTION_NONE
14
+ DOWN = Reflex::Pointer::DOWN
15
+ UP = Reflex::Pointer::UP
50
16
 
51
- o = type DOWN
52
- assert_equal [:down, T, F, F], o.test
53
-
54
- o = type UP
55
- assert_equal [:up, F, T, F], o.test
56
-
57
- o = type MOVE
58
- assert_equal [:move, F, F, T], o.test
17
+ def event(*args)
18
+ Reflex::PointerEvent.new(*args)
59
19
  end
60
20
 
61
- def test_pointer_type ()
62
- def pointer_type (arg)
63
- event(TYPE_NONE, arg).tap do |o|
64
- def o.test ()
65
- [pointer_type, left?, right?, middle?, touch?, pen?]
66
- end
67
- end
68
- end
69
-
70
- o = pointer_type POINTER_NONE
71
- assert_equal [[], F, F, F, F, F], o.test
72
-
73
- o = pointer_type LEFT
74
- assert_equal [[:mouse_left], T, F, F, F, F], o.test
21
+ def pointer(
22
+ id: 0, type: TYPE_NONE, action: ACTION_NONE,
23
+ position: 0, modifiers: 0, click_count: 0, drag: false,
24
+ time: 0)
75
25
 
76
- o = pointer_type RIGHT
77
- assert_equal [[:mouse_right], F, T, F, F, F], o.test
78
-
79
- o = pointer_type MIDDLE
80
- assert_equal [[:mouse_middle], F, F, T, F, F], o.test
81
-
82
- o = pointer_type TOUCH
83
- assert_equal [[:touch], F, F, F, T, F], o.test
84
-
85
- o = pointer_type PEN
86
- assert_equal [[:pen], F, F, F, F, T], o.test
87
-
88
- o = pointer_type LEFT | RIGHT
89
- types = [:mouse_left, :mouse_right]
90
- assert_equal [types, T, T, F, F, F], o.test
91
-
92
- o = pointer_type LEFT | RIGHT | MIDDLE
93
- types = [:mouse_left, :mouse_right, :mouse_middle]
94
- assert_equal [types, T, T, T, F, F], o.test
95
-
96
- o = pointer_type LEFT | RIGHT | MIDDLE | TOUCH | PEN
97
- types = [:mouse_left, :mouse_right, :mouse_middle, :touch, :pen]
98
- assert_equal [types, T, T, T, T, T], o.test
26
+ Reflex::Pointer.new(
27
+ id, type, action, position, modifiers, click_count, drag, time)
99
28
  end
100
29
 
101
- def test_size ()
102
- assert_equal 1, event(positions: [0] ).size
103
- assert_equal 2, event(positions: [0, 1]).size
30
+ def test_initialize()
31
+ assert_nothing_raised {event pointer}
32
+ assert_nothing_raised {event pointer, pointer}
33
+ assert_raise(ArgumentError) {event}
34
+
35
+ p1 = pointer(
36
+ id: 1, type: TOUCH, action: DOWN,
37
+ position: [2, 3], modifiers: 4, click_count: 5, drag: true,
38
+ time: 6)
39
+ p2 = pointer(
40
+ id: 10, type: PEN, action: UP,
41
+ position: [20, 30], modifiers: 40, click_count: 50, drag: false,
42
+ time: 60)
43
+ e = event p1, p2
44
+
45
+ assert_equal [p1, p2], e.pointers.to_a
46
+ assert_equal 2, e.size
47
+ assert_equal false, e.empty?
48
+ assert_equal false, e.captured?
49
+
50
+ assert_equal 1, p1.id
51
+ assert_equal [:touch], p1.types
52
+ assert_equal :down, p1.action
53
+ assert_equal [2, 3], p1.position.to_a
54
+ assert_equal [2, 3], p1.pos .to_a
55
+ assert_equal 2, p1.x
56
+ assert_equal 3, p1.y
57
+ assert_equal 4, p1.modifiers
58
+ assert_equal 5, p1.click_count
59
+ assert_equal true, p1.drag?
60
+ assert_equal 6, p1.time
104
61
  end
105
62
 
106
- def test_xy ()
107
- assert_equal 0, event(positions: [[0, 1], [2, 3]]).x
108
- assert_equal 1, event(positions: [[0, 1], [2, 3]]).y
63
+ def test_dup()
64
+ e1 = event pointer
65
+ e2 = e1.dup
66
+ e1.block
67
+ e3 = e1.dup
68
+ assert_equal true, e1.blocked?
69
+ assert_equal false, e2.blocked?
70
+ assert_equal true, e3.blocked?
109
71
  end
110
72
 
111
- def test_position ()
112
- assert_equal [0, 1], event(positions: [[0, 1], [2, 3]]).position.to_a
73
+ def test_size()
74
+ assert_equal 1, event(pointer ).size
75
+ assert_equal 2, event(pointer, pointer).size
113
76
  end
114
77
 
115
- def test_positions ()
116
- assert_equal [[0, 0]], event(positions: [0] ).positions.map(&:to_a)
117
- assert_equal [[0, 0], [1, 1]], event(positions: [0, 1]).positions.map(&:to_a)
118
-
119
- assert_equal [[0, 1]], event(positions: [[0, 1]] ).positions.map(&:to_a)
120
- assert_equal [[0, 1], [2, 3]], event(positions: [[0, 1], [2, 3]]).positions.map(&:to_a)
78
+ def test_empty?()
79
+ assert_equal false, event(pointer).empty?
121
80
  end
122
81
 
123
- def test_at ()
124
- assert_equal [0, 1], event(positions: [[0, 1], [2, 3]])[0].to_a
125
- assert_equal [2, 3], event(positions: [[0, 1], [2, 3]])[1].to_a
126
- assert_raise(IndexError) {event(positions: [[0, 1], [2, 3]])[-1]}
127
- assert_raise(IndexError) {event(positions: [[0, 1], [2, 3]])[2]}
82
+ def test_get_at()
83
+ p1 = pointer position: 1
84
+ p2 = pointer position: 2
85
+ p3 = pointer position: 3
86
+ e = event p1, p2, p3
87
+
88
+ assert_equal p1, e[0]
89
+ assert_equal p3, e[2]
90
+ assert_nil e[3]
91
+ assert_equal p3, e[-1]
92
+ assert_equal p1, e[-3]
93
+ assert_nil e[-4]
128
94
  end
129
95
 
130
96
  end# TestPointerEvent
data/test/test_reflex.rb CHANGED
@@ -9,7 +9,7 @@ require_relative 'helper'
9
9
 
10
10
  class TestReflex < Test::Unit::TestCase
11
11
 
12
- def test_init ()
12
+ def test_init()
13
13
  assert_raise(Rucy::NativeError) {Reflex.fin!}
14
14
  assert Reflex.init!
15
15
  assert_raise(Rucy::NativeError) {Reflex.init!}
@@ -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