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,144 @@
1
+ #include "reflex/ruby/selector.h"
2
+
3
+
4
+ #include <rucy.h>
5
+ #include "defs.h"
6
+
7
+
8
+ using namespace Rucy;
9
+
10
+
11
+ static Class cSelector;
12
+
13
+ RUCY_DEFINE_VALUE_FROM_TO(Reflex::Selector, cSelector)
14
+
15
+ #define THIS to<Reflex::Selector*>(self)
16
+
17
+ #define CHECK RUCY_CHECK_OBJ(Reflex::Selector, cSelector, self)
18
+
19
+
20
+ static
21
+ RUCY_DEF_ALLOC(alloc, klass)
22
+ {
23
+ return new_type<Reflex::Selector>(klass);
24
+ }
25
+ RUCY_END
26
+
27
+ static
28
+ RUCY_DEF1(initialize_copy, obj)
29
+ {
30
+ CHECK;
31
+ *THIS = to<Reflex::Selector&>(obj);
32
+ return self;
33
+ }
34
+ RUCY_END
35
+
36
+ static
37
+ RUCY_DEF1(set_name, name)
38
+ {
39
+ CHECK;
40
+ THIS->set_name(name.is_nil() ? NULL : name.c_str());
41
+ }
42
+ RUCY_END
43
+
44
+ static
45
+ RUCY_DEF0(get_name)
46
+ {
47
+ CHECK;
48
+ return THIS->name() ? value(THIS->name()) : nil();
49
+ }
50
+ RUCY_END
51
+
52
+ static
53
+ RUCY_DEF1(add_tag, tag)
54
+ {
55
+ CHECK;
56
+ THIS->add_tag(tag.c_str());
57
+ }
58
+ RUCY_END
59
+
60
+ static
61
+ RUCY_DEF1(remove_tag, tag)
62
+ {
63
+ CHECK;
64
+ THIS->remove_tag(tag.c_str());
65
+ }
66
+ RUCY_END
67
+
68
+ static
69
+ RUCY_DEF0(each_tag)
70
+ {
71
+ CHECK;
72
+
73
+ Value ret;
74
+ Reflex::Selector::iterator end = THIS->end();
75
+ for (Reflex::Selector::iterator it = THIS->begin(); it != end; ++it)
76
+ ret = rb_yield(value(*it));
77
+ return ret;
78
+ }
79
+ RUCY_END
80
+
81
+ static
82
+ RUCY_DEF1(match, selector)
83
+ {
84
+ CHECK;
85
+ return value(THIS->match(to<Reflex::Selector&>(selector)));
86
+ }
87
+ RUCY_END
88
+
89
+ static
90
+ RUCY_DEF1(equal, selector)
91
+ {
92
+ CHECK;
93
+ return value(*THIS == to<Reflex::Selector&>(selector));
94
+ }
95
+ RUCY_END
96
+
97
+
98
+ void
99
+ Init_selector ()
100
+ {
101
+ Module mReflex = define_module("Reflex");
102
+
103
+ cSelector = mReflex.define_class("Selector");
104
+ cSelector.define_alloc_func(alloc);
105
+ cSelector.define_private_method("initialize_copy", initialize_copy);
106
+ cSelector.define_method("name=", set_name);
107
+ cSelector.define_method("name", get_name);
108
+ cSelector.define_method("add_tag", add_tag);
109
+ cSelector.define_method("remove_tag", remove_tag);
110
+ cSelector.define_method("each_tag", each_tag);
111
+ cSelector.define_method("match", match);
112
+ cSelector.define_method("==", equal);
113
+ }
114
+
115
+
116
+ namespace Rucy
117
+ {
118
+
119
+
120
+ template <> Reflex::Selector
121
+ value_to<Reflex::Selector> (Value value, bool convert)
122
+ {
123
+ if (convert && (value.is_s() || value.is_sym()))
124
+ return Reflex::Selector(value.c_str());
125
+
126
+ return value_to<Reflex::Selector&>(value, convert);
127
+ }
128
+
129
+
130
+ }// Rucy
131
+
132
+
133
+ namespace Reflex
134
+ {
135
+
136
+
137
+ Class
138
+ selector_class ()
139
+ {
140
+ return cSelector;
141
+ }
142
+
143
+
144
+ }// Reflex
@@ -0,0 +1,277 @@
1
+ #include "reflex/ruby/style.h"
2
+
3
+
4
+ #include <rucy.h>
5
+ #include "rays/ruby/color.h"
6
+ #include "rays/ruby/image.h"
7
+ #include "reflex/ruby/selector.h"
8
+ #include "reflex/ruby/style_length.h"
9
+ #include "defs.h"
10
+
11
+
12
+ using namespace Rucy;
13
+
14
+
15
+ static Class cStyle;
16
+
17
+ RUCY_DEFINE_VALUE_FROM_TO(Reflex::Style, cStyle)
18
+
19
+ #define THIS to<Reflex::Style*>(self)
20
+
21
+ #define CHECK RUCY_CHECK_OBJ(Reflex::Style, cStyle, self)
22
+
23
+
24
+ static
25
+ RUCY_DEF_ALLOC(alloc, klass)
26
+ {
27
+ return new_type<Reflex::Style>(klass);
28
+ }
29
+ RUCY_END
30
+
31
+ static
32
+ RUCY_DEF1(initialize_copy, obj)
33
+ {
34
+ CHECK;
35
+ *THIS = to<Reflex::Style&>(obj);
36
+ return self;
37
+ }
38
+ RUCY_END
39
+
40
+ static
41
+ RUCY_DEF1(set_name, name)
42
+ {
43
+ CHECK;
44
+ THIS->set_name(name.is_nil() ? NULL : name.c_str());
45
+ }
46
+ RUCY_END
47
+
48
+ static
49
+ RUCY_DEF0(get_name)
50
+ {
51
+ CHECK;
52
+ return THIS->name() ? value(THIS->name()) : nil();
53
+ }
54
+ RUCY_END
55
+
56
+ static
57
+ RUCY_DEF1(add_tag, tag)
58
+ {
59
+ CHECK;
60
+ THIS->add_tag(tag.c_str());
61
+ }
62
+ RUCY_END
63
+
64
+ static
65
+ RUCY_DEF1(remove_tag, tag)
66
+ {
67
+ CHECK;
68
+ THIS->remove_tag(tag.c_str());
69
+ }
70
+ RUCY_END
71
+
72
+ static
73
+ RUCY_DEF0(each_tag)
74
+ {
75
+ CHECK;
76
+
77
+ Value ret;
78
+ Reflex::Style::tag_iterator end = THIS->tag_end();
79
+ for (Reflex::Style::tag_iterator it = THIS->tag_begin(); it != end; ++it)
80
+ ret = rb_yield(value(*it));
81
+ return ret;
82
+ }
83
+ RUCY_END
84
+
85
+ static
86
+ RUCY_DEF1(set_selector, selector)
87
+ {
88
+ CHECK;
89
+ THIS->set_selector(to<Reflex::Selector>(selector));
90
+ }
91
+ RUCY_END
92
+
93
+ static
94
+ RUCY_DEF0(get_selector)
95
+ {
96
+ CHECK;
97
+ return value(THIS->selector());
98
+ }
99
+ RUCY_END
100
+
101
+ static
102
+ RUCY_DEFN(set_flow)
103
+ {
104
+ CHECK;
105
+ check_arg_count(__FILE__, __LINE__, "Style#set_flow", argc, 1, 2);
106
+
107
+ THIS->set_flow(
108
+ argc >= 1 ? (Reflex::Style::Flow) argv[0].as_i() : Reflex::Style::FLOW_DOWN,
109
+ argc >= 2 ? (Reflex::Style::Flow) argv[1].as_i() : Reflex::Style::FLOW_NONE);
110
+ }
111
+ RUCY_END
112
+
113
+ static
114
+ RUCY_DEF0(get_flow)
115
+ {
116
+ CHECK;
117
+ Reflex::Style::Flow main, sub;
118
+ THIS->get_flow(&main, &sub);
119
+ return array(main, sub);
120
+ }
121
+ RUCY_END
122
+
123
+ static
124
+ RUCY_DEF1(set_size, size)
125
+ {
126
+ CHECK;
127
+ THIS->set_size(to<Reflex::StyleLength2>(size));
128
+ }
129
+ RUCY_END
130
+
131
+ static
132
+ RUCY_DEF0(get_size)
133
+ {
134
+ CHECK;
135
+ return value(THIS->size());
136
+ }
137
+ RUCY_END
138
+
139
+ static
140
+ RUCY_DEF1(set_position, position)
141
+ {
142
+ CHECK;
143
+ THIS->set_position(to<Reflex::StyleLength4>(position));
144
+ }
145
+ RUCY_END
146
+
147
+ static
148
+ RUCY_DEF0(get_position)
149
+ {
150
+ CHECK;
151
+ return value(THIS->position());
152
+ }
153
+ RUCY_END
154
+
155
+ static
156
+ RUCY_DEF1(set_margin, margin)
157
+ {
158
+ CHECK;
159
+ THIS->set_margin(to<Reflex::StyleLength4>(margin));
160
+ }
161
+ RUCY_END
162
+
163
+ static
164
+ RUCY_DEF0(get_margin)
165
+ {
166
+ CHECK;
167
+ return value(THIS->margin());
168
+ }
169
+ RUCY_END
170
+
171
+ static
172
+ RUCY_DEF1(set_padding, padding)
173
+ {
174
+ CHECK;
175
+ THIS->set_padding(to<Reflex::StyleLength4>(padding));
176
+ }
177
+ RUCY_END
178
+
179
+ static
180
+ RUCY_DEF0(get_padding)
181
+ {
182
+ CHECK;
183
+ return value(THIS->padding());
184
+ }
185
+ RUCY_END
186
+
187
+ static
188
+ RUCY_DEF1(set_background_color, color)
189
+ {
190
+ CHECK;
191
+ THIS->set_background_color(to<Reflex::Color&>(color));
192
+ }
193
+ RUCY_END
194
+
195
+ static
196
+ RUCY_DEF0(get_background_color)
197
+ {
198
+ CHECK;
199
+ return value(THIS->background_color());
200
+ }
201
+ RUCY_END
202
+
203
+ static
204
+ RUCY_DEF1(set_background_image, image)
205
+ {
206
+ CHECK;
207
+ THIS->set_background_image(to<Reflex::Image&>(image));
208
+ }
209
+ RUCY_END
210
+
211
+ static
212
+ RUCY_DEF0(get_background_image)
213
+ {
214
+ CHECK;
215
+ return THIS->background_image() ? value(THIS->background_image()) : nil();
216
+ }
217
+ RUCY_END
218
+
219
+ static
220
+ RUCY_DEF1(equal, style)
221
+ {
222
+ CHECK;
223
+ return value(*THIS == to<Reflex::Style&>(style));
224
+ }
225
+ RUCY_END
226
+
227
+
228
+ void
229
+ Init_style ()
230
+ {
231
+ Module mReflex = define_module("Reflex");
232
+
233
+ cStyle = mReflex.define_class("Style");
234
+ cStyle.define_alloc_func(alloc);
235
+ cStyle.define_private_method("initialize_copy", initialize_copy);
236
+ cStyle.define_method("name=", set_name);
237
+ cStyle.define_method("name", get_name);
238
+ cStyle.define_method("add_tag", add_tag);
239
+ cStyle.define_method("remove_tag", remove_tag);
240
+ cStyle.define_method("each_tag", each_tag);
241
+ cStyle.define_method("selector=", set_selector);
242
+ cStyle.define_method("selector", get_selector);
243
+ cStyle.define_method("set_flow", set_flow);
244
+ cStyle.define_method("get_flow", get_flow);
245
+ cStyle.define_method("size=", set_size);
246
+ cStyle.define_method("size", get_size);
247
+ cStyle.define_method("position=", set_position);
248
+ cStyle.define_method("position", get_position);
249
+ cStyle.define_method("margin=", set_margin);
250
+ cStyle.define_method("margin", get_margin);
251
+ cStyle.define_method("padding=", set_padding);
252
+ cStyle.define_method("padding", get_padding);
253
+ cStyle.define_method("background_color=", set_background_color);
254
+ cStyle.define_method("background_color", get_background_color);
255
+ cStyle.define_method("background_image=", set_background_image);
256
+ cStyle.define_method("background_image", get_background_image);
257
+ cStyle.define_method("==", equal);
258
+ cStyle.define_const("FLOW_NONE", Reflex::Style::FLOW_NONE);
259
+ cStyle.define_const("FLOW_DOWN", Reflex::Style::FLOW_DOWN);
260
+ cStyle.define_const("FLOW_RIGHT", Reflex::Style::FLOW_RIGHT);
261
+ cStyle.define_const("FLOW_UP", Reflex::Style::FLOW_UP);
262
+ cStyle.define_const("FLOW_LEFT", Reflex::Style::FLOW_LEFT);
263
+ }
264
+
265
+
266
+ namespace Reflex
267
+ {
268
+
269
+
270
+ Class
271
+ style_class ()
272
+ {
273
+ return cStyle;
274
+ }
275
+
276
+
277
+ }// Reflex
@@ -0,0 +1,140 @@
1
+ #include "reflex/ruby/style_length.h"
2
+
3
+
4
+ #include <rucy.h>
5
+ #include "defs.h"
6
+
7
+
8
+ using namespace Rucy;
9
+
10
+
11
+ static Class cStyleLength;
12
+
13
+ RUCY_DEFINE_VALUE_FROM_TO(Reflex::StyleLength, cStyleLength)
14
+
15
+ #define THIS to<Reflex::StyleLength*>(self)
16
+
17
+ #define CHECK RUCY_CHECK_OBJ(Reflex::StyleLength, cStyleLength, self)
18
+
19
+
20
+ static
21
+ RUCY_DEF_ALLOC(alloc, klass)
22
+ {
23
+ return new_type<Reflex::StyleLength>(klass);
24
+ }
25
+ RUCY_END
26
+
27
+ static
28
+ RUCY_DEF2(setup_num, value, unit)
29
+ {
30
+ CHECK;
31
+
32
+ const char* str = unit.as_s(true);
33
+ Reflex::StyleLength::Unit u = Reflex::StyleLength::NONE;
34
+ if (strcasecmp(str, "px") == 0) u = Reflex::StyleLength::PIXEL;
35
+ else if (strcasecmp(str, "%") == 0) u = Reflex::StyleLength::PERCENT;
36
+ else argument_error(__FILE__, __LINE__);
37
+ THIS->reset(value.as_f(true), u);
38
+ }
39
+ RUCY_END
40
+
41
+ static
42
+ RUCY_DEF1(setup_str, str)
43
+ {
44
+ CHECK;
45
+ THIS->reset(str.c_str());
46
+ }
47
+ RUCY_END
48
+
49
+ static
50
+ RUCY_DEF1(initialize_copy, obj)
51
+ {
52
+ CHECK;
53
+ *THIS = to<Reflex::StyleLength&>(obj).copy();
54
+ return self;
55
+ }
56
+ RUCY_END
57
+
58
+ static
59
+ RUCY_DEF0(get_value)
60
+ {
61
+ CHECK;
62
+ return value(THIS->value());
63
+ }
64
+ RUCY_END
65
+
66
+ static
67
+ RUCY_DEF0(get_unit)
68
+ {
69
+ CHECK;
70
+
71
+ RUCY_SYMBOL(pixel, "px");
72
+ RUCY_SYMBOL(percent, "%");
73
+ switch (THIS->unit())
74
+ {
75
+ case Reflex::StyleLength::PIXEL: return pixel.value();
76
+ case Reflex::StyleLength::PERCENT: return percent.value();
77
+ default: return nil();
78
+ }
79
+ }
80
+ RUCY_END
81
+
82
+ static
83
+ RUCY_DEF0(to_s)
84
+ {
85
+ CHECK;
86
+ return value(THIS->to_s());
87
+ }
88
+ RUCY_END
89
+
90
+
91
+ void
92
+ Init_style_length ()
93
+ {
94
+ Module mReflex = define_module("Reflex");
95
+
96
+ cStyleLength = mReflex.define_class("StyleLength");
97
+ cStyleLength.define_alloc_func(alloc);
98
+ cStyleLength.define_private_method("setup_num", setup_num);
99
+ cStyleLength.define_private_method("setup_str", setup_str);
100
+ cStyleLength.define_private_method("initialize_copy", initialize_copy);
101
+ cStyleLength.define_method("value", get_value);
102
+ cStyleLength.define_method("unit", get_unit);
103
+ cStyleLength.define_method("to_s", to_s);
104
+ }
105
+
106
+
107
+ namespace Rucy
108
+ {
109
+
110
+
111
+ template <> Reflex::StyleLength
112
+ value_to<Reflex::StyleLength> (Value value, bool convert)
113
+ {
114
+ if (convert)
115
+ {
116
+ if (value.is_nil()) return Reflex::StyleLength();
117
+ else if (value.is_i()) return Reflex::StyleLength(value.as_i());
118
+ else if (value.is_f()) return Reflex::StyleLength(value.as_f());
119
+ else if (value.is_s()) return Reflex::StyleLength(value.c_str());
120
+ }
121
+
122
+ return value_to<Reflex::StyleLength&>(value, convert);
123
+ }
124
+
125
+
126
+ }// Rucy
127
+
128
+
129
+ namespace Reflex
130
+ {
131
+
132
+
133
+ Class
134
+ style_length_class ()
135
+ {
136
+ return cStyleLength;
137
+ }
138
+
139
+
140
+ }// Reflex
@@ -0,0 +1,157 @@
1
+ #include "reflex/ruby/style_length.h"
2
+
3
+
4
+ #include <rucy.h>
5
+ #include "defs.h"
6
+
7
+
8
+ using namespace Rucy;
9
+
10
+
11
+ static Class cStyleLength2;
12
+
13
+ RUCY_DEFINE_VALUE_FROM_TO(Reflex::StyleLength2, cStyleLength2)
14
+
15
+ #define THIS to<Reflex::StyleLength2*>(self)
16
+
17
+ #define CHECK RUCY_CHECK_OBJ(Reflex::StyleLength2, cStyleLength2, self)
18
+
19
+
20
+ static
21
+ RUCY_DEF_ALLOC(alloc, klass)
22
+ {
23
+ return new_type<Reflex::StyleLength2>(klass);
24
+ }
25
+ RUCY_END
26
+
27
+ static
28
+ RUCY_DEF1(initialize_copy, obj)
29
+ {
30
+ CHECK;
31
+ *THIS = to<Reflex::StyleLength2&>(obj).copy();
32
+ return self;
33
+ }
34
+ RUCY_END
35
+
36
+ static
37
+ RUCY_DEF1(set_width, width)
38
+ {
39
+ CHECK;
40
+ THIS->set_width(to<Reflex::StyleLength>(width));
41
+ }
42
+ RUCY_END
43
+
44
+ static
45
+ RUCY_DEF0(get_width)
46
+ {
47
+ CHECK;
48
+ return value(THIS->width());
49
+ }
50
+ RUCY_END
51
+
52
+ static
53
+ RUCY_DEF1(set_height, height)
54
+ {
55
+ CHECK;
56
+ THIS->set_height(to<Reflex::StyleLength>(height));
57
+ }
58
+ RUCY_END
59
+
60
+ static
61
+ RUCY_DEF0(get_height)
62
+ {
63
+ CHECK;
64
+ return value(THIS->height());
65
+ }
66
+ RUCY_END
67
+
68
+ static
69
+ RUCY_DEF2(set_at, index, length)
70
+ {
71
+ CHECK;
72
+
73
+ int i = index.as_i(), size = (int) THIS->size();
74
+ while (i < 0) i += size;
75
+
76
+ if (i >= size)
77
+ index_error(__FILE__, __LINE__);
78
+
79
+ (*THIS)[i] = to<Reflex::StyleLength>(length);
80
+ }
81
+ RUCY_END
82
+
83
+ static
84
+ RUCY_DEF1(get_at, index)
85
+ {
86
+ CHECK;
87
+
88
+ int i = index.as_i(), size = (int) THIS->size();
89
+ while (i < 0) i += size;
90
+
91
+ if (i >= size)
92
+ index_error(__FILE__, __LINE__);
93
+
94
+ return value((*THIS)[i]);
95
+ }
96
+ RUCY_END
97
+
98
+
99
+ void
100
+ Init_style_length2 ()
101
+ {
102
+ Module mReflex = define_module("Reflex");
103
+
104
+ cStyleLength2 = mReflex.define_class("StyleLength2");
105
+ cStyleLength2.define_alloc_func(alloc);
106
+ cStyleLength2.define_private_method("initialize_copy", initialize_copy);
107
+ cStyleLength2.define_method("width=", set_width);
108
+ cStyleLength2.define_method("width", get_width);
109
+ cStyleLength2.define_method("height=", set_height);
110
+ cStyleLength2.define_method("height", get_height);
111
+ cStyleLength2.define_method("[]=", set_at);
112
+ cStyleLength2.define_method("[]", get_at);
113
+ }
114
+
115
+
116
+ namespace Rucy
117
+ {
118
+
119
+
120
+ template <> Reflex::StyleLength2
121
+ value_to<Reflex::StyleLength2> (Value value, bool convert)
122
+ {
123
+ if (convert && value.is_array())
124
+ {
125
+ Value* a = value.as_array();
126
+ switch (value.size())
127
+ {
128
+ case 1: return Reflex::StyleLength2(
129
+ to<Reflex::StyleLength>(a[0]));
130
+
131
+ case 2: return Reflex::StyleLength2(
132
+ to<Reflex::StyleLength>(a[0]),
133
+ to<Reflex::StyleLength>(a[1]));
134
+
135
+ default: argument_error(__FILE__, __LINE__);
136
+ }
137
+ }
138
+
139
+ return value_to<Reflex::StyleLength2&>(value, convert);
140
+ }
141
+
142
+
143
+ }// Rucy
144
+
145
+
146
+ namespace Reflex
147
+ {
148
+
149
+
150
+ Class
151
+ style_length2_class ()
152
+ {
153
+ return cStyleLength2;
154
+ }
155
+
156
+
157
+ }// Reflex