reflexion 0.1.34 → 0.1.35

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2a4e06dbe75f97139a975134d48605a0b0fbdcd9fc5b9198ad8b9383c1eb0a49
4
- data.tar.gz: 421779117f618c4fd0b9f196c5ad6b5348179a44d6ea8687afa723df4cad5e18
3
+ metadata.gz: 88e172697e7085255c08f0220a6592200fcbc4d5012229206366df618371de1a
4
+ data.tar.gz: 0317cc066436f70cc785dc90606d6a4afa4b87a96828eb14ad33376af793a72b
5
5
  SHA512:
6
- metadata.gz: eed1fbdfe875d01fe1ce577d986ca148e910147acb4de5206b0933b2100c1c85a35871b294c634e09d3c2b9582091fb46b145cf651c39cd4f0b4549c7ea2dc39
7
- data.tar.gz: af03b8b695a62fdeca0332c6c32fd5b049987cb276ff11a6ffe88472478eb1c543f634c48fb3d40696f7a55667745666019e6bf5a925ebe6239b1325bd39b5c7
6
+ metadata.gz: 38882598ccd05a6706d786cde3f0cb9ebba761acc43d617750ee2ea7cfc934c9a8dab263484f376e5ff80d11c50d945712030b81755f8073478282cfbb72726e
7
+ data.tar.gz: 116b7bb65329e97e56b85c36793d082d5cab42534a0eb3577c48af84db49f562c0a2b707b46c9a1223a20adea256a986e530f60d15062328ec17eef0fcaca437
@@ -20,7 +20,7 @@ VALUE alloc(VALUE klass)
20
20
  }
21
21
 
22
22
  static
23
- VALUE initialize(VALUE self, VALUE frame, VALUE dx, VALUE dy, VALUE dwidth, VALUE dheight, VALUE angle, VALUE dangle)
23
+ VALUE initialize(VALUE self, VALUE frame, VALUE dx, VALUE dy, VALUE dwidth, VALUE dheight, VALUE zoom, VALUE dzoom, VALUE angle, VALUE dangle)
24
24
  {
25
25
  CHECK;
26
26
 
@@ -28,6 +28,7 @@ VALUE initialize(VALUE self, VALUE frame, VALUE dx, VALUE dy, VALUE dwidth, VALU
28
28
  to<Rays::Bounds>(frame),
29
29
  to<coord>(dx), to<coord>(dy),
30
30
  to<coord>(dwidth), to<coord>(dheight),
31
+ to<float>(zoom), to<float>(dzoom),
31
32
  to<float>(angle), to<float>(dangle));
32
33
 
33
34
  return rb_call_super(0, NULL);
@@ -90,6 +91,20 @@ VALUE dsize(VALUE self)
90
91
  return value(Rays::Point(THIS->dwidth(), THIS->dheight()));
91
92
  }
92
93
 
94
+ static
95
+ VALUE zoom(VALUE self)
96
+ {
97
+ CHECK;
98
+ return value(THIS->zoom());
99
+ }
100
+
101
+ static
102
+ VALUE dzoom(VALUE self)
103
+ {
104
+ CHECK;
105
+ return value(THIS->dzoom());
106
+ }
107
+
93
108
  static
94
109
  VALUE angle(VALUE self)
95
110
  {
@@ -118,6 +133,13 @@ VALUE is_resize(VALUE self)
118
133
  return value(THIS->is_resize());
119
134
  }
120
135
 
136
+ static
137
+ VALUE is_zoom(VALUE self)
138
+ {
139
+ CHECK;
140
+ return value(THIS->is_zoom());
141
+ }
142
+
121
143
  static
122
144
  VALUE is_rotate(VALUE self)
123
145
  {
@@ -135,7 +157,7 @@ Init_reflex_frame_event ()
135
157
 
136
158
  cFrameEvent = mReflex.define_class("FrameEvent", Reflex::event_class());
137
159
  rb_define_alloc_func(cFrameEvent, alloc);
138
- rb_define_private_method(cFrameEvent, "initialize", RUBY_METHOD_FUNC(initialize), 7);
160
+ rb_define_private_method(cFrameEvent, "initialize", RUBY_METHOD_FUNC(initialize), 9);
139
161
  rb_define_private_method(cFrameEvent, "initialize_copy", RUBY_METHOD_FUNC(initialize_copy), 1);
140
162
  rb_define_method(cFrameEvent, "frame", RUBY_METHOD_FUNC(frame), 0);
141
163
  rb_define_method(cFrameEvent, "dx", RUBY_METHOD_FUNC(dx), 0);
@@ -144,10 +166,13 @@ Init_reflex_frame_event ()
144
166
  rb_define_method(cFrameEvent, "dheight", RUBY_METHOD_FUNC(dheight), 0);
145
167
  rb_define_method(cFrameEvent, "dposition", RUBY_METHOD_FUNC(dposition), 0);
146
168
  rb_define_method(cFrameEvent, "dsize", RUBY_METHOD_FUNC(dsize), 0);
169
+ rb_define_method(cFrameEvent, "zoom", RUBY_METHOD_FUNC(zoom), 0);
170
+ rb_define_method(cFrameEvent, "dzoom", RUBY_METHOD_FUNC(dzoom), 0);
147
171
  rb_define_method(cFrameEvent, "angle", RUBY_METHOD_FUNC(angle), 0);
148
172
  rb_define_method(cFrameEvent, "dangle", RUBY_METHOD_FUNC(dangle), 0);
149
173
  cFrameEvent.define_method("move?", is_move);
150
174
  cFrameEvent.define_method("resize?", is_resize);
175
+ cFrameEvent.define_method("zoom?", is_zoom);
151
176
  cFrameEvent.define_method("rotate?", is_rotate);
152
177
  }
153
178
 
@@ -871,6 +871,13 @@ VALUE on_resize(VALUE self, VALUE event)
871
871
  CALL(on_resize(to<Reflex::FrameEvent*>(event)));
872
872
  }
873
873
 
874
+ static
875
+ VALUE on_zoom(VALUE self, VALUE event)
876
+ {
877
+ CHECK;
878
+ CALL(on_zoom(to<Reflex::FrameEvent*>(event)));
879
+ }
880
+
874
881
  static
875
882
  VALUE on_rotate(VALUE self, VALUE event)
876
883
  {
@@ -1112,6 +1119,7 @@ Init_reflex_view ()
1112
1119
  rb_define_method(cView, "on_draw", RUBY_METHOD_FUNC(on_draw), 1);
1113
1120
  rb_define_method(cView, "on_move", RUBY_METHOD_FUNC(on_move), 1);
1114
1121
  rb_define_method(cView, "on_resize", RUBY_METHOD_FUNC(on_resize), 1);
1122
+ rb_define_method(cView, "on_zoom", RUBY_METHOD_FUNC(on_zoom), 1);
1115
1123
  rb_define_method(cView, "on_rotate", RUBY_METHOD_FUNC(on_rotate), 1);
1116
1124
  rb_define_method(cView, "on_scroll", RUBY_METHOD_FUNC(on_scroll), 1);
1117
1125
  rb_define_method(cView, "on_focus", RUBY_METHOD_FUNC(on_focus), 1);
@@ -20,8 +20,9 @@ def setup_dependencies(build: true, only: nil)
20
20
 
21
21
  exts.each do |ext|
22
22
  gem = RENAMES[ext.to_sym].then {|s| s || ext}
23
- clone = "git clone --depth 1 https://github.com/xord/#{ext}.git ../#{ext}"
24
23
  ver = gemspec[/add_runtime_dependency.*['"]#{gem}['"].*['"]\s*~>\s*([\d\.]+)\s*['"]/, 1]
24
+ opts = '-c advice.detachedHead=false --depth 1'
25
+ clone = "git clone #{opts} https://github.com/xord/#{ext}.git ../#{ext}"
25
26
 
26
27
  # 'rake subtree:push' pushes all subrepos, so cloning by new tag
27
28
  # often fails before tagging each new tag
data/ChangeLog.md CHANGED
@@ -1,6 +1,11 @@
1
1
  # reflex ChangeLog
2
2
 
3
3
 
4
+ ## [v0.1.35] - 2023-04-30
5
+
6
+ - Add View#on_zoom(e)
7
+
8
+
4
9
  ## [v0.1.34] - 2023-04-25
5
10
 
6
11
  - Update beeps to v0.1.34
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.34
1
+ 0.1.35
@@ -21,7 +21,7 @@ RUCY_DEF_ALLOC(alloc, klass)
21
21
  RUCY_END
22
22
 
23
23
  static
24
- RUCY_DEF7(initialize, frame, dx, dy, dwidth, dheight, angle, dangle)
24
+ RUCY_DEF9(initialize, frame, dx, dy, dwidth, dheight, zoom, dzoom, angle, dangle)
25
25
  {
26
26
  CHECK;
27
27
 
@@ -29,6 +29,7 @@ RUCY_DEF7(initialize, frame, dx, dy, dwidth, dheight, angle, dangle)
29
29
  to<Rays::Bounds>(frame),
30
30
  to<coord>(dx), to<coord>(dy),
31
31
  to<coord>(dwidth), to<coord>(dheight),
32
+ to<float>(zoom), to<float>(dzoom),
32
33
  to<float>(angle), to<float>(dangle));
33
34
 
34
35
  return rb_call_super(0, NULL);
@@ -100,6 +101,22 @@ RUCY_DEF0(dsize)
100
101
  }
101
102
  RUCY_END
102
103
 
104
+ static
105
+ RUCY_DEF0(zoom)
106
+ {
107
+ CHECK;
108
+ return value(THIS->zoom());
109
+ }
110
+ RUCY_END
111
+
112
+ static
113
+ RUCY_DEF0(dzoom)
114
+ {
115
+ CHECK;
116
+ return value(THIS->dzoom());
117
+ }
118
+ RUCY_END
119
+
103
120
  static
104
121
  RUCY_DEF0(angle)
105
122
  {
@@ -132,6 +149,14 @@ RUCY_DEF0(is_resize)
132
149
  }
133
150
  RUCY_END
134
151
 
152
+ static
153
+ RUCY_DEF0(is_zoom)
154
+ {
155
+ CHECK;
156
+ return value(THIS->is_zoom());
157
+ }
158
+ RUCY_END
159
+
135
160
  static
136
161
  RUCY_DEF0(is_rotate)
137
162
  {
@@ -153,16 +178,19 @@ Init_reflex_frame_event ()
153
178
  cFrameEvent.define_private_method("initialize", initialize);
154
179
  cFrameEvent.define_private_method("initialize_copy", initialize_copy);
155
180
  cFrameEvent.define_method("frame", frame);
156
- cFrameEvent.define_method("dx", dx);
157
- cFrameEvent.define_method("dy", dy);
158
- cFrameEvent.define_method("dwidth", dwidth);
159
- cFrameEvent.define_method("dheight", dheight);
181
+ cFrameEvent.define_method("dx", dx);
182
+ cFrameEvent.define_method("dy", dy);
183
+ cFrameEvent.define_method("dwidth", dwidth);
184
+ cFrameEvent.define_method("dheight", dheight);
160
185
  cFrameEvent.define_method("dposition", dposition);
161
186
  cFrameEvent.define_method("dsize", dsize);
187
+ cFrameEvent.define_method( "zoom", zoom);
188
+ cFrameEvent.define_method("dzoom", dzoom);
162
189
  cFrameEvent.define_method( "angle", angle);
163
190
  cFrameEvent.define_method("dangle", dangle);
164
191
  cFrameEvent.define_method("move?", is_move);
165
192
  cFrameEvent.define_method("resize?", is_resize);
193
+ cFrameEvent.define_method("zoom?", is_zoom);
166
194
  cFrameEvent.define_method("rotate?", is_rotate);
167
195
  }
168
196
 
data/ext/reflex/view.cpp CHANGED
@@ -968,6 +968,14 @@ RUCY_DEF1(on_resize, event)
968
968
  }
969
969
  RUCY_END
970
970
 
971
+ static
972
+ RUCY_DEF1(on_zoom, event)
973
+ {
974
+ CHECK;
975
+ CALL(on_zoom(to<Reflex::FrameEvent*>(event)));
976
+ }
977
+ RUCY_END
978
+
971
979
  static
972
980
  RUCY_DEF1(on_rotate, event)
973
981
  {
@@ -1227,6 +1235,7 @@ Init_reflex_view ()
1227
1235
  cView.define_method("on_draw", on_draw);
1228
1236
  cView.define_method("on_move", on_move);
1229
1237
  cView.define_method("on_resize", on_resize);
1238
+ cView.define_method("on_zoom", on_zoom);
1230
1239
  cView.define_method("on_rotate", on_rotate);
1231
1240
  cView.define_method("on_scroll", on_scroll);
1232
1241
  cView.define_method("on_focus", on_focus);
@@ -116,10 +116,12 @@ namespace Reflex
116
116
  const Bounds& frame,
117
117
  coord dx, coord dy,
118
118
  coord dwidth, coord dheight,
119
- float angle, float dangle);
119
+ float zoom = 1, float dzoom = 0,
120
+ float angle = 0, float dangle = 0);
120
121
 
121
122
  FrameEvent (
122
123
  const Bounds& frame, const Bounds& prev_frame,
124
+ float zoom, float prev_zoom,
123
125
  float angle, float prev_angle);
124
126
 
125
127
  FrameEvent dup () const;
@@ -134,6 +136,10 @@ namespace Reflex
134
136
 
135
137
  coord dheight () const;
136
138
 
139
+ float zoom () const;
140
+
141
+ float dzoom () const;
142
+
137
143
  float angle () const;
138
144
 
139
145
  float dangle () const;
@@ -142,6 +148,8 @@ namespace Reflex
142
148
 
143
149
  bool is_resize () const;
144
150
 
151
+ bool is_zoom () const;
152
+
145
153
  bool is_rotate () const;
146
154
 
147
155
  struct Data;
@@ -113,6 +113,15 @@ namespace Reflex
113
113
  Super::on_resize(e);
114
114
  }
115
115
 
116
+ virtual void on_zoom (FrameEvent* e)
117
+ {
118
+ RUCY_SYM(on_zoom);
119
+ if (this->is_overridable())
120
+ this->value.call(on_zoom, Rucy::value(e));
121
+ else
122
+ Super::on_zoom(e);
123
+ }
124
+
116
125
  virtual void on_rotate (FrameEvent* e)
117
126
  {
118
127
  RUCY_SYM(on_rotate);
@@ -209,6 +209,10 @@ namespace Reflex
209
209
 
210
210
  virtual void fit_to_content ();
211
211
 
212
+ virtual void set_zoom (float zoom);
213
+
214
+ virtual float zoom () const;
215
+
212
216
  virtual void set_angle (float degree);
213
217
 
214
218
  virtual float angle () const;
@@ -223,10 +227,6 @@ namespace Reflex
223
227
 
224
228
  virtual const Point& scroll () const;
225
229
 
226
- virtual void set_zoom (float zoom);
227
-
228
- virtual float zoom () const;
229
-
230
230
  virtual void set_capture (uint types);
231
231
 
232
232
  virtual uint capture () const;
@@ -344,6 +344,8 @@ namespace Reflex
344
344
 
345
345
  virtual void on_resize (FrameEvent* e);
346
346
 
347
+ virtual void on_zoom (FrameEvent* e);
348
+
347
349
  virtual void on_rotate (FrameEvent* e);
348
350
 
349
351
  virtual void on_scroll (ScrollEvent* e);
@@ -33,7 +33,8 @@ module Reflex
33
33
  alias h height
34
34
 
35
35
  def inspect()
36
- "#<Reflex::FrameEvent x:#{x} y:#{y} w:#{w} h:#{h} dx:#{dx} dy:#{dy} dw:#{dw} dh:#{dh}>"
36
+ "#<Reflex::FrameEvent x:%g(%g) y:%g(%g) w:%g(%g) h:%g(%g) zoom:%g(%g) angle:%g(%g)>" %
37
+ [x, dx, y, dy, w, dw, h, dh, zoom, dzoom, angle, dangle]
37
38
  end
38
39
 
39
40
  end# FrameEvent
data/reflex.gemspec CHANGED
@@ -28,10 +28,10 @@ Gem::Specification.new do |s|
28
28
  s.platform = Gem::Platform::RUBY
29
29
  s.required_ruby_version = '>= 2.7.0'
30
30
 
31
- s.add_runtime_dependency 'xot', '~> 0.1.33'
32
- s.add_runtime_dependency 'rucy', '~> 0.1.33'
33
- s.add_runtime_dependency 'beeps', '~> 0.1.34'
34
- s.add_runtime_dependency 'rays', '~> 0.1.33'
31
+ s.add_runtime_dependency 'xot', '~> 0.1.34'
32
+ s.add_runtime_dependency 'rucy', '~> 0.1.34'
33
+ s.add_runtime_dependency 'beeps', '~> 0.1.35'
34
+ s.add_runtime_dependency 'rays', '~> 0.1.34'
35
35
 
36
36
  s.add_development_dependency 'rake'
37
37
  s.add_development_dependency 'test-unit'
data/src/event.cpp CHANGED
@@ -221,13 +221,17 @@ namespace Reflex
221
221
 
222
222
  coord dx, dy, dw, dh;
223
223
 
224
+ float zoom, dzoom;
225
+
224
226
  float angle, dangle;
225
227
 
226
228
  Data (
227
229
  const Bounds& frame = 0,
228
230
  coord dx = 0, coord dy = 0, coord dw = 0, coord dh = 0,
231
+ float zoom = 0, float dzoom = 0,
229
232
  float angle = 0, float dangle = 0)
230
- : frame(frame), dx(dx), dy(dy), dw(dw), dh(dh), angle(angle), dangle(dangle)
233
+ : frame(frame), dx(dx), dy(dy), dw(dw), dh(dh),
234
+ zoom(zoom), dzoom(dzoom), angle(angle), dangle(dangle)
231
235
  {
232
236
  }
233
237
 
@@ -240,18 +244,19 @@ namespace Reflex
240
244
 
241
245
  FrameEvent::FrameEvent (
242
246
  const Bounds& frame, coord dx, coord dy, coord dwidth, coord dheight,
243
- float angle, float dangle)
244
- : self(new Data(frame, dx, dy, dwidth, dheight, angle, dangle))
247
+ float zoom, float dzoom, float angle, float dangle)
248
+ : self(new Data(frame, dx, dy, dwidth, dheight, zoom, dzoom, angle, dangle))
245
249
  {
246
250
  }
247
251
 
248
252
  FrameEvent::FrameEvent (
249
253
  const Bounds& frame, const Bounds& prev_frame,
250
- float angle, float prev_angle)
254
+ float zoom, float prev_zoom, float angle, float prev_angle)
251
255
  : self(new Data(
252
256
  frame,
253
257
  frame.x - prev_frame.x, frame.y - prev_frame.y,
254
258
  frame.w - prev_frame.w, frame.h - prev_frame.h,
259
+ zoom, zoom - prev_zoom,
255
260
  angle, angle - prev_angle))
256
261
  {
257
262
  }
@@ -297,6 +302,18 @@ namespace Reflex
297
302
  return self->dh;
298
303
  }
299
304
 
305
+ float
306
+ FrameEvent::zoom () const
307
+ {
308
+ return self->zoom;
309
+ }
310
+
311
+ float
312
+ FrameEvent::dzoom () const
313
+ {
314
+ return self->dzoom;
315
+ }
316
+
300
317
  float
301
318
  FrameEvent::angle () const
302
319
  {
@@ -321,6 +338,12 @@ namespace Reflex
321
338
  return self->dw != 0 || self->dh != 0;
322
339
  }
323
340
 
341
+ bool
342
+ FrameEvent::is_zoom () const
343
+ {
344
+ return self->dzoom != 0;
345
+ }
346
+
324
347
  bool
325
348
  FrameEvent::is_rotate () const
326
349
  {
@@ -288,7 +288,7 @@ update_pixel_density (Reflex::Window* window)
288
288
 
289
289
  if (dpos != 0 || dsize != 0)
290
290
  {
291
- Reflex::FrameEvent e(b, dpos.x, dpos.y, dsize.x, dsize.y, 0, 0);
291
+ Reflex::FrameEvent e(b, dpos.x, dpos.y, dsize.x, dsize.y);
292
292
  if (dpos != 0) win->on_move(&e);
293
293
  if (dsize != 0)
294
294
  {
data/src/view.cpp CHANGED
@@ -52,19 +52,21 @@ namespace Reflex
52
52
 
53
53
  };// Flag
54
54
 
55
- Window* window;
55
+ Window* window = NULL;
56
56
 
57
- View* parent;
57
+ View* parent = NULL;
58
58
 
59
59
  Bounds frame;
60
60
 
61
- float zoom, angle;
61
+ float zoom = 1;
62
62
 
63
- ushort capture;
63
+ float angle = 0;
64
64
 
65
- short hide_count;
65
+ ushort capture = CAPTURE_NONE;
66
66
 
67
- uint flags;
67
+ short hide_count = 0;
68
+
69
+ uint flags = FLAG_CLIP | FLAG_RESIZE_TO_FIT | REDRAW | UPDATE_LAYOUT | UPDATE_STYLE;
68
70
 
69
71
  std::unique_ptr<Point> pscroll;
70
72
 
@@ -92,17 +94,6 @@ namespace Reflex
92
94
 
93
95
  std::unique_ptr<ChildList> pchildren;
94
96
 
95
- Data ()
96
- : window(NULL), parent(NULL),
97
- zoom(1), angle(0), capture(CAPTURE_NONE), hide_count(0),
98
- flags(FLAG_CLIP | FLAG_RESIZE_TO_FIT | REDRAW | UPDATE_LAYOUT | UPDATE_STYLE)
99
- {
100
- }
101
-
102
- ~Data ()
103
- {
104
- }
105
-
106
97
  Point& scroll ()
107
98
  {
108
99
  if (!pscroll) pscroll.reset(new Point);
@@ -654,37 +645,41 @@ namespace Reflex
654
645
 
655
646
  static void
656
647
  update_view_frame (
657
- View* view, const Bounds& frame, float angle, bool update_body)
648
+ View* view, const Bounds& frame, float zoom, float angle,
649
+ bool update_body = true)
658
650
  {
659
651
  assert(view);
660
652
  View::Data* self = view->self.get();
661
653
 
662
- if (frame == self->frame && angle == self->angle)
654
+ if (frame == self->frame && zoom == self->zoom && angle == self->angle)
663
655
  return;
664
656
 
665
- FrameEvent event(frame, self->frame, angle, self->angle);
657
+ FrameEvent event(frame, self->frame, zoom, self->zoom, angle, self->angle);
666
658
  self->frame = frame;
659
+ self->zoom = zoom;
667
660
  self->angle = angle;
668
661
 
669
- bool move = event.is_move();
670
- bool resize = event.is_resize();
671
- bool rotate = event.is_rotate();
662
+ bool moved = event.is_move();
663
+ bool resized = event.is_resize();
664
+ bool zoomed = event.is_zoom();
665
+ bool rotated = event.is_rotate();
672
666
 
673
- if (move) view->on_move(&event);
674
- if (resize) view->on_resize(&event);
675
- if (rotate) view->on_rotate(&event);
667
+ if (moved) view->on_move(&event);
668
+ if (resized) view->on_resize(&event);
669
+ if (zoomed) view->on_zoom(&event);
670
+ if (rotated) view->on_rotate(&event);
676
671
 
677
- if (resize)
672
+ if (resized)
678
673
  {
679
674
  view->self->resize_shapes(&event);
680
675
  apply_style_to_children_have_variable_lengths(view);
681
676
  update_view_layout(view, true);
682
677
  }
683
678
 
684
- if (update_body && (move || rotate) && self->pbody)
679
+ if (update_body && (moved || rotated) && self->pbody)
685
680
  self->update_body_frame();
686
681
 
687
- if ((move || resize) && self->parent)
682
+ if ((moved || resized) && self->parent)
688
683
  self->parent->self->add_flag(View::Data::FIT_TO_CONTENT);
689
684
 
690
685
  view->redraw();
@@ -696,7 +691,7 @@ namespace Reflex
696
691
  if (!view)
697
692
  argument_error(__FILE__, __LINE__);
698
693
 
699
- update_view_frame(view, frame, view->self->angle, true);
694
+ update_view_frame(view, frame, view->zoom(), view->angle());
700
695
  }
701
696
 
702
697
  const Style&
@@ -808,7 +803,7 @@ namespace Reflex
808
803
 
809
804
  Bounds frame = view->frame();
810
805
  frame.move_to(body->position());
811
- update_view_frame(view, frame, body->angle(), false);
806
+ update_view_frame(view, frame, view->zoom(), body->angle(), false);
812
807
  }
813
808
 
814
809
  static void
@@ -2045,10 +2040,28 @@ namespace Reflex
2045
2040
  self->add_flag(View::Data::FIT_TO_CONTENT);
2046
2041
  }
2047
2042
 
2043
+ void
2044
+ View::set_zoom (float zoom)
2045
+ {
2046
+ if (zoom == self->zoom) return;
2047
+
2048
+ if (zoom == 0)
2049
+ argument_error(__FILE__, __LINE__);
2050
+
2051
+ update_view_frame(this, self->frame, zoom, self->angle);
2052
+ redraw();
2053
+ }
2054
+
2055
+ float
2056
+ View::zoom () const
2057
+ {
2058
+ return self->zoom;
2059
+ }
2060
+
2048
2061
  void
2049
2062
  View::set_angle (float degree)
2050
2063
  {
2051
- update_view_frame(this, self->frame, degree, true);
2064
+ update_view_frame(this, self->frame, self->zoom, degree);
2052
2065
  }
2053
2066
 
2054
2067
  float
@@ -2103,24 +2116,6 @@ namespace Reflex
2103
2116
  return ZERO_SCROLL;
2104
2117
  }
2105
2118
 
2106
- void
2107
- View::set_zoom (float zoom)
2108
- {
2109
- if (zoom == self->zoom) return;
2110
-
2111
- if (zoom == 0)
2112
- argument_error(__FILE__, __LINE__);
2113
-
2114
- self->zoom = zoom;
2115
- redraw();
2116
- }
2117
-
2118
- float
2119
- View::zoom () const
2120
- {
2121
- return self->zoom;
2122
- }
2123
-
2124
2119
  void
2125
2120
  View::set_capture (uint types)
2126
2121
  {
@@ -2508,6 +2503,11 @@ namespace Reflex
2508
2503
  {
2509
2504
  }
2510
2505
 
2506
+ void
2507
+ View::on_zoom (FrameEvent* e)
2508
+ {
2509
+ }
2510
+
2511
2511
  void
2512
2512
  View::on_rotate (FrameEvent* e)
2513
2513
  {
@@ -15,19 +15,31 @@ class TestFrameEvent < Test::Unit::TestCase
15
15
  end
16
16
 
17
17
  def test_initialize()
18
- e = event bounds(1, 2, 3, 4, 5, 6), 7, 8, 9, 10, 11, 12
18
+ e = event bounds(1, 2, 3, 4, 5, 6), 7, 8, 9, 10, 11, 12, 13, 14
19
19
  assert_equal bounds(1, 2, 3, 4, 5, 6), e.frame
20
20
  assert_equal 7, e.dx
21
21
  assert_equal 8, e.dy
22
22
  assert_equal 9, e.dw
23
23
  assert_equal 10, e.dh
24
- assert_equal 11, e.angle
25
- assert_equal 12, e.dangle
24
+ assert_equal 11, e.zoom
25
+ assert_equal 12, e.dzoom
26
+ assert_equal 13, e.angle
27
+ assert_equal 14, e.dangle
26
28
  end
27
29
 
28
30
  def test_dup()
29
- e1 = event bounds(1, 2, 3, 4, 5, 6), 7, 8, 9, 10, 11, 12
31
+ e1 = event bounds(1, 2, 3, 4, 5, 6), 7, 8, 9, 10, 11, 12, 13, 14
30
32
  e2 = e1.dup
33
+ assert_equal bounds(1, 2, 3, 4, 5, 6), e2.frame
34
+ assert_equal 7, e2.dx
35
+ assert_equal 8, e2.dy
36
+ assert_equal 9, e2.dw
37
+ assert_equal 10, e2.dh
38
+ assert_equal 11, e2.zoom
39
+ assert_equal 12, e2.dzoom
40
+ assert_equal 13, e2.angle
41
+ assert_equal 14, e2.dangle
42
+
31
43
  e1.block
32
44
  e3 = e1.dup
33
45
  assert_true e1.blocked?
@@ -35,4 +47,10 @@ class TestFrameEvent < Test::Unit::TestCase
35
47
  assert_true e3.blocked?
36
48
  end
37
49
 
50
+ def test_inspect()
51
+ assert_equal(
52
+ "#<Reflex::FrameEvent x:1(7) y:2(8) w:4(9) h:5(10) zoom:11(12) angle:13(14)>",
53
+ event(bounds(1, 2, 3, 4, 5, 6), 7, 8, 9, 10, 11, 12, 13, 14).inspect)
54
+ end
55
+
38
56
  end# TestFrameEvent
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reflexion
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.34
4
+ version: 0.1.35
5
5
  platform: ruby
6
6
  authors:
7
7
  - xordog
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-04-24 00:00:00.000000000 Z
11
+ date: 2023-04-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: xot
@@ -16,56 +16,56 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.1.33
19
+ version: 0.1.34
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.1.33
26
+ version: 0.1.34
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rucy
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.1.33
33
+ version: 0.1.34
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.1.33
40
+ version: 0.1.34
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: beeps
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.1.34
47
+ version: 0.1.35
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.1.34
54
+ version: 0.1.35
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rays
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 0.1.33
61
+ version: 0.1.34
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 0.1.33
68
+ version: 0.1.34
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -389,7 +389,6 @@ files:
389
389
  - src/window.h
390
390
  - src/world.cpp
391
391
  - src/world.h
392
- - task/box2d.rake
393
392
  - test/helper.rb
394
393
  - test/test_application.rb
395
394
  - test/test_capture_event.rb
data/task/box2d.rake DELETED
@@ -1,46 +0,0 @@
1
- # -*- mode: ruby; coding: utf-8 -*-
2
-
3
-
4
- task :box2d => 'box2d:update'
5
-
6
-
7
- namespace :box2d do
8
-
9
-
10
- mod = MODULE
11
- tmp_dir = mod.root_dir 'tmp'
12
-
13
- lib_git = 'https://github.com/erincatto/Box2D'
14
- lib_name = File.basename lib_git
15
- lib_root = "#{tmp_dir}/#{lib_name}"
16
- lib_path = "Box2D/Box2D"
17
-
18
- copy_from = "#{lib_root}/#{lib_path}"
19
- copy_to_base = mod.root_dir 'src/physics'
20
- copy_to = "#{copy_to_base}/#{File.basename lib_path}"
21
- copy_exts = %w[h cpp]
22
-
23
-
24
- task :update => [:clone, copy_to_base] do
25
- sh %( rm -rf #{copy_to} )
26
- sh %( cp -r #{copy_from} #{copy_to_base} )
27
-
28
- Dir.glob "#{copy_to}/**/*" do |path|
29
- ext = path[/\.[^.]+$/]
30
- sh %( rm -f #{path} ) if ext && ext !~ /\.(#{copy_exts.join '|'})/i
31
- end
32
- end
33
-
34
- task :clone => tmp_dir do
35
- Dir.chdir tmp_dir do
36
- sh %( git clone #{lib_git} ) unless File.exist? lib_root
37
- Dir.chdir lib_root do
38
- sh %( git pull --rebase )
39
- end
40
- end
41
- end
42
-
43
- directory tmp_dir, copy_to_base
44
-
45
-
46
- end# :box2d