reflexion 0.1.12 → 0.1.13

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 (329) hide show
  1. checksums.yaml +5 -5
  2. data/.doc/ext/reflex/application.cpp +9 -5
  3. data/.doc/ext/reflex/capture_event.cpp +0 -4
  4. data/.doc/ext/reflex/contact_event.cpp +17 -10
  5. data/.doc/ext/reflex/draw_event.cpp +1 -5
  6. data/.doc/ext/reflex/ellipse_shape.cpp +51 -24
  7. data/.doc/ext/reflex/event.cpp +0 -4
  8. data/.doc/ext/reflex/filter.cpp +81 -0
  9. data/.doc/ext/reflex/focus_event.cpp +9 -13
  10. data/.doc/ext/reflex/frame_event.cpp +40 -6
  11. data/.doc/ext/reflex/image_view.cpp +1 -10
  12. data/.doc/ext/reflex/key_event.cpp +2 -6
  13. data/.doc/ext/reflex/line_shape.cpp +99 -0
  14. data/.doc/ext/reflex/motion_event.cpp +75 -0
  15. data/.doc/ext/reflex/native.cpp +18 -18
  16. data/.doc/ext/reflex/pointer_event.cpp +5 -11
  17. data/.doc/ext/reflex/polygon_shape.cpp +65 -0
  18. data/.doc/ext/reflex/rect_shape.cpp +102 -23
  19. data/.doc/ext/reflex/reflex.cpp +21 -2
  20. data/.doc/ext/reflex/scroll_event.cpp +0 -6
  21. data/.doc/ext/reflex/selector.cpp +43 -15
  22. data/.doc/ext/reflex/shape.cpp +211 -0
  23. data/.doc/ext/reflex/style.cpp +359 -185
  24. data/.doc/ext/reflex/style_length.cpp +163 -35
  25. data/.doc/ext/reflex/timer.cpp +101 -0
  26. data/.doc/ext/reflex/timer_event.cpp +123 -0
  27. data/.doc/ext/reflex/update_event.cpp +11 -6
  28. data/.doc/ext/reflex/view.cpp +548 -144
  29. data/.doc/ext/reflex/wheel_event.cpp +0 -22
  30. data/.doc/ext/reflex/window.cpp +7 -15
  31. data/README.md +1 -1
  32. data/Rakefile +14 -12
  33. data/VERSION +1 -1
  34. data/ext/reflex/application.cpp +10 -5
  35. data/ext/reflex/capture_event.cpp +1 -5
  36. data/ext/reflex/contact_event.cpp +19 -11
  37. data/ext/reflex/defs.h +5 -2
  38. data/ext/reflex/draw_event.cpp +2 -6
  39. data/ext/reflex/ellipse_shape.cpp +56 -25
  40. data/ext/reflex/event.cpp +0 -4
  41. data/ext/reflex/extconf.rb +1 -2
  42. data/ext/reflex/filter.cpp +86 -0
  43. data/ext/reflex/focus_event.cpp +11 -15
  44. data/ext/reflex/frame_event.cpp +46 -7
  45. data/ext/reflex/image_view.cpp +1 -10
  46. data/ext/reflex/key_event.cpp +3 -7
  47. data/ext/reflex/line_shape.cpp +104 -0
  48. data/ext/reflex/motion_event.cpp +79 -0
  49. data/ext/reflex/native.cpp +18 -18
  50. data/ext/reflex/pointer_event.cpp +6 -12
  51. data/ext/reflex/polygon_shape.cpp +68 -0
  52. data/ext/reflex/rect_shape.cpp +113 -24
  53. data/ext/reflex/reflex.cpp +21 -2
  54. data/ext/reflex/scroll_event.cpp +1 -7
  55. data/ext/reflex/selector.cpp +46 -16
  56. data/ext/reflex/selector.h +130 -0
  57. data/ext/reflex/shape.cpp +231 -0
  58. data/ext/reflex/style.cpp +363 -192
  59. data/ext/reflex/style_length.cpp +164 -37
  60. data/ext/reflex/timer.cpp +108 -0
  61. data/ext/reflex/timer_event.cpp +133 -0
  62. data/ext/reflex/update_event.cpp +13 -7
  63. data/ext/reflex/view.cpp +594 -150
  64. data/ext/reflex/wheel_event.cpp +1 -25
  65. data/ext/reflex/window.cpp +7 -15
  66. data/include/reflex/application.h +2 -0
  67. data/include/reflex/debug.h +22 -0
  68. data/include/reflex/defs.h +45 -0
  69. data/include/reflex/event.h +60 -16
  70. data/include/reflex/exception.h +9 -0
  71. data/include/reflex/filter.h +56 -0
  72. data/include/reflex/image_view.h +1 -1
  73. data/include/reflex/ruby/application.h +17 -9
  74. data/include/reflex/ruby/event.h +22 -0
  75. data/include/reflex/ruby/filter.h +69 -0
  76. data/include/reflex/ruby/selector.h +1 -1
  77. data/include/reflex/ruby/shape.h +140 -0
  78. data/include/reflex/ruby/style.h +1 -1
  79. data/include/reflex/ruby/timer.h +69 -0
  80. data/include/reflex/ruby/view.h +43 -76
  81. data/include/reflex/ruby/window.h +17 -32
  82. data/include/reflex/ruby.h +6 -4
  83. data/include/reflex/selector.h +54 -2
  84. data/include/reflex/shape.h +211 -0
  85. data/include/reflex/style.h +111 -77
  86. data/include/reflex/timer.h +73 -0
  87. data/include/reflex/view.h +181 -59
  88. data/include/reflex/window.h +4 -3
  89. data/include/reflex.h +5 -4
  90. data/lib/reflex/application.rb +6 -3
  91. data/lib/reflex/button.rb +2 -2
  92. data/lib/reflex/capture_event.rb +7 -6
  93. data/lib/reflex/contact_event.rb +10 -12
  94. data/lib/reflex/draw_event.rb +6 -1
  95. data/lib/reflex/ellipse_shape.rb +27 -0
  96. data/lib/reflex/filter.rb +18 -0
  97. data/lib/reflex/fixture.rb +4 -0
  98. data/lib/reflex/focus_event.rb +10 -12
  99. data/lib/reflex/frame_event.rb +1 -1
  100. data/lib/reflex/helper.rb +17 -29
  101. data/lib/reflex/key_event.rb +13 -11
  102. data/lib/reflex/line_shape.rb +18 -0
  103. data/lib/reflex/{texture.rb → matrix.rb} +2 -2
  104. data/lib/reflex/module.rb +4 -19
  105. data/lib/reflex/pointer_event.rb +26 -37
  106. data/lib/reflex/polygon.rb +14 -0
  107. data/lib/reflex/polygon_shape.rb +23 -0
  108. data/lib/reflex/polyline.rb +13 -0
  109. data/lib/reflex/rect_shape.rb +20 -0
  110. data/lib/reflex/reflex.rb +1 -3
  111. data/lib/reflex/scroll_event.rb +1 -1
  112. data/lib/reflex/selector.rb +2 -2
  113. data/lib/reflex/shape.rb +62 -0
  114. data/lib/reflex/style.rb +78 -11
  115. data/lib/reflex/style_length.rb +0 -11
  116. data/lib/reflex/text_view.rb +7 -24
  117. data/lib/reflex/timer.rb +30 -0
  118. data/lib/reflex/timer_event.rb +29 -0
  119. data/lib/reflex/update_event.rb +1 -1
  120. data/lib/reflex/view.rb +127 -32
  121. data/lib/reflex/wheel_event.rb +9 -1
  122. data/lib/reflex/window.rb +29 -9
  123. data/lib/reflex.rb +11 -5
  124. data/lib/reflexion.rb +23 -7
  125. data/reflex.gemspec +8 -10
  126. data/samples/bats.rb +4 -4
  127. data/samples/fans.rb +1 -1
  128. data/samples/fps.rb +5 -3
  129. data/samples/hello.rb +4 -6
  130. data/samples/image.rb +5 -4
  131. data/samples/ios/hello/hello.xcodeproj/project.pbxproj +0 -2
  132. data/samples/layout.rb +16 -7
  133. data/samples/model.rb +10 -7
  134. data/samples/physics.rb +22 -20
  135. data/samples/reflexion/breakout.rb +4 -5
  136. data/samples/reflexion/hello.rb +2 -2
  137. data/samples/reflexion/jump_action.rb +191 -0
  138. data/samples/reflexion/noise.rb +23 -0
  139. data/samples/reflexion/paint.rb +7 -6
  140. data/samples/reflexion/physics.rb +15 -8
  141. data/samples/reflexion/pulse.rb +24 -10
  142. data/samples/shader.rb +8 -6
  143. data/samples/shapes.rb +63 -14
  144. data/samples/tree.rb +9 -10
  145. data/samples/views.rb +3 -3
  146. data/samples/visuals.rb +2 -5
  147. data/src/body.cpp +146 -345
  148. data/src/body.h +91 -0
  149. data/src/event.cpp +66 -16
  150. data/src/exception.cpp +13 -3
  151. data/src/filter.cpp +76 -0
  152. data/src/fixture.cpp +164 -39
  153. data/src/fixture.h +85 -0
  154. data/src/image_view.cpp +4 -4
  155. data/src/ios/app_delegate.h +5 -10
  156. data/src/ios/app_delegate.mm +79 -41
  157. data/src/ios/application.h +32 -0
  158. data/src/ios/application.mm +35 -25
  159. data/src/ios/event.mm +8 -4
  160. data/src/ios/reflex.mm +0 -7
  161. data/src/ios/view_controller.h +33 -0
  162. data/src/ios/view_controller.mm +436 -0
  163. data/src/ios/window.h +40 -0
  164. data/src/ios/window.mm +59 -250
  165. data/src/osx/app_delegate.h +5 -10
  166. data/src/osx/app_delegate.mm +52 -55
  167. data/src/osx/application.h +32 -0
  168. data/src/osx/application.mm +44 -39
  169. data/src/osx/native_window.h +0 -15
  170. data/src/osx/native_window.mm +131 -115
  171. data/src/osx/opengl_view.h +0 -2
  172. data/src/osx/opengl_view.mm +12 -3
  173. data/src/osx/reflex.mm +0 -9
  174. data/src/osx/window.h +42 -0
  175. data/src/osx/window.mm +45 -252
  176. data/src/selector.cpp +232 -7
  177. data/src/selector.h +52 -0
  178. data/src/shape.cpp +1191 -0
  179. data/src/shape.h +61 -0
  180. data/src/style.cpp +571 -374
  181. data/src/style.h +39 -0
  182. data/src/timer.cpp +291 -0
  183. data/src/timer.h +55 -0
  184. data/src/view.cpp +1624 -984
  185. data/src/view.h +56 -0
  186. data/src/win32/window.cpp +3 -4
  187. data/src/window.cpp +275 -20
  188. data/src/window.h +92 -0
  189. data/src/world.cpp +112 -111
  190. data/src/world.h +34 -53
  191. data/task/box2d.rake +31 -10
  192. data/test/test_capture_event.rb +8 -6
  193. data/test/test_pointer_event.rb +85 -0
  194. data/test/test_selector.rb +1 -1
  195. data/test/test_shape.rb +71 -0
  196. data/test/test_style.rb +77 -11
  197. data/test/test_style_length.rb +42 -13
  198. data/test/test_view.rb +138 -14
  199. metadata +109 -210
  200. data/.doc/ext/reflex/arc_shape.cpp +0 -89
  201. data/.doc/ext/reflex/body.cpp +0 -299
  202. data/.doc/ext/reflex/fixture.cpp +0 -101
  203. data/.doc/ext/reflex/shape_view.cpp +0 -153
  204. data/ext/reflex/arc_shape.cpp +0 -94
  205. data/ext/reflex/body.cpp +0 -328
  206. data/ext/reflex/fixture.cpp +0 -108
  207. data/ext/reflex/shape_view.cpp +0 -161
  208. data/include/reflex/bitmap.h +0 -20
  209. data/include/reflex/body.h +0 -128
  210. data/include/reflex/bounds.h +0 -20
  211. data/include/reflex/color.h +0 -20
  212. data/include/reflex/color_space.h +0 -20
  213. data/include/reflex/fixture.h +0 -117
  214. data/include/reflex/font.h +0 -20
  215. data/include/reflex/image.h +0 -20
  216. data/include/reflex/matrix.h +0 -20
  217. data/include/reflex/painter.h +0 -20
  218. data/include/reflex/point.h +0 -24
  219. data/include/reflex/ruby/body.h +0 -41
  220. data/include/reflex/ruby/fixture.h +0 -41
  221. data/include/reflex/ruby/shape_view.h +0 -96
  222. data/include/reflex/shader.h +0 -20
  223. data/include/reflex/shape_view.h +0 -146
  224. data/include/reflex/texture.h +0 -20
  225. data/lib/reflex/body.rb +0 -22
  226. data/lib/reflex/flags.rb +0 -18
  227. data/lib/reflex/shape_view.rb +0 -25
  228. data/src/ios/application_data.h +0 -45
  229. data/src/ios/native_window.h +0 -39
  230. data/src/ios/native_window.mm +0 -224
  231. data/src/ios/opengl_view.h +0 -13
  232. data/src/ios/opengl_view.mm +0 -139
  233. data/src/ios/window_data.h +0 -75
  234. data/src/osx/application_data.h +0 -45
  235. data/src/osx/window_data.h +0 -75
  236. data/src/physics/Box2D/Box2D.h +0 -68
  237. data/src/physics/Box2D/Collision/Shapes/b2ChainShape.cpp +0 -193
  238. data/src/physics/Box2D/Collision/Shapes/b2ChainShape.h +0 -105
  239. data/src/physics/Box2D/Collision/Shapes/b2CircleShape.cpp +0 -99
  240. data/src/physics/Box2D/Collision/Shapes/b2CircleShape.h +0 -91
  241. data/src/physics/Box2D/Collision/Shapes/b2EdgeShape.cpp +0 -138
  242. data/src/physics/Box2D/Collision/Shapes/b2EdgeShape.h +0 -74
  243. data/src/physics/Box2D/Collision/Shapes/b2PolygonShape.cpp +0 -467
  244. data/src/physics/Box2D/Collision/Shapes/b2PolygonShape.h +0 -101
  245. data/src/physics/Box2D/Collision/Shapes/b2Shape.h +0 -101
  246. data/src/physics/Box2D/Collision/b2BroadPhase.cpp +0 -119
  247. data/src/physics/Box2D/Collision/b2BroadPhase.h +0 -257
  248. data/src/physics/Box2D/Collision/b2CollideCircle.cpp +0 -154
  249. data/src/physics/Box2D/Collision/b2CollideEdge.cpp +0 -698
  250. data/src/physics/Box2D/Collision/b2CollidePolygon.cpp +0 -239
  251. data/src/physics/Box2D/Collision/b2Collision.cpp +0 -252
  252. data/src/physics/Box2D/Collision/b2Collision.h +0 -277
  253. data/src/physics/Box2D/Collision/b2Distance.cpp +0 -603
  254. data/src/physics/Box2D/Collision/b2Distance.h +0 -141
  255. data/src/physics/Box2D/Collision/b2DynamicTree.cpp +0 -778
  256. data/src/physics/Box2D/Collision/b2DynamicTree.h +0 -289
  257. data/src/physics/Box2D/Collision/b2TimeOfImpact.cpp +0 -486
  258. data/src/physics/Box2D/Collision/b2TimeOfImpact.h +0 -58
  259. data/src/physics/Box2D/Common/b2BlockAllocator.cpp +0 -215
  260. data/src/physics/Box2D/Common/b2BlockAllocator.h +0 -62
  261. data/src/physics/Box2D/Common/b2Draw.cpp +0 -44
  262. data/src/physics/Box2D/Common/b2Draw.h +0 -86
  263. data/src/physics/Box2D/Common/b2GrowableStack.h +0 -85
  264. data/src/physics/Box2D/Common/b2Math.cpp +0 -94
  265. data/src/physics/Box2D/Common/b2Math.h +0 -720
  266. data/src/physics/Box2D/Common/b2Settings.cpp +0 -44
  267. data/src/physics/Box2D/Common/b2Settings.h +0 -151
  268. data/src/physics/Box2D/Common/b2StackAllocator.cpp +0 -83
  269. data/src/physics/Box2D/Common/b2StackAllocator.h +0 -60
  270. data/src/physics/Box2D/Common/b2Timer.cpp +0 -101
  271. data/src/physics/Box2D/Common/b2Timer.h +0 -50
  272. data/src/physics/Box2D/Dynamics/Contacts/b2ChainAndCircleContact.cpp +0 -53
  273. data/src/physics/Box2D/Dynamics/Contacts/b2ChainAndCircleContact.h +0 -39
  274. data/src/physics/Box2D/Dynamics/Contacts/b2ChainAndPolygonContact.cpp +0 -53
  275. data/src/physics/Box2D/Dynamics/Contacts/b2ChainAndPolygonContact.h +0 -39
  276. data/src/physics/Box2D/Dynamics/Contacts/b2CircleContact.cpp +0 -52
  277. data/src/physics/Box2D/Dynamics/Contacts/b2CircleContact.h +0 -39
  278. data/src/physics/Box2D/Dynamics/Contacts/b2Contact.cpp +0 -247
  279. data/src/physics/Box2D/Dynamics/Contacts/b2Contact.h +0 -349
  280. data/src/physics/Box2D/Dynamics/Contacts/b2ContactSolver.cpp +0 -838
  281. data/src/physics/Box2D/Dynamics/Contacts/b2ContactSolver.h +0 -95
  282. data/src/physics/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.cpp +0 -49
  283. data/src/physics/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.h +0 -39
  284. data/src/physics/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.cpp +0 -49
  285. data/src/physics/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.h +0 -39
  286. data/src/physics/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.cpp +0 -49
  287. data/src/physics/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.h +0 -38
  288. data/src/physics/Box2D/Dynamics/Contacts/b2PolygonContact.cpp +0 -52
  289. data/src/physics/Box2D/Dynamics/Contacts/b2PolygonContact.h +0 -39
  290. data/src/physics/Box2D/Dynamics/Joints/b2DistanceJoint.cpp +0 -260
  291. data/src/physics/Box2D/Dynamics/Joints/b2DistanceJoint.h +0 -169
  292. data/src/physics/Box2D/Dynamics/Joints/b2FrictionJoint.cpp +0 -251
  293. data/src/physics/Box2D/Dynamics/Joints/b2FrictionJoint.h +0 -119
  294. data/src/physics/Box2D/Dynamics/Joints/b2GearJoint.cpp +0 -419
  295. data/src/physics/Box2D/Dynamics/Joints/b2GearJoint.h +0 -125
  296. data/src/physics/Box2D/Dynamics/Joints/b2Joint.cpp +0 -211
  297. data/src/physics/Box2D/Dynamics/Joints/b2Joint.h +0 -226
  298. data/src/physics/Box2D/Dynamics/Joints/b2MotorJoint.cpp +0 -304
  299. data/src/physics/Box2D/Dynamics/Joints/b2MotorJoint.h +0 -133
  300. data/src/physics/Box2D/Dynamics/Joints/b2MouseJoint.cpp +0 -222
  301. data/src/physics/Box2D/Dynamics/Joints/b2MouseJoint.h +0 -129
  302. data/src/physics/Box2D/Dynamics/Joints/b2PrismaticJoint.cpp +0 -629
  303. data/src/physics/Box2D/Dynamics/Joints/b2PrismaticJoint.h +0 -196
  304. data/src/physics/Box2D/Dynamics/Joints/b2PulleyJoint.cpp +0 -348
  305. data/src/physics/Box2D/Dynamics/Joints/b2PulleyJoint.h +0 -152
  306. data/src/physics/Box2D/Dynamics/Joints/b2RevoluteJoint.cpp +0 -502
  307. data/src/physics/Box2D/Dynamics/Joints/b2RevoluteJoint.h +0 -204
  308. data/src/physics/Box2D/Dynamics/Joints/b2RopeJoint.cpp +0 -241
  309. data/src/physics/Box2D/Dynamics/Joints/b2RopeJoint.h +0 -114
  310. data/src/physics/Box2D/Dynamics/Joints/b2WeldJoint.cpp +0 -344
  311. data/src/physics/Box2D/Dynamics/Joints/b2WeldJoint.h +0 -126
  312. data/src/physics/Box2D/Dynamics/Joints/b2WheelJoint.cpp +0 -419
  313. data/src/physics/Box2D/Dynamics/Joints/b2WheelJoint.h +0 -210
  314. data/src/physics/Box2D/Dynamics/b2Body.cpp +0 -549
  315. data/src/physics/Box2D/Dynamics/b2Body.h +0 -860
  316. data/src/physics/Box2D/Dynamics/b2ContactManager.cpp +0 -296
  317. data/src/physics/Box2D/Dynamics/b2ContactManager.h +0 -52
  318. data/src/physics/Box2D/Dynamics/b2Fixture.cpp +0 -303
  319. data/src/physics/Box2D/Dynamics/b2Fixture.h +0 -345
  320. data/src/physics/Box2D/Dynamics/b2Island.cpp +0 -539
  321. data/src/physics/Box2D/Dynamics/b2Island.h +0 -93
  322. data/src/physics/Box2D/Dynamics/b2TimeStep.h +0 -70
  323. data/src/physics/Box2D/Dynamics/b2World.cpp +0 -1339
  324. data/src/physics/Box2D/Dynamics/b2World.h +0 -354
  325. data/src/physics/Box2D/Dynamics/b2WorldCallbacks.cpp +0 -36
  326. data/src/physics/Box2D/Dynamics/b2WorldCallbacks.h +0 -155
  327. data/src/physics/Box2D/Rope/b2Rope.cpp +0 -259
  328. data/src/physics/Box2D/Rope/b2Rope.h +0 -115
  329. data/src/shape_view.cpp +0 -306
@@ -0,0 +1,71 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+
4
+ require_relative 'helper'
5
+
6
+
7
+ class TestShape < Test::Unit::TestCase
8
+
9
+ def shape (*args, &block)
10
+ Reflex::RectShape.new *args, &block
11
+ end
12
+
13
+ def test_density ()
14
+ s = shape
15
+ assert_equal 0, s.density
16
+ s.density = 1
17
+ assert_equal 1, s.density
18
+ s.density 2
19
+ assert_equal 2, s.density
20
+ end
21
+
22
+ def test_friction ()
23
+ s = shape
24
+ assert_equal 0, s.friction
25
+ s.friction = 1
26
+ assert_equal 1, s.friction
27
+ s.friction 2
28
+ assert_equal 2, s.friction
29
+ end
30
+
31
+ def test_restitution ()
32
+ s = shape
33
+ assert_equal 0, s.restitution
34
+ s.restitution = 1
35
+ assert_equal 1, s.restitution
36
+ s.restitution 2
37
+ assert_equal 2, s.restitution
38
+ end
39
+
40
+ def test_sensor ()
41
+ s = shape
42
+ assert_equal false, s.sensor?
43
+ s.sensor = true
44
+ assert_equal true, s.sensor?
45
+ s.sensor false
46
+ assert_equal false, s.sensor?
47
+ end
48
+
49
+ def test_category ()
50
+ s = shape
51
+ assert_equal 0b1, s.category_bits
52
+ s.category_bits = 0b1010
53
+ assert_equal 0b1010, s.category_bits
54
+ s.category_bits |= 0b100
55
+ assert_equal 0b1110, s.category_bits
56
+ s.category_bits &= ~0b10
57
+ assert_equal 0b1100, s.category_bits
58
+ end
59
+
60
+ def test_collision ()
61
+ s = shape
62
+ assert_equal 0xffff, s.collision_mask
63
+ s.collision_mask = 0b1010
64
+ assert_equal 0b1010, s.collision_mask
65
+ s.collision_mask |= 0b100
66
+ assert_equal 0b1110, s.collision_mask
67
+ s.collision_mask &= ~0b10
68
+ assert_equal 0b1100, s.collision_mask
69
+ end
70
+
71
+ end# TestShape
data/test/test_style.rb CHANGED
@@ -10,8 +10,21 @@ class TestStyle < Test::Unit::TestCase
10
10
  Reflex::Style.new *args, &block
11
11
  end
12
12
 
13
+ def color (*args)
14
+ Reflex::Color.new *args
15
+ end
16
+
17
+ def setup ()
18
+ {
19
+ rgb100: color(1, 0, 0),
20
+ rgb010: color(0, 1, 0)
21
+ }.each do |name, col|
22
+ Rays::Color.set_palette_color name, col
23
+ end
24
+ end
25
+
13
26
  def test_initialize ()
14
- assert_equal '', style.name
27
+ assert_equal nil, style.name
15
28
  assert_equal 'A', style(name: :A).name
16
29
  assert_equal 'A', style{self.name = :A}.name
17
30
  end
@@ -23,16 +36,30 @@ class TestStyle < Test::Unit::TestCase
23
36
 
24
37
  def test_flow ()
25
38
  s = style
39
+ assert_equal [:none, :none], s.flow
26
40
 
41
+ s.flow = :right
42
+ assert_equal [:right, :none], s.flow
43
+ s.flow = [:right, :down]
27
44
  assert_equal [:right, :down], s.flow
28
- s.flow = :up
29
- assert_equal [:up, :none], s.flow
30
- s.flow = [:left, :down]
31
- assert_equal [:left, :down], s.flow
32
- s.flow = :none
33
- assert_equal [:none, :none], s.flow
45
+ s.flow = :left
46
+ assert_equal [:left, :none], s.flow
47
+ s.flow = :none
48
+ assert_equal [:none, :none], s.flow
49
+
50
+ s.flow = :right
51
+ assert_equal [:right, :none], s.flow
52
+ s.flow = nil
53
+ assert_equal [:none, :none], s.flow
54
+
34
55
  assert_raise(ArgumentError) {s.flow = []}
35
- assert_raise(ArgumentError) {s.flow = [:down, :right, :none]}
56
+ assert_raise(ArgumentError) {s.flow = [:none, :down]}
57
+ assert_raise(ArgumentError) {s.flow = [:right, :down, :none]}
58
+ end
59
+
60
+ def test_position ()
61
+ s = style
62
+ assert_equal [0, 0, 0, 0], s.position.map(&:value)
36
63
  end
37
64
 
38
65
  def test_margin_padding ()
@@ -63,9 +90,48 @@ class TestStyle < Test::Unit::TestCase
63
90
  =end
64
91
  end
65
92
 
66
- def test_fill_stroke ()
67
- assert_equal [0, 0, 0, 1], style.fill.to_a
68
- assert_equal [0, 0, 0, 1], style.stroke.to_a
93
+ def test_foreground ()
94
+ s, white, transp = style, color(1, 1, 1, 1), color(0, 0, 0, 0)
95
+
96
+ assert_equal white, s.foreground_fill
97
+ assert_equal transp, s.foreground_stroke
98
+
99
+ assert_equal [white, transp], s.foreground
100
+ s.foreground = :rgb100
101
+ assert_equal [color(1, 0, 0), transp], s.foreground
102
+ s.foreground = nil
103
+ assert_equal [white, transp], s.foreground
104
+
105
+ s.foreground :rgb100
106
+ assert_equal [color(1, 0, 0), transp], s.foreground
107
+ s.foreground :rgb010, nil
108
+ assert_equal [color(0, 1, 0), transp], s.foreground
109
+ s.foreground nil, :rgb100
110
+ assert_equal [white, color(1, 0, 0)], s.foreground
111
+ s.foreground :rgb100, :rgb010
112
+ assert_equal [color(1, 0, 0), color(0, 1, 0)], s.foreground
113
+ end
114
+
115
+ def test_background ()
116
+ s, transp = style, color(0, 0, 0, 0)
117
+
118
+ assert_equal transp, s.background_fill
119
+ assert_equal transp, s.background_stroke
120
+
121
+ assert_equal [transp, transp], s.background
122
+ s.background = :rgb100
123
+ assert_equal [color(1, 0, 0), transp], s.background
124
+ s.background = nil
125
+ assert_equal [transp, transp], s.background
126
+
127
+ s.background :rgb100
128
+ assert_equal [color(1, 0, 0), transp], s.background
129
+ s.background :rgb010, nil
130
+ assert_equal [color(0, 1, 0), transp], s.background
131
+ s.background nil, :rgb100
132
+ assert_equal [transp, color(1, 0, 0)], s.background
133
+ s.background :rgb100, :rgb010
134
+ assert_equal [color(1, 0, 0), color(0, 1, 0)], s.background
69
135
  end
70
136
 
71
137
  def test_image ()
@@ -11,23 +11,52 @@ class TestStyleLength < Test::Unit::TestCase
11
11
  end
12
12
 
13
13
  def test_initialize ()
14
+ assert_equal nil, len.type
14
15
  assert_equal 0, len.value
15
- assert_equal nil, len.unit
16
- assert_equal 100, len(100).value
17
- assert_equal :px, len(100).unit
18
- assert_equal 100, len(100, :px).value
19
- assert_equal :px, len(100, :px).unit
20
- assert_equal :%, len(100, :%).unit
21
- assert_equal 100, len('100px').value
22
- assert_equal :px, len('100px').unit
23
- assert_equal :%, len('100%').unit
16
+
17
+ assert_equal nil, len(nil).type
18
+ assert_equal 0, len(nil).value
19
+
20
+ assert_equal :px, len(100).type
21
+ assert_equal 100, len(100).value
22
+
23
+ assert_equal :px, len('100px').type
24
+ assert_equal 100, len('100px').value
25
+
26
+ assert_equal :%, len('100%').type
27
+ assert_equal 100, len('100%').value
28
+
29
+ assert_equal :fill, len('fill').type
30
+ assert_equal 1, len('fill').value
31
+ assert_equal :fill, len('0.5 fill').type
32
+ assert_equal 0.5, len('0.5 fill').value
33
+ assert_equal 0.5, len('0.5fill').value
34
+ assert_equal :fill, len(:fill).type
35
+
36
+ assert_equal :fit, len('fit').type
37
+ assert_equal 1, len('fit').value
38
+ assert_equal :fit, len(:fit).type
39
+
40
+ assert_raise(ArgumentError) {len ''}
41
+ assert_raise(ArgumentError) {len :px}
42
+ assert_raise(ArgumentError) {len :%}
43
+ assert_raise(ArgumentError) {len 'fill0.5'}
44
+ assert_raise(ArgumentError) {len 'fill 0.5'}
45
+ assert_raise(ArgumentError) {len '0.5fit'}
46
+ assert_raise(ArgumentError) {len '0.5 fit'}
47
+ assert_raise(ArgumentError) {len 'fit0.5'}
48
+ assert_raise(ArgumentError) {len 'fit 0.5'}
24
49
  end
25
50
 
26
51
  def test_to_s ()
27
- assert_equal '100px', len(100, :px).to_s
28
- assert_equal '100%', len(100, :%).to_s
29
- assert_equal '100.5%', len(100.5, :%).to_s
30
- assert_equal '', len.to_s
52
+ assert_equal '', len.to_s
53
+ assert_equal '', len(nil).to_s
54
+ assert_equal '100px', len('100px').to_s
55
+ assert_equal '100%', len('100%').to_s
56
+ assert_equal '100.5%', len('100.5%').to_s
57
+ assert_equal 'fill', len('fill').to_s
58
+ assert_equal 'fit', len('fit').to_s
59
+ assert_equal '0.5fill', len('0.5 fill').to_s
31
60
  end
32
61
 
33
62
  def test_inspect ()
data/test/test_view.rb CHANGED
@@ -7,15 +7,17 @@ require_relative 'helper'
7
7
  class TestView < Test::Unit::TestCase
8
8
 
9
9
  def view (*args, &block)
10
- v = Reflex::View.new *args, &block
11
- v.on_attach Reflex::Event.new
12
- v
10
+ Reflex::View.new *args, &block
13
11
  end
14
12
 
15
13
  def style (*args, &block)
16
14
  Reflex::Style.new *args, &block
17
15
  end
18
16
 
17
+ def shape (*args, &block)
18
+ Reflex::RectShape.new *args, &block
19
+ end
20
+
19
21
  def selector (*args, &block)
20
22
  Reflex::Selector.new *args, &block
21
23
  end
@@ -23,11 +25,6 @@ class TestView < Test::Unit::TestCase
23
25
  def point (*args) Rays::Point.new *args end
24
26
  def bounds (*args) Rays::Bounds.new *args end
25
27
 
26
- def test_initialize ()
27
- assert_equal nil, view.name
28
- assert_equal 'Test', view(:name => 'Test').name
29
- end
30
-
31
28
  def test_hidden ()
32
29
  v = view
33
30
  assert_equal false, v.hidden?
@@ -85,29 +82,108 @@ class TestView < Test::Unit::TestCase
85
82
  v = view
86
83
  s = v.style
87
84
  assert_equal 0, s.margin_left.value
88
- assert_equal nil, s.margin_left.unit
85
+ assert_equal nil, s.margin_left.type
89
86
  assert_equal '', s.margin_left.to_s
90
87
 
91
88
  s.margin_left = '100px'
92
89
  assert_equal 100, s.margin_left.value
93
- assert_equal :px, s.margin_left.unit
90
+ assert_equal :px, s.margin_left.type
94
91
  assert_equal '100px', s.margin_left.to_s
95
92
  end
96
93
 
97
94
  def test_add_remove_style ()
98
- v = view
99
- s = style(name: :N)
95
+ v, s = view, style(name: :N)
96
+ assert_equal 0, v.styles.to_a.size
97
+
100
98
  v.add_style s
99
+ assert_equal 1, v.styles.to_a.size
101
100
  assert_includes v.find_styles(selector name: :N), s
101
+
102
102
  v.remove_style s
103
+ assert_equal 0, v.styles.to_a.size
103
104
  assert_not_includes v.find_styles(selector name: :N), s
104
105
  end
105
106
 
107
+ def test_shape ()
108
+ s = shape
109
+ assert_equal 0, s.density
110
+ s.density = 1
111
+ assert_equal 1, s.density
112
+
113
+ v = view
114
+ assert_not_equal s, v.shape
115
+
116
+ v.shape = s
117
+ assert_equal s, v.shape
118
+ assert_equal 1, v.shape.density
119
+ s.density = 2
120
+ assert_equal 2, s.density
121
+ assert_equal 2, v.shape.density
122
+
123
+ v.shape = nil
124
+ assert_equal nil, v.shape
125
+ assert_equal 2, s.density
126
+ assert_equal 0, v.density
127
+ assert_raise(Rucy::NativeError) {v.density = 3}
128
+ end
129
+
130
+ def test_content_bounds_with_shapes ()
131
+ v = view
132
+ assert_equal Reflex::Bounds.invalid, v.content_bounds
133
+
134
+ v.shape.resize_to 10, 20
135
+ assert_equal [10, 20], v.content_bounds.size.to_a
136
+
137
+ v.shape = shape size: [30, 40]
138
+ assert_equal [30, 40], v.content_bounds.size.to_a
139
+
140
+ v.shape = nil
141
+ assert_equal Reflex::Bounds.invalid, v.content_bounds
142
+
143
+ v.add_shape shape
144
+ assert_equal Reflex::Bounds.invalid, v.content_bounds
145
+
146
+ v.add_shape shape size: [50, 60]
147
+ assert_equal [50, 60], v.content_bounds.size.to_a
148
+
149
+ v.add_shape shape size: [100, 10]
150
+ assert_equal [100, 60], v.content_bounds.size.to_a
151
+
152
+ v.add_shape shape frame: [-10, -20, 200, 210]
153
+ assert_equal [-10, -20, 200, 210], v.content_bounds.to_a
154
+ end
155
+
156
+ def test_add_remove_shape ()
157
+ s = shape name: :S
158
+ s.density = 1
159
+ assert_equal 1, s.density
160
+
161
+ v = view
162
+ assert_equal 0, v.shapes.to_a.size
163
+
164
+ v.add_shape s
165
+ assert_equal 1, v.shapes.to_a.size
166
+ assert_includes v.find_shapes(selector name: :S), s
167
+ assert_equal 1, v.find_shapes(selector name: :S).first.density
168
+
169
+ v.remove_shape s
170
+ assert_equal 0, v.shapes.to_a.size
171
+ assert_not_includes v.find_shapes(selector name: :S), s
172
+
173
+ v.add_shape s
174
+ assert_equal 1, v.shapes.to_a.size
175
+ v.clear_shapes
176
+ assert_equal 0, v.shapes.to_a.size
177
+ end
178
+
106
179
  def test_name ()
107
180
  v = view
108
181
  assert_equal nil, v.name
109
- v.name = 'Test'
110
- assert_equal 'Test', v.name
182
+ v.name = 'A'
183
+ assert_equal 'A', v.name
184
+ v.name = :B
185
+ assert_equal 'B', v.name
186
+ assert_equal 'C', view(:name => 'C').name
111
187
  end
112
188
 
113
189
  def test_frame ()
@@ -146,4 +222,52 @@ class TestView < Test::Unit::TestCase
146
222
  assert_equal parent, child.parent
147
223
  end
148
224
 
225
+ def test_density ()
226
+ v = view
227
+ assert_equal 0, v.density
228
+ v.density = 1
229
+ assert_equal 1, v.density
230
+ v.density 2
231
+ assert_equal 2, v.density
232
+ end
233
+
234
+ def test_friction ()
235
+ v = view
236
+ assert_equal 0, v.friction
237
+ v.friction = 1
238
+ assert_equal 1, v.friction
239
+ v.friction 2
240
+ assert_equal 2, v.friction
241
+ end
242
+
243
+ def test_restitution ()
244
+ v = view
245
+ assert_equal 0, v.restitution
246
+ v.restitution = 1
247
+ assert_equal 1, v.restitution
248
+ v.restitution 2
249
+ assert_equal 2, v.restitution
250
+ end
251
+
252
+ def test_sensor ()
253
+ v = view
254
+ assert_equal false, v.sensor?
255
+ v.sensor = true
256
+ assert_equal true, v.sensor?
257
+ v.sensor false
258
+ assert_equal false, v.sensor?
259
+ end
260
+
261
+ def test_category ()
262
+ p, v = view, view
263
+ p.add v
264
+ assert_equal [:all], v.category
265
+ end
266
+
267
+ def test_collision ()
268
+ p, v = view, view
269
+ p.add v
270
+ #assert_equal [:all], v.collision
271
+ end
272
+
149
273
  end# TestView