reflexion 0.2 → 0.2.1

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.
@@ -66,188 +66,199 @@ namespace Reflex
66
66
  enum KeyCode
67
67
  {
68
68
 
69
- KEY_NONE = 0,
70
-
71
- KEY_A,
72
- KEY_B,
73
- KEY_C,
74
- KEY_D,
75
- KEY_E,
76
- KEY_F,
77
- KEY_G,
78
- KEY_H,
79
- KEY_I,
80
- KEY_J,
81
- KEY_K,
82
- KEY_L,
83
- KEY_M,
84
- KEY_N,
85
- KEY_O,
86
- KEY_P,
87
- KEY_Q,
88
- KEY_R,
89
- KEY_S,
90
- KEY_T,
91
- KEY_U,
92
- KEY_V,
93
- KEY_W,
94
- KEY_X,
95
- KEY_Y,
96
- KEY_Z,
97
-
98
- KEY_0,
99
- KEY_1,
100
- KEY_2,
101
- KEY_3,
102
- KEY_4,
103
- KEY_5,
104
- KEY_6,
105
- KEY_7,
106
- KEY_8,
107
- KEY_9,
108
-
109
- KEY_MINUS,
110
- KEY_EQUAL,
111
- KEY_COMMA,
112
- KEY_PERIOD,
113
- KEY_SEMICOLON,
114
- KEY_QUOTE,
115
- KEY_SLASH,
116
- KEY_BACKSLASH,
117
- KEY_UNDERSCORE,
118
- KEY_GRAVE,
119
- KEY_YEN,
120
- KEY_LBRACKET,
121
- KEY_RBRACKET,
122
-
123
- KEY_ENTER,
124
- KEY_RETURN,
125
- KEY_SPACE,
126
- KEY_TAB,
127
- KEY_DELETE,
128
- KEY_BACKSPACE,
129
- //KEY_INSERT,
130
- KEY_ESCAPE,
131
-
132
- KEY_LEFT,
133
- KEY_RIGHT,
134
- KEY_UP,
135
- KEY_DOWN,
136
- KEY_HOME,
137
- KEY_END,
138
- KEY_PAGEUP,
139
- KEY_PAGEDOWN,
140
-
141
- KEY_LSHIFT,
142
- KEY_RSHIFT,
143
- KEY_LCONTROL,
144
- KEY_RCONTROL,
145
- //KEY_LALT,
146
- //KEY_RALT,
147
- //KEY_LWIN,
148
- //KEY_RWIN,
149
- KEY_LCOMMAND,
150
- KEY_RCOMMAND,
151
- KEY_LOPTION,
152
- KEY_ROPTION,
153
- KEY_FUNCTION,
154
-
155
- KEY_F1,
156
- KEY_F2,
157
- KEY_F3,
158
- KEY_F4,
159
- KEY_F5,
160
- KEY_F6,
161
- KEY_F7,
162
- KEY_F8,
163
- KEY_F9,
164
- KEY_F10,
165
- KEY_F11,
166
- KEY_F12,
167
- KEY_F13,
168
- KEY_F14,
169
- KEY_F15,
170
- KEY_F16,
171
- KEY_F17,
172
- KEY_F18,
173
- KEY_F19,
174
- KEY_F20,
175
- //KEY_F21,
176
- //KEY_F22,
177
- //KEY_F23,
178
- //KEY_F24,
179
-
180
- KEY_NUM_0,
181
- KEY_NUM_1,
182
- KEY_NUM_2,
183
- KEY_NUM_3,
184
- KEY_NUM_4,
185
- KEY_NUM_5,
186
- KEY_NUM_6,
187
- KEY_NUM_7,
188
- KEY_NUM_8,
189
- KEY_NUM_9,
190
-
191
- KEY_NUM_PLUS,
192
- KEY_NUM_MINUS,
193
- KEY_NUM_MULTIPLY,
194
- KEY_NUM_DIVIDE,
195
- KEY_NUM_EQUAL,
196
- KEY_NUM_COMMA,
197
- KEY_NUM_DECIMAL,
198
- KEY_NUM_CLEAR,
199
-
200
- KEY_CAPSLOCK,
201
- //KEY_NUMLOCK,
202
- //KEY_SCROLLLOCK,
203
-
204
- //KEY_PRINTSCREEN,
205
- //KEY_PAUSE,
206
- //KEY_BREAK,
207
- KEY_SECTION,
208
- KEY_HELP,
209
-
210
- KEY_IME_EISU,
211
- KEY_IME_KANA,
212
- //KEY_IME_KANJI,
213
- //KEY_IME_JUNJA,
214
- //KEY_IME_PROCESS,
215
- //KEY_IME_ACCEPT,
216
- //KEY_IME_FINAL,
217
- //KEY_IME_CONVERT,
218
- //KEY_IME_NONCONVERT,
219
- //KEY_IME_MODECHANGE,
220
-
221
- KEY_VOLUME_UP,
222
- KEY_VOLUME_DOWN,
223
- KEY_MUTE,
224
-
225
- //KEY_SLEEP,
226
- //KEY_EXEC,
227
- //KEY_PRINT,
228
- //KEY_APPS,
229
- //KEY_SELECT,
230
- //KEY_CLEAR,
231
- //KEY_PLAY,
232
- //KEY_ZOOM,
233
-
234
- //KEY_BROWSER_BACK,
235
- //KEY_BROWSER_FORWARD,
236
- //KEY_BROWSER_REFRESH,
237
- //KEY_BROWSER_STOP,
238
- //KEY_BROWSER_SEARCH,
239
- //KEY_BROWSER_FAVORITES,
240
- //KEY_BROWSER_HOME,
241
-
242
- //KEY_MEDIA_NEXT_TRACK,
243
- //KEY_MEDIA_PREV_TRACK,
244
- //KEY_MEDIA_STOP,
245
- //KEY_MEDIA_PLAY_PAUSE,
246
-
247
- //KEY_LAUNCH_MAIL,
248
- //KEY_LAUNCH_MEDIA_SELECT,
249
- //KEY_LAUNCH_APP1,
250
- //KEY_LAUNCH_APP2,
69
+ KEY_NONE = -1,
70
+
71
+ #if defined(OSX) || defined(IOS)
72
+ #define NATIVE_VK(osx) osx
73
+ #endif
74
+
75
+ KEY_A = NATIVE_VK(0x00),
76
+ KEY_B = NATIVE_VK(0x0B),
77
+ KEY_C = NATIVE_VK(0x08),
78
+ KEY_D = NATIVE_VK(0x02),
79
+ KEY_E = NATIVE_VK(0x0E),
80
+ KEY_F = NATIVE_VK(0x03),
81
+ KEY_G = NATIVE_VK(0x05),
82
+ KEY_H = NATIVE_VK(0x04),
83
+ KEY_I = NATIVE_VK(0x22),
84
+ KEY_J = NATIVE_VK(0x26),
85
+ KEY_K = NATIVE_VK(0x28),
86
+ KEY_L = NATIVE_VK(0x25),
87
+ KEY_M = NATIVE_VK(0x2E),
88
+ KEY_N = NATIVE_VK(0x2D),
89
+ KEY_O = NATIVE_VK(0x1F),
90
+ KEY_P = NATIVE_VK(0x23),
91
+ KEY_Q = NATIVE_VK(0x0C),
92
+ KEY_R = NATIVE_VK(0x0F),
93
+ KEY_S = NATIVE_VK(0x01),
94
+ KEY_T = NATIVE_VK(0x11),
95
+ KEY_U = NATIVE_VK(0x20),
96
+ KEY_V = NATIVE_VK(0x09),
97
+ KEY_W = NATIVE_VK(0x0D),
98
+ KEY_X = NATIVE_VK(0x07),
99
+ KEY_Y = NATIVE_VK(0x10),
100
+ KEY_Z = NATIVE_VK(0x06),
101
+
102
+ KEY_0 = NATIVE_VK(0x1D),
103
+ KEY_1 = NATIVE_VK(0x12),
104
+ KEY_2 = NATIVE_VK(0x13),
105
+ KEY_3 = NATIVE_VK(0x14),
106
+ KEY_4 = NATIVE_VK(0x15),
107
+ KEY_5 = NATIVE_VK(0x17),
108
+ KEY_6 = NATIVE_VK(0x16),
109
+ KEY_7 = NATIVE_VK(0x1A),
110
+ KEY_8 = NATIVE_VK(0x1C),
111
+ KEY_9 = NATIVE_VK(0x19),
112
+
113
+ KEY_MINUS = NATIVE_VK(0x1B),
114
+ KEY_EQUAL = NATIVE_VK(0x18),
115
+ KEY_COMMA = NATIVE_VK(0x2B),
116
+ KEY_PERIOD = NATIVE_VK(0x2F),
117
+ KEY_SEMICOLON = NATIVE_VK(0x29),
118
+ KEY_QUOTE = NATIVE_VK(0x27),
119
+ KEY_SLASH = NATIVE_VK(0x2C),
120
+ KEY_BACKSLASH = NATIVE_VK(0x2A),
121
+ KEY_UNDERSCORE = NATIVE_VK(0x5E),
122
+ KEY_GRAVE = NATIVE_VK(0x32),
123
+ KEY_YEN = NATIVE_VK(0x5D),
124
+ KEY_LBRACKET = NATIVE_VK(0x21),
125
+ KEY_RBRACKET = NATIVE_VK(0x1E),
126
+
127
+ KEY_ENTER = NATIVE_VK(0x24),
128
+ KEY_RETURN = NATIVE_VK(0x24),
129
+ KEY_SPACE = NATIVE_VK(0x31),
130
+ KEY_TAB = NATIVE_VK(0x30),
131
+ KEY_DELETE = NATIVE_VK(0x75),
132
+ KEY_BACKSPACE = NATIVE_VK(0x33),
133
+ //KEY_INSERT = NATIVE_VK(),
134
+ KEY_ESCAPE = NATIVE_VK(0x35),
135
+
136
+ KEY_LEFT = NATIVE_VK(0x7B),
137
+ KEY_RIGHT = NATIVE_VK(0x7C),
138
+ KEY_UP = NATIVE_VK(0x7E),
139
+ KEY_DOWN = NATIVE_VK(0x7D),
140
+ KEY_HOME = NATIVE_VK(0x73),
141
+ KEY_END = NATIVE_VK(0x77),
142
+ KEY_PAGEUP = NATIVE_VK(0x74),
143
+ KEY_PAGEDOWN = NATIVE_VK(0x79),
144
+
145
+ KEY_SHIFT = NATIVE_VK(0x38),
146
+ KEY_LSHIFT = NATIVE_VK(0x38),
147
+ KEY_RSHIFT = NATIVE_VK(0x3C),
148
+ KEY_CONTROL = NATIVE_VK(0x3B),
149
+ KEY_LCONTROL = NATIVE_VK(0x3B),
150
+ KEY_RCONTROL = NATIVE_VK(0x3E),
151
+ //KEY_LALT = NATIVE_VK(),
152
+ //KEY_RALT = NATIVE_VK(),
153
+ //KEY_LWIN = NATIVE_VK(),
154
+ //KEY_RWIN = NATIVE_VK(),
155
+ KEY_COMMAND = NATIVE_VK(0x37),
156
+ KEY_LCOMMAND = NATIVE_VK(0x37),
157
+ KEY_RCOMMAND = NATIVE_VK(0x36),
158
+ KEY_OPTION = NATIVE_VK(0x3A),
159
+ KEY_LOPTION = NATIVE_VK(0x3A),
160
+ KEY_ROPTION = NATIVE_VK(0x3D),
161
+ KEY_FUNCTION = NATIVE_VK(0x3F),
162
+
163
+ KEY_F1 = NATIVE_VK(0x7A),
164
+ KEY_F2 = NATIVE_VK(0x78),
165
+ KEY_F3 = NATIVE_VK(0x63),
166
+ KEY_F4 = NATIVE_VK(0x76),
167
+ KEY_F5 = NATIVE_VK(0x60),
168
+ KEY_F6 = NATIVE_VK(0x61),
169
+ KEY_F7 = NATIVE_VK(0x62),
170
+ KEY_F8 = NATIVE_VK(0x64),
171
+ KEY_F9 = NATIVE_VK(0x65),
172
+ KEY_F10 = NATIVE_VK(0x6D),
173
+ KEY_F11 = NATIVE_VK(0x67),
174
+ KEY_F12 = NATIVE_VK(0x6F),
175
+ KEY_F13 = NATIVE_VK(0x69),
176
+ KEY_F14 = NATIVE_VK(0x6B),
177
+ KEY_F15 = NATIVE_VK(0x71),
178
+ KEY_F16 = NATIVE_VK(0x6A),
179
+ KEY_F17 = NATIVE_VK(0x40),
180
+ KEY_F18 = NATIVE_VK(0x4F),
181
+ KEY_F19 = NATIVE_VK(0x50),
182
+ KEY_F20 = NATIVE_VK(0x5A),
183
+ //KEY_F21 = NATIVE_VK(),
184
+ //KEY_F22 = NATIVE_VK(),
185
+ //KEY_F23 = NATIVE_VK(),
186
+ //KEY_F24 = NATIVE_VK(),
187
+
188
+ KEY_NUM_0 = NATIVE_VK(0x52),
189
+ KEY_NUM_1 = NATIVE_VK(0x53),
190
+ KEY_NUM_2 = NATIVE_VK(0x54),
191
+ KEY_NUM_3 = NATIVE_VK(0x55),
192
+ KEY_NUM_4 = NATIVE_VK(0x56),
193
+ KEY_NUM_5 = NATIVE_VK(0x57),
194
+ KEY_NUM_6 = NATIVE_VK(0x58),
195
+ KEY_NUM_7 = NATIVE_VK(0x59),
196
+ KEY_NUM_8 = NATIVE_VK(0x5B),
197
+ KEY_NUM_9 = NATIVE_VK(0x5C),
198
+
199
+ KEY_NUM_PLUS = NATIVE_VK(0x45),
200
+ KEY_NUM_MINUS = NATIVE_VK(0x4E),
201
+ KEY_NUM_MULTIPLY = NATIVE_VK(0x43),
202
+ KEY_NUM_DIVIDE = NATIVE_VK(0x4B),
203
+ KEY_NUM_EQUAL = NATIVE_VK(0x51),
204
+ KEY_NUM_COMMA = NATIVE_VK(0x5F),
205
+ KEY_NUM_DECIMAL = NATIVE_VK(0x41),
206
+ KEY_NUM_CLEAR = NATIVE_VK(0x47),
207
+ KEY_NUM_ENTER = NATIVE_VK(0x4C),
208
+
209
+ KEY_CAPSLOCK = NATIVE_VK(0x39),
210
+ //KEY_NUMLOCK = NATIVE_VK(),
211
+ //KEY_SCROLLLOCK = NATIVE_VK(),
212
+
213
+ //KEY_PRINTSCREEN = NATIVE_VK(),
214
+ //KEY_PAUSE = NATIVE_VK(),
215
+ //KEY_BREAK = NATIVE_VK(),
216
+ KEY_SECTION = NATIVE_VK(0x0A),
217
+ KEY_HELP = NATIVE_VK(0x72),
218
+
219
+ KEY_IME_EISU = NATIVE_VK(0x66),
220
+ KEY_IME_KANA = NATIVE_VK(0x68),
221
+ //KEY_IME_KANJI = NATIVE_VK(),
222
+ //KEY_IME_JUNJA = NATIVE_VK(),
223
+ //KEY_IME_PROCESS = NATIVE_VK(),
224
+ //KEY_IME_ACCEPT = NATIVE_VK(),
225
+ //KEY_IME_FINAL = NATIVE_VK(),
226
+ //KEY_IME_CONVERT = NATIVE_VK(),
227
+ //KEY_IME_NONCONVERT = NATIVE_VK(),
228
+ //KEY_IME_MODECHANGE = NATIVE_VK(),
229
+
230
+ KEY_VOLUME_UP = NATIVE_VK(0x48),
231
+ KEY_VOLUME_DOWN = NATIVE_VK(0x49),
232
+ KEY_MUTE = NATIVE_VK(0x4A),
233
+
234
+ //KEY_SLEEP = NATIVE_VK(),
235
+ //KEY_EXEC = NATIVE_VK(),
236
+ //KEY_PRINT = NATIVE_VK(),
237
+ //KEY_APPS = NATIVE_VK(),
238
+ //KEY_SELECT = NATIVE_VK(),
239
+ //KEY_CLEAR = NATIVE_VK(),
240
+ //KEY_PLAY = NATIVE_VK(),
241
+ //KEY_ZOOM = NATIVE_VK(),
242
+
243
+ //KEY_BROWSER_BACK = NATIVE_VK(),
244
+ //KEY_BROWSER_FORWARD = NATIVE_VK(),
245
+ //KEY_BROWSER_REFRESH = NATIVE_VK(),
246
+ //KEY_BROWSER_STOP = NATIVE_VK(),
247
+ //KEY_BROWSER_SEARCH = NATIVE_VK(),
248
+ //KEY_BROWSER_FAVORITES = NATIVE_VK(),
249
+ //KEY_BROWSER_HOME = NATIVE_VK(),
250
+
251
+ //KEY_MEDIA_NEXT_TRACK = NATIVE_VK(),
252
+ //KEY_MEDIA_PREV_TRACK = NATIVE_VK(),
253
+ //KEY_MEDIA_STOP = NATIVE_VK(),
254
+ //KEY_MEDIA_PLAY_PAUSE = NATIVE_VK(),
255
+
256
+ //KEY_LAUNCH_MAIL = NATIVE_VK(),
257
+ //KEY_LAUNCH_MEDIA_SELECT = NATIVE_VK(),
258
+ //KEY_LAUNCH_APP1 = NATIVE_VK(),
259
+ //KEY_LAUNCH_APP2 = NATIVE_VK(),
260
+
261
+ #undef NATIVE_VK
251
262
 
252
263
  };// KeyCode
253
264
 
@@ -267,17 +278,17 @@ namespace Reflex
267
278
  MOD_WIN = 0x1 << 3,
268
279
  #endif
269
280
 
270
- MOD_OPTION = MOD_ALT,
281
+ MOD_OPTION = 0x1 << 4,
271
282
 
272
- MOD_COMMAND = MOD_WIN,
283
+ MOD_COMMAND = 0x1 << 5,
273
284
 
274
- MOD_HELP = 0x1 << 4,
285
+ MOD_HELP = 0x1 << 6,
275
286
 
276
- MOD_FUNCTION = 0x1 << 5,
287
+ MOD_FUNCTION = 0x1 << 7,
277
288
 
278
- MOD_NUMPAD = 0x1 << 6,
289
+ MOD_NUMPAD = 0x1 << 8,
279
290
 
280
- MOD_CAPS = 0x1 << 7,
291
+ MOD_CAPS = 0x1 << 9,
281
292
 
282
293
  };// Modifier
283
294
 
@@ -4,19 +4,22 @@
4
4
  #define __REFLEX_RUBY_H__
5
5
 
6
6
 
7
- #include <reflex/ruby/reflex.h>
8
7
  #include <reflex/ruby/defs.h>
8
+ #include <reflex/ruby/reflex.h>
9
9
  #include <reflex/ruby/exception.h>
10
10
 
11
11
  #include <reflex/ruby/selector.h>
12
+ #include <reflex/ruby/pointer.h>
12
13
  #include <reflex/ruby/event.h>
13
14
  #include <reflex/ruby/timer.h>
14
15
  #include <reflex/ruby/style.h>
15
16
  #include <reflex/ruby/shape.h>
17
+ #include <reflex/ruby/filter.h>
16
18
 
17
19
  #include <reflex/ruby/application.h>
18
20
  #include <reflex/ruby/window.h>
19
21
  #include <reflex/ruby/view.h>
22
+ #include <reflex/ruby/screen.h>
20
23
 
21
24
  #include <reflex/ruby/image_view.h>
22
25
 
data/include/reflex.h CHANGED
@@ -10,6 +10,7 @@
10
10
  #include <reflex/debug.h>
11
11
 
12
12
  #include <reflex/selector.h>
13
+ #include <reflex/pointer.h>
13
14
  #include <reflex/event.h>
14
15
  #include <reflex/style.h>
15
16
  #include <reflex/timer.h>
@@ -19,6 +20,7 @@
19
20
  #include <reflex/application.h>
20
21
  #include <reflex/window.h>
21
22
  #include <reflex/view.h>
23
+ #include <reflex/screen.h>
22
24
 
23
25
  #include <reflex/device.h>
24
26
 
@@ -1,3 +1,4 @@
1
+ require 'xot/bit_flag_accessor'
1
2
  require 'xot/const_symbol_accessor'
2
3
  require 'reflex/ext'
3
4
 
@@ -15,6 +16,19 @@ module Reflex
15
16
  up: UP
16
17
  }
17
18
 
19
+ bit_flag_reader :modifiers, **{
20
+ shift: MOD_SHIFT,
21
+ control: MOD_CONTROL,
22
+ alt: MOD_ALT,
23
+ win: MOD_WIN,
24
+ option: MOD_OPTION,
25
+ command: MOD_COMMAND,
26
+ help: MOD_HELP,
27
+ function: MOD_FUNCTION,
28
+ numpad: MOD_NUMPAD,
29
+ caps: MOD_CAPS,
30
+ }
31
+
18
32
  def down?()
19
33
  get_action == DOWN
20
34
  end
@@ -28,7 +42,15 @@ module Reflex
28
42
  end
29
43
 
30
44
  def inspect()
31
- "#<Reflex::KeyEvent action:#{action} chars:'#{chars}' code:#{code} mod:#{modifiers} repeat:#{repeat} captured?:#{captured?}>"
45
+ "#<Reflex::KeyEvent action:%s chars:%s key:%s code:0x%X mod:%s repeat:%d captured?:%s>" % [
46
+ action,
47
+ chars ? "'#{chars}'" : :nil,
48
+ key ? key : :nil,
49
+ code,
50
+ modifiers.join(','),
51
+ repeat,
52
+ captured?
53
+ ]
32
54
  end
33
55
 
34
56
  end# KeyEvent
data/reflex.gemspec CHANGED
@@ -25,10 +25,10 @@ Gem::Specification.new do |s|
25
25
  s.platform = Gem::Platform::RUBY
26
26
  s.required_ruby_version = '>= 3.0.0'
27
27
 
28
- s.add_runtime_dependency 'xot', '~> 0.2'
29
- s.add_runtime_dependency 'rucy', '~> 0.2'
30
- s.add_runtime_dependency 'beeps', '~> 0.2'
31
- s.add_runtime_dependency 'rays', '~> 0.2'
28
+ s.add_runtime_dependency 'xot', '~> 0.2.1'
29
+ s.add_runtime_dependency 'rucy', '~> 0.2.1'
30
+ s.add_runtime_dependency 'beeps', '~> 0.2.1'
31
+ s.add_runtime_dependency 'rays', '~> 0.2.1'
32
32
 
33
33
  s.files = `git ls-files`.split $/
34
34
  s.executables = s.files.grep(%r{^bin/}) {|f| File.basename f}
data/samples/key.rb CHANGED
@@ -30,7 +30,7 @@ end
30
30
 
31
31
  w.on :pointer_move do |points|
32
32
  $pos = "#{points.x}, #{points.y}"
33
- p [points.type, points.x, points.y, points.size, points.modifiers, points.count, points.drag]
33
+ p [points.action, points.x, points.y, points.size, points.modifiers, points.count, points.drag?]
34
34
  w.redraw
35
35
  end
36
36
 
data/src/event.cpp CHANGED
@@ -545,6 +545,7 @@ namespace Reflex
545
545
  const char*
546
546
  KeyEvent::chars () const
547
547
  {
548
+ if (self->chars.empty()) return NULL;
548
549
  return self->chars;
549
550
  }
550
551
 
data/src/ios/event.h CHANGED
@@ -4,7 +4,6 @@
4
4
  #define __REFLEX_SRC_IOS_EVENT_H__
5
5
 
6
6
 
7
- #include <list>
8
7
  #import <UIKit/UIEvent.h>
9
8
  #include "../event.h"
10
9
 
@@ -13,21 +12,12 @@ namespace Reflex
13
12
  {
14
13
 
15
14
 
16
- typedef std::list<Pointer> PrevPointerList;
17
-
18
-
19
15
  class NativePointerEvent : public PointerEvent
20
16
  {
21
17
 
22
18
  public:
23
19
 
24
- NativePointerEvent (
25
- NSSet* touches, UIEvent* event, UIView* view,
26
- Pointer::ID* pointer_id);
27
-
28
- NativePointerEvent (
29
- NSSet* touches, UIEvent* event, UIView* view,
30
- PrevPointerList* prev_pointers);
20
+ NativePointerEvent (NSSet* touches, UIEvent* event, UIView* view);
31
21
 
32
22
  };// NativePointerEvent
33
23
 
data/src/ios/event.mm CHANGED
@@ -69,45 +69,13 @@ namespace Reflex
69
69
  (flags & UIKeyModifierNumericPad) ? MOD_NUMPAD : 0;
70
70
  }
71
71
 
72
- static void
73
- set_pasts (Pointer* pointer, const Pointer* prev)
74
- {
75
- Pointer_set_prev(pointer, prev);
76
- if (prev && prev->down())
77
- Pointer_set_down(pointer, prev->down());
78
- }
79
-
80
- static void
81
- attach_prev_pointer (
82
- Pointer* pointer, PrevPointerList* prev_pointers, const Point& prev_position)
83
- {
84
- auto it = std::find_if(
85
- prev_pointers->begin(), prev_pointers->end(),
86
- [&](const Pointer& p) {return p.position() == prev_position;});
87
-
88
- if (it != prev_pointers->end())
89
- {
90
- set_pasts(pointer, &*it);
91
- prev_pointers->erase(it);
92
- }
93
- else if (prev_pointers->size() == 1)
94
- {
95
- set_pasts(pointer, &prev_pointers->front());
96
- prev_pointers->clear();
97
- }
98
-
99
- if (pointer->prev())
100
- Pointer_set_id(pointer, pointer->prev()->id());
101
- }
102
-
103
72
  static Pointer
104
- create_pointer (
105
- UITouch* touch, UIEvent* event, UIView* view, double time,
106
- Pointer::ID pointer_id, PrevPointerList* prev_pointers)
73
+ create_pointer (UITouch* touch, UIEvent* event, UIView* view)
107
74
  {
108
75
  Pointer::Action action = get_action(touch);
76
+
109
77
  Pointer pointer(
110
- pointer_id,
78
+ 0,
111
79
  get_type(touch),
112
80
  action,
113
81
  to_point([touch locationInView: view]),
@@ -115,39 +83,24 @@ namespace Reflex
115
83
  action == Pointer::MOVE,
116
84
  (uint) touch.tapCount,
117
85
  0,
118
- time);
86
+ touch.timestamp);
119
87
 
120
- if (prev_pointers)
88
+ if (touch.phase != UITouchPhaseBegan)
121
89
  {
122
- attach_prev_pointer(
123
- &pointer, prev_pointers,
124
- to_point([touch previousLocationInView: view]));
90
+ Pointer_set_prev_position(
91
+ &pointer, to_point([touch previousLocationInView: view]));
125
92
  }
126
- else
127
- Pointer_set_down(&pointer, &pointer);
128
93
 
129
94
  return pointer;
130
95
  }
131
96
 
132
97
  NativePointerEvent::NativePointerEvent (
133
- NSSet* touches, UIEvent* event, UIView* view,
134
- Pointer::ID* pointer_id)
135
- {
136
- for (UITouch* touch in touches)
137
- {
138
- PointerEvent_add_pointer(
139
- this, create_pointer(touch, event, view, time(), ++*pointer_id, NULL));
140
- }
141
- }
142
-
143
- NativePointerEvent::NativePointerEvent (
144
- NSSet* touches, UIEvent* event, UIView* view,
145
- PrevPointerList* prev_pointers)
98
+ NSSet* touches, UIEvent* event, UIView* view)
146
99
  {
147
100
  for (UITouch* touch in touches)
148
101
  {
149
- PointerEvent_add_pointer(
150
- this, create_pointer(touch, event, view, time(), 0, prev_pointers));
102
+ Pointer pointer = create_pointer(touch, event, view);
103
+ if (pointer) PointerEvent_add_pointer(this, pointer);
151
104
  }
152
105
  }
153
106