kredki 0.1.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 +7 -0
- data/lib/kredki/core/application.rb +314 -0
- data/lib/kredki/core/color.rb +100 -0
- data/lib/kredki/core/event/block_event_reaction.rb +44 -0
- data/lib/kredki/core/event/composite_event_manager.rb +37 -0
- data/lib/kredki/core/event/event.rb +91 -0
- data/lib/kredki/core/event/event_manager.rb +60 -0
- data/lib/kredki/core/event/event_manager_jobs.rb +53 -0
- data/lib/kredki/core/event/event_reaction.rb +36 -0
- data/lib/kredki/core/event/family/drop_event.rb +40 -0
- data/lib/kredki/core/event/family/exit_event.rb +5 -0
- data/lib/kredki/core/event/family/focus_enter_event.rb +5 -0
- data/lib/kredki/core/event/family/focus_leave_event.rb +5 -0
- data/lib/kredki/core/event/family/hide_event.rb +5 -0
- data/lib/kredki/core/event/family/joystick_event.rb +102 -0
- data/lib/kredki/core/event/family/key_event.rb +40 -0
- data/lib/kredki/core/event/family/mouse_event.rb +190 -0
- data/lib/kredki/core/event/family/pastele_event.rb +11 -0
- data/lib/kredki/core/event/family/show_event.rb +5 -0
- data/lib/kredki/core/event/family/text_event.rb +23 -0
- data/lib/kredki/core/event/family/tick_event.rb +5 -0
- data/lib/kredki/core/event/family/update_complete_event.rb +5 -0
- data/lib/kredki/core/event/family/window_event.rb +108 -0
- data/lib/kredki/core/event/job_event_reaction.rb +44 -0
- data/lib/kredki/core/event/joystick_event_manager.rb +30 -0
- data/lib/kredki/core/event/keyboard_event_manager.rb +29 -0
- data/lib/kredki/core/event/method_event_reaction.rb +46 -0
- data/lib/kredki/core/event/mouse_event_manager.rb +27 -0
- data/lib/kredki/core/font.rb +53 -0
- data/lib/kredki/core/job/after_job.rb +59 -0
- data/lib/kredki/core/job/job.rb +108 -0
- data/lib/kredki/core/job/loop_job.rb +87 -0
- data/lib/kredki/core/job/play_animation_job.rb +44 -0
- data/lib/kredki/core/job/play_job.rb +41 -0
- data/lib/kredki/core/job/play_loop_animation_job.rb +98 -0
- data/lib/kredki/core/job/play_loop_job.rb +104 -0
- data/lib/kredki/core/job/side_job.rb +62 -0
- data/lib/kredki/core/kernel-path.rb +71 -0
- data/lib/kredki/core/kredki.rb +89 -0
- data/lib/kredki/core/linear_gradient.rb +43 -0
- data/lib/kredki/core/media/clipboard.rb +35 -0
- data/lib/kredki/core/media/joystick.rb +199 -0
- data/lib/kredki/core/media/keyboard.rb +84 -0
- data/lib/kredki/core/media/keyboard_modifiers_decoder.rb +154 -0
- data/lib/kredki/core/media/mouse.rb +197 -0
- data/lib/kredki/core/paint/animation.rb +247 -0
- data/lib/kredki/core/paint/area.rb +67 -0
- data/lib/kredki/core/paint/block_shape_area.rb +102 -0
- data/lib/kredki/core/paint/ellipse.rb +22 -0
- data/lib/kredki/core/paint/paint.rb +392 -0
- data/lib/kredki/core/paint/picture.rb +126 -0
- data/lib/kredki/core/paint/rectangle.rb +202 -0
- data/lib/kredki/core/paint/scene.rb +277 -0
- data/lib/kredki/core/paint/shape.rb +394 -0
- data/lib/kredki/core/paint/shape_area.rb +57 -0
- data/lib/kredki/core/paint/text.rb +222 -0
- data/lib/kredki/core/pastele/pastele-extern.rb +139 -0
- data/lib/kredki/core/pastele/pastele.rb +205 -0
- data/lib/kredki/core/radial_gradient.rb +45 -0
- data/lib/kredki/core/setup.rb +214 -0
- data/lib/kredki/core/window/pane.rb +178 -0
- data/lib/kredki/core/window/pane_event_manager.rb +44 -0
- data/lib/kredki/core/window/pane_events.rb +366 -0
- data/lib/kredki/core/window/window.rb +584 -0
- data/lib/kredki/core.rb +2 -0
- data/lib/kredki/hide.rb +9 -0
- data/lib/kredki/irb.rb +90 -0
- data/lib/kredki/module.rb +3 -0
- data/lib/kredki/pads/application.rb +13 -0
- data/lib/kredki/pads/button.rb +151 -0
- data/lib/kredki/pads/checkbox/checkbox.rb +68 -0
- data/lib/kredki/pads/checkbox/checkbox_button.rb +65 -0
- data/lib/kredki/pads/context/item.rb +65 -0
- data/lib/kredki/pads/context/item_group.rb +10 -0
- data/lib/kredki/pads/context/layer.rb +59 -0
- data/lib/kredki/pads/context/menu.rb +77 -0
- data/lib/kredki/pads/context/pad.rb +26 -0
- data/lib/kredki/pads/context/primary_layer.rb +51 -0
- data/lib/kredki/pads/context/secondary_layer.rb +60 -0
- data/lib/kredki/pads/item/item.rb +140 -0
- data/lib/kredki/pads/item/item_group.rb +44 -0
- data/lib/kredki/pads/item/item_x.rb +22 -0
- data/lib/kredki/pads/item/item_y.rb +31 -0
- data/lib/kredki/pads/label.rb +71 -0
- data/lib/kredki/pads/layer.rb +326 -0
- data/lib/kredki/pads/layout/align.rb +10 -0
- data/lib/kredki/pads/layout/layout.rb +88 -0
- data/lib/kredki/pads/layout/way.rb +99 -0
- data/lib/kredki/pads/layout/x_way.rb +119 -0
- data/lib/kredki/pads/layout/y_way.rb +120 -0
- data/lib/kredki/pads/list/item.rb +117 -0
- data/lib/kredki/pads/list/item_group.rb +36 -0
- data/lib/kredki/pads/list/pad.rb +74 -0
- data/lib/kredki/pads/list/tree/item.rb +138 -0
- data/lib/kredki/pads/list/tree/item_group.rb +86 -0
- data/lib/kredki/pads/list/tree/pad.rb +94 -0
- data/lib/kredki/pads/module.rb +11 -0
- data/lib/kredki/pads/note.rb +212 -0
- data/lib/kredki/pads/notes.rb +32 -0
- data/lib/kredki/pads/option/option.rb +121 -0
- data/lib/kredki/pads/option/option_item.rb +15 -0
- data/lib/kredki/pads/option/option_item_group.rb +16 -0
- data/lib/kredki/pads/option/option_layer.rb +81 -0
- data/lib/kredki/pads/pad/animation_pad.rb +106 -0
- data/lib/kredki/pads/pad/glyph_pad.rb +71 -0
- data/lib/kredki/pads/pad/pad.rb +1290 -0
- data/lib/kredki/pads/pad/pad_events.rb +358 -0
- data/lib/kredki/pads/pad/picture_pad.rb +89 -0
- data/lib/kredki/pads/pad/rectangle_pad.rb +181 -0
- data/lib/kredki/pads/pad/scroll_pad.rb +176 -0
- data/lib/kredki/pads/pad/shape_pad.rb +148 -0
- data/lib/kredki/pads/pad/space_pad.rb +33 -0
- data/lib/kredki/pads/pad/text_pad.rb +310 -0
- data/lib/kredki/pads/pane.rb +267 -0
- data/lib/kredki/pads/portal_layer.rb +94 -0
- data/lib/kredki/pads/radio/group.rb +45 -0
- data/lib/kredki/pads/radio/item.rb +69 -0
- data/lib/kredki/pads/radio/item_button.rb +143 -0
- data/lib/kredki/pads/service/event_queue.rb +79 -0
- data/lib/kredki/pads/service/service.rb +248 -0
- data/lib/kredki/pads/service/service_event_manager.rb +43 -0
- data/lib/kredki/pads/service/service_filter.rb +98 -0
- data/lib/kredki/pads/service/service_inherited.rb +48 -0
- data/lib/kredki/pads/setup.rb +36 -0
- data/lib/kredki/pads/slider/slider.rb +145 -0
- data/lib/kredki/pads/slider/slider_x.rb +41 -0
- data/lib/kredki/pads/slider/slider_y.rb +41 -0
- data/lib/kredki/pads/table/cell.rb +22 -0
- data/lib/kredki/pads/table/column.rb +63 -0
- data/lib/kredki/pads/table/column_layout.rb +88 -0
- data/lib/kredki/pads/table/pad.rb +116 -0
- data/lib/kredki/pads/table/row.rb +24 -0
- data/lib/kredki/pads/table/scroll_rows.rb +50 -0
- data/lib/kredki/pads/text/editable_text_verse.rb +77 -0
- data/lib/kredki/pads/text/editable_text_verses.rb +59 -0
- data/lib/kredki/pads/text/navigable_text_pad.rb +413 -0
- data/lib/kredki/pads/text/text_edition.rb +97 -0
- data/lib/kredki/pads/text/text_navigation.rb +109 -0
- data/lib/kredki/pads/toolbar/item.rb +62 -0
- data/lib/kredki/pads/toolbar/item_group.rb +22 -0
- data/lib/kredki/pads/toolbar/layer.rb +41 -0
- data/lib/kredki/pads/toolbar/pad.rb +51 -0
- data/lib/kredki/pads/toolbar/primary_layer.rb +64 -0
- data/lib/kredki/pads/window.rb +11 -0
- data/lib/kredki/script.rb +29 -0
- data/lib/kredki/setup.rb +2 -0
- data/lib/kredki/test.rb +35 -0
- data/lib/kredki.rb +10 -0
- data/lib/readme.md +31 -0
- data/stuff/config/config.rb +431 -0
- data/stuff/config/pads_config.rb +111 -0
- data/stuff/dll/SDL3.dll +0 -0
- data/stuff/dll/pastele.dll +0 -0
- data/stuff/dll/thorvg-1.dll +0 -0
- data/stuff/font/MartianMono-StdRg.ttf +0 -0
- data/stuff/font/MavenPro-Medium.ttf +0 -0
- data/stuff/font/MavenPro-Regular.ttf +0 -0
- data/stuff/glyph/alert-circle-svgrepo-com.svg +4 -0
- data/stuff/glyph/alert-triangle-svgrepo-com.svg +12 -0
- data/stuff/glyph/archivebox-svgrepo-com.svg +5 -0
- data/stuff/glyph/arrow-2-ccw-svgrepo-com.svg +5 -0
- data/stuff/glyph/arrow-2-cw-svgrepo-com.svg +5 -0
- data/stuff/glyph/arrow-2-rectangle-path-svgrepo-com.svg +5 -0
- data/stuff/glyph/arrow-4-way-svgrepo-com.svg +4 -0
- data/stuff/glyph/arrow-ccw-svgrepo-com.svg +4 -0
- data/stuff/glyph/arrow-circle-down-svgrepo-com.svg +4 -0
- data/stuff/glyph/arrow-circle-left-svgrepo-com.svg +4 -0
- data/stuff/glyph/arrow-circle-right-svgrepo-com.svg +4 -0
- data/stuff/glyph/arrow-circle-up-svgrepo-com.svg +4 -0
- data/stuff/glyph/arrow-cw-svgrepo-com.svg +4 -0
- data/stuff/glyph/arrow-down-svgrepo-com.svg +4 -0
- data/stuff/glyph/arrow-from-line-down-svgrepo-com.svg +5 -0
- data/stuff/glyph/arrow-from-line-left-svgrepo-com.svg +5 -0
- data/stuff/glyph/arrow-from-line-right-svgrepo-com.svg +5 -0
- data/stuff/glyph/arrow-from-line-up-svgrepo-com.svg +5 -0
- data/stuff/glyph/arrow-from-shape-right-svgrepo-com.svg +5 -0
- data/stuff/glyph/arrow-from-shape-up-svgrepo-com.svg +5 -0
- data/stuff/glyph/arrow-left-svgrepo-com.svg +4 -0
- data/stuff/glyph/arrow-right-arrow-left-svgrepo-com.svg +5 -0
- data/stuff/glyph/arrow-right-svgrepo-com.svg +4 -0
- data/stuff/glyph/arrow-shape-turn-left-svgrepo-com.svg +4 -0
- data/stuff/glyph/arrow-shape-turn-right-svgrepo-com.svg +4 -0
- data/stuff/glyph/arrow-small-down-svgrepo-com.svg +4 -0
- data/stuff/glyph/arrow-small-left-svgrepo-com.svg +4 -0
- data/stuff/glyph/arrow-small-right-svgrepo-com.svg +4 -0
- data/stuff/glyph/arrow-small-up-svgrepo-com.svg +4 -0
- data/stuff/glyph/arrow-thin-down-svgrepo-com.svg +4 -0
- data/stuff/glyph/arrow-thin-left-svgrepo-com.svg +4 -0
- data/stuff/glyph/arrow-thin-right-svgrepo-com.svg +4 -0
- data/stuff/glyph/arrow-thin-up-svgrepo-com.svg +4 -0
- data/stuff/glyph/arrow-to-line-down-svgrepo-com.svg +5 -0
- data/stuff/glyph/arrow-to-line-left-svgrepo-com.svg +5 -0
- data/stuff/glyph/arrow-to-line-right-svgrepo-com.svg +5 -0
- data/stuff/glyph/arrow-to-line-up-svgrepo-com.svg +5 -0
- data/stuff/glyph/arrow-to-shape-down-svgrepo-com.svg +5 -0
- data/stuff/glyph/arrow-to-shape-right-svgrepo-com.svg +5 -0
- data/stuff/glyph/arrow-trend-down-svgrepo-com.svg +12 -0
- data/stuff/glyph/arrow-trend-up-svgrepo-com.svg +12 -0
- data/stuff/glyph/arrow-turn-down-left-svgrepo-com.svg +4 -0
- data/stuff/glyph/arrow-turn-down-right-svgrepo-com.svg +4 -0
- data/stuff/glyph/arrow-turn-left-down-svgrepo-com.svg +4 -0
- data/stuff/glyph/arrow-turn-left-up-svgrepo-com.svg +4 -0
- data/stuff/glyph/arrow-turn-right-down-svgrepo-com.svg +4 -0
- data/stuff/glyph/arrow-turn-right-up-svgrepo-com.svg +4 -0
- data/stuff/glyph/arrow-turn-up-left-svgrepo-com.svg +4 -0
- data/stuff/glyph/arrow-turn-up-right-svgrepo-com.svg +4 -0
- data/stuff/glyph/arrow-up-arrow-down-svgrepo-com.svg +5 -0
- data/stuff/glyph/arrow-up-svgrepo-com.svg +4 -0
- data/stuff/glyph/at-sign-svgrepo-com.svg +4 -0
- data/stuff/glyph/bag-svgrepo-com.svg +4 -0
- data/stuff/glyph/bell-slash-svgrepo-com.svg +6 -0
- data/stuff/glyph/bell-svgrepo-com.svg +5 -0
- data/stuff/glyph/book-open-svgrepo-com.svg +5 -0
- data/stuff/glyph/bookmark-svgrepo-com.svg +4 -0
- data/stuff/glyph/box-svgrepo-com.svg +6 -0
- data/stuff/glyph/calendar-svgrepo-com.svg +5 -0
- data/stuff/glyph/camera-svgrepo-com.svg +4 -0
- data/stuff/glyph/caret-down-svgrepo-com.svg +4 -0
- data/stuff/glyph/caret-left-svgrepo-com.svg +4 -0
- data/stuff/glyph/caret-right-svgrepo-com.svg +4 -0
- data/stuff/glyph/caret-up-svgrepo-com.svg +4 -0
- data/stuff/glyph/cart-svgrepo-com.svg +6 -0
- data/stuff/glyph/chart-pie-svgrepo-com.svg +5 -0
- data/stuff/glyph/chartbar-2-svgrepo-com.svg +7 -0
- data/stuff/glyph/chartbar-svgrepo-com.svg +7 -0
- data/stuff/glyph/checkmark-circle-svgrepo-com.svg +4 -0
- data/stuff/glyph/checkmark-double-svgrepo-com.svg +5 -0
- data/stuff/glyph/checkmark-square-svgrepo-com.svg +4 -0
- data/stuff/glyph/checkmark-svgrepo-com.svg +4 -0
- data/stuff/glyph/chevron-down-svgrepo-com.svg +4 -0
- data/stuff/glyph/chevron-left-chevron-right-svgrepo-com.svg +5 -0
- data/stuff/glyph/chevron-left-svgrepo-com.svg +4 -0
- data/stuff/glyph/chevron-right-svgrepo-com.svg +4 -0
- data/stuff/glyph/chevron-small-down-svgrepo-com.svg +4 -0
- data/stuff/glyph/chevron-small-left-svgrepo-com.svg +4 -0
- data/stuff/glyph/chevron-small-right-svgrepo-com.svg +4 -0
- data/stuff/glyph/chevron-small-up-svgrepo-com.svg +4 -0
- data/stuff/glyph/chevron-up-chevron-down-svgrepo-com.svg +5 -0
- data/stuff/glyph/chevron-up-svgrepo-com.svg +4 -0
- data/stuff/glyph/clock-svgrepo-com.svg +4 -0
- data/stuff/glyph/cloud-arrow-up-svgrepo-com.svg +4 -0
- data/stuff/glyph/cloud-download-svgrepo-com.svg +4 -0
- data/stuff/glyph/cloud-slash-svgrepo-com.svg +5 -0
- data/stuff/glyph/cloud-svgrepo-com.svg +4 -0
- data/stuff/glyph/columns-svgrepo-com.svg +5 -0
- data/stuff/glyph/command-svgrepo-com.svg +4 -0
- data/stuff/glyph/compass-svgrepo-com.svg +5 -0
- data/stuff/glyph/credit-card-svgrepo-com.svg +5 -0
- data/stuff/glyph/crop-svgrepo-com.svg +5 -0
- data/stuff/glyph/crown-svgrepo-com.svg +4 -0
- data/stuff/glyph/delete-left-svgrepo-com.svg +4 -0
- data/stuff/glyph/device-desktop-svgrepo-com.svg +4 -0
- data/stuff/glyph/device-mobile-svgrepo-com.svg +4 -0
- data/stuff/glyph/device-tablet-svgrepo-com.svg +4 -0
- data/stuff/glyph/doc-svgrepo-com.svg +5 -0
- data/stuff/glyph/dot-small-svgrepo-com.svg +4 -0
- data/stuff/glyph/dots-3-horizontal-svgrepo-com.svg +6 -0
- data/stuff/glyph/dots-3-vertical-svgrepo-com.svg +6 -0
- data/stuff/glyph/dots-6-horizontal-svgrepo-com.svg +9 -0
- data/stuff/glyph/dots-6-vertical-svgrepo-com.svg +9 -0
- data/stuff/glyph/dots-9-svgrepo-com.svg +12 -0
- data/stuff/glyph/emoji-frown-svgrepo-com.svg +4 -0
- data/stuff/glyph/emoji-meh-svgrepo-com.svg +4 -0
- data/stuff/glyph/emoji-smile-svgrepo-com.svg +4 -0
- data/stuff/glyph/envelope-svgrepo-com.svg +5 -0
- data/stuff/glyph/external-link-svgrepo-com.svg +5 -0
- data/stuff/glyph/eye-slash-svgrepo-com.svg +15 -0
- data/stuff/glyph/eye-svgrepo-com.svg +4 -0
- data/stuff/glyph/filter-svgrepo-com.svg +4 -0
- data/stuff/glyph/flame-svgrepo-com.svg +4 -0
- data/stuff/glyph/floppy-disk-svgrepo-com.svg +4 -0
- data/stuff/glyph/folder-svgrepo-com.svg +4 -0
- data/stuff/glyph/fullscreen-alt-svgrepo-com.svg +7 -0
- data/stuff/glyph/fullscreen-exit-alt-svgrepo-com.svg +7 -0
- data/stuff/glyph/fullscreen-exit-svgrepo-com.svg +5 -0
- data/stuff/glyph/fullscreen-svgrepo-com.svg +5 -0
- data/stuff/glyph/gear-svgrepo-com.svg +4 -0
- data/stuff/glyph/giftbox-svgrepo-com.svg +6 -0
- data/stuff/glyph/half-star-svgrepo-com.svg +4 -0
- data/stuff/glyph/hashtag-svgrepo-com.svg +4 -0
- data/stuff/glyph/headphones-svgrepo-com.svg +4 -0
- data/stuff/glyph/heart-half-svgrepo-com.svg +4 -0
- data/stuff/glyph/heart-svgrepo-com.svg +4 -0
- data/stuff/glyph/house-svgrepo-com.svg +4 -0
- data/stuff/glyph/image-svgrepo-com.svg +4 -0
- data/stuff/glyph/info-circle-svgrepo-com.svg +4 -0
- data/stuff/glyph/key-svgrepo-com.svg +4 -0
- data/stuff/glyph/layers-3-svgrepo-com.svg +6 -0
- data/stuff/glyph/layout-svgrepo-com.svg +6 -0
- data/stuff/glyph/line-3-svgrepo-com.svg +6 -0
- data/stuff/glyph/link-alt-svgrepo-com.svg +5 -0
- data/stuff/glyph/link-svgrepo-com.svg +6 -0
- data/stuff/glyph/list-bullet-svgrepo-com.svg +9 -0
- data/stuff/glyph/location-svgrepo-com.svg +4 -0
- data/stuff/glyph/lock-open-svgrepo-com.svg +4 -0
- data/stuff/glyph/lock-svgrepo-com.svg +4 -0
- data/stuff/glyph/map-pin-svgrepo-com.svg +4 -0
- data/stuff/glyph/medal-svgrepo-com.svg +13 -0
- data/stuff/glyph/media-backward-end-svgrepo-com.svg +5 -0
- data/stuff/glyph/media-backward-svgrepo-com.svg +5 -0
- data/stuff/glyph/media-forward-end-svgrepo-com.svg +5 -0
- data/stuff/glyph/media-forward-svgrepo-com.svg +4 -0
- data/stuff/glyph/media-pause-circle-svgrepo-com.svg +4 -0
- data/stuff/glyph/media-pause-svgrepo-com.svg +5 -0
- data/stuff/glyph/media-play-circle-svgrepo-com.svg +4 -0
- data/stuff/glyph/media-play-svgrepo-com.svg +4 -0
- data/stuff/glyph/media-stop-circle-svgrepo-com.svg +4 -0
- data/stuff/glyph/media-stop-svgrepo-com.svg +4 -0
- data/stuff/glyph/message-bubble-2-svgrepo-com.svg +4 -0
- data/stuff/glyph/message-bubble-svgrepo-com.svg +4 -0
- data/stuff/glyph/mic-slash-svgrepo-com.svg +6 -0
- data/stuff/glyph/mic-svgrepo-com.svg +5 -0
- data/stuff/glyph/minus-circle-svgrepo-com.svg +4 -0
- data/stuff/glyph/minus-square-svgrepo-com.svg +4 -0
- data/stuff/glyph/minus-svgrepo-com.svg +4 -0
- data/stuff/glyph/moon-svgrepo-com.svg +4 -0
- data/stuff/glyph/music-note-svgrepo-com.svg +4 -0
- data/stuff/glyph/nosign-svgrepo-com.svg +4 -0
- data/stuff/glyph/paper-clip-svgrepo-com.svg +4 -0
- data/stuff/glyph/paper-plane-svgrepo-com.svg +4 -0
- data/stuff/glyph/pen-tool-svgrepo-com.svg +4 -0
- data/stuff/glyph/pencil-svgrepo-com.svg +5 -0
- data/stuff/glyph/percent-svgrepo-com.svg +6 -0
- data/stuff/glyph/phone-incoming-svgrepo-com.svg +5 -0
- data/stuff/glyph/phone-missed-svgrepo-com.svg +4 -0
- data/stuff/glyph/phone-outgoing-svgrepo-com.svg +5 -0
- data/stuff/glyph/phone-slash-svgrepo-com.svg +4 -0
- data/stuff/glyph/phone-svgrepo-com.svg +4 -0
- data/stuff/glyph/plus-circle-svgrepo-com.svg +4 -0
- data/stuff/glyph/plus-square-svgrepo-com.svg +4 -0
- data/stuff/glyph/plus-svgrepo-com.svg +4 -0
- data/stuff/glyph/power-svgrepo-com.svg +5 -0
- data/stuff/glyph/printer-svgrepo-com.svg +5 -0
- data/stuff/glyph/question-circle-svgrepo-com.svg +4 -0
- data/stuff/glyph/scissors-svgrepo-com.svg +5 -0
- data/stuff/glyph/search-svgrepo-com.svg +4 -0
- data/stuff/glyph/server-svgrepo-com.svg +5 -0
- data/stuff/glyph/shape-circle-svgrepo-com.svg +4 -0
- data/stuff/glyph/shape-rhombus-svgrepo-com.svg +4 -0
- data/stuff/glyph/shape-square-svgrepo-com.svg +4 -0
- data/stuff/glyph/shape-triangle-svgrepo-com.svg +12 -0
- data/stuff/glyph/share-svgrepo-com.svg +4 -0
- data/stuff/glyph/shield-slash-svgrepo-com.svg +13 -0
- data/stuff/glyph/shield-svgrepo-com.svg +4 -0
- data/stuff/glyph/shippingbox-svgrepo-com.svg +7 -0
- data/stuff/glyph/slider-3-horizontal-svgrepo-com.svg +9 -0
- data/stuff/glyph/slider-3-vertical-svgrepo-com.svg +9 -0
- data/stuff/glyph/speaker-svgrepo-com.svg +4 -0
- data/stuff/glyph/speaker-wave-1-svgrepo-com.svg +5 -0
- data/stuff/glyph/speaker-wave-2-svgrepo-com.svg +6 -0
- data/stuff/glyph/speaker-xmark-svgrepo-com.svg +5 -0
- data/stuff/glyph/square-4-grid-svgrepo-com.svg +7 -0
- data/stuff/glyph/square-on-square-svgrepo-com.svg +5 -0
- data/stuff/glyph/star-svgrepo-com.svg +4 -0
- data/stuff/glyph/sun-svgrepo-com.svg +12 -0
- data/stuff/glyph/tag-svgrepo-com.svg +4 -0
- data/stuff/glyph/text-align-center-svgrepo-com.svg +7 -0
- data/stuff/glyph/text-align-justify-svgrepo-com.svg +7 -0
- data/stuff/glyph/text-align-left-svgrepo-com.svg +7 -0
- data/stuff/glyph/text-align-right-svgrepo-com.svg +7 -0
- data/stuff/glyph/text-bold-svgrepo-com.svg +4 -0
- data/stuff/glyph/text-heading-svgrepo-com.svg +4 -0
- data/stuff/glyph/text-italic-svgrepo-com.svg +4 -0
- data/stuff/glyph/text-svgrepo-com.svg +4 -0
- data/stuff/glyph/text-underline-svgrepo-com.svg +5 -0
- data/stuff/glyph/thumbs-down-svgrepo-com.svg +5 -0
- data/stuff/glyph/thumbs-up-svgrepo-com.svg +5 -0
- data/stuff/glyph/trash-svgrepo-com.svg +5 -0
- data/stuff/glyph/tray-svgrepo-com.svg +4 -0
- data/stuff/glyph/umbrela-svgrepo-com.svg +4 -0
- data/stuff/glyph/user-svgrepo-com.svg +5 -0
- data/stuff/glyph/users-svgrepo-com.svg +7 -0
- data/stuff/glyph/video-svgrepo-com.svg +12 -0
- data/stuff/glyph/waveform-ecg-svgrepo-com.svg +4 -0
- data/stuff/glyph/wi-fi-svgrepo-com.svg +7 -0
- data/stuff/glyph/xmark-circle-svgrepo-com.svg +4 -0
- data/stuff/glyph/xmark-small-svgrepo-com.svg +4 -0
- data/stuff/glyph/xmark-svgrepo-com.svg +4 -0
- data/stuff/glyph/zap-svgrepo-com.svg +4 -0
- data/stuff/glyph/zoom-in-svgrepo-com.svg +5 -0
- data/stuff/glyph/zoom-out-svgrepo-com.svg +5 -0
- data/stuff/readme.md +266 -0
- data/stuff/so/libSDL3.so +0 -0
- data/stuff/so/libpastele.so +0 -0
- data/stuff/so/libthorvg-1.so +0 -0
- metadata +427 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
module Kredki
|
|
2
|
+
# Common class for event reactions.
|
|
3
|
+
class EventReaction
|
|
4
|
+
|
|
5
|
+
# Cancel reaction.
|
|
6
|
+
def cancel
|
|
7
|
+
@manager&.detach self
|
|
8
|
+
@manager = nil
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Create and attach Kredki::AfterJob to manager.
|
|
12
|
+
def after ...
|
|
13
|
+
@manager&.after(...)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# Create and attach Kredki::LoopJob to manager.
|
|
17
|
+
def loop ...
|
|
18
|
+
@manager&.loop(...)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# Create and attach Kredki::SideJob to manager.
|
|
22
|
+
def side ...
|
|
23
|
+
@manager&.side(...)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# :section: LEVEL 2
|
|
27
|
+
|
|
28
|
+
def initialize manager, always
|
|
29
|
+
@manager = manager
|
|
30
|
+
@always = always
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
attr_accessor :always
|
|
34
|
+
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
module Kredki
|
|
2
|
+
# Event reported on drop.
|
|
3
|
+
class DropEvent < PasteleEvent
|
|
4
|
+
|
|
5
|
+
# Get data.
|
|
6
|
+
def data
|
|
7
|
+
@data
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
# Get whether it is multi drop event.
|
|
11
|
+
def multi?
|
|
12
|
+
@data.size > 1
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Get first dropped object text.
|
|
16
|
+
def text
|
|
17
|
+
@data.first.text
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# Get main parameter
|
|
21
|
+
def param
|
|
22
|
+
text
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# :section: LEVEL 2
|
|
26
|
+
|
|
27
|
+
def initialize data, ...
|
|
28
|
+
super(...)
|
|
29
|
+
@data = data
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# Event reported on drop action begin.
|
|
34
|
+
class DropBeginEvent < PasteleEvent
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# Event reported on drop action cancel.
|
|
38
|
+
class DropCancelEvent < DropEvent
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
module Kredki
|
|
2
|
+
# Base class for joystick related events.
|
|
3
|
+
class JoystickEvent < PasteleEvent
|
|
4
|
+
|
|
5
|
+
# :section: LEVEL 2
|
|
6
|
+
|
|
7
|
+
def initialize joystick, ...
|
|
8
|
+
super(...)
|
|
9
|
+
@joystick = joystick
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
attr :joystick
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Event reported on joystick connect.
|
|
16
|
+
class JoystickConnectEvent < JoystickEvent
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# Event reported on joystick disconnect.
|
|
20
|
+
class JoystickDisconnectEvent < JoystickEvent
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# Base class for joystick button related events.
|
|
24
|
+
class JoystickButtonEvent < JoystickEvent
|
|
25
|
+
|
|
26
|
+
# Get event button.
|
|
27
|
+
def button
|
|
28
|
+
@joystick.button @source.button
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# Get main parameter.
|
|
32
|
+
def param
|
|
33
|
+
button&.id
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# Get binding code.
|
|
37
|
+
def code
|
|
38
|
+
@source.button
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# Event reported on joystick button press.
|
|
43
|
+
class JoystickButtonPressEvent < JoystickButtonEvent
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# Event reported on joystick button release.
|
|
47
|
+
class JoystickButtonReleaseEvent < JoystickButtonEvent
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# Event reported on joystick axis move.
|
|
51
|
+
class JoystickAxisMoveEvent < JoystickEvent
|
|
52
|
+
|
|
53
|
+
# Get event axis.
|
|
54
|
+
def axis
|
|
55
|
+
@joystick.axis @source.axis
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# Get main parameter.
|
|
59
|
+
def param
|
|
60
|
+
value
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# Get binding input id.
|
|
64
|
+
def code
|
|
65
|
+
@source.axis
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
# Get axis value.
|
|
69
|
+
def value
|
|
70
|
+
@source.value
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# Event reported on joystick hat switch.
|
|
75
|
+
class JoystickHatSwitchEvent < JoystickEvent
|
|
76
|
+
|
|
77
|
+
# Get event hat.
|
|
78
|
+
def hat
|
|
79
|
+
@joystick.hat @source.hat
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
# Get main parameter.
|
|
83
|
+
def param
|
|
84
|
+
value
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
# Get binding code.
|
|
88
|
+
def code
|
|
89
|
+
@source.hat
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
# Get binding hat value.
|
|
93
|
+
def input_value
|
|
94
|
+
@source.value
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
# Get hat value.
|
|
98
|
+
def value
|
|
99
|
+
hat&.state input_value
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
module Kredki
|
|
2
|
+
# Base class for keyboard key related events.
|
|
3
|
+
class KeyEvent < PasteleEvent
|
|
4
|
+
include Keyboard::ModifiersDecoder
|
|
5
|
+
|
|
6
|
+
# Get event key.
|
|
7
|
+
def key
|
|
8
|
+
@keyboard.key(@source.sym)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Get main parameter.
|
|
12
|
+
def param
|
|
13
|
+
key&.id
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# Get binding code.
|
|
17
|
+
def code
|
|
18
|
+
@source.sym
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# :section: LEVEL 2
|
|
22
|
+
|
|
23
|
+
def initialize keyboard, ...
|
|
24
|
+
super(...)
|
|
25
|
+
@keyboard = keyboard
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def modifiers
|
|
29
|
+
@source.mod
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# Event reported on key press.
|
|
34
|
+
class KeyboardKeyPressEvent < KeyEvent
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# Event reported on key release.
|
|
38
|
+
class KeyboardKeyReleaseEvent < KeyEvent
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
module Kredki
|
|
2
|
+
# Base class for mouse related events.
|
|
3
|
+
class MouseEvent < PasteleEvent
|
|
4
|
+
|
|
5
|
+
# :section: LEVEL 2
|
|
6
|
+
|
|
7
|
+
def initialize device, ...
|
|
8
|
+
super(...)
|
|
9
|
+
|
|
10
|
+
@device = device
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# Base class for mouse button related events.
|
|
15
|
+
class MouseButtonEvent < MouseEvent
|
|
16
|
+
|
|
17
|
+
# Get event button.
|
|
18
|
+
def button
|
|
19
|
+
@device.button @source.button
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# Get binding code.
|
|
23
|
+
def code
|
|
24
|
+
@source.button
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Get main parameter.
|
|
28
|
+
def param
|
|
29
|
+
button&.id
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# Get pointer position along X axis.
|
|
33
|
+
def x
|
|
34
|
+
@source.x
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# Get pointer position along Y axis.
|
|
38
|
+
def y
|
|
39
|
+
@source.y
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# Get pointer position along X and Y axes.
|
|
43
|
+
def xy
|
|
44
|
+
[@source.x, @source.y]
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# Event reported on mouse button press.
|
|
49
|
+
class MouseButtonPressEvent < MouseButtonEvent
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# Event reported on mouse button release.
|
|
53
|
+
class MouseButtonReleaseEvent < MouseButtonEvent
|
|
54
|
+
# Get whether it is release after drag move.
|
|
55
|
+
def drag
|
|
56
|
+
@drag
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# :section: LEVEL 2
|
|
60
|
+
|
|
61
|
+
def initialize ...
|
|
62
|
+
super
|
|
63
|
+
@drag = false
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def drag= drag
|
|
67
|
+
@drag = drag
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
# Event reported on mouse pointer move.
|
|
72
|
+
class MousePointerMoveEvent < MouseEvent
|
|
73
|
+
|
|
74
|
+
# Get pointer position along X axis.
|
|
75
|
+
def x
|
|
76
|
+
@source.x
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
# Get pointer position along Y axis.
|
|
80
|
+
def y
|
|
81
|
+
@source.y
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
# Get pointer position along X and Y axes.
|
|
85
|
+
def xy
|
|
86
|
+
[@source.x, @source.y]
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
# Get main parameter.
|
|
90
|
+
def param
|
|
91
|
+
xy
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
# Get whether it is drag move.
|
|
95
|
+
def drag?
|
|
96
|
+
false
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
# Get whether it is drop move.
|
|
100
|
+
def drop?
|
|
101
|
+
false
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
# Event reported on mouse pointer drag.
|
|
107
|
+
class MousePointerDragEvent < MousePointerMoveEvent
|
|
108
|
+
|
|
109
|
+
# Get whether it is drag move.
|
|
110
|
+
def drag?
|
|
111
|
+
true
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
# Get whether it is drag start move.
|
|
115
|
+
def start?
|
|
116
|
+
@start
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
def button
|
|
120
|
+
@button
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
# :section: LEVEL 2
|
|
124
|
+
|
|
125
|
+
def initialize ...
|
|
126
|
+
super
|
|
127
|
+
@start = false
|
|
128
|
+
@button = nil
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
def start= start
|
|
132
|
+
@start = start
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
def button= button
|
|
136
|
+
@button = button
|
|
137
|
+
end
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
# Event reported on mouse pointer drag.
|
|
141
|
+
class MousePointerDropEvent < MousePointerMoveEvent
|
|
142
|
+
|
|
143
|
+
# Get whether it is drop move.
|
|
144
|
+
def drop?
|
|
145
|
+
true
|
|
146
|
+
end
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
# Event reported on mouse pointer enter.
|
|
150
|
+
class MousePointerEnterEvent < MouseEvent
|
|
151
|
+
|
|
152
|
+
# Get whether it is move sourced event.
|
|
153
|
+
def move?
|
|
154
|
+
@source&.is_a? MousePointerMoveEvent
|
|
155
|
+
end
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
# Event reported on mouse pointer enter.
|
|
159
|
+
class MousePointerLeaveEvent < MouseEvent
|
|
160
|
+
|
|
161
|
+
# Get whether it is move sourced event.
|
|
162
|
+
def move?
|
|
163
|
+
@source&.is_a? MousePointerMoveEvent
|
|
164
|
+
end
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
# Event reported on mouse wheel scroll.
|
|
168
|
+
class MouseWheelScrollEvent < MouseEvent
|
|
169
|
+
|
|
170
|
+
# Get scroll value along X axis.
|
|
171
|
+
def x
|
|
172
|
+
@source.x
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
# Get scroll value along Y axis.
|
|
176
|
+
def y
|
|
177
|
+
@source.y
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
# Get scroll value along X and Y axes.
|
|
181
|
+
def xy
|
|
182
|
+
[@source.x, @source.y]
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
# Get main parameter
|
|
186
|
+
def param
|
|
187
|
+
xy
|
|
188
|
+
end
|
|
189
|
+
end
|
|
190
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module Kredki
|
|
2
|
+
# Event reported on text entered.
|
|
3
|
+
class TextInputEvent < PasteleEvent
|
|
4
|
+
|
|
5
|
+
# Entered content.
|
|
6
|
+
def text
|
|
7
|
+
@text
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
# Get main parameter
|
|
11
|
+
def param
|
|
12
|
+
text
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# :section: LEVEL 2
|
|
16
|
+
|
|
17
|
+
def initialize ptr, abi
|
|
18
|
+
super abi
|
|
19
|
+
|
|
20
|
+
@text = @source.text.to_s.force_encoding("utf-8")
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
module Kredki
|
|
2
|
+
# Base class for window related events.
|
|
3
|
+
class WindowEvent < PasteleEvent
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
# Event reported on window expose.
|
|
7
|
+
class WindowExposeEvent < WindowEvent
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
# Event reported on move.
|
|
11
|
+
class MoveEvent < PasteleEvent
|
|
12
|
+
|
|
13
|
+
# Get X position.
|
|
14
|
+
def x
|
|
15
|
+
@x
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# Get Y position.
|
|
19
|
+
def y
|
|
20
|
+
@y
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# Get X and Y position.
|
|
24
|
+
def xy
|
|
25
|
+
[@x, @y]
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# Get main parameter.
|
|
29
|
+
def param
|
|
30
|
+
xy
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# :section: LEVEL 2
|
|
34
|
+
|
|
35
|
+
def initialize x, y, ...
|
|
36
|
+
super(...)
|
|
37
|
+
@x = x
|
|
38
|
+
@y = y
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# Event reported on resize.
|
|
43
|
+
class ResizeEvent < PasteleEvent
|
|
44
|
+
|
|
45
|
+
# Get size in the X axis.
|
|
46
|
+
def size_x
|
|
47
|
+
@size[0]
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# Get size in the Y axis.
|
|
51
|
+
def size_y
|
|
52
|
+
@size[1]
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# Get size.
|
|
56
|
+
def size
|
|
57
|
+
@size
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# Get main parameter.
|
|
61
|
+
def param
|
|
62
|
+
size
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# :section: LEVEL 2
|
|
66
|
+
|
|
67
|
+
def initialize size_x, size_y, ...
|
|
68
|
+
super(...)
|
|
69
|
+
@size = [size_x, size_y]
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
# Event reported on window size change.
|
|
74
|
+
class WindowSizeChangeEvent < WindowEvent
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
# Event reported on window minimize.
|
|
78
|
+
class WindowMinimizeEvent < WindowEvent
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# Event reported on window maximize.
|
|
82
|
+
class WindowMaximizeEvent < WindowEvent
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
# Event reported on window restore.
|
|
86
|
+
class WindowRestoreEvent < WindowEvent
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
# Event reported on window is about to close. Window closing will continue if the event is not closed.
|
|
90
|
+
class WindowCloseEvent < WindowEvent
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
# Event reported on window take focus.
|
|
94
|
+
class WindowTakeFocusEvent < WindowEvent
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
# Event reported on window hit test.
|
|
98
|
+
class WindowHitTestEvent < WindowEvent
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
# Event reported on window icc porfile change.
|
|
102
|
+
class WindowIccprofChangeEvent < WindowEvent
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
# Event reported on window display change.
|
|
106
|
+
class WindowDisplayChangeEvent < WindowEvent
|
|
107
|
+
end
|
|
108
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
module Kredki
|
|
2
|
+
# Job based event reaction.
|
|
3
|
+
class JobEventReaction < EventReaction
|
|
4
|
+
|
|
5
|
+
# Attach copy of reaction to another manager.
|
|
6
|
+
def attach manager, always = false
|
|
7
|
+
self.class.new @job, manager, always
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
# Cancel reaction.
|
|
11
|
+
def cancel
|
|
12
|
+
super
|
|
13
|
+
@job = nil
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# :section: LEVEL 2
|
|
17
|
+
|
|
18
|
+
def initialize job, ...
|
|
19
|
+
super(...)
|
|
20
|
+
@job = job
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
attr_accessor :job
|
|
24
|
+
|
|
25
|
+
def call event = nil
|
|
26
|
+
return if !@always && event&.closed?
|
|
27
|
+
event&.reaction = self
|
|
28
|
+
begin
|
|
29
|
+
@job.call event
|
|
30
|
+
rescue => e
|
|
31
|
+
res = Kredki.app.rescue
|
|
32
|
+
if res
|
|
33
|
+
res.call e, event
|
|
34
|
+
else
|
|
35
|
+
raise inspect
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def inspect
|
|
41
|
+
"#{self.class}:#{object_id} #{@job.inspect}"
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
module Kredki
|
|
2
|
+
# Manage joystick event managers.
|
|
3
|
+
class JoystickEventManager
|
|
4
|
+
|
|
5
|
+
# :section: LEVEL 2
|
|
6
|
+
|
|
7
|
+
def initialize
|
|
8
|
+
@managers = {}
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def report event
|
|
12
|
+
@managers.dig(event.joystick, event.code)&.report event
|
|
13
|
+
@managers.dig(event.joystick, nil)&.report event
|
|
14
|
+
@managers.dig(nil, event.code)&.report event
|
|
15
|
+
@managers.dig(nil, nil)&.report event
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def [](joystick, indexes)
|
|
19
|
+
managers = @managers[joystick] ||= {}
|
|
20
|
+
case indexes.size
|
|
21
|
+
when 0
|
|
22
|
+
managers[nil] ||= EventManager.new
|
|
23
|
+
when 1
|
|
24
|
+
managers[indexes.first] ||= EventManager.new
|
|
25
|
+
else
|
|
26
|
+
CompositeEventManager.new indexes.map{ managers[_1] ||= EventManager.new }
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
require_relative 'composite_event_manager'
|
|
2
|
+
|
|
3
|
+
module Kredki
|
|
4
|
+
# Manage keyboard event managers.
|
|
5
|
+
class KeyboardEventManager
|
|
6
|
+
|
|
7
|
+
# :section: LEVEL 2
|
|
8
|
+
|
|
9
|
+
def initialize
|
|
10
|
+
@managers = {}
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def report event
|
|
14
|
+
@managers[event.code]&.report event
|
|
15
|
+
@managers[nil]&.report event
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def [](*keycodes)
|
|
19
|
+
case keycodes.size
|
|
20
|
+
when 0
|
|
21
|
+
@managers[nil] ||= EventManager.new
|
|
22
|
+
when 1
|
|
23
|
+
@managers[keycodes.first] ||= EventManager.new
|
|
24
|
+
else
|
|
25
|
+
CompositeEventManager.new keycodes.map{ @managers[_1] ||= EventManager.new }
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|