reflexion 0.1.6 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
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
data/ext/reflex/view.cpp CHANGED
@@ -1,9 +1,13 @@
1
1
  #include "reflex/ruby/view.h"
2
2
 
3
3
 
4
+ #include <vector>
4
5
  #include <rucy.h>
5
- #include <reflex/ruby/window.h>
6
- #include "defs.h"
6
+ #include <rays/ruby/point.h>
7
+ #include <rays/ruby/bounds.h>
8
+ #include "reflex/ruby/window.h"
9
+ #include "reflex/ruby/selector.h"
10
+ #include "reflex/ruby/style.h"
7
11
 
8
12
 
9
13
  using namespace Rucy;
@@ -13,224 +17,521 @@ using Reflex::coord;
13
17
 
14
18
  static Class cView;
15
19
 
20
+ RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(Reflex::View, cView)
16
21
 
17
- namespace Reflex
22
+ #define THIS to<Reflex::View*>(self)
23
+
24
+ #define CHECK RUCY_CHECK_OBJECT(Reflex::View, cView, self)
25
+
26
+ #define CALL(fun) RUCY_WRAPPER_CALL(Reflex::View, THIS, fun)
27
+
28
+
29
+ template <typename T>
30
+ static inline Value
31
+ array (T begin, T end)
18
32
  {
33
+ std::vector<Value> v;
34
+ for (T it = begin; it != end; ++it) v.push_back(value(*it));
35
+ return value(v.size(), &v[0]);
36
+ }
19
37
 
20
38
 
21
- Class
22
- view_class ()
23
- {
24
- return cView;
25
- }
39
+ static
40
+ RUCY_DEF_ALLOC(alloc, klass)
41
+ {
42
+ return value(new Reflex::RubyView<Reflex::View>, klass);
43
+ }
44
+ RUCY_END
26
45
 
46
+ static
47
+ RUCY_DEF0(show)
48
+ {
49
+ CHECK;
50
+ CALL(show());
51
+ return self;
52
+ }
53
+ RUCY_END
27
54
 
28
- }// Reflex
55
+ static
56
+ RUCY_DEF0(hide)
57
+ {
58
+ CHECK;
59
+ CALL(hide());
60
+ return self;
61
+ }
62
+ RUCY_END
29
63
 
64
+ static
65
+ RUCY_DEF0(hidden)
66
+ {
67
+ CHECK;
68
+ return value(THIS->hidden());
69
+ }
70
+ RUCY_END
71
+
72
+ static
73
+ RUCY_DEF0(redraw)
74
+ {
75
+ CHECK;
76
+ THIS->redraw();
77
+ return self;
78
+ }
79
+ RUCY_END
80
+
81
+ static
82
+ RUCY_DEF1(add_child, child)
83
+ {
84
+ CHECK;
85
+ THIS->add_child(to<Reflex::View*>(child));
86
+ return child;
87
+ }
88
+ RUCY_END
30
89
 
31
- typedef Reflex::RubyView<Reflex::View> RubyView;
90
+ static
91
+ RUCY_DEF1(remove_child, child)
92
+ {
93
+ CHECK;
94
+ THIS->remove_child(to<Reflex::View*>(child));
95
+ return child;
96
+ }
97
+ RUCY_END
32
98
 
99
+ static
100
+ RUCY_DEFN(find_children)
101
+ {
102
+ CHECK;
103
+ check_arg_count(__FILE__, __LINE__, "View#find_children", argc, 1, 2);
33
104
 
34
- #define THIS to<Reflex::View*>(self)
105
+ bool recursive = (argc >= 2) ? to<bool>(argv[1]) : false;
106
+
107
+ Reflex::View::ChildList children;
108
+ THIS->find_children(&children, to<Reflex::Selector>(argv[0]), recursive);
109
+ return array(children.begin(), children.end());
110
+ }
111
+ RUCY_END
112
+
113
+ static
114
+ RUCY_DEF0(each_child)
115
+ {
116
+ CHECK;
35
117
 
36
- #define CHECK RUCY_CHECK_OBJECT(self, Reflex::View, cView)
118
+ Value ret;
119
+ Reflex::View::child_iterator end = THIS->child_end();
120
+ for (Reflex::View::child_iterator it = THIS->child_begin(); it != end; ++it)
121
+ ret = rb_yield(value(it->get()));
122
+ return ret;
123
+ }
124
+ RUCY_END
37
125
 
38
- #define CALL(fun) RUCY_WRAPPER_CALL(RubyView, THIS, fun)
126
+ static
127
+ RUCY_DEF1(add_style, style)
128
+ {
129
+ CHECK;
130
+ THIS->add_style(to<Reflex::Style&>(style));
131
+ return style;
132
+ }
133
+ RUCY_END
39
134
 
135
+ static
136
+ RUCY_DEF1(remove_style, style)
137
+ {
138
+ CHECK;
139
+ THIS->remove_style(to<Reflex::Style&>(style));
140
+ return style;
141
+ }
142
+ RUCY_END
40
143
 
41
144
  static
42
- RUBY_DEF_ALLOC(alloc, klass)
145
+ RUCY_DEFN(get_style)
43
146
  {
44
- return value(new RubyView, klass);
147
+ CHECK;
148
+ check_arg_count(__FILE__, __LINE__, "View#get_style", argc, 0, 1);
149
+
150
+ if (argc == 0)
151
+ return value(THIS->style());
152
+ else
153
+ return value(THIS->get_style(to<Reflex::Selector>(argv[0])));
154
+ }
155
+ RUCY_END
156
+
157
+ static
158
+ RUCY_DEFN(find_styles)
159
+ {
160
+ CHECK;
161
+ check_arg_count(__FILE__, __LINE__, "View#find_styles", argc, 1, 2);
162
+
163
+ bool recursive = (argc >= 2) ? to<bool>(argv[1]) : false;
164
+
165
+ Reflex::View::StyleList styles;
166
+ THIS->find_styles(&styles, to<Reflex::Selector>(argv[0]), recursive);
167
+ return array(styles.begin(), styles.end());
168
+ }
169
+ RUCY_END
170
+
171
+ static
172
+ RUCY_DEF0(each_style)
173
+ {
174
+ CHECK;
175
+
176
+ Value ret;
177
+ Reflex::View::style_iterator end = THIS->style_end();
178
+ for (Reflex::View::style_iterator it = THIS->style_begin(); it != end; ++it)
179
+ ret = rb_yield(value(*it));
180
+ return ret;
45
181
  }
46
- RUBY_END
182
+ RUCY_END
47
183
 
48
184
  static
49
- RUBY_DEF0(show)
185
+ RUCY_DEFN(focus)
50
186
  {
51
187
  CHECK;
52
- if (!CALL(show()))
53
- reflex_error("failed to show view.");
188
+ check_arg_count(__FILE__, __LINE__, "View#focus", argc, 0, 1);
189
+
190
+ bool state = (argc >= 1) ? to<bool>(argv[0]) : true;
191
+
192
+ THIS->focus(state);
54
193
  return self;
55
194
  }
56
- RUBY_END
195
+ RUCY_END
57
196
 
58
197
  static
59
- RUBY_DEF0(hide)
198
+ RUCY_DEF0(blur)
60
199
  {
61
200
  CHECK;
62
- if (!CALL(hide()))
63
- reflex_error("failed to hide view.");
201
+ THIS->blur();
64
202
  return self;
65
203
  }
66
- RUBY_END
204
+ RUCY_END
205
+
206
+ static
207
+ RUCY_DEF0(has_focus)
208
+ {
209
+ CHECK;
210
+ return value(THIS->has_focus());
211
+ }
212
+ RUCY_END
67
213
 
68
214
  static
69
- RUBY_DEF0(redraw)
215
+ RUCY_DEF0(resize_to_fit)
70
216
  {
71
217
  CHECK;
72
- if (!THIS->redraw())
73
- reflex_error("failed to redraw view.");
218
+ THIS->resize_to_fit();
74
219
  return self;
75
220
  }
76
- RUBY_END
221
+ RUCY_END
77
222
 
78
223
  static
79
- RUBY_DEF1(add_child, child)
224
+ RUCY_DEF0(content_size)
80
225
  {
81
226
  CHECK;
227
+ return value(THIS->content_size());
228
+ }
229
+ RUCY_END
82
230
 
83
- Reflex::View* c = to<Reflex::View*>(child);
84
- if (!c) argument_error();
231
+ static
232
+ RUCY_DEF1(set_name, name)
233
+ {
234
+ CHECK;
235
+ THIS->set_name(name.is_nil() ? NULL : name.c_str());
236
+ }
237
+ RUCY_END
85
238
 
86
- if (!THIS->add_child(c))
87
- reflex_error("failed to add child view.");
239
+ static
240
+ RUCY_DEF0(get_name)
241
+ {
242
+ CHECK;
243
+ return THIS->name() ? value(THIS->name()) : nil();
244
+ }
245
+ RUCY_END
88
246
 
89
- return self;
247
+ static
248
+ RUCY_DEF1(add_tag, tag)
249
+ {
250
+ CHECK;
251
+ THIS->add_tag(tag.c_str());
90
252
  }
91
- RUBY_END
253
+ RUCY_END
92
254
 
93
255
  static
94
- RUBY_DEF1(remove_child, child)
256
+ RUCY_DEF1(remove_tag, tag)
95
257
  {
96
258
  CHECK;
259
+ THIS->remove_tag(tag.c_str());
260
+ }
261
+ RUCY_END
97
262
 
98
- Reflex::View* c = to<Reflex::View*>(child);
99
- if (!c) argument_error();
263
+ static
264
+ RUCY_DEF0(each_tag)
265
+ {
266
+ CHECK;
100
267
 
101
- if (!THIS->remove_child(c))
102
- reflex_error("failed to remove child view.");
268
+ Value ret;
269
+ Reflex::View::tag_iterator end = THIS->tag_end();
270
+ for (Reflex::View::tag_iterator it = THIS->tag_begin(); it != end; ++it)
271
+ ret = rb_yield(value(*it));
272
+ return ret;
273
+ }
274
+ RUCY_END
103
275
 
104
- return self;
276
+ static
277
+ RUCY_DEF1(set_selector, selector)
278
+ {
279
+ CHECK;
280
+ THIS->set_selector(to<Reflex::Selector>(selector));
105
281
  }
106
- RUBY_END
282
+ RUCY_END
107
283
 
108
284
  static
109
- RUBY_DEFN(find_child)
285
+ RUCY_DEF0(get_selector)
110
286
  {
111
287
  CHECK;
112
- if (argc < 1 || 3 < argc)
113
- arg_count_error("View#find_child", argc, 1, 2, 3);
288
+ return value(THIS->selector());
289
+ }
290
+ RUCY_END
114
291
 
115
- const char* name = to<const char*>(argv[0]);
116
- size_t index = (argc >= 2) ? to<size_t>(argv[1]) : 0;
117
- bool recursive = (argc >= 3) ? to<bool>(argv[2]) : false;
292
+ static
293
+ RUCY_DEF1(set_frame, arg)
294
+ {
295
+ CHECK;
296
+ THIS->set_frame(to<Rays::Bounds>(arg));
297
+ }
298
+ RUCY_END
118
299
 
119
- Reflex::View* c = THIS->find_child(name, index, recursive);
120
- if (!c) return Qnil;
300
+ static
301
+ RUCY_DEF0(get_frame)
302
+ {
303
+ CHECK;
304
+ return value(THIS->frame());
305
+ }
306
+ RUCY_END
121
307
 
122
- return value(c);
308
+ static
309
+ RUCY_DEF1(set_capture, types)
310
+ {
311
+ CHECK;
312
+ THIS->set_capture(to<uint>(types));
123
313
  }
124
- RUBY_END
314
+ RUCY_END
125
315
 
126
316
  static
127
- RUBY_DEF1(set_name, name)
317
+ RUCY_DEF0(get_capture)
128
318
  {
129
319
  CHECK;
130
- if (!THIS->set_name(name.c_str()))
131
- reflex_error("failed to set the name of view.");
132
- return name;
320
+ return value(THIS->capture());
133
321
  }
134
- RUBY_END
322
+ RUCY_END
135
323
 
136
324
  static
137
- RUBY_DEF0(get_name)
325
+ RUCY_DEFN(scroll_to)
138
326
  {
139
327
  CHECK;
140
- const char* s = THIS->name();
141
- if (!s) reflex_error("failed to get name of view.");
142
- return value(s);
328
+ check_arg_count(__FILE__, __LINE__, "View#scroll_to", argc, 1, 2, 3);
329
+
330
+ if (argv[0].is_kind_of(Rays::point_class()))
331
+ THIS->scroll_to(to<Rays::Point&>(argv[0]));
332
+ else
333
+ {
334
+ const Rays::Point& p = THIS->scroll();
335
+ coord x = (argc >= 1 && argv[0]) ? to<coord>(argv[0]) : p.x;
336
+ coord y = (argc >= 2 && argv[1]) ? to<coord>(argv[1]) : p.y;
337
+ coord z = (argc >= 3 && argv[2]) ? to<coord>(argv[2]) : p.z;
338
+ THIS->scroll_to(x, y, z);
339
+ }
340
+
341
+ return self;
143
342
  }
144
- RUBY_END
343
+ RUCY_END
145
344
 
146
345
  static
147
- RUBY_DEF4(set_bounds, x, y, width, height)
346
+ RUCY_DEFN(scroll_by)
148
347
  {
149
348
  CHECK;
150
- if (!THIS->set_bounds(
151
- to<coord>(x), to<coord>(y), to<coord>(width), to<coord>(height)))
349
+ check_arg_count(__FILE__, __LINE__, "View#scroll_by", argc, 1, 2, 3);
350
+
351
+ if (argv[0].is_kind_of(Rays::point_class()))
352
+ THIS->scroll_by(to<Rays::Point&>(argv[0]));
353
+ else
152
354
  {
153
- reflex_error("failed to set the bounds of view.");
355
+ coord x = (argc >= 1 && argv[0]) ? to<coord>(argv[0]) : 0;
356
+ coord y = (argc >= 2 && argv[1]) ? to<coord>(argv[1]) : 0;
357
+ coord z = (argc >= 3 && argv[2]) ? to<coord>(argv[2]) : 0;
358
+ THIS->scroll_by(x, y, z);
154
359
  }
155
- return value(THIS->bounds());
360
+
361
+ return self;
156
362
  }
157
- RUBY_END
363
+ RUCY_END
158
364
 
159
365
  static
160
- RUBY_DEF0(get_bounds)
366
+ RUCY_DEF0(get_scroll)
161
367
  {
162
368
  CHECK;
163
- return value(THIS->bounds());
369
+ return value(THIS->scroll());
164
370
  }
165
- RUBY_END
371
+ RUCY_END
166
372
 
167
373
  static
168
- RUBY_DEF0(hidden)
374
+ RUCY_DEF0(parent)
169
375
  {
170
376
  CHECK;
171
- return value(THIS->hidden());
377
+ return value(THIS->parent());
172
378
  }
173
- RUBY_END
379
+ RUCY_END
174
380
 
175
381
  static
176
- RUBY_DEF0(parent)
382
+ RUCY_DEF0(window)
177
383
  {
178
384
  CHECK;
385
+ return value(THIS->window());
386
+ }
387
+ RUCY_END
179
388
 
180
- Reflex::View* v = THIS->parent();
181
- if (!v) return Qnil;
389
+ static
390
+ RUCY_DEF1(on_attach, event)
391
+ {
392
+ CHECK;
393
+ CALL(on_attach(to<Reflex::Event*>(event)));
394
+ }
395
+ RUCY_END
182
396
 
183
- return value(v);
397
+ static
398
+ RUCY_DEF1(on_detach, event)
399
+ {
400
+ CHECK;
401
+ CALL(on_detach(to<Reflex::Event*>(event)));
184
402
  }
185
- RUBY_END
403
+ RUCY_END
186
404
 
187
405
  static
188
- RUBY_DEF0(window)
406
+ RUCY_DEF1(on_update, event)
189
407
  {
190
408
  CHECK;
409
+ CALL(on_update(to<Reflex::UpdateEvent*>(event)));
410
+ }
411
+ RUCY_END
191
412
 
192
- Reflex::Window* w = THIS->window();
193
- if (!w) return Qnil;
413
+ static
414
+ RUCY_DEF1(on_draw, event)
415
+ {
416
+ CHECK;
417
+ CALL(on_draw(to<Reflex::DrawEvent*>(event)));
418
+ }
419
+ RUCY_END
420
+
421
+ static
422
+ RUCY_DEF1(on_move, event)
423
+ {
424
+ CHECK;
425
+ CALL(on_move(to<Reflex::FrameEvent*>(event)));
426
+ }
427
+ RUCY_END
194
428
 
195
- return value(w);
429
+ static
430
+ RUCY_DEF1(on_resize, event)
431
+ {
432
+ CHECK;
433
+ CALL(on_resize(to<Reflex::FrameEvent*>(event)));
196
434
  }
197
- RUBY_END
435
+ RUCY_END
198
436
 
199
437
  static
200
- RUBY_DEF1(update, dt)
438
+ RUCY_DEF1(on_scroll, event)
201
439
  {
202
440
  CHECK;
203
- CALL(update(to<float>(dt)));
204
- return self;
441
+ CALL(on_scroll(to<Reflex::ScrollEvent*>(event)));
205
442
  }
206
- RUBY_END
443
+ RUCY_END
207
444
 
208
445
  static
209
- RUBY_DEF2(draw, painter, bounds)
446
+ RUCY_DEF1(on_focus, event)
210
447
  {
211
448
  CHECK;
212
- CALL(draw(to<Rays::Painter*>(painter), *to<Rays::Bounds*>(bounds)));
213
- return self;
449
+ CALL(on_focus(to<Reflex::FocusEvent*>(event)));
214
450
  }
215
- RUBY_END
451
+ RUCY_END
216
452
 
217
453
  static
218
- RUBY_DEF2(moved, dx, dy)
454
+ RUCY_DEF1(on_blur, event)
219
455
  {
220
456
  CHECK;
221
- CALL(moved(to<coord>(dx), to<coord>(dy)));
222
- return self;
457
+ CALL(on_blur(to<Reflex::FocusEvent*>(event)));
223
458
  }
224
- RUBY_END
459
+ RUCY_END
225
460
 
226
461
  static
227
- RUBY_DEF2(resized, dwidth, dheight)
462
+ RUCY_DEF1(on_key, event)
228
463
  {
229
464
  CHECK;
230
- CALL(resized(to<coord>(dwidth), to<coord>(dheight)));
231
- return self;
465
+ CALL(on_key(to<Reflex::KeyEvent*>(event)));
232
466
  }
233
- RUBY_END
467
+ RUCY_END
468
+
469
+ static
470
+ RUCY_DEF1(on_key_down, event)
471
+ {
472
+ CHECK;
473
+ CALL(on_key_down(to<Reflex::KeyEvent*>(event)));
474
+ }
475
+ RUCY_END
476
+
477
+ static
478
+ RUCY_DEF1(on_key_up, event)
479
+ {
480
+ CHECK;
481
+ CALL(on_key_up(to<Reflex::KeyEvent*>(event)));
482
+ }
483
+ RUCY_END
484
+
485
+ static
486
+ RUCY_DEF1(on_pointer, event)
487
+ {
488
+ CHECK;
489
+ CALL(on_pointer(to<Reflex::PointerEvent*>(event)));
490
+ }
491
+ RUCY_END
492
+
493
+ static
494
+ RUCY_DEF1(on_pointer_down, event)
495
+ {
496
+ CHECK;
497
+ CALL(on_pointer_down(to<Reflex::PointerEvent*>(event)));
498
+ }
499
+ RUCY_END
500
+
501
+ static
502
+ RUCY_DEF1(on_pointer_up, event)
503
+ {
504
+ CHECK;
505
+ CALL(on_pointer_up(to<Reflex::PointerEvent*>(event)));
506
+ }
507
+ RUCY_END
508
+
509
+ static
510
+ RUCY_DEF1(on_pointer_move, event)
511
+ {
512
+ CHECK;
513
+ CALL(on_pointer_move(to<Reflex::PointerEvent*>(event)));
514
+ }
515
+ RUCY_END
516
+
517
+ static
518
+ RUCY_DEF1(on_wheel, event)
519
+ {
520
+ CHECK;
521
+ CALL(on_wheel(to<Reflex::WheelEvent*>(event)));
522
+ }
523
+ RUCY_END
524
+
525
+ static
526
+ RUCY_DEF1(on_capture, event)
527
+ {
528
+ CHECK;
529
+ CALL(on_capture(to<Reflex::CaptureEvent*>(event)));
530
+ }
531
+ RUCY_END
532
+
533
+ static
534
+ RUCY_DEF_clear_override_flags(cof, Reflex::View, cView);
234
535
 
235
536
 
236
537
  void
@@ -240,21 +541,75 @@ Init_view ()
240
541
 
241
542
  cView = mReflex.define_class("View");
242
543
  cView.define_alloc_func(alloc);
243
- cView.define_method("show", show);
244
- cView.define_method("hide", hide);
245
- cView.define_method("redraw", redraw);
246
- cView.define_method("add_child", add_child);
247
- cView.define_method("remove_child", remove_child);
248
- cView.define_method("find_child", find_child);
544
+ cView.define_method("show", show);
545
+ cView.define_method("hide", hide);
546
+ cView.define_method("hidden?", hidden);
547
+ cView.define_method("redraw", redraw);
548
+ cView.define_method("add_child", add_child);
549
+ cView.define_method("remove_child", remove_child);
550
+ cView.define_method("find_children", find_children);
551
+ cView.define_method("each_child", each_child);
552
+ cView.define_method("add_style", add_style);
553
+ cView.define_method("remove_style", remove_style);
554
+ cView.define_method("get_style", get_style);
555
+ cView.define_method("find_styles", find_styles);
556
+ cView.define_method("each_style", each_style);
557
+ cView.define_method("focus", focus);
558
+ cView.define_method("blur", blur);
559
+ cView.define_method("focus?", has_focus);
560
+ cView.define_method("resize_to_fit", resize_to_fit);
561
+ cView.define_method("content_size", content_size);
249
562
  cView.define_method("name=", set_name);
250
- cView.define_method("name", get_name);
251
- cView.define_private_method("set_bounds", set_bounds);
252
- cView.define_private_method("get_bounds", get_bounds);
253
- cView.define_method("hidden", hidden);
563
+ cView.define_method("name", get_name);
564
+ cView.define_method("add_tag", add_tag);
565
+ cView.define_method("remove_tag", remove_tag);
566
+ cView.define_method("each_tag", each_tag);
567
+ cView.define_method("selector=", set_selector);
568
+ cView.define_method("selector", get_selector);
569
+ cView.define_private_method("set_frame", set_frame);
570
+ cView.define_private_method("get_frame", get_frame);
571
+ cView.define_method("scroll_to", scroll_to);
572
+ cView.define_method("scroll_by", scroll_by);
573
+ cView.define_method("scroll", get_scroll);
574
+ cView.define_method("set_capture", set_capture);
575
+ cView.define_method("get_capture", get_capture);
254
576
  cView.define_method("parent", parent);
255
577
  cView.define_method("window", window);
256
- cView.define_method("update", update);
257
- cView.define_method("draw", draw);
258
- cView.define_method("moved", moved);
259
- cView.define_method("resized", resized);
578
+ cView.define_method("on_attach", on_attach);
579
+ cView.define_method("on_detach", on_detach);
580
+ cView.define_method("on_update", on_update);
581
+ cView.define_method("on_draw", on_draw);
582
+ cView.define_method("on_move", on_move);
583
+ cView.define_method("on_resize", on_resize);
584
+ cView.define_method("on_scroll", on_scroll);
585
+ cView.define_method("on_focus", on_focus);
586
+ cView.define_method("on_blur", on_blur);
587
+ cView.define_method("on_key", on_key);
588
+ cView.define_method("on_key_down", on_key_down);
589
+ cView.define_method("on_key_up", on_key_up);
590
+ cView.define_method("on_pointer", on_pointer);
591
+ cView.define_method("on_pointer_down", on_pointer_down);
592
+ cView.define_method("on_pointer_up", on_pointer_up);
593
+ cView.define_method("on_pointer_move", on_pointer_move);
594
+ cView.define_method("on_wheel", on_wheel);
595
+ cView.define_method("on_capture", on_capture);
596
+ cView.define_const("CAPTURE_NONE", Reflex::View::CAPTURE_NONE);
597
+ cView.define_const("CAPTURE_KEY", Reflex::View::CAPTURE_KEY);
598
+ cView.define_const("CAPTURE_POINTER", Reflex::View::CAPTURE_POINTER);
599
+ cView.define_const("CAPTURE_ALL", Reflex::View::CAPTURE_ALL);
600
+ cView.define_clear_override_flags(cof);
260
601
  }
602
+
603
+
604
+ namespace Reflex
605
+ {
606
+
607
+
608
+ Class
609
+ view_class ()
610
+ {
611
+ return cView;
612
+ }
613
+
614
+
615
+ }// Reflex