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.
Files changed (386) hide show
  1. checksums.yaml +7 -0
  2. data/lib/kredki/core/application.rb +314 -0
  3. data/lib/kredki/core/color.rb +100 -0
  4. data/lib/kredki/core/event/block_event_reaction.rb +44 -0
  5. data/lib/kredki/core/event/composite_event_manager.rb +37 -0
  6. data/lib/kredki/core/event/event.rb +91 -0
  7. data/lib/kredki/core/event/event_manager.rb +60 -0
  8. data/lib/kredki/core/event/event_manager_jobs.rb +53 -0
  9. data/lib/kredki/core/event/event_reaction.rb +36 -0
  10. data/lib/kredki/core/event/family/drop_event.rb +40 -0
  11. data/lib/kredki/core/event/family/exit_event.rb +5 -0
  12. data/lib/kredki/core/event/family/focus_enter_event.rb +5 -0
  13. data/lib/kredki/core/event/family/focus_leave_event.rb +5 -0
  14. data/lib/kredki/core/event/family/hide_event.rb +5 -0
  15. data/lib/kredki/core/event/family/joystick_event.rb +102 -0
  16. data/lib/kredki/core/event/family/key_event.rb +40 -0
  17. data/lib/kredki/core/event/family/mouse_event.rb +190 -0
  18. data/lib/kredki/core/event/family/pastele_event.rb +11 -0
  19. data/lib/kredki/core/event/family/show_event.rb +5 -0
  20. data/lib/kredki/core/event/family/text_event.rb +23 -0
  21. data/lib/kredki/core/event/family/tick_event.rb +5 -0
  22. data/lib/kredki/core/event/family/update_complete_event.rb +5 -0
  23. data/lib/kredki/core/event/family/window_event.rb +108 -0
  24. data/lib/kredki/core/event/job_event_reaction.rb +44 -0
  25. data/lib/kredki/core/event/joystick_event_manager.rb +30 -0
  26. data/lib/kredki/core/event/keyboard_event_manager.rb +29 -0
  27. data/lib/kredki/core/event/method_event_reaction.rb +46 -0
  28. data/lib/kredki/core/event/mouse_event_manager.rb +27 -0
  29. data/lib/kredki/core/font.rb +53 -0
  30. data/lib/kredki/core/job/after_job.rb +59 -0
  31. data/lib/kredki/core/job/job.rb +108 -0
  32. data/lib/kredki/core/job/loop_job.rb +87 -0
  33. data/lib/kredki/core/job/play_animation_job.rb +44 -0
  34. data/lib/kredki/core/job/play_job.rb +41 -0
  35. data/lib/kredki/core/job/play_loop_animation_job.rb +98 -0
  36. data/lib/kredki/core/job/play_loop_job.rb +104 -0
  37. data/lib/kredki/core/job/side_job.rb +62 -0
  38. data/lib/kredki/core/kernel-path.rb +71 -0
  39. data/lib/kredki/core/kredki.rb +89 -0
  40. data/lib/kredki/core/linear_gradient.rb +43 -0
  41. data/lib/kredki/core/media/clipboard.rb +35 -0
  42. data/lib/kredki/core/media/joystick.rb +199 -0
  43. data/lib/kredki/core/media/keyboard.rb +84 -0
  44. data/lib/kredki/core/media/keyboard_modifiers_decoder.rb +154 -0
  45. data/lib/kredki/core/media/mouse.rb +197 -0
  46. data/lib/kredki/core/paint/animation.rb +247 -0
  47. data/lib/kredki/core/paint/area.rb +67 -0
  48. data/lib/kredki/core/paint/block_shape_area.rb +102 -0
  49. data/lib/kredki/core/paint/ellipse.rb +22 -0
  50. data/lib/kredki/core/paint/paint.rb +392 -0
  51. data/lib/kredki/core/paint/picture.rb +126 -0
  52. data/lib/kredki/core/paint/rectangle.rb +202 -0
  53. data/lib/kredki/core/paint/scene.rb +277 -0
  54. data/lib/kredki/core/paint/shape.rb +394 -0
  55. data/lib/kredki/core/paint/shape_area.rb +57 -0
  56. data/lib/kredki/core/paint/text.rb +222 -0
  57. data/lib/kredki/core/pastele/pastele-extern.rb +139 -0
  58. data/lib/kredki/core/pastele/pastele.rb +205 -0
  59. data/lib/kredki/core/radial_gradient.rb +45 -0
  60. data/lib/kredki/core/setup.rb +214 -0
  61. data/lib/kredki/core/window/pane.rb +178 -0
  62. data/lib/kredki/core/window/pane_event_manager.rb +44 -0
  63. data/lib/kredki/core/window/pane_events.rb +366 -0
  64. data/lib/kredki/core/window/window.rb +584 -0
  65. data/lib/kredki/core.rb +2 -0
  66. data/lib/kredki/hide.rb +9 -0
  67. data/lib/kredki/irb.rb +90 -0
  68. data/lib/kredki/module.rb +3 -0
  69. data/lib/kredki/pads/application.rb +13 -0
  70. data/lib/kredki/pads/button.rb +151 -0
  71. data/lib/kredki/pads/checkbox/checkbox.rb +68 -0
  72. data/lib/kredki/pads/checkbox/checkbox_button.rb +65 -0
  73. data/lib/kredki/pads/context/item.rb +65 -0
  74. data/lib/kredki/pads/context/item_group.rb +10 -0
  75. data/lib/kredki/pads/context/layer.rb +59 -0
  76. data/lib/kredki/pads/context/menu.rb +77 -0
  77. data/lib/kredki/pads/context/pad.rb +26 -0
  78. data/lib/kredki/pads/context/primary_layer.rb +51 -0
  79. data/lib/kredki/pads/context/secondary_layer.rb +60 -0
  80. data/lib/kredki/pads/item/item.rb +140 -0
  81. data/lib/kredki/pads/item/item_group.rb +44 -0
  82. data/lib/kredki/pads/item/item_x.rb +22 -0
  83. data/lib/kredki/pads/item/item_y.rb +31 -0
  84. data/lib/kredki/pads/label.rb +71 -0
  85. data/lib/kredki/pads/layer.rb +326 -0
  86. data/lib/kredki/pads/layout/align.rb +10 -0
  87. data/lib/kredki/pads/layout/layout.rb +88 -0
  88. data/lib/kredki/pads/layout/way.rb +99 -0
  89. data/lib/kredki/pads/layout/x_way.rb +119 -0
  90. data/lib/kredki/pads/layout/y_way.rb +120 -0
  91. data/lib/kredki/pads/list/item.rb +117 -0
  92. data/lib/kredki/pads/list/item_group.rb +36 -0
  93. data/lib/kredki/pads/list/pad.rb +74 -0
  94. data/lib/kredki/pads/list/tree/item.rb +138 -0
  95. data/lib/kredki/pads/list/tree/item_group.rb +86 -0
  96. data/lib/kredki/pads/list/tree/pad.rb +94 -0
  97. data/lib/kredki/pads/module.rb +11 -0
  98. data/lib/kredki/pads/note.rb +212 -0
  99. data/lib/kredki/pads/notes.rb +32 -0
  100. data/lib/kredki/pads/option/option.rb +121 -0
  101. data/lib/kredki/pads/option/option_item.rb +15 -0
  102. data/lib/kredki/pads/option/option_item_group.rb +16 -0
  103. data/lib/kredki/pads/option/option_layer.rb +81 -0
  104. data/lib/kredki/pads/pad/animation_pad.rb +106 -0
  105. data/lib/kredki/pads/pad/glyph_pad.rb +71 -0
  106. data/lib/kredki/pads/pad/pad.rb +1290 -0
  107. data/lib/kredki/pads/pad/pad_events.rb +358 -0
  108. data/lib/kredki/pads/pad/picture_pad.rb +89 -0
  109. data/lib/kredki/pads/pad/rectangle_pad.rb +181 -0
  110. data/lib/kredki/pads/pad/scroll_pad.rb +176 -0
  111. data/lib/kredki/pads/pad/shape_pad.rb +148 -0
  112. data/lib/kredki/pads/pad/space_pad.rb +33 -0
  113. data/lib/kredki/pads/pad/text_pad.rb +310 -0
  114. data/lib/kredki/pads/pane.rb +267 -0
  115. data/lib/kredki/pads/portal_layer.rb +94 -0
  116. data/lib/kredki/pads/radio/group.rb +45 -0
  117. data/lib/kredki/pads/radio/item.rb +69 -0
  118. data/lib/kredki/pads/radio/item_button.rb +143 -0
  119. data/lib/kredki/pads/service/event_queue.rb +79 -0
  120. data/lib/kredki/pads/service/service.rb +248 -0
  121. data/lib/kredki/pads/service/service_event_manager.rb +43 -0
  122. data/lib/kredki/pads/service/service_filter.rb +98 -0
  123. data/lib/kredki/pads/service/service_inherited.rb +48 -0
  124. data/lib/kredki/pads/setup.rb +36 -0
  125. data/lib/kredki/pads/slider/slider.rb +145 -0
  126. data/lib/kredki/pads/slider/slider_x.rb +41 -0
  127. data/lib/kredki/pads/slider/slider_y.rb +41 -0
  128. data/lib/kredki/pads/table/cell.rb +22 -0
  129. data/lib/kredki/pads/table/column.rb +63 -0
  130. data/lib/kredki/pads/table/column_layout.rb +88 -0
  131. data/lib/kredki/pads/table/pad.rb +116 -0
  132. data/lib/kredki/pads/table/row.rb +24 -0
  133. data/lib/kredki/pads/table/scroll_rows.rb +50 -0
  134. data/lib/kredki/pads/text/editable_text_verse.rb +77 -0
  135. data/lib/kredki/pads/text/editable_text_verses.rb +59 -0
  136. data/lib/kredki/pads/text/navigable_text_pad.rb +413 -0
  137. data/lib/kredki/pads/text/text_edition.rb +97 -0
  138. data/lib/kredki/pads/text/text_navigation.rb +109 -0
  139. data/lib/kredki/pads/toolbar/item.rb +62 -0
  140. data/lib/kredki/pads/toolbar/item_group.rb +22 -0
  141. data/lib/kredki/pads/toolbar/layer.rb +41 -0
  142. data/lib/kredki/pads/toolbar/pad.rb +51 -0
  143. data/lib/kredki/pads/toolbar/primary_layer.rb +64 -0
  144. data/lib/kredki/pads/window.rb +11 -0
  145. data/lib/kredki/script.rb +29 -0
  146. data/lib/kredki/setup.rb +2 -0
  147. data/lib/kredki/test.rb +35 -0
  148. data/lib/kredki.rb +10 -0
  149. data/lib/readme.md +31 -0
  150. data/stuff/config/config.rb +431 -0
  151. data/stuff/config/pads_config.rb +111 -0
  152. data/stuff/dll/SDL3.dll +0 -0
  153. data/stuff/dll/pastele.dll +0 -0
  154. data/stuff/dll/thorvg-1.dll +0 -0
  155. data/stuff/font/MartianMono-StdRg.ttf +0 -0
  156. data/stuff/font/MavenPro-Medium.ttf +0 -0
  157. data/stuff/font/MavenPro-Regular.ttf +0 -0
  158. data/stuff/glyph/alert-circle-svgrepo-com.svg +4 -0
  159. data/stuff/glyph/alert-triangle-svgrepo-com.svg +12 -0
  160. data/stuff/glyph/archivebox-svgrepo-com.svg +5 -0
  161. data/stuff/glyph/arrow-2-ccw-svgrepo-com.svg +5 -0
  162. data/stuff/glyph/arrow-2-cw-svgrepo-com.svg +5 -0
  163. data/stuff/glyph/arrow-2-rectangle-path-svgrepo-com.svg +5 -0
  164. data/stuff/glyph/arrow-4-way-svgrepo-com.svg +4 -0
  165. data/stuff/glyph/arrow-ccw-svgrepo-com.svg +4 -0
  166. data/stuff/glyph/arrow-circle-down-svgrepo-com.svg +4 -0
  167. data/stuff/glyph/arrow-circle-left-svgrepo-com.svg +4 -0
  168. data/stuff/glyph/arrow-circle-right-svgrepo-com.svg +4 -0
  169. data/stuff/glyph/arrow-circle-up-svgrepo-com.svg +4 -0
  170. data/stuff/glyph/arrow-cw-svgrepo-com.svg +4 -0
  171. data/stuff/glyph/arrow-down-svgrepo-com.svg +4 -0
  172. data/stuff/glyph/arrow-from-line-down-svgrepo-com.svg +5 -0
  173. data/stuff/glyph/arrow-from-line-left-svgrepo-com.svg +5 -0
  174. data/stuff/glyph/arrow-from-line-right-svgrepo-com.svg +5 -0
  175. data/stuff/glyph/arrow-from-line-up-svgrepo-com.svg +5 -0
  176. data/stuff/glyph/arrow-from-shape-right-svgrepo-com.svg +5 -0
  177. data/stuff/glyph/arrow-from-shape-up-svgrepo-com.svg +5 -0
  178. data/stuff/glyph/arrow-left-svgrepo-com.svg +4 -0
  179. data/stuff/glyph/arrow-right-arrow-left-svgrepo-com.svg +5 -0
  180. data/stuff/glyph/arrow-right-svgrepo-com.svg +4 -0
  181. data/stuff/glyph/arrow-shape-turn-left-svgrepo-com.svg +4 -0
  182. data/stuff/glyph/arrow-shape-turn-right-svgrepo-com.svg +4 -0
  183. data/stuff/glyph/arrow-small-down-svgrepo-com.svg +4 -0
  184. data/stuff/glyph/arrow-small-left-svgrepo-com.svg +4 -0
  185. data/stuff/glyph/arrow-small-right-svgrepo-com.svg +4 -0
  186. data/stuff/glyph/arrow-small-up-svgrepo-com.svg +4 -0
  187. data/stuff/glyph/arrow-thin-down-svgrepo-com.svg +4 -0
  188. data/stuff/glyph/arrow-thin-left-svgrepo-com.svg +4 -0
  189. data/stuff/glyph/arrow-thin-right-svgrepo-com.svg +4 -0
  190. data/stuff/glyph/arrow-thin-up-svgrepo-com.svg +4 -0
  191. data/stuff/glyph/arrow-to-line-down-svgrepo-com.svg +5 -0
  192. data/stuff/glyph/arrow-to-line-left-svgrepo-com.svg +5 -0
  193. data/stuff/glyph/arrow-to-line-right-svgrepo-com.svg +5 -0
  194. data/stuff/glyph/arrow-to-line-up-svgrepo-com.svg +5 -0
  195. data/stuff/glyph/arrow-to-shape-down-svgrepo-com.svg +5 -0
  196. data/stuff/glyph/arrow-to-shape-right-svgrepo-com.svg +5 -0
  197. data/stuff/glyph/arrow-trend-down-svgrepo-com.svg +12 -0
  198. data/stuff/glyph/arrow-trend-up-svgrepo-com.svg +12 -0
  199. data/stuff/glyph/arrow-turn-down-left-svgrepo-com.svg +4 -0
  200. data/stuff/glyph/arrow-turn-down-right-svgrepo-com.svg +4 -0
  201. data/stuff/glyph/arrow-turn-left-down-svgrepo-com.svg +4 -0
  202. data/stuff/glyph/arrow-turn-left-up-svgrepo-com.svg +4 -0
  203. data/stuff/glyph/arrow-turn-right-down-svgrepo-com.svg +4 -0
  204. data/stuff/glyph/arrow-turn-right-up-svgrepo-com.svg +4 -0
  205. data/stuff/glyph/arrow-turn-up-left-svgrepo-com.svg +4 -0
  206. data/stuff/glyph/arrow-turn-up-right-svgrepo-com.svg +4 -0
  207. data/stuff/glyph/arrow-up-arrow-down-svgrepo-com.svg +5 -0
  208. data/stuff/glyph/arrow-up-svgrepo-com.svg +4 -0
  209. data/stuff/glyph/at-sign-svgrepo-com.svg +4 -0
  210. data/stuff/glyph/bag-svgrepo-com.svg +4 -0
  211. data/stuff/glyph/bell-slash-svgrepo-com.svg +6 -0
  212. data/stuff/glyph/bell-svgrepo-com.svg +5 -0
  213. data/stuff/glyph/book-open-svgrepo-com.svg +5 -0
  214. data/stuff/glyph/bookmark-svgrepo-com.svg +4 -0
  215. data/stuff/glyph/box-svgrepo-com.svg +6 -0
  216. data/stuff/glyph/calendar-svgrepo-com.svg +5 -0
  217. data/stuff/glyph/camera-svgrepo-com.svg +4 -0
  218. data/stuff/glyph/caret-down-svgrepo-com.svg +4 -0
  219. data/stuff/glyph/caret-left-svgrepo-com.svg +4 -0
  220. data/stuff/glyph/caret-right-svgrepo-com.svg +4 -0
  221. data/stuff/glyph/caret-up-svgrepo-com.svg +4 -0
  222. data/stuff/glyph/cart-svgrepo-com.svg +6 -0
  223. data/stuff/glyph/chart-pie-svgrepo-com.svg +5 -0
  224. data/stuff/glyph/chartbar-2-svgrepo-com.svg +7 -0
  225. data/stuff/glyph/chartbar-svgrepo-com.svg +7 -0
  226. data/stuff/glyph/checkmark-circle-svgrepo-com.svg +4 -0
  227. data/stuff/glyph/checkmark-double-svgrepo-com.svg +5 -0
  228. data/stuff/glyph/checkmark-square-svgrepo-com.svg +4 -0
  229. data/stuff/glyph/checkmark-svgrepo-com.svg +4 -0
  230. data/stuff/glyph/chevron-down-svgrepo-com.svg +4 -0
  231. data/stuff/glyph/chevron-left-chevron-right-svgrepo-com.svg +5 -0
  232. data/stuff/glyph/chevron-left-svgrepo-com.svg +4 -0
  233. data/stuff/glyph/chevron-right-svgrepo-com.svg +4 -0
  234. data/stuff/glyph/chevron-small-down-svgrepo-com.svg +4 -0
  235. data/stuff/glyph/chevron-small-left-svgrepo-com.svg +4 -0
  236. data/stuff/glyph/chevron-small-right-svgrepo-com.svg +4 -0
  237. data/stuff/glyph/chevron-small-up-svgrepo-com.svg +4 -0
  238. data/stuff/glyph/chevron-up-chevron-down-svgrepo-com.svg +5 -0
  239. data/stuff/glyph/chevron-up-svgrepo-com.svg +4 -0
  240. data/stuff/glyph/clock-svgrepo-com.svg +4 -0
  241. data/stuff/glyph/cloud-arrow-up-svgrepo-com.svg +4 -0
  242. data/stuff/glyph/cloud-download-svgrepo-com.svg +4 -0
  243. data/stuff/glyph/cloud-slash-svgrepo-com.svg +5 -0
  244. data/stuff/glyph/cloud-svgrepo-com.svg +4 -0
  245. data/stuff/glyph/columns-svgrepo-com.svg +5 -0
  246. data/stuff/glyph/command-svgrepo-com.svg +4 -0
  247. data/stuff/glyph/compass-svgrepo-com.svg +5 -0
  248. data/stuff/glyph/credit-card-svgrepo-com.svg +5 -0
  249. data/stuff/glyph/crop-svgrepo-com.svg +5 -0
  250. data/stuff/glyph/crown-svgrepo-com.svg +4 -0
  251. data/stuff/glyph/delete-left-svgrepo-com.svg +4 -0
  252. data/stuff/glyph/device-desktop-svgrepo-com.svg +4 -0
  253. data/stuff/glyph/device-mobile-svgrepo-com.svg +4 -0
  254. data/stuff/glyph/device-tablet-svgrepo-com.svg +4 -0
  255. data/stuff/glyph/doc-svgrepo-com.svg +5 -0
  256. data/stuff/glyph/dot-small-svgrepo-com.svg +4 -0
  257. data/stuff/glyph/dots-3-horizontal-svgrepo-com.svg +6 -0
  258. data/stuff/glyph/dots-3-vertical-svgrepo-com.svg +6 -0
  259. data/stuff/glyph/dots-6-horizontal-svgrepo-com.svg +9 -0
  260. data/stuff/glyph/dots-6-vertical-svgrepo-com.svg +9 -0
  261. data/stuff/glyph/dots-9-svgrepo-com.svg +12 -0
  262. data/stuff/glyph/emoji-frown-svgrepo-com.svg +4 -0
  263. data/stuff/glyph/emoji-meh-svgrepo-com.svg +4 -0
  264. data/stuff/glyph/emoji-smile-svgrepo-com.svg +4 -0
  265. data/stuff/glyph/envelope-svgrepo-com.svg +5 -0
  266. data/stuff/glyph/external-link-svgrepo-com.svg +5 -0
  267. data/stuff/glyph/eye-slash-svgrepo-com.svg +15 -0
  268. data/stuff/glyph/eye-svgrepo-com.svg +4 -0
  269. data/stuff/glyph/filter-svgrepo-com.svg +4 -0
  270. data/stuff/glyph/flame-svgrepo-com.svg +4 -0
  271. data/stuff/glyph/floppy-disk-svgrepo-com.svg +4 -0
  272. data/stuff/glyph/folder-svgrepo-com.svg +4 -0
  273. data/stuff/glyph/fullscreen-alt-svgrepo-com.svg +7 -0
  274. data/stuff/glyph/fullscreen-exit-alt-svgrepo-com.svg +7 -0
  275. data/stuff/glyph/fullscreen-exit-svgrepo-com.svg +5 -0
  276. data/stuff/glyph/fullscreen-svgrepo-com.svg +5 -0
  277. data/stuff/glyph/gear-svgrepo-com.svg +4 -0
  278. data/stuff/glyph/giftbox-svgrepo-com.svg +6 -0
  279. data/stuff/glyph/half-star-svgrepo-com.svg +4 -0
  280. data/stuff/glyph/hashtag-svgrepo-com.svg +4 -0
  281. data/stuff/glyph/headphones-svgrepo-com.svg +4 -0
  282. data/stuff/glyph/heart-half-svgrepo-com.svg +4 -0
  283. data/stuff/glyph/heart-svgrepo-com.svg +4 -0
  284. data/stuff/glyph/house-svgrepo-com.svg +4 -0
  285. data/stuff/glyph/image-svgrepo-com.svg +4 -0
  286. data/stuff/glyph/info-circle-svgrepo-com.svg +4 -0
  287. data/stuff/glyph/key-svgrepo-com.svg +4 -0
  288. data/stuff/glyph/layers-3-svgrepo-com.svg +6 -0
  289. data/stuff/glyph/layout-svgrepo-com.svg +6 -0
  290. data/stuff/glyph/line-3-svgrepo-com.svg +6 -0
  291. data/stuff/glyph/link-alt-svgrepo-com.svg +5 -0
  292. data/stuff/glyph/link-svgrepo-com.svg +6 -0
  293. data/stuff/glyph/list-bullet-svgrepo-com.svg +9 -0
  294. data/stuff/glyph/location-svgrepo-com.svg +4 -0
  295. data/stuff/glyph/lock-open-svgrepo-com.svg +4 -0
  296. data/stuff/glyph/lock-svgrepo-com.svg +4 -0
  297. data/stuff/glyph/map-pin-svgrepo-com.svg +4 -0
  298. data/stuff/glyph/medal-svgrepo-com.svg +13 -0
  299. data/stuff/glyph/media-backward-end-svgrepo-com.svg +5 -0
  300. data/stuff/glyph/media-backward-svgrepo-com.svg +5 -0
  301. data/stuff/glyph/media-forward-end-svgrepo-com.svg +5 -0
  302. data/stuff/glyph/media-forward-svgrepo-com.svg +4 -0
  303. data/stuff/glyph/media-pause-circle-svgrepo-com.svg +4 -0
  304. data/stuff/glyph/media-pause-svgrepo-com.svg +5 -0
  305. data/stuff/glyph/media-play-circle-svgrepo-com.svg +4 -0
  306. data/stuff/glyph/media-play-svgrepo-com.svg +4 -0
  307. data/stuff/glyph/media-stop-circle-svgrepo-com.svg +4 -0
  308. data/stuff/glyph/media-stop-svgrepo-com.svg +4 -0
  309. data/stuff/glyph/message-bubble-2-svgrepo-com.svg +4 -0
  310. data/stuff/glyph/message-bubble-svgrepo-com.svg +4 -0
  311. data/stuff/glyph/mic-slash-svgrepo-com.svg +6 -0
  312. data/stuff/glyph/mic-svgrepo-com.svg +5 -0
  313. data/stuff/glyph/minus-circle-svgrepo-com.svg +4 -0
  314. data/stuff/glyph/minus-square-svgrepo-com.svg +4 -0
  315. data/stuff/glyph/minus-svgrepo-com.svg +4 -0
  316. data/stuff/glyph/moon-svgrepo-com.svg +4 -0
  317. data/stuff/glyph/music-note-svgrepo-com.svg +4 -0
  318. data/stuff/glyph/nosign-svgrepo-com.svg +4 -0
  319. data/stuff/glyph/paper-clip-svgrepo-com.svg +4 -0
  320. data/stuff/glyph/paper-plane-svgrepo-com.svg +4 -0
  321. data/stuff/glyph/pen-tool-svgrepo-com.svg +4 -0
  322. data/stuff/glyph/pencil-svgrepo-com.svg +5 -0
  323. data/stuff/glyph/percent-svgrepo-com.svg +6 -0
  324. data/stuff/glyph/phone-incoming-svgrepo-com.svg +5 -0
  325. data/stuff/glyph/phone-missed-svgrepo-com.svg +4 -0
  326. data/stuff/glyph/phone-outgoing-svgrepo-com.svg +5 -0
  327. data/stuff/glyph/phone-slash-svgrepo-com.svg +4 -0
  328. data/stuff/glyph/phone-svgrepo-com.svg +4 -0
  329. data/stuff/glyph/plus-circle-svgrepo-com.svg +4 -0
  330. data/stuff/glyph/plus-square-svgrepo-com.svg +4 -0
  331. data/stuff/glyph/plus-svgrepo-com.svg +4 -0
  332. data/stuff/glyph/power-svgrepo-com.svg +5 -0
  333. data/stuff/glyph/printer-svgrepo-com.svg +5 -0
  334. data/stuff/glyph/question-circle-svgrepo-com.svg +4 -0
  335. data/stuff/glyph/scissors-svgrepo-com.svg +5 -0
  336. data/stuff/glyph/search-svgrepo-com.svg +4 -0
  337. data/stuff/glyph/server-svgrepo-com.svg +5 -0
  338. data/stuff/glyph/shape-circle-svgrepo-com.svg +4 -0
  339. data/stuff/glyph/shape-rhombus-svgrepo-com.svg +4 -0
  340. data/stuff/glyph/shape-square-svgrepo-com.svg +4 -0
  341. data/stuff/glyph/shape-triangle-svgrepo-com.svg +12 -0
  342. data/stuff/glyph/share-svgrepo-com.svg +4 -0
  343. data/stuff/glyph/shield-slash-svgrepo-com.svg +13 -0
  344. data/stuff/glyph/shield-svgrepo-com.svg +4 -0
  345. data/stuff/glyph/shippingbox-svgrepo-com.svg +7 -0
  346. data/stuff/glyph/slider-3-horizontal-svgrepo-com.svg +9 -0
  347. data/stuff/glyph/slider-3-vertical-svgrepo-com.svg +9 -0
  348. data/stuff/glyph/speaker-svgrepo-com.svg +4 -0
  349. data/stuff/glyph/speaker-wave-1-svgrepo-com.svg +5 -0
  350. data/stuff/glyph/speaker-wave-2-svgrepo-com.svg +6 -0
  351. data/stuff/glyph/speaker-xmark-svgrepo-com.svg +5 -0
  352. data/stuff/glyph/square-4-grid-svgrepo-com.svg +7 -0
  353. data/stuff/glyph/square-on-square-svgrepo-com.svg +5 -0
  354. data/stuff/glyph/star-svgrepo-com.svg +4 -0
  355. data/stuff/glyph/sun-svgrepo-com.svg +12 -0
  356. data/stuff/glyph/tag-svgrepo-com.svg +4 -0
  357. data/stuff/glyph/text-align-center-svgrepo-com.svg +7 -0
  358. data/stuff/glyph/text-align-justify-svgrepo-com.svg +7 -0
  359. data/stuff/glyph/text-align-left-svgrepo-com.svg +7 -0
  360. data/stuff/glyph/text-align-right-svgrepo-com.svg +7 -0
  361. data/stuff/glyph/text-bold-svgrepo-com.svg +4 -0
  362. data/stuff/glyph/text-heading-svgrepo-com.svg +4 -0
  363. data/stuff/glyph/text-italic-svgrepo-com.svg +4 -0
  364. data/stuff/glyph/text-svgrepo-com.svg +4 -0
  365. data/stuff/glyph/text-underline-svgrepo-com.svg +5 -0
  366. data/stuff/glyph/thumbs-down-svgrepo-com.svg +5 -0
  367. data/stuff/glyph/thumbs-up-svgrepo-com.svg +5 -0
  368. data/stuff/glyph/trash-svgrepo-com.svg +5 -0
  369. data/stuff/glyph/tray-svgrepo-com.svg +4 -0
  370. data/stuff/glyph/umbrela-svgrepo-com.svg +4 -0
  371. data/stuff/glyph/user-svgrepo-com.svg +5 -0
  372. data/stuff/glyph/users-svgrepo-com.svg +7 -0
  373. data/stuff/glyph/video-svgrepo-com.svg +12 -0
  374. data/stuff/glyph/waveform-ecg-svgrepo-com.svg +4 -0
  375. data/stuff/glyph/wi-fi-svgrepo-com.svg +7 -0
  376. data/stuff/glyph/xmark-circle-svgrepo-com.svg +4 -0
  377. data/stuff/glyph/xmark-small-svgrepo-com.svg +4 -0
  378. data/stuff/glyph/xmark-svgrepo-com.svg +4 -0
  379. data/stuff/glyph/zap-svgrepo-com.svg +4 -0
  380. data/stuff/glyph/zoom-in-svgrepo-com.svg +5 -0
  381. data/stuff/glyph/zoom-out-svgrepo-com.svg +5 -0
  382. data/stuff/readme.md +266 -0
  383. data/stuff/so/libSDL3.so +0 -0
  384. data/stuff/so/libpastele.so +0 -0
  385. data/stuff/so/libthorvg-1.so +0 -0
  386. metadata +427 -0
@@ -0,0 +1,358 @@
1
+ module Kredki
2
+ module Pads
3
+ # Event with position
4
+ class PositionEvent < Event
5
+
6
+ def initialize x, y, ...
7
+ super(...)
8
+ @x = x
9
+ @y = y
10
+ end
11
+
12
+ # Get X axis offset.
13
+ def x
14
+ @x
15
+ end
16
+
17
+ # Get Y axis offset.
18
+ def y
19
+ @y
20
+ end
21
+
22
+ # Get X and Y axes offset.
23
+ def xy
24
+ [@x, @y]
25
+ end
26
+
27
+ # Get main parameter.
28
+ def param
29
+ xy
30
+ end
31
+ end
32
+
33
+ class MouseButtonClickEvent < Event
34
+
35
+ # Get event button.
36
+ def button
37
+ @source.button
38
+ end
39
+
40
+ # Get main parameter.
41
+ def param
42
+ @source.param
43
+ end
44
+
45
+ # Get binding button code.
46
+ def code
47
+ @source.code
48
+ end
49
+
50
+ # Get position along X axis.
51
+ def x
52
+ @source.x
53
+ end
54
+
55
+ # Get position along Y axis.
56
+ def y
57
+ @source.y
58
+ end
59
+
60
+ # Get click combo.
61
+ def combo
62
+ @combo
63
+ end
64
+
65
+ # Get position along X and Y axes.
66
+ def xy
67
+ [x, y]
68
+ end
69
+
70
+ def timestamp
71
+ @source.timestamp
72
+ end
73
+
74
+ # :section: LEVEL 2
75
+
76
+ attr_writer :combo
77
+ end
78
+
79
+ class KeyClickEvent < Event
80
+ include Keyboard::ModifiersDecoder
81
+
82
+ # Get event key.
83
+ def key
84
+ @source&.key
85
+ end
86
+
87
+ # Get main parameter.
88
+ def param
89
+ @source&.param
90
+ end
91
+
92
+ # Get binding key code.
93
+ def code
94
+ @source&.code
95
+ end
96
+
97
+ # :section: LEVEL 2
98
+
99
+ def modifiers
100
+ @source.modifiers
101
+ end
102
+ end
103
+
104
+ class FocusOfferEvent < Event
105
+ end
106
+
107
+ class VisionOfferEvent < PositionEvent
108
+
109
+ # Get size in the X axis.
110
+ def size_x
111
+ @size_x
112
+ end
113
+
114
+ # Get size in the Y axis.
115
+ def size_y
116
+ @size_y
117
+ end
118
+
119
+ # Get size.
120
+ def size
121
+ [@size_x, @size_y]
122
+ end
123
+
124
+ # :section: LEVEL 2
125
+
126
+ def initialize size_x, size_y, ...
127
+ super(...)
128
+ @size_x = size_x
129
+ @size_y = size_y
130
+ end
131
+
132
+ end
133
+
134
+ module PadEvents
135
+
136
+ def on event_type, early: false, always: false, do: nil, &block
137
+ @event_manager.manager event_type, block || binding.local_variable_get(:do), early, always
138
+ end
139
+
140
+ # Create and attach key pressed event reaction.
141
+ def on_key_press *filtered_keys, early: false, always: false, do: nil, &block
142
+ keycodes = Kredki.keyboard.keycodes filtered_keys
143
+ @event_manager.keyboard_manager KeyboardKeyPressEvent, keycodes, block || binding.local_variable_get(:do), early, always
144
+ end
145
+
146
+ # See #on_key_press.
147
+ def on_key_press= param
148
+ on_key_press do: param
149
+ end
150
+
151
+ # Create and attach key up event reaction.
152
+ def on_key_release *filtered_keys, early: false, always: false, do: nil, &block
153
+ keycodes = Kredki.keyboard.keycodes filtered_keys
154
+ @event_manager.keyboard_manager KeyboardKeyReleaseEvent, keycodes, block || binding.local_variable_get(:do), early, always
155
+ end
156
+
157
+ # See #on_key_release.
158
+ def on_key_release= param
159
+ on_key_release do: param
160
+ end
161
+
162
+ # Create and attach key event reaction.
163
+ def on_key *filtered_keys, early: false, always: false, do: nil, &block
164
+ keycodes = Kredki.keyboard.keycodes filtered_keys
165
+ @event_manager.keyboard_manager KeyClickEvent, keycodes, block || binding.local_variable_get(:do), early, always
166
+ end
167
+
168
+ # See #on_key.
169
+ def on_key= param
170
+ on_key do: param
171
+ end
172
+
173
+ def on_text_input ...
174
+ on(TextInputEvent, ...)
175
+ end
176
+
177
+ # See #on_text_input.
178
+ def on_text_input= param
179
+ on_text_input do: param
180
+ end
181
+
182
+ # Create and attach mouse pressed event reaction.
183
+ def on_mouse_press *filtered_buttons, early: false, always: false, do: nil, &block
184
+ indexes = Kredki.mouse.indexes filtered_buttons
185
+ @event_manager.mouse_manager MouseButtonPressEvent, indexes, block || binding.local_variable_get(:do), early, always
186
+ end
187
+
188
+ # See #on_mouse_press.
189
+ def on_mouse_press= param
190
+ on_mouse_press do: param
191
+ end
192
+
193
+ # Create and attach mouse up event reaction.
194
+ def on_mouse_release *filtered_buttons, early: false, always: false, do: nil, &block
195
+ indexes = Kredki.mouse.indexes filtered_buttons
196
+ @event_manager.mouse_manager MouseButtonReleaseEvent, indexes, block || binding.local_variable_get(:do), early, always
197
+ end
198
+
199
+ # See #on_mouse_release.
200
+ def on_mouse_release= param
201
+ on_mouse_release do: param
202
+ end
203
+
204
+ # Create and attach mouse click event reaction.
205
+ def on_mouse_click *filtered_buttons, early: false, always: false, do: nil, &block
206
+ indexes = Kredki.mouse.indexes filtered_buttons
207
+ @event_manager.mouse_manager MouseButtonClickEvent, indexes, block || binding.local_variable_get(:do), early, always
208
+ end
209
+
210
+ # See #on_mouse_click.
211
+ def on_mouse_click= param
212
+ on_mouse_click do: param
213
+ end
214
+
215
+ # Create and attach mouse enter event reaction.
216
+ def on_mouse_enter ...
217
+ on(MousePointerEnterEvent, ...)
218
+ end
219
+
220
+ # See #on_mouse_enter.
221
+ def on_mouse_enter= param
222
+ on_mouse_enter do: param
223
+ end
224
+
225
+ # Create and attach mouse leave event reaction.
226
+ def on_mouse_leave ...
227
+ on(MousePointerLeaveEvent, ...)
228
+ end
229
+
230
+ # See #on_mouse_leave.
231
+ def on_mouse_leave= param
232
+ on_mouse_leave do: param
233
+ end
234
+
235
+ # Create and attach mouse move event reaction.
236
+ def on_mouse_move ...
237
+ on(MousePointerMoveEvent, ...)
238
+ end
239
+
240
+ # See #on_mouse_move.
241
+ def on_mouse_move= param
242
+ on_mouse_move do: param
243
+ end
244
+
245
+ # Create and attach mouse scroll event reaction.
246
+ def on_mouse_scroll ...
247
+ on(MouseWheelScrollEvent, ...)
248
+ end
249
+
250
+ # See #on_mouse_scroll.
251
+ def on_mouse_scroll= param
252
+ on_mouse_scroll do: param
253
+ end
254
+
255
+ # Create and attach joystick press event reaction.
256
+ def on_joystick_press *buttons, joystick: nil, early: false, always: false, do: nil, &block
257
+ j = Kredki.joystick joystick
258
+ indexes = j.buttons buttons
259
+ j = nil if joystick.nil?
260
+ @event_manager.joystick_manager JoystickButtonPressEvent, j, indexes, block || binding.local_variable_get(:do), early, always
261
+ end
262
+
263
+ # See #on_joystick_press.
264
+ def on_joystick_press= param
265
+ on_joystick_press do: param
266
+ end
267
+
268
+ # Create and attach joystick release event reaction.
269
+ def on_joystick_release *buttons, joystick: nil, early: false, always: false, do: nil, &block
270
+ j = Kredki.joystick joystick
271
+ indexes = j.buttons buttons
272
+ j = nil if joystick.nil?
273
+ @event_manager.joystick_manager JoystickButtonReleaseEvent, j, indexes, block || binding.local_variable_get(:do), early, always
274
+ end
275
+
276
+ # See #on_joystick_release.
277
+ def on_joystick_release= param
278
+ on_joystick_release do: param
279
+ end
280
+
281
+ # Create and attach joystick axis(axes) move event reaction.
282
+ def on_joystick_move *axes, joystick: nil, early: false, always: false, do: nil, &block
283
+ j = Kredki.joystick joystick
284
+ indexes = j.axes axes
285
+ j = nil if joystick.nil?
286
+ @event_manager.joystick_manager JoystickAxisMoveEvent, j, indexes, block || binding.local_variable_get(:do), early, always
287
+ end
288
+
289
+ # See #on_joystick_move.
290
+ def on_joystick_move= reaction
291
+ on_joystick_move do: reaction
292
+ end
293
+
294
+ # Create and attach joystick hat(hats) switch event reaction.
295
+ def on_joystick_switch *hats, joystick: nil, early: false, always: false, do: nil, &block
296
+ j = Kredki.joystick joystick
297
+ indexes = j.hats hats
298
+ j = nil if joystick.nil?
299
+ @event_manager.joystick_manager JoystickHatSwitchEvent, j, indexes, block || binding.local_variable_get(:do), early, always
300
+ end
301
+
302
+ # See #on_joystick_switch.
303
+ def on_joystick_switch= reaction
304
+ on_joystick_switch do: reaction
305
+ end
306
+
307
+ # Create and attach file drop event reaction.
308
+ def on_drop ...
309
+ on(DropEvent, ...)
310
+ end
311
+
312
+ # See #on_drop.
313
+ def on_drop= reaction
314
+ on_drop do: reaction
315
+ end
316
+
317
+ # Create and attach show event reaction.
318
+ def on_show ...
319
+ on(ShowEvent, ...)
320
+ end
321
+
322
+ # See #on_show.
323
+ def on_show= param
324
+ on_show do: param
325
+ end
326
+
327
+ # Create and attach hide event reaction.
328
+ def on_hide ...
329
+ on(HideEvent, ...)
330
+ end
331
+
332
+ # See #on_hide.
333
+ def on_hide= param
334
+ on_hide do: param
335
+ end
336
+
337
+ # Create and attach focus enter event reaction.
338
+ def on_focus_enter ...
339
+ on(FocusEnterEvent, ...)
340
+ end
341
+
342
+ # See #on_focus_enter.
343
+ def on_focus_enter= param
344
+ on_focus_enter do: param
345
+ end
346
+
347
+ # Create and attach focus leave event reaction.
348
+ def on_focus_leave ...
349
+ on(FocusLeaveEvent, ...)
350
+ end
351
+
352
+ # See #on_focus_leave.
353
+ def on_focus_leave= param
354
+ on_focus_leave do: param
355
+ end
356
+ end
357
+ end
358
+ end
@@ -0,0 +1,89 @@
1
+ module Kredki
2
+ module Pads
3
+ # Pad with picture area.
4
+ class PicturePad < Pad
5
+
6
+ # Set a feature recognized by its class.
7
+ def << arg
8
+ case arg
9
+ when String
10
+ set_subject arg
11
+ else
12
+ super
13
+ end
14
+ end
15
+
16
+ # :section: LEVEL 2
17
+
18
+ def initialize_area
19
+ @area = @scene.new_picture
20
+ end
21
+
22
+ def min_size_x_value margin
23
+ case @size_x
24
+ when Ratio
25
+ get_size_y * @area.aspect_ratio
26
+ else super
27
+ end
28
+ end
29
+
30
+ def update_subject subject
31
+ @area.set_content subject, @size_x == Auto && @size_y == Auto
32
+ end
33
+
34
+ def min_size_x_limit limit, margin
35
+ case limit
36
+ when Ratio
37
+ get_size_y * @area.aspect_ratio
38
+ else super
39
+ end
40
+ end
41
+
42
+ def get_size_x_value size_x, reference_size_x, size_y
43
+ case size_x
44
+ when Ratio
45
+ if @ratio
46
+ size_y ||= @area.original_size[1]
47
+ else
48
+ @ratio = true
49
+ size_y ||= get_size_y
50
+ @ratio = false
51
+ end
52
+ size_y * @area.aspect_ratio
53
+ else super
54
+ end
55
+ end
56
+
57
+ def min_size_y_value margin
58
+ case @size_y
59
+ when Ratio
60
+ get_size_x / @area.aspect_ratio
61
+ else super
62
+ end
63
+ end
64
+
65
+ def min_size_y_limit limit, margin
66
+ case limit
67
+ when Ratio
68
+ get_size_x / @area.aspect_ratio
69
+ else super
70
+ end
71
+ end
72
+
73
+ def get_size_y_value size_y, reference_size_y, size_x
74
+ case size_y
75
+ when Ratio
76
+ if @ratio
77
+ size_x ||= @area.original_size[0]
78
+ else
79
+ @ratio = true
80
+ size_x ||= get_size_x
81
+ @ratio = false
82
+ end
83
+ size_x / @area.aspect_ratio
84
+ else super
85
+ end
86
+ end
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,181 @@
1
+ module Kredki
2
+ module Pads
3
+ # Pad with rectangle area.
4
+ class RectanglePad < ShapePad
5
+
6
+ # Set X start Y start corner.
7
+ def set_corner_ss corner_ss = @area.corner_ss, clip: :auto
8
+ return send_bundle :set_corner_ss, yield(self.corner_ss) if block_given?
9
+ @area.set_corner_ss(corner_ss) |
10
+ if clip == :auto
11
+ @clip_area.set_corner_ss corner_ss - (@margin_xs + @margin_ys) * 0.5
12
+ elsif clip
13
+ @clip_area.set_corner_ss clip
14
+ end
15
+ end
16
+
17
+ # See #set_corner_ss.
18
+ def corner_ss= param
19
+ send_bundle :set_corner_ss, param
20
+ end
21
+
22
+ # Get X start Y start corner.
23
+ def corner_ss
24
+ @area.corner_ss
25
+ end
26
+
27
+ # Set X end Y start corner.
28
+ def set_corner_es corner_es = @area.corner_es, clip: :auto
29
+ return send_bundle :set_corner_es, yield(self.corner_es) if block_given?
30
+ @area.set_corner_es(corner_es) |
31
+ if clip == :auto
32
+ @clip_area.set_corner_es corner_es - (@margin_xe + @margin_ys) * 0.5
33
+ elsif clip
34
+ @clip_area.set_corner_es clip
35
+ end
36
+ end
37
+
38
+ # See #set_corner_es.
39
+ def corner_es= param
40
+ send_bundle :set_corner_es, param
41
+ end
42
+
43
+ # Get X end Y start corner.
44
+ def corner_es
45
+ @area.corner_es
46
+ end
47
+
48
+ # Set X start Y end corner.
49
+ def set_corner_se corner_se = @area.corner_se, clip: :auto
50
+ return send_bundle :set_corner_se, yield(self.corner_se) if block_given?
51
+ @area.set_corner_se(corner_se) |
52
+ if clip == :auto
53
+ @clip_area.set_corner_se corner_se - (@margin_xs + @margin_ye) * 0.5
54
+ elsif clip
55
+ @clip_area.set_corner_se clip
56
+ end
57
+ end
58
+
59
+ # See #set_corner_se.
60
+ def corner_se= param
61
+ send_bundle :set_corner_se, param
62
+ end
63
+
64
+ # Get X start Y end corner.
65
+ def corner_se
66
+ @area.corner_se
67
+ end
68
+
69
+ # Set X end Y end corner.
70
+ def set_corner_ee corner_ee = @area.corner_ee, clip: :auto
71
+ return send_bundle :set_corner_ee, yield(self.corner_ee) if block_given?
72
+ @area.set_corner_ee(corner_ee) |
73
+ if clip == :auto
74
+ @clip_area.set_corner_ee corner_ee - (@margin_xe + @margin_ye) * 0.5
75
+ elsif clip
76
+ @clip_area.set_corner_ee clip
77
+ end
78
+ end
79
+
80
+ # See #set_corner_ee.
81
+ def corner_ee= param
82
+ send_bundle :set_corner_ee, param
83
+ end
84
+
85
+ # Get X end Y end corner.
86
+ def corner_ee
87
+ @area.corner_ee
88
+ end
89
+
90
+ # Set X start corners.
91
+ def set_corner_xs corner_ss = @area.corner_ss, corner_se = corner_ss, clip: :auto
92
+ return send_bundle :set_corner_xs, yield(self.corner_xs) if block_given?
93
+ set_corner_ss(corner_ss, clip: clip) | set_corner_se(corner_se, clip: clip)
94
+ end
95
+
96
+ # See #set_corner_xs.
97
+ def corner_xs= param
98
+ send_bundle :set_corner_xs, param
99
+ end
100
+
101
+ # Get X start corners.
102
+ def corner_xs
103
+ [corner_ss, corner_se]
104
+ end
105
+
106
+ # Set X end corners.
107
+ def set_corner_xe corner_es = @area.corner_es, corner_ee = corner_es, clip: :auto
108
+ return send_bundle :set_corner_xe, yield(self.corner_xe) if block_given?
109
+ set_corner_es(corner_es, clip: clip) | set_corner_ee(corner_ee, clip: clip)
110
+ end
111
+
112
+ # See #set_corner_xe.
113
+ def corner_xe= param
114
+ send_bundle :set_corner_xe, param
115
+ end
116
+
117
+ # Get X end corners.
118
+ def corner_xe
119
+ [corner_es, corner_ee]
120
+ end
121
+
122
+ # Set Y start corners.
123
+ def set_corner_ys corner_ss = @area.corner_ss, corner_es = corner_ss, clip: :auto
124
+ return send_bundle :set_corner_ys, yield(self.corner_ys) if block_given?
125
+ set_corner_ss(corner_ss, clip: clip) | set_corner_es(corner_es, clip: clip)
126
+ end
127
+
128
+ # See #set_corner_ys.
129
+ def corner_ys= param
130
+ send_bundle :set_corner_ys, param
131
+ end
132
+
133
+ # Get Y start corners.
134
+ def corner_ys
135
+ [corner_ss, corner_es]
136
+ end
137
+
138
+ # Set Y end corners.
139
+ def set_corner_ye corner_se = @area.corner_se, corner_ee = corner_se, clip: :auto
140
+ return send_bundle :set_corner_ye, yield(self.corner_ye) if block_given?
141
+ set_corner_se(corner_se, clip: clip) | set_corner_ee(corner_ee, clip: clip)
142
+ end
143
+
144
+ # See #set_corner_ye.
145
+ def corner_ye= param
146
+ send_bundle :set_corner_ye, param
147
+ end
148
+
149
+ # Get Y end corners.
150
+ def corner_ye
151
+ [corner_se, corner_ee]
152
+ end
153
+
154
+ # Set corners.
155
+ def set_corner corner_ss = @area.corner_ss, corner_es = corner_ss, corner_se = corner_ss, corner_ee = corner_es, clip: :auto, **ka
156
+ return send_bundle :set_corner, yield(self.corner) if block_given?
157
+ set_corner_ss(corner_ss, clip: clip) |
158
+ set_corner_es(corner_es, clip: clip) |
159
+ set_corner_se(corner_se, clip: clip) |
160
+ set_corner_ee(corner_ee, clip: clip) |
161
+ send_branch(__method__, ka)
162
+ end
163
+
164
+ # See #set_corner.
165
+ def corner= param
166
+ send_bundle :set_corner, param
167
+ end
168
+
169
+ # Get corners.
170
+ def corner
171
+ [corner_ss, corner_es, corner_se, corner_ee]
172
+ end
173
+
174
+ # :section: LEVEL 2
175
+
176
+ def initialize_area
177
+ @area = @scene.new_rectangle
178
+ end
179
+ end
180
+ end
181
+ end