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,7 +7,7 @@ require 'reflex/ext'
7
7
  module Reflex
8
8
 
9
9
 
10
- class FrameEvent
10
+ class FrameEvent < Event
11
11
 
12
12
  alias dw dwidth
13
13
  alias dh dheight
data/lib/reflex/helper.rb CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
 
4
4
  require 'xot/hookable'
5
+ require 'xot/universal_accessor'
5
6
  require 'reflex/point'
6
7
  require 'reflex/bounds'
7
8
 
@@ -22,38 +23,28 @@ module Reflex
22
23
 
23
24
  module HasFrame
24
25
 
25
- def frame= (*args)
26
- set_frame args.flatten
27
- get_frame
28
- end
29
-
30
- def frame (*args)
31
- send :frame=, *args unless args.empty?
32
- get_frame
33
- end
34
-
35
26
  def move_to (*args)
36
- self.frame = get_frame.move_to *args
27
+ self.frame = frame.move_to *args
37
28
  self
38
29
  end
39
30
 
40
31
  def move_by (*args)
41
- self.frame = get_frame.move_by *args
32
+ self.frame = frame.move_by *args
42
33
  self
43
34
  end
44
35
 
45
36
  def resize_to (*args)
46
- self.frame = get_frame.resize_to *args
37
+ self.frame = frame.resize_to *args
47
38
  self
48
39
  end
49
40
 
50
41
  def resize_by (*args)
51
- self.frame = get_frame.resize_by *args
42
+ self.frame = frame.resize_by *args
52
43
  self
53
44
  end
54
45
 
55
46
  def inset_by (*args)
56
- self.frame = get_frame.inset_by *args
47
+ self.frame = frame.inset_by *args
57
48
  self
58
49
  end
59
50
 
@@ -64,20 +55,17 @@ module Reflex
64
55
  lt rt lb rb
65
56
  position pos size center
66
57
  ].each do |name|
67
- name_assign = "#{name}=".intern
68
- name = name.intern
69
-
70
- define_method name do |*args|
71
- send name_assign, *args unless args.empty?
72
- get_frame.send name
73
- end
74
-
75
- define_method name_assign do |*args|
76
- b = get_frame
77
- ret = b.send name_assign, *args
78
- set_frame b
79
- ret
80
- end
58
+ class_eval <<-END
59
+ def #{name} ()
60
+ frame.#{name}
61
+ end
62
+ def #{name}= (*args)
63
+ self.frame = frame.tap {|b| b.send :#{name}=, *args}
64
+ #{name}
65
+ end
66
+ END
67
+
68
+ universal_accessor name
81
69
  end
82
70
 
83
71
  end# HasFrame
@@ -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 KeyEvent
11
+ class KeyEvent < 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
+ down: TYPE_DOWN,
18
+ up: TYPE_UP
19
+ }
15
20
 
16
21
  def down? ()
17
22
  get_type == TYPE_DOWN
@@ -21,17 +26,14 @@ module Reflex
21
26
  get_type == TYPE_UP
22
27
  end
23
28
 
29
+ def repeat? ()
30
+ repeat >= 1
31
+ end
32
+
24
33
  def inspect ()
25
34
  "#<Reflex::KeyEvent type:#{type} chars:'#{chars}' code:#{code} mod:#{modifiers} repeat:#{repeat} capture?:#{capture?}>"
26
35
  end
27
36
 
28
- private
29
-
30
- TYPE2SYM = {
31
- TYPE_DOWN => :down,
32
- TYPE_UP => :up,
33
- }
34
-
35
37
  end# KeyEvent
36
38
 
37
39
 
@@ -0,0 +1,18 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+
4
+ require 'xot/universal_accessor'
5
+ require 'reflex/shape'
6
+
7
+
8
+ module Reflex
9
+
10
+
11
+ class LineShape < Shape
12
+
13
+ universal_accessor :loop
14
+
15
+ end# LineShape
16
+
17
+
18
+ end# Reflex
@@ -1,13 +1,13 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
3
 
4
- require 'rays/texture'
4
+ require 'rays/matrix'
5
5
 
6
6
 
7
7
  module Reflex
8
8
 
9
9
 
10
- Texture = Rays::Texture
10
+ Matrix = Rays::Matrix
11
11
 
12
12
 
13
13
  end# Reflex
data/lib/reflex/module.rb CHANGED
@@ -6,6 +6,8 @@ module Reflex
6
6
 
7
7
  module Module
8
8
 
9
+ module_function
10
+
9
11
  def name ()
10
12
  super.split('::')[-2]
11
13
  end
@@ -15,10 +17,10 @@ module Reflex
15
17
  end
16
18
 
17
19
  def root_dir (path = '')
18
- File.expand_path "../../../#{path}", __FILE__
20
+ File.expand_path "../../#{path}", __dir__
19
21
  end
20
22
 
21
- def include_dir ()
23
+ def inc_dir ()
22
24
  root_dir 'include'
23
25
  end
24
26
 
@@ -26,23 +28,6 @@ module Reflex
26
28
  root_dir 'lib'
27
29
  end
28
30
 
29
- def task_dir ()
30
- root_dir 'task'
31
- end
32
-
33
- def load_tasks (*names)
34
- if names.empty?
35
- Dir["#{task_dir}/**/*.rake"].each {|path| load path}
36
- else
37
- names.each do |name|
38
- path = "#{task_dir}/#{name}.rake"
39
- load path if File.exist? path
40
- end
41
- end
42
- end
43
-
44
- extend self
45
-
46
31
  end# Module
47
32
 
48
33
 
@@ -1,19 +1,36 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
3
 
4
+ require 'xot/bit_flag_accessor'
5
+ require 'xot/const_symbol_accessor'
4
6
  require 'reflex/ext'
5
7
 
6
8
 
7
9
  module Reflex
8
10
 
9
11
 
10
- class PointerEvent
12
+ class PointerEvent < Event
11
13
 
12
14
  alias pos position
13
15
 
14
- def type ()
15
- TYPE2SYM[get_type] || :none
16
- end
16
+ alias get_type type
17
+ alias get_pointer_type pointer_type
18
+
19
+ const_symbol_reader :type, {
20
+ none: TYPE_NONE,
21
+ down: TYPE_DOWN,
22
+ up: TYPE_UP,
23
+ move: TYPE_MOVE
24
+ }
25
+
26
+ bit_flag_reader :pointer_type, {
27
+ none: POINTER_NONE,
28
+ mouse_left: POINTER_MOUSE_LEFT,
29
+ mouse_right: POINTER_MOUSE_RIGHT,
30
+ mouse_middle: POINTER_MOUSE_MIDDLE,
31
+ touch: POINTER_TOUCH,
32
+ pen: POINTER_PEN
33
+ }
17
34
 
18
35
  def down? ()
19
36
  get_type == TYPE_DOWN
@@ -28,57 +45,29 @@ module Reflex
28
45
  end
29
46
 
30
47
  def left? ()
31
- pointer_type.include? :mouse_left
48
+ (get_pointer_type & POINTER_MOUSE_LEFT) != 0
32
49
  end
33
50
 
34
51
  def right? ()
35
- pointer_type.include? :mouse_right
52
+ (get_pointer_type & POINTER_MOUSE_RIGHT) != 0
36
53
  end
37
54
 
38
55
  def middle? ()
39
- pointer_type.include? :mouse_middle
56
+ (get_pointer_type & POINTER_MOUSE_MIDDLE) != 0
40
57
  end
41
58
 
42
59
  def touch? ()
43
- pointer_type.include? :touch
60
+ (get_pointer_type & POINTER_TOUCH) != 0
44
61
  end
45
62
 
46
63
  def pen? ()
47
- pointer_type.include? :pen
48
- end
49
-
50
- def pointer_type ()
51
- type_, array = get_pointer_type, []
52
- POINTER_TYPE_LAST.to_s(2).sub(/^0+/, '').size.times do |i|
53
- bit = 0x1 << i
54
- if (type_ & bit) != 0
55
- sym = POINTERTYPE2SYM[bit]
56
- array << sym if sym
57
- end
58
- end
59
- array
64
+ (get_pointer_type & POINTER_PEN) != 0
60
65
  end
61
66
 
62
67
  def inspect ()
63
68
  "#<Reflex::PointerEvent type:#{type}/#{pointer_type} x:#{x} y:#{y} size:#{size} mod:#{modifiers} count:#{count} drag:#{drag?}>"
64
69
  end
65
70
 
66
- private
67
-
68
- TYPE2SYM = {
69
- TYPE_DOWN => :down,
70
- TYPE_UP => :up,
71
- TYPE_MOVE => :move
72
- }
73
-
74
- POINTERTYPE2SYM = {
75
- POINTER_MOUSE_LEFT => :mouse_left,
76
- POINTER_MOUSE_RIGHT => :mouse_right,
77
- POINTER_MOUSE_MIDDLE => :mouse_middle,
78
- POINTER_TOUCH => :touch,
79
- POINTER_PEN => :pen,
80
- }
81
-
82
71
  end# PointerEvent
83
72
 
84
73
 
@@ -0,0 +1,14 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+
4
+ require 'rays/polygon'
5
+ require 'rays/polygon_line'
6
+
7
+
8
+ module Reflex
9
+
10
+
11
+ Polygon = Rays::Polygon
12
+
13
+
14
+ end# Reflex
@@ -0,0 +1,23 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+
4
+ require 'xot/universal_accessor'
5
+ require 'reflex/shape'
6
+
7
+
8
+ module Reflex
9
+
10
+
11
+ class PolygonShape < Shape
12
+
13
+ universal_accessor :polygon
14
+
15
+ def initialize (polygon, *args, &block)
16
+ super *args, &block
17
+ self.polygon = polygon
18
+ end
19
+
20
+ end# PolygonShape
21
+
22
+
23
+ end# Reflex
@@ -0,0 +1,13 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+
4
+ require 'rays/polyline'
5
+
6
+
7
+ module Reflex
8
+
9
+
10
+ Polyline = Rays::Polyline
11
+
12
+
13
+ end# Reflex
@@ -0,0 +1,20 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+
4
+ require 'xot/universal_accessor'
5
+ require 'reflex/shape'
6
+
7
+
8
+ module Reflex
9
+
10
+
11
+ class RectShape < Shape
12
+
13
+ universal_accessor :nsegment, :round,
14
+ :round_left_top, :round_right_top,
15
+ :round_left_bottom, :round_right_bottom
16
+
17
+ end# RectShape
18
+
19
+
20
+ end# Reflex
data/lib/reflex/reflex.rb CHANGED
@@ -19,9 +19,7 @@ module Reflex
19
19
  end
20
20
 
21
21
  def window (*args, &block)
22
- w = Window.new *args, &block
23
- w.show
24
- w
22
+ Window.new(*args, &block).tap {|w| w.show}
25
23
  end
26
24
 
27
25
  self
@@ -7,7 +7,7 @@ require 'reflex/ext'
7
7
  module Reflex
8
8
 
9
9
 
10
- class ScrollEvent
10
+ class ScrollEvent < Event
11
11
 
12
12
  def inspect ()
13
13
  "#<Reflex::ScrollEvent x:#{x} y:#{y} z:#{z} dx:#{dx} dy:#{dy} dz:#{dz}>"
@@ -20,9 +20,9 @@ module Reflex
20
20
  arg0.kind_of?(Selector) ? arg0 : self.new(*args)
21
21
  end
22
22
 
23
- def initialize (opts = {}, &block)
23
+ def initialize (options = nil, &block)
24
24
  super()
25
- set opts
25
+ set options if options
26
26
  Xot::BlockUtil.instance_eval_or_block_call self, &block if block
27
27
  end
28
28
 
@@ -0,0 +1,62 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+
4
+ require 'xot/setter'
5
+ require 'xot/universal_accessor'
6
+ require 'xot/block_util'
7
+ require 'reflex/ext'
8
+ require 'reflex/helper'
9
+
10
+
11
+ module Reflex
12
+
13
+
14
+ class Shape
15
+
16
+ include Xot::Setter
17
+ include Hookable
18
+ include HasFrame
19
+ include HasTags
20
+
21
+ alias sensor? sensor
22
+
23
+ universal_accessor :name, :selector,
24
+ :density, :friction, :restitution, :sensor,
25
+ :category_bits, :collision_mask
26
+
27
+ def initialize (options = nil, &block)
28
+ super()
29
+ set options if options
30
+ Xot::BlockUtil.instance_eval_or_block_call self, &block if block
31
+ end
32
+
33
+ def on_contact (e)
34
+ end
35
+
36
+ def on_contact_begin (e)
37
+ end
38
+
39
+ def on_contact_end (e)
40
+ end
41
+
42
+ private
43
+
44
+ def on_contact! (*args)
45
+ call_contact! *args
46
+ owner&.delay {on_contact *args}# delay to avoid physics world lock
47
+ end
48
+
49
+ def on_contact_begin! (*args)
50
+ call_contact_begin! *args
51
+ owner&.delay {on_contact_begin *args}
52
+ end
53
+
54
+ def on_contact_end! (*args)
55
+ call_contact_end! *args
56
+ owner&.delay {on_contact_end *args}
57
+ end
58
+
59
+ end# Shape
60
+
61
+
62
+ end# Reflex
data/lib/reflex/style.rb CHANGED
@@ -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,9 +16,9 @@ module Reflex
15
16
  include Xot::Setter
16
17
  include HasTags
17
18
 
18
- def initialize (opts = {}, &block)
19
+ def initialize (options = nil, &block)
19
20
  super()
20
- set opts
21
+ set options if options
21
22
  Xot::BlockUtil.instance_eval_or_block_call self, &block if block
22
23
  end
23
24
 
@@ -29,17 +30,83 @@ module Reflex
29
30
  get_flow.map {|n| flow2sym n}
30
31
  end
31
32
 
33
+ def foreground= (fill, stroke = nil)
34
+ self.foreground_fill = fill
35
+ self.foreground_stroke = stroke
36
+ end
37
+
38
+ def foreground ()
39
+ return foreground_fill, foreground_stroke
40
+ end
41
+
42
+ def background= (fill, stroke = nil)
43
+ self.background_fill = fill
44
+ self.background_stroke = stroke
45
+ end
46
+
47
+ def background ()
48
+ return background_fill, background_stroke
49
+ end
50
+
51
+ universal_accessor :name, :selector, :flow, :width, :height, :size,
52
+ :left, :top, :right, :bottom, :position,
53
+ :margin_left, :margin_top, :margin_right, :margin_bottom, :margin,
54
+ :padding_left, :padding_top, :padding_right, :padding_bottom, :padding,
55
+ :center, :center_x, :center_y,
56
+ :foreground_fill, :foreground_stroke, :foreground_stroke_width,
57
+ :background_fill, :background_stroke, :background_stroke_width,
58
+ :foreground, :background,
59
+ :image
60
+
61
+ alias x= left=
62
+ alias x left
63
+ alias y= top=
64
+ alias y top
65
+ alias w= width=
66
+ alias w width
67
+ alias h= height=
68
+ alias h height
69
+ alias pos= position=
70
+ alias pos position
71
+
72
+ alias fore_fill= foreground_fill=
73
+ alias fore_fill foreground_fill
74
+ alias fore_stroke= foreground_stroke=
75
+ alias fore_stroke foreground_stroke
76
+ alias fore_stroke_width= foreground_stroke_width=
77
+ alias fore_stroke_width foreground_stroke_width
78
+
79
+ alias back_fill= background_fill=
80
+ alias back_fill background_fill
81
+ alias back_stroke= background_stroke=
82
+ alias back_stroke background_stroke
83
+ alias back_stroke_width= background_stroke_width=
84
+ alias back_stroke_width background_stroke_width
85
+
86
+ alias fore= foreground_fill=
87
+ alias fore foreground_fill
88
+ alias back= background_fill=
89
+ alias back background_fill
90
+
91
+ alias fill= foreground_fill=
92
+ alias fill foreground_fill
93
+ alias stroke= foreground_stroke=
94
+ alias stroke foreground_stroke
95
+ alias stroke_width= foreground_stroke_width=
96
+ alias stroke_width foreground_stroke_width
97
+
32
98
  def inspect ()
33
99
  attrs = {
34
- selector: selector,
35
- flow: flow,
36
- size: size,
37
- position: position,
38
- offset: offset,
39
- margin: margin,
40
- padding: padding,
41
- background_color: background_color,
42
- background_image: background_image
100
+ selector: selector,
101
+ flow: flow,
102
+ size: size,
103
+ position: position,
104
+ margin: margin,
105
+ padding: padding,
106
+ center: center,
107
+ foreground: foreground,
108
+ background: background,
109
+ image: image
43
110
  }
44
111
  "#<Reflex::Style #{attrs.map {|k, v| %(#{k}:#{v.to_s})}.join ' '}>"
45
112
  end
@@ -9,17 +9,6 @@ module Reflex
9
9
 
10
10
  class StyleLength
11
11
 
12
- def initialize (*args)
13
- return if args.empty?
14
- case args[0]
15
- when Numeric
16
- args << :px if args.size < 2
17
- setup_num *args
18
- when String
19
- setup_str *args
20
- end
21
- end
22
-
23
12
  def inspect ()
24
13
  "#<#{self.class.name} #{to_s}>"
25
14
  end
@@ -15,12 +15,10 @@ module Reflex
15
15
 
16
16
  attr_accessor :font
17
17
 
18
- def initialize (*args, &block)
19
- @outdated = false
20
- super
21
- end
18
+ alias text= data=
19
+ alias text data
22
20
 
23
- def content_size ()
21
+ def content_bounds ()
24
22
  s = string
25
23
  return 0, 0 unless s && window
26
24
  font = @font || window.painter.font
@@ -28,26 +26,11 @@ module Reflex
28
26
  end
29
27
 
30
28
  def on_draw (e)
31
- @image = create_text_image if @outdated
32
- return unless @image
33
-
34
- pa = e.painter
35
- pa.color 1
36
- pa.image @image
37
- end
38
-
39
- def on_data_update (e)
40
- @outdated = true
41
- super
42
- end
43
-
44
- private
45
-
46
- def create_text_image ()
47
- str, size = string, content_size
48
- return nil unless str && size.all? {|n| n > 0}
49
- Image.new Bitmap.new(*size, :GRAY).draw_string(str), true
29
+ s = string
30
+ e.painter.push font: @font do
31
+ text s
50
32
  end
33
+ end
51
34
 
52
35
  end# TextView
53
36