reflexion 0.1.39 → 0.1.40

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: 2a2bf359950c676836ffec40bf02fda296c2111f09cf585ad546b0ecc8edc296
4
- data.tar.gz: 2366d63f0d4512bf3f71cf1a16e355f4b98123f7473bdfa5f8d95bdbf87536aa
3
+ metadata.gz: 1ea18222490d3f1689a552d31ee11f0e0c2386998c88420a117aca12175436ce
4
+ data.tar.gz: 5105528ff4c1f233d25d79a9aa8aef72239cf4256db5c1cb5c126a7359e7c31a
5
5
  SHA512:
6
- metadata.gz: 33e83a7603fa2749030b58d321d5ee9a808283095d43dc7c5772a6890d1758abe2993d7392f7f820c83eeb9b2fecea690ded0e4dc8689c8815b4397870429229
7
- data.tar.gz: 7d604628381cf76bed34cae3126739d5658d007c6924ef3d6ce0e7459476a4513099b7f61932f6aa82110a1458ee73c508b59719d6049f37e97dcffb710caf9f
6
+ metadata.gz: 2be5d8353933e987684d2f5f81cb4cf7a52cc1db615c31c4ec6ed70998d783c4d5d631c25c4ab9b02258b8c5d70c4988abe47ec8fa7e6b807dfd12acba66e5de
7
+ data.tar.gz: 91263b61d34e37ea8900ff626edc2a6fb0c302a49e2cfe531ec1c502a47c3409e8f7d7caf049e67fb9bc56efc3132e5d8d1f2290746498eba5d301305bfa6298
@@ -617,6 +617,26 @@ VALUE get_scroll_to_fit(VALUE self)
617
617
  return value(THIS->has_flag(Reflex::View::FLAG_SCROLL_TO_FIT));
618
618
  }
619
619
 
620
+ static
621
+ VALUE set_fix_angle(VALUE self, VALUE fix)
622
+ {
623
+ CHECK;
624
+
625
+ if (fix)
626
+ THIS-> add_flag(Reflex::View::FLAG_FIX_ANGLE);
627
+ else
628
+ THIS->remove_flag(Reflex::View::FLAG_FIX_ANGLE);
629
+
630
+ return fix;
631
+ }
632
+
633
+ static
634
+ VALUE get_fix_angle(VALUE self)
635
+ {
636
+ CHECK;
637
+ return value(THIS->has_flag(Reflex::View::FLAG_FIX_ANGLE));
638
+ }
639
+
620
640
  static
621
641
  VALUE parent(VALUE self)
622
642
  {
@@ -1134,6 +1154,8 @@ Init_reflex_view ()
1134
1154
  cView.define_method("resize_to_fit?", get_resize_to_fit);
1135
1155
  rb_define_method(cView, "scroll_to_fit=", RUBY_METHOD_FUNC(set_scroll_to_fit), 1);
1136
1156
  cView.define_method("scroll_to_fit?", get_scroll_to_fit);
1157
+ rb_define_method(cView, "fix_angle=", RUBY_METHOD_FUNC(set_fix_angle), 1);
1158
+ cView.define_method("fix_angle?", get_fix_angle);
1137
1159
  rb_define_method(cView, "parent", RUBY_METHOD_FUNC(parent), 0);
1138
1160
  rb_define_method(cView, "window", RUBY_METHOD_FUNC(window), 0);
1139
1161
 
data/ChangeLog.md CHANGED
@@ -1,6 +1,14 @@
1
1
  # reflex ChangeLog
2
2
 
3
3
 
4
+ ## [v0.1.40] - 2023-05-27
5
+
6
+ - required_ruby_version >= 3.0.0
7
+ - Add FLAG_FIX_ANGLE
8
+ - Add spec.license
9
+ - Fix crash on calling ContactEvent#inspect
10
+
11
+
4
12
  ## [v0.1.39] - 2023-05-18
5
13
 
6
14
  - Event#block has a bool parameter, which defaults to true
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.39
1
+ 0.1.40
data/ext/reflex/view.cpp CHANGED
@@ -675,6 +675,28 @@ RUCY_DEF0(get_scroll_to_fit)
675
675
  }
676
676
  RUCY_END
677
677
 
678
+ static
679
+ RUCY_DEF1(set_fix_angle, fix)
680
+ {
681
+ CHECK;
682
+
683
+ if (fix)
684
+ THIS-> add_flag(Reflex::View::FLAG_FIX_ANGLE);
685
+ else
686
+ THIS->remove_flag(Reflex::View::FLAG_FIX_ANGLE);
687
+
688
+ return fix;
689
+ }
690
+ RUCY_END
691
+
692
+ static
693
+ RUCY_DEF0(get_fix_angle)
694
+ {
695
+ CHECK;
696
+ return value(THIS->has_flag(Reflex::View::FLAG_FIX_ANGLE));
697
+ }
698
+ RUCY_END
699
+
678
700
  static
679
701
  RUCY_DEF0(parent)
680
702
  {
@@ -1206,25 +1228,25 @@ Init_reflex_view ()
1206
1228
  cView.define_method("from_screen", from_screen);
1207
1229
  cView.define_method( "to_screen", to_screen);
1208
1230
 
1209
- cView.define_method("add_child", add_child);
1231
+ cView.define_method( "add_child", add_child);
1210
1232
  cView.define_method("remove_child", remove_child);
1211
- cView.define_method("clear_children", clear_children);
1212
- cView.define_method("find_children", find_children);
1213
- cView.define_method("each_child", each_child);
1233
+ cView.define_method( "clear_children", clear_children);
1234
+ cView.define_method( "find_children", find_children);
1235
+ cView.define_method( "each_child", each_child);
1214
1236
 
1215
- cView.define_method("add_style", add_style);
1237
+ cView.define_method( "add_style", add_style);
1216
1238
  cView.define_method("remove_style", remove_style);
1217
- cView.define_method("get_style", get_style);
1218
- cView.define_method("find_styles", find_styles);
1219
- cView.define_method("each_style", each_style);
1239
+ cView.define_method( "get_style", get_style);
1240
+ cView.define_method( "find_styles", find_styles);
1241
+ cView.define_method( "each_style", each_style);
1220
1242
 
1221
- cView.define_method("shape=", set_shape);
1222
- cView.define_method("shape", get_shape);
1223
- cView.define_method("add_shape", add_shape);
1243
+ cView.define_method( "shape=", set_shape);
1244
+ cView.define_method( "shape", get_shape);
1245
+ cView.define_method( "add_shape", add_shape);
1224
1246
  cView.define_method("remove_shape", remove_shape);
1225
- cView.define_method("clear_shapes", clear_shapes);
1226
- cView.define_method("find_shapes", find_shapes);
1227
- cView.define_method("each_shape", each_shape);
1247
+ cView.define_method( "clear_shapes", clear_shapes);
1248
+ cView.define_method( "find_shapes", find_shapes);
1249
+ cView.define_method( "each_shape", each_shape);
1228
1250
 
1229
1251
  cView.define_method("filter=", set_filter);
1230
1252
  cView.define_method("filter", get_filter);
@@ -1252,6 +1274,8 @@ Init_reflex_view ()
1252
1274
  cView.define_method("resize_to_fit?", get_resize_to_fit);
1253
1275
  cView.define_method("scroll_to_fit=", set_scroll_to_fit);
1254
1276
  cView.define_method("scroll_to_fit?", get_scroll_to_fit);
1277
+ cView.define_method("fix_angle=", set_fix_angle);
1278
+ cView.define_method("fix_angle?", get_fix_angle);
1255
1279
  cView.define_method("parent", parent);
1256
1280
  cView.define_method("window", window);
1257
1281
 
@@ -67,7 +67,9 @@ namespace Reflex
67
67
 
68
68
  FLAG_SCROLL_TO_FIT = Xot::bit(3),
69
69
 
70
- FLAG_LAST = FLAG_SCROLL_TO_FIT
70
+ FLAG_FIX_ANGLE = Xot::bit(4),
71
+
72
+ FLAG_LAST = FLAG_FIX_ANGLE
71
73
 
72
74
  };// Flag
73
75
 
@@ -24,7 +24,7 @@ module Reflex
24
24
  end
25
25
 
26
26
  def inspect()
27
- "#<Reflex::ContactEvent type:#{type} shape:#{shape} view:#{view}>"
27
+ "#<Reflex::ContactEvent #{action} shape:#{shape} view:#{view}>"
28
28
  end
29
29
 
30
30
  end# ContactEvent
data/lib/reflex/view.rb CHANGED
@@ -120,14 +120,15 @@ module Reflex
120
120
  cache: {reader: :cache?},
121
121
  resize_to_fit: {reader: :resize_to_fit?},
122
122
  scroll_to_fit: {reader: :scroll_to_fit?},
123
+ fix_angle: {reader: :fix_angle?},
123
124
  static: {reader: :static?},
124
125
  dynamic: {reader: :dynamic?},
125
126
  sensor: {reader: :sensor?},
126
127
  debug: {reader: :debug?}
127
128
 
128
- alias add add_child
129
+ alias add add_child
129
130
  alias remove remove_child
130
- alias find find_child
131
+ alias find find_child
131
132
 
132
133
  alias apply_impulse apply_linear_impulse
133
134
  alias velocity= linear_velocity=
data/reflex.gemspec CHANGED
@@ -17,21 +17,21 @@ Gem::Specification.new do |s|
17
17
  rdocs = glob.call *%w[README .doc/ext/**/*.cpp]
18
18
 
19
19
  s.name = "#{name}ion"
20
+ s.version = ext.version
21
+ s.license = 'MIT'
20
22
  s.summary = 'A Graphical User Interface Tool Kit.'
21
23
  s.description = 'This library helps you to develop interactive graphical user interface.'
22
- s.version = ext.version
23
-
24
- s.authors = %w[xordog]
25
- s.email = 'xordog@gmail.com'
26
- s.homepage = "https://github.com/xord/reflex"
24
+ s.authors = %w[xordog]
25
+ s.email = 'xordog@gmail.com'
26
+ s.homepage = "https://github.com/xord/reflex"
27
27
 
28
28
  s.platform = Gem::Platform::RUBY
29
- s.required_ruby_version = '>= 2.7.0'
29
+ s.required_ruby_version = '>= 3.0.0'
30
30
 
31
- s.add_runtime_dependency 'xot', '~> 0.1.36'
32
- s.add_runtime_dependency 'rucy', '~> 0.1.36'
33
- s.add_runtime_dependency 'beeps', '~> 0.1.37'
34
- s.add_runtime_dependency 'rays', '~> 0.1.37'
31
+ s.add_runtime_dependency 'xot', '~> 0.1.37'
32
+ s.add_runtime_dependency 'rucy', '~> 0.1.37'
33
+ s.add_runtime_dependency 'beeps', '~> 0.1.38'
34
+ s.add_runtime_dependency 'rays', '~> 0.1.38'
35
35
 
36
36
  s.add_development_dependency 'rake'
37
37
  s.add_development_dependency 'test-unit'
data/src/body.cpp CHANGED
@@ -247,6 +247,20 @@ namespace Reflex
247
247
  return Xot::rad2deg(self->b2body->GetAngularVelocity());
248
248
  }
249
249
 
250
+ void
251
+ Body::fix_rotation (bool state)
252
+ {
253
+ validate(this);
254
+
255
+ self->b2body->SetFixedRotation(state);
256
+ }
257
+
258
+ bool
259
+ Body::is_rotation_fixed () const
260
+ {
261
+ return self->b2body->IsFixedRotation();
262
+ }
263
+
250
264
  void
251
265
  Body::set_gravity_scale (float scale)
252
266
  {
data/src/body.h CHANGED
@@ -67,6 +67,10 @@ namespace Reflex
67
67
 
68
68
  float angular_velocity () const;
69
69
 
70
+ void fix_rotation (bool state = true);
71
+
72
+ bool is_rotation_fixed () const;
73
+
70
74
  void set_gravity_scale (float scale);
71
75
 
72
76
  float gravity_scale () const;
data/src/view.cpp CHANGED
@@ -216,6 +216,7 @@ namespace Reflex
216
216
 
217
217
  pbody.reset(b);
218
218
  update_body_frame();
219
+ update_body_states();
219
220
  }
220
221
  return *pbody;
221
222
  }
@@ -235,6 +236,12 @@ namespace Reflex
235
236
  pbody->set_transform(frame.x, frame.y, angle);
236
237
  }
237
238
 
239
+ void update_body_states ()
240
+ {
241
+ if (pbody && pbody->is_rotation_fixed() != has_flag(View::FLAG_FIX_ANGLE))
242
+ pbody->fix_rotation(has_flag(View::FLAG_FIX_ANGLE));
243
+ }
244
+
238
245
  void
239
246
  get_view2body_matrix (Matrix* m)
240
247
  {
@@ -261,7 +268,7 @@ namespace Reflex
261
268
  .translate(-pivot);
262
269
  }
263
270
 
264
- void update_body_and_shapes ()
271
+ void setup_body_and_shapes ()
265
272
  {
266
273
  std::unique_ptr<Body> old_body;
267
274
  if (pbody)
@@ -718,7 +725,7 @@ namespace Reflex
718
725
  }
719
726
 
720
727
  view->self->window = window;
721
- view->self->update_body_and_shapes();
728
+ view->self->setup_body_and_shapes();
722
729
 
723
730
  View::ChildList* children = view->self->children();
724
731
  if (children)
@@ -2364,12 +2371,16 @@ namespace Reflex
2364
2371
  View::add_flag (uint flags)
2365
2372
  {
2366
2373
  self->add_flag(flags);
2374
+
2375
+ self->update_body_states();
2367
2376
  }
2368
2377
 
2369
2378
  void
2370
2379
  View::remove_flag (uint flags)
2371
2380
  {
2372
2381
  self->remove_flag(flags);
2382
+
2383
+ self->update_body_states();
2373
2384
  }
2374
2385
 
2375
2386
  bool
data/test/test_view.rb CHANGED
@@ -275,6 +275,20 @@ class TestView < Test::Unit::TestCase
275
275
  assert_equal 361, v.angle
276
276
  end
277
277
 
278
+ def test_fix_angle()
279
+ v = view
280
+ assert_false v.fix_angle?
281
+ assert_false v.fix_angle
282
+
283
+ v.fix_angle = true
284
+ assert_true v.fix_angle?
285
+ assert_true v.fix_angle
286
+
287
+ v.fix_angle false
288
+ assert_false v.fix_angle?
289
+ assert_false v.fix_angle
290
+ end
291
+
278
292
  def test_pivot()
279
293
  v = view
280
294
  assert_each_in_epsilon [0, 0, 0], v.pivot.to_a(3)
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.39
4
+ version: 0.1.40
5
5
  platform: ruby
6
6
  authors:
7
7
  - xordog
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-05-17 00:00:00.000000000 Z
11
+ date: 2023-05-27 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.36
19
+ version: 0.1.37
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.36
26
+ version: 0.1.37
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.36
33
+ version: 0.1.37
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.36
40
+ version: 0.1.37
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.37
47
+ version: 0.1.38
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.37
54
+ version: 0.1.38
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.37
61
+ version: 0.1.38
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.37
68
+ version: 0.1.38
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -415,7 +415,8 @@ files:
415
415
  - test/test_wheel_event.rb
416
416
  - test/test_window.rb
417
417
  homepage: https://github.com/xord/reflex
418
- licenses: []
418
+ licenses:
419
+ - MIT
419
420
  metadata: {}
420
421
  post_install_message:
421
422
  rdoc_options: []
@@ -425,7 +426,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
425
426
  requirements:
426
427
  - - ">="
427
428
  - !ruby/object:Gem::Version
428
- version: 2.7.0
429
+ version: 3.0.0
429
430
  required_rubygems_version: !ruby/object:Gem::Requirement
430
431
  requirements:
431
432
  - - ">="