reflexion 0.1.20 → 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 (130) 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 +41 -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 +49 -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 +14 -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 +8 -7
  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 +51 -23
  92. data/src/ios/window.mm +18 -0
  93. data/src/osx/event.h +15 -4
  94. data/src/osx/event.mm +214 -24
  95. data/src/osx/native_window.mm +85 -18
  96. data/src/osx/window.mm +22 -0
  97. data/src/pointer.cpp +203 -0
  98. data/src/pointer.h +26 -0
  99. data/src/selector.cpp +1 -1
  100. data/src/shape.cpp +11 -13
  101. data/src/shape.h +1 -1
  102. data/src/view.cpp +205 -118
  103. data/src/view.h +5 -10
  104. data/src/window.cpp +346 -104
  105. data/src/window.h +28 -3
  106. data/src/world.cpp +6 -4
  107. data/test/helper.rb +3 -3
  108. data/test/test_application.rb +1 -1
  109. data/test/test_capture_event.rb +22 -6
  110. data/test/test_contact_event.rb +40 -0
  111. data/test/test_draw_event.rb +35 -0
  112. data/test/test_event.rb +33 -5
  113. data/test/test_focus_event.rb +34 -0
  114. data/test/test_frame_event.rb +38 -0
  115. data/test/test_has_frame.rb +11 -11
  116. data/test/test_key_event.rb +33 -0
  117. data/test/test_pointer.rb +149 -0
  118. data/test/test_pointer_event.rb +70 -104
  119. data/test/test_reflex.rb +1 -1
  120. data/test/test_scroll_event.rb +39 -0
  121. data/test/test_selector.rb +15 -8
  122. data/test/test_shape.rb +8 -8
  123. data/test/test_style.rb +13 -13
  124. data/test/test_style_length.rb +5 -5
  125. data/test/test_timer_event.rb +38 -0
  126. data/test/test_update_event.rb +29 -0
  127. data/test/test_view.rb +57 -30
  128. data/test/test_wheel_event.rb +40 -0
  129. data/test/test_window.rb +45 -26
  130. metadata +64 -35
@@ -6,13 +6,29 @@ require_relative 'helper'
6
6
 
7
7
  class TestCaptureEvent < Test::Unit::TestCase
8
8
 
9
- def event (*args)
10
- Reflex::CaptureEvent.new *args.map {|arg|
11
- Reflex::View.capture_flag.symbols2bits *arg
12
- }
9
+ def event(*args)
10
+ Reflex::CaptureEvent.new(*args.map {|arg|
11
+ Reflex::View.capture_flag.symbols2bits(*arg)
12
+ })
13
13
  end
14
14
 
15
- def test_begin ()
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
+
31
+ def test_begin()
16
32
  c = event [:key, :pointer], []
17
33
  assert_equal [:key, :pointer], c.begin
18
34
  assert_equal true, c.begin?(:key)
@@ -26,7 +42,7 @@ class TestCaptureEvent < Test::Unit::TestCase
26
42
  assert_equal false, c.begin?(:all)
27
43
  end
28
44
 
29
- def test_end ()
45
+ def test_end()
30
46
  c = event [], [:key, :pointer]
31
47
  assert_equal [:key, :pointer], c.end
32
48
  assert_equal true, c.end?(:key)
@@ -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!}