reflexion 0.6.0 → 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 (275) hide show
  1. checksums.yaml +4 -4
  2. data/.doc/ext/reflex/application.cpp +37 -6
  3. data/.doc/ext/reflex/capture_event.cpp +1 -1
  4. data/.doc/ext/reflex/chase_constraint.cpp +1 -1
  5. data/.doc/ext/reflex/clipboard.cpp +1 -1
  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 +1 -1
  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 +1 -1
  26. data/.doc/ext/reflex/menu.cpp +6 -5
  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 +18 -6
  31. data/.doc/ext/reflex/note_event.cpp +1 -1
  32. data/.doc/ext/reflex/pin.cpp +1 -1
  33. data/.doc/ext/reflex/pointer.cpp +1 -1
  34. data/.doc/ext/reflex/pointer_event.cpp +2 -2
  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 +566 -232
  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 +1 -1
  41. data/.doc/ext/reflex/shape.cpp +1 -1
  42. data/.doc/ext/reflex/snap_constraint.cpp +1 -1
  43. data/.doc/ext/reflex/style.cpp +1 -1
  44. data/.doc/ext/reflex/style_length.cpp +1 -1
  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 +110 -56
  50. data/.doc/ext/reflex/wheel_constraint.cpp +1 -1
  51. data/.doc/ext/reflex/wheel_event.cpp +1 -1
  52. data/.doc/ext/reflex/window.cpp +226 -17
  53. data/.github/workflows/release-gem.yml +2 -49
  54. data/.github/workflows/tag.yml +5 -28
  55. data/.github/workflows/test.yml +1 -37
  56. data/ChangeLog.md +54 -0
  57. data/Gemfile.lock +13 -8
  58. data/Rakefile +13 -2
  59. data/Reflex.podspec +2 -2
  60. data/VERSION +1 -1
  61. data/ext/reflex/application.cpp +41 -6
  62. data/ext/reflex/capture_event.cpp +1 -1
  63. data/ext/reflex/chase_constraint.cpp +1 -1
  64. data/ext/reflex/clipboard.cpp +1 -1
  65. data/ext/reflex/color_event.cpp +80 -0
  66. data/ext/reflex/color_picker.cpp +121 -0
  67. data/ext/reflex/constraint.cpp +1 -1
  68. data/ext/reflex/contact_event.cpp +1 -1
  69. data/ext/reflex/control_change_event.cpp +1 -1
  70. data/ext/reflex/device.cpp +1 -1
  71. data/ext/reflex/device_event.cpp +1 -1
  72. data/ext/reflex/draw_event.cpp +1 -1
  73. data/ext/reflex/ellipse_shape.cpp +1 -1
  74. data/ext/reflex/event.cpp +1 -1
  75. data/ext/reflex/extconf.rb +4 -2
  76. data/ext/reflex/file_dialog.cpp +194 -0
  77. data/ext/reflex/file_event.cpp +108 -0
  78. data/ext/reflex/filter.cpp +1 -1
  79. data/ext/reflex/focus_event.cpp +1 -1
  80. data/ext/reflex/frame_event.cpp +1 -1
  81. data/ext/reflex/gamepad.cpp +50 -0
  82. data/ext/reflex/image_view.cpp +1 -1
  83. data/ext/reflex/key_event.cpp +1 -275
  84. data/ext/reflex/line_shape.cpp +1 -1
  85. data/ext/reflex/link_constraint.cpp +1 -1
  86. data/ext/reflex/menu.cpp +8 -7
  87. data/ext/reflex/midi.cpp +11 -3
  88. data/ext/reflex/midi_event.cpp +1 -1
  89. data/ext/reflex/motion_event.cpp +1 -1
  90. data/ext/reflex/native.cpp +18 -6
  91. data/ext/reflex/note_event.cpp +1 -1
  92. data/ext/reflex/pin.cpp +1 -1
  93. data/ext/reflex/pointer.cpp +1 -1
  94. data/ext/reflex/pointer_event.cpp +2 -2
  95. data/ext/reflex/polygon_shape.cpp +1 -1
  96. data/ext/reflex/rect_shape.cpp +1 -1
  97. data/ext/reflex/reflex.cpp +568 -232
  98. data/ext/reflex/screen.cpp +31 -2
  99. data/ext/reflex/scroll_event.cpp +1 -1
  100. data/ext/reflex/selector.cpp +1 -1
  101. data/ext/reflex/selector.h +9 -9
  102. data/ext/reflex/shape.cpp +1 -1
  103. data/ext/reflex/snap_constraint.cpp +1 -1
  104. data/ext/reflex/style.cpp +1 -1
  105. data/ext/reflex/style_length.cpp +1 -1
  106. data/ext/reflex/text_event.cpp +111 -0
  107. data/ext/reflex/timer.cpp +1 -1
  108. data/ext/reflex/timer_event.cpp +1 -1
  109. data/ext/reflex/update_event.cpp +1 -1
  110. data/ext/reflex/view.cpp +121 -61
  111. data/ext/reflex/wheel_constraint.cpp +1 -1
  112. data/ext/reflex/wheel_event.cpp +1 -1
  113. data/ext/reflex/window.cpp +256 -25
  114. data/include/reflex/application.h +10 -0
  115. data/include/reflex/color_picker.h +65 -0
  116. data/include/reflex/event.h +178 -88
  117. data/include/reflex/file_dialog.h +73 -0
  118. data/include/reflex/gamepad.h +3 -0
  119. data/include/reflex/menu.h +3 -3
  120. data/include/reflex/midi.h +3 -0
  121. data/include/reflex/reflex.h +2 -0
  122. data/include/reflex/ruby/application.h +6 -1
  123. data/include/reflex/ruby/color_picker.h +89 -0
  124. data/include/reflex/ruby/event.h +62 -29
  125. data/include/reflex/ruby/file_dialog.h +89 -0
  126. data/include/reflex/ruby/gamepad.h +46 -0
  127. data/include/reflex/ruby/reflex.h +3 -0
  128. data/include/reflex/ruby/view.h +92 -44
  129. data/include/reflex/ruby/window.h +60 -1
  130. data/include/reflex/ruby.h +3 -0
  131. data/include/reflex/screen.h +11 -2
  132. data/include/reflex/view.h +28 -16
  133. data/include/reflex/window.h +40 -8
  134. data/include/reflex.h +3 -0
  135. data/lib/reflex/application.rb +5 -5
  136. data/lib/reflex/autoinit.rb +3 -1
  137. data/lib/reflex/button.rb +3 -3
  138. data/lib/reflex/color_event.rb +16 -0
  139. data/lib/reflex/color_picker.rb +45 -0
  140. data/lib/reflex/control_change_event.rb +17 -0
  141. data/lib/reflex/file_dialog.rb +70 -0
  142. data/lib/reflex/file_event.rb +37 -0
  143. data/lib/reflex/helper.rb +58 -7
  144. data/lib/reflex/key_event.rb +9 -4
  145. data/lib/reflex/menu.rb +17 -1
  146. data/lib/reflex/model.rb +19 -19
  147. data/lib/reflex/note_event.rb +1 -1
  148. data/lib/reflex/pointer.rb +14 -3
  149. data/lib/reflex/pointer_event.rb +12 -1
  150. data/lib/reflex/reflex.rb +5 -0
  151. data/lib/reflex/shape.rb +14 -14
  152. data/lib/reflex/style.rb +16 -16
  153. data/lib/reflex/text_event.rb +40 -0
  154. data/lib/reflex/timer.rb +3 -3
  155. data/lib/reflex/view.rb +29 -14
  156. data/lib/reflex/wheel_event.rb +12 -3
  157. data/lib/reflex/window.rb +25 -13
  158. data/lib/reflex.rb +8 -2
  159. data/reflex.gemspec +4 -4
  160. data/samples/ime.rb +100 -0
  161. data/samples/ios/hello/hello.xcodeproj/project.pbxproj +236 -224
  162. data/samples/menu.rb +4 -1
  163. data/samples/model.rb +3 -3
  164. data/samples/test/alert.rb +93 -0
  165. data/samples/test/always_on.rb +76 -0
  166. data/samples/test/app_background.rb +51 -0
  167. data/samples/test/boundary.rb +75 -0
  168. data/samples/test/callback_exception.rb +101 -0
  169. data/samples/test/cancel.rb +53 -0
  170. data/samples/test/color_picker.rb +63 -0
  171. data/samples/test/file_dialog.rb +102 -0
  172. data/samples/window_style.rb +156 -0
  173. data/src/application.cpp +159 -18
  174. data/src/application.h +92 -7
  175. data/src/color_picker.cpp +113 -0
  176. data/src/color_picker.h +36 -0
  177. data/src/event.cpp +410 -252
  178. data/src/event.h +12 -0
  179. data/src/file_dialog.cpp +163 -0
  180. data/src/file_dialog.h +52 -0
  181. data/src/gamepad.cpp +42 -5
  182. data/src/gamepad.h +4 -0
  183. data/src/ios/app_delegate.mm +5 -3
  184. data/src/ios/application.mm +24 -0
  185. data/src/ios/color_picker.mm +19 -0
  186. data/src/ios/file_dialog.mm +21 -0
  187. data/src/ios/gamepad.mm +4 -4
  188. data/src/ios/menu.mm +5 -0
  189. data/src/ios/reflex.mm +8 -0
  190. data/src/ios/screen.mm +26 -0
  191. data/src/ios/view_controller.mm +2 -30
  192. data/src/ios/window.mm +38 -9
  193. data/src/menu.cpp +66 -4
  194. data/src/menu.h +17 -1
  195. data/src/midi.cpp +61 -31
  196. data/src/osx/app_delegate.h +4 -0
  197. data/src/osx/app_delegate.mm +102 -22
  198. data/src/osx/application.mm +88 -6
  199. data/src/osx/color_picker.mm +112 -0
  200. data/src/osx/event.h +10 -0
  201. data/src/osx/event.mm +84 -30
  202. data/src/osx/file_dialog.mm +168 -0
  203. data/src/osx/gamepad.mm +2 -2
  204. data/src/osx/gamepad_hid.mm +1 -1
  205. data/src/osx/menu.mm +177 -33
  206. data/src/osx/native_window.h +16 -2
  207. data/src/osx/native_window.mm +114 -57
  208. data/src/osx/opengl_view.h +2 -1
  209. data/src/osx/opengl_view.mm +184 -43
  210. data/src/osx/reflex.mm +38 -0
  211. data/src/osx/screen.mm +36 -0
  212. data/src/osx/window.mm +106 -24
  213. data/src/pointer.cpp +13 -4
  214. data/src/pointer.h +4 -0
  215. data/src/rays.h +46 -0
  216. data/src/sdl/application.cpp +68 -8
  217. data/src/sdl/color_picker.cpp +18 -0
  218. data/src/sdl/event.cpp +24 -3
  219. data/src/sdl/event.h +12 -0
  220. data/src/sdl/file_dialog.cpp +20 -0
  221. data/src/sdl/gamepad.cpp +3 -7
  222. data/src/sdl/menu.cpp +5 -0
  223. data/src/sdl/reflex.cpp +20 -0
  224. data/src/sdl/screen.cpp +36 -0
  225. data/src/sdl/window.cpp +142 -29
  226. data/src/shape.cpp +15 -10
  227. data/src/view.cpp +287 -198
  228. data/src/view.h +4 -2
  229. data/src/vk.h +416 -0
  230. data/src/win32/application.cpp +162 -12
  231. data/src/win32/application.h +20 -0
  232. data/src/win32/color_picker.cpp +82 -0
  233. data/src/win32/event.cpp +114 -12
  234. data/src/win32/event.h +21 -4
  235. data/src/win32/file_dialog.cpp +226 -0
  236. data/src/win32/gamepad.cpp +9 -2
  237. data/src/win32/menu.cpp +191 -53
  238. data/src/win32/menu.h +9 -1
  239. data/src/win32/opengl.cpp +2 -9
  240. data/src/win32/reflex.cpp +44 -3
  241. data/src/win32/screen.cpp +164 -3
  242. data/src/win32/screen.h +8 -0
  243. data/src/win32/tray.cpp +191 -0
  244. data/src/win32/tray.h +22 -0
  245. data/src/win32/vk.cpp +11 -0
  246. data/src/win32/window.cpp +809 -148
  247. data/src/win32/window.h +6 -0
  248. data/src/window.cpp +718 -185
  249. data/src/window.h +66 -33
  250. data/src/world.cpp +9 -1
  251. data/test/helper.rb +17 -0
  252. data/test/test_application.rb +90 -1
  253. data/test/test_chase_constraint.rb +1 -3
  254. data/test/test_color_event.rb +36 -0
  255. data/test/test_color_picker.rb +62 -0
  256. data/test/test_constraint.rb +2 -4
  257. data/test/test_event.rb +1 -1
  258. data/test/test_file_dialog.rb +48 -0
  259. data/test/test_file_event.rb +43 -0
  260. data/test/test_has_text_preedit.rb +54 -0
  261. data/test/test_key_event.rb +20 -5
  262. data/test/test_link_constraint.rb +1 -3
  263. data/test/test_menu.rb +40 -10
  264. data/test/test_pointer.rb +33 -23
  265. data/test/test_pointer_event.rb +24 -9
  266. data/test/test_reflex.rb +36 -0
  267. data/test/test_screen.rb +24 -2
  268. data/test/test_snap_constraint.rb +1 -3
  269. data/test/test_text_event.rb +54 -0
  270. data/test/test_view.rb +41 -4
  271. data/test/test_wheel_constraint.rb +1 -3
  272. data/test/test_wheel_event.rb +13 -5
  273. data/test/test_window.rb +196 -44
  274. metadata +80 -10
  275. data/.github/workflows/utils.rb +0 -127
@@ -13,7 +13,8 @@ RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(REFLEX_EXPORT, Reflex::Window)
13
13
 
14
14
  #define THIS to<Reflex::Window*>(self)
15
15
 
16
- #define CHECK RUCY_CHECK_OBJECT(Reflex::Window, self)
16
+ #define CHECK_PTR RUCY_CHECK_PTR(Reflex::Window, self)
17
+ #define CHECK RUCY_CHECK_OBJ(Reflex::Window, self)
17
18
 
18
19
  #define CALL(fun) RUCY_CALL_SUPER(THIS, fun)
19
20
 
@@ -44,7 +45,7 @@ RUCY_DEF0(hide)
44
45
  RUCY_END
45
46
 
46
47
  static
47
- RUCY_DEF0(hidden)
48
+ RUCY_DEF0(is_hidden)
48
49
  {
49
50
  CHECK;
50
51
  return value(THIS->hidden());
@@ -54,8 +55,8 @@ RUCY_END
54
55
  static
55
56
  RUCY_DEF0(close)
56
57
  {
57
- CHECK;
58
- THIS->close();
58
+ CHECK_PTR;
59
+ if (*THIS) THIS->close();
59
60
  return self;
60
61
  }
61
62
  RUCY_END
@@ -210,6 +211,88 @@ RUCY_DEF0(is_resizable)
210
211
  }
211
212
  RUCY_END
212
213
 
214
+ static const uint TITLEBAR_MASK =
215
+ Reflex::Window::FLAG_TITLEBAR_BUTTONS |
216
+ Reflex::Window::FLAG_TITLEBAR_BACKGROUND;
217
+
218
+ static
219
+ RUCY_DEF1(set_titlebar, titlebar)
220
+ {
221
+ CHECK;
222
+
223
+ uint flags = to<uint>(titlebar);
224
+ THIS->set_flags((flags & TITLEBAR_MASK) | (THIS->flags() & ~TITLEBAR_MASK));
225
+ }
226
+ RUCY_END
227
+
228
+ static
229
+ RUCY_DEF0(get_titlebar)
230
+ {
231
+ CHECK;
232
+ return value(THIS->flags() & TITLEBAR_MASK);
233
+ }
234
+ RUCY_END
235
+
236
+ static
237
+ RUCY_DEF1(set_unlisted, state)
238
+ {
239
+ CHECK;
240
+
241
+ if (state)
242
+ THIS-> add_flag(Reflex::Window::FLAG_UNLISTED);
243
+ else
244
+ THIS->remove_flag(Reflex::Window::FLAG_UNLISTED);
245
+ }
246
+ RUCY_END
247
+
248
+ static
249
+ RUCY_DEF0(is_unlisted)
250
+ {
251
+ CHECK;
252
+ return value(THIS->has_flag(Reflex::Window::FLAG_UNLISTED));
253
+ }
254
+ RUCY_END
255
+
256
+ static
257
+ RUCY_DEF1(set_shadow, state)
258
+ {
259
+ CHECK;
260
+
261
+ if (state)
262
+ THIS-> add_flag(Reflex::Window::FLAG_SHADOW);
263
+ else
264
+ THIS->remove_flag(Reflex::Window::FLAG_SHADOW);
265
+ }
266
+ RUCY_END
267
+
268
+ static
269
+ RUCY_DEF0(has_shadow)
270
+ {
271
+ CHECK;
272
+ return value(THIS->has_flag(Reflex::Window::FLAG_SHADOW));
273
+ }
274
+ RUCY_END
275
+
276
+ static
277
+ RUCY_DEF1(set_transparent, state)
278
+ {
279
+ CHECK;
280
+
281
+ if (state)
282
+ THIS-> add_flag(Reflex::Window::FLAG_TRANSPARENT);
283
+ else
284
+ THIS->remove_flag(Reflex::Window::FLAG_TRANSPARENT);
285
+ }
286
+ RUCY_END
287
+
288
+ static
289
+ RUCY_DEF0(is_transparent)
290
+ {
291
+ CHECK;
292
+ return value(THIS->has_flag(Reflex::Window::FLAG_TRANSPARENT));
293
+ }
294
+ RUCY_END
295
+
213
296
  static
214
297
  RUCY_DEF1(set_fullscreen, state)
215
298
  {
@@ -232,18 +315,98 @@ RUCY_DEF0(is_fullscreen)
232
315
  }
233
316
  RUCY_END
234
317
 
318
+ static
319
+ RUCY_DEF1(set_always_on_top, state)
320
+ {
321
+ CHECK;
322
+
323
+ if (state)
324
+ {
325
+ THIS->remove_flag(Reflex::Window::FLAG_ALWAYS_ON_BOTTOM);
326
+ THIS-> add_flag(Reflex::Window::FLAG_ALWAYS_ON_TOP);
327
+ }
328
+ else
329
+ THIS->remove_flag(Reflex::Window::FLAG_ALWAYS_ON_TOP);
330
+ }
331
+ RUCY_END
332
+
333
+ static
334
+ RUCY_DEF0(is_always_on_top)
335
+ {
336
+ CHECK;
337
+ return value(THIS->has_flag(Reflex::Window::FLAG_ALWAYS_ON_TOP));
338
+ }
339
+ RUCY_END
340
+
341
+ static
342
+ RUCY_DEF1(set_always_on_bottom, state)
343
+ {
344
+ CHECK;
345
+
346
+ if (state)
347
+ {
348
+ THIS->remove_flag(Reflex::Window::FLAG_ALWAYS_ON_TOP);
349
+ THIS-> add_flag(Reflex::Window::FLAG_ALWAYS_ON_BOTTOM);
350
+ }
351
+ else
352
+ THIS->remove_flag(Reflex::Window::FLAG_ALWAYS_ON_BOTTOM);
353
+ }
354
+ RUCY_END
355
+
356
+ static
357
+ RUCY_DEF0(is_always_on_bottom)
358
+ {
359
+ CHECK;
360
+ return value(THIS->has_flag(Reflex::Window::FLAG_ALWAYS_ON_BOTTOM));
361
+ }
362
+ RUCY_END
363
+
364
+ static
365
+ RUCY_DEF1(set_pointer_through, state)
366
+ {
367
+ CHECK;
368
+
369
+ if (state)
370
+ THIS-> add_flag(Reflex::Window::FLAG_POINTER_THROUGH);
371
+ else
372
+ THIS->remove_flag(Reflex::Window::FLAG_POINTER_THROUGH);
373
+ }
374
+ RUCY_END
375
+
376
+ static
377
+ RUCY_DEF0(is_pointer_through)
378
+ {
379
+ CHECK;
380
+ return value(THIS->has_flag(Reflex::Window::FLAG_POINTER_THROUGH));
381
+ }
382
+ RUCY_END
383
+
384
+ static
385
+ RUCY_DEF1(set_pointer_through_alpha, alpha)
386
+ {
387
+ CHECK;
388
+ THIS->set_pointer_through_alpha(to<float>(alpha));
389
+ }
390
+ RUCY_END
391
+
392
+ static
393
+ RUCY_DEF0(get_pointer_through_alpha)
394
+ {
395
+ CHECK;
396
+ return value(THIS->pointer_through_alpha());
397
+ }
398
+ RUCY_END
399
+
235
400
  static const uint ORIENTATION_MASK =
236
401
  Reflex::Window::FLAG_PORTRAIT | Reflex::Window::FLAG_LANDSCAPE;
237
402
 
238
403
  static
239
404
  RUCY_DEF1(set_orientations, orientations)
240
405
  {
241
- using namespace Reflex;
242
-
243
406
  CHECK;
244
407
 
245
408
  uint flags = to<uint>(orientations);
246
- THIS->set_flag(
409
+ THIS->set_flags(
247
410
  ( flags & ORIENTATION_MASK) |
248
411
  (THIS->flags() & ~ORIENTATION_MASK));
249
412
  }
@@ -252,8 +415,6 @@ RUCY_END
252
415
  static
253
416
  RUCY_DEF0(get_orientations)
254
417
  {
255
- using namespace Reflex;
256
-
257
418
  CHECK;
258
419
  return value(THIS->flags() & ORIENTATION_MASK);
259
420
  }
@@ -296,9 +457,6 @@ RUCY_DEF1(on_show, event)
296
457
  {
297
458
  CHECK;
298
459
 
299
- RUCY_SYM(call_show_block);
300
- self.call(call_show_block);
301
-
302
460
  CALL(on_show(to<Reflex::Event*>(event)));
303
461
  }
304
462
  RUCY_END
@@ -391,6 +549,30 @@ RUCY_DEF1(on_key_up, event)
391
549
  }
392
550
  RUCY_END
393
551
 
552
+ static
553
+ RUCY_DEF1(on_text, event)
554
+ {
555
+ CHECK;
556
+ CALL(on_text(to<Reflex::TextEvent*>(event)));
557
+ }
558
+ RUCY_END
559
+
560
+ static
561
+ RUCY_DEF1(on_text_preedit, event)
562
+ {
563
+ CHECK;
564
+ CALL(on_text_preedit(to<Reflex::TextEvent*>(event)));
565
+ }
566
+ RUCY_END
567
+
568
+ static
569
+ RUCY_DEF1(on_text_commit, event)
570
+ {
571
+ CHECK;
572
+ CALL(on_text_commit(to<Reflex::TextEvent*>(event)));
573
+ }
574
+ RUCY_END
575
+
394
576
  static
395
577
  RUCY_DEF1(on_pointer, event)
396
578
  {
@@ -455,6 +637,30 @@ RUCY_DEF1(on_wheel, event)
455
637
  }
456
638
  RUCY_END
457
639
 
640
+ static
641
+ RUCY_DEF1(on_file, event)
642
+ {
643
+ CHECK;
644
+ CALL(on_file(to<Reflex::FileEvent*>(event)));
645
+ }
646
+ RUCY_END
647
+
648
+ static
649
+ RUCY_DEF1(on_file_open, event)
650
+ {
651
+ CHECK;
652
+ CALL(on_file_open(to<Reflex::FileEvent*>(event)));
653
+ }
654
+ RUCY_END
655
+
656
+ static
657
+ RUCY_DEF1(on_file_save, event)
658
+ {
659
+ CHECK;
660
+ CALL(on_file_save(to<Reflex::FileEvent*>(event)));
661
+ }
662
+ RUCY_END
663
+
458
664
  static
459
665
  RUCY_DEF1(on_midi, event)
460
666
  {
@@ -505,8 +711,9 @@ Init_reflex_window ()
505
711
 
506
712
  cWindow = mReflex.define_class("Window");
507
713
  cWindow.define_alloc_func(alloc);
508
- cWindow.define_method("show", show);
509
- cWindow.define_method("hide", hide);
714
+ cWindow.define_method("show", show);
715
+ cWindow.define_method("hide", hide);
716
+ cWindow.define_method("hidden?", is_hidden);
510
717
  cWindow.define_method("close", close);
511
718
  cWindow.define_method("redraw", redraw);
512
719
  cWindow.define_method("from_screen", from_screen);
@@ -518,17 +725,32 @@ Init_reflex_window ()
518
725
  cWindow.define_method("frame", get_frame);
519
726
  cWindow.define_method("menu=", set_menu);
520
727
  cWindow.define_method("menu", get_menu);
521
- cWindow.define_method("closable=", set_closable);
522
- cWindow.define_method("closable?", is_closable);
523
- cWindow.define_method("minimizable=", set_minimizable);
524
- cWindow.define_method("minimizable?", is_minimizable);
525
- cWindow.define_method("resizable=", set_resizable);
526
- cWindow.define_method("resizable?", is_resizable);
527
- cWindow.define_method("fullscreen=", set_fullscreen);
528
- cWindow.define_method("fullscreen?", is_fullscreen);
529
- cWindow.define_method("orientations=", set_orientations);
530
- cWindow.define_method("orientations", get_orientations);
531
- cWindow.define_method("hidden", hidden);
728
+ cWindow.define_method("closable=", set_closable);
729
+ cWindow.define_method("closable?", is_closable);
730
+ cWindow.define_method("minimizable=", set_minimizable);
731
+ cWindow.define_method("minimizable?", is_minimizable);
732
+ cWindow.define_method("resizable=", set_resizable);
733
+ cWindow.define_method("resizable?", is_resizable);
734
+ cWindow.define_method("titlebar=", set_titlebar);
735
+ cWindow.define_method("titlebar", get_titlebar);
736
+ cWindow.define_method("unlisted=", set_unlisted);
737
+ cWindow.define_method("unlisted?", is_unlisted);
738
+ cWindow.define_method("shadow=", set_shadow);
739
+ cWindow.define_method("shadow?", has_shadow);
740
+ cWindow.define_method("transparent=", set_transparent);
741
+ cWindow.define_method("transparent?", is_transparent);
742
+ cWindow.define_method("fullscreen=", set_fullscreen);
743
+ cWindow.define_method("fullscreen?", is_fullscreen);
744
+ cWindow.define_method("always_on_top=", set_always_on_top);
745
+ cWindow.define_method("always_on_top?", is_always_on_top);
746
+ cWindow.define_method("always_on_bottom=", set_always_on_bottom);
747
+ cWindow.define_method("always_on_bottom?", is_always_on_bottom);
748
+ cWindow.define_method("pointer_through=", set_pointer_through);
749
+ cWindow.define_method("pointer_through?", is_pointer_through);
750
+ cWindow.define_method("pointer_through_alpha=", set_pointer_through_alpha);
751
+ cWindow.define_method("pointer_through_alpha", get_pointer_through_alpha);
752
+ cWindow.define_method("orientations=", set_orientations);
753
+ cWindow.define_method("orientations", get_orientations);
532
754
  cWindow.define_method("screen", get_screen);
533
755
  cWindow.define_method("root", get_root);
534
756
  cWindow.define_method("focus", get_focus);
@@ -545,6 +767,9 @@ Init_reflex_window ()
545
767
  cWindow.define_method("on_key", on_key);
546
768
  cWindow.define_method("on_key_down", on_key_down);
547
769
  cWindow.define_method("on_key_up", on_key_up);
770
+ cWindow.define_method("on_text", on_text);
771
+ cWindow.define_method("on_text_preedit", on_text_preedit);
772
+ cWindow.define_method("on_text_commit", on_text_commit);
548
773
  cWindow.define_method("on_pointer", on_pointer);
549
774
  cWindow.define_method("on_pointer_down", on_pointer_down);
550
775
  cWindow.define_method("on_pointer_up", on_pointer_up);
@@ -553,12 +778,18 @@ Init_reflex_window ()
553
778
  cWindow.define_method("on_pointer_enter", on_pointer_enter);
554
779
  cWindow.define_method("on_pointer_leave", on_pointer_leave);
555
780
  cWindow.define_method("on_wheel", on_wheel);
781
+ cWindow.define_method("on_file", on_file);
782
+ cWindow.define_method("on_file_open", on_file_open);
783
+ cWindow.define_method("on_file_save", on_file_save);
556
784
  cWindow.define_method("on_midi", on_midi);
557
785
  cWindow.define_method("on_note", on_note);
558
786
  cWindow.define_method("on_note_on", on_note_on);
559
787
  cWindow.define_method("on_note_off", on_note_off);
560
788
  cWindow.define_method("on_control_change", on_control_change);
561
789
 
790
+ cWindow.define_const("TITLEBAR_BUTTONS", Reflex::Window::FLAG_TITLEBAR_BUTTONS);
791
+ cWindow.define_const("TITLEBAR_BACKGROUND", Reflex::Window::FLAG_TITLEBAR_BACKGROUND);
792
+
562
793
  cWindow.define_const("ORIENTATION_PORTRAIT", Reflex::Window::FLAG_PORTRAIT);
563
794
  cWindow.define_const("ORIENTATION_LANDSCAPE", Reflex::Window::FLAG_LANDSCAPE);
564
795
 
@@ -50,6 +50,16 @@ namespace Reflex
50
50
 
51
51
  virtual const Menu* menu () const;
52
52
 
53
+ virtual void set_background (bool state);
54
+
55
+ virtual bool background () const;
56
+
57
+ virtual void set_background_menu (Menu* menu);
58
+
59
+ virtual Menu* background_menu ();
60
+
61
+ virtual const Menu* background_menu () const;
62
+
53
63
  virtual window_iterator window_begin ();
54
64
 
55
65
  virtual const_window_iterator window_begin () const;
@@ -0,0 +1,65 @@
1
+ // -*- c++ -*-
2
+ #pragma once
3
+ #ifndef __REFLEX_COLOR_PICKER_H__
4
+ #define __REFLEX_COLOR_PICKER_H__
5
+
6
+
7
+ #include <xot/ref.h>
8
+ #include <xot/pimpl.h>
9
+ #include <reflex/defs.h>
10
+ #include <reflex/event.h>
11
+
12
+
13
+ namespace Reflex
14
+ {
15
+
16
+
17
+ class Window;
18
+
19
+
20
+ class ColorPicker : public Xot::RefCountable<>
21
+ {
22
+
23
+ typedef ColorPicker This;
24
+
25
+ public:
26
+
27
+ typedef Xot::Ref<This> Ref;
28
+
29
+ ColorPicker ();
30
+
31
+ virtual ~ColorPicker ();
32
+
33
+ virtual void pick_color ();
34
+
35
+ virtual void pick_color (const Color& initial);
36
+
37
+ virtual void set_owner (Window* window);
38
+
39
+ virtual Window* owner ();
40
+
41
+ virtual const Window* owner () const;
42
+
43
+ virtual void set_alpha (bool state);
44
+
45
+ virtual bool alpha () const;
46
+
47
+ virtual void on_color (ColorEvent* e);
48
+
49
+ virtual void on_close (Event* e);
50
+
51
+ virtual operator bool () const;
52
+
53
+ virtual bool operator ! () const;
54
+
55
+ struct Data;
56
+
57
+ Xot::PSharedImpl<Data> self;
58
+
59
+ };// ColorPicker
60
+
61
+
62
+ }// Reflex
63
+
64
+
65
+ #endif//EOH