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
data/.github/workflows/test.yml
CHANGED
|
@@ -7,31 +7,4 @@ on:
|
|
|
7
7
|
|
|
8
8
|
jobs:
|
|
9
9
|
test:
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
steps:
|
|
13
|
-
- name: ruby 3.2
|
|
14
|
-
uses: ruby/setup-ruby@v1
|
|
15
|
-
with:
|
|
16
|
-
ruby-version: 3.2
|
|
17
|
-
|
|
18
|
-
- name: checkout
|
|
19
|
-
uses: actions/checkout@v4
|
|
20
|
-
|
|
21
|
-
- name: setup gems
|
|
22
|
-
run: bundle install
|
|
23
|
-
|
|
24
|
-
- name: setup dependencies
|
|
25
|
-
run: "ruby -I.github/workflows -rutils -e 'setup_dependencies'"
|
|
26
|
-
|
|
27
|
-
- name: packages
|
|
28
|
-
run: bundle exec rake verbose packages
|
|
29
|
-
|
|
30
|
-
- name: lib
|
|
31
|
-
run: bundle exec rake verbose lib
|
|
32
|
-
|
|
33
|
-
- name: ext
|
|
34
|
-
run: bundle exec rake verbose ext
|
|
35
|
-
|
|
36
|
-
- name: test
|
|
37
|
-
run: bundle exec rake verbose test
|
|
10
|
+
uses: xord/xot/.github/workflows/test.yml@master
|
data/ChangeLog.md
CHANGED
|
@@ -1,6 +1,85 @@
|
|
|
1
1
|
# reflex ChangeLog
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
## [v0.7.0] - 2026-11-04
|
|
5
|
+
|
|
6
|
+
- [BREAKING] Rename View#cache to View#draw_cache
|
|
7
|
+
- [BREAKING] Rename Window#hidden to Window#hidden?
|
|
8
|
+
- [BREAKING] Make Menu#shortcut_key a key symbol, not a string
|
|
9
|
+
- [BREAKING] Return only the shortcut modifiers from #modifiers by default
|
|
10
|
+
- [BREAKING] Report wheel deltas in pixels, in the same direction, on every platform
|
|
11
|
+
- [BREAKING] Make the window frame the client rect on Windows, as it is the content rect on macOS
|
|
12
|
+
- [BREAKING] Open gamepads and MIDI only when Gamepad.enable / MIDI.enable is called
|
|
13
|
+
- [BREAKING] Return from Reflex.start on quit on macOS too, and raise the exception of a callback from it
|
|
14
|
+
- [BREAKING] Raise the deployment targets to macOS 11.0 and iOS 14.0
|
|
15
|
+
- Add TextEvent, on_text_preedit and on_text_commit to take text from an input method
|
|
16
|
+
- Add HasTextPreedit for views taking text input
|
|
17
|
+
- Add FileDialog to open the file dialog of the platform
|
|
18
|
+
- Add ColorPicker to open the color picker of the platform
|
|
19
|
+
- Add Reflex.alert to show a message and wait for it to be closed
|
|
20
|
+
- Add Application#background for an app with no dock icon, with its menu in the menu bar or the tray
|
|
21
|
+
- Add Window#transparent= and #shadow=
|
|
22
|
+
- Add the :buttons and :background flags to Window#titlebar to hide the parts of the titlebar
|
|
23
|
+
- Add Window#always_on_top and #always_on_bottom
|
|
24
|
+
- Add Window::FLAG_POINTER_THROUGH and Window#pointer_through_alpha to let pointers go through a window
|
|
25
|
+
- Add Window#unlisted= to keep a window out of Mission Control, the taskbar and alt-tab
|
|
26
|
+
- Add Screen.all, Screen#name and #pixel_density
|
|
27
|
+
- Add Reflex::KEYS and Reflex.get_key_symbol!
|
|
28
|
+
- Add ControlChangeEvent#inspect
|
|
29
|
+
- Handle non-ASCII text on Windows
|
|
30
|
+
- Support High DPI on Windows
|
|
31
|
+
- Deliver MIDI events to every window, also while the app is in the background
|
|
32
|
+
- End every pointer press with an up or a cancel, also when a menu pops up or the pointer leaves the window
|
|
33
|
+
- Decide the enter and leave of a window from where the pointer is
|
|
34
|
+
- Stop hover moves at the edge of a window on macOS, as on the other platforms
|
|
35
|
+
- Let handlers add and remove views while events are dispatched
|
|
36
|
+
- Name an application by the name the system has for it by default
|
|
37
|
+
- Give windows the icon of the executable on Windows
|
|
38
|
+
- Keep the caption on screen when placing a window on Windows
|
|
39
|
+
- Leave the time a popup menu is open on Windows out of the next dt
|
|
40
|
+
- Make Window#close do nothing on a window already closed
|
|
41
|
+
- Let Window#titlebar and #orientations be called as universal accessors
|
|
42
|
+
|
|
43
|
+
- Fix menu shortcuts never firing on macOS and Windows
|
|
44
|
+
- Fix closable, minimizable and resizable doing nothing on Windows
|
|
45
|
+
- Fix the window flags taking effect one change late on macOS
|
|
46
|
+
- Fix a block given to Window.new or Reflex.start being lost when on(:show) or on(:start) is hooked
|
|
47
|
+
- Fix views added to a window already shown never being drawn
|
|
48
|
+
- Fix a drag not working on Windows right after a popup menu
|
|
49
|
+
- Fix MIDI.all returning true for each device
|
|
50
|
+
- Fix the MIDI input thread corrupting the heap
|
|
51
|
+
- Fix a crash when removing two or more gamepads
|
|
52
|
+
- Fix RtMidi running the event loop of the app on macOS
|
|
53
|
+
- Fix the extension failing to load on Windows without the DirectX redistributable
|
|
54
|
+
- Fix linking the extension statically on macOS
|
|
55
|
+
- Fix the build for iOS
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
## [v0.6.0] - 2026-08-04
|
|
59
|
+
|
|
60
|
+
- [BREAKING] Read modifiers as symbols from every event that carries them
|
|
61
|
+
- [BREAKING] Rename KEY_APPS to KEY_CONTEXT_MENU and fix its macOS keycode
|
|
62
|
+
- [BREAKING] Sync view frames on View#update_world, drop its duration argument
|
|
63
|
+
- Add Menu class and Application#menu
|
|
64
|
+
- Add Constraint classes backed by Box2D joints
|
|
65
|
+
- Add Clipboard class
|
|
66
|
+
- Add on_pointer_enter/leave event handlers to View and Window
|
|
67
|
+
- Add on_activate/deactivate event handlers to View
|
|
68
|
+
- Add index argument to View#add_child and #add_shape
|
|
69
|
+
- Add locks: option to modifiers for excluding caps/num/scroll lock
|
|
70
|
+
- Add midi and gamepad to the umbrella header
|
|
71
|
+
- Add menu and constraint samples
|
|
72
|
+
- Give View#each_* an enumerator form and array-returning plural accessors
|
|
73
|
+
- Make View#each_* safe against removals during iteration
|
|
74
|
+
- Fill in the Windows virtual-key codes for punctuation and numpad operators
|
|
75
|
+
- Report fn+return as the keypad enter on macOS
|
|
76
|
+
|
|
77
|
+
- Fix crash when an empty array is passed where a Pin or Selector is expected
|
|
78
|
+
- Fix get_modifiers reporting only the first modifier held
|
|
79
|
+
- Fix reversed selector match in find_shapes and find_styles
|
|
80
|
+
- Fix view clipping to track ancestor zoom and position in screen space
|
|
81
|
+
|
|
82
|
+
|
|
4
83
|
## [v0.5.3] - 2026-06-23
|
|
5
84
|
|
|
6
85
|
- Run vendor and erb for reflex itself in pod.rake setup
|
data/Gemfile.lock
CHANGED
|
@@ -1,21 +1,26 @@
|
|
|
1
1
|
GEM
|
|
2
2
|
remote: https://rubygems.org/
|
|
3
3
|
specs:
|
|
4
|
-
power_assert (3.0
|
|
5
|
-
rake (13.
|
|
6
|
-
test-unit (3.7.
|
|
4
|
+
power_assert (3.1.0)
|
|
5
|
+
rake (13.4.2)
|
|
6
|
+
test-unit (3.7.8)
|
|
7
7
|
power_assert
|
|
8
|
-
yard (0.9.
|
|
8
|
+
yard (0.9.45)
|
|
9
9
|
|
|
10
10
|
PLATFORMS
|
|
11
|
-
|
|
12
|
-
arm64-darwin-23
|
|
13
|
-
arm64-darwin-24
|
|
11
|
+
ruby
|
|
14
12
|
|
|
15
13
|
DEPENDENCIES
|
|
16
14
|
rake
|
|
17
15
|
test-unit
|
|
18
16
|
yard
|
|
19
17
|
|
|
18
|
+
CHECKSUMS
|
|
19
|
+
bundler (4.0.20) sha256=7978a8ac648767f5e635bc522445b79e80a52b907a39a36c2d8085ed6bc762ae
|
|
20
|
+
power_assert (3.1.0) sha256=fefe98ed5d3140628138f3f9f9194d6ece01f1320e69700d3c928adca7518251
|
|
21
|
+
rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701
|
|
22
|
+
test-unit (3.7.8) sha256=689d1ca53f4d46f678b4e5d68d8e4294f87fc5e8b9238cc4de7c5727e8d65943
|
|
23
|
+
yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51
|
|
24
|
+
|
|
20
25
|
BUNDLED WITH
|
|
21
|
-
|
|
26
|
+
4.0.20
|
data/README.md
CHANGED
|
@@ -74,6 +74,7 @@ $ gem install reflexion
|
|
|
74
74
|
| `Reflex::Window` | OS-level window with title, frame, flags (closable / resizable / fullscreen / portrait / landscape) |
|
|
75
75
|
| `Reflex::View` | Recursive UI node: position, size, transform, styles, child views, optional clipping / caching |
|
|
76
76
|
| `Reflex::Screen` | Information about a display monitor |
|
|
77
|
+
| `Reflex::Clipboard` | Read and write the system clipboard |
|
|
77
78
|
| `Reflex::Timer` | One-shot or interval timer that delivers `TimerEvent` |
|
|
78
79
|
|
|
79
80
|
### Shapes (drawing + physics body)
|
data/Rakefile
CHANGED
|
@@ -35,12 +35,23 @@ use_external_library 'https://github.com/thestk/rtmidi',
|
|
|
35
35
|
when linux? then '__LINUX_ALSA__'
|
|
36
36
|
end
|
|
37
37
|
}.call,
|
|
38
|
-
&proc {
|
|
38
|
+
&proc {
|
|
39
|
+
sh %( mkdir rtmidi && cp RtMidi.* rtmidi )
|
|
40
|
+
|
|
41
|
+
# the event loop of the app already takes in the port changes, and running
|
|
42
|
+
# it from inside RtMidi calls the timers and events of the app too early
|
|
43
|
+
spin = /^[ \t]*CFRunLoopRunInMode\([^)]*\);\n/
|
|
44
|
+
filter_file 'rtmidi/RtMidi.cpp' do |src|
|
|
45
|
+
count = src.scan(spin).size
|
|
46
|
+
raise "expected 6 run loop calls in RtMidi.cpp, found #{count}" if count != 6
|
|
47
|
+
src.gsub spin, ''
|
|
48
|
+
end
|
|
49
|
+
}
|
|
39
50
|
|
|
40
51
|
default_tasks :ext
|
|
41
52
|
use_bundler
|
|
42
53
|
build_native_library
|
|
43
54
|
build_ruby_extension
|
|
44
|
-
test_ruby_extension
|
|
55
|
+
test_ruby_extension
|
|
45
56
|
generate_documents
|
|
46
57
|
build_ruby_gem
|
data/Reflex.podspec
CHANGED
|
@@ -11,8 +11,8 @@ Pod::Spec.new do |s|
|
|
|
11
11
|
s.author = {"xordog" => "xordog@gmail.com"}
|
|
12
12
|
s.homepage = "https://github.com/xord/reflex"
|
|
13
13
|
|
|
14
|
-
s.osx.deployment_target = "
|
|
15
|
-
s.ios.deployment_target = "
|
|
14
|
+
s.osx.deployment_target = "11.0"
|
|
15
|
+
s.ios.deployment_target = "14.0"
|
|
16
16
|
|
|
17
17
|
root = "${PODS_ROOT}/#{s.name}"
|
|
18
18
|
exts = File.read(File.expand_path 'Rakefile', __dir__)
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.7.0
|
data/ext/reflex/application.cpp
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#include "reflex/ruby/application.h"
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
#include "reflex/ruby/menu.h"
|
|
4
5
|
#include "reflex/ruby/window.h"
|
|
5
6
|
#include "defs.h"
|
|
6
7
|
|
|
@@ -9,8 +10,8 @@ RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(REFLEX_EXPORT, Reflex::Application)
|
|
|
9
10
|
|
|
10
11
|
#define THIS to<Reflex::Application*>(self)
|
|
11
12
|
|
|
12
|
-
#define
|
|
13
|
-
#define CHECK
|
|
13
|
+
#define CHECK_PTR RUCY_CHECK_PTR(Reflex::Application, self)
|
|
14
|
+
#define CHECK RUCY_CHECK_OBJ(Reflex::Application, self)
|
|
14
15
|
|
|
15
16
|
#define CALL(fun) RUCY_CALL_SUPER(THIS, fun)
|
|
16
17
|
|
|
@@ -25,7 +26,7 @@ RUCY_END
|
|
|
25
26
|
static
|
|
26
27
|
RUCY_DEF0(start)
|
|
27
28
|
{
|
|
28
|
-
|
|
29
|
+
CHECK_PTR;
|
|
29
30
|
CALL(start());
|
|
30
31
|
return self;
|
|
31
32
|
}
|
|
@@ -57,6 +58,57 @@ RUCY_DEF0(get_name)
|
|
|
57
58
|
}
|
|
58
59
|
RUCY_END
|
|
59
60
|
|
|
61
|
+
static
|
|
62
|
+
RUCY_DEF1(set_menu, menu)
|
|
63
|
+
{
|
|
64
|
+
CHECK;
|
|
65
|
+
THIS->set_menu(menu ? to<Reflex::Menu*>(menu) : NULL);
|
|
66
|
+
return menu;
|
|
67
|
+
}
|
|
68
|
+
RUCY_END
|
|
69
|
+
|
|
70
|
+
static
|
|
71
|
+
RUCY_DEF0(get_menu)
|
|
72
|
+
{
|
|
73
|
+
CHECK;
|
|
74
|
+
return value(THIS->menu());
|
|
75
|
+
}
|
|
76
|
+
RUCY_END
|
|
77
|
+
|
|
78
|
+
static
|
|
79
|
+
RUCY_DEF1(set_background, state)
|
|
80
|
+
{
|
|
81
|
+
CHECK;
|
|
82
|
+
THIS->set_background(to<bool>(state));
|
|
83
|
+
return state;
|
|
84
|
+
}
|
|
85
|
+
RUCY_END
|
|
86
|
+
|
|
87
|
+
static
|
|
88
|
+
RUCY_DEF0(is_background)
|
|
89
|
+
{
|
|
90
|
+
CHECK;
|
|
91
|
+
return value(THIS->background());
|
|
92
|
+
}
|
|
93
|
+
RUCY_END
|
|
94
|
+
|
|
95
|
+
static
|
|
96
|
+
RUCY_DEF1(set_background_menu, menu)
|
|
97
|
+
{
|
|
98
|
+
CHECK;
|
|
99
|
+
THIS->set_background_menu(menu ? to<Reflex::Menu*>(menu) : NULL);
|
|
100
|
+
return menu;
|
|
101
|
+
}
|
|
102
|
+
RUCY_END
|
|
103
|
+
|
|
104
|
+
static
|
|
105
|
+
RUCY_DEF0(get_background_menu)
|
|
106
|
+
{
|
|
107
|
+
CHECK;
|
|
108
|
+
return value(THIS->background_menu());
|
|
109
|
+
}
|
|
110
|
+
RUCY_END
|
|
111
|
+
|
|
60
112
|
static
|
|
61
113
|
RUCY_DEF0(each_window)
|
|
62
114
|
{
|
|
@@ -64,7 +116,7 @@ RUCY_DEF0(each_window)
|
|
|
64
116
|
|
|
65
117
|
Value ret;
|
|
66
118
|
for (auto it = THIS->window_begin(), end = THIS->window_end(); it != end; ++it)
|
|
67
|
-
ret =
|
|
119
|
+
ret = yield(value(it->get()));
|
|
68
120
|
return ret;
|
|
69
121
|
}
|
|
70
122
|
RUCY_END
|
|
@@ -74,9 +126,6 @@ RUCY_DEF1(on_start, event)
|
|
|
74
126
|
{
|
|
75
127
|
CHECK;
|
|
76
128
|
|
|
77
|
-
RUCY_SYM(call_start_block);
|
|
78
|
-
self.call(call_start_block);
|
|
79
|
-
|
|
80
129
|
CALL(on_start(to<Reflex::Event*>(event)));
|
|
81
130
|
}
|
|
82
131
|
RUCY_END
|
|
@@ -150,6 +199,12 @@ Init_reflex_application ()
|
|
|
150
199
|
cApplication.define_method("quit", quit);
|
|
151
200
|
cApplication.define_method("name=", set_name);
|
|
152
201
|
cApplication.define_method("name", get_name);
|
|
202
|
+
cApplication.define_method("menu=", set_menu);
|
|
203
|
+
cApplication.define_method("menu", get_menu);
|
|
204
|
+
cApplication.define_method("background=", set_background);
|
|
205
|
+
cApplication.define_method("background?", is_background);
|
|
206
|
+
cApplication.define_method("background_menu=", set_background_menu);
|
|
207
|
+
cApplication.define_method("background_menu", get_background_menu);
|
|
153
208
|
cApplication.define_method("each_window", each_window);
|
|
154
209
|
cApplication.define_method("on_start", on_start);
|
|
155
210
|
cApplication.define_method("on_quit", on_quit);
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
#include "reflex/ruby/constraint.h"
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
#include <rays/ruby/point.h>
|
|
5
|
+
#include "reflex/exception.h"
|
|
6
|
+
#include "reflex/ruby/pin.h"
|
|
7
|
+
#include "reflex/ruby/view.h"
|
|
8
|
+
#include "defs.h"
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(REFLEX_EXPORT, Reflex::ChaseConstraint)
|
|
12
|
+
|
|
13
|
+
#define THIS to<Reflex::ChaseConstraint*>(self)
|
|
14
|
+
|
|
15
|
+
#define CHECK RUCY_CHECK_PTR(Reflex::ChaseConstraint, self)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
static
|
|
19
|
+
RUCY_DEF_ALLOC(alloc, klass)
|
|
20
|
+
{
|
|
21
|
+
Reflex::reflex_error(
|
|
22
|
+
__FILE__, __LINE__, "can not instantiate ChaseConstraint class");
|
|
23
|
+
}
|
|
24
|
+
RUCY_END
|
|
25
|
+
|
|
26
|
+
static
|
|
27
|
+
RUCY_DEFN(set_target)
|
|
28
|
+
{
|
|
29
|
+
CHECK;
|
|
30
|
+
THIS->set_target(to<Reflex::Pin>(argc, argv));
|
|
31
|
+
}
|
|
32
|
+
RUCY_END
|
|
33
|
+
|
|
34
|
+
static
|
|
35
|
+
RUCY_DEF0(get_target)
|
|
36
|
+
{
|
|
37
|
+
CHECK;
|
|
38
|
+
return value(THIS->target());
|
|
39
|
+
}
|
|
40
|
+
RUCY_END
|
|
41
|
+
|
|
42
|
+
static
|
|
43
|
+
RUCY_DEF1(set_force, max_force)
|
|
44
|
+
{
|
|
45
|
+
CHECK;
|
|
46
|
+
if (max_force.is_nil())
|
|
47
|
+
THIS->clear_force();
|
|
48
|
+
else
|
|
49
|
+
THIS->set_force(to<float>(max_force));
|
|
50
|
+
}
|
|
51
|
+
RUCY_END
|
|
52
|
+
|
|
53
|
+
static
|
|
54
|
+
RUCY_DEF0(get_force)
|
|
55
|
+
{
|
|
56
|
+
CHECK;
|
|
57
|
+
return THIS->has_force() ? value(THIS->force()) : nil();
|
|
58
|
+
}
|
|
59
|
+
RUCY_END
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
static Class cChaseConstraint;
|
|
63
|
+
|
|
64
|
+
void
|
|
65
|
+
Init_reflex_chase_constraint ()
|
|
66
|
+
{
|
|
67
|
+
Module mReflex = define_module("Reflex");
|
|
68
|
+
|
|
69
|
+
cChaseConstraint = mReflex.define_class("ChaseConstraint", Reflex::constraint_class());
|
|
70
|
+
cChaseConstraint.define_alloc_func(alloc);
|
|
71
|
+
cChaseConstraint.define_method("target=", set_target);
|
|
72
|
+
cChaseConstraint.define_method("target", get_target);
|
|
73
|
+
cChaseConstraint.define_method("force=", set_force);
|
|
74
|
+
cChaseConstraint.define_method("force", get_force);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
namespace Reflex
|
|
79
|
+
{
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
Class
|
|
83
|
+
chase_constraint_class ()
|
|
84
|
+
{
|
|
85
|
+
return cChaseConstraint;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
}// Reflex
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
#include "reflex/ruby/clipboard.h"
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
#include "reflex/exception.h"
|
|
5
|
+
#include "defs.h"
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
static
|
|
9
|
+
RUCY_DEF_ALLOC(alloc, klass)
|
|
10
|
+
{
|
|
11
|
+
Reflex::reflex_error(__FILE__, __LINE__, "can not instantiate Clipboard class.");
|
|
12
|
+
}
|
|
13
|
+
RUCY_END
|
|
14
|
+
|
|
15
|
+
static
|
|
16
|
+
RUCY_DEF1(set_text, text)
|
|
17
|
+
{
|
|
18
|
+
Reflex::Clipboard clipboard;
|
|
19
|
+
if (!text.is_nil()) clipboard.set_text(text.c_str());
|
|
20
|
+
Reflex::set_clipboard(clipboard);
|
|
21
|
+
return text;
|
|
22
|
+
}
|
|
23
|
+
RUCY_END
|
|
24
|
+
|
|
25
|
+
static
|
|
26
|
+
RUCY_DEF0(get_text)
|
|
27
|
+
{
|
|
28
|
+
Reflex::Clipboard clipboard = Reflex::get_clipboard();
|
|
29
|
+
const char* text = clipboard.text();
|
|
30
|
+
return text ? value(text) : nil();
|
|
31
|
+
}
|
|
32
|
+
RUCY_END
|
|
33
|
+
|
|
34
|
+
static
|
|
35
|
+
RUCY_DEF0(clear)
|
|
36
|
+
{
|
|
37
|
+
Reflex::set_clipboard(Reflex::Clipboard());
|
|
38
|
+
return self;
|
|
39
|
+
}
|
|
40
|
+
RUCY_END
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
static Class cClipboard;
|
|
44
|
+
|
|
45
|
+
void
|
|
46
|
+
Init_reflex_clipboard ()
|
|
47
|
+
{
|
|
48
|
+
Module mReflex = define_module("Reflex");
|
|
49
|
+
|
|
50
|
+
cClipboard = mReflex.define_class("Clipboard");
|
|
51
|
+
cClipboard.define_alloc_func(alloc);
|
|
52
|
+
cClipboard.define_singleton_method("text=", set_text);
|
|
53
|
+
cClipboard.define_singleton_method("text", get_text);
|
|
54
|
+
cClipboard.define_singleton_method("clear", clear);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
namespace Reflex
|
|
59
|
+
{
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
Class
|
|
63
|
+
clipboard_class ()
|
|
64
|
+
{
|
|
65
|
+
return cClipboard;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
}// Reflex
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
#include "reflex/ruby/event.h"
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
#include <rays/ruby/color.h>
|
|
5
|
+
#include "defs.h"
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
RUCY_DEFINE_VALUE_FROM_TO(REFLEX_EXPORT, Reflex::ColorEvent)
|
|
9
|
+
|
|
10
|
+
#define THIS to<Reflex::ColorEvent*>(self)
|
|
11
|
+
|
|
12
|
+
#define CHECK RUCY_CHECK_PTR(Reflex::ColorEvent, self)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
static
|
|
16
|
+
RUCY_DEF_ALLOC(alloc, klass)
|
|
17
|
+
{
|
|
18
|
+
return new_type<Reflex::ColorEvent>(klass);
|
|
19
|
+
}
|
|
20
|
+
RUCY_END
|
|
21
|
+
|
|
22
|
+
static
|
|
23
|
+
RUCY_DEF1(initialize, color)
|
|
24
|
+
{
|
|
25
|
+
CHECK;
|
|
26
|
+
|
|
27
|
+
if (color.is_nil())
|
|
28
|
+
argument_error(__FILE__, __LINE__);
|
|
29
|
+
|
|
30
|
+
*THIS = Reflex::ColorEvent(to<Rays::Color>(color));
|
|
31
|
+
|
|
32
|
+
return rb_call_super(0, NULL);
|
|
33
|
+
}
|
|
34
|
+
RUCY_END
|
|
35
|
+
|
|
36
|
+
static
|
|
37
|
+
RUCY_DEF1(initialize_copy, obj)
|
|
38
|
+
{
|
|
39
|
+
CHECK;
|
|
40
|
+
*THIS = to<Reflex::ColorEvent&>(obj).dup();
|
|
41
|
+
return self;
|
|
42
|
+
}
|
|
43
|
+
RUCY_END
|
|
44
|
+
|
|
45
|
+
static
|
|
46
|
+
RUCY_DEF0(get_color)
|
|
47
|
+
{
|
|
48
|
+
CHECK;
|
|
49
|
+
return value(THIS->color());
|
|
50
|
+
}
|
|
51
|
+
RUCY_END
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
static Class cColorEvent;
|
|
55
|
+
|
|
56
|
+
void
|
|
57
|
+
Init_reflex_color_event ()
|
|
58
|
+
{
|
|
59
|
+
Module mReflex = define_module("Reflex");
|
|
60
|
+
|
|
61
|
+
cColorEvent = mReflex.define_class("ColorEvent", Reflex::event_class());
|
|
62
|
+
cColorEvent.define_alloc_func(alloc);
|
|
63
|
+
cColorEvent.define_private_method("initialize", initialize);
|
|
64
|
+
cColorEvent.define_private_method("initialize_copy", initialize_copy);
|
|
65
|
+
cColorEvent.define_method("color", get_color);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
namespace Reflex
|
|
70
|
+
{
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
Class
|
|
74
|
+
color_event_class ()
|
|
75
|
+
{
|
|
76
|
+
return cColorEvent;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
}// Reflex
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
#include "reflex/ruby/color_picker.h"
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
#include <rays/ruby/color.h>
|
|
5
|
+
#include "reflex/ruby/window.h"
|
|
6
|
+
#include "defs.h"
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(REFLEX_EXPORT, Reflex::ColorPicker)
|
|
10
|
+
|
|
11
|
+
#define THIS to<Reflex::ColorPicker*>(self)
|
|
12
|
+
|
|
13
|
+
#define CHECK RUCY_CHECK_OBJ(Reflex::ColorPicker, self)
|
|
14
|
+
|
|
15
|
+
#define CALL(fun) RUCY_CALL_SUPER(THIS, fun)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
static
|
|
19
|
+
RUCY_DEF_ALLOC(alloc, klass)
|
|
20
|
+
{
|
|
21
|
+
return value(new Reflex::RubyColorPicker<Reflex::ColorPicker>, klass);
|
|
22
|
+
}
|
|
23
|
+
RUCY_END
|
|
24
|
+
|
|
25
|
+
static
|
|
26
|
+
RUCY_DEF1(pick_color, initial)
|
|
27
|
+
{
|
|
28
|
+
CHECK;
|
|
29
|
+
|
|
30
|
+
if (initial.is_nil())
|
|
31
|
+
THIS->pick_color();
|
|
32
|
+
else
|
|
33
|
+
THIS->pick_color(to<Rays::Color>(initial));
|
|
34
|
+
return self;
|
|
35
|
+
}
|
|
36
|
+
RUCY_END
|
|
37
|
+
|
|
38
|
+
static
|
|
39
|
+
RUCY_DEF1(set_owner, owner)
|
|
40
|
+
{
|
|
41
|
+
CHECK;
|
|
42
|
+
THIS->set_owner(owner.is_nil() ? NULL : to<Reflex::Window*>(owner));
|
|
43
|
+
return owner;
|
|
44
|
+
}
|
|
45
|
+
RUCY_END
|
|
46
|
+
|
|
47
|
+
static
|
|
48
|
+
RUCY_DEF0(get_owner)
|
|
49
|
+
{
|
|
50
|
+
CHECK;
|
|
51
|
+
return value(THIS->owner());
|
|
52
|
+
}
|
|
53
|
+
RUCY_END
|
|
54
|
+
|
|
55
|
+
static
|
|
56
|
+
RUCY_DEF1(set_alpha, state)
|
|
57
|
+
{
|
|
58
|
+
CHECK;
|
|
59
|
+
THIS->set_alpha(to<bool>(state));
|
|
60
|
+
return state;
|
|
61
|
+
}
|
|
62
|
+
RUCY_END
|
|
63
|
+
|
|
64
|
+
static
|
|
65
|
+
RUCY_DEF0(is_alpha)
|
|
66
|
+
{
|
|
67
|
+
CHECK;
|
|
68
|
+
return value(THIS->alpha());
|
|
69
|
+
}
|
|
70
|
+
RUCY_END
|
|
71
|
+
|
|
72
|
+
static
|
|
73
|
+
RUCY_DEF1(on_color, event)
|
|
74
|
+
{
|
|
75
|
+
CHECK;
|
|
76
|
+
|
|
77
|
+
CALL(on_color(to<Reflex::ColorEvent*>(event)));
|
|
78
|
+
}
|
|
79
|
+
RUCY_END
|
|
80
|
+
|
|
81
|
+
static
|
|
82
|
+
RUCY_DEF1(on_close, event)
|
|
83
|
+
{
|
|
84
|
+
CHECK;
|
|
85
|
+
|
|
86
|
+
CALL(on_close(to<Reflex::Event*>(event)));
|
|
87
|
+
}
|
|
88
|
+
RUCY_END
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
static Class cColorPicker;
|
|
92
|
+
|
|
93
|
+
void
|
|
94
|
+
Init_reflex_color_picker ()
|
|
95
|
+
{
|
|
96
|
+
Module mReflex = define_module("Reflex");
|
|
97
|
+
|
|
98
|
+
cColorPicker = mReflex.define_class("ColorPicker");
|
|
99
|
+
cColorPicker.define_alloc_func(alloc);
|
|
100
|
+
cColorPicker.define_method("pick_color!", pick_color);
|
|
101
|
+
cColorPicker.define_method("owner=", set_owner);
|
|
102
|
+
cColorPicker.define_method("owner", get_owner);
|
|
103
|
+
cColorPicker.define_method("alpha=", set_alpha);
|
|
104
|
+
cColorPicker.define_method("alpha?", is_alpha);
|
|
105
|
+
cColorPicker.define_method("on_color", on_color);
|
|
106
|
+
cColorPicker.define_method("on_close", on_close);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
namespace Reflex
|
|
111
|
+
{
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
Class
|
|
115
|
+
color_picker_class ()
|
|
116
|
+
{
|
|
117
|
+
return cColorPicker;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
}// Reflex
|