reflexion 0.1.22 → 0.1.23

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/.doc/ext/reflex/event.cpp +9 -1
  3. data/.doc/ext/reflex/key_event.cpp +3 -3
  4. data/.doc/ext/reflex/native.cpp +2 -0
  5. data/.doc/ext/reflex/pointer.cpp +158 -0
  6. data/.doc/ext/reflex/pointer_event.cpp +29 -88
  7. data/.doc/ext/reflex/selector.cpp +8 -0
  8. data/.doc/ext/reflex/view.cpp +57 -0
  9. data/.doc/ext/reflex/window.cpp +24 -0
  10. data/VERSION +1 -1
  11. data/ext/reflex/event.cpp +11 -2
  12. data/ext/reflex/key_event.cpp +3 -3
  13. data/ext/reflex/native.cpp +2 -0
  14. data/ext/reflex/pointer.cpp +170 -0
  15. data/ext/reflex/pointer_event.cpp +29 -94
  16. data/ext/reflex/selector.cpp +9 -0
  17. data/ext/reflex/view.cpp +67 -3
  18. data/ext/reflex/window.cpp +30 -3
  19. data/include/reflex/defs.h +0 -18
  20. data/include/reflex/event.h +26 -27
  21. data/include/reflex/pointer.h +107 -0
  22. data/include/reflex/ruby/pointer.h +41 -0
  23. data/include/reflex/ruby/view.h +9 -0
  24. data/include/reflex/ruby/window.h +9 -0
  25. data/include/reflex/selector.h +1 -1
  26. data/include/reflex/view.h +6 -4
  27. data/include/reflex/window.h +10 -8
  28. data/lib/reflex/key_event.rb +1 -1
  29. data/lib/reflex/pointer.rb +107 -0
  30. data/lib/reflex/pointer_event.rb +16 -54
  31. data/lib/reflex.rb +1 -0
  32. data/reflex.gemspec +5 -5
  33. data/src/event.cpp +189 -37
  34. data/src/event.h +32 -0
  35. data/src/ios/event.h +15 -3
  36. data/src/ios/event.mm +126 -11
  37. data/src/ios/view_controller.mm +49 -21
  38. data/src/osx/event.h +6 -3
  39. data/src/osx/event.mm +40 -22
  40. data/src/osx/native_window.mm +79 -16
  41. data/src/pointer.cpp +203 -0
  42. data/src/pointer.h +26 -0
  43. data/src/selector.cpp +1 -1
  44. data/src/view.cpp +83 -72
  45. data/src/view.h +0 -4
  46. data/src/window.cpp +321 -97
  47. data/src/window.h +22 -3
  48. data/test/test_event.rb +16 -2
  49. data/test/test_pointer.rb +149 -0
  50. data/test/test_pointer_event.rb +70 -104
  51. data/test/test_selector.rb +7 -0
  52. data/test/test_view.rb +38 -11
  53. data/test/test_window.rb +27 -25
  54. metadata +46 -35
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3ddbc019fc036a931bdef9ec81872663f375a2e440003ef18b638666e61f7ed7
4
- data.tar.gz: 6a803b54ac97bbe773c432f2089383983b95e2f5187891e5fd79aaca375fa9d4
3
+ metadata.gz: 5c9de459b494d9ab8e2e94e53a26b0fd9d363a1c66dd442894d0385827634849
4
+ data.tar.gz: 26858625a7e25d0cbba85d7a054ab9426c526997d0eb2ed704b125ee93ba436c
5
5
  SHA512:
6
- metadata.gz: de9b87fd54230c33385b5e252ea39aae91b395e6f9aa2d2ef5b8dfcb9aead804831c7b6f8614b296df041914cf0a69e998e41e518d955d644ccec3e225a21c9d
7
- data.tar.gz: c2072f7e2fa3c76e3d4a6aece31a6fa9c90f838bb7d96c2cc636def5c375b1c90f702634558363e0f282c0c79fc6adecd0484baa85c1d2c6c29a43e52118caad
6
+ metadata.gz: 6c0e16849f3de4b39cfe8270f8208b0e6e1f2cae808e3a678f4b79bad2d9a397f741e78474670350de327e54c91fe64f199f6b2dc437635950147a0f91610e5a
7
+ data.tar.gz: 2c38f9a17ec2a0d8a81f067b3326c0dca5bc970d86735ac503238eb458ac8ed8c452bc32042ee96f4a109e78742a8b3107d48237775e4090a08885905e378709
@@ -39,6 +39,13 @@ VALUE is_blocked(VALUE self)
39
39
  return value(THIS->is_blocked());
40
40
  }
41
41
 
42
+ static
43
+ VALUE get_time(VALUE self)
44
+ {
45
+ CHECK;
46
+ return value(THIS->time());
47
+ }
48
+
42
49
 
43
50
  static Class cEvent;
44
51
 
@@ -51,7 +58,8 @@ Init_event ()
51
58
  rb_define_alloc_func(cEvent, alloc);
52
59
  rb_define_private_method(cEvent, "initialize_copy", RUBY_METHOD_FUNC(initialize_copy), 1);
53
60
  rb_define_method(cEvent, "block", RUBY_METHOD_FUNC(block), 0);
54
- cEvent.define_method("block?", is_blocked);
61
+ cEvent.define_method("blocked?", is_blocked);
62
+ rb_define_method(cEvent, "time", RUBY_METHOD_FUNC(get_time), 0);
55
63
  }
56
64
 
57
65
 
@@ -272,10 +272,10 @@ VALUE get_repeat(VALUE self)
272
272
  }
273
273
 
274
274
  static
275
- VALUE is_capture(VALUE self)
275
+ VALUE is_captured(VALUE self)
276
276
  {
277
277
  CHECK;
278
- return value(THIS->capture);
278
+ return value(THIS->captured);
279
279
  }
280
280
 
281
281
 
@@ -296,7 +296,7 @@ Init_key_event ()
296
296
  rb_define_method(cKeyEvent, "code", RUBY_METHOD_FUNC(get_code), 0);
297
297
  rb_define_method(cKeyEvent, "modifiers", RUBY_METHOD_FUNC(get_modifiers), 0);
298
298
  rb_define_method(cKeyEvent, "repeat", RUBY_METHOD_FUNC(get_repeat), 0);
299
- cKeyEvent.define_method("capture?", is_capture);
299
+ cKeyEvent.define_method("captured?", is_captured);
300
300
  cKeyEvent.define_const("TYPE_NONE", Reflex::KeyEvent::NONE);
301
301
  cKeyEvent.define_const("TYPE_DOWN", Reflex::KeyEvent::DOWN);
302
302
  cKeyEvent.define_const("TYPE_UP", Reflex::KeyEvent::UP);
@@ -17,6 +17,7 @@ void Init_frame_event ();
17
17
  void Init_scroll_event ();
18
18
  void Init_focus_event ();
19
19
  void Init_key_event ();
20
+ void Init_pointer ();
20
21
  void Init_pointer_event ();
21
22
  void Init_wheel_event ();
22
23
  void Init_capture_event ();
@@ -63,6 +64,7 @@ extern "C" void
63
64
  Init_scroll_event();
64
65
  Init_focus_event();
65
66
  Init_key_event();
67
+ Init_pointer();
66
68
  Init_pointer_event();
67
69
  Init_wheel_event();
68
70
  Init_capture_event();
@@ -0,0 +1,158 @@
1
+ #include "reflex/ruby/pointer.h"
2
+
3
+
4
+ #include <rays/ruby/point.h>
5
+ #include "defs.h"
6
+
7
+
8
+ RUCY_DEFINE_VALUE_FROM_TO(Reflex::Pointer)
9
+
10
+ #define THIS to<Reflex::Pointer*>(self)
11
+
12
+ #define CHECK RUCY_CHECK_OBJ(Reflex::Pointer, self)
13
+
14
+
15
+ static
16
+ VALUE alloc(VALUE klass)
17
+ {
18
+ return new_type<Reflex::Pointer>(klass);
19
+ }
20
+
21
+ static
22
+ VALUE initialize(VALUE self, VALUE
23
+ id, VALUE type, VALUE action, VALUE position, VALUE modifiers, VALUE click_count, VALUE drag, VALUE time)
24
+ {
25
+ CHECK;
26
+
27
+ *THIS = Reflex::Pointer(
28
+ to<Reflex::Pointer::ID>(id),
29
+ to<uint>(type),
30
+ (Reflex::Pointer::Action) to<int>(action),
31
+ to<Rays::Point>(position),
32
+ to<uint>(modifiers),
33
+ to<uint>(click_count),
34
+ to<bool>(drag),
35
+ to<double>(time));
36
+ return self;
37
+ }
38
+
39
+ static
40
+ VALUE initialize_copy(VALUE self, VALUE obj)
41
+ {
42
+ CHECK;
43
+ *THIS = to<Reflex::Pointer&>(obj);
44
+ return self;
45
+ }
46
+
47
+ static
48
+ VALUE get_id(VALUE self)
49
+ {
50
+ CHECK;
51
+ return value(THIS->id());
52
+ }
53
+
54
+ static
55
+ VALUE get_type(VALUE self)
56
+ {
57
+ CHECK;
58
+ return value(THIS->type());
59
+ }
60
+
61
+ static
62
+ VALUE get_action(VALUE self)
63
+ {
64
+ CHECK;
65
+ return value(THIS->action());
66
+ }
67
+
68
+ static
69
+ VALUE get_position(VALUE self)
70
+ {
71
+ CHECK;
72
+ return value(THIS->position());
73
+ }
74
+
75
+ static
76
+ VALUE get_modifiers(VALUE self)
77
+ {
78
+ CHECK;
79
+ return value(THIS->modifiers());
80
+ }
81
+
82
+ static
83
+ VALUE get_click_count(VALUE self)
84
+ {
85
+ CHECK;
86
+ return value(THIS->click_count());
87
+ }
88
+
89
+ static
90
+ VALUE is_drag(VALUE self)
91
+ {
92
+ CHECK;
93
+ return value(THIS->is_drag());
94
+ }
95
+
96
+ static
97
+ VALUE get_time(VALUE self)
98
+ {
99
+ CHECK;
100
+ return value(THIS->time());
101
+ }
102
+
103
+ static
104
+ VALUE get_prev(VALUE self)
105
+ {
106
+ CHECK;
107
+ return value(THIS->prev());
108
+ }
109
+
110
+
111
+ static Class cPointer;
112
+
113
+ void
114
+ Init_pointer ()
115
+ {
116
+ Module mReflex = rb_define_module("Reflex");
117
+
118
+ cPointer = rb_define_class_under(mReflex, "Pointer", rb_cObject);
119
+ rb_define_alloc_func(cPointer, alloc);
120
+ rb_define_private_method(cPointer, "initialize", RUBY_METHOD_FUNC(initialize), 8);
121
+ rb_define_private_method(cPointer, "initialize_copy", RUBY_METHOD_FUNC(initialize_copy), 1);
122
+ rb_define_method(cPointer, "id", RUBY_METHOD_FUNC(get_id), 0);
123
+ rb_define_private_method(cPointer, "get_type", RUBY_METHOD_FUNC(get_type), 0);
124
+ rb_define_private_method(cPointer, "get_action", RUBY_METHOD_FUNC(get_action), 0);
125
+ rb_define_method(cPointer, "position", RUBY_METHOD_FUNC(get_position), 0);
126
+ rb_define_method(cPointer, "modifiers", RUBY_METHOD_FUNC(get_modifiers), 0);
127
+ rb_define_method(cPointer, "click_count", RUBY_METHOD_FUNC(get_click_count), 0);
128
+ cPointer.define_method("drag?", is_drag);
129
+ rb_define_method(cPointer, "time", RUBY_METHOD_FUNC(get_time), 0);
130
+ rb_define_method(cPointer, "prev", RUBY_METHOD_FUNC(get_prev), 0);
131
+ cPointer.define_const("TYPE_NONE", Reflex::Pointer::TYPE_NONE);
132
+ cPointer.define_const("MOUSE", Reflex::Pointer::MOUSE);
133
+ cPointer.define_const("MOUSE_LEFT", Reflex::Pointer::MOUSE_LEFT);
134
+ cPointer.define_const("MOUSE_RIGHT", Reflex::Pointer::MOUSE_RIGHT);
135
+ cPointer.define_const("MOUSE_MIDDLE", Reflex::Pointer::MOUSE_MIDDLE);
136
+ cPointer.define_const("TOUCH", Reflex::Pointer::TOUCH);
137
+ cPointer.define_const("PEN", Reflex::Pointer::PEN);
138
+ cPointer.define_const("ACTION_NONE", Reflex::Pointer::ACTION_NONE);
139
+ cPointer.define_const("DOWN", Reflex::Pointer::DOWN);
140
+ cPointer.define_const("UP", Reflex::Pointer::UP);
141
+ cPointer.define_const("MOVE", Reflex::Pointer::MOVE);
142
+ cPointer.define_const("CANCEL", Reflex::Pointer::CANCEL);
143
+ cPointer.define_const("STAY", Reflex::Pointer::STAY);
144
+ }
145
+
146
+
147
+ namespace Reflex
148
+ {
149
+
150
+
151
+ Class
152
+ pointer_class ()
153
+ {
154
+ return cPointer;
155
+ }
156
+
157
+
158
+ }// Reflex
@@ -1,7 +1,9 @@
1
1
  #include "reflex/ruby/event.h"
2
2
 
3
3
 
4
+ #include <vector>
4
5
  #include <rays/ruby/point.h>
6
+ #include "reflex/ruby/pointer.h"
5
7
  #include "defs.h"
6
8
 
7
9
 
@@ -19,23 +21,18 @@ VALUE alloc(VALUE klass)
19
21
  }
20
22
 
21
23
  static
22
- VALUE initialize(VALUE self, VALUE type, VALUE pointer_type, VALUE modifiers, VALUE count, VALUE drag, VALUE positions)
24
+ VALUE initialize(VALUE self)
23
25
  {
24
26
  CHECK;
25
27
 
26
- int size = positions.size();
27
- if (size <= 0 || Reflex::PointerEvent::MAX < size)
28
+ if (argc == 0)
28
29
  argument_error(__FILE__, __LINE__);
29
30
 
30
- THIS->type = (Reflex::PointerEvent::Type) to<int>(type);
31
- THIS->pointer_type = to<uint>(pointer_type);
32
- THIS->modifiers = to<uint>(modifiers);
33
- THIS->count = to<uint>(count);
34
- THIS->drag = to<bool>(drag);
35
- THIS->size = (size_t) size;
31
+ std::vector<Reflex::Pointer> pointers;
32
+ for (size_t i = 0; i < argc; ++i)
33
+ pointers.emplace_back(to<Reflex::Pointer&>(argv[i]));
36
34
 
37
- for (int i = 0; i < size; ++i)
38
- THIS->positions[i] = to<Rays::Point>(positions[i]);
35
+ *THIS = Reflex::PointerEvent(&pointers[0], pointers.size());
39
36
 
40
37
  return rb_call_super(0, NULL);
41
38
  }
@@ -48,89 +45,49 @@ VALUE initialize_copy(VALUE self, VALUE obj)
48
45
  return self;
49
46
  }
50
47
 
51
- static
52
- VALUE get_type(VALUE self)
53
- {
54
- CHECK;
55
- return value(THIS->type);
56
- }
57
-
58
- static
59
- VALUE get_pointer_type(VALUE self)
60
- {
61
- CHECK;
62
- return value(THIS->pointer_type);
63
- }
64
-
65
48
  static
66
49
  VALUE get_size(VALUE self)
67
50
  {
68
51
  CHECK;
69
- return value(THIS->size);
70
- }
71
-
72
- static
73
- VALUE get_modifiers(VALUE self)
74
- {
75
- CHECK;
76
- return value(THIS->modifiers);
77
- }
78
-
79
- static
80
- VALUE get_count(VALUE self)
81
- {
82
- CHECK;
83
- return value(THIS->count);
84
- }
85
-
86
- static
87
- VALUE is_drag(VALUE self)
88
- {
89
- CHECK;
90
- return value(THIS->drag);
52
+ return value(THIS->size());
91
53
  }
92
54
 
93
55
  static
94
- VALUE is_capture(VALUE self)
56
+ VALUE is_empty(VALUE self)
95
57
  {
96
58
  CHECK;
97
- return value(THIS->capture);
59
+ return value(THIS->empty());
98
60
  }
99
61
 
100
62
  static
101
- VALUE get_x(VALUE self)
63
+ VALUE is_captured(VALUE self)
102
64
  {
103
65
  CHECK;
104
- return value(THIS->x);
66
+ return value(THIS->is_captured());
105
67
  }
106
68
 
107
69
  static
108
- VALUE get_y(VALUE self)
70
+ VALUE get_at(VALUE self, VALUE index)
109
71
  {
110
72
  CHECK;
111
- return value(THIS->y);
112
- }
113
73
 
114
- static
115
- VALUE get_position(VALUE self)
116
- {
117
- CHECK;
118
- check_arg_count(__FILE__, __LINE__, "PointerEvent#position", argc, 0, 1);
74
+ int size = (int) THIS->size();
75
+ int i = to<int>(index);
76
+ if (i < -size || size <= i)
77
+ return Qnil;
119
78
 
120
- size_t index = argc >= 1 ? to<int>(argv[0]) : 0;
121
- return value(THIS->position(index));
79
+ return value((*THIS)[i >= 0 ? i : i + size]);
122
80
  }
123
81
 
124
82
  static
125
- VALUE get_at(VALUE self, VALUE index)
83
+ VALUE each(VALUE self)
126
84
  {
127
85
  CHECK;
128
86
 
129
- int i = to<int>(index);
130
- if (i < 0 || THIS->size <= (size_t) i)
131
- index_error(__FILE__, __LINE__);
132
-
133
- return value((*THIS)[i]);
87
+ Value ret;
88
+ for (size_t i = 0, size = THIS->size(); i < size; ++i)
89
+ ret = rb_yield(value((*THIS)[i]));
90
+ return ret;
134
91
  }
135
92
 
136
93
 
@@ -143,29 +100,13 @@ Init_pointer_event ()
143
100
 
144
101
  cPointerEvent = mReflex.define_class("PointerEvent", Reflex::event_class());
145
102
  rb_define_alloc_func(cPointerEvent, alloc);
146
- rb_define_private_method(cPointerEvent, "initialize", RUBY_METHOD_FUNC(initialize), 6);
103
+ rb_define_private_method(cPointerEvent, "initialize", RUBY_METHOD_FUNC(initialize), -1);
147
104
  rb_define_private_method(cPointerEvent, "initialize_copy", RUBY_METHOD_FUNC(initialize_copy), 1);
148
- rb_define_method(cPointerEvent, "type", RUBY_METHOD_FUNC(get_type), 0);
149
- rb_define_method(cPointerEvent, "pointer_type", RUBY_METHOD_FUNC(get_pointer_type), 0);
150
105
  rb_define_method(cPointerEvent, "size", RUBY_METHOD_FUNC(get_size), 0);
151
- rb_define_method(cPointerEvent, "modifiers", RUBY_METHOD_FUNC(get_modifiers), 0);
152
- rb_define_method(cPointerEvent, "count", RUBY_METHOD_FUNC(get_count), 0);
153
- cPointerEvent.define_method("drag?", is_drag);
154
- cPointerEvent.define_method("capture?", is_capture);
155
- rb_define_method(cPointerEvent, "x", RUBY_METHOD_FUNC(get_x), 0);
156
- rb_define_method(cPointerEvent, "y", RUBY_METHOD_FUNC(get_y), 0);
157
- rb_define_method(cPointerEvent, "position", RUBY_METHOD_FUNC(get_position), -1);
158
- cPointerEvent.define_method("[]", get_at);
159
- cPointerEvent.define_const("TYPE_NONE", Reflex::PointerEvent::NONE);
160
- cPointerEvent.define_const("TYPE_DOWN", Reflex::PointerEvent::DOWN);
161
- cPointerEvent.define_const("TYPE_UP", Reflex::PointerEvent::UP);
162
- cPointerEvent.define_const("TYPE_MOVE", Reflex::PointerEvent::MOVE);
163
- cPointerEvent.define_const("POINTER_NONE", Reflex::POINTER_NONE);
164
- cPointerEvent.define_const("POINTER_MOUSE_LEFT", Reflex::POINTER_MOUSE_LEFT);
165
- cPointerEvent.define_const("POINTER_MOUSE_RIGHT", Reflex::POINTER_MOUSE_RIGHT);
166
- cPointerEvent.define_const("POINTER_MOUSE_MIDDLE", Reflex::POINTER_MOUSE_MIDDLE);
167
- cPointerEvent.define_const("POINTER_TOUCH", Reflex::POINTER_TOUCH);
168
- cPointerEvent.define_const("POINTER_PEN", Reflex::POINTER_PEN);
106
+ cPointerEvent.define_method("empty?", is_empty);
107
+ cPointerEvent.define_method("captured?", is_captured);
108
+ cPointerEvent.define_method("[]", get_at);
109
+ rb_define_method(cPointerEvent, "each", RUBY_METHOD_FUNC(each), 0);
169
110
  }
170
111
 
171
112
 
@@ -81,6 +81,13 @@ VALUE each_tag(VALUE self)
81
81
  return ret;
82
82
  }
83
83
 
84
+ static
85
+ VALUE is_empty(VALUE self)
86
+ {
87
+ CHECK;
88
+ return value(C_THIS->empty());
89
+ }
90
+
84
91
  static
85
92
  VALUE contains(VALUE self, VALUE selector)
86
93
  {
@@ -113,6 +120,7 @@ Init_selector ()
113
120
  rb_define_method(cSelector, "clear_tags", RUBY_METHOD_FUNC(clear_tags), 0);
114
121
  cSelector.define_method("tag?", has_tag);
115
122
  rb_define_method(cSelector, "each_tag", RUBY_METHOD_FUNC(each_tag), 0);
123
+ cSelector.define_method("empty?", is_empty);
116
124
  rb_define_method(cSelector, "contains", RUBY_METHOD_FUNC(contains), 1);
117
125
  cSelector.define_method("==", equal);
118
126
  }
@@ -120,6 +120,48 @@ VALUE update_layout(VALUE self)
120
120
  return self;
121
121
  }
122
122
 
123
+ static
124
+ VALUE from_parent(VALUE self, VALUE point)
125
+ {
126
+ CHECK;
127
+ return value(THIS->from_parent(to<Rays::Point>(point)));
128
+ }
129
+
130
+ static
131
+ VALUE to_parent(VALUE self, VALUE point)
132
+ {
133
+ CHECK;
134
+ return value(THIS->to_parent(to<Rays::Point>(point)));
135
+ }
136
+
137
+ static
138
+ VALUE from_window(VALUE self, VALUE point)
139
+ {
140
+ CHECK;
141
+ return value(THIS->from_window(to<Rays::Point>(point)));
142
+ }
143
+
144
+ static
145
+ VALUE to_window(VALUE self, VALUE point)
146
+ {
147
+ CHECK;
148
+ return value(THIS->to_window(to<Rays::Point>(point)));
149
+ }
150
+
151
+ static
152
+ VALUE from_screen(VALUE self, VALUE point)
153
+ {
154
+ CHECK;
155
+ return value(THIS->from_screen(to<Rays::Point>(point)));
156
+ }
157
+
158
+ static
159
+ VALUE to_screen(VALUE self, VALUE point)
160
+ {
161
+ CHECK;
162
+ return value(THIS->to_screen(to<Rays::Point>(point)));
163
+ }
164
+
123
165
  static
124
166
  VALUE add_child(VALUE self, VALUE child)
125
167
  {
@@ -929,6 +971,13 @@ VALUE on_pointer_move(VALUE self, VALUE event)
929
971
  CALL(on_pointer_move(to<Reflex::PointerEvent*>(event)));
930
972
  }
931
973
 
974
+ static
975
+ VALUE on_pointer_cancel(VALUE self, VALUE event)
976
+ {
977
+ CHECK;
978
+ CALL(on_pointer_cancel(to<Reflex::PointerEvent*>(event)));
979
+ }
980
+
932
981
  static
933
982
  VALUE on_wheel(VALUE self, VALUE event)
934
983
  {
@@ -991,6 +1040,13 @@ Init_view ()
991
1040
  rb_define_private_method(cView, "start_timer", RUBY_METHOD_FUNC(start_timer), -1);
992
1041
  rb_define_method(cView, "update_layout", RUBY_METHOD_FUNC(update_layout), 0);
993
1042
 
1043
+ rb_define_method(cView, "from_parent", RUBY_METHOD_FUNC(from_parent), 1);
1044
+ rb_define_method(cView, "to_parent", RUBY_METHOD_FUNC(to_parent), 1);
1045
+ rb_define_method(cView, "from_window", RUBY_METHOD_FUNC(from_window), 1);
1046
+ rb_define_method(cView, "to_window", RUBY_METHOD_FUNC(to_window), 1);
1047
+ rb_define_method(cView, "from_screen", RUBY_METHOD_FUNC(from_screen), 1);
1048
+ rb_define_method(cView, "to_screen", RUBY_METHOD_FUNC(to_screen), 1);
1049
+
994
1050
  rb_define_method(cView, "add_child", RUBY_METHOD_FUNC(add_child), 1);
995
1051
  rb_define_method(cView, "remove_child", RUBY_METHOD_FUNC(remove_child), 1);
996
1052
  rb_define_method(cView, "clear_children", RUBY_METHOD_FUNC(clear_children), 0);
@@ -1093,6 +1149,7 @@ Init_view ()
1093
1149
  rb_define_method(cView, "on_pointer_down", RUBY_METHOD_FUNC(on_pointer_down), 1);
1094
1150
  rb_define_method(cView, "on_pointer_up", RUBY_METHOD_FUNC(on_pointer_up), 1);
1095
1151
  rb_define_method(cView, "on_pointer_move", RUBY_METHOD_FUNC(on_pointer_move), 1);
1152
+ rb_define_method(cView, "on_pointer_cancel", RUBY_METHOD_FUNC(on_pointer_cancel), 1);
1096
1153
  rb_define_method(cView, "on_wheel", RUBY_METHOD_FUNC(on_wheel), 1);
1097
1154
  rb_define_method(cView, "on_capture", RUBY_METHOD_FUNC(on_capture), 1);
1098
1155
  rb_define_method(cView, "on_timer", RUBY_METHOD_FUNC(on_timer), 1);
@@ -54,6 +54,20 @@ VALUE redraw(VALUE self)
54
54
  return self;
55
55
  }
56
56
 
57
+ static
58
+ VALUE from_screen(VALUE self, VALUE point)
59
+ {
60
+ CHECK;
61
+ return value(THIS->from_screen(to<Rays::Point>(point)));
62
+ }
63
+
64
+ static
65
+ VALUE to_screen(VALUE self, VALUE point)
66
+ {
67
+ CHECK;
68
+ return value(THIS->to_screen(to<Rays::Point>(point)));
69
+ }
70
+
57
71
  static
58
72
  VALUE set_title(VALUE self, VALUE title)
59
73
  {
@@ -229,6 +243,13 @@ VALUE on_pointer_move(VALUE self, VALUE event)
229
243
  CALL(on_pointer_move(to<Reflex::PointerEvent*>(event)));
230
244
  }
231
245
 
246
+ static
247
+ VALUE on_pointer_cancel(VALUE self, VALUE event)
248
+ {
249
+ CHECK;
250
+ CALL(on_pointer_cancel(to<Reflex::PointerEvent*>(event)));
251
+ }
252
+
232
253
  static
233
254
  VALUE on_wheel(VALUE self, VALUE event)
234
255
  {
@@ -250,6 +271,8 @@ Init_window ()
250
271
  rb_define_method(cWindow, "hide", RUBY_METHOD_FUNC(hide), 0);
251
272
  rb_define_method(cWindow, "close", RUBY_METHOD_FUNC(close), 0);
252
273
  rb_define_method(cWindow, "redraw", RUBY_METHOD_FUNC(redraw), 0);
274
+ rb_define_method(cWindow, "from_screen", RUBY_METHOD_FUNC(from_screen), 1);
275
+ rb_define_method(cWindow, "to_screen", RUBY_METHOD_FUNC(to_screen), 1);
253
276
  rb_define_method(cWindow, "title=", RUBY_METHOD_FUNC(set_title), 1);
254
277
  rb_define_method(cWindow, "title", RUBY_METHOD_FUNC(get_title), 0);
255
278
  rb_define_method(cWindow, "frame=", RUBY_METHOD_FUNC(set_frame), -1);
@@ -274,6 +297,7 @@ Init_window ()
274
297
  rb_define_method(cWindow, "on_pointer_down", RUBY_METHOD_FUNC(on_pointer_down), 1);
275
298
  rb_define_method(cWindow, "on_pointer_up", RUBY_METHOD_FUNC(on_pointer_up), 1);
276
299
  rb_define_method(cWindow, "on_pointer_move", RUBY_METHOD_FUNC(on_pointer_move), 1);
300
+ rb_define_method(cWindow, "on_pointer_cancel", RUBY_METHOD_FUNC(on_pointer_cancel), 1);
277
301
  rb_define_method(cWindow, "on_wheel", RUBY_METHOD_FUNC(on_wheel), 1);
278
302
  }
279
303
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.22
1
+ 0.1.23
data/ext/reflex/event.cpp CHANGED
@@ -43,6 +43,14 @@ RUCY_DEF0(is_blocked)
43
43
  }
44
44
  RUCY_END
45
45
 
46
+ static
47
+ RUCY_DEF0(get_time)
48
+ {
49
+ CHECK;
50
+ return value(THIS->time());
51
+ }
52
+ RUCY_END
53
+
46
54
 
47
55
  static Class cEvent;
48
56
 
@@ -54,8 +62,9 @@ Init_event ()
54
62
  cEvent = mReflex.define_class("Event");
55
63
  cEvent.define_alloc_func(alloc);
56
64
  cEvent.define_private_method("initialize_copy", initialize_copy);
57
- cEvent.define_method("block", block);
58
- cEvent.define_method("block?", is_blocked);
65
+ cEvent.define_method("block", block);
66
+ cEvent.define_method("blocked?", is_blocked);
67
+ cEvent.define_method("time", get_time);
59
68
  }
60
69
 
61
70
 
@@ -281,10 +281,10 @@ RUCY_DEF0(get_repeat)
281
281
  RUCY_END
282
282
 
283
283
  static
284
- RUCY_DEF0(is_capture)
284
+ RUCY_DEF0(is_captured)
285
285
  {
286
286
  CHECK;
287
- return value(THIS->capture);
287
+ return value(THIS->captured);
288
288
  }
289
289
  RUCY_END
290
290
 
@@ -306,7 +306,7 @@ Init_key_event ()
306
306
  cKeyEvent.define_method("code", get_code);
307
307
  cKeyEvent.define_method("modifiers", get_modifiers);
308
308
  cKeyEvent.define_method("repeat", get_repeat);
309
- cKeyEvent.define_method("capture?", is_capture);
309
+ cKeyEvent.define_method("captured?", is_captured);
310
310
  cKeyEvent.define_const("TYPE_NONE", Reflex::KeyEvent::NONE);
311
311
  cKeyEvent.define_const("TYPE_DOWN", Reflex::KeyEvent::DOWN);
312
312
  cKeyEvent.define_const("TYPE_UP", Reflex::KeyEvent::UP);
@@ -17,6 +17,7 @@ void Init_frame_event ();
17
17
  void Init_scroll_event ();
18
18
  void Init_focus_event ();
19
19
  void Init_key_event ();
20
+ void Init_pointer ();
20
21
  void Init_pointer_event ();
21
22
  void Init_wheel_event ();
22
23
  void Init_capture_event ();
@@ -63,6 +64,7 @@ extern "C" void
63
64
  Init_scroll_event();
64
65
  Init_focus_event();
65
66
  Init_key_event();
67
+ Init_pointer();
66
68
  Init_pointer_event();
67
69
  Init_wheel_event();
68
70
  Init_capture_event();