reflexion 0.1.12 → 0.1.13
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 +5 -5
- data/.doc/ext/reflex/application.cpp +9 -5
- data/.doc/ext/reflex/capture_event.cpp +0 -4
- data/.doc/ext/reflex/contact_event.cpp +17 -10
- data/.doc/ext/reflex/draw_event.cpp +1 -5
- data/.doc/ext/reflex/ellipse_shape.cpp +51 -24
- data/.doc/ext/reflex/event.cpp +0 -4
- data/.doc/ext/reflex/filter.cpp +81 -0
- data/.doc/ext/reflex/focus_event.cpp +9 -13
- data/.doc/ext/reflex/frame_event.cpp +40 -6
- data/.doc/ext/reflex/image_view.cpp +1 -10
- data/.doc/ext/reflex/key_event.cpp +2 -6
- data/.doc/ext/reflex/line_shape.cpp +99 -0
- data/.doc/ext/reflex/motion_event.cpp +75 -0
- data/.doc/ext/reflex/native.cpp +18 -18
- data/.doc/ext/reflex/pointer_event.cpp +5 -11
- data/.doc/ext/reflex/polygon_shape.cpp +65 -0
- data/.doc/ext/reflex/rect_shape.cpp +102 -23
- data/.doc/ext/reflex/reflex.cpp +21 -2
- data/.doc/ext/reflex/scroll_event.cpp +0 -6
- data/.doc/ext/reflex/selector.cpp +43 -15
- data/.doc/ext/reflex/shape.cpp +211 -0
- data/.doc/ext/reflex/style.cpp +359 -185
- data/.doc/ext/reflex/style_length.cpp +163 -35
- data/.doc/ext/reflex/timer.cpp +101 -0
- data/.doc/ext/reflex/timer_event.cpp +123 -0
- data/.doc/ext/reflex/update_event.cpp +11 -6
- data/.doc/ext/reflex/view.cpp +548 -144
- data/.doc/ext/reflex/wheel_event.cpp +0 -22
- data/.doc/ext/reflex/window.cpp +7 -15
- data/README.md +1 -1
- data/Rakefile +14 -12
- data/VERSION +1 -1
- data/ext/reflex/application.cpp +10 -5
- data/ext/reflex/capture_event.cpp +1 -5
- data/ext/reflex/contact_event.cpp +19 -11
- data/ext/reflex/defs.h +5 -2
- data/ext/reflex/draw_event.cpp +2 -6
- data/ext/reflex/ellipse_shape.cpp +56 -25
- data/ext/reflex/event.cpp +0 -4
- data/ext/reflex/extconf.rb +1 -2
- data/ext/reflex/filter.cpp +86 -0
- data/ext/reflex/focus_event.cpp +11 -15
- data/ext/reflex/frame_event.cpp +46 -7
- data/ext/reflex/image_view.cpp +1 -10
- data/ext/reflex/key_event.cpp +3 -7
- data/ext/reflex/line_shape.cpp +104 -0
- data/ext/reflex/motion_event.cpp +79 -0
- data/ext/reflex/native.cpp +18 -18
- data/ext/reflex/pointer_event.cpp +6 -12
- data/ext/reflex/polygon_shape.cpp +68 -0
- data/ext/reflex/rect_shape.cpp +113 -24
- data/ext/reflex/reflex.cpp +21 -2
- data/ext/reflex/scroll_event.cpp +1 -7
- data/ext/reflex/selector.cpp +46 -16
- data/ext/reflex/selector.h +130 -0
- data/ext/reflex/shape.cpp +231 -0
- data/ext/reflex/style.cpp +363 -192
- data/ext/reflex/style_length.cpp +164 -37
- data/ext/reflex/timer.cpp +108 -0
- data/ext/reflex/timer_event.cpp +133 -0
- data/ext/reflex/update_event.cpp +13 -7
- data/ext/reflex/view.cpp +594 -150
- data/ext/reflex/wheel_event.cpp +1 -25
- data/ext/reflex/window.cpp +7 -15
- data/include/reflex/application.h +2 -0
- data/include/reflex/debug.h +22 -0
- data/include/reflex/defs.h +45 -0
- data/include/reflex/event.h +60 -16
- data/include/reflex/exception.h +9 -0
- data/include/reflex/filter.h +56 -0
- data/include/reflex/image_view.h +1 -1
- data/include/reflex/ruby/application.h +17 -9
- data/include/reflex/ruby/event.h +22 -0
- data/include/reflex/ruby/filter.h +69 -0
- data/include/reflex/ruby/selector.h +1 -1
- data/include/reflex/ruby/shape.h +140 -0
- data/include/reflex/ruby/style.h +1 -1
- data/include/reflex/ruby/timer.h +69 -0
- data/include/reflex/ruby/view.h +43 -76
- data/include/reflex/ruby/window.h +17 -32
- data/include/reflex/ruby.h +6 -4
- data/include/reflex/selector.h +54 -2
- data/include/reflex/shape.h +211 -0
- data/include/reflex/style.h +111 -77
- data/include/reflex/timer.h +73 -0
- data/include/reflex/view.h +181 -59
- data/include/reflex/window.h +4 -3
- data/include/reflex.h +5 -4
- data/lib/reflex/application.rb +6 -3
- data/lib/reflex/button.rb +2 -2
- data/lib/reflex/capture_event.rb +7 -6
- data/lib/reflex/contact_event.rb +10 -12
- data/lib/reflex/draw_event.rb +6 -1
- data/lib/reflex/ellipse_shape.rb +27 -0
- data/lib/reflex/filter.rb +18 -0
- data/lib/reflex/fixture.rb +4 -0
- data/lib/reflex/focus_event.rb +10 -12
- data/lib/reflex/frame_event.rb +1 -1
- data/lib/reflex/helper.rb +17 -29
- data/lib/reflex/key_event.rb +13 -11
- data/lib/reflex/line_shape.rb +18 -0
- data/lib/reflex/{texture.rb → matrix.rb} +2 -2
- data/lib/reflex/module.rb +4 -19
- data/lib/reflex/pointer_event.rb +26 -37
- data/lib/reflex/polygon.rb +14 -0
- data/lib/reflex/polygon_shape.rb +23 -0
- data/lib/reflex/polyline.rb +13 -0
- data/lib/reflex/rect_shape.rb +20 -0
- data/lib/reflex/reflex.rb +1 -3
- data/lib/reflex/scroll_event.rb +1 -1
- data/lib/reflex/selector.rb +2 -2
- data/lib/reflex/shape.rb +62 -0
- data/lib/reflex/style.rb +78 -11
- data/lib/reflex/style_length.rb +0 -11
- data/lib/reflex/text_view.rb +7 -24
- data/lib/reflex/timer.rb +30 -0
- data/lib/reflex/timer_event.rb +29 -0
- data/lib/reflex/update_event.rb +1 -1
- data/lib/reflex/view.rb +127 -32
- data/lib/reflex/wheel_event.rb +9 -1
- data/lib/reflex/window.rb +29 -9
- data/lib/reflex.rb +11 -5
- data/lib/reflexion.rb +23 -7
- data/reflex.gemspec +8 -10
- data/samples/bats.rb +4 -4
- data/samples/fans.rb +1 -1
- data/samples/fps.rb +5 -3
- data/samples/hello.rb +4 -6
- data/samples/image.rb +5 -4
- data/samples/ios/hello/hello.xcodeproj/project.pbxproj +0 -2
- data/samples/layout.rb +16 -7
- data/samples/model.rb +10 -7
- data/samples/physics.rb +22 -20
- data/samples/reflexion/breakout.rb +4 -5
- data/samples/reflexion/hello.rb +2 -2
- data/samples/reflexion/jump_action.rb +191 -0
- data/samples/reflexion/noise.rb +23 -0
- data/samples/reflexion/paint.rb +7 -6
- data/samples/reflexion/physics.rb +15 -8
- data/samples/reflexion/pulse.rb +24 -10
- data/samples/shader.rb +8 -6
- data/samples/shapes.rb +63 -14
- data/samples/tree.rb +9 -10
- data/samples/views.rb +3 -3
- data/samples/visuals.rb +2 -5
- data/src/body.cpp +146 -345
- data/src/body.h +91 -0
- data/src/event.cpp +66 -16
- data/src/exception.cpp +13 -3
- data/src/filter.cpp +76 -0
- data/src/fixture.cpp +164 -39
- data/src/fixture.h +85 -0
- data/src/image_view.cpp +4 -4
- data/src/ios/app_delegate.h +5 -10
- data/src/ios/app_delegate.mm +79 -41
- data/src/ios/application.h +32 -0
- data/src/ios/application.mm +35 -25
- data/src/ios/event.mm +8 -4
- data/src/ios/reflex.mm +0 -7
- data/src/ios/view_controller.h +33 -0
- data/src/ios/view_controller.mm +436 -0
- data/src/ios/window.h +40 -0
- data/src/ios/window.mm +59 -250
- data/src/osx/app_delegate.h +5 -10
- data/src/osx/app_delegate.mm +52 -55
- data/src/osx/application.h +32 -0
- data/src/osx/application.mm +44 -39
- data/src/osx/native_window.h +0 -15
- data/src/osx/native_window.mm +131 -115
- data/src/osx/opengl_view.h +0 -2
- data/src/osx/opengl_view.mm +12 -3
- data/src/osx/reflex.mm +0 -9
- data/src/osx/window.h +42 -0
- data/src/osx/window.mm +45 -252
- data/src/selector.cpp +232 -7
- data/src/selector.h +52 -0
- data/src/shape.cpp +1191 -0
- data/src/shape.h +61 -0
- data/src/style.cpp +571 -374
- data/src/style.h +39 -0
- data/src/timer.cpp +291 -0
- data/src/timer.h +55 -0
- data/src/view.cpp +1624 -984
- data/src/view.h +56 -0
- data/src/win32/window.cpp +3 -4
- data/src/window.cpp +275 -20
- data/src/window.h +92 -0
- data/src/world.cpp +112 -111
- data/src/world.h +34 -53
- data/task/box2d.rake +31 -10
- data/test/test_capture_event.rb +8 -6
- data/test/test_pointer_event.rb +85 -0
- data/test/test_selector.rb +1 -1
- data/test/test_shape.rb +71 -0
- data/test/test_style.rb +77 -11
- data/test/test_style_length.rb +42 -13
- data/test/test_view.rb +138 -14
- metadata +109 -210
- data/.doc/ext/reflex/arc_shape.cpp +0 -89
- data/.doc/ext/reflex/body.cpp +0 -299
- data/.doc/ext/reflex/fixture.cpp +0 -101
- data/.doc/ext/reflex/shape_view.cpp +0 -153
- data/ext/reflex/arc_shape.cpp +0 -94
- data/ext/reflex/body.cpp +0 -328
- data/ext/reflex/fixture.cpp +0 -108
- data/ext/reflex/shape_view.cpp +0 -161
- data/include/reflex/bitmap.h +0 -20
- data/include/reflex/body.h +0 -128
- data/include/reflex/bounds.h +0 -20
- data/include/reflex/color.h +0 -20
- data/include/reflex/color_space.h +0 -20
- data/include/reflex/fixture.h +0 -117
- data/include/reflex/font.h +0 -20
- data/include/reflex/image.h +0 -20
- data/include/reflex/matrix.h +0 -20
- data/include/reflex/painter.h +0 -20
- data/include/reflex/point.h +0 -24
- data/include/reflex/ruby/body.h +0 -41
- data/include/reflex/ruby/fixture.h +0 -41
- data/include/reflex/ruby/shape_view.h +0 -96
- data/include/reflex/shader.h +0 -20
- data/include/reflex/shape_view.h +0 -146
- data/include/reflex/texture.h +0 -20
- data/lib/reflex/body.rb +0 -22
- data/lib/reflex/flags.rb +0 -18
- data/lib/reflex/shape_view.rb +0 -25
- data/src/ios/application_data.h +0 -45
- data/src/ios/native_window.h +0 -39
- data/src/ios/native_window.mm +0 -224
- data/src/ios/opengl_view.h +0 -13
- data/src/ios/opengl_view.mm +0 -139
- data/src/ios/window_data.h +0 -75
- data/src/osx/application_data.h +0 -45
- data/src/osx/window_data.h +0 -75
- data/src/physics/Box2D/Box2D.h +0 -68
- data/src/physics/Box2D/Collision/Shapes/b2ChainShape.cpp +0 -193
- data/src/physics/Box2D/Collision/Shapes/b2ChainShape.h +0 -105
- data/src/physics/Box2D/Collision/Shapes/b2CircleShape.cpp +0 -99
- data/src/physics/Box2D/Collision/Shapes/b2CircleShape.h +0 -91
- data/src/physics/Box2D/Collision/Shapes/b2EdgeShape.cpp +0 -138
- data/src/physics/Box2D/Collision/Shapes/b2EdgeShape.h +0 -74
- data/src/physics/Box2D/Collision/Shapes/b2PolygonShape.cpp +0 -467
- data/src/physics/Box2D/Collision/Shapes/b2PolygonShape.h +0 -101
- data/src/physics/Box2D/Collision/Shapes/b2Shape.h +0 -101
- data/src/physics/Box2D/Collision/b2BroadPhase.cpp +0 -119
- data/src/physics/Box2D/Collision/b2BroadPhase.h +0 -257
- data/src/physics/Box2D/Collision/b2CollideCircle.cpp +0 -154
- data/src/physics/Box2D/Collision/b2CollideEdge.cpp +0 -698
- data/src/physics/Box2D/Collision/b2CollidePolygon.cpp +0 -239
- data/src/physics/Box2D/Collision/b2Collision.cpp +0 -252
- data/src/physics/Box2D/Collision/b2Collision.h +0 -277
- data/src/physics/Box2D/Collision/b2Distance.cpp +0 -603
- data/src/physics/Box2D/Collision/b2Distance.h +0 -141
- data/src/physics/Box2D/Collision/b2DynamicTree.cpp +0 -778
- data/src/physics/Box2D/Collision/b2DynamicTree.h +0 -289
- data/src/physics/Box2D/Collision/b2TimeOfImpact.cpp +0 -486
- data/src/physics/Box2D/Collision/b2TimeOfImpact.h +0 -58
- data/src/physics/Box2D/Common/b2BlockAllocator.cpp +0 -215
- data/src/physics/Box2D/Common/b2BlockAllocator.h +0 -62
- data/src/physics/Box2D/Common/b2Draw.cpp +0 -44
- data/src/physics/Box2D/Common/b2Draw.h +0 -86
- data/src/physics/Box2D/Common/b2GrowableStack.h +0 -85
- data/src/physics/Box2D/Common/b2Math.cpp +0 -94
- data/src/physics/Box2D/Common/b2Math.h +0 -720
- data/src/physics/Box2D/Common/b2Settings.cpp +0 -44
- data/src/physics/Box2D/Common/b2Settings.h +0 -151
- data/src/physics/Box2D/Common/b2StackAllocator.cpp +0 -83
- data/src/physics/Box2D/Common/b2StackAllocator.h +0 -60
- data/src/physics/Box2D/Common/b2Timer.cpp +0 -101
- data/src/physics/Box2D/Common/b2Timer.h +0 -50
- data/src/physics/Box2D/Dynamics/Contacts/b2ChainAndCircleContact.cpp +0 -53
- data/src/physics/Box2D/Dynamics/Contacts/b2ChainAndCircleContact.h +0 -39
- data/src/physics/Box2D/Dynamics/Contacts/b2ChainAndPolygonContact.cpp +0 -53
- data/src/physics/Box2D/Dynamics/Contacts/b2ChainAndPolygonContact.h +0 -39
- data/src/physics/Box2D/Dynamics/Contacts/b2CircleContact.cpp +0 -52
- data/src/physics/Box2D/Dynamics/Contacts/b2CircleContact.h +0 -39
- data/src/physics/Box2D/Dynamics/Contacts/b2Contact.cpp +0 -247
- data/src/physics/Box2D/Dynamics/Contacts/b2Contact.h +0 -349
- data/src/physics/Box2D/Dynamics/Contacts/b2ContactSolver.cpp +0 -838
- data/src/physics/Box2D/Dynamics/Contacts/b2ContactSolver.h +0 -95
- data/src/physics/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.cpp +0 -49
- data/src/physics/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.h +0 -39
- data/src/physics/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.cpp +0 -49
- data/src/physics/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.h +0 -39
- data/src/physics/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.cpp +0 -49
- data/src/physics/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.h +0 -38
- data/src/physics/Box2D/Dynamics/Contacts/b2PolygonContact.cpp +0 -52
- data/src/physics/Box2D/Dynamics/Contacts/b2PolygonContact.h +0 -39
- data/src/physics/Box2D/Dynamics/Joints/b2DistanceJoint.cpp +0 -260
- data/src/physics/Box2D/Dynamics/Joints/b2DistanceJoint.h +0 -169
- data/src/physics/Box2D/Dynamics/Joints/b2FrictionJoint.cpp +0 -251
- data/src/physics/Box2D/Dynamics/Joints/b2FrictionJoint.h +0 -119
- data/src/physics/Box2D/Dynamics/Joints/b2GearJoint.cpp +0 -419
- data/src/physics/Box2D/Dynamics/Joints/b2GearJoint.h +0 -125
- data/src/physics/Box2D/Dynamics/Joints/b2Joint.cpp +0 -211
- data/src/physics/Box2D/Dynamics/Joints/b2Joint.h +0 -226
- data/src/physics/Box2D/Dynamics/Joints/b2MotorJoint.cpp +0 -304
- data/src/physics/Box2D/Dynamics/Joints/b2MotorJoint.h +0 -133
- data/src/physics/Box2D/Dynamics/Joints/b2MouseJoint.cpp +0 -222
- data/src/physics/Box2D/Dynamics/Joints/b2MouseJoint.h +0 -129
- data/src/physics/Box2D/Dynamics/Joints/b2PrismaticJoint.cpp +0 -629
- data/src/physics/Box2D/Dynamics/Joints/b2PrismaticJoint.h +0 -196
- data/src/physics/Box2D/Dynamics/Joints/b2PulleyJoint.cpp +0 -348
- data/src/physics/Box2D/Dynamics/Joints/b2PulleyJoint.h +0 -152
- data/src/physics/Box2D/Dynamics/Joints/b2RevoluteJoint.cpp +0 -502
- data/src/physics/Box2D/Dynamics/Joints/b2RevoluteJoint.h +0 -204
- data/src/physics/Box2D/Dynamics/Joints/b2RopeJoint.cpp +0 -241
- data/src/physics/Box2D/Dynamics/Joints/b2RopeJoint.h +0 -114
- data/src/physics/Box2D/Dynamics/Joints/b2WeldJoint.cpp +0 -344
- data/src/physics/Box2D/Dynamics/Joints/b2WeldJoint.h +0 -126
- data/src/physics/Box2D/Dynamics/Joints/b2WheelJoint.cpp +0 -419
- data/src/physics/Box2D/Dynamics/Joints/b2WheelJoint.h +0 -210
- data/src/physics/Box2D/Dynamics/b2Body.cpp +0 -549
- data/src/physics/Box2D/Dynamics/b2Body.h +0 -860
- data/src/physics/Box2D/Dynamics/b2ContactManager.cpp +0 -296
- data/src/physics/Box2D/Dynamics/b2ContactManager.h +0 -52
- data/src/physics/Box2D/Dynamics/b2Fixture.cpp +0 -303
- data/src/physics/Box2D/Dynamics/b2Fixture.h +0 -345
- data/src/physics/Box2D/Dynamics/b2Island.cpp +0 -539
- data/src/physics/Box2D/Dynamics/b2Island.h +0 -93
- data/src/physics/Box2D/Dynamics/b2TimeStep.h +0 -70
- data/src/physics/Box2D/Dynamics/b2World.cpp +0 -1339
- data/src/physics/Box2D/Dynamics/b2World.h +0 -354
- data/src/physics/Box2D/Dynamics/b2WorldCallbacks.cpp +0 -36
- data/src/physics/Box2D/Dynamics/b2WorldCallbacks.h +0 -155
- data/src/physics/Box2D/Rope/b2Rope.cpp +0 -259
- data/src/physics/Box2D/Rope/b2Rope.h +0 -115
- data/src/shape_view.cpp +0 -306
data/include/reflex/view.h
CHANGED
@@ -7,10 +7,14 @@
|
|
7
7
|
#include <vector>
|
8
8
|
#include <xot/ref.h>
|
9
9
|
#include <xot/pimpl.h>
|
10
|
-
#include <
|
11
|
-
#include <
|
12
|
-
#include <
|
10
|
+
#include <xot/util.h>
|
11
|
+
#include <rays/point.h>
|
12
|
+
#include <rays/bounds.h>
|
13
|
+
#include <rays/painter.h>
|
14
|
+
#include <reflex/defs.h>
|
15
|
+
#include <reflex/selector.h>
|
13
16
|
#include <reflex/style.h>
|
17
|
+
#include <reflex/shape.h>
|
14
18
|
#include <reflex/event.h>
|
15
19
|
|
16
20
|
|
@@ -22,11 +26,10 @@ namespace Reflex
|
|
22
26
|
|
23
27
|
|
24
28
|
class Window;
|
29
|
+
class Filter;
|
25
30
|
|
26
|
-
class Body;
|
27
31
|
|
28
|
-
|
29
|
-
class View : public Xot::RefCountable<>
|
32
|
+
class View : public Xot::RefCountable<>, public HasSelector
|
30
33
|
{
|
31
34
|
|
32
35
|
typedef View This;
|
@@ -35,9 +38,11 @@ namespace Reflex
|
|
35
38
|
|
36
39
|
typedef Xot::Ref<This> Ref;
|
37
40
|
|
38
|
-
typedef std::vector<Ref>
|
41
|
+
typedef std::vector<Ref> ChildList;
|
42
|
+
|
43
|
+
typedef std::vector<Style> StyleList;
|
39
44
|
|
40
|
-
typedef std::vector<
|
45
|
+
typedef std::vector<Shape::Ref> ShapeList;
|
41
46
|
|
42
47
|
typedef ChildList:: iterator child_iterator;
|
43
48
|
|
@@ -47,18 +52,33 @@ namespace Reflex
|
|
47
52
|
|
48
53
|
typedef StyleList::const_iterator const_style_iterator;
|
49
54
|
|
50
|
-
typedef
|
55
|
+
typedef ShapeList:: iterator shape_iterator;
|
56
|
+
|
57
|
+
typedef ShapeList::const_iterator const_shape_iterator;
|
58
|
+
|
59
|
+
enum Flag
|
60
|
+
{
|
61
|
+
|
62
|
+
FLAG_CLIP = Xot::bit(0),
|
51
63
|
|
52
|
-
|
64
|
+
FLAG_CACHE = Xot::bit(1),
|
65
|
+
|
66
|
+
FLAG_RESIZE_TO_FIT = Xot::bit(2),
|
67
|
+
|
68
|
+
FLAG_SCROLL_TO_FIT = Xot::bit(3),
|
69
|
+
|
70
|
+
FLAG_LAST = FLAG_SCROLL_TO_FIT
|
71
|
+
|
72
|
+
};// Flag
|
53
73
|
|
54
74
|
enum Capture
|
55
75
|
{
|
56
76
|
|
57
77
|
CAPTURE_NONE = 0,
|
58
78
|
|
59
|
-
CAPTURE_KEY =
|
79
|
+
CAPTURE_KEY = Xot::bit(0),
|
60
80
|
|
61
|
-
CAPTURE_POINTER =
|
81
|
+
CAPTURE_POINTER = Xot::bit(1),
|
62
82
|
|
63
83
|
CAPTURE_ALL = CAPTURE_KEY | CAPTURE_POINTER,
|
64
84
|
|
@@ -74,12 +94,38 @@ namespace Reflex
|
|
74
94
|
|
75
95
|
virtual void redraw ();
|
76
96
|
|
97
|
+
virtual void focus (bool state = true);
|
98
|
+
|
99
|
+
virtual void blur ();
|
100
|
+
|
101
|
+
virtual bool has_focus () const;
|
102
|
+
|
103
|
+
virtual Timer* start_timer (float seconds, int count = 1);
|
104
|
+
|
105
|
+
virtual Timer* start_interval (float seconds);
|
106
|
+
|
107
|
+
virtual void update_layout ();
|
108
|
+
|
109
|
+
virtual Point from_parent (const Point& point) const;
|
110
|
+
|
111
|
+
virtual Point to_parent (const Point& point) const;
|
112
|
+
|
113
|
+
virtual Point from_window (const Point& point) const;
|
114
|
+
|
115
|
+
virtual Point to_window (const Point& point) const;
|
116
|
+
|
117
|
+
virtual Point from_screen (const Point& point) const;
|
118
|
+
|
119
|
+
virtual Point to_screen (const Point& point) const;
|
120
|
+
|
77
121
|
virtual void add_child (View* child);
|
78
122
|
|
79
123
|
virtual void remove_child (View* child);
|
80
124
|
|
81
|
-
virtual void
|
82
|
-
|
125
|
+
virtual void clear_children ();
|
126
|
+
|
127
|
+
virtual ChildList find_children (
|
128
|
+
const Selector& selector, bool recursive = true) const;
|
83
129
|
|
84
130
|
virtual child_iterator child_begin ();
|
85
131
|
|
@@ -89,7 +135,7 @@ namespace Reflex
|
|
89
135
|
|
90
136
|
virtual const_child_iterator child_end () const;
|
91
137
|
|
92
|
-
virtual Style* style (bool create =
|
138
|
+
virtual Style* style (bool create = true);
|
93
139
|
|
94
140
|
virtual const Style* style () const;
|
95
141
|
|
@@ -97,12 +143,15 @@ namespace Reflex
|
|
97
143
|
|
98
144
|
virtual void remove_style (const Style& style);
|
99
145
|
|
100
|
-
virtual
|
146
|
+
virtual void clear_styles ();
|
147
|
+
|
148
|
+
virtual Style* get_style (
|
149
|
+
const Selector& selector, bool create = true);
|
101
150
|
|
102
151
|
virtual const Style* get_style (const Selector& selector) const;
|
103
152
|
|
104
|
-
virtual
|
105
|
-
|
153
|
+
virtual StyleList find_styles (
|
154
|
+
const Selector& selector, bool recursive = false) const;
|
106
155
|
|
107
156
|
virtual style_iterator style_begin ();
|
108
157
|
|
@@ -112,41 +161,43 @@ namespace Reflex
|
|
112
161
|
|
113
162
|
virtual const_style_iterator style_end () const;
|
114
163
|
|
115
|
-
virtual void
|
164
|
+
virtual void set_shape (Shape* shape);
|
116
165
|
|
117
|
-
virtual
|
166
|
+
virtual Shape* shape (bool create = true);
|
118
167
|
|
119
|
-
virtual
|
168
|
+
virtual const Shape* shape () const;
|
120
169
|
|
121
|
-
virtual void
|
170
|
+
virtual void add_shape (Shape* shape);
|
122
171
|
|
123
|
-
virtual
|
172
|
+
virtual void remove_shape (Shape* shape);
|
124
173
|
|
125
|
-
virtual void
|
174
|
+
virtual void clear_shapes ();
|
126
175
|
|
127
|
-
virtual
|
176
|
+
virtual ShapeList find_shapes (const Selector& selector) const;
|
128
177
|
|
129
|
-
virtual
|
178
|
+
virtual shape_iterator shape_begin ();
|
130
179
|
|
131
|
-
virtual
|
180
|
+
virtual const_shape_iterator shape_begin () const;
|
132
181
|
|
133
|
-
virtual
|
182
|
+
virtual shape_iterator shape_end ();
|
134
183
|
|
135
|
-
virtual
|
184
|
+
virtual const_shape_iterator shape_end () const;
|
136
185
|
|
137
|
-
virtual
|
186
|
+
virtual void set_filter (Filter* filter);
|
138
187
|
|
139
|
-
virtual
|
188
|
+
virtual Filter* filter ();
|
140
189
|
|
141
|
-
virtual
|
190
|
+
virtual const Filter* filter () const;
|
142
191
|
|
143
|
-
virtual
|
192
|
+
virtual void set_name (const char* name);
|
144
193
|
|
145
|
-
virtual void
|
194
|
+
virtual void add_tag (const char* tag);
|
146
195
|
|
147
|
-
virtual
|
196
|
+
virtual void remove_tag (const char* tag);
|
148
197
|
|
149
|
-
virtual
|
198
|
+
virtual void clear_tags ();
|
199
|
+
|
200
|
+
virtual void set_selector (const Selector& selector);
|
150
201
|
|
151
202
|
virtual void set_frame (coord x, coord y, coord width, coord height);
|
152
203
|
|
@@ -154,11 +205,13 @@ namespace Reflex
|
|
154
205
|
|
155
206
|
virtual const Bounds& frame () const;
|
156
207
|
|
157
|
-
virtual
|
208
|
+
virtual Bounds content_bounds () const;
|
158
209
|
|
159
|
-
virtual
|
210
|
+
virtual void fit_to_content ();
|
160
211
|
|
161
|
-
virtual
|
212
|
+
virtual void set_angle (float degree);
|
213
|
+
|
214
|
+
virtual float angle () const;
|
162
215
|
|
163
216
|
virtual void scroll_to (coord x, coord y, coord z = 0);
|
164
217
|
|
@@ -170,10 +223,20 @@ namespace Reflex
|
|
170
223
|
|
171
224
|
virtual const Point& scroll () const;
|
172
225
|
|
226
|
+
virtual void set_zoom (float zoom);
|
227
|
+
|
228
|
+
virtual float zoom () const;
|
229
|
+
|
173
230
|
virtual void set_capture (uint types);
|
174
231
|
|
175
232
|
virtual uint capture () const;
|
176
233
|
|
234
|
+
virtual void add_flag (uint flags);
|
235
|
+
|
236
|
+
virtual void remove_flag (uint flags);
|
237
|
+
|
238
|
+
virtual bool has_flag (uint flags) const;
|
239
|
+
|
177
240
|
virtual View* parent ();
|
178
241
|
|
179
242
|
virtual const View* parent () const;
|
@@ -182,9 +245,71 @@ namespace Reflex
|
|
182
245
|
|
183
246
|
virtual const Window* window () const;
|
184
247
|
|
185
|
-
|
248
|
+
//
|
249
|
+
// for physics body
|
250
|
+
//
|
251
|
+
virtual void apply_force (coord x, coord y);
|
252
|
+
|
253
|
+
virtual void apply_force (const Point& force);
|
254
|
+
|
255
|
+
virtual void apply_torque (float torque);
|
256
|
+
|
257
|
+
virtual void apply_linear_impulse (coord x, coord y);
|
258
|
+
|
259
|
+
virtual void apply_linear_impulse (const Point& impulse);
|
260
|
+
|
261
|
+
virtual void apply_angular_impulse (float impulse);
|
262
|
+
|
263
|
+
virtual void set_static (bool state = true);
|
264
|
+
|
265
|
+
virtual bool is_static () const;
|
266
|
+
|
267
|
+
virtual void set_dynamic (bool state = true);
|
268
|
+
|
269
|
+
virtual bool is_dynamic () const;
|
270
|
+
|
271
|
+
virtual void set_density (float density);
|
272
|
+
|
273
|
+
virtual float density () const;
|
274
|
+
|
275
|
+
virtual void set_friction (float friction);
|
276
|
+
|
277
|
+
virtual float friction () const;
|
278
|
+
|
279
|
+
virtual void set_restitution (float restitution);
|
280
|
+
|
281
|
+
virtual float restitution () const;
|
282
|
+
|
283
|
+
virtual void set_sensor (bool state);
|
284
|
+
|
285
|
+
virtual bool is_sensor () const;
|
286
|
+
|
287
|
+
virtual void set_category_bits (uint bits);
|
288
|
+
|
289
|
+
virtual uint category_bits () const;
|
186
290
|
|
187
|
-
virtual
|
291
|
+
virtual void set_collision_mask (uint mask);
|
292
|
+
|
293
|
+
virtual uint collision_mask () const;
|
294
|
+
|
295
|
+
virtual void set_linear_velocity (coord x, coord y);
|
296
|
+
|
297
|
+
virtual void set_linear_velocity (const Point& velocity);
|
298
|
+
|
299
|
+
virtual Point linear_velocity () const;
|
300
|
+
|
301
|
+
virtual void set_angular_velocity (float velocity);
|
302
|
+
|
303
|
+
virtual float angular_velocity () const;
|
304
|
+
|
305
|
+
virtual void set_gravity_scale (float scale);
|
306
|
+
|
307
|
+
virtual float gravity_scale () const;
|
308
|
+
|
309
|
+
//
|
310
|
+
// for physics child world
|
311
|
+
//
|
312
|
+
virtual void update_physics (float duration = 0);
|
188
313
|
|
189
314
|
virtual float meter2pixel (float meter = 1, bool create_world = true);
|
190
315
|
|
@@ -196,26 +321,21 @@ namespace Reflex
|
|
196
321
|
|
197
322
|
virtual Point gravity () const;
|
198
323
|
|
199
|
-
virtual
|
200
|
-
|
201
|
-
virtual const Body* wall () const;
|
202
|
-
|
203
|
-
virtual void set_debug (bool state);
|
324
|
+
virtual void set_time_scale (float scale);
|
204
325
|
|
205
|
-
virtual
|
326
|
+
virtual float time_scale () const;
|
206
327
|
|
207
|
-
virtual
|
208
|
-
|
209
|
-
virtual Point to_parent (const Point& point) const;
|
328
|
+
virtual View* wall ();
|
210
329
|
|
211
|
-
virtual
|
330
|
+
virtual const View* wall () const;
|
212
331
|
|
213
|
-
virtual
|
332
|
+
virtual void set_debug (bool debug = true);
|
214
333
|
|
215
|
-
virtual
|
216
|
-
|
217
|
-
virtual Point to_screen (const Point& point) const;
|
334
|
+
virtual bool debug () const;
|
218
335
|
|
336
|
+
//
|
337
|
+
// event handlers
|
338
|
+
//
|
219
339
|
virtual void on_attach (Event* e);
|
220
340
|
|
221
341
|
virtual void on_detach (Event* e);
|
@@ -238,8 +358,6 @@ namespace Reflex
|
|
238
358
|
|
239
359
|
virtual void on_focus (FocusEvent* e);
|
240
360
|
|
241
|
-
virtual void on_blur (FocusEvent* e);
|
242
|
-
|
243
361
|
virtual void on_key (KeyEvent* e);
|
244
362
|
|
245
363
|
virtual void on_key_down (KeyEvent* e);
|
@@ -258,6 +376,8 @@ namespace Reflex
|
|
258
376
|
|
259
377
|
virtual void on_capture (CaptureEvent* e);
|
260
378
|
|
379
|
+
virtual void on_timer (TimerEvent* e);
|
380
|
+
|
261
381
|
virtual void on_contact (ContactEvent* e);
|
262
382
|
|
263
383
|
virtual void on_contact_begin (ContactEvent* e);
|
@@ -273,7 +393,7 @@ namespace Reflex
|
|
273
393
|
Xot::PImpl<Data> self;
|
274
394
|
|
275
395
|
#ifdef REFLEX_VIEW_REF_DEBUG
|
276
|
-
|
396
|
+
void retain (intptr_t data) const override
|
277
397
|
{
|
278
398
|
RefCountable::retain(data);
|
279
399
|
String spaces = "";
|
@@ -281,7 +401,7 @@ namespace Reflex
|
|
281
401
|
printf("(%d)%s-> %s\n", refc_count(), spaces.c_str(), name());
|
282
402
|
}
|
283
403
|
|
284
|
-
|
404
|
+
void release (intptr_t data) const override
|
285
405
|
{
|
286
406
|
RefCountable::release(data);
|
287
407
|
String spaces = "";
|
@@ -294,6 +414,8 @@ namespace Reflex
|
|
294
414
|
|
295
415
|
virtual ~View ();
|
296
416
|
|
417
|
+
virtual SelectorPtr* get_selector_ptr ();
|
418
|
+
|
297
419
|
};// View
|
298
420
|
|
299
421
|
|
data/include/reflex/window.h
CHANGED
@@ -6,9 +6,10 @@
|
|
6
6
|
|
7
7
|
#include <xot/ref.h>
|
8
8
|
#include <xot/pimpl.h>
|
9
|
-
#include <
|
10
|
-
#include <
|
11
|
-
#include <
|
9
|
+
#include <rays/point.h>
|
10
|
+
#include <rays/bounds.h>
|
11
|
+
#include <rays/painter.h>
|
12
|
+
#include <reflex/defs.h>
|
12
13
|
#include <reflex/event.h>
|
13
14
|
|
14
15
|
|
data/include/reflex.h
CHANGED
@@ -7,18 +7,19 @@
|
|
7
7
|
#include <reflex/defs.h>
|
8
8
|
#include <reflex/reflex.h>
|
9
9
|
#include <reflex/exception.h>
|
10
|
+
#include <reflex/debug.h>
|
10
11
|
|
11
12
|
#include <reflex/selector.h>
|
12
|
-
#include <reflex/style.h>
|
13
13
|
#include <reflex/event.h>
|
14
|
+
#include <reflex/style.h>
|
15
|
+
#include <reflex/timer.h>
|
16
|
+
#include <reflex/shape.h>
|
17
|
+
#include <reflex/filter.h>
|
14
18
|
|
15
19
|
#include <reflex/application.h>
|
16
20
|
#include <reflex/window.h>
|
17
21
|
#include <reflex/view.h>
|
18
22
|
|
19
|
-
#include <reflex/body.h>
|
20
|
-
#include <reflex/fixture.h>
|
21
|
-
|
22
23
|
#include <reflex/image_view.h>
|
23
24
|
|
24
25
|
|
data/lib/reflex/application.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
require 'xot/setter'
|
5
|
+
require 'xot/universal_accessor'
|
5
6
|
require 'xot/block_util'
|
6
7
|
require 'reflex/ext'
|
7
8
|
require 'reflex/helper'
|
@@ -15,14 +16,16 @@ module Reflex
|
|
15
16
|
include Xot::Setter
|
16
17
|
include Hookable
|
17
18
|
|
18
|
-
|
19
|
+
universal_accessor :name
|
20
|
+
|
21
|
+
def initialize (options = nil, &block)
|
19
22
|
super()
|
20
|
-
set
|
23
|
+
set options if options
|
21
24
|
@start_block = block if block
|
22
25
|
end
|
23
26
|
|
24
27
|
def self.start (*args, &block)
|
25
|
-
|
28
|
+
new(*args, &block).start
|
26
29
|
end
|
27
30
|
|
28
31
|
private
|
data/lib/reflex/button.rb
CHANGED
@@ -19,7 +19,7 @@ module Reflex
|
|
19
19
|
self.text = self.name unless self.text
|
20
20
|
end
|
21
21
|
|
22
|
-
def
|
22
|
+
def content_bounds ()
|
23
23
|
f = window.painter.font
|
24
24
|
return f.width(@text) + 2, f.height + 2
|
25
25
|
end
|
@@ -28,7 +28,7 @@ module Reflex
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def on_draw (e)
|
31
|
-
e.painter.
|
31
|
+
e.painter.push fill: (pressing? ? :white : :none), stroke: :white do |p|
|
32
32
|
p.rect e.bounds
|
33
33
|
|
34
34
|
if @text
|
data/lib/reflex/capture_event.rb
CHANGED
@@ -1,29 +1,30 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
|
3
3
|
|
4
|
-
require 'reflex/
|
4
|
+
require 'reflex/ext'
|
5
|
+
require 'reflex/view'
|
5
6
|
|
6
7
|
|
7
8
|
module Reflex
|
8
9
|
|
9
10
|
|
10
|
-
class CaptureEvent
|
11
|
+
class CaptureEvent < Event
|
11
12
|
|
12
13
|
def begin ()
|
13
|
-
|
14
|
+
View.capture_flag.bits2symbols get_begin
|
14
15
|
end
|
15
16
|
|
16
17
|
def begin? (*symbols)
|
17
|
-
bits =
|
18
|
+
bits = View.capture_flag.symbols2bits *symbols
|
18
19
|
(bits & get_begin) == bits
|
19
20
|
end
|
20
21
|
|
21
22
|
def end ()
|
22
|
-
|
23
|
+
View.capture_flag.bits2symbols get_end
|
23
24
|
end
|
24
25
|
|
25
26
|
def end? (*symbols)
|
26
|
-
bits =
|
27
|
+
bits = View.capture_flag.symbols2bits *symbols
|
27
28
|
(bits & get_end) == bits
|
28
29
|
end
|
29
30
|
|
data/lib/reflex/contact_event.rb
CHANGED
@@ -1,17 +1,22 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
|
3
3
|
|
4
|
+
require 'xot/const_symbol_accessor'
|
4
5
|
require 'reflex/ext'
|
5
6
|
|
6
7
|
|
7
8
|
module Reflex
|
8
9
|
|
9
10
|
|
10
|
-
class ContactEvent
|
11
|
+
class ContactEvent < Event
|
11
12
|
|
12
|
-
|
13
|
-
|
14
|
-
|
13
|
+
alias get_type type
|
14
|
+
|
15
|
+
const_symbol_reader :type, {
|
16
|
+
none: TYPE_NONE,
|
17
|
+
begin: TYPE_BEGIN,
|
18
|
+
end: TYPE_END
|
19
|
+
}
|
15
20
|
|
16
21
|
def begin? ()
|
17
22
|
get_type == TYPE_BEGIN
|
@@ -22,16 +27,9 @@ module Reflex
|
|
22
27
|
end
|
23
28
|
|
24
29
|
def inspect ()
|
25
|
-
"#<Reflex::ContactEvent type:#{type} view:#{view}>"
|
30
|
+
"#<Reflex::ContactEvent type:#{type} shape:#{shape} view:#{view}>"
|
26
31
|
end
|
27
32
|
|
28
|
-
private
|
29
|
-
|
30
|
-
TYPE2SYM = {
|
31
|
-
TYPE_BEGIN => :begin,
|
32
|
-
TYPE_END => :end,
|
33
|
-
}
|
34
|
-
|
35
33
|
end# ContactEvent
|
36
34
|
|
37
35
|
|
data/lib/reflex/draw_event.rb
CHANGED
@@ -1,13 +1,18 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
|
3
3
|
|
4
|
+
require 'xot/block_util'
|
4
5
|
require 'reflex/ext'
|
5
6
|
|
6
7
|
|
7
8
|
module Reflex
|
8
9
|
|
9
10
|
|
10
|
-
class DrawEvent
|
11
|
+
class DrawEvent < Event
|
12
|
+
|
13
|
+
def paint (&block)
|
14
|
+
Xot::BlockUtil.instance_eval_or_block_call painter, &block if block
|
15
|
+
end
|
11
16
|
|
12
17
|
def inspect ()
|
13
18
|
"#<Reflex::DrawEvent painter:#{painter} bounds:#{bounds} dt:#{dt} fps:#{fps}>"
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
|
4
|
+
require 'xot/universal_accessor'
|
5
|
+
require 'reflex/shape'
|
6
|
+
|
7
|
+
|
8
|
+
module Reflex
|
9
|
+
|
10
|
+
|
11
|
+
class EllipseShape < Shape
|
12
|
+
|
13
|
+
def angle= (range)
|
14
|
+
angle_from range.min
|
15
|
+
angle_to range.max
|
16
|
+
end
|
17
|
+
|
18
|
+
def angle ()
|
19
|
+
angle_from..angle_to
|
20
|
+
end
|
21
|
+
|
22
|
+
universal_accessor :angle_from, :angle_to, :angle, :hole_size, :nsegment
|
23
|
+
|
24
|
+
end# EllipseShape
|
25
|
+
|
26
|
+
|
27
|
+
end# Reflex
|
data/lib/reflex/fixture.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
require 'xot/setter'
|
5
|
+
require 'xot/universal_accessor'
|
5
6
|
|
6
7
|
|
7
8
|
module Reflex
|
@@ -11,6 +12,9 @@ module Reflex
|
|
11
12
|
|
12
13
|
include Xot::Setter
|
13
14
|
|
15
|
+
universal_accessor :density, :friction, :restitution,
|
16
|
+
:sensor, :category, :collision
|
17
|
+
|
14
18
|
end# Fixture
|
15
19
|
|
16
20
|
|
data/lib/reflex/focus_event.rb
CHANGED
@@ -1,17 +1,22 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
|
3
3
|
|
4
|
+
require 'xot/const_symbol_accessor'
|
4
5
|
require 'reflex/ext'
|
5
6
|
|
6
7
|
|
7
8
|
module Reflex
|
8
9
|
|
9
10
|
|
10
|
-
class FocusEvent
|
11
|
+
class FocusEvent < Event
|
11
12
|
|
12
|
-
|
13
|
-
|
14
|
-
|
13
|
+
alias get_type type
|
14
|
+
|
15
|
+
const_symbol_reader :type, {
|
16
|
+
none: TYPE_NONE,
|
17
|
+
focus: TYPE_FOCUS,
|
18
|
+
blur: TYPE_BLUR
|
19
|
+
}
|
15
20
|
|
16
21
|
def focus? ()
|
17
22
|
get_type == TYPE_FOCUS
|
@@ -22,16 +27,9 @@ module Reflex
|
|
22
27
|
end
|
23
28
|
|
24
29
|
def inspect ()
|
25
|
-
"#<Reflex::FocusEvent type:#{type}
|
30
|
+
"#<Reflex::FocusEvent type:#{type} current:#{current} last:#{last}>"
|
26
31
|
end
|
27
32
|
|
28
|
-
private
|
29
|
-
|
30
|
-
TYPE2SYM = {
|
31
|
-
TYPE_FOCUS => :focus,
|
32
|
-
TYPE_BLUR => :blur,
|
33
|
-
}
|
34
|
-
|
35
33
|
end# FocusEvent
|
36
34
|
|
37
35
|
|