reflexion 0.1.6 → 0.1.7

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 (225) hide show
  1. checksums.yaml +7 -0
  2. data/.doc/ext/reflex/application.cpp +54 -39
  3. data/.doc/ext/reflex/capture_event.cpp +87 -0
  4. data/.doc/ext/reflex/draw_event.cpp +103 -0
  5. data/.doc/ext/reflex/event.cpp +73 -0
  6. data/.doc/ext/reflex/focus_event.cpp +98 -0
  7. data/.doc/ext/reflex/frame_event.cpp +133 -0
  8. data/.doc/ext/reflex/image_view.cpp +74 -0
  9. data/.doc/ext/reflex/key_event.cpp +124 -0
  10. data/.doc/ext/reflex/native.cpp +45 -6
  11. data/.doc/ext/reflex/pointer_event.cpp +181 -0
  12. data/.doc/ext/reflex/reflex.cpp +17 -41
  13. data/.doc/ext/reflex/scroll_event.cpp +141 -0
  14. data/.doc/ext/reflex/selector.cpp +135 -0
  15. data/.doc/ext/reflex/style.cpp +253 -0
  16. data/.doc/ext/reflex/style_length.cpp +133 -0
  17. data/.doc/ext/reflex/style_length2.cpp +149 -0
  18. data/.doc/ext/reflex/style_length4.cpp +192 -0
  19. data/.doc/ext/reflex/update_event.cpp +77 -0
  20. data/.doc/ext/reflex/view.cpp +408 -88
  21. data/.doc/ext/reflex/wheel_event.cpp +146 -0
  22. data/.doc/ext/reflex/window.cpp +95 -92
  23. data/Rakefile +6 -5
  24. data/VERSION +1 -1
  25. data/ext/reflex/application.cpp +67 -49
  26. data/ext/reflex/capture_event.cpp +92 -0
  27. data/ext/reflex/draw_event.cpp +110 -0
  28. data/ext/reflex/event.cpp +77 -0
  29. data/ext/reflex/extconf.rb +18 -68
  30. data/ext/reflex/focus_event.cpp +104 -0
  31. data/ext/reflex/frame_event.cpp +143 -0
  32. data/ext/reflex/image_view.cpp +77 -0
  33. data/ext/reflex/key_event.cpp +133 -0
  34. data/ext/reflex/native.cpp +45 -6
  35. data/ext/reflex/pointer_event.cpp +195 -0
  36. data/ext/reflex/reflex.cpp +21 -47
  37. data/ext/reflex/scroll_event.cpp +152 -0
  38. data/ext/reflex/selector.cpp +144 -0
  39. data/ext/reflex/style.cpp +277 -0
  40. data/ext/reflex/style_length.cpp +140 -0
  41. data/ext/reflex/style_length2.cpp +157 -0
  42. data/ext/reflex/style_length4.cpp +204 -0
  43. data/ext/reflex/update_event.cpp +81 -0
  44. data/ext/reflex/view.cpp +469 -114
  45. data/ext/reflex/wheel_event.cpp +158 -0
  46. data/ext/reflex/window.cpp +130 -123
  47. data/include/reflex/application.h +12 -7
  48. data/include/reflex/defs.h +13 -89
  49. data/include/reflex/event.h +260 -0
  50. data/include/reflex/exception.h +17 -11
  51. data/include/reflex/image_view.h +45 -0
  52. data/include/reflex/reflex.h +2 -6
  53. data/include/reflex/ruby/application.h +40 -13
  54. data/include/reflex/ruby/event.h +72 -0
  55. data/include/reflex/ruby/image_view.h +25 -0
  56. data/include/reflex/ruby/selector.h +27 -0
  57. data/include/reflex/ruby/style.h +27 -0
  58. data/include/reflex/ruby/style_length.h +37 -0
  59. data/include/reflex/ruby/view.h +193 -38
  60. data/include/reflex/ruby/window.h +123 -39
  61. data/include/reflex/ruby.h +3 -2
  62. data/include/reflex/selector.h +64 -0
  63. data/include/reflex/style.h +144 -0
  64. data/include/reflex/style_length.h +147 -0
  65. data/include/reflex/view.h +182 -19
  66. data/include/reflex/window.h +35 -19
  67. data/include/reflex.h +7 -0
  68. data/lib/reflex/application.rb +14 -5
  69. data/lib/reflex/arc_shape.rb +20 -0
  70. data/lib/reflex/button.rb +75 -0
  71. data/lib/reflex/capture_event.rb +37 -0
  72. data/lib/reflex/color.rb +13 -0
  73. data/lib/reflex/color_space.rb +13 -0
  74. data/lib/reflex/draw_event.rb +19 -0
  75. data/lib/reflex/ellipse_shape.rb +20 -0
  76. data/lib/reflex/ext.rb +1 -1
  77. data/lib/reflex/flags.rb +18 -0
  78. data/lib/reflex/focus_event.rb +38 -0
  79. data/lib/reflex/font.rb +13 -0
  80. data/lib/reflex/frame_event.rb +42 -0
  81. data/lib/reflex/helper.rb +87 -30
  82. data/lib/reflex/image_view.rb +25 -0
  83. data/lib/reflex/key_event.rb +38 -0
  84. data/lib/reflex/line_shape.rb +20 -0
  85. data/lib/reflex/list_view.rb +15 -0
  86. data/lib/reflex/model.rb +149 -0
  87. data/lib/reflex/model_owner.rb +57 -0
  88. data/lib/reflex/model_view.rb +22 -0
  89. data/lib/reflex/module.rb +11 -7
  90. data/lib/reflex/pointer_event.rb +85 -0
  91. data/lib/reflex/rect_shape.rb +20 -0
  92. data/lib/reflex/reflex.rb +13 -2
  93. data/lib/reflex/scroll_event.rb +19 -0
  94. data/lib/reflex/selector.rb +31 -0
  95. data/lib/reflex/shader.rb +13 -0
  96. data/lib/reflex/shape.rb +34 -0
  97. data/lib/reflex/style.rb +55 -0
  98. data/lib/reflex/style_length.rb +30 -0
  99. data/lib/reflex/style_length2.rb +34 -0
  100. data/lib/reflex/style_length4.rb +38 -0
  101. data/lib/reflex/text_view.rb +55 -0
  102. data/lib/reflex/update_event.rb +19 -0
  103. data/lib/reflex/view.rb +38 -4
  104. data/lib/reflex/wheel_event.rb +19 -0
  105. data/lib/reflex/window.rb +7 -5
  106. data/lib/reflex.rb +38 -1
  107. data/lib/reflexion/include.rb +5 -0
  108. data/lib/reflexion.rb +100 -0
  109. data/reflex.gemspec +3 -4
  110. data/samples/app.rb +13 -0
  111. data/samples/bats.rb +91 -0
  112. data/samples/checker.rb +36 -0
  113. data/{examples/ruby/shapes.rb → samples/fans.rb} +12 -16
  114. data/samples/fps.rb +46 -0
  115. data/samples/grid.rb +60 -0
  116. data/{examples/ruby → samples}/hello.rb +14 -16
  117. data/samples/image.rb +44 -0
  118. data/samples/ios/hello/hello/Images.xcassets/AppIcon.appiconset/Contents.json +53 -0
  119. data/samples/ios/hello/hello/Images.xcassets/LaunchImage.launchimage/Contents.json +51 -0
  120. data/samples/ios/hello/hello/en.lproj/InfoPlist.strings +2 -0
  121. data/samples/ios/hello/hello/hello-Info.plist +47 -0
  122. data/samples/ios/hello/hello/hello-Prefix.pch +10 -0
  123. data/samples/ios/hello/hello/main.cpp +79 -0
  124. data/samples/ios/hello/hello.xcodeproj/project.pbxproj +725 -0
  125. data/{examples/ruby → samples}/key.rb +11 -14
  126. data/samples/layout.rb +89 -0
  127. data/samples/model.rb +86 -0
  128. data/samples/osx/hello/hello/Images.xcassets/AppIcon.appiconset/Contents.json +58 -0
  129. data/samples/osx/hello/hello/en.lproj/Credits.rtf +29 -0
  130. data/samples/osx/hello/hello/en.lproj/InfoPlist.strings +2 -0
  131. data/samples/osx/hello/hello/hello-Info.plist +32 -0
  132. data/samples/osx/hello/hello/hello-Prefix.pch +3 -0
  133. data/samples/osx/hello/hello/main.cpp +79 -0
  134. data/samples/osx/hello/hello.xcodeproj/project.pbxproj +725 -0
  135. data/samples/reflexion/hello.rb +24 -0
  136. data/samples/reflexion/paint.rb +40 -0
  137. data/samples/reflexion/pulse.rb +34 -0
  138. data/samples/repl.rb +69 -0
  139. data/samples/shader.rb +41 -0
  140. data/samples/shapes.rb +30 -0
  141. data/{examples/ruby → samples}/text.rb +7 -8
  142. data/samples/tree.rb +71 -0
  143. data/samples/views.rb +41 -0
  144. data/samples/visuals.rb +22 -0
  145. data/src/event.cpp +225 -0
  146. data/src/exception.cpp +24 -15
  147. data/src/image_view.cpp +70 -0
  148. data/src/ios/app_delegate.h +17 -0
  149. data/src/ios/app_delegate.mm +120 -0
  150. data/src/ios/application.mm +116 -0
  151. data/src/{cocoa/applicationdata.h → ios/application_data.h} +6 -6
  152. data/src/ios/event.h +26 -0
  153. data/src/ios/event.mm +31 -0
  154. data/src/ios/native_window.h +37 -0
  155. data/src/ios/native_window.mm +220 -0
  156. data/src/ios/opengl_view.h +13 -0
  157. data/src/ios/opengl_view.mm +131 -0
  158. data/src/{cocoa → ios}/reflex.mm +8 -12
  159. data/src/ios/window.mm +303 -0
  160. data/src/ios/window_data.h +75 -0
  161. data/src/osx/app_delegate.h +17 -0
  162. data/src/{cocoa/cocoaapplication.mm → osx/app_delegate.mm} +90 -48
  163. data/src/osx/application.mm +132 -0
  164. data/src/osx/application_data.h +45 -0
  165. data/src/osx/event.h +42 -0
  166. data/src/osx/event.mm +112 -0
  167. data/src/osx/native_window.h +26 -0
  168. data/src/osx/native_window.mm +322 -0
  169. data/src/{cocoa/openglview.h → osx/opengl_view.h} +0 -4
  170. data/src/{cocoa/openglview.mm → osx/opengl_view.mm} +66 -23
  171. data/src/osx/reflex.mm +50 -0
  172. data/src/osx/window.mm +308 -0
  173. data/src/osx/window_data.h +75 -0
  174. data/src/selector.cpp +121 -0
  175. data/src/style.cpp +576 -0
  176. data/src/style_length.cpp +341 -0
  177. data/src/view.cpp +1228 -129
  178. data/src/win32/application.cpp +1 -1
  179. data/src/window.cpp +54 -26
  180. data/test/helper.rb +8 -4
  181. data/test/test_capture_event.rb +41 -0
  182. data/test/test_event.rb +20 -0
  183. data/test/test_has_frame.rb +45 -0
  184. data/test/test_model.rb +9 -0
  185. data/test/test_model_owner.rb +9 -0
  186. data/test/test_selector.rb +75 -0
  187. data/test/test_style.rb +70 -0
  188. data/test/test_style_length.rb +38 -0
  189. data/test/test_style_length2.rb +50 -0
  190. data/test/test_style_length4.rb +56 -0
  191. data/test/test_view.rb +97 -23
  192. data/test/test_window.rb +54 -46
  193. metadata +205 -84
  194. data/.doc/ext/reflex/defs.cpp +0 -8
  195. data/.doc/ext/reflex/key.cpp +0 -122
  196. data/.doc/ext/reflex/points.cpp +0 -151
  197. data/.gitignore +0 -14
  198. data/ChangeLog +0 -8
  199. data/examples/hello/.gitignore +0 -2
  200. data/examples/hello/Rakefile +0 -41
  201. data/examples/hello/main.cpp +0 -18
  202. data/examples/ruby/app.rb +0 -13
  203. data/examples/ruby/checker.rb +0 -41
  204. data/examples/ruby/fps.rb +0 -49
  205. data/examples/ruby/grid.rb +0 -65
  206. data/examples/ruby/views.rb +0 -88
  207. data/examples/ruby/visuals.rb +0 -27
  208. data/ext/reflex/defs.cpp +0 -8
  209. data/ext/reflex/key.cpp +0 -129
  210. data/ext/reflex/points.cpp +0 -161
  211. data/include/reflex/ruby/key.h +0 -39
  212. data/include/reflex/ruby/points.h +0 -39
  213. data/lib/reflex/visuals/string.rb +0 -53
  214. data/src/cocoa/application.mm +0 -101
  215. data/src/cocoa/cocoaapplication.h +0 -21
  216. data/src/cocoa/cocoawindow.h +0 -46
  217. data/src/cocoa/cocoawindow.mm +0 -230
  218. data/src/cocoa/defs.h +0 -34
  219. data/src/cocoa/defs.mm +0 -87
  220. data/src/cocoa/window.mm +0 -148
  221. data/src/cocoa/windowdata.h +0 -56
  222. data/src/defs.cpp +0 -47
  223. data/src/helper.h +0 -12
  224. data/src/reflex.cpp +0 -43
  225. /data/{README → README.md} +0 -0
@@ -0,0 +1,158 @@
1
+ #include "reflex/ruby/event.h"
2
+
3
+
4
+ #include <rucy.h>
5
+ #include "rays/ruby/point.h"
6
+ #include "defs.h"
7
+
8
+
9
+ using namespace Rucy;
10
+
11
+ using Reflex::coord;
12
+
13
+
14
+ static Class cWheelEvent;
15
+
16
+ RUCY_DEFINE_VALUE_FROM_TO(Reflex::WheelEvent, cWheelEvent)
17
+
18
+ #define THIS to<Reflex::WheelEvent*>(self)
19
+
20
+ #define CHECK RUCY_CHECK_OBJ(Reflex::WheelEvent, cWheelEvent, self)
21
+
22
+
23
+ static
24
+ RUCY_DEF_ALLOC(alloc, klass)
25
+ {
26
+ return new_type<Reflex::WheelEvent>(klass);
27
+ }
28
+ RUCY_END
29
+
30
+ static
31
+ RUCY_DEFN(initialize)
32
+ {
33
+ CHECK;
34
+ check_arg_count(__FILE__, __LINE__, "WheelEvent#initialize", argc, 0, 1, 2, 3);
35
+
36
+ THIS->dx = (argc >= 1) ? to<coord>(argv[0]) : 0;
37
+ THIS->dy = (argc >= 2) ? to<coord>(argv[1]) : 0;
38
+ THIS->dz = (argc >= 3) ? to<coord>(argv[2]) : 0;
39
+
40
+ return rb_call_super(0, NULL);
41
+ }
42
+ RUCY_END
43
+
44
+ static
45
+ RUCY_DEF1(initialize_copy, obj)
46
+ {
47
+ CHECK;
48
+ *THIS = to<Reflex::WheelEvent&>(obj);
49
+ return self;
50
+ }
51
+ RUCY_END
52
+
53
+ static
54
+ RUCY_DEF0(dx)
55
+ {
56
+ CHECK;
57
+ return value(THIS->dx);
58
+ }
59
+ RUCY_END
60
+
61
+ static
62
+ RUCY_DEF0(dy)
63
+ {
64
+ CHECK;
65
+ return value(THIS->dy);
66
+ }
67
+ RUCY_END
68
+
69
+ static
70
+ RUCY_DEF0(dz)
71
+ {
72
+ CHECK;
73
+ return value(THIS->dz);
74
+ }
75
+ RUCY_END
76
+
77
+ static
78
+ RUCY_DEF0(x)
79
+ {
80
+ CHECK;
81
+ return value(THIS->x);
82
+ }
83
+ RUCY_END
84
+
85
+ static
86
+ RUCY_DEF0(y)
87
+ {
88
+ CHECK;
89
+ return value(THIS->y);
90
+ }
91
+ RUCY_END
92
+
93
+ static
94
+ RUCY_DEF0(z)
95
+ {
96
+ CHECK;
97
+ return value(THIS->z);
98
+ }
99
+ RUCY_END
100
+
101
+ static
102
+ RUCY_DEF0(modifiers)
103
+ {
104
+ CHECK;
105
+ return value(THIS->modifiers);
106
+ }
107
+ RUCY_END
108
+
109
+ static
110
+ RUCY_DEF0(delta)
111
+ {
112
+ CHECK;
113
+ return value(Rays::Point(THIS->dx, THIS->dy, THIS->dz));
114
+ }
115
+ RUCY_END
116
+
117
+ static
118
+ RUCY_DEF0(position)
119
+ {
120
+ CHECK;
121
+ return value(Rays::Point(THIS->x, THIS->y, THIS->z));
122
+ }
123
+ RUCY_END
124
+
125
+
126
+ void
127
+ Init_wheel_event ()
128
+ {
129
+ Module mReflex = define_module("Reflex");
130
+
131
+ cWheelEvent = mReflex.define_class("WheelEvent", Reflex::event_class());
132
+ cWheelEvent.define_alloc_func(alloc);
133
+ cWheelEvent.define_private_method("initialize", initialize);
134
+ cWheelEvent.define_private_method("initialize_copy", initialize_copy);
135
+ cWheelEvent.define_method("dx", dx);
136
+ cWheelEvent.define_method("dy", dy);
137
+ cWheelEvent.define_method("dz", dz);
138
+ cWheelEvent.define_method("x", x);
139
+ cWheelEvent.define_method("y", y);
140
+ cWheelEvent.define_method("z", z);
141
+ cWheelEvent.define_method("modifiers", modifiers);
142
+ cWheelEvent.define_method("delta", delta);
143
+ cWheelEvent.define_method("position", position);
144
+ }
145
+
146
+
147
+ namespace Reflex
148
+ {
149
+
150
+
151
+ Class
152
+ wheel_event_class ()
153
+ {
154
+ return cWheelEvent;
155
+ }
156
+
157
+
158
+ }// Reflex
@@ -2,9 +2,9 @@
2
2
 
3
3
 
4
4
  #include <rucy.h>
5
+ #include <rays/ruby/bounds.h>
5
6
  #include <rays/ruby/painter.h>
6
- #include <reflex/ruby/view.h>
7
- #include "defs.h"
7
+ #include "reflex/ruby/view.h"
8
8
 
9
9
 
10
10
  using namespace Rucy;
@@ -14,233 +14,221 @@ using Reflex::coord;
14
14
 
15
15
  static Class cWindow;
16
16
 
17
-
18
- namespace Reflex
19
- {
20
-
21
-
22
- Class
23
- window_class ()
24
- {
25
- return cWindow;
26
- }
27
-
28
-
29
- }// Reflex
30
-
31
-
32
- typedef Reflex::RubyWindow<Reflex::Window> RubyWindow;
33
-
17
+ RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(Reflex::Window, cWindow)
34
18
 
35
19
  #define THIS to<Reflex::Window*>(self)
36
20
 
37
- #define CHECK RUCY_CHECK_OBJECT(self, Reflex::Window, cWindow)
21
+ #define CHECK RUCY_CHECK_OBJECT(Reflex::Window, cWindow, self)
38
22
 
39
- #define CALL(fun) RUCY_WRAPPER_CALL(RubyWindow, THIS, fun)
23
+ #define CALL(fun) RUCY_WRAPPER_CALL(Reflex::Window, THIS, fun)
40
24
 
41
25
 
42
26
  static
43
- RUBY_DEF_ALLOC(alloc, klass)
27
+ RUCY_DEF_ALLOC(alloc, klass)
44
28
  {
45
- return value(new RubyWindow, klass);
29
+ return value(new Reflex::RubyWindow<Reflex::Window>, klass);
46
30
  }
47
- RUBY_END
31
+ RUCY_END
48
32
 
49
33
  static
50
- RUBY_DEF0(close)
34
+ RUCY_DEF0(close)
51
35
  {
52
36
  CHECK;
53
- if (!CALL(close()))
54
- system_error("failed to close window.");
37
+ CALL(close());
55
38
  return self;
56
39
  }
57
- RUBY_END
40
+ RUCY_END
58
41
 
59
42
  static
60
- RUBY_DEF0(show)
43
+ RUCY_DEF0(show)
61
44
  {
62
45
  CHECK;
63
- if (!CALL(show()))
64
- system_error("failed to show window.");
46
+ CALL(show());
65
47
  return self;
66
48
  }
67
- RUBY_END
49
+ RUCY_END
68
50
 
69
51
  static
70
- RUBY_DEF0(hide)
52
+ RUCY_DEF0(hide)
71
53
  {
72
54
  CHECK;
73
- if (!CALL(hide()))
74
- system_error("failed to hide window.");
55
+ CALL(hide());
75
56
  return self;
76
57
  }
77
- RUBY_END
58
+ RUCY_END
78
59
 
79
60
  static
80
- RUBY_DEF0(redraw)
61
+ RUCY_DEF0(redraw)
81
62
  {
82
63
  CHECK;
83
- if (!THIS->redraw())
84
- system_error("failed to redraw window.");
64
+ THIS->redraw();
85
65
  return self;
86
66
  }
87
- RUBY_END
67
+ RUCY_END
88
68
 
89
69
  static
90
- RUBY_DEF1(set_title, title)
70
+ RUCY_DEF1(set_title, title)
91
71
  {
92
72
  CHECK;
93
- if (!THIS->set_title(title.c_str()))
94
- system_error("failed to set title of window.");
73
+ THIS->set_title(title.c_str());
95
74
  return title;
96
75
  }
97
- RUBY_END
76
+ RUCY_END
98
77
 
99
78
  static
100
- RUBY_DEF0(get_title)
79
+ RUCY_DEF0(get_title)
101
80
  {
102
81
  CHECK;
103
- const char* s = THIS->title();
104
- if (!s) system_error("failed to get title of window.");
105
- return value(s);
82
+ return value(THIS->title());
106
83
  }
107
- RUBY_END
84
+ RUCY_END
108
85
 
109
86
  static
110
- RUBY_DEF4(set_bounds, x, y, width, height)
87
+ RUCY_DEF1(set_frame, arg)
111
88
  {
112
89
  CHECK;
113
- if (!THIS->set_bounds(
114
- to<coord>(x), to<coord>(y), to<coord>(width), to<coord>(height)))
115
- {
116
- system_error("failed to set bounds of window.");
117
- }
118
- return value(THIS->bounds());
90
+ THIS->set_frame(to<Rays::Bounds>(arg));
119
91
  }
120
- RUBY_END
92
+ RUCY_END
121
93
 
122
94
  static
123
- RUBY_DEF0(get_bounds)
95
+ RUCY_DEF0(get_frame)
124
96
  {
125
97
  CHECK;
126
- return value(THIS->bounds());
98
+ return value(THIS->frame());
127
99
  }
128
- RUBY_END
100
+ RUCY_END
129
101
 
130
102
  static
131
- RUBY_DEF0(hidden)
103
+ RUCY_DEF0(hidden)
132
104
  {
133
105
  CHECK;
134
106
  return value(THIS->hidden());
135
107
  }
136
- RUBY_END
108
+ RUCY_END
137
109
 
138
110
  static
139
- RUBY_DEF0(root)
111
+ RUCY_DEF0(root)
140
112
  {
141
113
  CHECK;
142
114
  return value(THIS->root());
143
115
  }
144
- RUBY_END
116
+ RUCY_END
117
+
118
+ static
119
+ RUCY_DEF0(focus)
120
+ {
121
+ CHECK;
122
+ return value(THIS->focus());
123
+ }
124
+ RUCY_END
145
125
 
146
126
  static
147
- RUBY_DEF0(painter)
127
+ RUCY_DEF0(painter)
148
128
  {
149
129
  CHECK;
150
130
  return value(THIS->painter());
151
131
  }
152
- RUBY_END
132
+ RUCY_END
153
133
 
154
134
  static
155
- RUBY_DEF1(update, dt)
135
+ RUCY_DEF1(on_update, event)
156
136
  {
157
137
  CHECK;
158
- CALL(update(to<float>(dt)));
159
- return self;
138
+ CALL(on_update(to<Reflex::UpdateEvent*>(event)));
160
139
  }
161
- RUBY_END
140
+ RUCY_END
162
141
 
163
142
  static
164
- RUBY_DEF0(draw)
143
+ RUCY_DEF1(on_draw, event)
165
144
  {
166
145
  CHECK;
167
- CALL(draw());
168
- return self;
146
+ CALL(on_draw(to<Reflex::DrawEvent*>(event)));
169
147
  }
170
- RUBY_END
148
+ RUCY_END
171
149
 
172
150
  static
173
- RUBY_DEF2(moved, x, y)
151
+ RUCY_DEF1(on_move, event)
174
152
  {
175
153
  CHECK;
176
- CALL(moved(to<coord>(x), to<coord>(y)));
177
- return self;
154
+ CALL(on_move(to<Reflex::FrameEvent*>(event)));
178
155
  }
179
- RUBY_END
156
+ RUCY_END
180
157
 
181
158
  static
182
- RUBY_DEF2(resized, width, height)
159
+ RUCY_DEF1(on_resize, event)
183
160
  {
184
161
  CHECK;
185
- CALL(resized(to<coord>(width), to<coord>(height)));
186
- return self;
162
+ CALL(on_resize(to<Reflex::FrameEvent*>(event)));
187
163
  }
188
- RUBY_END
164
+ RUCY_END
189
165
 
190
166
  static
191
- RUBY_DEF1(key_down, key)
167
+ RUCY_DEF1(on_key, event)
192
168
  {
193
169
  CHECK;
194
- Reflex::Key* k = to<Reflex::Key*>(key);
195
- if (!k) argument_error();
196
- CALL(key_down(*k));
197
- return self;
170
+ CALL(on_key(to<Reflex::KeyEvent*>(event)));
198
171
  }
199
- RUBY_END
172
+ RUCY_END
200
173
 
201
174
  static
202
- RUBY_DEF1(key_up, key)
175
+ RUCY_DEF1(on_key_down, event)
203
176
  {
204
177
  CHECK;
205
- Reflex::Key* k = to<Reflex::Key*>(key);
206
- if (!k) argument_error();
207
- CALL(key_up(*k));
208
- return self;
178
+ CALL(on_key_down(to<Reflex::KeyEvent*>(event)));
209
179
  }
210
- RUBY_END
180
+ RUCY_END
211
181
 
212
182
  static
213
- RUBY_DEF1(points_down, points)
183
+ RUCY_DEF1(on_key_up, event)
214
184
  {
215
185
  CHECK;
216
- Reflex::Points* p = to<Reflex::Points*>(points);
217
- if (!p) argument_error();
218
- CALL(points_down(*p));
219
- return self;
186
+ CALL(on_key_up(to<Reflex::KeyEvent*>(event)));
220
187
  }
221
- RUBY_END
188
+ RUCY_END
222
189
 
223
190
  static
224
- RUBY_DEF1(points_up, points)
191
+ RUCY_DEF1(on_pointer, event)
225
192
  {
226
193
  CHECK;
227
- Reflex::Points* p = to<Reflex::Points*>(points);
228
- if (!p) argument_error();
229
- CALL(points_up(*p));
230
- return self;
194
+ CALL(on_pointer(to<Reflex::PointerEvent*>(event)));
231
195
  }
232
- RUBY_END
196
+ RUCY_END
233
197
 
234
198
  static
235
- RUBY_DEF1(points_moved, points)
199
+ RUCY_DEF1(on_pointer_down, event)
236
200
  {
237
201
  CHECK;
238
- Reflex::Points* p = to<Reflex::Points*>(points);
239
- if (!p) argument_error();
240
- CALL(points_moved(*p));
241
- return self;
202
+ CALL(on_pointer_down(to<Reflex::PointerEvent*>(event)));
242
203
  }
243
- RUBY_END
204
+ RUCY_END
205
+
206
+ static
207
+ RUCY_DEF1(on_pointer_up, event)
208
+ {
209
+ CHECK;
210
+ CALL(on_pointer_up(to<Reflex::PointerEvent*>(event)));
211
+ }
212
+ RUCY_END
213
+
214
+ static
215
+ RUCY_DEF1(on_pointer_move, event)
216
+ {
217
+ CHECK;
218
+ CALL(on_pointer_move(to<Reflex::PointerEvent*>(event)));
219
+ }
220
+ RUCY_END
221
+
222
+ static
223
+ RUCY_DEF1(on_wheel, event)
224
+ {
225
+ CHECK;
226
+ CALL(on_wheel(to<Reflex::WheelEvent*>(event)));
227
+ }
228
+ RUCY_END
229
+
230
+ static
231
+ RUCY_DEF_clear_override_flags(cof, Reflex::Window, cWindow);
244
232
 
245
233
 
246
234
  void
@@ -256,18 +244,37 @@ Init_window ()
256
244
  cWindow.define_method("redraw", redraw);
257
245
  cWindow.define_method("title=", set_title);
258
246
  cWindow.define_method("title", get_title);
259
- cWindow.define_private_method("set_bounds", set_bounds);
260
- cWindow.define_private_method("get_bounds", get_bounds);
247
+ cWindow.define_private_method("set_frame", set_frame);
248
+ cWindow.define_private_method("get_frame", get_frame);
261
249
  cWindow.define_method("hidden", hidden);
262
250
  cWindow.define_method("root", root);
251
+ cWindow.define_method("focus", focus);
263
252
  cWindow.define_method("painter", painter);
264
- cWindow.define_method("update", update);
265
- cWindow.define_method("draw", draw);
266
- cWindow.define_method("moved", moved);
267
- cWindow.define_method("resized", resized);
268
- cWindow.define_method("key_down", key_down);
269
- cWindow.define_method("key_up", key_up);
270
- cWindow.define_method("points_down", points_down);
271
- cWindow.define_method("points_up", points_up);
272
- cWindow.define_method("points_moved", points_moved);
253
+ cWindow.define_method("on_update", on_update);
254
+ cWindow.define_method("on_draw", on_draw);
255
+ cWindow.define_method("on_move", on_move);
256
+ cWindow.define_method("on_resize", on_resize);
257
+ cWindow.define_method("on_key", on_key);
258
+ cWindow.define_method("on_key_down", on_key_down);
259
+ cWindow.define_method("on_key_up", on_key_up);
260
+ cWindow.define_method("on_pointer", on_pointer);
261
+ cWindow.define_method("on_pointer_down", on_pointer_down);
262
+ cWindow.define_method("on_pointer_up", on_pointer_up);
263
+ cWindow.define_method("on_pointer_move", on_pointer_move);
264
+ cWindow.define_method("on_wheel", on_wheel);
265
+ cWindow.define_clear_override_flags(cof);
273
266
  }
267
+
268
+
269
+ namespace Reflex
270
+ {
271
+
272
+
273
+ Class
274
+ window_class ()
275
+ {
276
+ return cWindow;
277
+ }
278
+
279
+
280
+ }// Reflex
@@ -7,6 +7,7 @@
7
7
  #include <xot/ref.h>
8
8
  #include <xot/pimpl.h>
9
9
  #include <reflex/defs.h>
10
+ #include <reflex/event.h>
10
11
 
11
12
 
12
13
  namespace Reflex
@@ -24,17 +25,21 @@ namespace Reflex
24
25
 
25
26
  Application ();
26
27
 
27
- virtual bool run ();
28
+ virtual void start ();
28
29
 
29
- virtual bool quit ();
30
+ virtual void quit ();
30
31
 
31
- virtual bool preference ();
32
+ virtual void set_name (const char* name);
32
33
 
33
- virtual bool about ();
34
+ virtual const char* name () const;
34
35
 
35
- virtual bool set_name (const char* name);
36
+ virtual void on_start (Event* e);
36
37
 
37
- virtual const char* name () const;
38
+ virtual void on_quit (Event* e);
39
+
40
+ virtual void on_preference (Event* e);
41
+
42
+ virtual void on_about (Event* e);
38
43
 
39
44
  operator bool () const;
40
45
 
@@ -42,7 +47,7 @@ namespace Reflex
42
47
 
43
48
  struct Data;
44
49
 
45
- Xot::PImpl<Data, true> self;
50
+ Xot::PImpl<Data> self;
46
51
 
47
52
  protected:
48
53