reflexion 0.5.2 → 0.6.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 (145) hide show
  1. checksums.yaml +4 -4
  2. data/.doc/ext/reflex/application.cpp +19 -1
  3. data/.doc/ext/reflex/chase_constraint.cpp +84 -0
  4. data/.doc/ext/reflex/clipboard.cpp +65 -0
  5. data/.doc/ext/reflex/constraint.cpp +135 -0
  6. data/.doc/ext/reflex/key_event.cpp +6 -6
  7. data/.doc/ext/reflex/link_constraint.cpp +178 -0
  8. data/.doc/ext/reflex/menu.cpp +302 -0
  9. data/.doc/ext/reflex/native.cpp +22 -4
  10. data/.doc/ext/reflex/pin.cpp +156 -0
  11. data/.doc/ext/reflex/pointer.cpp +2 -0
  12. data/.doc/ext/reflex/pointer_event.cpp +1 -1
  13. data/.doc/ext/reflex/reflex.cpp +42 -7
  14. data/.doc/ext/reflex/selector.cpp +4 -4
  15. data/.doc/ext/reflex/snap_constraint.cpp +125 -0
  16. data/.doc/ext/reflex/style_length.cpp +3 -2
  17. data/.doc/ext/reflex/view.cpp +96 -23
  18. data/.doc/ext/reflex/wheel_constraint.cpp +142 -0
  19. data/.doc/ext/reflex/window.cpp +59 -17
  20. data/.github/workflows/release-gem.yml +10 -1
  21. data/.github/workflows/test.yml +9 -0
  22. data/ChangeLog.md +30 -0
  23. data/README.md +1 -0
  24. data/VERSION +1 -1
  25. data/ext/reflex/application.cpp +21 -1
  26. data/ext/reflex/chase_constraint.cpp +89 -0
  27. data/ext/reflex/clipboard.cpp +69 -0
  28. data/ext/reflex/constraint.cpp +146 -0
  29. data/ext/reflex/key_event.cpp +6 -6
  30. data/ext/reflex/link_constraint.cpp +194 -0
  31. data/ext/reflex/menu.cpp +330 -0
  32. data/ext/reflex/native.cpp +22 -4
  33. data/ext/reflex/pin.cpp +165 -0
  34. data/ext/reflex/pointer.cpp +2 -0
  35. data/ext/reflex/pointer_event.cpp +1 -1
  36. data/ext/reflex/reflex.cpp +42 -7
  37. data/ext/reflex/selector.cpp +4 -4
  38. data/ext/reflex/selector.h +1 -1
  39. data/ext/reflex/snap_constraint.cpp +135 -0
  40. data/ext/reflex/style_length.cpp +3 -2
  41. data/ext/reflex/view.cpp +117 -37
  42. data/ext/reflex/wheel_constraint.cpp +154 -0
  43. data/ext/reflex/window.cpp +65 -18
  44. data/include/reflex/application.h +9 -0
  45. data/include/reflex/clipboard.h +53 -0
  46. data/include/reflex/constraint.h +275 -0
  47. data/include/reflex/defs.h +204 -195
  48. data/include/reflex/event.h +2 -0
  49. data/include/reflex/menu.h +120 -0
  50. data/include/reflex/pin.h +68 -0
  51. data/include/reflex/pointer.h +4 -0
  52. data/include/reflex/ruby/clipboard.h +23 -0
  53. data/include/reflex/ruby/constraint.h +94 -0
  54. data/include/reflex/ruby/menu.h +103 -0
  55. data/include/reflex/ruby/pin.h +40 -0
  56. data/include/reflex/ruby/view.h +36 -0
  57. data/include/reflex/ruby/window.h +36 -18
  58. data/include/reflex/view.h +39 -12
  59. data/include/reflex/window.h +17 -4
  60. data/include/reflex.h +5 -0
  61. data/lib/reflex/chase_constraint.rb +15 -0
  62. data/lib/reflex/clipboard.rb +19 -0
  63. data/lib/reflex/constraint.rb +29 -0
  64. data/lib/reflex/extension.rb +1 -1
  65. data/lib/reflex/helper.rb +28 -0
  66. data/lib/reflex/key_event.rb +7 -12
  67. data/lib/reflex/link_constraint.rb +31 -0
  68. data/lib/reflex/menu.rb +76 -0
  69. data/lib/reflex/pin.rb +39 -0
  70. data/lib/reflex/pointer.rb +18 -0
  71. data/lib/reflex/pointer_event.rb +1 -1
  72. data/lib/reflex/snap_constraint.rb +28 -0
  73. data/lib/reflex/view.rb +56 -4
  74. data/lib/reflex/wheel_constraint.rb +28 -0
  75. data/lib/reflex/wheel_event.rb +9 -0
  76. data/lib/reflex.rb +15 -6
  77. data/pod.rake +4 -2
  78. data/reflex.gemspec +3 -3
  79. data/samples/constraint.rb +152 -0
  80. data/samples/menu.rb +29 -0
  81. data/src/application.cpp +21 -2
  82. data/src/application.h +5 -0
  83. data/src/clipboard.cpp +81 -0
  84. data/src/constraint.cpp +1662 -0
  85. data/src/constraint.h +64 -0
  86. data/src/event.cpp +7 -1
  87. data/src/event.h +1 -2
  88. data/src/ios/application.mm +5 -0
  89. data/src/ios/clipboard.mm +44 -0
  90. data/src/ios/event.h +6 -2
  91. data/src/ios/event.mm +31 -12
  92. data/src/ios/menu.mm +36 -0
  93. data/src/ios/view_controller.mm +45 -12
  94. data/src/ios/window.mm +6 -0
  95. data/src/menu.cpp +325 -0
  96. data/src/menu.h +65 -0
  97. data/src/osx/app_delegate.mm +74 -125
  98. data/src/osx/application.mm +16 -0
  99. data/src/osx/clipboard.mm +45 -0
  100. data/src/osx/event.mm +40 -10
  101. data/src/osx/menu.h +25 -0
  102. data/src/osx/menu.mm +372 -0
  103. data/src/osx/native_window.mm +27 -0
  104. data/src/osx/opengl_view.mm +51 -0
  105. data/src/osx/window.mm +11 -0
  106. data/src/pin.cpp +137 -0
  107. data/src/pointer.cpp +27 -16
  108. data/src/pointer.h +6 -0
  109. data/src/sdl/application.cpp +5 -0
  110. data/src/sdl/clipboard.cpp +39 -0
  111. data/src/sdl/event.cpp +20 -3
  112. data/src/sdl/event.h +6 -3
  113. data/src/sdl/menu.cpp +35 -0
  114. data/src/sdl/window.cpp +26 -8
  115. data/src/view.cpp +313 -52
  116. data/src/view.h +18 -2
  117. data/src/win32/application.cpp +5 -0
  118. data/src/win32/clipboard.cpp +210 -0
  119. data/src/win32/event.cpp +11 -1
  120. data/src/win32/event.h +2 -0
  121. data/src/win32/menu.cpp +352 -0
  122. data/src/win32/menu.h +27 -0
  123. data/src/win32/window.cpp +62 -0
  124. data/src/win32/window.h +3 -0
  125. data/src/window.cpp +235 -22
  126. data/src/window.h +13 -2
  127. data/src/world.cpp +77 -14
  128. data/src/world.h +9 -2
  129. data/test/helper.rb +7 -0
  130. data/test/test_application.rb +11 -0
  131. data/test/test_chase_constraint.rb +124 -0
  132. data/test/test_clipboard.rb +54 -0
  133. data/test/test_constraint.rb +186 -0
  134. data/test/test_key_event.rb +6 -0
  135. data/test/test_link_constraint.rb +239 -0
  136. data/test/test_menu.rb +207 -0
  137. data/test/test_pin.rb +65 -0
  138. data/test/test_pointer.rb +23 -9
  139. data/test/test_pointer_event.rb +1 -1
  140. data/test/test_snap_constraint.rb +142 -0
  141. data/test/test_view.rb +113 -23
  142. data/test/test_wheel_constraint.rb +127 -0
  143. data/test/test_wheel_event.rb +15 -9
  144. data/test/test_window.rb +10 -0
  145. metadata +82 -8
@@ -44,32 +44,41 @@ namespace Reflex
44
44
  {
45
45
 
46
46
 
47
- using namespace Xot::Types;
47
+ namespace Types
48
+ {
48
49
 
49
- using Rays::String;
50
+ using Rays::Coord2;
51
+ using Rays::Coord3;
52
+ using Rays::Coord4;
53
+ using Rays::Point;
54
+ using Rays::Bounds;
55
+ using Rays::Color;
56
+ using Rays::Matrix;
57
+
58
+ using Rays::ColorSpace;
59
+ using Rays::Polyline;
60
+ using Rays::Polygon;
61
+ using Rays::Bitmap;
62
+ using Rays::Image;
63
+ using Rays::Font;
64
+ using Rays::Shader;
65
+
66
+ using Rays::Painter;
50
67
 
51
- using Rays::StringList;
52
68
 
69
+ }// Types
53
70
 
54
- using Rays::coord;
55
71
 
56
- using Rays::Coord2;
57
- using Rays::Coord3;
58
- using Rays::Coord4;
59
- using Rays::Point;
60
- using Rays::Bounds;
61
- using Rays::Color;
62
- using Rays::Matrix;
72
+ using namespace Xot ::Types;
63
73
 
64
- using Rays::ColorSpace;
65
- using Rays::Polyline;
66
- using Rays::Polygon;
67
- using Rays::Bitmap;
68
- using Rays::Image;
69
- using Rays::Font;
70
- using Rays::Shader;
74
+ using namespace Rays ::Types;
71
75
 
72
- using Rays::Painter;
76
+ using namespace Reflex::Types;
77
+
78
+
79
+ using Rays::String;
80
+
81
+ using Rays::StringList;
73
82
 
74
83
 
75
84
  enum KeyCode
@@ -123,19 +132,19 @@ namespace Reflex
123
132
  KEY_8 = NATIVE_VK(0x1C, 0x38, 0x25),
124
133
  KEY_9 = NATIVE_VK(0x19, 0x39, 0x26),
125
134
 
126
- KEY_MINUS = NATIVE_VK(0x1B, -2, 0x2D),
127
- KEY_EQUAL = NATIVE_VK(0x18, -3, 0x2E),
128
- KEY_COMMA = NATIVE_VK(0x2B, -4, 0x36),
129
- KEY_PERIOD = NATIVE_VK(0x2F, -5, 0x37),
130
- KEY_SEMICOLON = NATIVE_VK(0x29, -6, 0x33),
131
- KEY_QUOTE = NATIVE_VK(0x27, -7, 0x34),
132
- KEY_SLASH = NATIVE_VK(0x2C, -8, 0x38),
133
- KEY_BACKSLASH = NATIVE_VK(0x2A, -9, 0x31),
134
- KEY_UNDERSCORE = NATIVE_VK(0x5E, -10, 0x87),// JIS
135
- KEY_GRAVE = NATIVE_VK(0x32, -11, 0x35),
136
- KEY_YEN = NATIVE_VK(0x5D, -12, 0x89),
137
- KEY_LBRACKET = NATIVE_VK(0x21, -13, 0x2F),
138
- KEY_RBRACKET = NATIVE_VK(0x1E, -14, 0x30),
135
+ KEY_MINUS = NATIVE_VK(0x1B, 0xBD, 0x2D),
136
+ KEY_EQUAL = NATIVE_VK(0x18, 0xBB, 0x2E),
137
+ KEY_COMMA = NATIVE_VK(0x2B, 0xBC, 0x36),
138
+ KEY_PERIOD = NATIVE_VK(0x2F, 0xBE, 0x37),
139
+ KEY_SEMICOLON = NATIVE_VK(0x29, 0xBA, 0x33),
140
+ KEY_QUOTE = NATIVE_VK(0x27, 0xDE, 0x34),
141
+ KEY_SLASH = NATIVE_VK(0x2C, 0xBF, 0x38),
142
+ KEY_BACKSLASH = NATIVE_VK(0x2A, 0xDC, 0x31),
143
+ KEY_UNDERSCORE = NATIVE_VK(0x5E, -2, 0x87),// JIS
144
+ KEY_GRAVE = NATIVE_VK(0x32, 0xC0, 0x35),
145
+ KEY_YEN = NATIVE_VK(0x5D, -3, 0x89),// JIS
146
+ KEY_LBRACKET = NATIVE_VK(0x21, 0xDB, 0x2F),
147
+ KEY_RBRACKET = NATIVE_VK(0x1E, 0xDD, 0x30),
139
148
 
140
149
  KEY_ENTER = NATIVE_VK(0x24, 0x0D, 0x28),
141
150
  KEY_RETURN = NATIVE_VK(0x24, 0x0D, 0x28),
@@ -166,13 +175,13 @@ namespace Reflex
166
175
  KEY_RALT = NATIVE_VK(-5, 0xA5, 0xE6),
167
176
  KEY_LWIN = NATIVE_VK(-6, 0x5B, 0xE3),
168
177
  KEY_RWIN = NATIVE_VK(-7, 0x5C, 0xE7),
169
- KEY_COMMAND = NATIVE_VK(0x37, -15, 0xE3),
170
- KEY_LCOMMAND = NATIVE_VK(0x37, -16, 0xE3),
171
- KEY_RCOMMAND = NATIVE_VK(0x36, -17, 0xE7),
172
- KEY_OPTION = NATIVE_VK(0x3A, -18, 0xE2),
173
- KEY_LOPTION = NATIVE_VK(0x3A, -19, 0xE2),
174
- KEY_ROPTION = NATIVE_VK(0x3D, -20, 0xE6),
175
- KEY_FUNCTION = NATIVE_VK(0x3F, -21, -2),
178
+ KEY_COMMAND = NATIVE_VK(0x37, -4, 0xE3),
179
+ KEY_LCOMMAND = NATIVE_VK(0x37, -5, 0xE3),
180
+ KEY_RCOMMAND = NATIVE_VK(0x36, -6, 0xE7),
181
+ KEY_OPTION = NATIVE_VK(0x3A, -7, 0xE2),
182
+ KEY_LOPTION = NATIVE_VK(0x3A, -8, 0xE2),
183
+ KEY_ROPTION = NATIVE_VK(0x3D, -9, 0xE6),
184
+ KEY_FUNCTION = NATIVE_VK(0x3F, -10, -2),
176
185
 
177
186
  KEY_F1 = NATIVE_VK(0x7A, 0x70, 0x3A),
178
187
  KEY_F2 = NATIVE_VK(0x78, 0x71, 0x3B),
@@ -210,16 +219,16 @@ namespace Reflex
210
219
  KEY_NUM_8 = NATIVE_VK(0x5B, 0x68, 0x60),
211
220
  KEY_NUM_9 = NATIVE_VK(0x5C, 0x69, 0x61),
212
221
 
213
- KEY_NUM_PLUS = NATIVE_VK(0x45, -22, 0x57),
214
- KEY_NUM_MINUS = NATIVE_VK(0x4E, -23, 0x56),
215
- KEY_NUM_MULTIPLY = NATIVE_VK(0x43, -24, 0x55),
216
- KEY_NUM_DIVIDE = NATIVE_VK(0x4B, -25, 0x54),
217
- KEY_NUM_EQUAL = NATIVE_VK(0x51, -26, 0x67),
218
- KEY_NUM_PERIOD = NATIVE_VK(-12, -27, 0x63),
219
- KEY_NUM_COMMA = NATIVE_VK(0x5F, -28, 0x85),
220
- KEY_NUM_DECIMAL = NATIVE_VK(0x41, -29, 0xDC),
221
- KEY_NUM_CLEAR = NATIVE_VK(0x47, -30, 0x53),
222
- KEY_NUM_ENTER = NATIVE_VK(0x4C, -31, 0x58),
222
+ KEY_NUM_PLUS = NATIVE_VK(0x45, 0x6B, 0x57),
223
+ KEY_NUM_MINUS = NATIVE_VK(0x4E, 0x6D, 0x56),
224
+ KEY_NUM_MULTIPLY = NATIVE_VK(0x43, 0x6A, 0x55),
225
+ KEY_NUM_DIVIDE = NATIVE_VK(0x4B, 0x6F, 0x54),
226
+ KEY_NUM_EQUAL = NATIVE_VK(0x51, -11, 0x67),
227
+ KEY_NUM_PERIOD = NATIVE_VK(-12, -12, 0x63),
228
+ KEY_NUM_COMMA = NATIVE_VK(0x5F, -13, 0x85),
229
+ KEY_NUM_DECIMAL = NATIVE_VK(0x41, 0x6E, 0xDC),
230
+ KEY_NUM_CLEAR = NATIVE_VK(0x47, -14, 0x53),
231
+ KEY_NUM_ENTER = NATIVE_VK(0x4C, -15, 0x58),
223
232
 
224
233
  KEY_CAPSLOCK = NATIVE_VK(0x39, 0x14, 0x39),
225
234
  KEY_NUMLOCK = NATIVE_VK(-13, 0x90, 0x53),
@@ -227,11 +236,11 @@ namespace Reflex
227
236
 
228
237
  KEY_PRINTSCREEN = NATIVE_VK(-15, 0x2C, 0x46),
229
238
  KEY_PAUSE = NATIVE_VK(-16, 0x13, 0x48),
230
- KEY_BREAK = NATIVE_VK(-17, -32, -3),
239
+ KEY_BREAK = NATIVE_VK(-17, -16, -3),
231
240
  KEY_SECTION = NATIVE_VK(0x0A, 0xE2, 0x64),
232
241
  KEY_HELP = NATIVE_VK(0x72, 0x2F, 0x75),
233
242
 
234
- KEY_EISU = NATIVE_VK(0x66, -33, 0x90),
243
+ KEY_EISU = NATIVE_VK(0x66, -17, 0x90),
235
244
  KEY_KANA = NATIVE_VK(0x68, 0x15, 0x91),
236
245
  KEY_KANJI = NATIVE_VK(-18, 0x19, 0x94),
237
246
  KEY_IME_ON = NATIVE_VK(-19, 0x16, -4),
@@ -246,152 +255,152 @@ namespace Reflex
246
255
  KEY_VOLUME_DOWN = NATIVE_VK(0x49, 0xAE, 0x81),
247
256
  KEY_MUTE = NATIVE_VK(0x4A, 0xAD, 0x7F),
248
257
 
249
- KEY_SLEEP = NATIVE_VK(-26, 0x5F, 0x11A),
250
- KEY_EXEC = NATIVE_VK(-27, 0x2B, 0x74),
251
- KEY_PRINT = NATIVE_VK(-28, 0x2A, -11),
252
- KEY_APPS = NATIVE_VK(-29, 0x5D, 0x65),
253
- KEY_SELECT = NATIVE_VK(-30, 0x29, 0x77),
254
- KEY_CLEAR = NATIVE_VK(-31, 0x0C, 0x9C),
255
-
256
- KEY_NAVIGATION_VIEW = NATIVE_VK(-32, 0x88, -12),
257
- KEY_NAVIGATION_MENU = NATIVE_VK(-33, 0x89, -13),
258
- KEY_NAVIGATION_UP = NATIVE_VK(-34, 0x8A, -14),
259
- KEY_NAVIGATION_DOWN = NATIVE_VK(-35, 0x8B, -15),
260
- KEY_NAVIGATION_LEFT = NATIVE_VK(-36, 0x8C, -16),
261
- KEY_NAVIGATION_RIGHT = NATIVE_VK(-37, 0x8D, -17),
262
- KEY_NAVIGATION_ACCEPT = NATIVE_VK(-38, 0x8E, -18),
263
- KEY_NAVIGATION_CANCEL = NATIVE_VK(-39, 0x8F, -19),
264
-
265
- KEY_BROWSER_BACK = NATIVE_VK(-40, 0xA6, 0x10E),
266
- KEY_BROWSER_FORWARD = NATIVE_VK(-41, 0xA7, 0x10F),
267
- KEY_BROWSER_REFRESH = NATIVE_VK(-42, 0xA8, 0x111),
268
- KEY_BROWSER_STOP = NATIVE_VK(-43, 0xA9, 0x110),
269
- KEY_BROWSER_SEARCH = NATIVE_VK(-44, 0xAA, 0x10C),
270
- KEY_BROWSER_FAVORITES = NATIVE_VK(-45, 0xAB, 0x112),
271
- KEY_BROWSER_HOME = NATIVE_VK(-46, 0xAC, 0x10D),
272
-
273
- KEY_MEDIA_PREV_TRACK = NATIVE_VK(-47, 0xB1, 0x103),
274
- KEY_MEDIA_NEXT_TRACK = NATIVE_VK(-48, 0xB0, 0x102),
275
- KEY_MEDIA_PLAY_PAUSE = NATIVE_VK(-49, 0xB3, 0x105),
276
- KEY_MEDIA_STOP = NATIVE_VK(-50, 0xB2, 0x104),
277
-
278
- KEY_LAUNCH_MAIL = NATIVE_VK(-51, 0xB4, 0x109),
279
- KEY_LAUNCH_MEDIA_SELECT = NATIVE_VK(-52, 0xB5, 0x107),
280
- KEY_LAUNCH_APP1 = NATIVE_VK(-53, 0xB6, 0x11B),
281
- KEY_LAUNCH_APP2 = NATIVE_VK(-54, 0xB7, 0x11C),
258
+ KEY_SLEEP = NATIVE_VK(-26, 0x5F, 0x11A),
259
+ KEY_EXEC = NATIVE_VK(-27, 0x2B, 0x74),
260
+ KEY_PRINT = NATIVE_VK(-28, 0x2A, -11),
261
+ KEY_CONTEXT_MENU = NATIVE_VK(0x6E, 0x5D, 0x65),
262
+ KEY_SELECT = NATIVE_VK(-29, 0x29, 0x77),
263
+ KEY_CLEAR = NATIVE_VK(-30, 0x0C, 0x9C),
264
+
265
+ KEY_NAVIGATION_VIEW = NATIVE_VK(-31, 0x88, -12),
266
+ KEY_NAVIGATION_MENU = NATIVE_VK(-32, 0x89, -13),
267
+ KEY_NAVIGATION_UP = NATIVE_VK(-33, 0x8A, -14),
268
+ KEY_NAVIGATION_DOWN = NATIVE_VK(-34, 0x8B, -15),
269
+ KEY_NAVIGATION_LEFT = NATIVE_VK(-35, 0x8C, -16),
270
+ KEY_NAVIGATION_RIGHT = NATIVE_VK(-36, 0x8D, -17),
271
+ KEY_NAVIGATION_ACCEPT = NATIVE_VK(-37, 0x8E, -18),
272
+ KEY_NAVIGATION_CANCEL = NATIVE_VK(-38, 0x8F, -19),
273
+
274
+ KEY_BROWSER_BACK = NATIVE_VK(-39, 0xA6, 0x10E),
275
+ KEY_BROWSER_FORWARD = NATIVE_VK(-40, 0xA7, 0x10F),
276
+ KEY_BROWSER_REFRESH = NATIVE_VK(-41, 0xA8, 0x111),
277
+ KEY_BROWSER_STOP = NATIVE_VK(-42, 0xA9, 0x110),
278
+ KEY_BROWSER_SEARCH = NATIVE_VK(-43, 0xAA, 0x10C),
279
+ KEY_BROWSER_FAVORITES = NATIVE_VK(-44, 0xAB, 0x112),
280
+ KEY_BROWSER_HOME = NATIVE_VK(-45, 0xAC, 0x10D),
281
+
282
+ KEY_MEDIA_PREV_TRACK = NATIVE_VK(-46, 0xB1, 0x103),
283
+ KEY_MEDIA_NEXT_TRACK = NATIVE_VK(-47, 0xB0, 0x102),
284
+ KEY_MEDIA_PLAY_PAUSE = NATIVE_VK(-48, 0xB3, 0x105),
285
+ KEY_MEDIA_STOP = NATIVE_VK(-49, 0xB2, 0x104),
286
+
287
+ KEY_LAUNCH_MAIL = NATIVE_VK(-50, 0xB4, 0x109),
288
+ KEY_LAUNCH_MEDIA_SELECT = NATIVE_VK(-51, 0xB5, 0x107),
289
+ KEY_LAUNCH_APP1 = NATIVE_VK(-52, 0xB6, 0x11B),
290
+ KEY_LAUNCH_APP2 = NATIVE_VK(-53, 0xB7, 0x11C),
282
291
 
283
292
  // from SDK scan codes
284
- KEY_NONUSHASH = NATIVE_VK(-55, -34, 0x32),
285
- KEY_POWER = NATIVE_VK(-56, -35, 0x66),
286
- KEY_MENU = NATIVE_VK(-57, -36, 0x76),
287
-
288
- KEY_STOP = NATIVE_VK(-58, -37, 0x78),
289
- KEY_AGAIN = NATIVE_VK(-59, -38, 0x79),
290
- KEY_UNDO = NATIVE_VK(-60, -39, 0x7A),
291
- KEY_CUT = NATIVE_VK(-61, -40, 0x7B),
292
- KEY_COPY = NATIVE_VK(-62, -41, 0x7C),
293
- KEY_PASTE = NATIVE_VK(-63, -42, 0x7D),
294
- KEY_FIND = NATIVE_VK(-64, -43, 0x7E),
295
-
296
- KEY_NUM_EQUALSAS400 = NATIVE_VK(-65, -44, 0x86),
297
-
298
- KEY_INTERNATIONAL2 = NATIVE_VK(-66, -45, 0x88),
299
- KEY_INTERNATIONAL4 = NATIVE_VK(-67, -46, 0x8A),
300
- KEY_INTERNATIONAL5 = NATIVE_VK(-68, -47, 0x8B),
301
- KEY_INTERNATIONAL6 = NATIVE_VK(-69, -48, 0x8C),
302
- KEY_INTERNATIONAL7 = NATIVE_VK(-70, -49, 0x8D),
303
- KEY_INTERNATIONAL8 = NATIVE_VK(-71, -50, 0x8E),
304
- KEY_INTERNATIONAL9 = NATIVE_VK(-72, -51, 0x8F),
305
-
306
- KEY_LANG1 = NATIVE_VK(-73, -52, 0x90),// Hangul/English toggle
307
- KEY_LANG2 = NATIVE_VK(-74, -53, 0x91),// Hanja conversion
308
- KEY_LANG3 = NATIVE_VK(-75, -54, 0x92),// Katakana
309
- KEY_LANG4 = NATIVE_VK(-76, -55, 0x93),// Hiragana
310
- KEY_LANG5 = NATIVE_VK(-77, -56, 0x94),// Zenkaku/Hankaku
311
- KEY_LANG6 = NATIVE_VK(-78, -57, 0x95),
312
- KEY_LANG7 = NATIVE_VK(-79, -58, 0x96),
313
- KEY_LANG8 = NATIVE_VK(-80, -59, 0x97),
314
- KEY_LANG9 = NATIVE_VK(-81, -60, 0x98),
315
-
316
- KEY_ALTERASE = NATIVE_VK(-82, -61, 0x99),
317
- KEY_SYSREQ = NATIVE_VK(-83, -62, 0x9A),
318
- KEY_CANCEL = NATIVE_VK(-84, -63, 0x9B),
319
- KEY_PRIOR = NATIVE_VK(-85, -64, 0x9D),
320
- KEY_RETURN2 = NATIVE_VK(-86, -65, 0x9E),
321
- KEY_SEPARATOR = NATIVE_VK(-87, -66, 0x9F),
322
- KEY_OUT = NATIVE_VK(-88, -67, 0xA0),
323
- KEY_OPER = NATIVE_VK(-89, -68, 0xA1),
324
- KEY_CLEARAGAIN = NATIVE_VK(-90, -69, 0xA2),
325
- KEY_CRSEL = NATIVE_VK(-91, -70, 0xA3),
326
- KEY_EXSEL = NATIVE_VK(-92, -71, 0xA4),
327
-
328
- KEY_NUM_00 = NATIVE_VK(-93, -72, 0xB0),
329
- KEY_NUM_000 = NATIVE_VK(-94, -73, 0xB1),
330
- KEY_THOUSANDSSEP = NATIVE_VK(-95, -74, 0xB2),
331
- KEY_DECIMALSEP = NATIVE_VK(-96, -75, 0xB3),
332
- KEY_CURRENCYUNIT = NATIVE_VK(-97, -76, 0xB4),
333
- KEY_CURRENCYSUBUNIT = NATIVE_VK(-98, -77, 0xB5),
334
- KEY_NUM_LPAREN = NATIVE_VK(-99, -78, 0xB6),
335
- KEY_NUM_RPAREN = NATIVE_VK(-100, -79, 0xB7),
336
- KEY_NUM_LBRACE = NATIVE_VK(-101, -80, 0xB8),
337
- KEY_NUM_RBRACE = NATIVE_VK(-102, -81, 0xB9),
338
- KEY_NUM_TAB = NATIVE_VK(-103, -82, 0xBA),
339
- KEY_NUM_BACKSPACE = NATIVE_VK(-104, -83, 0xBB),
340
- KEY_NUM_A = NATIVE_VK(-105, -84, 0xBC),
341
- KEY_NUM_B = NATIVE_VK(-106, -85, 0xBD),
342
- KEY_NUM_C = NATIVE_VK(-107, -86, 0xBE),
343
- KEY_NUM_D = NATIVE_VK(-108, -87, 0xBF),
344
- KEY_NUM_E = NATIVE_VK(-109, -88, 0xC0),
345
- KEY_NUM_F = NATIVE_VK(-110, -89, 0xC1),
346
- KEY_NUM_XOR = NATIVE_VK(-111, -90, 0xC2),
347
- KEY_NUM_POWER = NATIVE_VK(-112, -91, 0xC3),
348
- KEY_NUM_PERCENT = NATIVE_VK(-113, -92, 0xC4),
349
- KEY_NUM_LESS = NATIVE_VK(-114, -93, 0xC5),
350
- KEY_NUM_GREATER = NATIVE_VK(-115, -94, 0xC6),
351
- KEY_NUM_AMPERSAND = NATIVE_VK(-116, -95, 0xC7),
352
- KEY_NUM_DBLAMPERSAND = NATIVE_VK(-117, -96, 0xC8),
353
- KEY_NUM_VERTICALBAR = NATIVE_VK(-118, -97, 0xC9),
354
- KEY_NUM_DBLVERTICALBAR = NATIVE_VK(-119, -98, 0xCA),
355
- KEY_NUM_COLON = NATIVE_VK(-120, -99, 0xCB),
356
- KEY_NUM_HASH = NATIVE_VK(-121, -100, 0xCC),
357
- KEY_NUM_SPACE = NATIVE_VK(-122, -101, 0xCD),
358
- KEY_NUM_AT = NATIVE_VK(-123, -102, 0xCE),
359
- KEY_NUM_EXCLAM = NATIVE_VK(-124, -103, 0xCF),
360
- KEY_NUM_MEMSTORE = NATIVE_VK(-125, -104, 0xD0),
361
- KEY_NUM_MEMRECALL = NATIVE_VK(-126, -105, 0xD1),
362
- KEY_NUM_MEMCLEAR = NATIVE_VK(-127, -106, 0xD2),
363
- KEY_NUM_MEMADD = NATIVE_VK(-128, -107, 0xD3),
364
- KEY_NUM_MEMSUBTRACT = NATIVE_VK(-129, -108, 0xD4),
365
- KEY_NUM_MEMMULTIPLY = NATIVE_VK(-130, -109, 0xD5),
366
- KEY_NUM_MEMDIVIDE = NATIVE_VK(-131, -110, 0xD6),
367
- KEY_NUM_PLUSMINUS = NATIVE_VK(-132, -111, 0xD7),
368
- KEY_NUM_CLEARENTRY = NATIVE_VK(-133, -112, 0xD9),
369
- KEY_NUM_BINARY = NATIVE_VK(-134, -113, 0xDA),
370
- KEY_NUM_OCTAL = NATIVE_VK(-135, -114, 0xDB),
371
- KEY_NUM_HEXADECIMAL = NATIVE_VK(-136, -115, 0xDD),
372
-
373
- KEY_MODE = NATIVE_VK(-137, -116, 0x101),
374
-
375
- KEY_AUDIOMUTE = NATIVE_VK(-138, -117, 0x106),
376
- KEY_WWW = NATIVE_VK(-139, -118, 0x108),
377
- KEY_CALCULATOR = NATIVE_VK(-140, -119, 0x10A),
378
- KEY_COMPUTER = NATIVE_VK(-141, -120, 0x10B),
379
-
380
- KEY_BRIGHTNESSDOWN = NATIVE_VK(-142, -121, 0x113),
381
- KEY_BRIGHTNESSUP = NATIVE_VK(-143, -122, 0x114),
382
- KEY_DISPLAYSWITCH = NATIVE_VK(-144, -123, 0x115),
383
- KEY_KBDILLUMTOGGLE = NATIVE_VK(-145, -124, 0x116),
384
- KEY_KBDILLUMDOWN = NATIVE_VK(-146, -125, 0x117),
385
- KEY_KBDILLUMUP = NATIVE_VK(-147, -126, 0x118),
386
- KEY_EJECT = NATIVE_VK(-148, -127, 0x119),
387
-
388
- KEY_AUDIOREWIND = NATIVE_VK(-149, -128, 0x11D),
389
- KEY_AUDIOFASTFORWARD = NATIVE_VK(-150, -129, 0x11E),
390
-
391
- KEY_SOFTLEFT = NATIVE_VK(-151, -130, 0x11F),
392
- KEY_SOFTRIGHT = NATIVE_VK(-152, -131, 0x120),
393
- KEY_CALL = NATIVE_VK(-153, -132, 0x121),
394
- KEY_ENDCALL = NATIVE_VK(-154, -133, 0x122),
293
+ KEY_NONUSHASH = NATIVE_VK(-54, -18, 0x32),
294
+ KEY_POWER = NATIVE_VK(-55, -19, 0x66),
295
+ KEY_MENU = NATIVE_VK(-56, -20, 0x76),
296
+
297
+ KEY_STOP = NATIVE_VK(-57, -21, 0x78),
298
+ KEY_AGAIN = NATIVE_VK(-58, -22, 0x79),
299
+ KEY_UNDO = NATIVE_VK(-59, -23, 0x7A),
300
+ KEY_CUT = NATIVE_VK(-60, -24, 0x7B),
301
+ KEY_COPY = NATIVE_VK(-61, -25, 0x7C),
302
+ KEY_PASTE = NATIVE_VK(-62, -26, 0x7D),
303
+ KEY_FIND = NATIVE_VK(-63, -27, 0x7E),
304
+
305
+ KEY_NUM_EQUALSAS400 = NATIVE_VK(-64, -28, 0x86),
306
+
307
+ KEY_INTERNATIONAL2 = NATIVE_VK(-65, -29, 0x88),
308
+ KEY_INTERNATIONAL4 = NATIVE_VK(-66, -30, 0x8A),
309
+ KEY_INTERNATIONAL5 = NATIVE_VK(-67, -31, 0x8B),
310
+ KEY_INTERNATIONAL6 = NATIVE_VK(-68, -32, 0x8C),
311
+ KEY_INTERNATIONAL7 = NATIVE_VK(-69, -33, 0x8D),
312
+ KEY_INTERNATIONAL8 = NATIVE_VK(-70, -34, 0x8E),
313
+ KEY_INTERNATIONAL9 = NATIVE_VK(-71, -35, 0x8F),
314
+
315
+ KEY_LANG1 = NATIVE_VK(-72, -36, 0x90),// Hangul/English toggle
316
+ KEY_LANG2 = NATIVE_VK(-73, -37, 0x91),// Hanja conversion
317
+ KEY_LANG3 = NATIVE_VK(-74, -38, 0x92),// Katakana
318
+ KEY_LANG4 = NATIVE_VK(-75, -39, 0x93),// Hiragana
319
+ KEY_LANG5 = NATIVE_VK(-76, -40, 0x94),// Zenkaku/Hankaku
320
+ KEY_LANG6 = NATIVE_VK(-77, -41, 0x95),
321
+ KEY_LANG7 = NATIVE_VK(-78, -42, 0x96),
322
+ KEY_LANG8 = NATIVE_VK(-79, -43, 0x97),
323
+ KEY_LANG9 = NATIVE_VK(-80, -44, 0x98),
324
+
325
+ KEY_ALTERASE = NATIVE_VK(-81, -45, 0x99),
326
+ KEY_SYSREQ = NATIVE_VK(-82, -46, 0x9A),
327
+ KEY_CANCEL = NATIVE_VK(-83, -47, 0x9B),
328
+ KEY_PRIOR = NATIVE_VK(-84, -48, 0x9D),
329
+ KEY_RETURN2 = NATIVE_VK(-85, -49, 0x9E),
330
+ KEY_SEPARATOR = NATIVE_VK(-86, -50, 0x9F),
331
+ KEY_OUT = NATIVE_VK(-87, -51, 0xA0),
332
+ KEY_OPER = NATIVE_VK(-88, -52, 0xA1),
333
+ KEY_CLEARAGAIN = NATIVE_VK(-89, -53, 0xA2),
334
+ KEY_CRSEL = NATIVE_VK(-90, -54, 0xA3),
335
+ KEY_EXSEL = NATIVE_VK(-91, -55, 0xA4),
336
+
337
+ KEY_NUM_00 = NATIVE_VK(-92, -56, 0xB0),
338
+ KEY_NUM_000 = NATIVE_VK(-93, -57, 0xB1),
339
+ KEY_THOUSANDSSEP = NATIVE_VK(-94, -58, 0xB2),
340
+ KEY_DECIMALSEP = NATIVE_VK(-95, -59, 0xB3),
341
+ KEY_CURRENCYUNIT = NATIVE_VK(-96, -60, 0xB4),
342
+ KEY_CURRENCYSUBUNIT = NATIVE_VK(-97, -61, 0xB5),
343
+ KEY_NUM_LPAREN = NATIVE_VK(-98, -62, 0xB6),
344
+ KEY_NUM_RPAREN = NATIVE_VK(-99, -63, 0xB7),
345
+ KEY_NUM_LBRACE = NATIVE_VK(-100, -64, 0xB8),
346
+ KEY_NUM_RBRACE = NATIVE_VK(-101, -65, 0xB9),
347
+ KEY_NUM_TAB = NATIVE_VK(-102, -66, 0xBA),
348
+ KEY_NUM_BACKSPACE = NATIVE_VK(-103, -67, 0xBB),
349
+ KEY_NUM_A = NATIVE_VK(-104, -68, 0xBC),
350
+ KEY_NUM_B = NATIVE_VK(-105, -69, 0xBD),
351
+ KEY_NUM_C = NATIVE_VK(-106, -70, 0xBE),
352
+ KEY_NUM_D = NATIVE_VK(-107, -71, 0xBF),
353
+ KEY_NUM_E = NATIVE_VK(-108, -72, 0xC0),
354
+ KEY_NUM_F = NATIVE_VK(-109, -73, 0xC1),
355
+ KEY_NUM_XOR = NATIVE_VK(-110, -74, 0xC2),
356
+ KEY_NUM_POWER = NATIVE_VK(-111, -75, 0xC3),
357
+ KEY_NUM_PERCENT = NATIVE_VK(-112, -76, 0xC4),
358
+ KEY_NUM_LESS = NATIVE_VK(-113, -77, 0xC5),
359
+ KEY_NUM_GREATER = NATIVE_VK(-114, -78, 0xC6),
360
+ KEY_NUM_AMPERSAND = NATIVE_VK(-115, -79, 0xC7),
361
+ KEY_NUM_DBLAMPERSAND = NATIVE_VK(-116, -80, 0xC8),
362
+ KEY_NUM_VERTICALBAR = NATIVE_VK(-117, -81, 0xC9),
363
+ KEY_NUM_DBLVERTICALBAR = NATIVE_VK(-118, -82, 0xCA),
364
+ KEY_NUM_COLON = NATIVE_VK(-119, -83, 0xCB),
365
+ KEY_NUM_HASH = NATIVE_VK(-120, -84, 0xCC),
366
+ KEY_NUM_SPACE = NATIVE_VK(-121, -85, 0xCD),
367
+ KEY_NUM_AT = NATIVE_VK(-122, -86, 0xCE),
368
+ KEY_NUM_EXCLAM = NATIVE_VK(-123, -87, 0xCF),
369
+ KEY_NUM_MEMSTORE = NATIVE_VK(-124, -88, 0xD0),
370
+ KEY_NUM_MEMRECALL = NATIVE_VK(-125, -89, 0xD1),
371
+ KEY_NUM_MEMCLEAR = NATIVE_VK(-126, -90, 0xD2),
372
+ KEY_NUM_MEMADD = NATIVE_VK(-127, -91, 0xD3),
373
+ KEY_NUM_MEMSUBTRACT = NATIVE_VK(-128, -92, 0xD4),
374
+ KEY_NUM_MEMMULTIPLY = NATIVE_VK(-129, -93, 0xD5),
375
+ KEY_NUM_MEMDIVIDE = NATIVE_VK(-130, -94, 0xD6),
376
+ KEY_NUM_PLUSMINUS = NATIVE_VK(-131, -95, 0xD7),
377
+ KEY_NUM_CLEARENTRY = NATIVE_VK(-132, -96, 0xD9),
378
+ KEY_NUM_BINARY = NATIVE_VK(-133, -97, 0xDA),
379
+ KEY_NUM_OCTAL = NATIVE_VK(-134, -98, 0xDB),
380
+ KEY_NUM_HEXADECIMAL = NATIVE_VK(-135, -99, 0xDD),
381
+
382
+ KEY_MODE = NATIVE_VK(-136, -100, 0x101),
383
+
384
+ KEY_AUDIOMUTE = NATIVE_VK(-137, -101, 0x106),
385
+ KEY_WWW = NATIVE_VK(-138, -102, 0x108),
386
+ KEY_CALCULATOR = NATIVE_VK(-139, -103, 0x10A),
387
+ KEY_COMPUTER = NATIVE_VK(-140, -104, 0x10B),
388
+
389
+ KEY_BRIGHTNESSDOWN = NATIVE_VK(-141, -105, 0x113),
390
+ KEY_BRIGHTNESSUP = NATIVE_VK(-142, -106, 0x114),
391
+ KEY_DISPLAYSWITCH = NATIVE_VK(-143, -107, 0x115),
392
+ KEY_KBDILLUMTOGGLE = NATIVE_VK(-144, -108, 0x116),
393
+ KEY_KBDILLUMDOWN = NATIVE_VK(-145, -109, 0x117),
394
+ KEY_KBDILLUMUP = NATIVE_VK(-146, -110, 0x118),
395
+ KEY_EJECT = NATIVE_VK(-147, -111, 0x119),
396
+
397
+ KEY_AUDIOREWIND = NATIVE_VK(-148, -112, 0x11D),
398
+ KEY_AUDIOFASTFORWARD = NATIVE_VK(-149, -113, 0x11E),
399
+
400
+ KEY_SOFTLEFT = NATIVE_VK(-150, -114, 0x11F),
401
+ KEY_SOFTRIGHT = NATIVE_VK(-151, -115, 0x120),
402
+ KEY_CALL = NATIVE_VK(-152, -116, 0x121),
403
+ KEY_ENDCALL = NATIVE_VK(-153, -117, 0x122),
395
404
 
396
405
  #undef NATIVE_VK
397
406
 
@@ -32,6 +32,8 @@ namespace Reflex
32
32
 
33
33
  ~Event ();
34
34
 
35
+ Event dup () const;
36
+
35
37
  void block (bool parent = true);
36
38
 
37
39
  bool is_blocked () const;
@@ -0,0 +1,120 @@
1
+ // -*- c++ -*-
2
+ #pragma once
3
+ #ifndef __REFLEX_MENU_H__
4
+ #define __REFLEX_MENU_H__
5
+
6
+
7
+ #include <vector>
8
+ #include <xot/ref.h>
9
+ #include <xot/pimpl.h>
10
+ #include <reflex/defs.h>
11
+ #include <reflex/selector.h>
12
+
13
+
14
+ namespace Reflex
15
+ {
16
+
17
+
18
+ class Event;
19
+ class View;
20
+
21
+
22
+ class Menu : public Xot::RefCountable<>, public HasSelector
23
+ {
24
+
25
+ public:
26
+
27
+ typedef Xot::Ref<Menu> Ref;
28
+
29
+ typedef std::vector<Ref> ChildList;
30
+
31
+ typedef ChildList:: iterator iterator;
32
+
33
+ typedef ChildList::const_iterator const_iterator;
34
+
35
+ Menu (const char* label = NULL);
36
+
37
+ virtual ~Menu ();
38
+
39
+ virtual void popup (coord x, coord y);
40
+
41
+ virtual void popup (const Point& position);
42
+
43
+ virtual void popup (View* view, coord x, coord y);
44
+
45
+ virtual void popup (View* view, const Point& position);
46
+
47
+ virtual void add_child (Menu* child, int index = -1);
48
+
49
+ virtual void remove_child (Menu* child);
50
+
51
+ virtual void clear_children ();
52
+
53
+ virtual ChildList find_children (
54
+ const Selector& selector, bool recursive = true) const;
55
+
56
+ virtual void set_label (const char* label);
57
+
58
+ virtual const char* label () const;
59
+
60
+ virtual void enable (bool state);
61
+
62
+ virtual bool is_enabled () const;
63
+
64
+ virtual void check (bool);
65
+
66
+ virtual bool is_checked () const;
67
+
68
+ virtual void set_shortcut (const char* key, uint modifiers = MOD_NONE);
69
+
70
+ virtual const char* shortcut_key () const;
71
+
72
+ virtual uint shortcut_modifiers () const;
73
+
74
+ virtual void set_image (const Image& image);
75
+
76
+ virtual const Image& image () const;
77
+
78
+ virtual bool is_separator () const;
79
+
80
+ virtual Menu* parent ();
81
+
82
+ virtual const Menu* parent () const;
83
+
84
+ virtual size_t size () const;
85
+
86
+ virtual bool empty () const;
87
+
88
+ virtual iterator begin ();
89
+
90
+ virtual const_iterator begin () const;
91
+
92
+ virtual iterator end ();
93
+
94
+ virtual const_iterator end () const;
95
+
96
+ virtual void on_show (Event* e);
97
+
98
+ virtual void on_hide (Event* e);
99
+
100
+ virtual void on_open_submenu (Event* e);
101
+
102
+ virtual void on_close_submenu (Event* e);
103
+
104
+ virtual void on_click (Event* e);
105
+
106
+ struct Data;
107
+
108
+ Xot::PImpl<Data> self;
109
+
110
+ protected:
111
+
112
+ virtual SelectorPtr* get_selector_ptr ();
113
+
114
+ };// Menu
115
+
116
+
117
+ }// Reflex
118
+
119
+
120
+ #endif//EOH
@@ -0,0 +1,68 @@
1
+ // -*- c++ -*-
2
+ #pragma once
3
+ #ifndef __REFLEX_PIN_H__
4
+ #define __REFLEX_PIN_H__
5
+
6
+
7
+ #include <xot/pimpl.h>
8
+ #include <rays/point.h>
9
+ #include <reflex/defs.h>
10
+
11
+
12
+ namespace Reflex
13
+ {
14
+
15
+
16
+ class View;
17
+ class SnapConstraint;
18
+ class LinkConstraint;
19
+ class WheelConstraint;
20
+ class ChaseConstraint;
21
+
22
+
23
+ class Pin
24
+ {
25
+
26
+ public:
27
+
28
+ Pin ();
29
+
30
+ Pin (coord x, coord y);
31
+
32
+ Pin (const Point& position);
33
+
34
+ Pin (View* view);
35
+
36
+ Pin (View* view, coord x, coord y);
37
+
38
+ Pin (View* view, const Point& position);
39
+
40
+ SnapConstraint* snap (Pin target = Pin());
41
+
42
+ LinkConstraint* link (Pin target = Pin());
43
+
44
+ WheelConstraint* wheel (Pin target = Pin());
45
+
46
+ ChaseConstraint* chase (Pin target = Pin());
47
+
48
+ View* view ();
49
+
50
+ const View* view () const;
51
+
52
+ const Point* position () const;
53
+
54
+ operator bool () const;
55
+
56
+ bool operator ! () const;
57
+
58
+ struct Data;
59
+
60
+ Xot::PSharedImpl<Data> self;
61
+
62
+ };// Pin
63
+
64
+
65
+ }// Reflex
66
+
67
+
68
+ #endif//EOH
@@ -57,6 +57,10 @@ namespace Reflex
57
57
 
58
58
  CANCEL,
59
59
 
60
+ ENTER,
61
+
62
+ LEAVE,
63
+
60
64
  STAY
61
65
 
62
66
  };// Action