reflexion 0.5.3 → 0.7.0
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 +4 -4
- data/.doc/ext/reflex/application.cpp +56 -7
- data/.doc/ext/reflex/capture_event.cpp +1 -1
- data/.doc/ext/reflex/chase_constraint.cpp +84 -0
- data/.doc/ext/reflex/clipboard.cpp +65 -0
- data/.doc/ext/reflex/color_event.cpp +76 -0
- data/.doc/ext/reflex/color_picker.cpp +113 -0
- data/.doc/ext/reflex/constraint.cpp +135 -0
- data/.doc/ext/reflex/contact_event.cpp +1 -1
- data/.doc/ext/reflex/control_change_event.cpp +1 -1
- data/.doc/ext/reflex/device.cpp +1 -1
- data/.doc/ext/reflex/device_event.cpp +1 -1
- data/.doc/ext/reflex/draw_event.cpp +1 -1
- data/.doc/ext/reflex/ellipse_shape.cpp +1 -1
- data/.doc/ext/reflex/event.cpp +1 -1
- data/.doc/ext/reflex/file_dialog.cpp +181 -0
- data/.doc/ext/reflex/file_event.cpp +103 -0
- data/.doc/ext/reflex/filter.cpp +1 -1
- data/.doc/ext/reflex/focus_event.cpp +1 -1
- data/.doc/ext/reflex/frame_event.cpp +1 -1
- data/.doc/ext/reflex/gamepad.cpp +48 -0
- data/.doc/ext/reflex/image_view.cpp +1 -1
- data/.doc/ext/reflex/key_event.cpp +1 -274
- data/.doc/ext/reflex/line_shape.cpp +1 -1
- data/.doc/ext/reflex/link_constraint.cpp +178 -0
- data/.doc/ext/reflex/menu.cpp +303 -0
- data/.doc/ext/reflex/midi.cpp +9 -2
- data/.doc/ext/reflex/midi_event.cpp +1 -1
- data/.doc/ext/reflex/motion_event.cpp +1 -1
- data/.doc/ext/reflex/native.cpp +40 -10
- data/.doc/ext/reflex/note_event.cpp +1 -1
- data/.doc/ext/reflex/pin.cpp +156 -0
- data/.doc/ext/reflex/pointer.cpp +3 -1
- data/.doc/ext/reflex/pointer_event.cpp +3 -3
- data/.doc/ext/reflex/polygon_shape.cpp +1 -1
- data/.doc/ext/reflex/rect_shape.cpp +1 -1
- data/.doc/ext/reflex/reflex.cpp +606 -237
- data/.doc/ext/reflex/screen.cpp +27 -1
- data/.doc/ext/reflex/scroll_event.cpp +1 -1
- data/.doc/ext/reflex/selector.cpp +5 -5
- data/.doc/ext/reflex/shape.cpp +1 -1
- data/.doc/ext/reflex/snap_constraint.cpp +125 -0
- data/.doc/ext/reflex/style.cpp +1 -1
- data/.doc/ext/reflex/style_length.cpp +4 -3
- data/.doc/ext/reflex/text_event.cpp +104 -0
- data/.doc/ext/reflex/timer.cpp +1 -1
- data/.doc/ext/reflex/timer_event.cpp +1 -1
- data/.doc/ext/reflex/update_event.cpp +1 -1
- data/.doc/ext/reflex/view.cpp +206 -79
- data/.doc/ext/reflex/wheel_constraint.cpp +142 -0
- data/.doc/ext/reflex/wheel_event.cpp +1 -1
- data/.doc/ext/reflex/window.cpp +282 -31
- data/.github/workflows/release-gem.yml +2 -40
- data/.github/workflows/tag.yml +5 -28
- data/.github/workflows/test.yml +1 -28
- data/ChangeLog.md +79 -0
- data/Gemfile.lock +13 -8
- data/README.md +1 -0
- data/Rakefile +13 -2
- data/Reflex.podspec +2 -2
- data/VERSION +1 -1
- data/ext/reflex/application.cpp +62 -7
- data/ext/reflex/capture_event.cpp +1 -1
- data/ext/reflex/chase_constraint.cpp +89 -0
- data/ext/reflex/clipboard.cpp +69 -0
- data/ext/reflex/color_event.cpp +80 -0
- data/ext/reflex/color_picker.cpp +121 -0
- data/ext/reflex/constraint.cpp +146 -0
- data/ext/reflex/contact_event.cpp +1 -1
- data/ext/reflex/control_change_event.cpp +1 -1
- data/ext/reflex/device.cpp +1 -1
- data/ext/reflex/device_event.cpp +1 -1
- data/ext/reflex/draw_event.cpp +1 -1
- data/ext/reflex/ellipse_shape.cpp +1 -1
- data/ext/reflex/event.cpp +1 -1
- data/ext/reflex/extconf.rb +4 -2
- data/ext/reflex/file_dialog.cpp +194 -0
- data/ext/reflex/file_event.cpp +108 -0
- data/ext/reflex/filter.cpp +1 -1
- data/ext/reflex/focus_event.cpp +1 -1
- data/ext/reflex/frame_event.cpp +1 -1
- data/ext/reflex/gamepad.cpp +50 -0
- data/ext/reflex/image_view.cpp +1 -1
- data/ext/reflex/key_event.cpp +1 -275
- data/ext/reflex/line_shape.cpp +1 -1
- data/ext/reflex/link_constraint.cpp +194 -0
- data/ext/reflex/menu.cpp +331 -0
- data/ext/reflex/midi.cpp +11 -3
- data/ext/reflex/midi_event.cpp +1 -1
- data/ext/reflex/motion_event.cpp +1 -1
- data/ext/reflex/native.cpp +40 -10
- data/ext/reflex/note_event.cpp +1 -1
- data/ext/reflex/pin.cpp +165 -0
- data/ext/reflex/pointer.cpp +3 -1
- data/ext/reflex/pointer_event.cpp +3 -3
- data/ext/reflex/polygon_shape.cpp +1 -1
- data/ext/reflex/rect_shape.cpp +1 -1
- data/ext/reflex/reflex.cpp +608 -237
- data/ext/reflex/screen.cpp +31 -2
- data/ext/reflex/scroll_event.cpp +1 -1
- data/ext/reflex/selector.cpp +5 -5
- data/ext/reflex/selector.h +10 -10
- data/ext/reflex/shape.cpp +1 -1
- data/ext/reflex/snap_constraint.cpp +135 -0
- data/ext/reflex/style.cpp +1 -1
- data/ext/reflex/style_length.cpp +4 -3
- data/ext/reflex/text_event.cpp +111 -0
- data/ext/reflex/timer.cpp +1 -1
- data/ext/reflex/timer_event.cpp +1 -1
- data/ext/reflex/update_event.cpp +1 -1
- data/ext/reflex/view.cpp +236 -96
- data/ext/reflex/wheel_constraint.cpp +154 -0
- data/ext/reflex/wheel_event.cpp +1 -1
- data/ext/reflex/window.cpp +318 -40
- data/include/reflex/application.h +19 -0
- data/include/reflex/clipboard.h +53 -0
- data/include/reflex/color_picker.h +65 -0
- data/include/reflex/constraint.h +275 -0
- data/include/reflex/defs.h +204 -195
- data/include/reflex/event.h +180 -88
- data/include/reflex/file_dialog.h +73 -0
- data/include/reflex/gamepad.h +3 -0
- data/include/reflex/menu.h +120 -0
- data/include/reflex/midi.h +3 -0
- data/include/reflex/pin.h +68 -0
- data/include/reflex/pointer.h +4 -0
- data/include/reflex/reflex.h +2 -0
- data/include/reflex/ruby/application.h +6 -1
- data/include/reflex/ruby/clipboard.h +23 -0
- data/include/reflex/ruby/color_picker.h +89 -0
- data/include/reflex/ruby/constraint.h +94 -0
- data/include/reflex/ruby/event.h +62 -29
- data/include/reflex/ruby/file_dialog.h +89 -0
- data/include/reflex/ruby/gamepad.h +46 -0
- data/include/reflex/ruby/menu.h +103 -0
- data/include/reflex/ruby/pin.h +40 -0
- data/include/reflex/ruby/reflex.h +3 -0
- data/include/reflex/ruby/view.h +123 -39
- data/include/reflex/ruby/window.h +96 -19
- data/include/reflex/ruby.h +3 -0
- data/include/reflex/screen.h +11 -2
- data/include/reflex/view.h +66 -27
- data/include/reflex/window.h +57 -12
- data/include/reflex.h +8 -0
- data/lib/reflex/application.rb +5 -5
- data/lib/reflex/autoinit.rb +3 -1
- data/lib/reflex/button.rb +3 -3
- data/lib/reflex/chase_constraint.rb +15 -0
- data/lib/reflex/clipboard.rb +19 -0
- data/lib/reflex/color_event.rb +16 -0
- data/lib/reflex/color_picker.rb +45 -0
- data/lib/reflex/constraint.rb +29 -0
- data/lib/reflex/control_change_event.rb +17 -0
- data/lib/reflex/extension.rb +1 -1
- data/lib/reflex/file_dialog.rb +70 -0
- data/lib/reflex/file_event.rb +37 -0
- data/lib/reflex/helper.rb +79 -0
- data/lib/reflex/key_event.rb +14 -14
- data/lib/reflex/link_constraint.rb +31 -0
- data/lib/reflex/menu.rb +92 -0
- data/lib/reflex/model.rb +19 -19
- data/lib/reflex/note_event.rb +1 -1
- data/lib/reflex/pin.rb +39 -0
- data/lib/reflex/pointer.rb +30 -1
- data/lib/reflex/pointer_event.rb +13 -2
- data/lib/reflex/reflex.rb +5 -0
- data/lib/reflex/shape.rb +14 -14
- data/lib/reflex/snap_constraint.rb +28 -0
- data/lib/reflex/style.rb +16 -16
- data/lib/reflex/text_event.rb +40 -0
- data/lib/reflex/timer.rb +3 -3
- data/lib/reflex/view.rb +85 -18
- data/lib/reflex/wheel_constraint.rb +28 -0
- data/lib/reflex/wheel_event.rb +19 -1
- data/lib/reflex/window.rb +25 -13
- data/lib/reflex.rb +23 -8
- data/pod.rake +1 -1
- data/reflex.gemspec +4 -4
- data/samples/constraint.rb +152 -0
- data/samples/ime.rb +100 -0
- data/samples/ios/hello/hello.xcodeproj/project.pbxproj +236 -224
- data/samples/menu.rb +32 -0
- data/samples/model.rb +3 -3
- data/samples/test/alert.rb +93 -0
- data/samples/test/always_on.rb +76 -0
- data/samples/test/app_background.rb +51 -0
- data/samples/test/boundary.rb +75 -0
- data/samples/test/callback_exception.rb +101 -0
- data/samples/test/cancel.rb +53 -0
- data/samples/test/color_picker.rb +63 -0
- data/samples/test/file_dialog.rb +102 -0
- data/samples/window_style.rb +156 -0
- data/src/application.cpp +180 -20
- data/src/application.h +95 -5
- data/src/clipboard.cpp +81 -0
- data/src/color_picker.cpp +113 -0
- data/src/color_picker.h +36 -0
- data/src/constraint.cpp +1662 -0
- data/src/constraint.h +64 -0
- data/src/event.cpp +416 -252
- data/src/event.h +13 -2
- data/src/file_dialog.cpp +163 -0
- data/src/file_dialog.h +52 -0
- data/src/gamepad.cpp +42 -5
- data/src/gamepad.h +4 -0
- data/src/ios/app_delegate.mm +5 -3
- data/src/ios/application.mm +29 -0
- data/src/ios/clipboard.mm +44 -0
- data/src/ios/color_picker.mm +19 -0
- data/src/ios/event.h +6 -2
- data/src/ios/event.mm +31 -12
- data/src/ios/file_dialog.mm +21 -0
- data/src/ios/gamepad.mm +4 -4
- data/src/ios/menu.mm +41 -0
- data/src/ios/reflex.mm +8 -0
- data/src/ios/screen.mm +26 -0
- data/src/ios/view_controller.mm +47 -42
- data/src/ios/window.mm +44 -9
- data/src/menu.cpp +387 -0
- data/src/menu.h +81 -0
- data/src/midi.cpp +61 -31
- data/src/osx/app_delegate.h +4 -0
- data/src/osx/app_delegate.mm +168 -139
- data/src/osx/application.mm +103 -5
- data/src/osx/clipboard.mm +45 -0
- data/src/osx/color_picker.mm +112 -0
- data/src/osx/event.h +10 -0
- data/src/osx/event.mm +114 -30
- data/src/osx/file_dialog.mm +168 -0
- data/src/osx/gamepad.mm +2 -2
- data/src/osx/gamepad_hid.mm +1 -1
- data/src/osx/menu.h +25 -0
- data/src/osx/menu.mm +516 -0
- data/src/osx/native_window.h +16 -2
- data/src/osx/native_window.mm +141 -57
- data/src/osx/opengl_view.h +2 -1
- data/src/osx/opengl_view.mm +229 -37
- data/src/osx/reflex.mm +38 -0
- data/src/osx/screen.mm +36 -0
- data/src/osx/window.mm +117 -24
- data/src/pin.cpp +137 -0
- data/src/pointer.cpp +36 -16
- data/src/pointer.h +10 -0
- data/src/rays.h +46 -0
- data/src/sdl/application.cpp +73 -8
- data/src/sdl/clipboard.cpp +39 -0
- data/src/sdl/color_picker.cpp +18 -0
- data/src/sdl/event.cpp +44 -6
- data/src/sdl/event.h +18 -3
- data/src/sdl/file_dialog.cpp +20 -0
- data/src/sdl/gamepad.cpp +3 -7
- data/src/sdl/menu.cpp +40 -0
- data/src/sdl/reflex.cpp +20 -0
- data/src/sdl/screen.cpp +36 -0
- data/src/sdl/window.cpp +168 -37
- data/src/shape.cpp +15 -10
- data/src/view.cpp +583 -233
- data/src/view.h +22 -4
- data/src/vk.h +416 -0
- data/src/win32/application.cpp +167 -12
- data/src/win32/application.h +20 -0
- data/src/win32/clipboard.cpp +210 -0
- data/src/win32/color_picker.cpp +82 -0
- data/src/win32/event.cpp +123 -11
- data/src/win32/event.h +22 -3
- data/src/win32/file_dialog.cpp +226 -0
- data/src/win32/gamepad.cpp +9 -2
- data/src/win32/menu.cpp +490 -0
- data/src/win32/menu.h +35 -0
- data/src/win32/opengl.cpp +2 -9
- data/src/win32/reflex.cpp +44 -3
- data/src/win32/screen.cpp +164 -3
- data/src/win32/screen.h +8 -0
- data/src/win32/tray.cpp +191 -0
- data/src/win32/tray.h +22 -0
- data/src/win32/vk.cpp +11 -0
- data/src/win32/window.cpp +858 -135
- data/src/win32/window.h +9 -0
- data/src/window.cpp +929 -183
- data/src/window.h +77 -33
- data/src/world.cpp +86 -15
- data/src/world.h +9 -2
- data/test/helper.rb +24 -0
- data/test/test_application.rb +101 -1
- data/test/test_chase_constraint.rb +122 -0
- data/test/test_clipboard.rb +54 -0
- data/test/test_color_event.rb +36 -0
- data/test/test_color_picker.rb +62 -0
- data/test/test_constraint.rb +184 -0
- data/test/test_event.rb +1 -1
- data/test/test_file_dialog.rb +48 -0
- data/test/test_file_event.rb +43 -0
- data/test/test_has_text_preedit.rb +54 -0
- data/test/test_key_event.rb +23 -2
- data/test/test_link_constraint.rb +237 -0
- data/test/test_menu.rb +237 -0
- data/test/test_pin.rb +65 -0
- data/test/test_pointer.rb +50 -26
- data/test/test_pointer_event.rb +25 -10
- data/test/test_reflex.rb +36 -0
- data/test/test_screen.rb +24 -2
- data/test/test_snap_constraint.rb +140 -0
- data/test/test_text_event.rb +54 -0
- data/test/test_view.rb +152 -25
- data/test/test_wheel_constraint.rb +125 -0
- data/test/test_wheel_event.rb +24 -10
- data/test/test_window.rb +205 -43
- metadata +154 -10
- data/.github/workflows/utils.rb +0 -127
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
#include "reflex/ruby/constraint.h"
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
#include <rays/ruby/point.h>
|
|
5
|
+
#include "reflex/exception.h"
|
|
6
|
+
#include "defs.h"
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(REFLEX_EXPORT, Reflex::LinkConstraint)
|
|
10
|
+
|
|
11
|
+
#define THIS to<Reflex::LinkConstraint*>(self)
|
|
12
|
+
|
|
13
|
+
#define CHECK RUCY_CHECK_PTR(Reflex::LinkConstraint, self)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
static
|
|
17
|
+
VALUE alloc(VALUE klass)
|
|
18
|
+
{
|
|
19
|
+
Reflex::reflex_error(
|
|
20
|
+
__FILE__, __LINE__, "can not instantiate LinkConstraint class");
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
static
|
|
24
|
+
VALUE set_axis(VALUE self)
|
|
25
|
+
{
|
|
26
|
+
CHECK;
|
|
27
|
+
if (argc == 1 && argv[0].is_nil())
|
|
28
|
+
THIS->clear_axis();
|
|
29
|
+
else
|
|
30
|
+
THIS->set_axis(to<Rays::Point>(argc, argv));
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
static
|
|
34
|
+
VALUE get_axis(VALUE self)
|
|
35
|
+
{
|
|
36
|
+
CHECK;
|
|
37
|
+
return THIS->has_axis() ? value(THIS->axis()) : nil();
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
static
|
|
41
|
+
VALUE set_distance(VALUE self, VALUE distance)
|
|
42
|
+
{
|
|
43
|
+
CHECK;
|
|
44
|
+
if (distance.is_nil())
|
|
45
|
+
THIS->clear_distance();
|
|
46
|
+
else
|
|
47
|
+
THIS->set_distance(to<coord>(distance));
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
static
|
|
51
|
+
VALUE get_distance(VALUE self)
|
|
52
|
+
{
|
|
53
|
+
CHECK;
|
|
54
|
+
return value(THIS->distance());
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
static
|
|
58
|
+
VALUE has_distance(VALUE self)
|
|
59
|
+
{
|
|
60
|
+
CHECK;
|
|
61
|
+
return value(THIS->has_distance());
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
static
|
|
65
|
+
VALUE current_distance(VALUE self)
|
|
66
|
+
{
|
|
67
|
+
CHECK;
|
|
68
|
+
return value(THIS->current_distance());
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
static
|
|
72
|
+
VALUE set_range(VALUE self, VALUE min, VALUE max)
|
|
73
|
+
{
|
|
74
|
+
CHECK;
|
|
75
|
+
THIS->set_range(to<coord>(min), to<coord>(max));
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
static
|
|
79
|
+
VALUE clear_range(VALUE self)
|
|
80
|
+
{
|
|
81
|
+
CHECK;
|
|
82
|
+
THIS->clear_range();
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
static
|
|
86
|
+
VALUE range_min(VALUE self)
|
|
87
|
+
{
|
|
88
|
+
CHECK;
|
|
89
|
+
return value(THIS->range_min());
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
static
|
|
93
|
+
VALUE range_max(VALUE self)
|
|
94
|
+
{
|
|
95
|
+
CHECK;
|
|
96
|
+
return value(THIS->range_max());
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
static
|
|
100
|
+
VALUE has_range(VALUE self)
|
|
101
|
+
{
|
|
102
|
+
CHECK;
|
|
103
|
+
return value(THIS->has_range());
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
static
|
|
107
|
+
VALUE set_motor(VALUE self, VALUE pixels_per_second)
|
|
108
|
+
{
|
|
109
|
+
CHECK;
|
|
110
|
+
if (pixels_per_second.is_nil())
|
|
111
|
+
THIS->clear_motor();
|
|
112
|
+
else
|
|
113
|
+
THIS->set_motor(to<coord>(pixels_per_second));
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
static
|
|
117
|
+
VALUE get_motor(VALUE self)
|
|
118
|
+
{
|
|
119
|
+
CHECK;
|
|
120
|
+
return THIS->has_motor() ? value(THIS->motor()) : nil();
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
static
|
|
124
|
+
VALUE set_force(VALUE self, VALUE max_force)
|
|
125
|
+
{
|
|
126
|
+
CHECK;
|
|
127
|
+
if (max_force.is_nil())
|
|
128
|
+
THIS->clear_force();
|
|
129
|
+
else
|
|
130
|
+
THIS->set_force(to<float>(max_force));
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
static
|
|
134
|
+
VALUE get_force(VALUE self)
|
|
135
|
+
{
|
|
136
|
+
CHECK;
|
|
137
|
+
return THIS->has_force() ? value(THIS->force()) : nil();
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
static Class cLinkConstraint;
|
|
142
|
+
|
|
143
|
+
void
|
|
144
|
+
Init_reflex_link_constraint ()
|
|
145
|
+
{
|
|
146
|
+
Module mReflex = rb_define_module("Reflex");
|
|
147
|
+
|
|
148
|
+
cLinkConstraint = mReflex.define_class("LinkConstraint", Reflex::constraint_class());
|
|
149
|
+
rb_define_alloc_func(cLinkConstraint, alloc);
|
|
150
|
+
rb_define_method(cLinkConstraint, "axis=", RUBY_METHOD_FUNC(set_axis), -1);
|
|
151
|
+
rb_define_method(cLinkConstraint, "axis", RUBY_METHOD_FUNC(get_axis), 0);
|
|
152
|
+
rb_define_method(cLinkConstraint, "distance=", RUBY_METHOD_FUNC(set_distance), 1);
|
|
153
|
+
rb_define_method(cLinkConstraint, "distance", RUBY_METHOD_FUNC(get_distance), 0);
|
|
154
|
+
rb_define_method(cLinkConstraint, "current_distance", RUBY_METHOD_FUNC(current_distance), 0);
|
|
155
|
+
cLinkConstraint.define_private_method( "set_range!", set_range);
|
|
156
|
+
cLinkConstraint.define_private_method("clear_range!", clear_range);
|
|
157
|
+
cLinkConstraint.define_private_method( "range_min!", range_min);
|
|
158
|
+
cLinkConstraint.define_private_method( "range_max!", range_max);
|
|
159
|
+
cLinkConstraint.define_private_method( "has_range!", has_range);
|
|
160
|
+
rb_define_method(cLinkConstraint, "motor=", RUBY_METHOD_FUNC(set_motor), 1);
|
|
161
|
+
rb_define_method(cLinkConstraint, "motor", RUBY_METHOD_FUNC(get_motor), 0);
|
|
162
|
+
rb_define_method(cLinkConstraint, "force=", RUBY_METHOD_FUNC(set_force), 1);
|
|
163
|
+
rb_define_method(cLinkConstraint, "force", RUBY_METHOD_FUNC(get_force), 0);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
namespace Reflex
|
|
168
|
+
{
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
Class
|
|
172
|
+
link_constraint_class ()
|
|
173
|
+
{
|
|
174
|
+
return cLinkConstraint;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
}// Reflex
|
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
#include "reflex/ruby/menu.h"
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
#include <ranges>
|
|
5
|
+
#include <rays/ruby/image.h>
|
|
6
|
+
#include "reflex/exception.h"
|
|
7
|
+
#include "reflex/ruby/reflex.h"
|
|
8
|
+
#include "reflex/ruby/selector.h"
|
|
9
|
+
#include "reflex/ruby/view.h"
|
|
10
|
+
#include "defs.h"
|
|
11
|
+
#include "selector.h"
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(REFLEX_EXPORT, Reflex::Menu)
|
|
15
|
+
|
|
16
|
+
#define THIS to<Reflex::Menu*>(self)
|
|
17
|
+
|
|
18
|
+
#define CHECK RUCY_CHECK_PTR(Reflex::Menu, self)
|
|
19
|
+
|
|
20
|
+
#define CALL(fun) RUCY_CALL_SUPER(THIS, fun)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
static
|
|
24
|
+
VALUE alloc(VALUE klass)
|
|
25
|
+
{
|
|
26
|
+
return value(new Reflex::RubyMenu<Reflex::Menu>, klass);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
static
|
|
30
|
+
VALUE popup(VALUE self)
|
|
31
|
+
{
|
|
32
|
+
CHECK;
|
|
33
|
+
check_arg_count(__FILE__, __LINE__, "Menu#popup", argc, 2, 3);
|
|
34
|
+
|
|
35
|
+
Reflex::View* view = NULL;
|
|
36
|
+
if (argv[0].is_a(Reflex::view_class()))
|
|
37
|
+
{
|
|
38
|
+
view = to<Reflex::View*>(argv[0]);
|
|
39
|
+
argc--;
|
|
40
|
+
argv++;
|
|
41
|
+
}
|
|
42
|
+
THIS->popup(view, to<Rays::Point>(argc, argv));
|
|
43
|
+
return self;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
static
|
|
47
|
+
VALUE add_child(VALUE self, VALUE child, VALUE index)
|
|
48
|
+
{
|
|
49
|
+
CHECK;
|
|
50
|
+
THIS->add_child(to<Reflex::Menu*>(child), index.is_nil() ? -1 : to<int>(index));
|
|
51
|
+
return child;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
static
|
|
55
|
+
VALUE remove_child(VALUE self, VALUE child)
|
|
56
|
+
{
|
|
57
|
+
CHECK;
|
|
58
|
+
THIS->remove_child(to<Reflex::Menu*>(child));
|
|
59
|
+
return child;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
static
|
|
63
|
+
VALUE clear_children(VALUE self)
|
|
64
|
+
{
|
|
65
|
+
CHECK;
|
|
66
|
+
THIS->clear_children();
|
|
67
|
+
return self;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
static
|
|
71
|
+
VALUE find_children(VALUE self)
|
|
72
|
+
{
|
|
73
|
+
CHECK;
|
|
74
|
+
check_arg_count(__FILE__, __LINE__, "Menu#find_children", argc, 1, 2);
|
|
75
|
+
|
|
76
|
+
bool recursive = (argc >= 2) ? to<bool>(argv[1]) : true;
|
|
77
|
+
|
|
78
|
+
auto children =
|
|
79
|
+
THIS->find_children(to<Reflex::Selector>(argv[0]), recursive) |
|
|
80
|
+
std::views::transform([](auto& ref) {return value(ref);});
|
|
81
|
+
return array(children.begin(), children.end());
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
static
|
|
85
|
+
VALUE set_label(VALUE self, VALUE label)
|
|
86
|
+
{
|
|
87
|
+
CHECK;
|
|
88
|
+
THIS->set_label(label ? to<const char*>(label) : NULL);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
static
|
|
92
|
+
VALUE get_label(VALUE self)
|
|
93
|
+
{
|
|
94
|
+
CHECK;
|
|
95
|
+
return value(THIS->label());
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
static
|
|
99
|
+
VALUE set_image(VALUE self, VALUE image)
|
|
100
|
+
{
|
|
101
|
+
CHECK;
|
|
102
|
+
THIS->set_image(image ? to<Rays::Image&>(image) : Rays::Image());
|
|
103
|
+
return image;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
static
|
|
107
|
+
VALUE get_image(VALUE self)
|
|
108
|
+
{
|
|
109
|
+
CHECK;
|
|
110
|
+
const Rays::Image& image = THIS->image();
|
|
111
|
+
return image ? value(image) : nil();
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
static
|
|
115
|
+
VALUE enable(VALUE self, VALUE state)
|
|
116
|
+
{
|
|
117
|
+
CHECK;
|
|
118
|
+
THIS->enable(to<bool>(state));
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
static
|
|
122
|
+
VALUE is_enabled(VALUE self)
|
|
123
|
+
{
|
|
124
|
+
CHECK;
|
|
125
|
+
return value(THIS->is_enabled());
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
static
|
|
129
|
+
VALUE check(VALUE self, VALUE state)
|
|
130
|
+
{
|
|
131
|
+
CHECK;
|
|
132
|
+
THIS->check(to<bool>(state));
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
static
|
|
136
|
+
VALUE is_checked(VALUE self)
|
|
137
|
+
{
|
|
138
|
+
CHECK;
|
|
139
|
+
return value(THIS->is_checked());
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
static
|
|
144
|
+
VALUE set_shortcut_key(VALUE self, VALUE key)
|
|
145
|
+
{
|
|
146
|
+
CHECK;
|
|
147
|
+
THIS->set_shortcut(
|
|
148
|
+
key ? to<Reflex::KeyCode>(key) : Reflex::KEY_NONE,
|
|
149
|
+
THIS->shortcut_modifiers());
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
static
|
|
153
|
+
VALUE get_shortcut_key(VALUE self)
|
|
154
|
+
{
|
|
155
|
+
CHECK;
|
|
156
|
+
return value((int) THIS->shortcut_key());
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
static
|
|
160
|
+
VALUE set_shortcut_modifiers(VALUE self, VALUE modifiers)
|
|
161
|
+
{
|
|
162
|
+
CHECK;
|
|
163
|
+
THIS->set_shortcut(THIS->shortcut_key(), to<uint>(modifiers));
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
static
|
|
167
|
+
VALUE get_shortcut_modifiers(VALUE self)
|
|
168
|
+
{
|
|
169
|
+
CHECK;
|
|
170
|
+
return value(THIS->shortcut_modifiers());
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
static
|
|
174
|
+
VALUE is_separator(VALUE self)
|
|
175
|
+
{
|
|
176
|
+
CHECK;
|
|
177
|
+
return value(THIS->is_separator());
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
static
|
|
181
|
+
VALUE get_parent(VALUE self)
|
|
182
|
+
{
|
|
183
|
+
CHECK;
|
|
184
|
+
return value(THIS->parent());
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
static
|
|
188
|
+
VALUE get_size(VALUE self)
|
|
189
|
+
{
|
|
190
|
+
CHECK;
|
|
191
|
+
return value((int) THIS->size());
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
static
|
|
195
|
+
VALUE is_empty(VALUE self)
|
|
196
|
+
{
|
|
197
|
+
CHECK;
|
|
198
|
+
return value(THIS->empty());
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
static
|
|
202
|
+
VALUE each(VALUE self)
|
|
203
|
+
{
|
|
204
|
+
CHECK;
|
|
205
|
+
|
|
206
|
+
std::vector<Reflex::Menu::Ref> children(THIS->begin(), THIS->end());
|
|
207
|
+
|
|
208
|
+
Value ret;
|
|
209
|
+
for (auto& child : children)
|
|
210
|
+
ret = yield(value(child.get()));
|
|
211
|
+
return ret;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
static
|
|
215
|
+
VALUE on_show(VALUE self, VALUE event)
|
|
216
|
+
{
|
|
217
|
+
CHECK;
|
|
218
|
+
CALL(on_show(to<Reflex::Event*>(event)));
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
static
|
|
222
|
+
VALUE on_hide(VALUE self, VALUE event)
|
|
223
|
+
{
|
|
224
|
+
CHECK;
|
|
225
|
+
CALL(on_hide(to<Reflex::Event*>(event)));
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
static
|
|
229
|
+
VALUE on_open_submenu(VALUE self, VALUE event)
|
|
230
|
+
{
|
|
231
|
+
CHECK;
|
|
232
|
+
CALL(on_open_submenu(to<Reflex::Event*>(event)));
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
static
|
|
236
|
+
VALUE on_close_submenu(VALUE self, VALUE event)
|
|
237
|
+
{
|
|
238
|
+
CHECK;
|
|
239
|
+
CALL(on_close_submenu(to<Reflex::Event*>(event)));
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
static
|
|
243
|
+
VALUE on_click(VALUE self, VALUE event)
|
|
244
|
+
{
|
|
245
|
+
CHECK;
|
|
246
|
+
CALL(on_click(to<Reflex::Event*>(event)));
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
static Class cMenu;
|
|
251
|
+
|
|
252
|
+
void
|
|
253
|
+
Init_reflex_menu ()
|
|
254
|
+
{
|
|
255
|
+
Module mReflex = rb_define_module("Reflex");
|
|
256
|
+
|
|
257
|
+
cMenu = rb_define_class_under(mReflex, "Menu", rb_cObject);
|
|
258
|
+
rb_define_alloc_func(cMenu, alloc);
|
|
259
|
+
rb_define_method(cMenu, "popup", RUBY_METHOD_FUNC(popup), -1);
|
|
260
|
+
cMenu.define_method( "add_child!", add_child);
|
|
261
|
+
rb_define_method(cMenu, "remove_child", RUBY_METHOD_FUNC(remove_child), 1);
|
|
262
|
+
rb_define_method(cMenu, "clear_children", RUBY_METHOD_FUNC(clear_children), 0);
|
|
263
|
+
rb_define_method(cMenu, "find_children", RUBY_METHOD_FUNC(find_children), -1);
|
|
264
|
+
rb_define_method(cMenu, "label=", RUBY_METHOD_FUNC(set_label), 1);
|
|
265
|
+
rb_define_method(cMenu, "label", RUBY_METHOD_FUNC(get_label), 0);
|
|
266
|
+
rb_define_method(cMenu, "image=", RUBY_METHOD_FUNC(set_image), 1);
|
|
267
|
+
rb_define_method(cMenu, "image", RUBY_METHOD_FUNC(get_image), 0);
|
|
268
|
+
cMenu.define_method("enable!", enable);
|
|
269
|
+
cMenu.define_method("enabled?", is_enabled);
|
|
270
|
+
cMenu.define_method("check!", check);
|
|
271
|
+
cMenu.define_method("checked?", is_checked);
|
|
272
|
+
cMenu.define_private_method("set_shortcut_key!", set_shortcut_key);
|
|
273
|
+
cMenu.define_private_method("shortcut_key!", get_shortcut_key);
|
|
274
|
+
rb_define_method(cMenu, "shortcut_modifiers=", RUBY_METHOD_FUNC(set_shortcut_modifiers), 1);
|
|
275
|
+
rb_define_method(cMenu, "shortcut_modifiers", RUBY_METHOD_FUNC(get_shortcut_modifiers), 0);
|
|
276
|
+
cMenu.define_method("separator?", is_separator);
|
|
277
|
+
rb_define_method(cMenu, "parent", RUBY_METHOD_FUNC(get_parent), 0);
|
|
278
|
+
rb_define_method(cMenu, "size", RUBY_METHOD_FUNC(get_size), 0);
|
|
279
|
+
cMenu.define_method("empty?", is_empty);
|
|
280
|
+
cMenu.define_method("each!", each);
|
|
281
|
+
rb_define_method(cMenu, "on_show", RUBY_METHOD_FUNC(on_show), 1);
|
|
282
|
+
rb_define_method(cMenu, "on_hide", RUBY_METHOD_FUNC(on_hide), 1);
|
|
283
|
+
rb_define_method(cMenu, "on_open_submenu", RUBY_METHOD_FUNC(on_open_submenu), 1);
|
|
284
|
+
rb_define_method(cMenu, "on_close_submenu", RUBY_METHOD_FUNC(on_close_submenu), 1);
|
|
285
|
+
rb_define_method(cMenu, "on_click", RUBY_METHOD_FUNC(on_click), 1);
|
|
286
|
+
|
|
287
|
+
define_wrapper_equality_methods<Reflex::Menu>(cMenu);
|
|
288
|
+
define_selector_methods<Reflex::Menu>(cMenu);
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
namespace Reflex
|
|
293
|
+
{
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
Class
|
|
297
|
+
menu_class ()
|
|
298
|
+
{
|
|
299
|
+
return cMenu;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
|
|
303
|
+
}// Reflex
|
data/.doc/ext/reflex/midi.cpp
CHANGED
|
@@ -10,7 +10,7 @@ RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(REFLEX_EXPORT, Reflex::MIDI)
|
|
|
10
10
|
|
|
11
11
|
#define THIS to<Reflex::MIDI*>(self)
|
|
12
12
|
|
|
13
|
-
#define CHECK
|
|
13
|
+
#define CHECK RUCY_CHECK_OBJ(Reflex::MIDI, self)
|
|
14
14
|
|
|
15
15
|
#define CALL(fun) RUCY_CALL_SUPER(THIS, fun)
|
|
16
16
|
|
|
@@ -60,10 +60,16 @@ static
|
|
|
60
60
|
VALUE s_get_all(VALUE self)
|
|
61
61
|
{
|
|
62
62
|
auto list = Reflex::MIDI::all() |
|
|
63
|
-
std::views::transform([](
|
|
63
|
+
std::views::transform([](Reflex::MIDI::Ref ref) {return value(ref);});
|
|
64
64
|
return array(list.begin(), list.end());
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
+
static
|
|
68
|
+
VALUE s_enable(VALUE self)
|
|
69
|
+
{
|
|
70
|
+
Reflex::enable_midi();
|
|
71
|
+
}
|
|
72
|
+
|
|
67
73
|
|
|
68
74
|
static Class cMIDI;
|
|
69
75
|
|
|
@@ -80,6 +86,7 @@ Init_reflex_midi ()
|
|
|
80
86
|
rb_define_method(cMIDI, "on_note_off", RUBY_METHOD_FUNC(on_note_off), 1);
|
|
81
87
|
rb_define_method(cMIDI, "on_control_change", RUBY_METHOD_FUNC(on_control_change), 1);
|
|
82
88
|
rb_define_singleton_method(cMIDI, "all", RUBY_METHOD_FUNC(s_get_all), 0);
|
|
89
|
+
rb_define_singleton_method(cMIDI, "enable", RUBY_METHOD_FUNC(s_enable), 0);
|
|
83
90
|
|
|
84
91
|
define_wrapper_equality_methods<Reflex::MIDI>(cMIDI);
|
|
85
92
|
}
|
data/.doc/ext/reflex/native.cpp
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
void Init_reflex ();
|
|
5
5
|
void Init_reflex_exception ();
|
|
6
6
|
|
|
7
|
-
void Init_reflex_pointer ();
|
|
8
7
|
void Init_reflex_selector ();
|
|
8
|
+
void Init_reflex_pointer ();
|
|
9
9
|
void Init_reflex_style ();
|
|
10
10
|
void Init_reflex_style_length ();
|
|
11
11
|
void Init_reflex_timer ();
|
|
@@ -19,15 +19,18 @@ void Init_reflex_frame_event ();
|
|
|
19
19
|
void Init_reflex_scroll_event ();
|
|
20
20
|
void Init_reflex_focus_event ();
|
|
21
21
|
void Init_reflex_key_event ();
|
|
22
|
+
void Init_reflex_text_event ();
|
|
22
23
|
void Init_reflex_pointer_event ();
|
|
23
24
|
void Init_reflex_wheel_event ();
|
|
24
|
-
void Init_reflex_midi_event ();
|
|
25
|
-
void Init_reflex_note_event ();
|
|
26
|
-
void Init_reflex_control_change_event ();
|
|
27
25
|
void Init_reflex_capture_event ();
|
|
28
26
|
void Init_reflex_timer_event ();
|
|
29
27
|
void Init_reflex_contact_event ();
|
|
30
28
|
void Init_reflex_motion_event ();
|
|
29
|
+
void Init_reflex_file_event ();
|
|
30
|
+
void Init_reflex_color_event ();
|
|
31
|
+
void Init_reflex_midi_event ();
|
|
32
|
+
void Init_reflex_note_event ();
|
|
33
|
+
void Init_reflex_control_change_event ();
|
|
31
34
|
|
|
32
35
|
void Init_reflex_shape ();
|
|
33
36
|
void Init_reflex_polygon_shape ();
|
|
@@ -35,13 +38,25 @@ void Init_reflex_line_shape ();
|
|
|
35
38
|
void Init_reflex_rect_shape ();
|
|
36
39
|
void Init_reflex_ellipse_shape ();
|
|
37
40
|
|
|
41
|
+
void Init_reflex_pin ();
|
|
42
|
+
void Init_reflex_constraint ();
|
|
43
|
+
void Init_reflex_snap_constraint ();
|
|
44
|
+
void Init_reflex_link_constraint ();
|
|
45
|
+
void Init_reflex_wheel_constraint ();
|
|
46
|
+
void Init_reflex_chase_constraint ();
|
|
47
|
+
|
|
38
48
|
void Init_reflex_application ();
|
|
39
|
-
void Init_reflex_screen ();
|
|
40
49
|
void Init_reflex_window ();
|
|
41
50
|
void Init_reflex_view ();
|
|
51
|
+
void Init_reflex_menu ();
|
|
52
|
+
void Init_reflex_screen ();
|
|
53
|
+
void Init_reflex_clipboard ();
|
|
54
|
+
void Init_reflex_file_dialog ();
|
|
55
|
+
void Init_reflex_color_picker ();
|
|
42
56
|
|
|
43
57
|
void Init_reflex_device ();
|
|
44
58
|
void Init_reflex_midi ();
|
|
59
|
+
void Init_reflex_gamepad ();
|
|
45
60
|
|
|
46
61
|
void Init_reflex_image_view ();
|
|
47
62
|
|
|
@@ -56,8 +71,8 @@ Init_reflex_ext ()
|
|
|
56
71
|
Init_reflex();
|
|
57
72
|
Init_reflex_exception();
|
|
58
73
|
|
|
59
|
-
Init_reflex_pointer();
|
|
60
74
|
Init_reflex_selector();
|
|
75
|
+
Init_reflex_pointer();
|
|
61
76
|
Init_reflex_style();
|
|
62
77
|
Init_reflex_style_length();
|
|
63
78
|
Init_reflex_timer();
|
|
@@ -71,15 +86,18 @@ Init_reflex_ext ()
|
|
|
71
86
|
Init_reflex_scroll_event();
|
|
72
87
|
Init_reflex_focus_event();
|
|
73
88
|
Init_reflex_key_event();
|
|
89
|
+
Init_reflex_text_event();
|
|
74
90
|
Init_reflex_pointer_event();
|
|
75
91
|
Init_reflex_wheel_event();
|
|
76
|
-
Init_reflex_midi_event();
|
|
77
|
-
Init_reflex_note_event();
|
|
78
|
-
Init_reflex_control_change_event();
|
|
79
92
|
Init_reflex_capture_event();
|
|
80
93
|
Init_reflex_timer_event();
|
|
81
94
|
Init_reflex_contact_event();
|
|
82
95
|
Init_reflex_motion_event();
|
|
96
|
+
Init_reflex_file_event();
|
|
97
|
+
Init_reflex_color_event();
|
|
98
|
+
Init_reflex_midi_event();
|
|
99
|
+
Init_reflex_note_event();
|
|
100
|
+
Init_reflex_control_change_event();
|
|
83
101
|
|
|
84
102
|
Init_reflex_shape();
|
|
85
103
|
Init_reflex_polygon_shape();
|
|
@@ -87,13 +105,25 @@ Init_reflex_ext ()
|
|
|
87
105
|
Init_reflex_rect_shape();
|
|
88
106
|
Init_reflex_ellipse_shape();
|
|
89
107
|
|
|
108
|
+
Init_reflex_pin();
|
|
109
|
+
Init_reflex_constraint();
|
|
110
|
+
Init_reflex_snap_constraint();
|
|
111
|
+
Init_reflex_link_constraint();
|
|
112
|
+
Init_reflex_wheel_constraint();
|
|
113
|
+
Init_reflex_chase_constraint();
|
|
114
|
+
|
|
90
115
|
Init_reflex_application();
|
|
91
|
-
Init_reflex_screen();
|
|
92
116
|
Init_reflex_window();
|
|
93
117
|
Init_reflex_view();
|
|
118
|
+
Init_reflex_menu();
|
|
119
|
+
Init_reflex_screen();
|
|
120
|
+
Init_reflex_clipboard();
|
|
121
|
+
Init_reflex_file_dialog();
|
|
122
|
+
Init_reflex_color_picker();
|
|
94
123
|
|
|
95
124
|
Init_reflex_device();
|
|
96
125
|
Init_reflex_midi();
|
|
126
|
+
Init_reflex_gamepad();
|
|
97
127
|
|
|
98
128
|
Init_reflex_image_view();
|
|
99
129
|
|