reflexion 0.5.3 → 0.7.0

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 (309) hide show
  1. checksums.yaml +4 -4
  2. data/.doc/ext/reflex/application.cpp +56 -7
  3. data/.doc/ext/reflex/capture_event.cpp +1 -1
  4. data/.doc/ext/reflex/chase_constraint.cpp +84 -0
  5. data/.doc/ext/reflex/clipboard.cpp +65 -0
  6. data/.doc/ext/reflex/color_event.cpp +76 -0
  7. data/.doc/ext/reflex/color_picker.cpp +113 -0
  8. data/.doc/ext/reflex/constraint.cpp +135 -0
  9. data/.doc/ext/reflex/contact_event.cpp +1 -1
  10. data/.doc/ext/reflex/control_change_event.cpp +1 -1
  11. data/.doc/ext/reflex/device.cpp +1 -1
  12. data/.doc/ext/reflex/device_event.cpp +1 -1
  13. data/.doc/ext/reflex/draw_event.cpp +1 -1
  14. data/.doc/ext/reflex/ellipse_shape.cpp +1 -1
  15. data/.doc/ext/reflex/event.cpp +1 -1
  16. data/.doc/ext/reflex/file_dialog.cpp +181 -0
  17. data/.doc/ext/reflex/file_event.cpp +103 -0
  18. data/.doc/ext/reflex/filter.cpp +1 -1
  19. data/.doc/ext/reflex/focus_event.cpp +1 -1
  20. data/.doc/ext/reflex/frame_event.cpp +1 -1
  21. data/.doc/ext/reflex/gamepad.cpp +48 -0
  22. data/.doc/ext/reflex/image_view.cpp +1 -1
  23. data/.doc/ext/reflex/key_event.cpp +1 -274
  24. data/.doc/ext/reflex/line_shape.cpp +1 -1
  25. data/.doc/ext/reflex/link_constraint.cpp +178 -0
  26. data/.doc/ext/reflex/menu.cpp +303 -0
  27. data/.doc/ext/reflex/midi.cpp +9 -2
  28. data/.doc/ext/reflex/midi_event.cpp +1 -1
  29. data/.doc/ext/reflex/motion_event.cpp +1 -1
  30. data/.doc/ext/reflex/native.cpp +40 -10
  31. data/.doc/ext/reflex/note_event.cpp +1 -1
  32. data/.doc/ext/reflex/pin.cpp +156 -0
  33. data/.doc/ext/reflex/pointer.cpp +3 -1
  34. data/.doc/ext/reflex/pointer_event.cpp +3 -3
  35. data/.doc/ext/reflex/polygon_shape.cpp +1 -1
  36. data/.doc/ext/reflex/rect_shape.cpp +1 -1
  37. data/.doc/ext/reflex/reflex.cpp +606 -237
  38. data/.doc/ext/reflex/screen.cpp +27 -1
  39. data/.doc/ext/reflex/scroll_event.cpp +1 -1
  40. data/.doc/ext/reflex/selector.cpp +5 -5
  41. data/.doc/ext/reflex/shape.cpp +1 -1
  42. data/.doc/ext/reflex/snap_constraint.cpp +125 -0
  43. data/.doc/ext/reflex/style.cpp +1 -1
  44. data/.doc/ext/reflex/style_length.cpp +4 -3
  45. data/.doc/ext/reflex/text_event.cpp +104 -0
  46. data/.doc/ext/reflex/timer.cpp +1 -1
  47. data/.doc/ext/reflex/timer_event.cpp +1 -1
  48. data/.doc/ext/reflex/update_event.cpp +1 -1
  49. data/.doc/ext/reflex/view.cpp +206 -79
  50. data/.doc/ext/reflex/wheel_constraint.cpp +142 -0
  51. data/.doc/ext/reflex/wheel_event.cpp +1 -1
  52. data/.doc/ext/reflex/window.cpp +282 -31
  53. data/.github/workflows/release-gem.yml +2 -40
  54. data/.github/workflows/tag.yml +5 -28
  55. data/.github/workflows/test.yml +1 -28
  56. data/ChangeLog.md +79 -0
  57. data/Gemfile.lock +13 -8
  58. data/README.md +1 -0
  59. data/Rakefile +13 -2
  60. data/Reflex.podspec +2 -2
  61. data/VERSION +1 -1
  62. data/ext/reflex/application.cpp +62 -7
  63. data/ext/reflex/capture_event.cpp +1 -1
  64. data/ext/reflex/chase_constraint.cpp +89 -0
  65. data/ext/reflex/clipboard.cpp +69 -0
  66. data/ext/reflex/color_event.cpp +80 -0
  67. data/ext/reflex/color_picker.cpp +121 -0
  68. data/ext/reflex/constraint.cpp +146 -0
  69. data/ext/reflex/contact_event.cpp +1 -1
  70. data/ext/reflex/control_change_event.cpp +1 -1
  71. data/ext/reflex/device.cpp +1 -1
  72. data/ext/reflex/device_event.cpp +1 -1
  73. data/ext/reflex/draw_event.cpp +1 -1
  74. data/ext/reflex/ellipse_shape.cpp +1 -1
  75. data/ext/reflex/event.cpp +1 -1
  76. data/ext/reflex/extconf.rb +4 -2
  77. data/ext/reflex/file_dialog.cpp +194 -0
  78. data/ext/reflex/file_event.cpp +108 -0
  79. data/ext/reflex/filter.cpp +1 -1
  80. data/ext/reflex/focus_event.cpp +1 -1
  81. data/ext/reflex/frame_event.cpp +1 -1
  82. data/ext/reflex/gamepad.cpp +50 -0
  83. data/ext/reflex/image_view.cpp +1 -1
  84. data/ext/reflex/key_event.cpp +1 -275
  85. data/ext/reflex/line_shape.cpp +1 -1
  86. data/ext/reflex/link_constraint.cpp +194 -0
  87. data/ext/reflex/menu.cpp +331 -0
  88. data/ext/reflex/midi.cpp +11 -3
  89. data/ext/reflex/midi_event.cpp +1 -1
  90. data/ext/reflex/motion_event.cpp +1 -1
  91. data/ext/reflex/native.cpp +40 -10
  92. data/ext/reflex/note_event.cpp +1 -1
  93. data/ext/reflex/pin.cpp +165 -0
  94. data/ext/reflex/pointer.cpp +3 -1
  95. data/ext/reflex/pointer_event.cpp +3 -3
  96. data/ext/reflex/polygon_shape.cpp +1 -1
  97. data/ext/reflex/rect_shape.cpp +1 -1
  98. data/ext/reflex/reflex.cpp +608 -237
  99. data/ext/reflex/screen.cpp +31 -2
  100. data/ext/reflex/scroll_event.cpp +1 -1
  101. data/ext/reflex/selector.cpp +5 -5
  102. data/ext/reflex/selector.h +10 -10
  103. data/ext/reflex/shape.cpp +1 -1
  104. data/ext/reflex/snap_constraint.cpp +135 -0
  105. data/ext/reflex/style.cpp +1 -1
  106. data/ext/reflex/style_length.cpp +4 -3
  107. data/ext/reflex/text_event.cpp +111 -0
  108. data/ext/reflex/timer.cpp +1 -1
  109. data/ext/reflex/timer_event.cpp +1 -1
  110. data/ext/reflex/update_event.cpp +1 -1
  111. data/ext/reflex/view.cpp +236 -96
  112. data/ext/reflex/wheel_constraint.cpp +154 -0
  113. data/ext/reflex/wheel_event.cpp +1 -1
  114. data/ext/reflex/window.cpp +318 -40
  115. data/include/reflex/application.h +19 -0
  116. data/include/reflex/clipboard.h +53 -0
  117. data/include/reflex/color_picker.h +65 -0
  118. data/include/reflex/constraint.h +275 -0
  119. data/include/reflex/defs.h +204 -195
  120. data/include/reflex/event.h +180 -88
  121. data/include/reflex/file_dialog.h +73 -0
  122. data/include/reflex/gamepad.h +3 -0
  123. data/include/reflex/menu.h +120 -0
  124. data/include/reflex/midi.h +3 -0
  125. data/include/reflex/pin.h +68 -0
  126. data/include/reflex/pointer.h +4 -0
  127. data/include/reflex/reflex.h +2 -0
  128. data/include/reflex/ruby/application.h +6 -1
  129. data/include/reflex/ruby/clipboard.h +23 -0
  130. data/include/reflex/ruby/color_picker.h +89 -0
  131. data/include/reflex/ruby/constraint.h +94 -0
  132. data/include/reflex/ruby/event.h +62 -29
  133. data/include/reflex/ruby/file_dialog.h +89 -0
  134. data/include/reflex/ruby/gamepad.h +46 -0
  135. data/include/reflex/ruby/menu.h +103 -0
  136. data/include/reflex/ruby/pin.h +40 -0
  137. data/include/reflex/ruby/reflex.h +3 -0
  138. data/include/reflex/ruby/view.h +123 -39
  139. data/include/reflex/ruby/window.h +96 -19
  140. data/include/reflex/ruby.h +3 -0
  141. data/include/reflex/screen.h +11 -2
  142. data/include/reflex/view.h +66 -27
  143. data/include/reflex/window.h +57 -12
  144. data/include/reflex.h +8 -0
  145. data/lib/reflex/application.rb +5 -5
  146. data/lib/reflex/autoinit.rb +3 -1
  147. data/lib/reflex/button.rb +3 -3
  148. data/lib/reflex/chase_constraint.rb +15 -0
  149. data/lib/reflex/clipboard.rb +19 -0
  150. data/lib/reflex/color_event.rb +16 -0
  151. data/lib/reflex/color_picker.rb +45 -0
  152. data/lib/reflex/constraint.rb +29 -0
  153. data/lib/reflex/control_change_event.rb +17 -0
  154. data/lib/reflex/extension.rb +1 -1
  155. data/lib/reflex/file_dialog.rb +70 -0
  156. data/lib/reflex/file_event.rb +37 -0
  157. data/lib/reflex/helper.rb +79 -0
  158. data/lib/reflex/key_event.rb +14 -14
  159. data/lib/reflex/link_constraint.rb +31 -0
  160. data/lib/reflex/menu.rb +92 -0
  161. data/lib/reflex/model.rb +19 -19
  162. data/lib/reflex/note_event.rb +1 -1
  163. data/lib/reflex/pin.rb +39 -0
  164. data/lib/reflex/pointer.rb +30 -1
  165. data/lib/reflex/pointer_event.rb +13 -2
  166. data/lib/reflex/reflex.rb +5 -0
  167. data/lib/reflex/shape.rb +14 -14
  168. data/lib/reflex/snap_constraint.rb +28 -0
  169. data/lib/reflex/style.rb +16 -16
  170. data/lib/reflex/text_event.rb +40 -0
  171. data/lib/reflex/timer.rb +3 -3
  172. data/lib/reflex/view.rb +85 -18
  173. data/lib/reflex/wheel_constraint.rb +28 -0
  174. data/lib/reflex/wheel_event.rb +19 -1
  175. data/lib/reflex/window.rb +25 -13
  176. data/lib/reflex.rb +23 -8
  177. data/pod.rake +1 -1
  178. data/reflex.gemspec +4 -4
  179. data/samples/constraint.rb +152 -0
  180. data/samples/ime.rb +100 -0
  181. data/samples/ios/hello/hello.xcodeproj/project.pbxproj +236 -224
  182. data/samples/menu.rb +32 -0
  183. data/samples/model.rb +3 -3
  184. data/samples/test/alert.rb +93 -0
  185. data/samples/test/always_on.rb +76 -0
  186. data/samples/test/app_background.rb +51 -0
  187. data/samples/test/boundary.rb +75 -0
  188. data/samples/test/callback_exception.rb +101 -0
  189. data/samples/test/cancel.rb +53 -0
  190. data/samples/test/color_picker.rb +63 -0
  191. data/samples/test/file_dialog.rb +102 -0
  192. data/samples/window_style.rb +156 -0
  193. data/src/application.cpp +180 -20
  194. data/src/application.h +95 -5
  195. data/src/clipboard.cpp +81 -0
  196. data/src/color_picker.cpp +113 -0
  197. data/src/color_picker.h +36 -0
  198. data/src/constraint.cpp +1662 -0
  199. data/src/constraint.h +64 -0
  200. data/src/event.cpp +416 -252
  201. data/src/event.h +13 -2
  202. data/src/file_dialog.cpp +163 -0
  203. data/src/file_dialog.h +52 -0
  204. data/src/gamepad.cpp +42 -5
  205. data/src/gamepad.h +4 -0
  206. data/src/ios/app_delegate.mm +5 -3
  207. data/src/ios/application.mm +29 -0
  208. data/src/ios/clipboard.mm +44 -0
  209. data/src/ios/color_picker.mm +19 -0
  210. data/src/ios/event.h +6 -2
  211. data/src/ios/event.mm +31 -12
  212. data/src/ios/file_dialog.mm +21 -0
  213. data/src/ios/gamepad.mm +4 -4
  214. data/src/ios/menu.mm +41 -0
  215. data/src/ios/reflex.mm +8 -0
  216. data/src/ios/screen.mm +26 -0
  217. data/src/ios/view_controller.mm +47 -42
  218. data/src/ios/window.mm +44 -9
  219. data/src/menu.cpp +387 -0
  220. data/src/menu.h +81 -0
  221. data/src/midi.cpp +61 -31
  222. data/src/osx/app_delegate.h +4 -0
  223. data/src/osx/app_delegate.mm +168 -139
  224. data/src/osx/application.mm +103 -5
  225. data/src/osx/clipboard.mm +45 -0
  226. data/src/osx/color_picker.mm +112 -0
  227. data/src/osx/event.h +10 -0
  228. data/src/osx/event.mm +114 -30
  229. data/src/osx/file_dialog.mm +168 -0
  230. data/src/osx/gamepad.mm +2 -2
  231. data/src/osx/gamepad_hid.mm +1 -1
  232. data/src/osx/menu.h +25 -0
  233. data/src/osx/menu.mm +516 -0
  234. data/src/osx/native_window.h +16 -2
  235. data/src/osx/native_window.mm +141 -57
  236. data/src/osx/opengl_view.h +2 -1
  237. data/src/osx/opengl_view.mm +229 -37
  238. data/src/osx/reflex.mm +38 -0
  239. data/src/osx/screen.mm +36 -0
  240. data/src/osx/window.mm +117 -24
  241. data/src/pin.cpp +137 -0
  242. data/src/pointer.cpp +36 -16
  243. data/src/pointer.h +10 -0
  244. data/src/rays.h +46 -0
  245. data/src/sdl/application.cpp +73 -8
  246. data/src/sdl/clipboard.cpp +39 -0
  247. data/src/sdl/color_picker.cpp +18 -0
  248. data/src/sdl/event.cpp +44 -6
  249. data/src/sdl/event.h +18 -3
  250. data/src/sdl/file_dialog.cpp +20 -0
  251. data/src/sdl/gamepad.cpp +3 -7
  252. data/src/sdl/menu.cpp +40 -0
  253. data/src/sdl/reflex.cpp +20 -0
  254. data/src/sdl/screen.cpp +36 -0
  255. data/src/sdl/window.cpp +168 -37
  256. data/src/shape.cpp +15 -10
  257. data/src/view.cpp +583 -233
  258. data/src/view.h +22 -4
  259. data/src/vk.h +416 -0
  260. data/src/win32/application.cpp +167 -12
  261. data/src/win32/application.h +20 -0
  262. data/src/win32/clipboard.cpp +210 -0
  263. data/src/win32/color_picker.cpp +82 -0
  264. data/src/win32/event.cpp +123 -11
  265. data/src/win32/event.h +22 -3
  266. data/src/win32/file_dialog.cpp +226 -0
  267. data/src/win32/gamepad.cpp +9 -2
  268. data/src/win32/menu.cpp +490 -0
  269. data/src/win32/menu.h +35 -0
  270. data/src/win32/opengl.cpp +2 -9
  271. data/src/win32/reflex.cpp +44 -3
  272. data/src/win32/screen.cpp +164 -3
  273. data/src/win32/screen.h +8 -0
  274. data/src/win32/tray.cpp +191 -0
  275. data/src/win32/tray.h +22 -0
  276. data/src/win32/vk.cpp +11 -0
  277. data/src/win32/window.cpp +858 -135
  278. data/src/win32/window.h +9 -0
  279. data/src/window.cpp +929 -183
  280. data/src/window.h +77 -33
  281. data/src/world.cpp +86 -15
  282. data/src/world.h +9 -2
  283. data/test/helper.rb +24 -0
  284. data/test/test_application.rb +101 -1
  285. data/test/test_chase_constraint.rb +122 -0
  286. data/test/test_clipboard.rb +54 -0
  287. data/test/test_color_event.rb +36 -0
  288. data/test/test_color_picker.rb +62 -0
  289. data/test/test_constraint.rb +184 -0
  290. data/test/test_event.rb +1 -1
  291. data/test/test_file_dialog.rb +48 -0
  292. data/test/test_file_event.rb +43 -0
  293. data/test/test_has_text_preedit.rb +54 -0
  294. data/test/test_key_event.rb +23 -2
  295. data/test/test_link_constraint.rb +237 -0
  296. data/test/test_menu.rb +237 -0
  297. data/test/test_pin.rb +65 -0
  298. data/test/test_pointer.rb +50 -26
  299. data/test/test_pointer_event.rb +25 -10
  300. data/test/test_reflex.rb +36 -0
  301. data/test/test_screen.rb +24 -2
  302. data/test/test_snap_constraint.rb +140 -0
  303. data/test/test_text_event.rb +54 -0
  304. data/test/test_view.rb +152 -25
  305. data/test/test_wheel_constraint.rb +125 -0
  306. data/test/test_wheel_event.rb +24 -10
  307. data/test/test_window.rb +205 -43
  308. metadata +154 -10
  309. data/.github/workflows/utils.rb +0 -127
@@ -0,0 +1,40 @@
1
+ // -*- c++ -*-
2
+ #pragma once
3
+ #ifndef __REFLEX_RUBY_PIN_H__
4
+ #define __REFLEX_RUBY_PIN_H__
5
+
6
+
7
+ #include <rucy/class.h>
8
+ #include <rucy/extension.h>
9
+ #include <reflex/pin.h>
10
+
11
+
12
+ RUCY_DECLARE_VALUE_OR_ARRAY_FROM_TO(REFLEX_EXPORT, Reflex::Pin)
13
+
14
+
15
+ namespace Reflex
16
+ {
17
+
18
+
19
+ REFLEX_EXPORT Rucy::Class pin_class ();
20
+ // class Reflex::Pin
21
+
22
+
23
+ }// Reflex
24
+
25
+
26
+ namespace Rucy
27
+ {
28
+
29
+
30
+ template <> inline Class
31
+ get_ruby_class<Reflex::Pin> ()
32
+ {
33
+ return Reflex::pin_class();
34
+ }
35
+
36
+
37
+ }// Rucy
38
+
39
+
40
+ #endif//EOH
@@ -9,6 +9,9 @@
9
9
  #include <reflex/reflex.h>
10
10
 
11
11
 
12
+ RUCY_DECLARE_CONVERT_TO(REFLEX_EXPORT, Reflex::KeyCode)
13
+
14
+
12
15
  namespace Reflex
13
16
  {
14
17
 
@@ -41,6 +41,27 @@ namespace Reflex
41
41
  return Super::content_bounds();
42
42
  }
43
43
 
44
+ virtual bool accepts_text_input () const
45
+ {
46
+ RUCY_SYM_Q(accepts_text_input);
47
+ if (this->is_overridable())
48
+ return Rucy::to<bool>(this->value.call(accepts_text_input));
49
+ else
50
+ return Super::accepts_text_input();
51
+ }
52
+
53
+ virtual Bounds text_input_bounds () const
54
+ {
55
+ RUCY_SYM(text_input_bounds);
56
+ if (this->is_overridable())
57
+ {
58
+ Rucy::Value ret = this->value.call(text_input_bounds);
59
+ return ret.is_nil() ? Super::text_input_bounds() : Rucy::to<Bounds>(ret);
60
+ }
61
+ else
62
+ return Super::text_input_bounds();
63
+ }
64
+
44
65
  virtual void on_attach (Event* e)
45
66
  {
46
67
  RUCY_SYM(on_attach);
@@ -59,6 +80,24 @@ namespace Reflex
59
80
  Super::on_detach(e);
60
81
  }
61
82
 
83
+ virtual void on_activate (Event* e)
84
+ {
85
+ RUCY_SYM(on_activate);
86
+ if (this->is_overridable())
87
+ this->value.call(on_activate, Rucy::value(e));
88
+ else
89
+ Super::on_activate(e);
90
+ }
91
+
92
+ virtual void on_deactivate (Event* e)
93
+ {
94
+ RUCY_SYM(on_deactivate);
95
+ if (this->is_overridable())
96
+ this->value.call(on_deactivate, Rucy::value(e));
97
+ else
98
+ Super::on_deactivate(e);
99
+ }
100
+
62
101
  virtual void on_show (Event* e)
63
102
  {
64
103
  RUCY_SYM(on_show);
@@ -176,6 +215,33 @@ namespace Reflex
176
215
  Super::on_key_up(e);
177
216
  }
178
217
 
218
+ virtual void on_text (TextEvent* e)
219
+ {
220
+ RUCY_SYM(on_text);
221
+ if (this->is_overridable())
222
+ this->value.call(on_text, Rucy::value(e));
223
+ else
224
+ Super::on_text(e);
225
+ }
226
+
227
+ virtual void on_text_preedit (TextEvent* e)
228
+ {
229
+ RUCY_SYM(on_text_preedit);
230
+ if (this->is_overridable())
231
+ this->value.call(on_text_preedit, Rucy::value(e));
232
+ else
233
+ Super::on_text_preedit(e);
234
+ }
235
+
236
+ virtual void on_text_commit (TextEvent* e)
237
+ {
238
+ RUCY_SYM(on_text_commit);
239
+ if (this->is_overridable())
240
+ this->value.call(on_text_commit, Rucy::value(e));
241
+ else
242
+ Super::on_text_commit(e);
243
+ }
244
+
179
245
  virtual void on_pointer (PointerEvent* e)
180
246
  {
181
247
  RUCY_SYM(on_pointer);
@@ -221,58 +287,31 @@ namespace Reflex
221
287
  Super::on_pointer_cancel(e);
222
288
  }
223
289
 
224
- virtual void on_wheel (WheelEvent* e)
290
+ virtual void on_pointer_enter (PointerEvent* e)
225
291
  {
226
- RUCY_SYM(on_wheel);
292
+ RUCY_SYM(on_pointer_enter);
227
293
  if (this->is_overridable())
228
- this->value.call(on_wheel, Rucy::value(e));
294
+ this->value.call(on_pointer_enter, Rucy::value(e));
229
295
  else
230
- Super::on_wheel(e);
296
+ Super::on_pointer_enter(e);
231
297
  }
232
298
 
233
- virtual void on_midi (MIDIEvent* e)
299
+ virtual void on_pointer_leave (PointerEvent* e)
234
300
  {
235
- RUCY_SYM(on_midi);
301
+ RUCY_SYM(on_pointer_leave);
236
302
  if (this->is_overridable())
237
- this->value.call(on_midi, Rucy::value(e));
303
+ this->value.call(on_pointer_leave, Rucy::value(e));
238
304
  else
239
- Super::on_midi(e);
240
- }
241
-
242
- virtual void on_note (NoteEvent* e)
243
- {
244
- RUCY_SYM(on_note);
245
- if (this->is_overridable())
246
- this->value.call(on_note, Rucy::value(e));
247
- else
248
- Super::on_note(e);
249
- }
250
-
251
- virtual void on_note_on (NoteEvent* e)
252
- {
253
- RUCY_SYM(on_note_on);
254
- if (this->is_overridable())
255
- this->value.call(on_note_on, Rucy::value(e));
256
- else
257
- Super::on_note_on(e);
305
+ Super::on_pointer_leave(e);
258
306
  }
259
307
 
260
- virtual void on_note_off (NoteEvent* e)
261
- {
262
- RUCY_SYM(on_note_off);
263
- if (this->is_overridable())
264
- this->value.call(on_note_off, Rucy::value(e));
265
- else
266
- Super::on_note_off(e);
267
- }
268
-
269
- virtual void on_control_change (ControlChangeEvent* e)
308
+ virtual void on_wheel (WheelEvent* e)
270
309
  {
271
- RUCY_SYM(on_control_change);
310
+ RUCY_SYM(on_wheel);
272
311
  if (this->is_overridable())
273
- this->value.call(on_control_change, Rucy::value(e));
312
+ this->value.call(on_wheel, Rucy::value(e));
274
313
  else
275
- Super::on_control_change(e);
314
+ Super::on_wheel(e);
276
315
  }
277
316
 
278
317
  virtual void on_capture (CaptureEvent* e)
@@ -329,6 +368,51 @@ namespace Reflex
329
368
  Super::on_contact_end(e);
330
369
  }
331
370
 
371
+ virtual void on_midi (MIDIEvent* e)
372
+ {
373
+ RUCY_SYM(on_midi);
374
+ if (this->is_overridable())
375
+ this->value.call(on_midi, Rucy::value(e));
376
+ else
377
+ Super::on_midi(e);
378
+ }
379
+
380
+ virtual void on_note (NoteEvent* e)
381
+ {
382
+ RUCY_SYM(on_note);
383
+ if (this->is_overridable())
384
+ this->value.call(on_note, Rucy::value(e));
385
+ else
386
+ Super::on_note(e);
387
+ }
388
+
389
+ virtual void on_note_on (NoteEvent* e)
390
+ {
391
+ RUCY_SYM(on_note_on);
392
+ if (this->is_overridable())
393
+ this->value.call(on_note_on, Rucy::value(e));
394
+ else
395
+ Super::on_note_on(e);
396
+ }
397
+
398
+ virtual void on_note_off (NoteEvent* e)
399
+ {
400
+ RUCY_SYM(on_note_off);
401
+ if (this->is_overridable())
402
+ this->value.call(on_note_off, Rucy::value(e));
403
+ else
404
+ Super::on_note_off(e);
405
+ }
406
+
407
+ virtual void on_control_change (ControlChangeEvent* e)
408
+ {
409
+ RUCY_SYM(on_control_change);
410
+ if (this->is_overridable())
411
+ this->value.call(on_control_change, Rucy::value(e));
412
+ else
413
+ Super::on_control_change(e);
414
+ }
415
+
332
416
  };// RubyView
333
417
 
334
418
 
@@ -29,29 +29,16 @@ namespace Reflex
29
29
 
30
30
  public:
31
31
 
32
- virtual void on_activate (Event* e)
33
- {
34
- RUCY_SYM(on_activate);
35
- if (this->is_overridable())
36
- this->value.call(on_activate, Rucy::value(e));
37
- else
38
- return Super::on_activate(e);
39
- }
40
-
41
- virtual void on_deactivate (Event* e)
42
- {
43
- RUCY_SYM(on_deactivate);
44
- if (this->is_overridable())
45
- this->value.call(on_deactivate, Rucy::value(e));
46
- else
47
- return Super::on_deactivate(e);
48
- }
49
-
50
32
  virtual void on_show (Event* e)
51
33
  {
52
- RUCY_SYM(on_show);
53
34
  if (this->is_overridable())
35
+ {
36
+ RUCY_SYM(call_show_block);
37
+ this->value.call(call_show_block);
38
+
39
+ RUCY_SYM(on_show);
54
40
  this->value.call(on_show, Rucy::value(e));
41
+ }
55
42
  else
56
43
  return Super::on_show(e);
57
44
  }
@@ -74,6 +61,24 @@ namespace Reflex
74
61
  return Super::on_close(e);
75
62
  }
76
63
 
64
+ virtual void on_activate (Event* e)
65
+ {
66
+ RUCY_SYM(on_activate);
67
+ if (this->is_overridable())
68
+ this->value.call(on_activate, Rucy::value(e));
69
+ else
70
+ return Super::on_activate(e);
71
+ }
72
+
73
+ virtual void on_deactivate (Event* e)
74
+ {
75
+ RUCY_SYM(on_deactivate);
76
+ if (this->is_overridable())
77
+ this->value.call(on_deactivate, Rucy::value(e));
78
+ else
79
+ return Super::on_deactivate(e);
80
+ }
81
+
77
82
  virtual void on_update (UpdateEvent* e)
78
83
  {
79
84
  RUCY_SYM(on_update);
@@ -137,6 +142,33 @@ namespace Reflex
137
142
  Super::on_key_up(e);
138
143
  }
139
144
 
145
+ virtual void on_text (TextEvent* e)
146
+ {
147
+ RUCY_SYM(on_text);
148
+ if (this->is_overridable())
149
+ this->value.call(on_text, Rucy::value(e));
150
+ else
151
+ Super::on_text(e);
152
+ }
153
+
154
+ virtual void on_text_preedit (TextEvent* e)
155
+ {
156
+ RUCY_SYM(on_text_preedit);
157
+ if (this->is_overridable())
158
+ this->value.call(on_text_preedit, Rucy::value(e));
159
+ else
160
+ Super::on_text_preedit(e);
161
+ }
162
+
163
+ virtual void on_text_commit (TextEvent* e)
164
+ {
165
+ RUCY_SYM(on_text_commit);
166
+ if (this->is_overridable())
167
+ this->value.call(on_text_commit, Rucy::value(e));
168
+ else
169
+ Super::on_text_commit(e);
170
+ }
171
+
140
172
  virtual void on_pointer (PointerEvent* e)
141
173
  {
142
174
  RUCY_SYM(on_pointer);
@@ -182,6 +214,24 @@ namespace Reflex
182
214
  Super::on_pointer_cancel(e);
183
215
  }
184
216
 
217
+ virtual void on_pointer_enter (PointerEvent* e)
218
+ {
219
+ RUCY_SYM(on_pointer_enter);
220
+ if (this->is_overridable())
221
+ this->value.call(on_pointer_enter, Rucy::value(e));
222
+ else
223
+ Super::on_pointer_enter(e);
224
+ }
225
+
226
+ virtual void on_pointer_leave (PointerEvent* e)
227
+ {
228
+ RUCY_SYM(on_pointer_leave);
229
+ if (this->is_overridable())
230
+ this->value.call(on_pointer_leave, Rucy::value(e));
231
+ else
232
+ Super::on_pointer_leave(e);
233
+ }
234
+
185
235
  virtual void on_wheel (WheelEvent* e)
186
236
  {
187
237
  RUCY_SYM(on_wheel);
@@ -191,6 +241,33 @@ namespace Reflex
191
241
  Super::on_wheel(e);
192
242
  }
193
243
 
244
+ virtual void on_file (FileEvent* e)
245
+ {
246
+ RUCY_SYM(on_file);
247
+ if (this->is_overridable())
248
+ this->value.call(on_file, Rucy::value(e));
249
+ else
250
+ Super::on_file(e);
251
+ }
252
+
253
+ virtual void on_file_open (FileEvent* e)
254
+ {
255
+ RUCY_SYM(on_file_open);
256
+ if (this->is_overridable())
257
+ this->value.call(on_file_open, Rucy::value(e));
258
+ else
259
+ Super::on_file_open(e);
260
+ }
261
+
262
+ virtual void on_file_save (FileEvent* e)
263
+ {
264
+ RUCY_SYM(on_file_save);
265
+ if (this->is_overridable())
266
+ this->value.call(on_file_save, Rucy::value(e));
267
+ else
268
+ Super::on_file_save(e);
269
+ }
270
+
194
271
  virtual void on_midi (MIDIEvent* e)
195
272
  {
196
273
  RUCY_SYM(on_midi);
@@ -20,6 +20,9 @@
20
20
  #include <reflex/ruby/window.h>
21
21
  #include <reflex/ruby/view.h>
22
22
  #include <reflex/ruby/screen.h>
23
+ #include <reflex/ruby/clipboard.h>
24
+ #include <reflex/ruby/file_dialog.h>
25
+ #include <reflex/ruby/color_picker.h>
23
26
 
24
27
  #include <reflex/ruby/image_view.h>
25
28
 
@@ -4,6 +4,7 @@
4
4
  #define __REFLEX_SCREEN_H__
5
5
 
6
6
 
7
+ #include <vector>
7
8
  #include <xot/pimpl.h>
8
9
  #include <rays/bounds.h>
9
10
  #include <reflex/defs.h>
@@ -20,16 +21,24 @@ namespace Reflex
20
21
 
21
22
  public:
22
23
 
24
+ typedef std::vector<Screen> List;
25
+
23
26
  Screen ();
24
27
 
25
- virtual ~Screen ();
28
+ ~Screen ();
29
+
30
+ String name () const;
26
31
 
27
- virtual Bounds frame () const;
32
+ Bounds frame () const;
33
+
34
+ float pixel_density () const;
28
35
 
29
36
  operator bool () const;
30
37
 
31
38
  bool operator ! () const;
32
39
 
40
+ static List all ();
41
+
33
42
  struct Data;
34
43
 
35
44
  Xot::PSharedImpl<Data> self;
@@ -15,6 +15,7 @@
15
15
  #include <reflex/selector.h>
16
16
  #include <reflex/style.h>
17
17
  #include <reflex/shape.h>
18
+ #include <reflex/constraint.h>
18
19
  #include <reflex/event.h>
19
20
 
20
21
 
@@ -38,30 +39,36 @@ namespace Reflex
38
39
 
39
40
  typedef Xot::Ref<This> Ref;
40
41
 
41
- typedef std::vector<Ref> ChildList;
42
+ typedef std::vector<Ref> ChildList;
42
43
 
43
- typedef std::vector<Style> StyleList;
44
+ typedef std::vector<Style> StyleList;
44
45
 
45
- typedef std::vector<Shape::Ref> ShapeList;
46
+ typedef std::vector<Shape::Ref> ShapeList;
46
47
 
47
- typedef ChildList:: iterator child_iterator;
48
+ typedef std::vector<Constraint::Ref> ConstraintList;
48
49
 
49
- typedef ChildList::const_iterator const_child_iterator;
50
+ typedef ChildList:: iterator child_iterator;
50
51
 
51
- typedef StyleList:: iterator style_iterator;
52
+ typedef ChildList:: const_iterator const_child_iterator;
52
53
 
53
- typedef StyleList::const_iterator const_style_iterator;
54
+ typedef StyleList:: iterator style_iterator;
54
55
 
55
- typedef ShapeList:: iterator shape_iterator;
56
+ typedef StyleList:: const_iterator const_style_iterator;
56
57
 
57
- typedef ShapeList::const_iterator const_shape_iterator;
58
+ typedef ShapeList:: iterator shape_iterator;
59
+
60
+ typedef ShapeList:: const_iterator const_shape_iterator;
61
+
62
+ typedef ConstraintList:: iterator constraint_iterator;
63
+
64
+ typedef ConstraintList::const_iterator const_constraint_iterator;
58
65
 
59
66
  enum Flag
60
67
  {
61
68
 
62
69
  FLAG_CLIP = Xot::bit(0),
63
70
 
64
- FLAG_CACHE = Xot::bit(1),
71
+ FLAG_DRAW_CACHE = Xot::bit(1),
65
72
 
66
73
  FLAG_RESIZE_TO_FIT = Xot::bit(2),
67
74
 
@@ -69,7 +76,9 @@ namespace Reflex
69
76
 
70
77
  FLAG_FIX_ANGLE = Xot::bit(4),
71
78
 
72
- FLAG_LAST = FLAG_FIX_ANGLE
79
+ FLAG_TEXT_INPUT = Xot::bit(5),
80
+
81
+ FLAG_LAST = FLAG_TEXT_INPUT
73
82
 
74
83
  };// Flag
75
84
 
@@ -110,6 +119,14 @@ namespace Reflex
110
119
 
111
120
  virtual void update_layout ();
112
121
 
122
+ virtual void fit_to_content ();
123
+
124
+ virtual Bounds content_bounds () const;
125
+
126
+ virtual bool accepts_text_input () const;
127
+
128
+ virtual Bounds text_input_bounds () const;
129
+
113
130
  virtual Point from_parent (const Point& point) const;
114
131
 
115
132
  virtual Point to_parent (const Point& point) const;
@@ -122,7 +139,7 @@ namespace Reflex
122
139
 
123
140
  virtual Point to_screen (const Point& point) const;
124
141
 
125
- virtual void add_child (View* child);
142
+ virtual void add_child (View* child, int index = -1);
126
143
 
127
144
  virtual void remove_child (View* child);
128
145
 
@@ -171,7 +188,7 @@ namespace Reflex
171
188
 
172
189
  virtual const Shape* shape () const;
173
190
 
174
- virtual void add_shape (Shape* shape);
191
+ virtual void add_shape (Shape* shape, int index = -1);
175
192
 
176
193
  virtual void remove_shape (Shape* shape);
177
194
 
@@ -187,6 +204,18 @@ namespace Reflex
187
204
 
188
205
  virtual const_shape_iterator shape_end () const;
189
206
 
207
+ virtual void clear_constraints ();
208
+
209
+ virtual ConstraintList find_constraints (const Selector& selector) const;
210
+
211
+ virtual constraint_iterator constraint_begin ();
212
+
213
+ virtual const_constraint_iterator constraint_begin () const;
214
+
215
+ virtual constraint_iterator constraint_end ();
216
+
217
+ virtual const_constraint_iterator constraint_end () const;
218
+
190
219
  virtual void set_filter (Filter* filter);
191
220
 
192
221
  virtual Filter* filter ();
@@ -209,10 +238,6 @@ namespace Reflex
209
238
 
210
239
  virtual const Bounds& frame () const;
211
240
 
212
- virtual Bounds content_bounds () const;
213
-
214
- virtual void fit_to_content ();
215
-
216
241
  virtual void set_zoom (float zoom);
217
242
 
218
243
  virtual float zoom () const;
@@ -313,7 +338,7 @@ namespace Reflex
313
338
  //
314
339
  virtual void create_world (float pixels_per_meter);
315
340
 
316
- virtual void update_world (float duration = 0);
341
+ virtual void update_world ();
317
342
 
318
343
  virtual float meter2pixel (float meter = 1, bool create_world = true);
319
344
 
@@ -344,6 +369,10 @@ namespace Reflex
344
369
 
345
370
  virtual void on_detach (Event* e);
346
371
 
372
+ virtual void on_activate (Event* e);
373
+
374
+ virtual void on_deactivate (Event* e);
375
+
347
376
  virtual void on_show (Event* e);
348
377
 
349
378
  virtual void on_hide (Event* e);
@@ -370,6 +399,12 @@ namespace Reflex
370
399
 
371
400
  virtual void on_key_up (KeyEvent* e);
372
401
 
402
+ virtual void on_text (TextEvent* e);
403
+
404
+ virtual void on_text_preedit (TextEvent* e);
405
+
406
+ virtual void on_text_commit (TextEvent* e);
407
+
373
408
  virtual void on_pointer (PointerEvent* e);
374
409
 
375
410
  virtual void on_pointer_down (PointerEvent* e);
@@ -380,17 +415,11 @@ namespace Reflex
380
415
 
381
416
  virtual void on_pointer_cancel (PointerEvent* e);
382
417
 
383
- virtual void on_wheel (WheelEvent* e);
384
-
385
- virtual void on_midi (MIDIEvent* e);
418
+ virtual void on_pointer_enter (PointerEvent* e);
386
419
 
387
- virtual void on_note (NoteEvent* e);
420
+ virtual void on_pointer_leave (PointerEvent* e);
388
421
 
389
- virtual void on_note_on (NoteEvent* e);
390
-
391
- virtual void on_note_off (NoteEvent* e);
392
-
393
- virtual void on_control_change (ControlChangeEvent* e);
422
+ virtual void on_wheel (WheelEvent* e);
394
423
 
395
424
  virtual void on_capture (CaptureEvent* e);
396
425
 
@@ -404,6 +433,16 @@ namespace Reflex
404
433
 
405
434
  virtual void on_contact_end (ContactEvent* e);
406
435
 
436
+ virtual void on_midi (MIDIEvent* e);
437
+
438
+ virtual void on_note (NoteEvent* e);
439
+
440
+ virtual void on_note_on (NoteEvent* e);
441
+
442
+ virtual void on_note_off (NoteEvent* e);
443
+
444
+ virtual void on_control_change (ControlChangeEvent* e);
445
+
407
446
  virtual operator bool () const;
408
447
 
409
448
  virtual bool operator ! () const;