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
@@ -1,28 +1,22 @@
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
  RUCY_DEF_ALLOC(alloc, 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
  RUCY_END
28
22
 
@@ -30,17 +24,16 @@ static
30
24
  RUCY_DEFN(set_round)
31
25
  {
32
26
  CHECK;
33
- check_arg_count(__FILE__, __LINE__, "RectShape#set_fill", argc, 1, 2);
27
+ check_arg_count(__FILE__, __LINE__, "RectShape#set_round", argc, 1, 4);
34
28
 
35
- if (argc == 1 && argv[0].is_kind_of(Rays::point_class()))
36
- THIS->set_round(to<Rays::Point&>(argv[0]));
29
+ if (argc == 1)
30
+ THIS->set_round(to<float>(argv[0]));
37
31
  else
38
32
  {
39
- float w = to<float>(argv[0]);
40
- float h = (argc >= 2) ? to<float>(argv[1]) : 1;
41
- THIS->set_round(w, h);
33
+ THIS->set_round(
34
+ to<float>(argv[0]), to<float>(argv[1]),
35
+ to<float>(argv[2]), to<float>(argv[3]));
42
36
  }
43
-
44
37
  return self;
45
38
  }
46
39
  RUCY_END
@@ -49,12 +42,99 @@ static
49
42
  RUCY_DEF0(get_round)
50
43
  {
51
44
  CHECK;
52
- return value(THIS->round());
45
+ return array(
46
+ value(THIS->round_left_top()),
47
+ value(THIS->round_right_top()),
48
+ value(THIS->round_left_bottom()),
49
+ value(THIS->round_right_bottom()));
50
+ }
51
+ RUCY_END
52
+
53
+ static
54
+ RUCY_DEF1(set_round_left_top, round)
55
+ {
56
+ CHECK;
57
+ THIS->set_round_left_top(to<coord>(round));
58
+ return round;
59
+ }
60
+ RUCY_END
61
+
62
+ static
63
+ RUCY_DEF0(get_round_left_top)
64
+ {
65
+ CHECK;
66
+ return value(THIS->round_left_top());
53
67
  }
54
68
  RUCY_END
55
69
 
56
70
  static
57
- RUCY_DEF_clear_override_flags(cof, Reflex::RectShape);
71
+ RUCY_DEF1(set_round_right_top, round)
72
+ {
73
+ CHECK;
74
+ THIS->set_round_right_top(to<coord>(round));
75
+ return round;
76
+ }
77
+ RUCY_END
78
+
79
+ static
80
+ RUCY_DEF0(get_round_right_top)
81
+ {
82
+ CHECK;
83
+ return value(THIS->round_right_top());
84
+ }
85
+ RUCY_END
86
+
87
+ static
88
+ RUCY_DEF1(set_round_left_bottom, round)
89
+ {
90
+ CHECK;
91
+ THIS->set_round_left_bottom(to<coord>(round));
92
+ return round;
93
+ }
94
+ RUCY_END
95
+
96
+ static
97
+ RUCY_DEF0(get_round_left_bottom)
98
+ {
99
+ CHECK;
100
+ return value(THIS->round_left_bottom());
101
+ }
102
+ RUCY_END
103
+
104
+ static
105
+ RUCY_DEF1(set_round_right_bottom, round)
106
+ {
107
+ CHECK;
108
+ THIS->set_round_right_bottom(to<coord>(round));
109
+ return round;
110
+ }
111
+ RUCY_END
112
+
113
+ static
114
+ RUCY_DEF0(get_round_right_bottom)
115
+ {
116
+ CHECK;
117
+ return value(THIS->round_right_bottom());
118
+ }
119
+ RUCY_END
120
+
121
+ static
122
+ RUCY_DEF1(set_nsegment, nsegment)
123
+ {
124
+ CHECK;
125
+
126
+ THIS->set_nsegment(to<uint>(nsegment));
127
+ return nsegment;
128
+ }
129
+ RUCY_END
130
+
131
+ static
132
+ RUCY_DEF0(get_nsegment)
133
+ {
134
+ CHECK;
135
+ return value(THIS->nsegment());
136
+ }
137
+ RUCY_END
58
138
 
59
139
 
60
140
  static Class cRectShape;
@@ -64,11 +144,20 @@ Init_rect_shape ()
64
144
  {
65
145
  Module mReflex = define_module("Reflex");
66
146
 
67
- cRectShape = mReflex.define_class("RectShape", Reflex::shape_view_class());
147
+ cRectShape = mReflex.define_class("RectShape", Reflex::shape_class());
68
148
  cRectShape.define_alloc_func(alloc);
69
- cRectShape.define_private_method("round=", set_round);
70
- cRectShape.define_method( "round", get_round);
71
- cRectShape.define_clear_override_flags(cof);
149
+ cRectShape.define_method("round=", set_round);
150
+ cRectShape.define_method("round", get_round);
151
+ cRectShape.define_method("round_left_top=", set_round_left_top);
152
+ cRectShape.define_method("round_left_top", get_round_left_top);
153
+ cRectShape.define_method("round_right_top=", set_round_right_top);
154
+ cRectShape.define_method("round_right_top", get_round_right_top);
155
+ cRectShape.define_method("round_left_bottom=", set_round_left_bottom);
156
+ cRectShape.define_method("round_left_bottom", get_round_left_bottom);
157
+ cRectShape.define_method("round_right_bottom=", set_round_right_bottom);
158
+ cRectShape.define_method("round_right_bottom", get_round_right_bottom);
159
+ cRectShape.define_method("nsegment=", set_nsegment);
160
+ cRectShape.define_method("nsegment", get_nsegment);
72
161
  }
73
162
 
74
163
 
@@ -1,15 +1,31 @@
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
  RUCY_DEF0(init)
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
  RUCY_END
@@ -17,7 +33,10 @@ RUCY_END
17
33
  static
18
34
  RUCY_DEF0(fin)
19
35
  {
36
+ Reflex::Window_set_create_root_view_fun(NULL);
37
+ Reflex::Timer_set_create_fun(NULL);
20
38
  Reflex::fin();
39
+
21
40
  return self;
22
41
  }
23
42
  RUCY_END
@@ -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)
@@ -125,7 +119,7 @@ Init_scroll_event ()
125
119
 
126
120
  cScrollEvent = mReflex.define_class("ScrollEvent", Reflex::event_class());
127
121
  cScrollEvent.define_alloc_func(alloc);
128
- cScrollEvent.define_private_method("initialize", initialize);
122
+ cScrollEvent.define_private_method("initialize", initialize);
129
123
  cScrollEvent.define_private_method("initialize_copy", initialize_copy);
130
124
  cScrollEvent.define_method("x", x);
131
125
  cScrollEvent.define_method("y", y);
@@ -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
 
@@ -43,7 +40,8 @@ static
43
40
  RUCY_DEF0(get_name)
44
41
  {
45
42
  CHECK;
46
- return THIS->name() ? value(THIS->name()) : nil();
43
+ const char* name = C_THIS->name();
44
+ return name ? value(name) : nil();
47
45
  }
48
46
  RUCY_END
49
47
 
@@ -63,14 +61,30 @@ RUCY_DEF1(remove_tag, tag)
63
61
  }
64
62
  RUCY_END
65
63
 
64
+ static
65
+ RUCY_DEF0(clear_tags)
66
+ {
67
+ CHECK;
68
+ THIS->clear_tags();
69
+ }
70
+ RUCY_END
71
+
72
+ static
73
+ RUCY_DEF1(has_tag, tag)
74
+ {
75
+ CHECK;
76
+ return value(C_THIS->has_tag(tag.c_str()));
77
+ }
78
+ RUCY_END
79
+
66
80
  static
67
81
  RUCY_DEF0(each_tag)
68
82
  {
69
83
  CHECK;
70
84
 
71
85
  Value ret;
72
- Reflex::Selector::iterator end = THIS->end();
73
- for (Reflex::Selector::iterator it = THIS->begin(); it != end; ++it)
86
+ Reflex::Selector::const_iterator end = C_THIS->end();
87
+ for (Reflex::Selector::const_iterator it = C_THIS->begin(); it != end; ++it)
74
88
  ret = rb_yield(value(*it));
75
89
  return ret;
76
90
  }
@@ -80,7 +94,7 @@ static
80
94
  RUCY_DEF1(contains, selector)
81
95
  {
82
96
  CHECK;
83
- return value(THIS->contains(to<Reflex::Selector&>(selector)));
97
+ return value(C_THIS->contains(to<Reflex::Selector&>(selector)));
84
98
  }
85
99
  RUCY_END
86
100
 
@@ -88,7 +102,7 @@ static
88
102
  RUCY_DEF1(equal, selector)
89
103
  {
90
104
  CHECK;
91
- return value(*THIS == to<Reflex::Selector&>(selector));
105
+ return value(*C_THIS == to<const Reflex::Selector&>(selector));
92
106
  }
93
107
  RUCY_END
94
108
 
@@ -107,7 +121,9 @@ Init_selector ()
107
121
  cSelector.define_method("name", get_name);
108
122
  cSelector.define_method("add_tag", add_tag);
109
123
  cSelector.define_method("remove_tag", remove_tag);
110
- cSelector.define_method("each_tag", each_tag);
124
+ cSelector.define_method("clear_tags", clear_tags);
125
+ cSelector.define_method("tag?", has_tag);
126
+ cSelector.define_method("each_tag", each_tag);
111
127
  cSelector.define_method("contains", contains);
112
128
  cSelector.define_method("==", equal);
113
129
  }
@@ -118,12 +134,26 @@ namespace Rucy
118
134
 
119
135
 
120
136
  template <> Reflex::Selector
121
- value_to<Reflex::Selector> (Value value, bool convert)
137
+ value_to<Reflex::Selector> (int argc, const Value* argv, bool convert)
122
138
  {
123
- if (convert && (value.is_s() || value.is_sym()))
124
- return Reflex::Selector(value.c_str());
139
+ if (argc == 1 && argv->is_array())
140
+ {
141
+ argc = argv->size();
142
+ argv = argv->as_array();
143
+ }
144
+
145
+ assert(argc > 0 && argv);
146
+
147
+ if (convert)
148
+ {
149
+ if (argc == 1 && (argv->is_s() || argv->is_sym()))
150
+ return Reflex::Selector(argv[0].c_str());
151
+ }
152
+
153
+ if (argc != 1)
154
+ argument_error(__FILE__, __LINE__);
125
155
 
126
- return value_to<Reflex::Selector&>(value, convert);
156
+ return value_to<Reflex::Selector&>(*argv, convert);
127
157
  }
128
158
 
129
159
 
@@ -0,0 +1,130 @@
1
+ // -*- c++ -*-
2
+ #pragma once
3
+ #ifndef __REFLEX_EXT_SELECTOR_H__
4
+ #define __REFLEX_EXT_SELECTOR_H__
5
+
6
+
7
+ #include <reflex/ruby/selector.h>
8
+
9
+
10
+ template <typename T>
11
+ static
12
+ RUCY_DEF1(set_name, name)
13
+ {
14
+ RUCY_CHECK_OBJ(T, self);
15
+ Reflex::HasSelector* this_ = Rucy::to<T*>(self);
16
+
17
+ this_->set_name(name.is_nil() ? NULL : name.c_str());
18
+ }
19
+ RUCY_END
20
+
21
+ template <typename T>
22
+ static
23
+ RUCY_DEF0(get_name)
24
+ {
25
+ RUCY_CHECK_OBJ(T, self);
26
+ const Reflex::HasSelector* this_ = Rucy::to<const T*>(self);
27
+
28
+ return this_->name() ? Rucy::value(this_->name()) : Rucy::nil();
29
+ }
30
+ RUCY_END
31
+
32
+ template <typename T>
33
+ static
34
+ RUCY_DEF1(add_tag, tag)
35
+ {
36
+ RUCY_CHECK_OBJ(T, self);
37
+ Reflex::HasSelector* this_ = Rucy::to<T*>(self);
38
+
39
+ this_->add_tag(tag.c_str());
40
+ }
41
+ RUCY_END
42
+
43
+ template <typename T>
44
+ static
45
+ RUCY_DEF1(remove_tag, tag)
46
+ {
47
+ RUCY_CHECK_OBJ(T, self);
48
+ Reflex::HasSelector* this_ = Rucy::to<T*>(self);
49
+
50
+ this_->remove_tag(tag.c_str());
51
+ }
52
+ RUCY_END
53
+
54
+ template <typename T>
55
+ static
56
+ RUCY_DEF0(clear_tags)
57
+ {
58
+ RUCY_CHECK_OBJ(T, self);
59
+ Reflex::HasSelector* this_ = Rucy::to<T*>(self);
60
+
61
+ this_->clear_tags();
62
+ }
63
+ RUCY_END
64
+
65
+ template <typename T>
66
+ static
67
+ RUCY_DEF1(has_tag, tag)
68
+ {
69
+ RUCY_CHECK_OBJ(T, self);
70
+ const Reflex::HasSelector* this_ = Rucy::to<const T*>(self);
71
+
72
+ return Rucy::value(this_->has_tag(tag.c_str()));
73
+ }
74
+ RUCY_END
75
+
76
+ template <typename T>
77
+ static
78
+ RUCY_DEF0(each_tag)
79
+ {
80
+ RUCY_CHECK_OBJ(T, self);
81
+ const Reflex::HasSelector* this_ = Rucy::to<const T*>(self);
82
+
83
+ Rucy::Value ret;
84
+ Reflex::Selector::const_iterator end = this_->tag_end();
85
+ for (Reflex::Selector::const_iterator it = this_->tag_begin(); it != end; ++it)
86
+ ret = rb_yield(Rucy::value(*it));
87
+ return ret;
88
+ }
89
+ RUCY_END
90
+
91
+ template <typename T>
92
+ static
93
+ RUCY_DEF1(set_selector, selector)
94
+ {
95
+ RUCY_CHECK_OBJ(T, self);
96
+ Reflex::HasSelector* this_ = Rucy::to<T*>(self);
97
+
98
+ this_->set_selector(Rucy::to<Reflex::Selector>(selector));
99
+ }
100
+ RUCY_END
101
+
102
+ template <typename T>
103
+ static
104
+ RUCY_DEF0(get_selector)
105
+ {
106
+ RUCY_CHECK_OBJ(T, self);
107
+ const Reflex::HasSelector* this_ = Rucy::to<const T*>(self);
108
+
109
+ return Rucy::value(this_->selector());
110
+ }
111
+ RUCY_END
112
+
113
+
114
+ template <typename T>
115
+ static void
116
+ define_selector_methods (Rucy::Class klass)
117
+ {
118
+ klass.define_method("name=", set_name<T>);
119
+ klass.define_method("name", get_name<T>);
120
+ klass.define_method("add_tag", add_tag<T>);
121
+ klass.define_method("remove_tag", remove_tag<T>);
122
+ klass.define_method("clear_tags", clear_tags<T>);
123
+ klass.define_method("tag?", has_tag<T>);
124
+ klass.define_method("each_tag", each_tag<T>);
125
+ klass.define_method("selector=", set_selector<T>);
126
+ klass.define_method("selector", get_selector<T>);
127
+ }
128
+
129
+
130
+ #endif//EOH