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,138 @@
1
+ module Kredki
2
+ module Pads
3
+ module Tree
4
+ # Tree list item model.
5
+ class Item < List::Item
6
+
7
+ # Add new subitem.
8
+ def item! *a, **ka, &b
9
+ at = (lower.subitems(self).last || self).pad_index + 1
10
+ open = self.open
11
+ lower.item! *a, scenic: open, layoutic: open, size_x: 1r, at: at, level: level + 1, **ka, &b
12
+ set_leaf false if @leaf.nil?
13
+ end
14
+
15
+ # Set whether is opened.
16
+ def set_open value = true, &block
17
+ return if (c = open) == (value = block ? block[c] : value == Not ? !c : value)
18
+ update_open value
19
+ lower&.update_open
20
+ true
21
+ end
22
+
23
+ # See #set_open.
24
+ def open= param
25
+ send_bundle :set_open, param
26
+ end
27
+
28
+ # Get whether is opened.
29
+ def open
30
+ @open || @open.nil?
31
+ end
32
+
33
+ # Set whether is leaf.
34
+ def set_leaf value = true, &block
35
+ return if (c = leaf) == (value = block ? block[c] : value == Not ? !c : value)
36
+ @leaf = value
37
+ update_icon
38
+ true
39
+ end
40
+
41
+ # See #set_leaf.
42
+ def leaf= param
43
+ send_bundle :set_leaf, param
44
+ end
45
+
46
+ # Get whether is leaf.
47
+ def leaf
48
+ @leaf || @leaf.nil?
49
+ end
50
+
51
+ # Set level.
52
+ def set_level level
53
+ return if @level == level
54
+ @level = level
55
+ update_level
56
+ true
57
+ end
58
+
59
+ # See #set_level.
60
+ def level= param
61
+ send_bundle :set_level, param
62
+ end
63
+
64
+ # Get level
65
+ def level
66
+ @level || 0
67
+ end
68
+
69
+ # :section: LEVEL 2
70
+
71
+ def initialize
72
+ super
73
+
74
+ @icon_space = put SpacePad, size: [:y, 1r]
75
+ end
76
+
77
+ def sketch
78
+ super
79
+
80
+ update_icon
81
+ end
82
+
83
+ def update_level
84
+ set_margin_xs 4 + level * get_size_y * 0.5
85
+ end
86
+
87
+ def update_open open
88
+ @open = open
89
+ update_icon
90
+ end
91
+
92
+ def update_icon
93
+ @icon_space.clear
94
+ if leaf
95
+ default_leaf_icon
96
+ elsif open
97
+ default_catalog_open_icon
98
+ else
99
+ default_catalog_icon
100
+ end
101
+ end
102
+
103
+ def default_leaf_icon
104
+ @icon_space.put Pad, size: 1r, fill: :text do
105
+ set_area do
106
+ ellipse 1/5r, 1/5r
107
+ end
108
+ end
109
+ end
110
+
111
+ def default_catalog_icon
112
+ @icon_space.put RectanglePad, :@catalog_icon, keyboardy: false, fill: 0, size: 1r do
113
+ set_stroke fill: :text, width: 2, cap: :round
114
+ set_mouse_cursor :pointer
115
+ set_area do |sx, sy|
116
+ jump sx * 0.4, sy * 0.35
117
+ line sx * 0.6, sy * 0.5
118
+ line sx * 0.4, sy * 0.65
119
+ end
120
+ end
121
+ end
122
+
123
+ def default_catalog_open_icon
124
+ @icon_space.put RectanglePad, :@catalog_icon, keyboardy: false, fill: 0, size: 1r do
125
+ set_stroke fill: :text, width: 2, cap: :round
126
+ set_mouse_cursor :pointer
127
+ set_area do |sx, sy|
128
+ jump sx * 0.35, sy * 0.4
129
+ line sx * 0.5, sy * 0.6
130
+ line sx * 0.65, sy * 0.4
131
+ end
132
+ end
133
+ end
134
+
135
+ end#Item
136
+ end#Tree
137
+ end#Pads
138
+ end#Kredki
@@ -0,0 +1,86 @@
1
+ module Kredki
2
+ module Pads
3
+ module Tree
4
+ class ItemGroup < Pads::ItemGroup
5
+
6
+ # Add new item.
7
+ def item!(...)
8
+ put(Item, __method__, ...)
9
+ end
10
+
11
+ # Get all items.
12
+ def items
13
+ each_upper(Tree::Item).to_a
14
+ end
15
+
16
+ # Get selected items.
17
+ def selected_items
18
+ each_upper(Tree::Item, selected: true).to_a
19
+ end
20
+
21
+ # :section: LEVEL 2
22
+
23
+ def select_up_to pad
24
+ bound = 0
25
+ each_upper(Item).each do |it|
26
+ bound += 1 if it == pad
27
+ bound += 1 if it.keyboard_in
28
+ it.set_selected if bound > 0
29
+ break if bound > 1
30
+ end
31
+ end
32
+
33
+ def subitems item
34
+ each(Item).drop_while{|it| it != item }.drop(1).take_while{|it| it.level > item.level }
35
+ end
36
+
37
+ def update_open
38
+ hide_level = 0
39
+ each_upper(Item).each do |it|
40
+ level = it.level
41
+ if level <= hide_level
42
+ it.set_scenic true
43
+ it.set_layoutic true
44
+ hide_level = it.open ? level + 1 : level
45
+ else
46
+ it.set_scenic false
47
+ it.set_layoutic false
48
+ it.update_open false if it.open
49
+ end
50
+ end
51
+ end
52
+
53
+ def focus_previous
54
+ kb = nil
55
+ each_upper(Item, reverse: true).each do |it|
56
+ if kb
57
+ return focus it if it.displayed && !it.disabled
58
+ elsif it.keyboard_in
59
+ kb = it
60
+ end
61
+ end
62
+ return focus kb if kb
63
+ find_upper(Item, displayed: true, disabled: false)&.then{|it| focus it }
64
+ end
65
+
66
+ def focus_next
67
+ kb = nil
68
+ each_upper(Item).each do |it|
69
+ if kb
70
+ return focus it if it.displayed && !it.disabled
71
+ elsif it.keyboard_in
72
+ kb = it
73
+ end
74
+ end
75
+ return focus kb if kb
76
+ find_upper(Item, displayed: true, disabled: false)&.then{|it| focus it }
77
+ end
78
+
79
+ def focus item
80
+ item&.keyboard_request
81
+ item
82
+ end
83
+ end#ItemGroup
84
+ end#Tree
85
+ end#Pads
86
+ end#Kredki
@@ -0,0 +1,94 @@
1
+ require_relative 'item_group'
2
+ require_relative 'item'
3
+
4
+ module Kredki
5
+ module Pads
6
+ module Tree
7
+ # Tree list pad.
8
+ class Pad < RectanglePad
9
+
10
+ # Add new item.
11
+ def item! *a, **ka, &b
12
+ @item_group.item! *a, size_x: 1r, **ka, &b
13
+ end
14
+
15
+ # Create and attach select event reaction.
16
+ def on_select ...
17
+ on(Item::SelectEvent, ...)
18
+ end
19
+
20
+ # See #on_select.
21
+ def on_select= param
22
+ on_select do: param
23
+ end
24
+
25
+ # Get all items.
26
+ def items
27
+ @item_group.items
28
+ end
29
+
30
+ # Get selected items.
31
+ def selected_items
32
+ @item_group.selected_items
33
+ end
34
+
35
+ # :section: LEVEL 2
36
+
37
+ def sketch
38
+ super
39
+
40
+ set keyboardy: true
41
+ set fill: :gray
42
+ set layout: :yss
43
+
44
+ @item_group = put ItemGroup
45
+ end
46
+
47
+ def behavior
48
+ super
49
+
50
+ on Item::SelectEvent do |it|
51
+ item = it.target
52
+ source = it.source
53
+ if source.is_a? KeyClickEvent
54
+ if source.key.id == :enter
55
+ item.set_open Not
56
+ else
57
+ if source.ctrl?
58
+ item.set_selected Not
59
+ else
60
+ each_upper(Item).each_set{|it| set_selected it == item }
61
+ end
62
+ end
63
+ else
64
+ kb = Kredki.keyboard
65
+ if kb.shift?
66
+ if kb.ctrl?
67
+ item.set_open Not
68
+ else
69
+ item.set_selected
70
+ end
71
+ elsif kb.ctrl?
72
+ item.set_selected Not
73
+ else
74
+ each_upper(Item).each{|it| it.set_selected it == item }
75
+ if source.target.is(:@catalog_icon) || layer.mouse_click_combo > 1
76
+ item.set_open Not
77
+ end
78
+ end
79
+ end
80
+ end
81
+
82
+ on_focus_leave do
83
+ each_upper(Item).each_set selected: false
84
+ end
85
+ end
86
+
87
+ def put_pad pad, at = nil
88
+ super
89
+ end
90
+
91
+ end#List
92
+ end#Tree
93
+ end#Pads
94
+ end#Kredki
@@ -0,0 +1,11 @@
1
+ require_relative 'service/event_queue'
2
+ require_relative 'service/service'
3
+ require_relative 'pad/pad'
4
+ require_relative 'pad/shape_pad'
5
+ require_relative 'pad/rectangle_pad'
6
+ require_relative 'layer'
7
+ require_relative 'application'
8
+ require_relative 'window'
9
+ require_relative 'pane'
10
+
11
+ load Kredki::Pads.config
@@ -0,0 +1,212 @@
1
+ require_relative 'text/editable_text_verse'
2
+
3
+ module Kredki
4
+ module Pads
5
+ # Control with text entry.
6
+ class Note < RectanglePad
7
+ include TextEdition
8
+
9
+ # Set text content.
10
+ def set_text text = ""
11
+ return send_bundle :set_text, yield(self.text) if block_given?
12
+ @verse.set_subject text
13
+ end
14
+
15
+ # See #set_text.
16
+ def text= param
17
+ send_bundle :set_text, param
18
+ end
19
+
20
+ # Get text content.
21
+ def text
22
+ @verse.text
23
+ end
24
+
25
+ # Set suit.
26
+ def set_suit *suit
27
+ return send_bundle :set_suit, yield(self.suit) if block_given?
28
+ suit = Util.uncover suit
29
+ return if @suit == suit && suit != :random
30
+ @suit = suit
31
+ repaint
32
+ true
33
+ end
34
+
35
+ # See #set_suit.
36
+ def suit= param
37
+ send_bundle :set_suit, param
38
+ end
39
+
40
+ # Get suit.
41
+ def suit
42
+ @suit
43
+ end
44
+
45
+ # Set verse features.
46
+ def set_verse ...
47
+ send_branch(__method__, ...)
48
+ end
49
+
50
+ # See #set_verse.
51
+ def verse= param
52
+ send_bundle :set_verse, param
53
+ end
54
+
55
+ # Set verse size.
56
+ def set_verse_size ...
57
+ @verse.set_verse_size(...)
58
+ end
59
+
60
+ # See #set_verse_size.
61
+ def verse_size= param
62
+ send_bundle :set_verse_size, param
63
+ end
64
+
65
+ # Get verse size.
66
+ def verse_size
67
+ @verse.verse_size
68
+ end
69
+
70
+ # Set verse font.
71
+ def set_verse_font ...
72
+ @verse.set_font(...)
73
+ end
74
+
75
+ # See #set_verse_font.
76
+ def verse_font= param
77
+ send_bundle :set_verse_font, param
78
+ end
79
+
80
+ # Get verse font.
81
+ def verse_font
82
+ @verse.font
83
+ end
84
+
85
+ # Set verse layout.
86
+ def set_verse_layout ...
87
+ @verse.set_verse_layout(...)
88
+ end
89
+
90
+ # See #set_verse_layout.
91
+ def verse_layout= param
92
+ send_bundle :set_verse_layout, param
93
+ end
94
+
95
+ # Get verse layout.
96
+ def verse_layout
97
+ @verse.verse_layout
98
+ end
99
+
100
+ # Set a feature recognized by its class.
101
+ def << feature
102
+ case feature
103
+ when String
104
+ set_text feature
105
+ else
106
+ super
107
+ end
108
+ end
109
+
110
+ # :section: LEVEL 2
111
+
112
+ class NoteLayout < Layout::XWay
113
+ def arrange_layoutic pad, clip_size_x, clip_size_y, cx
114
+ sx, sy = pad.area_size
115
+ px = pad.get_x clip_size_x, sx, cx
116
+ py = pad.get_y clip_size_y, sy, (get_y @y, clip_size_y, sy)
117
+ pad.arrange
118
+ pad.update_xy px, py
119
+ pad.update_margin
120
+ [sx, sy, px, py]
121
+ end
122
+ end
123
+
124
+ def initialize
125
+ super
126
+
127
+ @verse = default_verse
128
+ end
129
+
130
+ attr :verse
131
+
132
+ def sketch
133
+ super
134
+
135
+ set_layout NoteLayout.new(Start, Center)
136
+ set_mousy
137
+ set_keyboardy
138
+ set_stroke_width 1
139
+ set_margin 2
140
+ set_suit :gray
141
+ set_size_y Fit
142
+
143
+ sketch_verse
144
+ end
145
+
146
+ def sketch_verse
147
+ text_edition @verse, false
148
+ end
149
+
150
+ def behavior
151
+ super
152
+
153
+ on_mouse_scroll do: method(:mouse_scroll)
154
+
155
+ on_mouse_press :scroll do |e|
156
+ start_drag e.xy, :scroll
157
+ e.close
158
+ end
159
+
160
+ on_mouse_move do |e|
161
+ if e.drag? && e.button == :scroll
162
+ @verse.process_drag e
163
+ e.close
164
+ end
165
+ end
166
+
167
+ on_edit early: true do |e|
168
+ e.close if in_disabled
169
+ end
170
+ end
171
+
172
+ def mouse_scroll event
173
+ x, y = Kredki.relative_scroll(*event.xy)
174
+ @verse.scroll x == 0 ? y : x, y
175
+ end
176
+
177
+ def presence
178
+ super
179
+
180
+ Event.each(
181
+ on_focus_enter,
182
+ on_focus_leave,
183
+ on_mouse_enter,
184
+ on_mouse_leave,
185
+ do: method(:repaint)
186
+ )
187
+ end
188
+
189
+ def repaint event = nil
190
+ color = Kredki.color @suit
191
+ kb_top = keyboard_top
192
+
193
+ if in_disabled
194
+ set_opacity 3/4r
195
+ set_mouse_cursor nil
196
+ area.set_fill color
197
+ area.set_stroke_fill color
198
+ else
199
+ set_opacity 1r
200
+ set_mouse_cursor :text
201
+ area.set_fill kb_top ? color.darken : mouse_in ? color.lighten : color
202
+ area.set_stroke_fill kb_top ? :stroke_focus : color
203
+ end
204
+ verse.selection.each_paint{|it| it.set_fill kb_top ? :text_selection : :text_selection_inactive }
205
+ end
206
+
207
+ def default_verse
208
+ put EditableTextVerse, "", size_x: 1r, mousy: false, verse_size: Kredki.text_size
209
+ end
210
+ end
211
+ end
212
+ end
@@ -0,0 +1,32 @@
1
+ require_relative 'text/editable_text_verses'
2
+
3
+ module Kredki
4
+ module Pads
5
+ # A multiline text control.
6
+ class Notes < Note
7
+
8
+ # :section: LEVEL 2
9
+
10
+ def sketch
11
+ super
12
+
13
+ set_size_y 64
14
+ set_verse_size Kredki.text_size
15
+ set_verse_layout :yss
16
+ end
17
+
18
+ def sketch_verse
19
+ text_edition @verse, true
20
+ end
21
+
22
+ def mouse_scroll event
23
+ @verse.scroll *Kredki.relative_scroll(*event.xy)
24
+ end
25
+
26
+ def default_verse
27
+ put EditableTextVerses, size: 1r, mousy: false
28
+ end
29
+
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,121 @@
1
+ require_relative '../note'
2
+ require_relative 'option_layer'
3
+
4
+ module Kredki
5
+ module Pads
6
+ # Control to select option from list.
7
+ class Option < Pad
8
+
9
+ # Add new item.
10
+ def item! ...
11
+ dropdown!.item!(size_x: 1r).set(...)
12
+ end
13
+
14
+ # Create/Update dropdown.
15
+ def dropdown! ...
16
+ @dropdown ||= default_dropdown_layer
17
+ @dropdown.set(...)
18
+ end
19
+
20
+ # Get dropdown.
21
+ def dropdown
22
+ @dropdown
23
+ end
24
+
25
+ # Create and attach select event reaction.
26
+ def on_select ...
27
+ on(Item::SelectEvent, ...)
28
+ end
29
+
30
+ # See #on_select.
31
+ def on_select= param
32
+ on_select do: param
33
+ end
34
+
35
+ # :section: LEVEL 2
36
+
37
+ def initialize
38
+ super
39
+
40
+ @note = put Note, size: 1r
41
+ @arrow = default_arrow_button
42
+ end
43
+
44
+ def sketch
45
+ super
46
+
47
+ set_size_y 24
48
+ dropdown!
49
+ end
50
+
51
+ def behavior
52
+ super
53
+
54
+ on_key :enter do |e|
55
+ p e
56
+ p @dropdown.loaded
57
+ if @dropdown.loaded
58
+ item?(keyboard_in: true)&.report_selected e
59
+ else
60
+ @dropdown.load self
61
+ end
62
+ end
63
+
64
+ on_mouse_click :primary do
65
+ @dropdown.load self unless @dropdown.loaded
66
+ end
67
+
68
+ @arrow.on_mouse_click :primary do |e|
69
+ if @dropdown.loaded
70
+ @dropdown.unload
71
+ else
72
+ @dropdown.load self
73
+ end
74
+ e.close
75
+ end
76
+
77
+ @arrow.on_mouse_move do |it|
78
+ if it.drag?
79
+ it.close
80
+ end
81
+ end
82
+
83
+ on_select do |e|
84
+ @dropdown.unload
85
+ subject = e.target.find_upper(TextPad).subject
86
+ set_subject subject
87
+ @note.set_text subject
88
+ @note.verse.update_cursor subject.to_s.length
89
+ end
90
+
91
+ @dropdown.on_key :escape do |it|
92
+ @dropdown.unload
93
+ it.close
94
+ end
95
+
96
+ on_focus_leave do
97
+ @dropdown.unload
98
+ end
99
+ end
100
+
101
+ def default_dropdown_layer
102
+ put OptionLayer
103
+ end
104
+
105
+ def default_arrow_button
106
+ @note.put Button, size: [20, 1r] do
107
+ set stroke_width: 0
108
+ set keyboardy: false
109
+ put RectanglePad, mousy: false, keyboardy: false, fill: 0, size: 1r do
110
+ set_stroke fill: :text, width: 2, cap: :round
111
+ set_area do |sx, sy|
112
+ jump sx * 0.2, sy * 0.35
113
+ line sx * 0.5, sy * 0.65
114
+ line sx * 0.8, sy * 0.35
115
+ end
116
+ end
117
+ end
118
+ end
119
+ end
120
+ end
121
+ end
@@ -0,0 +1,15 @@
1
+ require_relative '../item/item_y'
2
+
3
+ module Kredki
4
+ module Pads
5
+ # Option item.
6
+ class OptionItem < ItemY
7
+
8
+ # :section: LEVEL 2
9
+
10
+ def behavior_on_key
11
+ end
12
+
13
+ end#OptionItem
14
+ end#Pads
15
+ end#Kredki