reflexion 0.1.10 → 0.1.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/.doc/ext/reflex/body.cpp +53 -0
  3. data/.doc/ext/reflex/native.cpp +0 -4
  4. data/.doc/ext/reflex/selector.cpp +3 -3
  5. data/.doc/ext/reflex/style.cpp +390 -30
  6. data/.doc/ext/reflex/style_length.cpp +1 -1
  7. data/.doc/ext/reflex/view.cpp +24 -6
  8. data/VERSION +1 -1
  9. data/ext/reflex/body.cpp +59 -0
  10. data/ext/reflex/native.cpp +0 -4
  11. data/ext/reflex/selector.cpp +3 -3
  12. data/ext/reflex/style.cpp +432 -32
  13. data/ext/reflex/style_length.cpp +1 -1
  14. data/ext/reflex/view.cpp +25 -5
  15. data/include/reflex/body.h +16 -0
  16. data/include/reflex/ruby.h +5 -3
  17. data/include/reflex/ruby/style.h +11 -0
  18. data/include/reflex/selector.h +7 -1
  19. data/include/reflex/style.h +93 -27
  20. data/include/reflex/view.h +8 -4
  21. data/lib/reflex.rb +0 -2
  22. data/lib/reflex/body.rb +1 -0
  23. data/lib/reflex/button.rb +1 -0
  24. data/lib/reflex/selector.rb +10 -1
  25. data/lib/reflex/style.rb +15 -0
  26. data/lib/reflex/style_length.rb +1 -1
  27. data/lib/reflex/view.rb +5 -2
  28. data/lib/reflex/window.rb +2 -2
  29. data/samples/reflexion/breakout.rb +4 -9
  30. data/src/body.cpp +61 -0
  31. data/src/ios/event.mm +1 -3
  32. data/src/ios/native_window.mm +3 -20
  33. data/src/ios/opengl_view.mm +1 -1
  34. data/src/ios/window.mm +7 -0
  35. data/src/selector.cpp +38 -16
  36. data/src/style.cpp +515 -161
  37. data/src/view.cpp +371 -242
  38. data/src/world.cpp +8 -0
  39. data/test/test_selector.rb +14 -12
  40. data/test/test_style.rb +11 -6
  41. data/test/test_style_length.rb +5 -6
  42. data/test/test_view.rb +8 -7
  43. metadata +2 -17
  44. data/.doc/ext/reflex/style_length2.cpp +0 -149
  45. data/.doc/ext/reflex/style_length4.cpp +0 -192
  46. data/ext/reflex/style_length2.cpp +0 -157
  47. data/ext/reflex/style_length4.cpp +0 -204
  48. data/include/reflex/ruby/style_length.h +0 -63
  49. data/include/reflex/style_length.h +0 -147
  50. data/lib/reflex/style_length2.rb +0 -34
  51. data/lib/reflex/style_length4.rb +0 -38
  52. data/src/style_length.cpp +0 -341
  53. data/test/test_style_length2.rb +0 -50
  54. data/test/test_style_length4.rb +0 -56
@@ -1,4 +1,4 @@
1
- #include "reflex/ruby/style_length.h"
1
+ #include "reflex/ruby/style.h"
2
2
 
3
3
 
4
4
  #include <rucy.h>
data/ext/reflex/view.cpp CHANGED
@@ -141,15 +141,17 @@ RUCY_DEF1(remove_style, style)
141
141
  RUCY_END
142
142
 
143
143
  static
144
- RUCY_DEFN(get_style)
144
+ RUCY_DEF1(get_style, selector)
145
145
  {
146
146
  CHECK;
147
- check_arg_count(__FILE__, __LINE__, "View#get_style", argc, 0, 1);
148
147
 
149
- if (argc == 0)
150
- return value(THIS->style());
148
+ Reflex::Style* s = NULL;
149
+ if (selector)
150
+ s = THIS->get_style(to<Reflex::Selector>(selector), true);
151
151
  else
152
- return value(THIS->get_style(to<Reflex::Selector>(argv[0])));
152
+ s = THIS->style(true);
153
+
154
+ return s ? value(*s) : nil();
153
155
  }
154
156
  RUCY_END
155
157
 
@@ -320,6 +322,22 @@ RUCY_DEF0(get_frame)
320
322
  }
321
323
  RUCY_END
322
324
 
325
+ static
326
+ RUCY_DEF1(set_zoom, zoom)
327
+ {
328
+ CHECK;
329
+ THIS->set_zoom(to<float>(zoom));
330
+ }
331
+ RUCY_END
332
+
333
+ static
334
+ RUCY_DEF0(get_zoom)
335
+ {
336
+ CHECK;
337
+ return value(THIS->zoom());
338
+ }
339
+ RUCY_END
340
+
323
341
  static
324
342
  RUCY_DEF0(get_angle)
325
343
  {
@@ -709,6 +727,8 @@ Init_view ()
709
727
  cView.define_method("selector", get_selector);
710
728
  cView.define_private_method("set_frame", set_frame);
711
729
  cView.define_private_method("get_frame", get_frame);
730
+ cView.define_method("zoom=", set_zoom);
731
+ cView.define_method("zoom", get_zoom);
712
732
  cView.define_method("angle", get_angle);
713
733
  cView.define_method("scroll_to", scroll_to);
714
734
  cView.define_method("scroll_by", scroll_by);
@@ -67,6 +67,18 @@ namespace Reflex
67
67
 
68
68
  float angular_velocity () const;
69
69
 
70
+ void apply_force (coord x, coord y);
71
+
72
+ void apply_force (const Point& force);
73
+
74
+ void apply_torque (float torque);
75
+
76
+ void apply_linear_impulse (coord x, coord y);
77
+
78
+ void apply_linear_impulse (const Point& impulse);
79
+
80
+ void apply_angular_impulse (float impulse);
81
+
70
82
  void set_density (float density);
71
83
 
72
84
  float density () const;
@@ -79,6 +91,10 @@ namespace Reflex
79
91
 
80
92
  float restitution () const;
81
93
 
94
+ void set_gravity_scale (float scale);
95
+
96
+ float gravity_scale () const;
97
+
82
98
  iterator begin ();
83
99
 
84
100
  const_iterator begin () const;
@@ -5,14 +5,16 @@
5
5
 
6
6
 
7
7
  #include <reflex/ruby/reflex.h>
8
- #include <reflex/ruby/application.h>
9
- #include <reflex/ruby/window.h>
10
- #include <reflex/ruby/view.h>
11
8
  #include <reflex/ruby/selector.h>
12
9
  #include <reflex/ruby/style.h>
13
10
  #include <reflex/ruby/event.h>
14
11
  #include <reflex/ruby/body.h>
15
12
  #include <reflex/ruby/fixture.h>
13
+ #include <reflex/ruby/application.h>
14
+ #include <reflex/ruby/window.h>
15
+ #include <reflex/ruby/view.h>
16
+ #include <reflex/ruby/image_view.h>
17
+ #include <reflex/ruby/shape_view.h>
16
18
 
17
19
 
18
20
  #endif//EOH
@@ -14,6 +14,9 @@ namespace Reflex
14
14
  {
15
15
 
16
16
 
17
+ Rucy::Class style_length_class ();
18
+ // class Reflex::StyleLength
19
+
17
20
  Rucy::Class style_class ();
18
21
  // class Reflex::Style
19
22
 
@@ -21,6 +24,8 @@ namespace Reflex
21
24
  }// Reflex
22
25
 
23
26
 
27
+ RUCY_DECLARE_VALUE_FROM_TO(Reflex::StyleLength)
28
+
24
29
  RUCY_DECLARE_VALUE_FROM_TO(Reflex::Style)
25
30
 
26
31
 
@@ -28,6 +33,12 @@ namespace Rucy
28
33
  {
29
34
 
30
35
 
36
+ template <> inline Class
37
+ get_ruby_class<Reflex::StyleLength> ()
38
+ {
39
+ return Reflex::style_length_class();
40
+ }
41
+
31
42
  template <> inline Class
32
43
  get_ruby_class<Reflex::Style> ()
33
44
  {
@@ -29,6 +29,10 @@ namespace Reflex
29
29
 
30
30
  Selector (const char* name = NULL);
31
31
 
32
+ This copy () const;
33
+
34
+ bool contains (const This& selector) const;
35
+
32
36
  void set_name (const char* name);
33
37
 
34
38
  const char* name () const;
@@ -45,12 +49,14 @@ namespace Reflex
45
49
 
46
50
  const_iterator end () const;
47
51
 
48
- bool match (const This& obj) const;
52
+ bool is_empty () const;
49
53
 
50
54
  friend bool operator == (const This& lhs, const This& rhs);
51
55
 
52
56
  friend bool operator != (const This& lhs, const This& rhs);
53
57
 
58
+ friend bool operator < (const This& lhs, const This& rhs);
59
+
54
60
  struct Data;
55
61
 
56
62
  Xot::PImpl<Data, true> self;
@@ -4,17 +4,63 @@
4
4
  #define __REFLEX_STYLE_H__
5
5
 
6
6
 
7
- #include <xot/ref.h>
7
+ #include <xot/pimpl.h>
8
8
  #include <reflex/color.h>
9
9
  #include <reflex/image.h>
10
10
  #include <reflex/selector.h>
11
- #include <reflex/style_length.h>
12
11
 
13
12
 
14
13
  namespace Reflex
15
14
  {
16
15
 
17
16
 
17
+ class View;
18
+
19
+
20
+ class StyleLength
21
+ {
22
+
23
+ typedef StyleLength This;
24
+
25
+ public:
26
+
27
+ typedef coord Value;
28
+
29
+ enum Unit {NONE = 0, PIXEL, PERCENT, UNIT_LAST};
30
+
31
+ StyleLength ();
32
+
33
+ StyleLength (Value value, Unit unit = PIXEL);
34
+
35
+ explicit StyleLength (const char* str);
36
+
37
+ This copy () const;
38
+
39
+ void reset (Value value = 0, Unit unit = NONE);
40
+
41
+ void reset (const char* str);
42
+
43
+ Value value () const;
44
+
45
+ Unit unit () const;
46
+
47
+ String to_s () const;
48
+
49
+ operator bool () const;
50
+
51
+ bool operator ! () const;
52
+
53
+ friend bool operator == (const This& lhs, const This& rhs);
54
+
55
+ friend bool operator != (const This& lhs, const This& rhs);
56
+
57
+ struct Data;
58
+
59
+ Xot::PImpl<Data, true> self;
60
+
61
+ };// StyleLength
62
+
63
+
18
64
  class Style
19
65
  {
20
66
 
@@ -22,7 +68,11 @@ namespace Reflex
22
68
 
23
69
  public:
24
70
 
25
- enum Flow {FLOW_NONE = 0, FLOW_DOWN, FLOW_RIGHT, FLOW_UP, FLOW_LEFT, FLOW_LAST};
71
+ enum Flow
72
+ {
73
+ FLOW_NONE = 0, FLOW_RIGHT, FLOW_DOWN, FLOW_LEFT, FLOW_UP,
74
+ FLOW_LAST
75
+ };
26
76
 
27
77
  typedef Selector:: iterator tag_iterator;
28
78
 
@@ -30,10 +80,6 @@ namespace Reflex
30
80
 
31
81
  Style (const char* name = NULL);
32
82
 
33
- Style (const This& obj);
34
-
35
- Style& operator = (const This& obj);
36
-
37
83
  ~Style ();
38
84
 
39
85
  void set_name (const char* name);
@@ -62,27 +108,29 @@ namespace Reflex
62
108
 
63
109
  void get_flow (Flow* main, Flow* sub) const;
64
110
 
65
- void set_size (const StyleLength2& size);
66
-
67
111
  void set_width (const StyleLength& width);
68
112
 
69
113
  void set_height (const StyleLength& height);
70
114
 
71
- const StyleLength2& size () const;
115
+ const StyleLength& width () const;
116
+
117
+ const StyleLength& height () const;
72
118
 
73
- void set_position (const StyleLength4& position);
119
+ void set_left (const StyleLength& left);
74
120
 
75
- void set_left (const StyleLength& left);
121
+ void set_top (const StyleLength& top);
76
122
 
77
- void set_top (const StyleLength& top);
123
+ void set_right (const StyleLength& right);
78
124
 
79
- void set_right (const StyleLength& right);
125
+ void set_bottom (const StyleLength& bottom);
80
126
 
81
- void set_bottom (const StyleLength& bottom);
127
+ const StyleLength& left () const;
82
128
 
83
- const StyleLength4& position () const;
129
+ const StyleLength& top () const;
84
130
 
85
- void set_offset (const StyleLength4& offset);
131
+ const StyleLength& right () const;
132
+
133
+ const StyleLength& bottom () const;
86
134
 
87
135
  void set_offset_left (const StyleLength& left);
88
136
 
@@ -92,9 +140,13 @@ namespace Reflex
92
140
 
93
141
  void set_offset_bottom (const StyleLength& bottom);
94
142
 
95
- const StyleLength4& offset () const;
143
+ const StyleLength& offset_left () const;
144
+
145
+ const StyleLength& offset_top () const;
146
+
147
+ const StyleLength& offset_right () const;
96
148
 
97
- void set_margin (const StyleLength4& margin);
149
+ const StyleLength& offset_bottom () const;
98
150
 
99
151
  void set_margin_left (const StyleLength& left);
100
152
 
@@ -104,9 +156,13 @@ namespace Reflex
104
156
 
105
157
  void set_margin_bottom (const StyleLength& bottom);
106
158
 
107
- const StyleLength4& margin () const;
159
+ const StyleLength& margin_left () const;
160
+
161
+ const StyleLength& margin_top () const;
162
+
163
+ const StyleLength& margin_right () const;
108
164
 
109
- void set_padding (const StyleLength4& padding);
165
+ const StyleLength& margin_bottom () const;
110
166
 
111
167
  void set_padding_left (const StyleLength& left);
112
168
 
@@ -116,15 +172,25 @@ namespace Reflex
116
172
 
117
173
  void set_padding_bottom (const StyleLength& bottom);
118
174
 
119
- const StyleLength4& padding () const;
175
+ const StyleLength& padding_left () const;
176
+
177
+ const StyleLength& padding_top () const;
178
+
179
+ const StyleLength& padding_right () const;
180
+
181
+ const StyleLength& padding_bottom () const;
182
+
183
+ void set_fill (const Color& fill);
184
+
185
+ const Color& fill () const;
120
186
 
121
- void set_background_color (const Color& value);
187
+ void set_stroke (const Color& stroke);
122
188
 
123
- const Color& background_color () const;
189
+ const Color& stroke () const;
124
190
 
125
- void set_background_image (const Image& value);
191
+ void set_image (const Image& image);
126
192
 
127
- const Image& background_image () const;
193
+ const Image& image () const;
128
194
 
129
195
  friend bool operator == (const This& lhs, const This& rhs);
130
196
 
@@ -132,7 +198,7 @@ namespace Reflex
132
198
 
133
199
  struct Data;
134
200
 
135
- Xot::Ref<Data> ref;
201
+ Xot::PImpl<Data, true> self;
136
202
 
137
203
  };// Style
138
204
 
@@ -89,15 +89,15 @@ namespace Reflex
89
89
 
90
90
  virtual const_child_iterator child_end () const;
91
91
 
92
- virtual Style& style ();
92
+ virtual Style* style (bool create = false);
93
93
 
94
- virtual const Style& style () const;
94
+ virtual const Style* style () const;
95
95
 
96
96
  virtual void add_style (const Style& style);
97
97
 
98
98
  virtual void remove_style (const Style& style);
99
99
 
100
- virtual Style* get_style (const Selector& selector);
100
+ virtual Style* get_style (const Selector& selector, bool create = false);
101
101
 
102
102
  virtual const Style* get_style (const Selector& selector) const;
103
103
 
@@ -122,7 +122,7 @@ namespace Reflex
122
122
 
123
123
  virtual Point content_size () const;
124
124
 
125
- virtual void make_body ();
125
+ virtual void make_body ();
126
126
 
127
127
  virtual void clear_body ();
128
128
 
@@ -154,6 +154,10 @@ namespace Reflex
154
154
 
155
155
  virtual const Bounds& frame () const;
156
156
 
157
+ virtual void set_zoom (float zoom);
158
+
159
+ virtual float zoom () const;
160
+
157
161
  virtual float angle () const;
158
162
 
159
163
  virtual void scroll_to (coord x, coord y, coord z = 0);
data/lib/reflex.rb CHANGED
@@ -21,8 +21,6 @@ require 'reflex/helper'
21
21
  require 'reflex/selector'
22
22
  require 'reflex/style'
23
23
  require 'reflex/style_length'
24
- require 'reflex/style_length2'
25
- require 'reflex/style_length4'
26
24
 
27
25
  require 'reflex/update_event'
28
26
  require 'reflex/draw_event'
data/lib/reflex/body.rb CHANGED
@@ -13,6 +13,7 @@ module Reflex
13
13
 
14
14
  alias velocity= linear_velocity=
15
15
  alias velocity linear_velocity
16
+ alias apply_impulse apply_linear_impulse
16
17
  alias meter meter2pixel
17
18
 
18
19
  end# Body
data/lib/reflex/button.rb CHANGED
@@ -16,6 +16,7 @@ module Reflex
16
16
  def initialize (*args, &block)
17
17
  self.data = false
18
18
  super
19
+ self.text = self.name unless self.text
19
20
  end
20
21
 
21
22
  def content_size ()
@@ -15,14 +15,23 @@ module Reflex
15
15
  include Xot::Setter
16
16
  include HasTags
17
17
 
18
+ def self.selector (*args)
19
+ arg0 = args.first
20
+ arg0.kind_of?(Selector) ? arg0 : self.new(*args)
21
+ end
22
+
18
23
  def initialize (opts = {}, &block)
19
24
  super()
20
25
  set opts
21
26
  Xot::BlockUtil.instance_eval_or_block_call self, &block if block
22
27
  end
23
28
 
29
+ def to_s ()
30
+ "{name:#{name}, tags:[#{tags.to_a.join ', '}]}"
31
+ end
32
+
24
33
  def inspect ()
25
- "#<#{self.class} name:'#{name}' tags:[#{tags.map{|s| "'#{s}'"}.to_a.join ','}]>"
34
+ "#<#{self.class} #{to_s}>"
26
35
  end
27
36
 
28
37
  end# Selector