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
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reflexion
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - xordog
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-08-04 00:00:00.000000000 Z
11
+ date: 2026-11-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: xot
@@ -16,42 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.4.0
19
+ version: 0.5.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.4.0
26
+ version: 0.5.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rucy
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.4.0
33
+ version: 0.5.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.4.0
40
+ version: 0.5.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rays
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.4.0
47
+ version: 0.5.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.4.0
54
+ version: 0.5.0
55
55
  description: This library helps you to develop interactive graphical user interface.
56
56
  email: xordog@gmail.com
57
57
  executables: []
@@ -62,6 +62,8 @@ extra_rdoc_files:
62
62
  - ".doc/ext/reflex/capture_event.cpp"
63
63
  - ".doc/ext/reflex/chase_constraint.cpp"
64
64
  - ".doc/ext/reflex/clipboard.cpp"
65
+ - ".doc/ext/reflex/color_event.cpp"
66
+ - ".doc/ext/reflex/color_picker.cpp"
65
67
  - ".doc/ext/reflex/constraint.cpp"
66
68
  - ".doc/ext/reflex/contact_event.cpp"
67
69
  - ".doc/ext/reflex/control_change_event.cpp"
@@ -71,9 +73,12 @@ extra_rdoc_files:
71
73
  - ".doc/ext/reflex/ellipse_shape.cpp"
72
74
  - ".doc/ext/reflex/event.cpp"
73
75
  - ".doc/ext/reflex/exception.cpp"
76
+ - ".doc/ext/reflex/file_dialog.cpp"
77
+ - ".doc/ext/reflex/file_event.cpp"
74
78
  - ".doc/ext/reflex/filter.cpp"
75
79
  - ".doc/ext/reflex/focus_event.cpp"
76
80
  - ".doc/ext/reflex/frame_event.cpp"
81
+ - ".doc/ext/reflex/gamepad.cpp"
77
82
  - ".doc/ext/reflex/image_view.cpp"
78
83
  - ".doc/ext/reflex/key_event.cpp"
79
84
  - ".doc/ext/reflex/line_shape.cpp"
@@ -97,6 +102,7 @@ extra_rdoc_files:
97
102
  - ".doc/ext/reflex/snap_constraint.cpp"
98
103
  - ".doc/ext/reflex/style.cpp"
99
104
  - ".doc/ext/reflex/style_length.cpp"
105
+ - ".doc/ext/reflex/text_event.cpp"
100
106
  - ".doc/ext/reflex/timer.cpp"
101
107
  - ".doc/ext/reflex/timer_event.cpp"
102
108
  - ".doc/ext/reflex/update_event.cpp"
@@ -109,6 +115,8 @@ files:
109
115
  - ".doc/ext/reflex/capture_event.cpp"
110
116
  - ".doc/ext/reflex/chase_constraint.cpp"
111
117
  - ".doc/ext/reflex/clipboard.cpp"
118
+ - ".doc/ext/reflex/color_event.cpp"
119
+ - ".doc/ext/reflex/color_picker.cpp"
112
120
  - ".doc/ext/reflex/constraint.cpp"
113
121
  - ".doc/ext/reflex/contact_event.cpp"
114
122
  - ".doc/ext/reflex/control_change_event.cpp"
@@ -118,9 +126,12 @@ files:
118
126
  - ".doc/ext/reflex/ellipse_shape.cpp"
119
127
  - ".doc/ext/reflex/event.cpp"
120
128
  - ".doc/ext/reflex/exception.cpp"
129
+ - ".doc/ext/reflex/file_dialog.cpp"
130
+ - ".doc/ext/reflex/file_event.cpp"
121
131
  - ".doc/ext/reflex/filter.cpp"
122
132
  - ".doc/ext/reflex/focus_event.cpp"
123
133
  - ".doc/ext/reflex/frame_event.cpp"
134
+ - ".doc/ext/reflex/gamepad.cpp"
124
135
  - ".doc/ext/reflex/image_view.cpp"
125
136
  - ".doc/ext/reflex/key_event.cpp"
126
137
  - ".doc/ext/reflex/line_shape.cpp"
@@ -144,6 +155,7 @@ files:
144
155
  - ".doc/ext/reflex/snap_constraint.cpp"
145
156
  - ".doc/ext/reflex/style.cpp"
146
157
  - ".doc/ext/reflex/style_length.cpp"
158
+ - ".doc/ext/reflex/text_event.cpp"
147
159
  - ".doc/ext/reflex/timer.cpp"
148
160
  - ".doc/ext/reflex/timer_event.cpp"
149
161
  - ".doc/ext/reflex/update_event.cpp"
@@ -155,7 +167,6 @@ files:
155
167
  - ".github/workflows/release-gem.yml"
156
168
  - ".github/workflows/tag.yml"
157
169
  - ".github/workflows/test.yml"
158
- - ".github/workflows/utils.rb"
159
170
  - CLAUDE.md
160
171
  - CONTRIBUTING.md
161
172
  - ChangeLog.md
@@ -170,6 +181,8 @@ files:
170
181
  - ext/reflex/capture_event.cpp
171
182
  - ext/reflex/chase_constraint.cpp
172
183
  - ext/reflex/clipboard.cpp
184
+ - ext/reflex/color_event.cpp
185
+ - ext/reflex/color_picker.cpp
173
186
  - ext/reflex/constraint.cpp
174
187
  - ext/reflex/contact_event.cpp
175
188
  - ext/reflex/control_change_event.cpp
@@ -181,9 +194,12 @@ files:
181
194
  - ext/reflex/event.cpp
182
195
  - ext/reflex/exception.cpp
183
196
  - ext/reflex/extconf.rb
197
+ - ext/reflex/file_dialog.cpp
198
+ - ext/reflex/file_event.cpp
184
199
  - ext/reflex/filter.cpp
185
200
  - ext/reflex/focus_event.cpp
186
201
  - ext/reflex/frame_event.cpp
202
+ - ext/reflex/gamepad.cpp
187
203
  - ext/reflex/image_view.cpp
188
204
  - ext/reflex/key_event.cpp
189
205
  - ext/reflex/line_shape.cpp
@@ -208,6 +224,7 @@ files:
208
224
  - ext/reflex/snap_constraint.cpp
209
225
  - ext/reflex/style.cpp
210
226
  - ext/reflex/style_length.cpp
227
+ - ext/reflex/text_event.cpp
211
228
  - ext/reflex/timer.cpp
212
229
  - ext/reflex/timer_event.cpp
213
230
  - ext/reflex/update_event.cpp
@@ -218,12 +235,14 @@ files:
218
235
  - include/reflex.h
219
236
  - include/reflex/application.h
220
237
  - include/reflex/clipboard.h
238
+ - include/reflex/color_picker.h
221
239
  - include/reflex/constraint.h
222
240
  - include/reflex/debug.h
223
241
  - include/reflex/defs.h
224
242
  - include/reflex/device.h
225
243
  - include/reflex/event.h
226
244
  - include/reflex/exception.h
245
+ - include/reflex/file_dialog.h
227
246
  - include/reflex/filter.h
228
247
  - include/reflex/gamepad.h
229
248
  - include/reflex/image_view.h
@@ -235,12 +254,15 @@ files:
235
254
  - include/reflex/ruby.h
236
255
  - include/reflex/ruby/application.h
237
256
  - include/reflex/ruby/clipboard.h
257
+ - include/reflex/ruby/color_picker.h
238
258
  - include/reflex/ruby/constraint.h
239
259
  - include/reflex/ruby/defs.h
240
260
  - include/reflex/ruby/device.h
241
261
  - include/reflex/ruby/event.h
242
262
  - include/reflex/ruby/exception.h
263
+ - include/reflex/ruby/file_dialog.h
243
264
  - include/reflex/ruby/filter.h
265
+ - include/reflex/ruby/gamepad.h
244
266
  - include/reflex/ruby/image_view.h
245
267
  - include/reflex/ruby/menu.h
246
268
  - include/reflex/ruby/midi.h
@@ -272,13 +294,18 @@ files:
272
294
  - lib/reflex/chase_constraint.rb
273
295
  - lib/reflex/clipboard.rb
274
296
  - lib/reflex/color.rb
297
+ - lib/reflex/color_event.rb
298
+ - lib/reflex/color_picker.rb
275
299
  - lib/reflex/color_space.rb
276
300
  - lib/reflex/constraint.rb
277
301
  - lib/reflex/contact_event.rb
302
+ - lib/reflex/control_change_event.rb
278
303
  - lib/reflex/draw_event.rb
279
304
  - lib/reflex/ellipse_shape.rb
280
305
  - lib/reflex/ext.rb
281
306
  - lib/reflex/extension.rb
307
+ - lib/reflex/file_dialog.rb
308
+ - lib/reflex/file_event.rb
282
309
  - lib/reflex/filter.rb
283
310
  - lib/reflex/fixture.rb
284
311
  - lib/reflex/focus_event.rb
@@ -316,6 +343,7 @@ files:
316
343
  - lib/reflex/snap_constraint.rb
317
344
  - lib/reflex/style.rb
318
345
  - lib/reflex/style_length.rb
346
+ - lib/reflex/text_event.rb
319
347
  - lib/reflex/text_view.rb
320
348
  - lib/reflex/timer.rb
321
349
  - lib/reflex/timer_event.rb
@@ -338,6 +366,7 @@ files:
338
366
  - samples/grid.rb
339
367
  - samples/hello.rb
340
368
  - samples/image.rb
369
+ - samples/ime.rb
341
370
  - samples/ios/hello/hello.xcodeproj/project.pbxproj
342
371
  - samples/ios/hello/hello/Images.xcassets/AppIcon.appiconset/Contents.json
343
372
  - samples/ios/hello/hello/Images.xcassets/LaunchImage.launchimage/Contents.json
@@ -368,21 +397,34 @@ files:
368
397
  - samples/repl.rb
369
398
  - samples/shader.rb
370
399
  - samples/shapes.rb
400
+ - samples/test/alert.rb
401
+ - samples/test/always_on.rb
402
+ - samples/test/app_background.rb
403
+ - samples/test/boundary.rb
404
+ - samples/test/callback_exception.rb
405
+ - samples/test/cancel.rb
406
+ - samples/test/color_picker.rb
407
+ - samples/test/file_dialog.rb
371
408
  - samples/text.rb
372
409
  - samples/tree.rb
373
410
  - samples/views.rb
374
411
  - samples/visuals.rb
412
+ - samples/window_style.rb
375
413
  - src/application.cpp
376
414
  - src/application.h
377
415
  - src/body.cpp
378
416
  - src/body.h
379
417
  - src/clipboard.cpp
418
+ - src/color_picker.cpp
419
+ - src/color_picker.h
380
420
  - src/constraint.cpp
381
421
  - src/constraint.h
382
422
  - src/device.cpp
383
423
  - src/event.cpp
384
424
  - src/event.h
385
425
  - src/exception.cpp
426
+ - src/file_dialog.cpp
427
+ - src/file_dialog.h
386
428
  - src/filter.cpp
387
429
  - src/fixture.cpp
388
430
  - src/fixture.h
@@ -394,9 +436,11 @@ files:
394
436
  - src/ios/application.h
395
437
  - src/ios/application.mm
396
438
  - src/ios/clipboard.mm
439
+ - src/ios/color_picker.mm
397
440
  - src/ios/device.mm
398
441
  - src/ios/event.h
399
442
  - src/ios/event.mm
443
+ - src/ios/file_dialog.mm
400
444
  - src/ios/gamepad.mm
401
445
  - src/ios/menu.mm
402
446
  - src/ios/reflex.mm
@@ -415,9 +459,11 @@ files:
415
459
  - src/osx/application.h
416
460
  - src/osx/application.mm
417
461
  - src/osx/clipboard.mm
462
+ - src/osx/color_picker.mm
418
463
  - src/osx/device.mm
419
464
  - src/osx/event.h
420
465
  - src/osx/event.mm
466
+ - src/osx/file_dialog.mm
421
467
  - src/osx/gamepad.mm
422
468
  - src/osx/gamepad_gc.mm
423
469
  - src/osx/gamepad_hid.mm
@@ -436,12 +482,15 @@ files:
436
482
  - src/pointer.cpp
437
483
  - src/pointer.h
438
484
  - src/queue.h
485
+ - src/rays.h
439
486
  - src/reflex.cpp
440
487
  - src/sdl/application.cpp
441
488
  - src/sdl/clipboard.cpp
489
+ - src/sdl/color_picker.cpp
442
490
  - src/sdl/device.cpp
443
491
  - src/sdl/event.cpp
444
492
  - src/sdl/event.h
493
+ - src/sdl/file_dialog.cpp
445
494
  - src/sdl/gamepad.cpp
446
495
  - src/sdl/menu.cpp
447
496
  - src/sdl/opengl.cpp
@@ -461,11 +510,15 @@ files:
461
510
  - src/timer.h
462
511
  - src/view.cpp
463
512
  - src/view.h
513
+ - src/vk.h
464
514
  - src/win32/application.cpp
515
+ - src/win32/application.h
465
516
  - src/win32/clipboard.cpp
517
+ - src/win32/color_picker.cpp
466
518
  - src/win32/device.cpp
467
519
  - src/win32/event.cpp
468
520
  - src/win32/event.h
521
+ - src/win32/file_dialog.cpp
469
522
  - src/win32/gamepad.cpp
470
523
  - src/win32/gamepad.h
471
524
  - src/win32/menu.cpp
@@ -475,6 +528,9 @@ files:
475
528
  - src/win32/reflex.cpp
476
529
  - src/win32/screen.cpp
477
530
  - src/win32/screen.h
531
+ - src/win32/tray.cpp
532
+ - src/win32/tray.h
533
+ - src/win32/vk.cpp
478
534
  - src/win32/window.cpp
479
535
  - src/win32/window.h
480
536
  - src/window.cpp
@@ -486,14 +542,19 @@ files:
486
542
  - test/test_capture_event.rb
487
543
  - test/test_chase_constraint.rb
488
544
  - test/test_clipboard.rb
545
+ - test/test_color_event.rb
546
+ - test/test_color_picker.rb
489
547
  - test/test_constraint.rb
490
548
  - test/test_contact_event.rb
491
549
  - test/test_device.rb
492
550
  - test/test_draw_event.rb
493
551
  - test/test_event.rb
552
+ - test/test_file_dialog.rb
553
+ - test/test_file_event.rb
494
554
  - test/test_focus_event.rb
495
555
  - test/test_frame_event.rb
496
556
  - test/test_has_frame.rb
557
+ - test/test_has_text_preedit.rb
497
558
  - test/test_key_event.rb
498
559
  - test/test_link_constraint.rb
499
560
  - test/test_menu.rb
@@ -504,6 +565,7 @@ files:
504
565
  - test/test_pin.rb
505
566
  - test/test_pointer.rb
506
567
  - test/test_pointer_event.rb
568
+ - test/test_reflex.rb
507
569
  - test/test_reflex_init.rb
508
570
  - test/test_screen.rb
509
571
  - test/test_scroll_event.rb
@@ -512,6 +574,7 @@ files:
512
574
  - test/test_snap_constraint.rb
513
575
  - test/test_style.rb
514
576
  - test/test_style_length.rb
577
+ - test/test_text_event.rb
515
578
  - test/test_timer_event.rb
516
579
  - test/test_update_event.rb
517
580
  - test/test_view.rb
@@ -537,7 +600,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
537
600
  - !ruby/object:Gem::Version
538
601
  version: '0'
539
602
  requirements: []
540
- rubygems_version: 3.4.19
603
+ rubygems_version: 3.5.22
541
604
  signing_key:
542
605
  specification_version: 4
543
606
  summary: A Graphical User Interface Tool Kit.
@@ -547,14 +610,19 @@ test_files:
547
610
  - test/test_capture_event.rb
548
611
  - test/test_chase_constraint.rb
549
612
  - test/test_clipboard.rb
613
+ - test/test_color_event.rb
614
+ - test/test_color_picker.rb
550
615
  - test/test_constraint.rb
551
616
  - test/test_contact_event.rb
552
617
  - test/test_device.rb
553
618
  - test/test_draw_event.rb
554
619
  - test/test_event.rb
620
+ - test/test_file_dialog.rb
621
+ - test/test_file_event.rb
555
622
  - test/test_focus_event.rb
556
623
  - test/test_frame_event.rb
557
624
  - test/test_has_frame.rb
625
+ - test/test_has_text_preedit.rb
558
626
  - test/test_key_event.rb
559
627
  - test/test_link_constraint.rb
560
628
  - test/test_menu.rb
@@ -565,6 +633,7 @@ test_files:
565
633
  - test/test_pin.rb
566
634
  - test/test_pointer.rb
567
635
  - test/test_pointer_event.rb
636
+ - test/test_reflex.rb
568
637
  - test/test_reflex_init.rb
569
638
  - test/test_screen.rb
570
639
  - test/test_scroll_event.rb
@@ -573,6 +642,7 @@ test_files:
573
642
  - test/test_snap_constraint.rb
574
643
  - test/test_style.rb
575
644
  - test/test_style_length.rb
645
+ - test/test_text_event.rb
576
646
  - test/test_timer_event.rb
577
647
  - test/test_update_event.rb
578
648
  - test/test_view.rb
@@ -1,127 +0,0 @@
1
- require 'shellwords'
2
-
3
- ALL_REPO = 'xord/all'
4
- ALL_DIR = '../all'
5
- ALL_FETCH_DEPTH = 100
6
-
7
- RENAMES = {reflex: 'reflexion'}
8
-
9
- def sh(cmd)
10
- puts cmd
11
- system cmd
12
- end
13
-
14
- def setup_dependencies(only: nil)
15
- gemspec_path = `git ls-files`.lines(chomp: true).find {|l| l =~ /\.gemspec$/}
16
- return unless gemspec_path
17
-
18
- gemspec = File.read gemspec_path
19
- name = File.basename gemspec_path, '.gemspec'
20
-
21
- exts = File.readlines('Rakefile')
22
- .map {|l| l[%r|^\s*require\W+([\w\-\_]+)/extension\W+$|, 1]}
23
- .compact
24
- .reject {|ext| ext == name}
25
- exts = exts & [only].flatten.map(&:to_s) if only
26
- return if exts.empty?
27
-
28
- unless setup_dependencies_via_monorepo(exts)
29
- setup_dependencies_via_each_repo_by_version(gemspec, exts)
30
- end
31
-
32
- exts.each {|ext| sh %( cd ../#{ext} && rake ext )}
33
- end
34
-
35
- def setup_dependencies_via_monorepo(exts)
36
- return false unless checkout_monorepo
37
- exts.each {|ext| sh %( ln -snf all/#{ext} ../#{ext} )}
38
- true
39
- end
40
-
41
- def checkout_monorepo()
42
- uuid = `git log -1 --format=%B`[/^\[\[([0-9a-fA-F-]+)\]\]$/, 1]
43
- return false unless uuid
44
-
45
- commit = setup_monorepo uuid
46
- return false unless commit
47
-
48
- Dir.chdir(ALL_DIR) {sh %( git checkout -q #{commit} )}
49
- true
50
- end
51
-
52
- def setup_monorepo(uuid)
53
- unless File.directory? ALL_DIR
54
- url = "https://github.com/#{ALL_REPO}.git"
55
- sh %( git clone --no-tags --depth #{ALL_FETCH_DEPTH} #{url} #{ALL_DIR} )
56
- end
57
- loop do
58
- commit = find_monorepo_commit uuid
59
- return commit if commit
60
-
61
- deepened = Dir.chdir ALL_DIR do
62
- before = `git rev-list --count HEAD`.to_i
63
- sh %( git fetch --deepen #{ALL_FETCH_DEPTH} )
64
- `git rev-list --count HEAD`.to_i > before
65
- end
66
- return nil unless deepened
67
- end
68
- end
69
-
70
- def find_monorepo_commit(uuid)
71
- Dir.chdir ALL_DIR do
72
- out = `git log origin/HEAD -F --grep="[[#{uuid}]]" --format=%H -1`.strip
73
- out.empty? ? nil : out
74
- end
75
- end
76
-
77
- def setup_dependencies_via_each_repo_by_version(gemspec, exts)
78
- exts.each do |ext|
79
- gem = RENAMES[ext.to_sym].then {|s| s || ext}
80
- ver = gemspec[/add_dependency.*['"]#{gem}['"].*['"]\s*~>\s*([\d\.]+)\s*['"]/, 1]
81
- opts = '-c advice.detachedHead=false --depth 1'
82
- clone = "git clone #{opts} https://github.com/xord/#{ext}.git ../#{ext}"
83
-
84
- # 'rake subtree:push' pushes all subrepos, so cloning by new tag
85
- # often fails before tagging each new tag
86
- sh %( #{clone} --branch v#{ver} || #{clone} )
87
- end
88
- end
89
-
90
- def tag_versions()
91
- changes = changelogs
92
- tags = `git tag`.lines chomp: true
93
- vers = `git log --oneline ./VERSION`
94
- .lines(chomp: true)
95
- .map {|line| line.split.first[/^\w+$/]}
96
- .map {|sha| [`git cat-file -p #{sha}:./VERSION 2>/dev/null`[/[\d\.]+/], sha]}
97
- .select {|ver, sha| ver && sha}
98
- .reverse
99
- .to_h
100
-
101
- vers.to_a.reverse.each do |ver, sha|
102
- tag = "v#{ver}"
103
- break if tags.include?(tag)
104
- sh %( git tag -a -m \"#{changes[tag]&.gsub '"', '\\"'}\" #{tag} #{sha} )
105
- end
106
- end
107
-
108
- def release(*paths)
109
- tag = ENV['GITHUB_REF']&.sub(%r|^refs/tags/|, '') || raise('GITHUB_REF tag not set')
110
- notes = (changelogs[tag] || '').shellescape
111
- paths = paths.flatten.join ' '
112
-
113
- sh(%( gh release create #{tag} #{paths} --notes #{notes} )) ||
114
- sh(%( gh release upload #{tag} #{paths} --clobber )) ||
115
- raise('failed to upload to releases')
116
- end
117
-
118
- def changelogs()
119
- File.read('ChangeLog.md')
120
- .split(/^\s*##\s*\[\s*(v[\d\.]+)\s*\].*$/)
121
- .slice(1..)
122
- .each_slice(2)
123
- .to_h
124
- .transform_values(&:strip!)
125
- rescue Errno::ENOENT
126
- raise 'failed to get changelogs'
127
- end