reflexion 0.1.34 → 0.1.35

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.
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