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
+ // -*- c++ -*-
2
+ #pragma once
3
+ #ifndef __REFLEX_STYLE_H__
4
+ #define __REFLEX_STYLE_H__
5
+
6
+
7
+ #include <xot/ref.h>
8
+ #include <rays/color.h>
9
+ #include <rays/image.h>
10
+ #include <reflex/defs.h>
11
+ #include <reflex/selector.h>
12
+ #include <reflex/style_length.h>
13
+
14
+
15
+ namespace Reflex
16
+ {
17
+
18
+
19
+ class Style
20
+ {
21
+
22
+ typedef Style This;
23
+
24
+ public:
25
+
26
+ enum Flow {FLOW_NONE = 0, FLOW_DOWN, FLOW_RIGHT, FLOW_UP, FLOW_LEFT, FLOW_LAST};
27
+
28
+ typedef Selector:: iterator tag_iterator;
29
+
30
+ typedef Selector::const_iterator const_tag_iterator;
31
+
32
+ Style (const char* name = NULL);
33
+
34
+ Style (const This& obj);
35
+
36
+ Style& operator = (const This& obj);
37
+
38
+ ~Style ();
39
+
40
+ void set_name (const char* name);
41
+
42
+ const char* name () const;
43
+
44
+ void add_tag (const char* tag);
45
+
46
+ void remove_tag (const char* tag);
47
+
48
+ tag_iterator tag_begin ();
49
+
50
+ const_tag_iterator tag_begin () const;
51
+
52
+ tag_iterator tag_end ();
53
+
54
+ const_tag_iterator tag_end () const;
55
+
56
+ void set_selector (const Selector& selector);
57
+
58
+ Selector& selector ();
59
+
60
+ const Selector& selector () const;
61
+
62
+ void set_flow (Flow main, Flow sub = FLOW_NONE);
63
+
64
+ void get_flow (Flow* main, Flow* sub) const;
65
+
66
+ void set_size (const StyleLength2& size);
67
+
68
+ void set_width (const StyleLength& width);
69
+
70
+ void set_height (const StyleLength& height);
71
+
72
+ const StyleLength2& size () const;
73
+
74
+ void set_position (const StyleLength4& position);
75
+
76
+ void set_left (const StyleLength& left);
77
+
78
+ void set_top (const StyleLength& top);
79
+
80
+ void set_right (const StyleLength& right);
81
+
82
+ void set_bottom (const StyleLength& bottom);
83
+
84
+ const StyleLength4& position () const;
85
+
86
+ void set_offset (const StyleLength4& offset);
87
+
88
+ void set_offset_left (const StyleLength& left);
89
+
90
+ void set_offset_top (const StyleLength& top);
91
+
92
+ void set_offset_right (const StyleLength& right);
93
+
94
+ void set_offset_bottom (const StyleLength& bottom);
95
+
96
+ const StyleLength4& offset () const;
97
+
98
+ void set_margin (const StyleLength4& margin);
99
+
100
+ void set_margin_left (const StyleLength& left);
101
+
102
+ void set_margin_top (const StyleLength& top);
103
+
104
+ void set_margin_right (const StyleLength& right);
105
+
106
+ void set_margin_bottom (const StyleLength& bottom);
107
+
108
+ const StyleLength4& margin () const;
109
+
110
+ void set_padding (const StyleLength4& padding);
111
+
112
+ void set_padding_left (const StyleLength& left);
113
+
114
+ void set_padding_top (const StyleLength& top);
115
+
116
+ void set_padding_right (const StyleLength& right);
117
+
118
+ void set_padding_bottom (const StyleLength& bottom);
119
+
120
+ const StyleLength4& padding () const;
121
+
122
+ void set_background_color (const Color& value);
123
+
124
+ const Color& background_color () const;
125
+
126
+ void set_background_image (const Image& value);
127
+
128
+ const Image& background_image () const;
129
+
130
+ friend bool operator == (const This& lhs, const This& rhs);
131
+
132
+ friend bool operator != (const This& lhs, const This& rhs);
133
+
134
+ struct Data;
135
+
136
+ Xot::Ref<Data> ref;
137
+
138
+ };// Style
139
+
140
+
141
+ }// Reflex
142
+
143
+
144
+ #endif//EOH
@@ -0,0 +1,147 @@
1
+ // -*- c++ -*-
2
+ #pragma once
3
+ #ifndef __REFLEX_STYLE_LENGTH_H__
4
+ #define __REFLEX_STYLE_LENGTH_H__
5
+
6
+
7
+ #include <xot/pimpl.h>
8
+ #include <reflex/defs.h>
9
+
10
+
11
+ namespace Reflex
12
+ {
13
+
14
+
15
+ class StyleLength
16
+ {
17
+
18
+ public:
19
+
20
+ typedef coord Value;
21
+
22
+ enum Unit {NONE = 0, PIXEL, PERCENT, UNIT_LAST};
23
+
24
+ StyleLength ();
25
+
26
+ StyleLength (Value value, Unit unit = PIXEL);
27
+
28
+ explicit StyleLength (const char* str);
29
+
30
+ StyleLength copy () const;
31
+
32
+ void reset (Value value = 0, Unit unit = NONE);
33
+
34
+ void reset (const char* str);
35
+
36
+ Value value () const;
37
+
38
+ Unit unit () const;
39
+
40
+ bool get_pixel (coord* pixel, coord parent_size) const;
41
+
42
+ String to_s () const;
43
+
44
+ operator bool () const;
45
+
46
+ bool operator ! () const;
47
+
48
+ struct Data;
49
+
50
+ Xot::PImpl<Data, true> self;
51
+
52
+ };// StyleLength
53
+
54
+
55
+ class StyleLength2
56
+ {
57
+
58
+ public:
59
+
60
+ StyleLength2 ();
61
+
62
+ StyleLength2 (const StyleLength& all);
63
+
64
+ StyleLength2 (const StyleLength& width, const StyleLength& height);
65
+
66
+ StyleLength2 copy () const;
67
+
68
+ void set_width (const StyleLength& width);
69
+
70
+ const StyleLength& width () const;
71
+
72
+ void set_height (const StyleLength& height);
73
+
74
+ const StyleLength& height () const;
75
+
76
+ size_t size () const;
77
+
78
+ StyleLength& operator [] (size_t i);
79
+
80
+ const StyleLength& operator [] (size_t i) const;
81
+
82
+ struct Data;
83
+
84
+ Xot::PImpl<Data, true> self;
85
+
86
+ };// StyleLength2
87
+
88
+
89
+ class StyleLength4
90
+ {
91
+
92
+ public:
93
+
94
+ StyleLength4 ();
95
+
96
+ StyleLength4 (const StyleLength& all);
97
+
98
+ StyleLength4 (
99
+ const StyleLength& horizontal,
100
+ const StyleLength& vertical);
101
+
102
+ StyleLength4 (
103
+ const StyleLength& left,
104
+ const StyleLength& vertical,
105
+ const StyleLength& right);
106
+
107
+ StyleLength4 (
108
+ const StyleLength& left,
109
+ const StyleLength& top,
110
+ const StyleLength& right,
111
+ const StyleLength& bottom);
112
+
113
+ StyleLength4 copy () const;
114
+
115
+ void set_left (const StyleLength& left);
116
+
117
+ const StyleLength& left () const;
118
+
119
+ void set_top (const StyleLength& top);
120
+
121
+ const StyleLength& top () const;
122
+
123
+ void set_right (const StyleLength& right);
124
+
125
+ const StyleLength& right () const;
126
+
127
+ void set_bottom (const StyleLength& bottom);
128
+
129
+ const StyleLength& bottom () const;
130
+
131
+ size_t size () const;
132
+
133
+ StyleLength& operator [] (size_t i);
134
+
135
+ const StyleLength& operator [] (size_t i) const;
136
+
137
+ struct Data;
138
+
139
+ Xot::PImpl<Data, true> self;
140
+
141
+ };// StyleLength4
142
+
143
+
144
+ }// Reflex
145
+
146
+
147
+ #endif//EOH
@@ -7,7 +7,13 @@
7
7
  #include <vector>
8
8
  #include <xot/ref.h>
9
9
  #include <xot/pimpl.h>
10
+ #include <rays/point.h>
10
11
  #include <reflex/defs.h>
12
+ #include <reflex/style.h>
13
+ #include <reflex/event.h>
14
+
15
+
16
+ //#define REFLEX_VIEW_REF_DEBUG 1
11
17
 
12
18
 
13
19
  namespace Rays
@@ -36,36 +42,135 @@ namespace Reflex
36
42
 
37
43
  typedef Xot::Ref<This> Ref;
38
44
 
39
- View ();
45
+ typedef std::vector<Ref> ChildList;
40
46
 
41
- virtual bool show ();
47
+ typedef std::vector<Style> StyleList;
42
48
 
43
- virtual bool hide ();
49
+ typedef ChildList:: iterator child_iterator;
44
50
 
45
- virtual bool redraw ();
51
+ typedef ChildList::const_iterator const_child_iterator;
46
52
 
47
- virtual bool add_child (View* child);
53
+ typedef StyleList:: iterator style_iterator;
48
54
 
49
- virtual bool remove_child (View* child);
55
+ typedef StyleList::const_iterator const_style_iterator;
50
56
 
51
- virtual View* find_child (
52
- const char* name, size_t index = 0, bool recursive = false);
57
+ typedef Selector:: iterator tag_iterator;
53
58
 
54
- virtual const View* find_child (
55
- const char* name, size_t index = 0, bool recursive = false) const;
59
+ typedef Selector:: const_iterator const_tag_iterator;
56
60
 
57
- virtual bool set_name (const char* name);
61
+ enum Capture
62
+ {
58
63
 
59
- virtual const char* name () const;
64
+ CAPTURE_NONE = 0,
65
+
66
+ CAPTURE_KEY = 0x1 << 0,
67
+
68
+ CAPTURE_POINTER = 0x1 << 1,
60
69
 
61
- virtual bool set_bounds (coord x, coord y, coord width, coord height);
70
+ CAPTURE_ALL = CAPTURE_KEY | CAPTURE_POINTER,
62
71
 
63
- virtual bool set_bounds (const Bounds& bounds);
72
+ };// Capture
64
73
 
65
- virtual const Bounds& bounds () const;
74
+ View (const char* name = NULL);
75
+
76
+ virtual void show ();
77
+
78
+ virtual void hide ();
66
79
 
67
80
  virtual bool hidden () const;
68
81
 
82
+ virtual void redraw ();
83
+
84
+ virtual void add_child (View* child);
85
+
86
+ virtual void remove_child (View* child);
87
+
88
+ virtual void find_children (
89
+ ChildList* result, const Selector& selector, bool recursive = false) const;
90
+
91
+ virtual child_iterator child_begin ();
92
+
93
+ virtual const_child_iterator child_begin () const;
94
+
95
+ virtual child_iterator child_end ();
96
+
97
+ virtual const_child_iterator child_end () const;
98
+
99
+ virtual Style& style ();
100
+
101
+ virtual const Style& style () const;
102
+
103
+ virtual void add_style (const Style& style);
104
+
105
+ virtual void remove_style (const Style& style);
106
+
107
+ virtual Style* get_style (const Selector& selector);
108
+
109
+ virtual const Style* get_style (const Selector& selector) const;
110
+
111
+ virtual void find_styles (
112
+ StyleList* result, const Selector& selector, bool recursive = false) const;
113
+
114
+ virtual style_iterator style_begin ();
115
+
116
+ virtual const_style_iterator style_begin () const;
117
+
118
+ virtual style_iterator style_end ();
119
+
120
+ virtual const_style_iterator style_end () const;
121
+
122
+ virtual void focus (bool state = true);
123
+
124
+ virtual void blur ();
125
+
126
+ virtual bool has_focus () const;
127
+
128
+ virtual void resize_to_fit ();
129
+
130
+ virtual Rays::Point content_size () const;
131
+
132
+ virtual void set_name (const char* name);
133
+
134
+ virtual const char* name () const;
135
+
136
+ virtual void add_tag (const char* tag);
137
+
138
+ virtual void remove_tag (const char* tag);
139
+
140
+ virtual tag_iterator tag_begin ();
141
+
142
+ virtual const_tag_iterator tag_begin () const;
143
+
144
+ virtual tag_iterator tag_end ();
145
+
146
+ virtual const_tag_iterator tag_end () const;
147
+
148
+ virtual void set_selector (const Selector& selector);
149
+
150
+ virtual Selector& selector ();
151
+
152
+ virtual const Selector& selector () const;
153
+
154
+ virtual void set_frame (coord x, coord y, coord width, coord height);
155
+
156
+ virtual void set_frame (const Bounds& bounds);
157
+
158
+ virtual const Bounds& frame () const;
159
+
160
+ virtual void scroll_to (coord x, coord y, coord z = 0);
161
+
162
+ virtual void scroll_to (const Rays::Point& scroll);
163
+
164
+ virtual void scroll_by (coord x, coord y, coord z = 0);
165
+
166
+ virtual void scroll_by (const Rays::Point& dscroll);
167
+
168
+ virtual const Rays::Point& scroll () const;
169
+
170
+ virtual void set_capture (uint types);
171
+
172
+ virtual uint capture () const;
173
+
69
174
  virtual View* parent ();
70
175
 
71
176
  virtual const View* parent () const;
@@ -74,13 +179,53 @@ namespace Reflex
74
179
 
75
180
  virtual const Window* window () const;
76
181
 
77
- virtual void update (float dt);
182
+ virtual Rays::Point from_parent (const Rays::Point& point) const;
183
+
184
+ virtual Rays::Point to_parent (const Rays::Point& point) const;
185
+
186
+ virtual Rays::Point from_window (const Rays::Point& point) const;
187
+
188
+ virtual Rays::Point to_window (const Rays::Point& point) const;
78
189
 
79
- virtual void draw (Painter* p, const Bounds& b);
190
+ virtual Rays::Point from_screen (const Rays::Point& point) const;
80
191
 
81
- virtual void moved (coord dx, coord dy);
192
+ virtual Rays::Point to_screen (const Rays::Point& point) const;
82
193
 
83
- virtual void resized (coord dwidth, coord dheight);
194
+ virtual void on_attach (Event* e);
195
+
196
+ virtual void on_detach (Event* e);
197
+
198
+ virtual void on_update (UpdateEvent* e);
199
+
200
+ virtual void on_draw (DrawEvent* e);
201
+
202
+ virtual void on_move (FrameEvent* e);
203
+
204
+ virtual void on_resize (FrameEvent* e);
205
+
206
+ virtual void on_scroll (ScrollEvent* e);
207
+
208
+ virtual void on_focus (FocusEvent* e);
209
+
210
+ virtual void on_blur (FocusEvent* e);
211
+
212
+ virtual void on_key (KeyEvent* e);
213
+
214
+ virtual void on_key_down (KeyEvent* e);
215
+
216
+ virtual void on_key_up (KeyEvent* e);
217
+
218
+ virtual void on_pointer (PointerEvent* e);
219
+
220
+ virtual void on_pointer_down (PointerEvent* e);
221
+
222
+ virtual void on_pointer_up (PointerEvent* e);
223
+
224
+ virtual void on_pointer_move (PointerEvent* e);
225
+
226
+ virtual void on_wheel (WheelEvent* e);
227
+
228
+ virtual void on_capture (CaptureEvent* e);
84
229
 
85
230
  virtual operator bool () const;
86
231
 
@@ -90,6 +235,24 @@ namespace Reflex
90
235
 
91
236
  Xot::PImpl<Data> self;
92
237
 
238
+ #ifdef REFLEX_VIEW_REF_DEBUG
239
+ virtual void retain (void* data = NULL) const
240
+ {
241
+ RefCountable::retain(data);
242
+ String spaces = "";
243
+ for (int i = 0; i < refc_count(); ++i) spaces += " ";
244
+ printf("(%d)%s-> %s\n", refc_count(), spaces.c_str(), name());
245
+ }
246
+
247
+ virtual void release (void* data = NULL) const
248
+ {
249
+ RefCountable::release(data);
250
+ String spaces = "";
251
+ for (int i = 0; i < refc_count(); ++i) spaces += " ";
252
+ printf("(%d)%s<- %s\n", refc_count(), spaces.c_str(), name());
253
+ }
254
+ #endif// REFLEX_VIEW_REF_DEBUG
255
+
93
256
  protected:
94
257
 
95
258
  virtual ~View ();
@@ -6,13 +6,15 @@
6
6
 
7
7
  #include <xot/ref.h>
8
8
  #include <xot/pimpl.h>
9
+ #include <rays/point.h>
9
10
  #include <reflex/defs.h>
11
+ #include <reflex/event.h>
10
12
 
11
13
 
12
14
  namespace Rays
13
15
  {
14
16
 
15
- class Bounds;
17
+ struct Bounds;
16
18
 
17
19
  class Painter;
18
20
 
@@ -37,23 +39,23 @@ namespace Reflex
37
39
 
38
40
  Window ();
39
41
 
40
- virtual bool show ();
42
+ virtual void show ();
41
43
 
42
- virtual bool hide ();
44
+ virtual void hide ();
43
45
 
44
- virtual bool close ();
46
+ virtual void close ();
45
47
 
46
- virtual bool redraw ();
48
+ virtual void redraw ();
47
49
 
48
- virtual bool set_title (const char* title);
50
+ virtual void set_title (const char* title);
49
51
 
50
52
  virtual const char* title () const;
51
53
 
52
- virtual bool set_bounds (coord x, coord y, coord width, coord height);
54
+ virtual void set_frame (coord x, coord y, coord width, coord height);
53
55
 
54
- virtual bool set_bounds (const Bounds& bounds);
56
+ virtual void set_frame (const Bounds& bounds);
55
57
 
56
- virtual Bounds bounds () const;
58
+ virtual Bounds frame () const;
57
59
 
58
60
  virtual bool hidden () const;
59
61
 
@@ -61,27 +63,41 @@ namespace Reflex
61
63
 
62
64
  virtual const View* root () const;
63
65
 
66
+ virtual View* focus ();
67
+
68
+ virtual const View* focus () const;
69
+
64
70
  virtual Painter* painter ();
65
71
 
66
72
  virtual const Painter* painter () const;
67
73
 
68
- virtual void update (float dt);
74
+ virtual Rays::Point from_screen (const Rays::Point& point) const;
75
+
76
+ virtual Rays::Point to_screen (const Rays::Point& point) const;
77
+
78
+ virtual void on_update (UpdateEvent* e);
79
+
80
+ virtual void on_draw (DrawEvent* e);
81
+
82
+ virtual void on_move (FrameEvent* e);
83
+
84
+ virtual void on_resize (FrameEvent* e);
69
85
 
70
- virtual void draw ();
86
+ virtual void on_key (KeyEvent* e);
71
87
 
72
- virtual void moved (coord x, coord y);
88
+ virtual void on_key_down (KeyEvent* e);
73
89
 
74
- virtual void resized (coord width, coord height);
90
+ virtual void on_key_up (KeyEvent* e);
75
91
 
76
- virtual void key_down (const Key& key);
92
+ virtual void on_pointer (PointerEvent* e);
77
93
 
78
- virtual void key_up (const Key& key);
94
+ virtual void on_pointer_down (PointerEvent* e);
79
95
 
80
- virtual void points_down (const Points& points);
96
+ virtual void on_pointer_up (PointerEvent* e);
81
97
 
82
- virtual void points_up (const Points& points);
98
+ virtual void on_pointer_move (PointerEvent* e);
83
99
 
84
- virtual void points_moved (const Points& points);
100
+ virtual void on_wheel (WheelEvent* e);
85
101
 
86
102
  operator bool () const;
87
103
 
@@ -89,7 +105,7 @@ namespace Reflex
89
105
 
90
106
  struct Data;
91
107
 
92
- Xot::PImpl<Data, true> self;
108
+ Xot::PImpl<Data> self;
93
109
 
94
110
  protected:
95
111
 
data/include/reflex.h CHANGED
@@ -7,9 +7,16 @@
7
7
  #include <reflex/defs.h>
8
8
  #include <reflex/reflex.h>
9
9
  #include <reflex/exception.h>
10
+
11
+ #include <reflex/selector.h>
12
+ #include <reflex/style.h>
13
+ #include <reflex/event.h>
14
+
10
15
  #include <reflex/application.h>
11
16
  #include <reflex/window.h>
12
17
  #include <reflex/view.h>
13
18
 
19
+ #include <reflex/image_view.h>
20
+
14
21
 
15
22
  #endif//EOH
@@ -1,9 +1,10 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
3
 
4
- require 'xot/hookable'
5
4
  require 'xot/setter'
5
+ require 'xot/block_util'
6
6
  require 'reflex/ext'
7
+ require 'reflex/helper'
7
8
 
8
9
 
9
10
  module Reflex
@@ -11,13 +12,21 @@ module Reflex
11
12
 
12
13
  class Application
13
14
 
14
- include Xot::Hookable
15
15
  include Xot::Setter
16
+ include Hookable
16
17
 
17
- def initialize (opts = {})
18
+ def initialize (opts = {}, &block)
18
19
  super()
19
- opts.each {|key, value| set key.intern, *value}
20
- yield self if block_given?
20
+ set opts
21
+ @start_block = block
22
+ end
23
+
24
+ def on_start (e)
25
+ Xot::BlockUtil.instance_eval_or_block_call self, &@start_block if @start_block
26
+ end
27
+
28
+ def self.start (*args, &block)
29
+ self.new(*args, &block).start
21
30
  end
22
31
 
23
32
  end# Application