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,154 @@
1
+ #include "reflex/ruby/constraint.h"
2
+
3
+
4
+ #include <rays/ruby/point.h>
5
+ #include "reflex/exception.h"
6
+ #include "defs.h"
7
+
8
+
9
+ RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(REFLEX_EXPORT, Reflex::WheelConstraint)
10
+
11
+ #define THIS to<Reflex::WheelConstraint*>(self)
12
+
13
+ #define CHECK RUCY_CHECK_PTR(Reflex::WheelConstraint, self)
14
+
15
+
16
+ static
17
+ RUCY_DEF_ALLOC(alloc, klass)
18
+ {
19
+ Reflex::reflex_error(
20
+ __FILE__, __LINE__, "can not instantiate WheelConstraint class");
21
+ }
22
+ RUCY_END
23
+
24
+ static
25
+ RUCY_DEFN(set_axis)
26
+ {
27
+ CHECK;
28
+ THIS->set_axis(to<Rays::Point>(argc, argv));
29
+ }
30
+ RUCY_END
31
+
32
+ static
33
+ RUCY_DEF0(get_axis)
34
+ {
35
+ CHECK;
36
+ return value(THIS->axis());
37
+ }
38
+ RUCY_END
39
+
40
+ static
41
+ RUCY_DEF2(set_range, min, max)
42
+ {
43
+ CHECK;
44
+ THIS->set_range(to<coord>(min), to<coord>(max));
45
+ }
46
+ RUCY_END
47
+
48
+ static
49
+ RUCY_DEF0(clear_range)
50
+ {
51
+ CHECK;
52
+ THIS->clear_range();
53
+ }
54
+ RUCY_END
55
+
56
+ static
57
+ RUCY_DEF0(range_min)
58
+ {
59
+ CHECK;
60
+ return value(THIS->range_min());
61
+ }
62
+ RUCY_END
63
+
64
+ static
65
+ RUCY_DEF0(range_max)
66
+ {
67
+ CHECK;
68
+ return value(THIS->range_max());
69
+ }
70
+ RUCY_END
71
+
72
+ static
73
+ RUCY_DEF0(has_range)
74
+ {
75
+ CHECK;
76
+ return value(THIS->has_range());
77
+ }
78
+ RUCY_END
79
+
80
+ static
81
+ RUCY_DEF1(set_motor, degrees_per_second)
82
+ {
83
+ CHECK;
84
+ if (degrees_per_second.is_nil())
85
+ THIS->clear_motor();
86
+ else
87
+ THIS->set_motor(to<float>(degrees_per_second));
88
+ }
89
+ RUCY_END
90
+
91
+ static
92
+ RUCY_DEF0(get_motor)
93
+ {
94
+ CHECK;
95
+ return THIS->has_motor() ? value(THIS->motor()) : nil();
96
+ }
97
+ RUCY_END
98
+
99
+ static
100
+ RUCY_DEF1(set_force, max_torque)
101
+ {
102
+ CHECK;
103
+ if (max_torque.is_nil())
104
+ THIS->clear_force();
105
+ else
106
+ THIS->set_force(to<float>(max_torque));
107
+ }
108
+ RUCY_END
109
+
110
+ static
111
+ RUCY_DEF0(get_force)
112
+ {
113
+ CHECK;
114
+ return THIS->has_force() ? value(THIS->force()) : nil();
115
+ }
116
+ RUCY_END
117
+
118
+
119
+ static Class cWheelConstraint;
120
+
121
+ void
122
+ Init_reflex_wheel_constraint ()
123
+ {
124
+ Module mReflex = define_module("Reflex");
125
+
126
+ cWheelConstraint = mReflex.define_class(
127
+ "WheelConstraint", Reflex::constraint_class());
128
+ cWheelConstraint.define_alloc_func(alloc);
129
+ cWheelConstraint.define_method("axis=", set_axis);
130
+ cWheelConstraint.define_method("axis", get_axis);
131
+ cWheelConstraint.define_private_method( "set_range!", set_range);
132
+ cWheelConstraint.define_private_method("clear_range!", clear_range);
133
+ cWheelConstraint.define_private_method( "range_min!", range_min);
134
+ cWheelConstraint.define_private_method( "range_max!", range_max);
135
+ cWheelConstraint.define_private_method( "has_range!", has_range);
136
+ cWheelConstraint.define_method("motor=", set_motor);
137
+ cWheelConstraint.define_method("motor", get_motor);
138
+ cWheelConstraint.define_method("force=", set_force);
139
+ cWheelConstraint.define_method("force", get_force);
140
+ }
141
+
142
+
143
+ namespace Reflex
144
+ {
145
+
146
+
147
+ Class
148
+ wheel_constraint_class ()
149
+ {
150
+ return cWheelConstraint;
151
+ }
152
+
153
+
154
+ }// Reflex
@@ -9,7 +9,7 @@ RUCY_DEFINE_VALUE_FROM_TO(REFLEX_EXPORT, Reflex::WheelEvent)
9
9
 
10
10
  #define THIS to<Reflex::WheelEvent*>(self)
11
11
 
12
- #define CHECK RUCY_CHECK_OBJ(Reflex::WheelEvent, self)
12
+ #define CHECK RUCY_CHECK_PTR(Reflex::WheelEvent, self)
13
13
 
14
14
 
15
15
  static
@@ -3,8 +3,9 @@
3
3
 
4
4
  #include <rays/ruby/bounds.h>
5
5
  #include <rays/ruby/painter.h>
6
- #include "reflex/ruby/screen.h"
7
6
  #include "reflex/ruby/view.h"
7
+ #include "reflex/ruby/menu.h"
8
+ #include "reflex/ruby/screen.h"
8
9
  #include "defs.h"
9
10
 
10
11
 
@@ -12,7 +13,8 @@ RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(REFLEX_EXPORT, Reflex::Window)
12
13
 
13
14
  #define THIS to<Reflex::Window*>(self)
14
15
 
15
- #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)
16
18
 
17
19
  #define CALL(fun) RUCY_CALL_SUPER(THIS, fun)
18
20
 
@@ -43,7 +45,7 @@ RUCY_DEF0(hide)
43
45
  RUCY_END
44
46
 
45
47
  static
46
- RUCY_DEF0(hidden)
48
+ RUCY_DEF0(is_hidden)
47
49
  {
48
50
  CHECK;
49
51
  return value(THIS->hidden());
@@ -53,8 +55,8 @@ RUCY_END
53
55
  static
54
56
  RUCY_DEF0(close)
55
57
  {
56
- CHECK;
57
- THIS->close();
58
+ CHECK_PTR;
59
+ if (*THIS) THIS->close();
58
60
  return self;
59
61
  }
60
62
  RUCY_END
@@ -84,6 +86,14 @@ RUCY_DEF1(to_screen, point)
84
86
  }
85
87
  RUCY_END
86
88
 
89
+ static
90
+ RUCY_DEF0(is_active)
91
+ {
92
+ CHECK;
93
+ return value(THIS->active());
94
+ }
95
+ RUCY_END
96
+
87
97
  static
88
98
  RUCY_DEF1(set_title, title)
89
99
  {
@@ -118,6 +128,23 @@ RUCY_DEF0(get_frame)
118
128
  }
119
129
  RUCY_END
120
130
 
131
+ static
132
+ RUCY_DEF1(set_menu, menu)
133
+ {
134
+ CHECK;
135
+ THIS->set_menu(menu ? to<Reflex::Menu*>(menu) : NULL);
136
+ return menu;
137
+ }
138
+ RUCY_END
139
+
140
+ static
141
+ RUCY_DEF0(get_menu)
142
+ {
143
+ CHECK;
144
+ return value(THIS->menu());
145
+ }
146
+ RUCY_END
147
+
121
148
  static
122
149
  RUCY_DEF1(set_closable, state)
123
150
  {
@@ -184,6 +211,88 @@ RUCY_DEF0(is_resizable)
184
211
  }
185
212
  RUCY_END
186
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
+
187
296
  static
188
297
  RUCY_DEF1(set_fullscreen, state)
189
298
  {
@@ -206,18 +315,98 @@ RUCY_DEF0(is_fullscreen)
206
315
  }
207
316
  RUCY_END
208
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
+
209
400
  static const uint ORIENTATION_MASK =
210
401
  Reflex::Window::FLAG_PORTRAIT | Reflex::Window::FLAG_LANDSCAPE;
211
402
 
212
403
  static
213
404
  RUCY_DEF1(set_orientations, orientations)
214
405
  {
215
- using namespace Reflex;
216
-
217
406
  CHECK;
218
407
 
219
408
  uint flags = to<uint>(orientations);
220
- THIS->set_flag(
409
+ THIS->set_flags(
221
410
  ( flags & ORIENTATION_MASK) |
222
411
  (THIS->flags() & ~ORIENTATION_MASK));
223
412
  }
@@ -226,8 +415,6 @@ RUCY_END
226
415
  static
227
416
  RUCY_DEF0(get_orientations)
228
417
  {
229
- using namespace Reflex;
230
-
231
418
  CHECK;
232
419
  return value(THIS->flags() & ORIENTATION_MASK);
233
420
  }
@@ -266,46 +453,43 @@ RUCY_DEF0(get_painter)
266
453
  RUCY_END
267
454
 
268
455
  static
269
- RUCY_DEF1(on_activate, event)
456
+ RUCY_DEF1(on_show, event)
270
457
  {
271
458
  CHECK;
272
- CALL(on_activate(to<Reflex::Event*>(event)));
459
+
460
+ CALL(on_show(to<Reflex::Event*>(event)));
273
461
  }
274
462
  RUCY_END
275
463
 
276
464
  static
277
- RUCY_DEF1(on_deactivate, event)
465
+ RUCY_DEF1(on_hide, event)
278
466
  {
279
467
  CHECK;
280
- CALL(on_deactivate(to<Reflex::Event*>(event)));
468
+ CALL(on_hide(to<Reflex::Event*>(event)));
281
469
  }
282
470
  RUCY_END
283
471
 
284
472
  static
285
- RUCY_DEF1(on_show, event)
473
+ RUCY_DEF1(on_close, event)
286
474
  {
287
475
  CHECK;
288
-
289
- RUCY_SYM(call_show_block);
290
- self.call(call_show_block);
291
-
292
- CALL(on_show(to<Reflex::Event*>(event)));
476
+ CALL(on_close(to<Reflex::Event*>(event)));
293
477
  }
294
478
  RUCY_END
295
479
 
296
480
  static
297
- RUCY_DEF1(on_hide, event)
481
+ RUCY_DEF1(on_activate, event)
298
482
  {
299
483
  CHECK;
300
- CALL(on_hide(to<Reflex::Event*>(event)));
484
+ CALL(on_activate(to<Reflex::Event*>(event)));
301
485
  }
302
486
  RUCY_END
303
487
 
304
488
  static
305
- RUCY_DEF1(on_close, event)
489
+ RUCY_DEF1(on_deactivate, event)
306
490
  {
307
491
  CHECK;
308
- CALL(on_close(to<Reflex::Event*>(event)));
492
+ CALL(on_deactivate(to<Reflex::Event*>(event)));
309
493
  }
310
494
  RUCY_END
311
495
 
@@ -365,6 +549,30 @@ RUCY_DEF1(on_key_up, event)
365
549
  }
366
550
  RUCY_END
367
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
+
368
576
  static
369
577
  RUCY_DEF1(on_pointer, event)
370
578
  {
@@ -405,6 +613,22 @@ RUCY_DEF1(on_pointer_cancel, event)
405
613
  }
406
614
  RUCY_END
407
615
 
616
+ static
617
+ RUCY_DEF1(on_pointer_enter, event)
618
+ {
619
+ CHECK;
620
+ CALL(on_pointer_enter(to<Reflex::PointerEvent*>(event)));
621
+ }
622
+ RUCY_END
623
+
624
+ static
625
+ RUCY_DEF1(on_pointer_leave, event)
626
+ {
627
+ CHECK;
628
+ CALL(on_pointer_leave(to<Reflex::PointerEvent*>(event)));
629
+ }
630
+ RUCY_END
631
+
408
632
  static
409
633
  RUCY_DEF1(on_wheel, event)
410
634
  {
@@ -413,6 +637,30 @@ RUCY_DEF1(on_wheel, event)
413
637
  }
414
638
  RUCY_END
415
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
+
416
664
  static
417
665
  RUCY_DEF1(on_midi, event)
418
666
  {
@@ -463,36 +711,55 @@ Init_reflex_window ()
463
711
 
464
712
  cWindow = mReflex.define_class("Window");
465
713
  cWindow.define_alloc_func(alloc);
466
- cWindow.define_method("show", show);
467
- cWindow.define_method("hide", hide);
714
+ cWindow.define_method("show", show);
715
+ cWindow.define_method("hide", hide);
716
+ cWindow.define_method("hidden?", is_hidden);
468
717
  cWindow.define_method("close", close);
469
718
  cWindow.define_method("redraw", redraw);
470
719
  cWindow.define_method("from_screen", from_screen);
471
720
  cWindow.define_method( "to_screen", to_screen);
721
+ cWindow.define_method("active?", is_active);
472
722
  cWindow.define_method("title=", set_title);
473
- cWindow.define_method("title", get_title);
723
+ cWindow.define_method("title", get_title);
474
724
  cWindow.define_method("frame=", set_frame);
475
725
  cWindow.define_method("frame", get_frame);
476
- cWindow.define_method("closable=", set_closable);
477
- cWindow.define_method("closable?", is_closable);
478
- cWindow.define_method("minimizable=", set_minimizable);
479
- cWindow.define_method("minimizable?", is_minimizable);
480
- cWindow.define_method("resizable=", set_resizable);
481
- cWindow.define_method("resizable?", is_resizable);
482
- cWindow.define_method("fullscreen=", set_fullscreen);
483
- cWindow.define_method("fullscreen?", is_fullscreen);
484
- cWindow.define_method("orientations=", set_orientations);
485
- cWindow.define_method("orientations", get_orientations);
486
- cWindow.define_method("hidden", hidden);
726
+ cWindow.define_method("menu=", set_menu);
727
+ cWindow.define_method("menu", get_menu);
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);
487
754
  cWindow.define_method("screen", get_screen);
488
755
  cWindow.define_method("root", get_root);
489
756
  cWindow.define_method("focus", get_focus);
490
757
  cWindow.define_method("painter", get_painter);
491
- cWindow.define_method("on_activate", on_activate);
492
- cWindow.define_method("on_deactivate", on_deactivate);
493
758
  cWindow.define_method("on_show", on_show);
494
759
  cWindow.define_method("on_hide", on_hide);
495
760
  cWindow.define_method("on_close", on_close);
761
+ cWindow.define_method("on_activate", on_activate);
762
+ cWindow.define_method("on_deactivate", on_deactivate);
496
763
  cWindow.define_method("on_update", on_update);
497
764
  cWindow.define_method("on_draw", on_draw);
498
765
  cWindow.define_method("on_move", on_move);
@@ -500,18 +767,29 @@ Init_reflex_window ()
500
767
  cWindow.define_method("on_key", on_key);
501
768
  cWindow.define_method("on_key_down", on_key_down);
502
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);
503
773
  cWindow.define_method("on_pointer", on_pointer);
504
774
  cWindow.define_method("on_pointer_down", on_pointer_down);
505
775
  cWindow.define_method("on_pointer_up", on_pointer_up);
506
776
  cWindow.define_method("on_pointer_move", on_pointer_move);
507
777
  cWindow.define_method("on_pointer_cancel", on_pointer_cancel);
778
+ cWindow.define_method("on_pointer_enter", on_pointer_enter);
779
+ cWindow.define_method("on_pointer_leave", on_pointer_leave);
508
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);
509
784
  cWindow.define_method("on_midi", on_midi);
510
785
  cWindow.define_method("on_note", on_note);
511
786
  cWindow.define_method("on_note_on", on_note_on);
512
787
  cWindow.define_method("on_note_off", on_note_off);
513
788
  cWindow.define_method("on_control_change", on_control_change);
514
789
 
790
+ cWindow.define_const("TITLEBAR_BUTTONS", Reflex::Window::FLAG_TITLEBAR_BUTTONS);
791
+ cWindow.define_const("TITLEBAR_BACKGROUND", Reflex::Window::FLAG_TITLEBAR_BACKGROUND);
792
+
515
793
  cWindow.define_const("ORIENTATION_PORTRAIT", Reflex::Window::FLAG_PORTRAIT);
516
794
  cWindow.define_const("ORIENTATION_LANDSCAPE", Reflex::Window::FLAG_LANDSCAPE);
517
795
 
@@ -16,6 +16,9 @@ namespace Reflex
16
16
  {
17
17
 
18
18
 
19
+ class Menu;
20
+
21
+
19
22
  class Application : public Xot::RefCountable<>
20
23
  {
21
24
 
@@ -41,6 +44,22 @@ namespace Reflex
41
44
 
42
45
  virtual const char* name () const;
43
46
 
47
+ virtual void set_menu (Menu* menu);
48
+
49
+ virtual Menu* menu ();
50
+
51
+ virtual const Menu* menu () const;
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
+
44
63
  virtual window_iterator window_begin ();
45
64
 
46
65
  virtual const_window_iterator window_begin () const;