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
@@ -7,10 +7,14 @@
7
7
  #include <vector>
8
8
  #include <xot/ref.h>
9
9
  #include <xot/pimpl.h>
10
- #include <reflex/point.h>
11
- #include <reflex/bounds.h>
12
- #include <reflex/painter.h>
10
+ #include <xot/util.h>
11
+ #include <rays/point.h>
12
+ #include <rays/bounds.h>
13
+ #include <rays/painter.h>
14
+ #include <reflex/defs.h>
15
+ #include <reflex/selector.h>
13
16
  #include <reflex/style.h>
17
+ #include <reflex/shape.h>
14
18
  #include <reflex/event.h>
15
19
 
16
20
 
@@ -22,11 +26,10 @@ namespace Reflex
22
26
 
23
27
 
24
28
  class Window;
29
+ class Filter;
25
30
 
26
- class Body;
27
31
 
28
-
29
- class View : public Xot::RefCountable<>
32
+ class View : public Xot::RefCountable<>, public HasSelector
30
33
  {
31
34
 
32
35
  typedef View This;
@@ -35,9 +38,11 @@ namespace Reflex
35
38
 
36
39
  typedef Xot::Ref<This> Ref;
37
40
 
38
- typedef std::vector<Ref> ChildList;
41
+ typedef std::vector<Ref> ChildList;
42
+
43
+ typedef std::vector<Style> StyleList;
39
44
 
40
- typedef std::vector<Style> StyleList;
45
+ typedef std::vector<Shape::Ref> ShapeList;
41
46
 
42
47
  typedef ChildList:: iterator child_iterator;
43
48
 
@@ -47,18 +52,33 @@ namespace Reflex
47
52
 
48
53
  typedef StyleList::const_iterator const_style_iterator;
49
54
 
50
- typedef Selector:: iterator tag_iterator;
55
+ typedef ShapeList:: iterator shape_iterator;
56
+
57
+ typedef ShapeList::const_iterator const_shape_iterator;
58
+
59
+ enum Flag
60
+ {
61
+
62
+ FLAG_CLIP = Xot::bit(0),
51
63
 
52
- typedef Selector:: const_iterator const_tag_iterator;
64
+ FLAG_CACHE = Xot::bit(1),
65
+
66
+ FLAG_RESIZE_TO_FIT = Xot::bit(2),
67
+
68
+ FLAG_SCROLL_TO_FIT = Xot::bit(3),
69
+
70
+ FLAG_LAST = FLAG_SCROLL_TO_FIT
71
+
72
+ };// Flag
53
73
 
54
74
  enum Capture
55
75
  {
56
76
 
57
77
  CAPTURE_NONE = 0,
58
78
 
59
- CAPTURE_KEY = 0x1 << 0,
79
+ CAPTURE_KEY = Xot::bit(0),
60
80
 
61
- CAPTURE_POINTER = 0x1 << 1,
81
+ CAPTURE_POINTER = Xot::bit(1),
62
82
 
63
83
  CAPTURE_ALL = CAPTURE_KEY | CAPTURE_POINTER,
64
84
 
@@ -74,12 +94,38 @@ namespace Reflex
74
94
 
75
95
  virtual void redraw ();
76
96
 
97
+ virtual void focus (bool state = true);
98
+
99
+ virtual void blur ();
100
+
101
+ virtual bool has_focus () const;
102
+
103
+ virtual Timer* start_timer (float seconds, int count = 1);
104
+
105
+ virtual Timer* start_interval (float seconds);
106
+
107
+ virtual void update_layout ();
108
+
109
+ virtual Point from_parent (const Point& point) const;
110
+
111
+ virtual Point to_parent (const Point& point) const;
112
+
113
+ virtual Point from_window (const Point& point) const;
114
+
115
+ virtual Point to_window (const Point& point) const;
116
+
117
+ virtual Point from_screen (const Point& point) const;
118
+
119
+ virtual Point to_screen (const Point& point) const;
120
+
77
121
  virtual void add_child (View* child);
78
122
 
79
123
  virtual void remove_child (View* child);
80
124
 
81
- virtual void find_children (
82
- ChildList* result, const Selector& selector, bool recursive = false) const;
125
+ virtual void clear_children ();
126
+
127
+ virtual ChildList find_children (
128
+ const Selector& selector, bool recursive = true) const;
83
129
 
84
130
  virtual child_iterator child_begin ();
85
131
 
@@ -89,7 +135,7 @@ namespace Reflex
89
135
 
90
136
  virtual const_child_iterator child_end () const;
91
137
 
92
- virtual Style* style (bool create = false);
138
+ virtual Style* style (bool create = true);
93
139
 
94
140
  virtual const Style* style () const;
95
141
 
@@ -97,12 +143,15 @@ namespace Reflex
97
143
 
98
144
  virtual void remove_style (const Style& style);
99
145
 
100
- virtual Style* get_style (const Selector& selector, bool create = false);
146
+ virtual void clear_styles ();
147
+
148
+ virtual Style* get_style (
149
+ const Selector& selector, bool create = true);
101
150
 
102
151
  virtual const Style* get_style (const Selector& selector) const;
103
152
 
104
- virtual void find_styles (
105
- StyleList* result, const Selector& selector, bool recursive = false) const;
153
+ virtual StyleList find_styles (
154
+ const Selector& selector, bool recursive = false) const;
106
155
 
107
156
  virtual style_iterator style_begin ();
108
157
 
@@ -112,41 +161,43 @@ namespace Reflex
112
161
 
113
162
  virtual const_style_iterator style_end () const;
114
163
 
115
- virtual void focus (bool state = true);
164
+ virtual void set_shape (Shape* shape);
116
165
 
117
- virtual void blur ();
166
+ virtual Shape* shape (bool create = true);
118
167
 
119
- virtual bool has_focus () const;
168
+ virtual const Shape* shape () const;
120
169
 
121
- virtual void resize_to_fit ();
170
+ virtual void add_shape (Shape* shape);
122
171
 
123
- virtual Point content_size () const;
172
+ virtual void remove_shape (Shape* shape);
124
173
 
125
- virtual void make_body ();
174
+ virtual void clear_shapes ();
126
175
 
127
- virtual void clear_body ();
176
+ virtual ShapeList find_shapes (const Selector& selector) const;
128
177
 
129
- virtual void set_name (const char* name);
178
+ virtual shape_iterator shape_begin ();
130
179
 
131
- virtual const char* name () const;
180
+ virtual const_shape_iterator shape_begin () const;
132
181
 
133
- virtual void add_tag (const char* tag);
182
+ virtual shape_iterator shape_end ();
134
183
 
135
- virtual void remove_tag (const char* tag);
184
+ virtual const_shape_iterator shape_end () const;
136
185
 
137
- virtual tag_iterator tag_begin ();
186
+ virtual void set_filter (Filter* filter);
138
187
 
139
- virtual const_tag_iterator tag_begin () const;
188
+ virtual Filter* filter ();
140
189
 
141
- virtual tag_iterator tag_end ();
190
+ virtual const Filter* filter () const;
142
191
 
143
- virtual const_tag_iterator tag_end () const;
192
+ virtual void set_name (const char* name);
144
193
 
145
- virtual void set_selector (const Selector& selector);
194
+ virtual void add_tag (const char* tag);
146
195
 
147
- virtual Selector& selector ();
196
+ virtual void remove_tag (const char* tag);
148
197
 
149
- virtual const Selector& selector () const;
198
+ virtual void clear_tags ();
199
+
200
+ virtual void set_selector (const Selector& selector);
150
201
 
151
202
  virtual void set_frame (coord x, coord y, coord width, coord height);
152
203
 
@@ -154,11 +205,13 @@ namespace Reflex
154
205
 
155
206
  virtual const Bounds& frame () const;
156
207
 
157
- virtual void set_zoom (float zoom);
208
+ virtual Bounds content_bounds () const;
158
209
 
159
- virtual float zoom () const;
210
+ virtual void fit_to_content ();
160
211
 
161
- virtual float angle () const;
212
+ virtual void set_angle (float degree);
213
+
214
+ virtual float angle () const;
162
215
 
163
216
  virtual void scroll_to (coord x, coord y, coord z = 0);
164
217
 
@@ -170,10 +223,20 @@ namespace Reflex
170
223
 
171
224
  virtual const Point& scroll () const;
172
225
 
226
+ virtual void set_zoom (float zoom);
227
+
228
+ virtual float zoom () const;
229
+
173
230
  virtual void set_capture (uint types);
174
231
 
175
232
  virtual uint capture () const;
176
233
 
234
+ virtual void add_flag (uint flags);
235
+
236
+ virtual void remove_flag (uint flags);
237
+
238
+ virtual bool has_flag (uint flags) const;
239
+
177
240
  virtual View* parent ();
178
241
 
179
242
  virtual const View* parent () const;
@@ -182,9 +245,71 @@ namespace Reflex
182
245
 
183
246
  virtual const Window* window () const;
184
247
 
185
- virtual Body* body ();
248
+ //
249
+ // for physics body
250
+ //
251
+ virtual void apply_force (coord x, coord y);
252
+
253
+ virtual void apply_force (const Point& force);
254
+
255
+ virtual void apply_torque (float torque);
256
+
257
+ virtual void apply_linear_impulse (coord x, coord y);
258
+
259
+ virtual void apply_linear_impulse (const Point& impulse);
260
+
261
+ virtual void apply_angular_impulse (float impulse);
262
+
263
+ virtual void set_static (bool state = true);
264
+
265
+ virtual bool is_static () const;
266
+
267
+ virtual void set_dynamic (bool state = true);
268
+
269
+ virtual bool is_dynamic () const;
270
+
271
+ virtual void set_density (float density);
272
+
273
+ virtual float density () const;
274
+
275
+ virtual void set_friction (float friction);
276
+
277
+ virtual float friction () const;
278
+
279
+ virtual void set_restitution (float restitution);
280
+
281
+ virtual float restitution () const;
282
+
283
+ virtual void set_sensor (bool state);
284
+
285
+ virtual bool is_sensor () const;
286
+
287
+ virtual void set_category_bits (uint bits);
288
+
289
+ virtual uint category_bits () const;
186
290
 
187
- virtual const Body* body () const;
291
+ virtual void set_collision_mask (uint mask);
292
+
293
+ virtual uint collision_mask () const;
294
+
295
+ virtual void set_linear_velocity (coord x, coord y);
296
+
297
+ virtual void set_linear_velocity (const Point& velocity);
298
+
299
+ virtual Point linear_velocity () const;
300
+
301
+ virtual void set_angular_velocity (float velocity);
302
+
303
+ virtual float angular_velocity () const;
304
+
305
+ virtual void set_gravity_scale (float scale);
306
+
307
+ virtual float gravity_scale () const;
308
+
309
+ //
310
+ // for physics child world
311
+ //
312
+ virtual void update_physics (float duration = 0);
188
313
 
189
314
  virtual float meter2pixel (float meter = 1, bool create_world = true);
190
315
 
@@ -196,26 +321,21 @@ namespace Reflex
196
321
 
197
322
  virtual Point gravity () const;
198
323
 
199
- virtual Body* wall ();
200
-
201
- virtual const Body* wall () const;
202
-
203
- virtual void set_debug (bool state);
324
+ virtual void set_time_scale (float scale);
204
325
 
205
- virtual bool debugging () const;
326
+ virtual float time_scale () const;
206
327
 
207
- virtual Point from_parent (const Point& point) const;
208
-
209
- virtual Point to_parent (const Point& point) const;
328
+ virtual View* wall ();
210
329
 
211
- virtual Point from_window (const Point& point) const;
330
+ virtual const View* wall () const;
212
331
 
213
- virtual Point to_window (const Point& point) const;
332
+ virtual void set_debug (bool debug = true);
214
333
 
215
- virtual Point from_screen (const Point& point) const;
216
-
217
- virtual Point to_screen (const Point& point) const;
334
+ virtual bool debug () const;
218
335
 
336
+ //
337
+ // event handlers
338
+ //
219
339
  virtual void on_attach (Event* e);
220
340
 
221
341
  virtual void on_detach (Event* e);
@@ -238,8 +358,6 @@ namespace Reflex
238
358
 
239
359
  virtual void on_focus (FocusEvent* e);
240
360
 
241
- virtual void on_blur (FocusEvent* e);
242
-
243
361
  virtual void on_key (KeyEvent* e);
244
362
 
245
363
  virtual void on_key_down (KeyEvent* e);
@@ -258,6 +376,8 @@ namespace Reflex
258
376
 
259
377
  virtual void on_capture (CaptureEvent* e);
260
378
 
379
+ virtual void on_timer (TimerEvent* e);
380
+
261
381
  virtual void on_contact (ContactEvent* e);
262
382
 
263
383
  virtual void on_contact_begin (ContactEvent* e);
@@ -273,7 +393,7 @@ namespace Reflex
273
393
  Xot::PImpl<Data> self;
274
394
 
275
395
  #ifdef REFLEX_VIEW_REF_DEBUG
276
- virtual void retain (void* data = NULL) const
396
+ void retain (intptr_t data) const override
277
397
  {
278
398
  RefCountable::retain(data);
279
399
  String spaces = "";
@@ -281,7 +401,7 @@ namespace Reflex
281
401
  printf("(%d)%s-> %s\n", refc_count(), spaces.c_str(), name());
282
402
  }
283
403
 
284
- virtual void release (void* data = NULL) const
404
+ void release (intptr_t data) const override
285
405
  {
286
406
  RefCountable::release(data);
287
407
  String spaces = "";
@@ -294,6 +414,8 @@ namespace Reflex
294
414
 
295
415
  virtual ~View ();
296
416
 
417
+ virtual SelectorPtr* get_selector_ptr ();
418
+
297
419
  };// View
298
420
 
299
421
 
@@ -6,9 +6,10 @@
6
6
 
7
7
  #include <xot/ref.h>
8
8
  #include <xot/pimpl.h>
9
- #include <reflex/point.h>
10
- #include <reflex/bounds.h>
11
- #include <reflex/painter.h>
9
+ #include <rays/point.h>
10
+ #include <rays/bounds.h>
11
+ #include <rays/painter.h>
12
+ #include <reflex/defs.h>
12
13
  #include <reflex/event.h>
13
14
 
14
15
 
data/include/reflex.h CHANGED
@@ -7,18 +7,19 @@
7
7
  #include <reflex/defs.h>
8
8
  #include <reflex/reflex.h>
9
9
  #include <reflex/exception.h>
10
+ #include <reflex/debug.h>
10
11
 
11
12
  #include <reflex/selector.h>
12
- #include <reflex/style.h>
13
13
  #include <reflex/event.h>
14
+ #include <reflex/style.h>
15
+ #include <reflex/timer.h>
16
+ #include <reflex/shape.h>
17
+ #include <reflex/filter.h>
14
18
 
15
19
  #include <reflex/application.h>
16
20
  #include <reflex/window.h>
17
21
  #include <reflex/view.h>
18
22
 
19
- #include <reflex/body.h>
20
- #include <reflex/fixture.h>
21
-
22
23
  #include <reflex/image_view.h>
23
24
 
24
25
 
@@ -2,6 +2,7 @@
2
2
 
3
3
 
4
4
  require 'xot/setter'
5
+ require 'xot/universal_accessor'
5
6
  require 'xot/block_util'
6
7
  require 'reflex/ext'
7
8
  require 'reflex/helper'
@@ -15,14 +16,16 @@ module Reflex
15
16
  include Xot::Setter
16
17
  include Hookable
17
18
 
18
- def initialize (opts = {}, &block)
19
+ universal_accessor :name
20
+
21
+ def initialize (options = nil, &block)
19
22
  super()
20
- set opts
23
+ set options if options
21
24
  @start_block = block if block
22
25
  end
23
26
 
24
27
  def self.start (*args, &block)
25
- self.new(*args, &block).start
28
+ new(*args, &block).start
26
29
  end
27
30
 
28
31
  private
data/lib/reflex/button.rb CHANGED
@@ -19,7 +19,7 @@ module Reflex
19
19
  self.text = self.name unless self.text
20
20
  end
21
21
 
22
- def content_size ()
22
+ def content_bounds ()
23
23
  f = window.painter.font
24
24
  return f.width(@text) + 2, f.height + 2
25
25
  end
@@ -28,7 +28,7 @@ module Reflex
28
28
  end
29
29
 
30
30
  def on_draw (e)
31
- e.painter.color (pressing? ? :white : :none), :white do |p|
31
+ e.painter.push fill: (pressing? ? :white : :none), stroke: :white do |p|
32
32
  p.rect e.bounds
33
33
 
34
34
  if @text
@@ -1,29 +1,30 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
3
 
4
- require 'reflex/flags'
4
+ require 'reflex/ext'
5
+ require 'reflex/view'
5
6
 
6
7
 
7
8
  module Reflex
8
9
 
9
10
 
10
- class CaptureEvent
11
+ class CaptureEvent < Event
11
12
 
12
13
  def begin ()
13
- CAPTURE_FLAG.bits2symbols get_begin
14
+ View.capture_flag.bits2symbols get_begin
14
15
  end
15
16
 
16
17
  def begin? (*symbols)
17
- bits = CAPTURE_FLAG.symbols2bits *symbols
18
+ bits = View.capture_flag.symbols2bits *symbols
18
19
  (bits & get_begin) == bits
19
20
  end
20
21
 
21
22
  def end ()
22
- CAPTURE_FLAG.bits2symbols get_end
23
+ View.capture_flag.bits2symbols get_end
23
24
  end
24
25
 
25
26
  def end? (*symbols)
26
- bits = CAPTURE_FLAG.symbols2bits *symbols
27
+ bits = View.capture_flag.symbols2bits *symbols
27
28
  (bits & get_end) == bits
28
29
  end
29
30
 
@@ -1,17 +1,22 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
3
 
4
+ require 'xot/const_symbol_accessor'
4
5
  require 'reflex/ext'
5
6
 
6
7
 
7
8
  module Reflex
8
9
 
9
10
 
10
- class ContactEvent
11
+ class ContactEvent < Event
11
12
 
12
- def type ()
13
- TYPE2SYM[get_type] || :none
14
- end
13
+ alias get_type type
14
+
15
+ const_symbol_reader :type, {
16
+ none: TYPE_NONE,
17
+ begin: TYPE_BEGIN,
18
+ end: TYPE_END
19
+ }
15
20
 
16
21
  def begin? ()
17
22
  get_type == TYPE_BEGIN
@@ -22,16 +27,9 @@ module Reflex
22
27
  end
23
28
 
24
29
  def inspect ()
25
- "#<Reflex::ContactEvent type:#{type} view:#{view}>"
30
+ "#<Reflex::ContactEvent type:#{type} shape:#{shape} view:#{view}>"
26
31
  end
27
32
 
28
- private
29
-
30
- TYPE2SYM = {
31
- TYPE_BEGIN => :begin,
32
- TYPE_END => :end,
33
- }
34
-
35
33
  end# ContactEvent
36
34
 
37
35
 
@@ -1,13 +1,18 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
3
 
4
+ require 'xot/block_util'
4
5
  require 'reflex/ext'
5
6
 
6
7
 
7
8
  module Reflex
8
9
 
9
10
 
10
- class DrawEvent
11
+ class DrawEvent < Event
12
+
13
+ def paint (&block)
14
+ Xot::BlockUtil.instance_eval_or_block_call painter, &block if block
15
+ end
11
16
 
12
17
  def inspect ()
13
18
  "#<Reflex::DrawEvent painter:#{painter} bounds:#{bounds} dt:#{dt} fps:#{fps}>"
@@ -0,0 +1,27 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+
4
+ require 'xot/universal_accessor'
5
+ require 'reflex/shape'
6
+
7
+
8
+ module Reflex
9
+
10
+
11
+ class EllipseShape < Shape
12
+
13
+ def angle= (range)
14
+ angle_from range.min
15
+ angle_to range.max
16
+ end
17
+
18
+ def angle ()
19
+ angle_from..angle_to
20
+ end
21
+
22
+ universal_accessor :angle_from, :angle_to, :angle, :hole_size, :nsegment
23
+
24
+ end# EllipseShape
25
+
26
+
27
+ end# Reflex
@@ -0,0 +1,18 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+
4
+ require 'xot/universal_accessor'
5
+ require 'reflex/ext'
6
+
7
+
8
+ module Reflex
9
+
10
+
11
+ class Filter
12
+
13
+ universal_accessor :shader
14
+
15
+ end# Filter
16
+
17
+
18
+ end# Reflex
@@ -2,6 +2,7 @@
2
2
 
3
3
 
4
4
  require 'xot/setter'
5
+ require 'xot/universal_accessor'
5
6
 
6
7
 
7
8
  module Reflex
@@ -11,6 +12,9 @@ module Reflex
11
12
 
12
13
  include Xot::Setter
13
14
 
15
+ universal_accessor :density, :friction, :restitution,
16
+ :sensor, :category, :collision
17
+
14
18
  end# Fixture
15
19
 
16
20
 
@@ -1,17 +1,22 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
3
 
4
+ require 'xot/const_symbol_accessor'
4
5
  require 'reflex/ext'
5
6
 
6
7
 
7
8
  module Reflex
8
9
 
9
10
 
10
- class FocusEvent
11
+ class FocusEvent < Event
11
12
 
12
- def type ()
13
- TYPE2SYM[get_type] || :none
14
- end
13
+ alias get_type type
14
+
15
+ const_symbol_reader :type, {
16
+ none: TYPE_NONE,
17
+ focus: TYPE_FOCUS,
18
+ blur: TYPE_BLUR
19
+ }
15
20
 
16
21
  def focus? ()
17
22
  get_type == TYPE_FOCUS
@@ -22,16 +27,9 @@ module Reflex
22
27
  end
23
28
 
24
29
  def inspect ()
25
- "#<Reflex::FocusEvent type:#{type} focus:#{focus} last:#{last}>"
30
+ "#<Reflex::FocusEvent type:#{type} current:#{current} last:#{last}>"
26
31
  end
27
32
 
28
- private
29
-
30
- TYPE2SYM = {
31
- TYPE_FOCUS => :focus,
32
- TYPE_BLUR => :blur,
33
- }
34
-
35
33
  end# FocusEvent
36
34
 
37
35