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,75 @@
1
+ #include "reflex/ruby/event.h"
2
+
3
+
4
+ #include "rays/ruby/point.h"
5
+ #include "defs.h"
6
+
7
+
8
+ RUCY_DEFINE_VALUE_FROM_TO(Reflex::MotionEvent)
9
+
10
+ #define THIS to<Reflex::MotionEvent*>(self)
11
+
12
+ #define CHECK RUCY_CHECK_OBJ(Reflex::MotionEvent, self)
13
+
14
+
15
+ static
16
+ VALUE alloc(VALUE klass)
17
+ {
18
+ return new_type<Reflex::MotionEvent>(klass);
19
+ }
20
+
21
+ static
22
+ VALUE initialize(VALUE self)
23
+ {
24
+ CHECK;
25
+ check_arg_count(__FILE__, __LINE__, "MotionEvent#initialize", argc, 0, 1);
26
+
27
+ if (argc >= 1)
28
+ THIS->gravity = to<Rays::Point>(argv[0]);
29
+
30
+ return rb_call_super(0, NULL);
31
+ }
32
+
33
+ static
34
+ VALUE initialize_copy(VALUE self, VALUE obj)
35
+ {
36
+ CHECK;
37
+ *THIS = to<Reflex::MotionEvent&>(obj);
38
+ return self;
39
+ }
40
+
41
+ static
42
+ VALUE gravity(VALUE self)
43
+ {
44
+ CHECK;
45
+ return value(THIS->gravity);
46
+ }
47
+
48
+
49
+ static Class cMotionEvent;
50
+
51
+ void
52
+ Init_motion_event ()
53
+ {
54
+ Module mReflex = rb_define_module("Reflex");
55
+
56
+ cMotionEvent = mReflex.define_class("MotionEvent", Reflex::event_class());
57
+ rb_define_alloc_func(cMotionEvent, alloc);
58
+ rb_define_private_method(cMotionEvent, "initialize", RUBY_METHOD_FUNC(initialize), -1);
59
+ rb_define_private_method(cMotionEvent, "initialize_copy", RUBY_METHOD_FUNC(initialize_copy), 1);
60
+ rb_define_method(cMotionEvent, "gravity", RUBY_METHOD_FUNC(gravity), 0);
61
+ }
62
+
63
+
64
+ namespace Reflex
65
+ {
66
+
67
+
68
+ Class
69
+ motion_event_class ()
70
+ {
71
+ return cMotionEvent;
72
+ }
73
+
74
+
75
+ }// Reflex
@@ -1,17 +1,16 @@
1
- #include <rucy.h>
2
1
  #include "defs.h"
3
2
 
4
3
 
5
- using namespace Rucy;
6
-
7
-
8
4
  void Init_reflex ();
9
5
 
10
6
  void Init_selector ();
11
7
  void Init_style ();
12
8
  void Init_style_length ();
9
+ void Init_timer ();
10
+ void Init_filter ();
13
11
 
14
12
  void Init_event ();
13
+ void Init_motion_event ();
15
14
  void Init_update_event ();
16
15
  void Init_draw_event ();
17
16
  void Init_frame_event ();
@@ -21,10 +20,14 @@ void Init_key_event ();
21
20
  void Init_pointer_event ();
22
21
  void Init_wheel_event ();
23
22
  void Init_capture_event ();
23
+ void Init_timer_event ();
24
24
  void Init_contact_event ();
25
25
 
26
- void Init_body ();
27
- void Init_fixture ();
26
+ void Init_shape ();
27
+ void Init_polygon_shape ();
28
+ void Init_line_shape ();
29
+ void Init_rect_shape ();
30
+ void Init_ellipse_shape ();
28
31
 
29
32
  void Init_application ();
30
33
  void Init_window ();
@@ -32,11 +35,6 @@ void Init_view ();
32
35
 
33
36
  void Init_image_view ();
34
37
 
35
- void Init_shape_view ();
36
- void Init_rect_shape ();
37
- void Init_ellipse_shape ();
38
- void Init_arc_shape ();
39
-
40
38
 
41
39
  extern "C" void
42
40
  #ifdef COCOAPODS
@@ -54,8 +52,11 @@ extern "C" void
54
52
  Init_selector();
55
53
  Init_style();
56
54
  Init_style_length();
55
+ Init_timer();
56
+ Init_filter();
57
57
 
58
58
  Init_event();
59
+ Init_motion_event();
59
60
  Init_update_event();
60
61
  Init_draw_event();
61
62
  Init_frame_event();
@@ -65,10 +66,14 @@ extern "C" void
65
66
  Init_pointer_event();
66
67
  Init_wheel_event();
67
68
  Init_capture_event();
69
+ Init_timer_event();
68
70
  Init_contact_event();
69
71
 
70
- Init_body();
71
- Init_fixture();
72
+ Init_shape();
73
+ Init_polygon_shape();
74
+ Init_line_shape();
75
+ Init_rect_shape();
76
+ Init_ellipse_shape();
72
77
 
73
78
  Init_application();
74
79
  Init_window();
@@ -76,10 +81,5 @@ extern "C" void
76
81
 
77
82
  Init_image_view();
78
83
 
79
- Init_shape_view();
80
- Init_rect_shape();
81
- Init_ellipse_shape();
82
- Init_arc_shape();
83
-
84
84
  RUCY_CATCH
85
85
  }
@@ -1,16 +1,10 @@
1
1
  #include "reflex/ruby/event.h"
2
2
 
3
3
 
4
- #include <rucy.h>
5
4
  #include <rays/ruby/point.h>
6
5
  #include "defs.h"
7
6
 
8
7
 
9
- using namespace Rucy;
10
-
11
- using Reflex::coord;
12
-
13
-
14
8
  RUCY_DEFINE_VALUE_FROM_TO(Reflex::PointerEvent)
15
9
 
16
10
  #define THIS to<Reflex::PointerEvent*>(self)
@@ -51,14 +45,14 @@ VALUE initialize_copy(VALUE self, VALUE obj)
51
45
  }
52
46
 
53
47
  static
54
- VALUE get_type(VALUE self)
48
+ VALUE type(VALUE self)
55
49
  {
56
50
  CHECK;
57
51
  return value(THIS->type);
58
52
  }
59
53
 
60
54
  static
61
- VALUE get_pointer_type(VALUE self)
55
+ VALUE pointer_type(VALUE self)
62
56
  {
63
57
  CHECK;
64
58
  return value(THIS->pointer_type);
@@ -127,7 +121,7 @@ static
127
121
  VALUE array_get(VALUE self, VALUE index)
128
122
  {
129
123
  CHECK;
130
- return value((*THIS)[index.to_i()]);
124
+ return value((*THIS)[to<int>(index)]);
131
125
  }
132
126
 
133
127
 
@@ -142,8 +136,8 @@ Init_pointer_event ()
142
136
  rb_define_alloc_func(cPointerEvent, alloc);
143
137
  rb_define_private_method(cPointerEvent, "initialize", RUBY_METHOD_FUNC(initialize), -1);
144
138
  rb_define_private_method(cPointerEvent, "initialize_copy", RUBY_METHOD_FUNC(initialize_copy), 1);
145
- rb_define_method(cPointerEvent, "get_type", RUBY_METHOD_FUNC(get_type), 0);
146
- rb_define_method(cPointerEvent, "get_pointer_type", RUBY_METHOD_FUNC(get_pointer_type), 0);
139
+ rb_define_method(cPointerEvent, "type", RUBY_METHOD_FUNC(type), 0);
140
+ rb_define_method(cPointerEvent, "pointer_type", RUBY_METHOD_FUNC(pointer_type), 0);
147
141
  rb_define_method(cPointerEvent, "size", RUBY_METHOD_FUNC(size), 0);
148
142
  rb_define_method(cPointerEvent, "modifiers", RUBY_METHOD_FUNC(modifiers), 0);
149
143
  rb_define_method(cPointerEvent, "count", RUBY_METHOD_FUNC(count), 0);
@@ -0,0 +1,65 @@
1
+ #include "reflex/ruby/shape.h"
2
+
3
+
4
+ #include "rays/ruby/polygon.h"
5
+ #include "defs.h"
6
+
7
+
8
+ RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(Reflex::PolygonShape)
9
+
10
+ #define THIS to<Reflex::PolygonShape*>(self)
11
+
12
+ #define CHECK RUCY_CHECK_OBJ(Reflex::PolygonShape, self)
13
+
14
+ #define CALL(fun) RUCY_CALL_SUPER(THIS, fun)
15
+
16
+
17
+ static
18
+ VALUE alloc(VALUE klass)
19
+ {
20
+ return value(new Reflex::RubyShape<Reflex::PolygonShape>, klass);
21
+ }
22
+
23
+ static
24
+ VALUE set_polygon(VALUE self, VALUE polygon)
25
+ {
26
+ CHECK;
27
+
28
+ THIS->set_polygon(to<Rays::Polygon&>(polygon));
29
+ return polygon;
30
+ }
31
+
32
+ static
33
+ VALUE get_polygon(VALUE self)
34
+ {
35
+ CHECK;
36
+ return value(THIS->polygon());
37
+ }
38
+
39
+
40
+ static Class cPolygonShape;
41
+
42
+ void
43
+ Init_polygon_shape ()
44
+ {
45
+ Module mReflex = rb_define_module("Reflex");
46
+
47
+ cPolygonShape = mReflex.define_class("PolygonShape", Reflex::shape_class());
48
+ rb_define_alloc_func(cPolygonShape, alloc);
49
+ rb_define_method(cPolygonShape, "polygon=", RUBY_METHOD_FUNC(set_polygon), 1);
50
+ rb_define_method(cPolygonShape, "polygon", RUBY_METHOD_FUNC(get_polygon), 0);
51
+ }
52
+
53
+
54
+ namespace Reflex
55
+ {
56
+
57
+
58
+ Class
59
+ polygon_shape_class ()
60
+ {
61
+ return cPolygonShape;
62
+ }
63
+
64
+
65
+ }// Reflex
@@ -1,45 +1,38 @@
1
- #include "reflex/ruby/shape_view.h"
1
+ #include "reflex/ruby/shape.h"
2
2
 
3
3
 
4
- #include <rucy.h>
5
- #include <rays/ruby/point.h>
6
-
7
-
8
- using namespace Rucy;
9
-
10
- using Reflex::coord;
4
+ #include "defs.h"
11
5
 
12
6
 
13
7
  RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(Reflex::RectShape)
14
8
 
15
9
  #define THIS to<Reflex::RectShape*>(self)
16
10
 
17
- #define CHECK RUCY_CHECK_OBJECT(Reflex::RectShape, self)
11
+ #define CHECK RUCY_CHECK_OBJ(Reflex::RectShape, self)
18
12
 
19
- #define CALL(fun) RUCY_WRAPPER_CALL(Reflex::RectShape, THIS, fun)
13
+ #define CALL(fun) RUCY_CALL_SUPER(THIS, fun)
20
14
 
21
15
 
22
16
  static
23
17
  VALUE alloc(VALUE klass)
24
18
  {
25
- return value(new Reflex::RubyShapeView<Reflex::RectShape>, klass);
19
+ return value(new Reflex::RubyShape<Reflex::RectShape>, klass);
26
20
  }
27
21
 
28
22
  static
29
23
  VALUE set_round(VALUE self)
30
24
  {
31
25
  CHECK;
32
- check_arg_count(__FILE__, __LINE__, "RectShape#set_fill", argc, 1, 2);
26
+ check_arg_count(__FILE__, __LINE__, "RectShape#set_round", argc, 1, 4);
33
27
 
34
- if (argc == 1 && argv[0].is_kind_of(Rays::point_class()))
35
- THIS->set_round(to<Rays::Point&>(argv[0]));
28
+ if (argc == 1)
29
+ THIS->set_round(to<float>(argv[0]));
36
30
  else
37
31
  {
38
- float w = to<float>(argv[0]);
39
- float h = (argc >= 2) ? to<float>(argv[1]) : 1;
40
- THIS->set_round(w, h);
32
+ THIS->set_round(
33
+ to<float>(argv[0]), to<float>(argv[1]),
34
+ to<float>(argv[2]), to<float>(argv[3]));
41
35
  }
42
-
43
36
  return self;
44
37
  }
45
38
 
@@ -47,11 +40,88 @@ static
47
40
  VALUE get_round(VALUE self)
48
41
  {
49
42
  CHECK;
50
- return value(THIS->round());
43
+ return array(
44
+ value(THIS->round_left_top()),
45
+ value(THIS->round_right_top()),
46
+ value(THIS->round_left_bottom()),
47
+ value(THIS->round_right_bottom()));
48
+ }
49
+
50
+ static
51
+ VALUE set_round_left_top(VALUE self, VALUE round)
52
+ {
53
+ CHECK;
54
+ THIS->set_round_left_top(to<coord>(round));
55
+ return round;
56
+ }
57
+
58
+ static
59
+ VALUE get_round_left_top(VALUE self)
60
+ {
61
+ CHECK;
62
+ return value(THIS->round_left_top());
51
63
  }
52
64
 
53
65
  static
54
- RUCY_DEF_clear_override_flags(cof, Reflex::RectShape);
66
+ VALUE set_round_right_top(VALUE self, VALUE round)
67
+ {
68
+ CHECK;
69
+ THIS->set_round_right_top(to<coord>(round));
70
+ return round;
71
+ }
72
+
73
+ static
74
+ VALUE get_round_right_top(VALUE self)
75
+ {
76
+ CHECK;
77
+ return value(THIS->round_right_top());
78
+ }
79
+
80
+ static
81
+ VALUE set_round_left_bottom(VALUE self, VALUE round)
82
+ {
83
+ CHECK;
84
+ THIS->set_round_left_bottom(to<coord>(round));
85
+ return round;
86
+ }
87
+
88
+ static
89
+ VALUE get_round_left_bottom(VALUE self)
90
+ {
91
+ CHECK;
92
+ return value(THIS->round_left_bottom());
93
+ }
94
+
95
+ static
96
+ VALUE set_round_right_bottom(VALUE self, VALUE round)
97
+ {
98
+ CHECK;
99
+ THIS->set_round_right_bottom(to<coord>(round));
100
+ return round;
101
+ }
102
+
103
+ static
104
+ VALUE get_round_right_bottom(VALUE self)
105
+ {
106
+ CHECK;
107
+ return value(THIS->round_right_bottom());
108
+ }
109
+
110
+ static
111
+ VALUE set_nsegment(VALUE self, VALUE nsegment)
112
+ {
113
+ CHECK;
114
+
115
+ THIS->set_nsegment(to<uint>(nsegment));
116
+ return nsegment;
117
+ }
118
+
119
+ static
120
+ VALUE get_nsegment(VALUE self)
121
+ {
122
+ CHECK;
123
+ return value(THIS->nsegment());
124
+ }
55
125
 
56
126
 
57
127
  static Class cRectShape;
@@ -61,11 +131,20 @@ Init_rect_shape ()
61
131
  {
62
132
  Module mReflex = rb_define_module("Reflex");
63
133
 
64
- cRectShape = mReflex.define_class("RectShape", Reflex::shape_view_class());
134
+ cRectShape = mReflex.define_class("RectShape", Reflex::shape_class());
65
135
  rb_define_alloc_func(cRectShape, alloc);
66
- rb_define_private_method(cRectShape, "round=", RUBY_METHOD_FUNC(set_round), -1);
136
+ rb_define_method(cRectShape, "round=", RUBY_METHOD_FUNC(set_round), -1);
67
137
  rb_define_method(cRectShape, "round", RUBY_METHOD_FUNC(get_round), 0);
68
-
138
+ rb_define_method(cRectShape, "round_left_top=", RUBY_METHOD_FUNC(set_round_left_top), 1);
139
+ rb_define_method(cRectShape, "round_left_top", RUBY_METHOD_FUNC(get_round_left_top), 0);
140
+ rb_define_method(cRectShape, "round_right_top=", RUBY_METHOD_FUNC(set_round_right_top), 1);
141
+ rb_define_method(cRectShape, "round_right_top", RUBY_METHOD_FUNC(get_round_right_top), 0);
142
+ rb_define_method(cRectShape, "round_left_bottom=", RUBY_METHOD_FUNC(set_round_left_bottom), 1);
143
+ rb_define_method(cRectShape, "round_left_bottom", RUBY_METHOD_FUNC(get_round_left_bottom), 0);
144
+ rb_define_method(cRectShape, "round_right_bottom=", RUBY_METHOD_FUNC(set_round_right_bottom), 1);
145
+ rb_define_method(cRectShape, "round_right_bottom", RUBY_METHOD_FUNC(get_round_right_bottom), 0);
146
+ rb_define_method(cRectShape, "nsegment=", RUBY_METHOD_FUNC(set_nsegment), 1);
147
+ rb_define_method(cRectShape, "nsegment", RUBY_METHOD_FUNC(get_nsegment), 0);
69
148
  }
70
149
 
71
150
 
@@ -1,22 +1,41 @@
1
- #include <rucy.h>
2
1
  #include "reflex/reflex.h"
2
+ #include "reflex/ruby/view.h"
3
+ #include "reflex/ruby/timer.h"
4
+ #include "../../src/window.h"
5
+ #include "../../src/timer.h"
3
6
  #include "defs.h"
4
7
 
5
8
 
6
- using namespace Rucy;
9
+ static Reflex::View*
10
+ create_root_view ()
11
+ {
12
+ return new Reflex::RubyView<Reflex::View>;
13
+ }
14
+
15
+ static Reflex::Timer*
16
+ create_timer ()
17
+ {
18
+ return new Reflex::RubyTimer<Reflex::Timer>;
19
+ }
7
20
 
8
21
 
9
22
  static
10
23
  VALUE init(VALUE self)
11
24
  {
12
25
  Reflex::init();
26
+ Reflex::Window_set_create_root_view_fun(create_root_view);
27
+ Reflex::Timer_set_create_fun(create_timer);
28
+
13
29
  return self;
14
30
  }
15
31
 
16
32
  static
17
33
  VALUE fin(VALUE self)
18
34
  {
35
+ Reflex::Window_set_create_root_view_fun(NULL);
36
+ Reflex::Timer_set_create_fun(NULL);
19
37
  Reflex::fin();
38
+
20
39
  return self;
21
40
  }
22
41
 
@@ -1,16 +1,10 @@
1
1
  #include "reflex/ruby/event.h"
2
2
 
3
3
 
4
- #include <rucy.h>
5
4
  #include "rays/ruby/point.h"
6
5
  #include "defs.h"
7
6
 
8
7
 
9
- using namespace Rucy;
10
-
11
- using Reflex::coord;
12
-
13
-
14
8
  RUCY_DEFINE_VALUE_FROM_TO(Reflex::ScrollEvent)
15
9
 
16
10
  #define THIS to<Reflex::ScrollEvent*>(self)
@@ -1,16 +1,13 @@
1
1
  #include "reflex/ruby/selector.h"
2
2
 
3
3
 
4
- #include <rucy.h>
5
4
  #include "defs.h"
6
5
 
7
6
 
8
- using namespace Rucy;
7
+ RUCY_DEFINE_VALUE_OR_ARRAY_FROM_TO(Reflex::Selector)
9
8
 
10
-
11
- RUCY_DEFINE_VALUE_FROM_TO(Reflex::Selector)
12
-
13
- #define THIS to<Reflex::Selector*>(self)
9
+ #define THIS to< Reflex::Selector*>(self)
10
+ #define C_THIS to<const Reflex::Selector*>(self)
14
11
 
15
12
  #define CHECK RUCY_CHECK_OBJ(Reflex::Selector, self)
16
13
 
@@ -40,7 +37,8 @@ static
40
37
  VALUE get_name(VALUE self)
41
38
  {
42
39
  CHECK;
43
- return THIS->name() ? value(THIS->name()) : nil();
40
+ const char* name = C_THIS->name();
41
+ return name ? value(name) : nil();
44
42
  }
45
43
 
46
44
  static
@@ -57,14 +55,28 @@ VALUE remove_tag(VALUE self, VALUE tag)
57
55
  THIS->remove_tag(tag.c_str());
58
56
  }
59
57
 
58
+ static
59
+ VALUE clear_tags(VALUE self)
60
+ {
61
+ CHECK;
62
+ THIS->clear_tags();
63
+ }
64
+
65
+ static
66
+ VALUE has_tag(VALUE self, VALUE tag)
67
+ {
68
+ CHECK;
69
+ return value(C_THIS->has_tag(tag.c_str()));
70
+ }
71
+
60
72
  static
61
73
  VALUE each_tag(VALUE self)
62
74
  {
63
75
  CHECK;
64
76
 
65
77
  Value ret;
66
- Reflex::Selector::iterator end = THIS->end();
67
- for (Reflex::Selector::iterator it = THIS->begin(); it != end; ++it)
78
+ Reflex::Selector::const_iterator end = C_THIS->end();
79
+ for (Reflex::Selector::const_iterator it = C_THIS->begin(); it != end; ++it)
68
80
  ret = rb_yield(value(*it));
69
81
  return ret;
70
82
  }
@@ -73,14 +85,14 @@ static
73
85
  VALUE contains(VALUE self, VALUE selector)
74
86
  {
75
87
  CHECK;
76
- return value(THIS->contains(to<Reflex::Selector&>(selector)));
88
+ return value(C_THIS->contains(to<Reflex::Selector&>(selector)));
77
89
  }
78
90
 
79
91
  static
80
92
  VALUE equal(VALUE self, VALUE selector)
81
93
  {
82
94
  CHECK;
83
- return value(*THIS == to<Reflex::Selector&>(selector));
95
+ return value(*C_THIS == to<const Reflex::Selector&>(selector));
84
96
  }
85
97
 
86
98
 
@@ -98,6 +110,8 @@ Init_selector ()
98
110
  rb_define_method(cSelector, "name", RUBY_METHOD_FUNC(get_name), 0);
99
111
  rb_define_method(cSelector, "add_tag", RUBY_METHOD_FUNC(add_tag), 1);
100
112
  rb_define_method(cSelector, "remove_tag", RUBY_METHOD_FUNC(remove_tag), 1);
113
+ rb_define_method(cSelector, "clear_tags", RUBY_METHOD_FUNC(clear_tags), 0);
114
+ cSelector.define_method("tag?", has_tag);
101
115
  rb_define_method(cSelector, "each_tag", RUBY_METHOD_FUNC(each_tag), 0);
102
116
  rb_define_method(cSelector, "contains", RUBY_METHOD_FUNC(contains), 1);
103
117
  cSelector.define_method("==", equal);
@@ -109,12 +123,26 @@ namespace Rucy
109
123
 
110
124
 
111
125
  template <> Reflex::Selector
112
- value_to<Reflex::Selector> (Value value, bool convert)
126
+ value_to<Reflex::Selector> (int argc, const Value* argv, bool convert)
113
127
  {
114
- if (convert && (value.is_s() || value.is_sym()))
115
- return Reflex::Selector(value.c_str());
128
+ if (argc == 1 && argv->is_array())
129
+ {
130
+ argc = argv->size();
131
+ argv = argv->as_array();
132
+ }
133
+
134
+ assert(argc > 0 && argv);
135
+
136
+ if (convert)
137
+ {
138
+ if (argc == 1 && (argv->is_s() || argv->is_sym()))
139
+ return Reflex::Selector(argv[0].c_str());
140
+ }
141
+
142
+ if (argc != 1)
143
+ argument_error(__FILE__, __LINE__);
116
144
 
117
- return value_to<Reflex::Selector&>(value, convert);
145
+ return value_to<Reflex::Selector&>(*argv, convert);
118
146
  }
119
147
 
120
148