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 +4 -4
- data/.doc/ext/reflex/view.cpp +22 -0
- data/ChangeLog.md +8 -0
- data/VERSION +1 -1
- data/ext/reflex/view.cpp +38 -14
- data/include/reflex/view.h +3 -1
- data/lib/reflex/contact_event.rb +1 -1
- data/lib/reflex/view.rb +3 -2
- data/reflex.gemspec +10 -10
- data/src/body.cpp +14 -0
- data/src/body.h +4 -0
- data/src/view.cpp +13 -2
- data/test/test_view.rb +14 -0
- metadata +13 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1ea18222490d3f1689a552d31ee11f0e0c2386998c88420a117aca12175436ce
|
4
|
+
data.tar.gz: 5105528ff4c1f233d25d79a9aa8aef72239cf4256db5c1cb5c126a7359e7c31a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2be5d8353933e987684d2f5f81cb4cf7a52cc1db615c31c4ec6ed70998d783c4d5d631c25c4ab9b02258b8c5d70c4988abe47ec8fa7e6b807dfd12acba66e5de
|
7
|
+
data.tar.gz: 91263b61d34e37ea8900ff626edc2a6fb0c302a49e2cfe531ec1c502a47c3409e8f7d7caf049e67fb9bc56efc3132e5d8d1f2290746498eba5d301305bfa6298
|
data/.doc/ext/reflex/view.cpp
CHANGED
@@ -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.
|
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=",
|
1222
|
-
cView.define_method("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
|
|
data/include/reflex/view.h
CHANGED
data/lib/reflex/contact_event.rb
CHANGED
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
|
129
|
+
alias add add_child
|
129
130
|
alias remove remove_child
|
130
|
-
alias find
|
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.
|
23
|
-
|
24
|
-
s.
|
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 = '>=
|
29
|
+
s.required_ruby_version = '>= 3.0.0'
|
30
30
|
|
31
|
-
s.add_runtime_dependency 'xot', '~> 0.1.
|
32
|
-
s.add_runtime_dependency 'rucy', '~> 0.1.
|
33
|
-
s.add_runtime_dependency 'beeps', '~> 0.1.
|
34
|
-
s.add_runtime_dependency 'rays', '~> 0.1.
|
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
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
|
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->
|
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.
|
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-
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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:
|
429
|
+
version: 3.0.0
|
429
430
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
430
431
|
requirements:
|
431
432
|
- - ">="
|