scarpe 0.1.0 → 0.2.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 (530) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +80 -9
  3. data/.ruby-version +1 -0
  4. data/.vscode/extensions.json +5 -0
  5. data/.yardopts +3 -0
  6. data/CHANGELOG.md +14 -0
  7. data/CONTRIBUTING.md +20 -0
  8. data/Gemfile +14 -2
  9. data/README.md +138 -18
  10. data/Rakefile +2 -3
  11. data/dev.yml +7 -0
  12. data/docs/static/PKGBUILD +47 -0
  13. data/docs/static/Shoes.icns +0 -0
  14. data/docs/static/avatar.png +0 -0
  15. data/docs/static/code_highlighter.js +188 -0
  16. data/docs/static/code_highlighter_ruby.js +26 -0
  17. data/docs/static/icon-debug.png +0 -0
  18. data/docs/static/icon-error.png +0 -0
  19. data/docs/static/icon-info.png +0 -0
  20. data/docs/static/icon-warn.png +0 -0
  21. data/docs/static/listbox_button1.png +0 -0
  22. data/docs/static/listbox_button2.png +0 -0
  23. data/docs/static/man-app.png +0 -0
  24. data/docs/static/man-builds.png +0 -0
  25. data/docs/static/man-builds1.png +0 -0
  26. data/docs/static/man-editor-notepad.png +0 -0
  27. data/docs/static/man-editor-osx.png +0 -0
  28. data/docs/static/man-ele-background.png +0 -0
  29. data/docs/static/man-ele-border.png +0 -0
  30. data/docs/static/man-ele-button.png +0 -0
  31. data/docs/static/man-ele-check.png +0 -0
  32. data/docs/static/man-ele-editbox.png +0 -0
  33. data/docs/static/man-ele-editline.png +0 -0
  34. data/docs/static/man-ele-image.png +0 -0
  35. data/docs/static/man-ele-listbox.png +0 -0
  36. data/docs/static/man-ele-progress.png +0 -0
  37. data/docs/static/man-ele-radio.png +0 -0
  38. data/docs/static/man-ele-shape.png +0 -0
  39. data/docs/static/man-ele-textblock.png +0 -0
  40. data/docs/static/man-ele-video.png +0 -0
  41. data/docs/static/man-intro-dmg.png +0 -0
  42. data/docs/static/man-intro-exe.png +0 -0
  43. data/docs/static/man-look-tiger.png +0 -0
  44. data/docs/static/man-look-ubuntu.png +0 -0
  45. data/docs/static/man-look-vista.png +0 -0
  46. data/docs/static/man-run-osx.png +0 -0
  47. data/docs/static/man-run-vista.png +0 -0
  48. data/docs/static/man-run-xp.png +0 -0
  49. data/docs/static/man-shot1.png +0 -0
  50. data/docs/static/manual-en.txt +3529 -0
  51. data/docs/static/manual-ja.txt +2829 -0
  52. data/docs/static/manual.css +171 -0
  53. data/docs/static/manual.md +3528 -0
  54. data/docs/static/menu-corner1.png +0 -0
  55. data/docs/static/menu-corner2.png +0 -0
  56. data/docs/static/menu-gray.png +0 -0
  57. data/docs/static/menu-left.png +0 -0
  58. data/docs/static/menu-right.png +0 -0
  59. data/docs/static/menu-top.png +0 -0
  60. data/docs/static/shoes-dmg.jpg +0 -0
  61. data/docs/static/shoes-icon-blue.png +0 -0
  62. data/docs/static/shoes-icon.png +0 -0
  63. data/docs/static/shoes-manual-apps.gif +0 -0
  64. data/docs/static/shoes_main_window.png +0 -0
  65. data/docs/static/stripe.png +0 -0
  66. data/docs/static/stubs/blank.exe +0 -0
  67. data/docs/static/stubs/blank.hfz +0 -0
  68. data/docs/static/stubs/blank.run +375 -0
  69. data/docs/static/stubs/cocoa-install +0 -0
  70. data/docs/static/stubs/sh-install +49 -0
  71. data/docs/static/stubs/shoes-stub-inject.exe +0 -0
  72. data/docs/static/stubs/shoes-stub.exe +0 -0
  73. data/docs/static/tutor-back.png +0 -0
  74. data/examples/bloopsaphone/working/1901_by_Aanand_Prasad.rb +478 -0
  75. data/examples/bloopsaphone/working/b1.rb +64 -0
  76. data/examples/bloopsaphone/working/b2.rb +36 -0
  77. data/examples/bloopsaphone/working/bloops_test.rb +41 -0
  78. data/examples/bloopsaphone/working/bloopsaphone_theme_song_by_why.rb +31 -0
  79. data/examples/bloopsaphone/working/feepogram.rb +67 -0
  80. data/examples/bloopsaphone/working/simpsons_theme_song_by_why.rb +14 -0
  81. data/examples/bloopsaphone/working/tune_cheeky_drat.rb +210 -0
  82. data/examples/button.rb +6 -5
  83. data/examples/button_alert.rb +6 -0
  84. data/examples/button_go_away.rb +6 -0
  85. data/examples/button_with_position_and_size.rb +7 -0
  86. data/examples/coffee.rb +14 -0
  87. data/examples/download.rb +5 -0
  88. data/examples/edit_box.rb +10 -0
  89. data/examples/edit_line.rb +8 -0
  90. data/examples/fill.rb +25 -0
  91. data/examples/flow.rb +11 -0
  92. data/examples/fonts.rb +6 -0
  93. data/examples/gen.rb +140 -0
  94. data/examples/hello_world.rb +2 -4
  95. data/examples/highlander.rb +87 -0
  96. data/examples/image/clickable_image.rb +5 -0
  97. data/examples/{image.rb → image/image.rb} +2 -4
  98. data/examples/image/image_size.rb +7 -0
  99. data/examples/image/image_with_position_and_size.rb +3 -0
  100. data/examples/info.rb +9 -0
  101. data/examples/legacy/not_checked/expert/colours.rb +105 -0
  102. data/examples/legacy/not_checked/expert/curve-animation.rb +31 -0
  103. data/examples/legacy/not_checked/expert/curve-control-point.rb +51 -0
  104. data/examples/legacy/not_checked/expert/custom-list-box.rb +53 -0
  105. data/examples/legacy/not_checked/expert/definr.rb +23 -0
  106. data/examples/legacy/not_checked/expert/funnies.rb +56 -0
  107. data/examples/legacy/not_checked/expert/minesweeper.rb +267 -0
  108. data/examples/legacy/not_checked/expert/othello.rb +318 -0
  109. data/examples/legacy/not_checked/expert/pong.rb +62 -0
  110. data/examples/legacy/not_checked/expert/tankspank.rb +385 -0
  111. data/examples/legacy/not_checked/expert/tooltips.rb +45 -0
  112. data/examples/legacy/not_checked/expert/url.rb +37 -0
  113. data/examples/legacy/not_checked/expert/video-player.rb +256 -0
  114. data/examples/legacy/not_checked/good/_why-stories.rb +44 -0
  115. data/examples/legacy/not_checked/good/_why-stories.yaml +387 -0
  116. data/examples/legacy/not_checked/good/arc.rb +37 -0
  117. data/examples/legacy/not_checked/good/cardflip.rb +141 -0
  118. data/examples/legacy/not_checked/good/clock.rb +51 -0
  119. data/examples/legacy/not_checked/good/console.rb +21 -0
  120. data/examples/legacy/not_checked/good/follow.rb +26 -0
  121. data/examples/legacy/not_checked/good/image-rotate.rb +14 -0
  122. data/examples/legacy/not_checked/good/paris.svg +7236 -0
  123. data/examples/legacy/not_checked/good/path-animation.rb +46 -0
  124. data/examples/legacy/not_checked/good/plots.rb +100 -0
  125. data/examples/legacy/not_checked/good/reminder.rb +174 -0
  126. data/examples/legacy/not_checked/good/svgview.rb +113 -0
  127. data/examples/legacy/not_checked/good/vjot.rb +56 -0
  128. data/examples/legacy/not_checked/shoes-contrib/.gitignore +2 -0
  129. data/examples/legacy/not_checked/shoes-contrib/README.md +34 -0
  130. data/examples/legacy/not_checked/shoes-contrib/animation/animate-ovals.rb +21 -0
  131. data/examples/legacy/not_checked/shoes-contrib/animation/flowers.rb +59 -0
  132. data/examples/legacy/not_checked/shoes-contrib/animation/happy-trails.rb +31 -0
  133. data/examples/legacy/not_checked/shoes-contrib/animation/mice-satellites.rb +27 -0
  134. data/examples/legacy/not_checked/shoes-contrib/animation/oval-motion.rb +12 -0
  135. data/examples/legacy/not_checked/shoes-contrib/animation/pink-bubbles.rb +34 -0
  136. data/examples/legacy/not_checked/shoes-contrib/animation/pulsate.rb +18 -0
  137. data/examples/legacy/not_checked/shoes-contrib/animation/rotating-star.rb +18 -0
  138. data/examples/legacy/not_checked/shoes-contrib/app/download-and-save.rb +11 -0
  139. data/examples/legacy/not_checked/shoes-contrib/app/download.rb +10 -0
  140. data/examples/legacy/not_checked/shoes-contrib/app/get-google.rb +11 -0
  141. data/examples/legacy/not_checked/shoes-contrib/app/mouse-detection.rb +7 -0
  142. data/examples/legacy/not_checked/shoes-contrib/app/resizeable-false.rb +6 -0
  143. data/examples/legacy/not_checked/shoes-contrib/art/bubble-bullseye.rb +23 -0
  144. data/examples/legacy/not_checked/shoes-contrib/art/faded.rb +17 -0
  145. data/examples/legacy/not_checked/shoes-contrib/art/fill-oval.rb +5 -0
  146. data/examples/legacy/not_checked/shoes-contrib/art/mask.rb +15 -0
  147. data/examples/legacy/not_checked/shoes-contrib/art/oval-gradient.rb +6 -0
  148. data/examples/legacy/not_checked/shoes-contrib/art/star-gradient.rb +4 -0
  149. data/examples/legacy/not_checked/shoes-contrib/basic/basic-edit-box.rb +8 -0
  150. data/examples/legacy/not_checked/shoes-contrib/basic/basic-new-window.rb +8 -0
  151. data/examples/legacy/not_checked/shoes-contrib/basic/basic-oval-image.rb +8 -0
  152. data/examples/legacy/not_checked/shoes-contrib/basic/basic-oval-shape.rb +8 -0
  153. data/examples/legacy/not_checked/shoes-contrib/basic/basic-oval.rb +6 -0
  154. data/examples/legacy/not_checked/shoes-contrib/basic/class-book.rb +43 -0
  155. data/examples/legacy/not_checked/shoes-contrib/basic/class-book.yaml +387 -0
  156. data/examples/legacy/not_checked/shoes-contrib/basic/clock.rb +6 -0
  157. data/examples/legacy/not_checked/shoes-contrib/basic/edit-stack +14 -0
  158. data/examples/legacy/not_checked/shoes-contrib/basic/gradient-shoes.rb +7 -0
  159. data/examples/legacy/not_checked/shoes-contrib/basic/list_box-shape-report.rb +19 -0
  160. data/examples/legacy/not_checked/shoes-contrib/basic/rect-arrow.rb +7 -0
  161. data/examples/legacy/not_checked/shoes-contrib/basic/scribble.rb +8 -0
  162. data/examples/legacy/not_checked/shoes-contrib/basic/search.rb +32 -0
  163. data/examples/legacy/not_checked/shoes-contrib/basic/shoes-notes.rb +16 -0
  164. data/examples/legacy/not_checked/shoes-contrib/basic/url-shoes-subclassing.rb +24 -0
  165. data/examples/legacy/not_checked/shoes-contrib/browser.rb +21 -0
  166. data/examples/legacy/not_checked/shoes-contrib/elements/background-column.rb +3 -0
  167. data/examples/legacy/not_checked/shoes-contrib/elements/background.rb +4 -0
  168. data/examples/legacy/not_checked/shoes-contrib/elements/basic-fps.rb +6 -0
  169. data/examples/legacy/not_checked/shoes-contrib/elements/border-cat.rb +6 -0
  170. data/examples/legacy/not_checked/shoes-contrib/elements/button-block.rb +8 -0
  171. data/examples/legacy/not_checked/shoes-contrib/elements/check-mate.rb +15 -0
  172. data/examples/legacy/not_checked/shoes-contrib/elements/common-styles.rb +13 -0
  173. data/examples/legacy/not_checked/shoes-contrib/elements/displace-animation.rb +13 -0
  174. data/examples/legacy/not_checked/shoes-contrib/elements/edit_box-character-count.rb +7 -0
  175. data/examples/legacy/not_checked/shoes-contrib/elements/edit_line-character-count.rb +7 -0
  176. data/examples/legacy/not_checked/shoes-contrib/elements/image-icon.rb +3 -0
  177. data/examples/legacy/not_checked/shoes-contrib/elements/list_box-select-class.rb +13 -0
  178. data/examples/legacy/not_checked/shoes-contrib/elements/list_box.rb +6 -0
  179. data/examples/legacy/not_checked/shoes-contrib/elements/move-flow-animate.rb +13 -0
  180. data/examples/legacy/not_checked/shoes-contrib/elements/phat-button.rb +7 -0
  181. data/examples/legacy/not_checked/shoes-contrib/elements/popup.rb +7 -0
  182. data/examples/legacy/not_checked/shoes-contrib/elements/progress-bar.rb +10 -0
  183. data/examples/legacy/not_checked/shoes-contrib/elements/radio-dreamcast-favs.rb +17 -0
  184. data/examples/legacy/not_checked/shoes-contrib/elements/timer.rb +6 -0
  185. data/examples/legacy/not_checked/shoes-contrib/elements/width-introspec.rb +8 -0
  186. data/examples/legacy/not_checked/shoes-contrib/events/background-hover.rb +11 -0
  187. data/examples/legacy/not_checked/shoes-contrib/events/motion-detect.rb +9 -0
  188. data/examples/legacy/not_checked/shoes-contrib/events/pressed-key.rb +6 -0
  189. data/examples/legacy/not_checked/shoes-contrib/expert/expert-funnies.rb +51 -0
  190. data/examples/legacy/not_checked/shoes-contrib/expert/expert-irb.rb +112 -0
  191. data/examples/legacy/not_checked/shoes-contrib/expert/expert-othello.rb +319 -0
  192. data/examples/legacy/not_checked/shoes-contrib/good/good-arc.rb +37 -0
  193. data/examples/legacy/not_checked/shoes-contrib/good/good-clock.rb +51 -0
  194. data/examples/legacy/not_checked/shoes-contrib/good/good-follow.rb +26 -0
  195. data/examples/legacy/not_checked/shoes-contrib/good/good-reminder.rb +174 -0
  196. data/examples/legacy/not_checked/shoes-contrib/good/good-vjot.rb +56 -0
  197. data/examples/legacy/not_checked/shoes-contrib/kernel/ask.rb +4 -0
  198. data/examples/legacy/not_checked/shoes-contrib/kernel/ask_color.rb +4 -0
  199. data/examples/legacy/not_checked/shoes-contrib/kernel/ask_open_file.rb +4 -0
  200. data/examples/legacy/not_checked/shoes-contrib/kernel/ask_save_file.rb +7 -0
  201. data/examples/legacy/not_checked/shoes-contrib/kernel/confirm.rb +3 -0
  202. data/examples/legacy/not_checked/shoes-contrib/kernel/debug.rb +4 -0
  203. data/examples/legacy/not_checked/shoes-contrib/kernel/exit.rb +5 -0
  204. data/examples/legacy/not_checked/shoes-contrib/kernel/font.rb +5 -0
  205. data/examples/legacy/not_checked/shoes-contrib/kernel/fonts.rb +3 -0
  206. data/examples/legacy/not_checked/shoes-contrib/manipulation/append-slot.rb +9 -0
  207. data/examples/legacy/not_checked/shoes-contrib/manipulation/clear-slot.rb +6 -0
  208. data/examples/legacy/not_checked/shoes-contrib/manipulation/prepend-slot.rb +6 -0
  209. data/examples/legacy/not_checked/shoes-contrib/manipulation/roll.rb +17 -0
  210. data/examples/legacy/not_checked/shoes-contrib/position/gutter-margin.rb +5 -0
  211. data/examples/legacy/not_checked/shoes-contrib/position/stack-width.rb +3 -0
  212. data/examples/legacy/not_checked/shoes-contrib/simple/simple-accordion.rb +75 -0
  213. data/examples/legacy/not_checked/shoes-contrib/simple/simple-anim-shapes.rb +17 -0
  214. data/examples/legacy/not_checked/shoes-contrib/simple/simple-anim-text.rb +13 -0
  215. data/examples/legacy/not_checked/shoes-contrib/simple/simple-arc.rb +23 -0
  216. data/examples/legacy/not_checked/shoes-contrib/simple/simple-bounce.rb +24 -0
  217. data/examples/legacy/not_checked/shoes-contrib/simple/simple-calc.rb +70 -0
  218. data/examples/legacy/not_checked/shoes-contrib/simple/simple-chipmunk.rb +26 -0
  219. data/examples/legacy/not_checked/shoes-contrib/simple/simple-control-sizes.rb +24 -0
  220. data/examples/legacy/not_checked/shoes-contrib/simple/simple-curve.rb +26 -0
  221. data/examples/legacy/not_checked/shoes-contrib/simple/simple-dialogs.rb +29 -0
  222. data/examples/legacy/not_checked/shoes-contrib/simple/simple-downloader.rb +27 -0
  223. data/examples/legacy/not_checked/shoes-contrib/simple/simple-draw.rb +13 -0
  224. data/examples/legacy/not_checked/shoes-contrib/simple/simple-editor.rb +28 -0
  225. data/examples/legacy/not_checked/shoes-contrib/simple/simple-form.rb +28 -0
  226. data/examples/legacy/not_checked/shoes-contrib/simple/simple-form.shy +0 -0
  227. data/examples/legacy/not_checked/shoes-contrib/simple/simple-mask.rb +21 -0
  228. data/examples/legacy/not_checked/shoes-contrib/simple/simple-menu.rb +31 -0
  229. data/examples/legacy/not_checked/shoes-contrib/simple/simple-menu1.rb +35 -0
  230. data/examples/legacy/not_checked/shoes-contrib/simple/simple-rubygems.rb +29 -0
  231. data/examples/legacy/not_checked/shoes-contrib/simple/simple-slide.rb +45 -0
  232. data/examples/legacy/not_checked/shoes-contrib/simple/simple-sphere.rb +28 -0
  233. data/examples/legacy/not_checked/shoes-contrib/simple/simple-sqlite3.rb +13 -0
  234. data/examples/legacy/not_checked/shoes-contrib/simple/simple-timer.rb +13 -0
  235. data/examples/legacy/not_checked/shoes-contrib/simple/simple-video.rb +13 -0
  236. data/examples/legacy/not_checked/shoes-contrib/styles/alignment.rb +4 -0
  237. data/examples/legacy/not_checked/shoes-contrib/styles/attachment.rb +5 -0
  238. data/examples/legacy/not_checked/shoes-contrib/styles/emphasis.rb +3 -0
  239. data/examples/legacy/not_checked/shoes-contrib/styles/gradient-angle.rb +3 -0
  240. data/examples/legacy/not_checked/shoes-contrib/styles/para-methods.rb +5 -0
  241. data/examples/legacy/not_checked/shoes-contrib/styles/para-red-underlined.rb +3 -0
  242. data/examples/legacy/not_checked/shoes-contrib/styles/para-style-method.rb +4 -0
  243. data/examples/legacy/not_checked/shoes-dep-samples/expert-game-of-life.rb +243 -0
  244. data/examples/legacy/not_checked/shoes-dep-samples/expert-othello.rb +319 -0
  245. data/examples/legacy/not_checked/shoes-dep-samples/good-clock.rb +51 -0
  246. data/examples/legacy/not_checked/shoes-dep-samples/good-follow.rb +26 -0
  247. data/examples/legacy/not_checked/shoes-dep-samples/good-reminder.rb +174 -0
  248. data/examples/legacy/not_checked/shoes-dep-samples/good-vjot.rb +56 -0
  249. data/examples/legacy/not_checked/shoes-dep-samples/simple-accordion.rb +75 -0
  250. data/examples/legacy/not_checked/shoes-dep-samples/simple-anim-shapes.rb +17 -0
  251. data/examples/legacy/not_checked/shoes-dep-samples/simple-anim-text.rb +13 -0
  252. data/examples/legacy/not_checked/shoes-dep-samples/simple-arc.rb +23 -0
  253. data/examples/legacy/not_checked/shoes-dep-samples/simple-bounce.rb +24 -0
  254. data/examples/legacy/not_checked/shoes-dep-samples/simple-calc.rb +70 -0
  255. data/examples/legacy/not_checked/shoes-dep-samples/simple-chipmunk.rb +26 -0
  256. data/examples/legacy/not_checked/shoes-dep-samples/simple-control-sizes.rb +24 -0
  257. data/examples/legacy/not_checked/shoes-dep-samples/simple-curve.rb +26 -0
  258. data/examples/legacy/not_checked/shoes-dep-samples/simple-dialogs.rb +29 -0
  259. data/examples/legacy/not_checked/shoes-dep-samples/simple-draw.rb +13 -0
  260. data/examples/legacy/not_checked/shoes-dep-samples/simple-editor.rb +28 -0
  261. data/examples/legacy/not_checked/shoes-dep-samples/simple-form.rb +28 -0
  262. data/examples/legacy/not_checked/shoes-dep-samples/simple-form.shy +0 -0
  263. data/examples/legacy/not_checked/shoes-dep-samples/simple-mask.rb +21 -0
  264. data/examples/legacy/not_checked/shoes-dep-samples/simple-menu.rb +31 -0
  265. data/examples/legacy/not_checked/shoes-dep-samples/simple-menu1.rb +35 -0
  266. data/examples/legacy/not_checked/shoes-dep-samples/simple-rubygems.rb +29 -0
  267. data/examples/legacy/not_checked/shoes-dep-samples/simple-slide.rb +45 -0
  268. data/examples/legacy/not_checked/shoes-dep-samples/simple-sphere.rb +28 -0
  269. data/examples/legacy/not_checked/shoes-dep-samples/simple-sqlite3.rb +13 -0
  270. data/examples/legacy/not_checked/shoes-dep-samples/simple-timer.rb +13 -0
  271. data/examples/legacy/not_checked/shoes-dep-samples/simple-video.rb +13 -0
  272. data/examples/legacy/not_checked/shoes3-tests/AnemicCinema1926marcelDuchampCut.mp4 +0 -0
  273. data/examples/legacy/not_checked/shoes3-tests/button/button.rb +53 -0
  274. data/examples/legacy/not_checked/shoes3-tests/cache/cache.rb +41 -0
  275. data/examples/legacy/not_checked/shoes3-tests/combo/combo.rb +24 -0
  276. data/examples/legacy/not_checked/shoes3-tests/curl/bare.rb +34 -0
  277. data/examples/legacy/not_checked/shoes3-tests/curl/downloader.rb +40 -0
  278. data/examples/legacy/not_checked/shoes3-tests/curl/m1.rb +11 -0
  279. data/examples/legacy/not_checked/shoes3-tests/curl/m2.rb +12 -0
  280. data/examples/legacy/not_checked/shoes3-tests/curl/m3.rb +11 -0
  281. data/examples/legacy/not_checked/shoes3-tests/curl/m4.rb +5 -0
  282. data/examples/legacy/not_checked/shoes3-tests/curl/typ.rb +30 -0
  283. data/examples/legacy/not_checked/shoes3-tests/cursor/c1.rb +21 -0
  284. data/examples/legacy/not_checked/shoes3-tests/decoration.rb +14 -0
  285. data/examples/legacy/not_checked/shoes3-tests/dialogs/ask.rb +6 -0
  286. data/examples/legacy/not_checked/shoes3-tests/dialogs/confirm.rb +6 -0
  287. data/examples/legacy/not_checked/shoes3-tests/editbox/editbox.rb +36 -0
  288. data/examples/legacy/not_checked/shoes3-tests/editline/editline.rb +27 -0
  289. data/examples/legacy/not_checked/shoes3-tests/events/button.rb +32 -0
  290. data/examples/legacy/not_checked/shoes3-tests/events/button.yaml +40 -0
  291. data/examples/legacy/not_checked/shoes3-tests/events/capture.rb +57 -0
  292. data/examples/legacy/not_checked/shoes3-tests/events/chipmunk.yaml +47 -0
  293. data/examples/legacy/not_checked/shoes3-tests/events/event0.rb +8 -0
  294. data/examples/legacy/not_checked/shoes3-tests/events/event1.rb +51 -0
  295. data/examples/legacy/not_checked/shoes3-tests/events/event1.yaml +26 -0
  296. data/examples/legacy/not_checked/shoes3-tests/events/event2.rb +46 -0
  297. data/examples/legacy/not_checked/shoes3-tests/events/event3.rb +44 -0
  298. data/examples/legacy/not_checked/shoes3-tests/events/event4.rb +65 -0
  299. data/examples/legacy/not_checked/shoes3-tests/events/event5.rb +17 -0
  300. data/examples/legacy/not_checked/shoes3-tests/events/event6.rb +51 -0
  301. data/examples/legacy/not_checked/shoes3-tests/events/replay.rb +60 -0
  302. data/examples/legacy/not_checked/shoes3-tests/gapp/fullscreen.rb +38 -0
  303. data/examples/legacy/not_checked/shoes3-tests/gapp/icon.rb +56 -0
  304. data/examples/legacy/not_checked/shoes3-tests/gapp/mon1.rb +46 -0
  305. data/examples/legacy/not_checked/shoes3-tests/gapp/settings1.rb +22 -0
  306. data/examples/legacy/not_checked/shoes3-tests/gapp/title1.rb +34 -0
  307. data/examples/legacy/not_checked/shoes3-tests/indian.m4a +0 -0
  308. data/examples/legacy/not_checked/shoes3-tests/menus/event.rb +33 -0
  309. data/examples/legacy/not_checked/shoes3-tests/menus/menu1.rb +8 -0
  310. data/examples/legacy/not_checked/shoes3-tests/menus/menu2.rb +25 -0
  311. data/examples/legacy/not_checked/shoes3-tests/menus/menu3.rb +103 -0
  312. data/examples/legacy/not_checked/shoes3-tests/menus/menu4.rb +41 -0
  313. data/examples/legacy/not_checked/shoes3-tests/menus/tests.txt +42 -0
  314. data/examples/legacy/not_checked/shoes3-tests/opacity.rb +13 -0
  315. data/examples/legacy/not_checked/shoes3-tests/plot/^IRX.R +5219 -0
  316. data/examples/legacy/not_checked/shoes3-tests/plot/^SPX +5219 -0
  317. data/examples/legacy/not_checked/shoes3-tests/plot/cstest.rb +51 -0
  318. data/examples/legacy/not_checked/shoes3-tests/plot/gr1.rb +73 -0
  319. data/examples/legacy/not_checked/shoes3-tests/plot/gr2.rb +40 -0
  320. data/examples/legacy/not_checked/shoes3-tests/plot/gr3.rb +47 -0
  321. data/examples/legacy/not_checked/shoes3-tests/plot/gr4.rb +35 -0
  322. data/examples/legacy/not_checked/shoes3-tests/plot/gr5.rb +31 -0
  323. data/examples/legacy/not_checked/shoes3-tests/plot/gr6.rb +35 -0
  324. data/examples/legacy/not_checked/shoes3-tests/plot/gr7.rb +37 -0
  325. data/examples/legacy/not_checked/shoes3-tests/plot/grcsv.rb +219 -0
  326. data/examples/legacy/not_checked/shoes3-tests/plot/manual.rb +40 -0
  327. data/examples/legacy/not_checked/shoes3-tests/progress/progress.rb +29 -0
  328. data/examples/legacy/not_checked/shoes3-tests/radio/clear.rb +20 -0
  329. data/examples/legacy/not_checked/shoes3-tests/radio/group.rb +18 -0
  330. data/examples/legacy/not_checked/shoes3-tests/radio/multiple.rb +32 -0
  331. data/examples/legacy/not_checked/shoes3-tests/radio/nogroup.rb +9 -0
  332. data/examples/legacy/not_checked/shoes3-tests/simpletest.svg +14 -0
  333. data/examples/legacy/not_checked/shoes3-tests/spinner.rb +15 -0
  334. data/examples/legacy/not_checked/shoes3-tests/svg.rb +208 -0
  335. data/examples/legacy/not_checked/shoes3-tests/switch/switch.rb +28 -0
  336. data/examples/legacy/not_checked/shoes3-tests/systray/back.rb +20 -0
  337. data/examples/legacy/not_checked/shoes3-tests/systray/note.rb +17 -0
  338. data/examples/legacy/not_checked/shoes3-tests/terminal/cursor.rb +27 -0
  339. data/examples/legacy/not_checked/shoes3-tests/terminal/ed.rb +65 -0
  340. data/examples/legacy/not_checked/shoes3-tests/terminal/el.rb +50 -0
  341. data/examples/legacy/not_checked/shoes3-tests/terminal/logattr.rb +31 -0
  342. data/examples/legacy/not_checked/shoes3-tests/tests_color.rb +138 -0
  343. data/examples/legacy/not_checked/shoes3-tests/tests_svg.rb +228 -0
  344. data/examples/legacy/not_checked/shoes3-tests/tests_video_vlc.rb +186 -0
  345. data/examples/legacy/not_checked/shoes3-tests/tooltips.rb +20 -0
  346. data/examples/legacy/not_checked/shoes3-tests/video_vlc.rb +242 -0
  347. data/examples/legacy/not_checked/shoes3-tests/wheel/wheel1.rb +21 -0
  348. data/examples/legacy/not_checked/simple/accordion.rb +81 -0
  349. data/examples/legacy/not_checked/simple/anim-shapes.rb +17 -0
  350. data/examples/legacy/not_checked/simple/anim-text.rb +13 -0
  351. data/examples/legacy/not_checked/simple/arc.rb +23 -0
  352. data/examples/legacy/not_checked/simple/bounce.rb +24 -0
  353. data/examples/legacy/not_checked/simple/chipmunk.rb +26 -0
  354. data/examples/legacy/not_checked/simple/control-sizes.rb +24 -0
  355. data/examples/legacy/not_checked/simple/curve-control-points.rb +24 -0
  356. data/examples/legacy/not_checked/simple/curve.rb +26 -0
  357. data/examples/legacy/not_checked/simple/dialogs.rb +29 -0
  358. data/examples/legacy/not_checked/simple/downloader.rb +40 -0
  359. data/examples/legacy/not_checked/simple/downloader1.rb +31 -0
  360. data/examples/legacy/not_checked/simple/draw.rb +13 -0
  361. data/examples/legacy/not_checked/simple/editor.rb +28 -0
  362. data/examples/legacy/not_checked/simple/form.rb +30 -0
  363. data/examples/legacy/not_checked/simple/image.rb +21 -0
  364. data/examples/legacy/not_checked/simple/info.rb +78 -0
  365. data/examples/legacy/not_checked/simple/mask.rb +21 -0
  366. data/examples/legacy/not_checked/simple/mask2.rb +27 -0
  367. data/examples/legacy/not_checked/simple/menu.rb +31 -0
  368. data/examples/legacy/not_checked/simple/menu1.rb +35 -0
  369. data/examples/legacy/not_checked/simple/slide.rb +45 -0
  370. data/examples/legacy/not_checked/simple/sphere.rb +28 -0
  371. data/examples/legacy/not_checked/superleg.rb +244 -0
  372. data/examples/legacy/working/shoes-contrib/basic/a-poem.rb +24 -0
  373. data/examples/legacy/working/shoes-contrib/basic/basic-blocks-instances.rb +7 -0
  374. data/examples/legacy/working/shoes-contrib/basic/basic-blocks.rb +7 -0
  375. data/examples/legacy/working/shoes-contrib/basic/basic-slot.rb +8 -0
  376. data/examples/legacy/working/shoes-contrib/basic/intro.rb +20 -0
  377. data/examples/legacy/working/shoes-contrib/basic/two-column.rb +12 -0
  378. data/examples/legacy/working/shoes-contrib/elements/edit_box.rb +6 -0
  379. data/examples/legacy/working/shoes-contrib/kernel/alert.rb +3 -0
  380. data/examples/legacy/working/simple/calc.rb +71 -0
  381. data/examples/legacy/working/simple/sqlite3.rb +27 -0
  382. data/examples/legacy/working/simple/timer.rb +13 -0
  383. data/examples/line.rb +5 -0
  384. data/examples/link.rb +20 -0
  385. data/examples/list_box.rb +8 -0
  386. data/examples/para/collection_of_arguments.rb +9 -0
  387. data/examples/para/hello_world.rb +5 -0
  388. data/examples/para/hide_and_show.rb +9 -0
  389. data/examples/para/rainbow.rb +11 -0
  390. data/examples/para/rainbow_2.rb +11 -0
  391. data/examples/para/sizes.rb +11 -0
  392. data/examples/para/sizes_2.rb +12 -0
  393. data/examples/para/strong.rb +3 -0
  394. data/examples/para_text_widgets.rb +4 -0
  395. data/examples/pirate.png +0 -0
  396. data/examples/raw_flow.rb +11 -0
  397. data/examples/ruby_racer.rb +52 -0
  398. data/examples/shapes/arc.rb +8 -0
  399. data/examples/shapes/shapes.rb +8 -0
  400. data/examples/shapes/shapes_fill.rb +10 -0
  401. data/examples/shapes/star.rb +5 -0
  402. data/examples/shoes_school.rb +68 -0
  403. data/examples/shoes_splorer.rb +150 -0
  404. data/examples/simple_slides.rb +73 -0
  405. data/examples/skip_ci/parrot.rb +22 -0
  406. data/examples/skip_ci/say.rb +20 -0
  407. data/examples/sleepless.rb +26 -0
  408. data/examples/slots.rb +2 -4
  409. data/examples/spacing.rb +18 -0
  410. data/examples/span.rb +6 -0
  411. data/examples/stack/background.rb +35 -0
  412. data/examples/stack/border.rb +11 -0
  413. data/examples/stack/gradients.rb +6 -0
  414. data/examples/stack/raw_stack.rb +8 -0
  415. data/examples/stack/stack.rb +27 -0
  416. data/examples/text_change.rb +4 -0
  417. data/examples/text_sizes.rb +10 -0
  418. data/examples/timmy.rb +109 -0
  419. data/examples/title_and_resize.rb +3 -0
  420. data/exe/scarpe +108 -0
  421. data/lib/constants.rb +5 -0
  422. data/lib/scarpe/alert.rb +19 -0
  423. data/lib/scarpe/app.rb +78 -0
  424. data/lib/scarpe/arc.rb +49 -0
  425. data/lib/scarpe/background.rb +14 -0
  426. data/lib/scarpe/border.rb +16 -0
  427. data/lib/scarpe/button.rb +26 -18
  428. data/lib/scarpe/colors.rb +215 -0
  429. data/lib/scarpe/display_service.rb +189 -0
  430. data/lib/scarpe/document_root.rb +20 -0
  431. data/lib/scarpe/edit_box.rb +24 -0
  432. data/lib/scarpe/edit_line.rb +16 -30
  433. data/lib/scarpe/fill.rb +23 -0
  434. data/lib/scarpe/flow.rb +18 -15
  435. data/lib/scarpe/glibui/README.md +34 -0
  436. data/lib/scarpe/glibui/alert.rb +65 -0
  437. data/lib/scarpe/glibui/app.rb +27 -0
  438. data/lib/scarpe/glibui/background.rb +18 -0
  439. data/lib/scarpe/glibui/border.rb +22 -0
  440. data/lib/scarpe/glibui/button.rb +38 -0
  441. data/lib/scarpe/glibui/dimensions.rb +22 -0
  442. data/lib/scarpe/glibui/document_root.rb +33 -0
  443. data/lib/scarpe/glibui/edit_box.rb +44 -0
  444. data/lib/scarpe/glibui/edit_line.rb +43 -0
  445. data/lib/scarpe/glibui/flow.rb +33 -0
  446. data/lib/scarpe/glibui/html.rb +77 -0
  447. data/lib/scarpe/glibui/image.rb +36 -0
  448. data/lib/scarpe/glibui/link.rb +29 -0
  449. data/lib/scarpe/glibui/local_display.rb +62 -0
  450. data/lib/scarpe/glibui/para.rb +84 -0
  451. data/lib/scarpe/glibui/spacing.rb +41 -0
  452. data/lib/scarpe/glibui/stack.rb +33 -0
  453. data/lib/scarpe/glibui/text_widget.rb +30 -0
  454. data/lib/scarpe/glibui/widget.rb +81 -0
  455. data/lib/scarpe/glibui.rb +29 -0
  456. data/lib/scarpe/image.rb +28 -9
  457. data/lib/scarpe/libui/alert.rb +9 -0
  458. data/lib/scarpe/libui/button.rb +18 -0
  459. data/lib/scarpe/libui/colors.rb +157 -0
  460. data/lib/scarpe/libui/core.rb +66 -0
  461. data/lib/scarpe/libui/flow.rb +16 -0
  462. data/lib/scarpe/libui/libui.rb +45 -0
  463. data/lib/scarpe/libui/notepad.md +26 -0
  464. data/lib/scarpe/libui/para.rb +154 -0
  465. data/lib/scarpe/libui/stack.rb +34 -0
  466. data/lib/scarpe/line.rb +25 -0
  467. data/lib/scarpe/link.rb +25 -0
  468. data/lib/scarpe/list_box.rb +25 -0
  469. data/lib/scarpe/logger.rb +155 -0
  470. data/lib/scarpe/para.rb +84 -12
  471. data/lib/scarpe/promises.rb +387 -0
  472. data/lib/scarpe/shape.rb +19 -0
  473. data/lib/scarpe/spacing.rb +9 -0
  474. data/lib/scarpe/span.rb +26 -0
  475. data/lib/scarpe/stack.rb +66 -12
  476. data/lib/scarpe/star.rb +47 -0
  477. data/lib/scarpe/text_widget.rb +42 -0
  478. data/lib/scarpe/unit_test_helpers.rb +163 -0
  479. data/lib/scarpe/version.rb +2 -2
  480. data/lib/scarpe/widget.rb +198 -0
  481. data/lib/scarpe/widgets.rb +30 -0
  482. data/lib/scarpe/wv/alert.rb +65 -0
  483. data/lib/scarpe/wv/app.rb +85 -0
  484. data/lib/scarpe/wv/arc.rb +57 -0
  485. data/lib/scarpe/wv/background.rb +18 -0
  486. data/lib/scarpe/wv/border.rb +22 -0
  487. data/lib/scarpe/wv/button.rb +50 -0
  488. data/lib/scarpe/wv/control_interface.rb +153 -0
  489. data/lib/scarpe/wv/control_interface_test.rb +253 -0
  490. data/lib/scarpe/wv/dimensions.rb +22 -0
  491. data/lib/scarpe/wv/document_root.rb +50 -0
  492. data/lib/scarpe/wv/edit_box.rb +44 -0
  493. data/lib/scarpe/wv/edit_line.rb +43 -0
  494. data/lib/scarpe/wv/fill.rb +30 -0
  495. data/lib/scarpe/wv/flow.rb +32 -0
  496. data/lib/scarpe/wv/html.rb +107 -0
  497. data/lib/scarpe/wv/image.rb +36 -0
  498. data/lib/scarpe/wv/line.rb +38 -0
  499. data/lib/scarpe/wv/link.rb +29 -0
  500. data/lib/scarpe/wv/list_box.rb +50 -0
  501. data/lib/scarpe/wv/para.rb +90 -0
  502. data/lib/scarpe/wv/shape.rb +34 -0
  503. data/lib/scarpe/wv/shape_helper.rb +44 -0
  504. data/lib/scarpe/wv/spacing.rb +41 -0
  505. data/lib/scarpe/wv/span.rb +66 -0
  506. data/lib/scarpe/wv/stack.rb +42 -0
  507. data/lib/scarpe/wv/star.rb +64 -0
  508. data/lib/scarpe/wv/text_widget.rb +30 -0
  509. data/lib/scarpe/wv/web_wrangler.rb +679 -0
  510. data/lib/scarpe/wv/webview_local_display.rb +72 -0
  511. data/lib/scarpe/wv/webview_relay_display.rb +185 -0
  512. data/lib/scarpe/wv/widget.rb +181 -0
  513. data/lib/scarpe/wv/wv_display_worker.rb +65 -0
  514. data/lib/scarpe/wv.rb +39 -0
  515. data/lib/scarpe/wv_local.rb +6 -0
  516. data/lib/scarpe/wv_relay.rb +6 -0
  517. data/lib/scarpe.rb +35 -27
  518. data/logger/debug_web_wrangler.json +4 -0
  519. data/logger/scarpe_wv_test.json +4 -0
  520. data/scarpegen.rb +193 -0
  521. data/sig/scarpe.rbs +1 -1
  522. data/templates/basic_class_template.erb +38 -0
  523. data/templates/class_template_with_event_bind.erb +27 -0
  524. data/templates/class_template_with_shapes.erb +43 -0
  525. data/templates/example_template.erb +3 -0
  526. data/templates/module_template.erb +12 -0
  527. data/templates/webview_template.erb +30 -0
  528. metadata +586 -9
  529. data/lib/scarpe/container.rb +0 -10
  530. data/lib/scarpe/internal_app.rb +0 -46
@@ -0,0 +1,52 @@
1
+ require "benchmark"
2
+ require "stringio"
3
+
4
+ Shoes.app(title: "Ruby Racer", debug: true) do
5
+ racer1 = nil
6
+ racer2 = nil
7
+
8
+ flow do
9
+ stack width: 0.45, margin: 5 do
10
+ para "Racer 1", size: :caption
11
+ racer1 = edit_box(width: "100%", height: 100) do
12
+ <<~RUBY
13
+ for i in 1..10
14
+ a = "1"
15
+ end
16
+ RUBY
17
+ end
18
+ end
19
+ stack width: 0.45, margin: 5 do
20
+ para "Racer 2", size: :caption
21
+ racer2 = edit_box(width: "100%", height: 100) do
22
+ <<~RUBY
23
+ 10.times do
24
+ a = "1"
25
+ end
26
+ RUBY
27
+ end
28
+ end
29
+ end
30
+
31
+ stack margin: 10 do
32
+ @push = button "Race!"
33
+ @results = para ""
34
+ @push.click {
35
+ @results.replace "And they're off!"
36
+ run = run_benchmark(racer1.text, racer2.text)
37
+ @results.replace "<pre>Results:<br/>#{run}</pre>"
38
+ }
39
+
40
+ def run_benchmark(code1, code2)
41
+ current_stdout = $stdout
42
+ $stdout = StringIO.new
43
+ Benchmark.bmbm do |x|
44
+ x.report("Code 1") { eval(code1) }
45
+ x.report("Code 2") { eval(code2) }
46
+ end
47
+ $stdout.string.gsub("\n", "<br />")
48
+ ensure
49
+ $stdout = current_stdout
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,8 @@
1
+ Shoes.app(height:600) do
2
+ arc 400, 0, 120, 100, 175, 175
3
+ arc 50, 50, 120, 100, 60, 225
4
+ star 230, 100, 6, 50, 25
5
+
6
+ arc 550, 50, 200, 100, Math::PI/2, 3*Math::PI/2
7
+ arc 300, 50, 200, 100, Math::PI/4, Math::PI
8
+ end
@@ -0,0 +1,8 @@
1
+ Shoes.app do
2
+ shape do
3
+ move_to(90, 55)
4
+ line_to(400,10)
5
+ line_to(400,90)
6
+
7
+ end
8
+ end
@@ -0,0 +1,10 @@
1
+ Shoes.app do
2
+ shape do
3
+ fill "blue"
4
+ fill "green"
5
+ line 0,0, 100, 100
6
+ fill "red"
7
+ star 23, 0, 6, 50, 25
8
+ end
9
+ end
10
+
@@ -0,0 +1,5 @@
1
+ Shoes.app do
2
+ star 230, 100, 6, 50, 25
3
+
4
+ end
5
+
@@ -0,0 +1,68 @@
1
+ Shoes.app(title: "Shoes School", height: 700, width: 1000) do
2
+ CHAPTERS = [
3
+ [
4
+ %(
5
+ Shoes.app do
6
+ para "Hello World"
7
+ end
8
+ ),
9
+ %(
10
+ Welcome! To the wide, wild, wonderful world of Shoes. I am your Shoes School instructor, Professor Flopsicle. Shoes lets you
11
+ write nifty desktop apps. In pure Ruby! Don't believe me? Here's one right here!
12
+ Click "run" to run it. You can even play with the code a bit if you want!
13
+
14
+ When you are done, proceed to your next lecture by clicking "Next" below me!
15
+ )
16
+ ],
17
+ [
18
+ %(
19
+ Shoes.app do
20
+ @push = button "Push me"
21
+ @push.click {
22
+ alert "Aha! Click!"
23
+ }
24
+ end
25
+ ),
26
+ %(
27
+ Oh wow, you made it to the second lesson! Umm, well this is _embarrassing_. I never
28
+ thought you would get this far! Give me a bit and we'll have something really nice
29
+ whipped up for you. I swear!
30
+ )
31
+ ]
32
+ ]
33
+
34
+ current_chapter = 0
35
+ stack do
36
+ banner "Shoes School!"
37
+ end
38
+ stack do
39
+ flow do
40
+ IDE = edit_box(height: 300, width: "100%") do
41
+ CHAPTERS[current_chapter][0]
42
+ end
43
+ end
44
+ flow do
45
+ LECTURE = para CHAPTERS[current_chapter][1], size: 30
46
+ end
47
+ flow do
48
+ stack do
49
+ @run = button "Run 🏃", width: 200, height: 50#, top: 109, left: 132
50
+ @run.click {
51
+ puts "I got clicked!"
52
+ # System code to kick this off
53
+ # we'll have a loading splash page on first fireup to run bin setup
54
+ }
55
+ end
56
+ stack do
57
+ @next = button "Next ✅", width: 200, height: 50#, top: 109, left: 132
58
+ @next.click {
59
+ current_chapter += 1
60
+ # not working yet
61
+ # IDE.text = CHAPTERS[current_chapter][0]
62
+ # yeah, I dunno, ivars and local vars giving me trouble. annoying!
63
+ LECTURE.replace(CHAPTERS[current_chapter][1])
64
+ }
65
+ end
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,150 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # It's cool to be able to visualise the Shoes API -- where are various methods available?
4
+
5
+ # Future plan: this would be a *great* opportunity for a Shoes::Widget so that we could
6
+ # have a "show all the methods by category" thing and put it inside various other widgets
7
+ # to see how they all react.
8
+
9
+ # What methods should Shoes have? You can do worse than to check Shoes4 Shoes-core:
10
+ # https://github.com/shoes/shoes4/tree/main/shoes-core/lib/shoes/dsl
11
+ SHOES_API_CATEGORIES = {
12
+ animate: {
13
+ animate: {},
14
+ every: {},
15
+ timer: {},
16
+ },
17
+
18
+ art: {
19
+ arrow: {},
20
+ arc: {},
21
+ line: {},
22
+ oval: {},
23
+ rect: {},
24
+ star: {},
25
+ shape: {},
26
+ mask: {},
27
+ },
28
+
29
+ element: {
30
+ border: {},
31
+ background: {},
32
+ edit_line: {},
33
+ edit_box: {},
34
+ progress: {},
35
+ check: {},
36
+ radio: {},
37
+ list_box: {},
38
+ flow: {},
39
+ stack: {},
40
+ button: {},
41
+ },
42
+
43
+ interaction: {
44
+ mouse: {},
45
+ motion: {},
46
+ resize: {},
47
+ hover: {},
48
+ leave: {},
49
+ keypress: {},
50
+ keyrelease: {},
51
+ append: {},
52
+ visit: {},
53
+ scroll_top: {},
54
+ #"scroll_top=": {},
55
+ clipboard: {},
56
+ #"clipboard=": {},
57
+ download: {},
58
+ gutter: {},
59
+ },
60
+
61
+ media: {
62
+ image: {},
63
+ video: {},
64
+ sound: {},
65
+ },
66
+
67
+ setup: {
68
+ # This is deprecated in recent Shoes, but was once how to install gems
69
+ setup: {},
70
+ },
71
+
72
+ style: {
73
+ style: {},
74
+ fill: {},
75
+ stroke: {},
76
+ cap: {},
77
+ rotate: {},
78
+ strokewidth: {},
79
+ transform: {},
80
+ translate: {},
81
+ nostroke: {},
82
+ nofill: {},
83
+ },
84
+
85
+ text: {
86
+ # Text widgets and similar
87
+ banner: {},
88
+ title: {},
89
+ subtitle: {},
90
+ tagline: {},
91
+ caption: {},
92
+ para: {},
93
+ inscription: {},
94
+
95
+ code: {},
96
+ del: {},
97
+ em: {},
98
+ ins: {},
99
+ sub: {},
100
+ sup: {},
101
+ strong: {},
102
+
103
+ fg: {},
104
+ bg: {},
105
+ link: {},
106
+ span: {},
107
+ },
108
+ }
109
+
110
+ def shoes_api_reactivity(instance)
111
+ reactivity = {}
112
+
113
+ SHOES_API_CATEGORIES.each do |category_name, category|
114
+ cat_data = category.map do |method_name, data| # For now ignore data
115
+ [method_name, instance.respond_to?(method_name)]
116
+ end
117
+
118
+ if cat_data.none? { |_name, reacts| reacts }
119
+ reactivity[category_name] = false
120
+ elsif cat_data.all? { |_name, reacts| reacts }
121
+ reactivity[category_name] = true
122
+ else
123
+ out = {}
124
+ cat_data.each do |name, reacts|
125
+ out[name] = reacts
126
+ end
127
+ reactivity[category_name] = out
128
+ end
129
+ end
130
+
131
+ reactivity
132
+ end
133
+
134
+ Shoes.app(title: "Shoes-splorer!") do
135
+ para "What Shoes methods are available?"
136
+
137
+ shoes_api_reactivity(self).flat_map do |category, cat_reacts|
138
+ if cat_reacts.respond_to?(:each)
139
+ para *(cat_reacts.flat_map do |name, reacts|
140
+ [reacts ? "o" : "x", code(name), " "]
141
+ end), stroke: :orange
142
+ elsif cat_reacts
143
+ # Whole category is true
144
+ para strong(" #{category}[Woot!] "), stroke: :green
145
+ else
146
+ # Whole category is false
147
+ para em(" xxx"), category.to_s, em("xxx "), stroke: :red
148
+ end
149
+ end
150
+ end
@@ -0,0 +1,73 @@
1
+
2
+ Shoes.app(title: 'Shoes Slides', width: 800, height: 600) do
3
+ $slides = [
4
+ {
5
+ title: 'Welcome to Shoes!',
6
+ content: 'Ah, yeah, Shoes!
7
+ Who said nobody knows Shoes? Well, let me introduce you to a feline expert in the art of Ruby Desktop GUI Libs.
8
+
9
+ Meet Professor Whiskers the renowned programmer cat! Not only does he know Shoes, but he\'s also a master of all things Ruby and desktop GUI!
10
+
11
+ if you\'re ready to learn Ruby Desktop GUI Libs with a touch of feline finesse, come join us on this whimsical adventure! Professor Whiskers guarantees a purr-fectly entertaining and enlightening experience, where every step forward is as delightful as a cat chasing a laser pointer.
12
+
13
+ Remember, in the world of programming, there\'s always room for humor, and Professor Whiskers is here to remind us that even the most serious tasks can be approached with a playful attitude. So, put on your coding slippers and let this extraordinary cat guide you through the marvelous world of Shoes Desktop GUI Libs!
14
+
15
+ Meow! join the discord server for more meows!
16
+ ',
17
+ image: "https://img.freepik.com/premium-photo/funny-smart-cat-professor-with-glasses-illustration-generative-ai_845977-709.jpg?w=700&h=300"
18
+ },
19
+ {
20
+ title: 'Behold the teachings of Professor Whiskers! here\'s a shoes for you!',
21
+ content: 'Meow!',
22
+ image: "http://shoesrb.com/manual/static/shoes-icon.png"
23
+ },
24
+ {
25
+ title: 'Path to englightenment',
26
+ content: 'Meowww meow meow meow meow meow meow meow meow meow meow meow meow meow meow meow meow!',
27
+ }
28
+ ]
29
+
30
+ stack do
31
+ $slides.each_with_index do |slide, index|
32
+ border black, strokewidth: 2 do
33
+ flow(margin: 10) do
34
+ para strong("Slide #{index + 1}: #{slide[:title]}"), margin_bottom: 10
35
+ para slide[:content]
36
+ image slide[:image]
37
+ end
38
+ end
39
+ end
40
+ end
41
+
42
+ button 'Previous Slide' do
43
+ prev_slide = self.slide_index - 1
44
+ prev_slide = $slides.length - 1 if prev_slide < 0
45
+ self.slide_index = prev_slide
46
+ end
47
+
48
+ button 'Next Slide' do
49
+ next_slide = self.slide_index + 1
50
+ next_slide = 0 if next_slide >= $slides.length
51
+ self.slide_index = next_slide
52
+ end
53
+
54
+ def slide_index
55
+ @slide_index ||= 0
56
+ end
57
+
58
+ def slide_index=(value)
59
+ @slide_index = value
60
+ update_slide
61
+ end
62
+
63
+ def update_slide
64
+ current_slide = $slides[self.slide_index]
65
+ @title.replace "Slide #{self.slide_index + 1}: #{current_slide[:title]}"
66
+ @content.replace current_slide[:content]
67
+ @image.replace current_slide[:image]
68
+ end
69
+
70
+ @title = para strong("Slide 1: #{$slides[0][:title]}"), margin_bottom: 10
71
+ @content = para $slides[0][:content]
72
+ @image = image($slides[0][:image])
73
+ end
@@ -0,0 +1,22 @@
1
+ # This example is skipped on CI because it makes system calls
2
+
3
+ Shoes.app do
4
+ para "What do you want me to say?"
5
+ @phrase = edit_line("Soon it was a comet and, soon, a blazing monstrosity.", width: "100%")
6
+
7
+ all_voices = `say -v '?'`.lines.map(&:split).map(&:first).uniq.compact
8
+ @selected_voice = all_voices.first
9
+ @voice = para "🗣 #{@selected_voice}"
10
+
11
+ all_voices.each do |voice|
12
+ button voice do
13
+ @voice.replace "🗣 #{voice}"
14
+ @selected_voice = voice
15
+ end
16
+ end
17
+
18
+ @push = button "📣"
19
+ @push.click {
20
+ `say -v '#{@selected_voice}' #{@phrase.text}`
21
+ }
22
+ end
@@ -0,0 +1,20 @@
1
+ Shoes.app do
2
+ para "What do you want me to say?"
3
+ @phrase = edit_line("Soon it was a comet and, soon, a blazing monstrosity.", width: "100%")
4
+
5
+ all_voices = `say -v '?'`.lines.map(&:split).map(&:first).uniq.compact
6
+ @selected_voice = all_voices.first
7
+ @voice = para "🗣 #{@selected_voice}"
8
+
9
+ all_voices.each do |voice|
10
+ button voice do
11
+ @voice.replace "🗣 #{voice}"
12
+ @selected_voice = voice
13
+ end
14
+ end
15
+
16
+ @push = button "📣"
17
+ @push.click {
18
+ `say -v '#{@selected_voice}' #{@phrase.text}`
19
+ }
20
+ end
@@ -0,0 +1,26 @@
1
+ Shoes.app title: "Sleepless", width: 80, height: 120 do
2
+ @push = button "☕️"
3
+ @note = para "😪"
4
+ @push.click {
5
+ if @pid.nil?
6
+ if RUBY_PLATFORM =~ /darwin/
7
+ @pid = spawn("caffeinate -d")
8
+ elsif RUBY_PLATFORM =~ /linux/
9
+ @pid = spawn("xset s off -dpms")
10
+ elsif RUBY_PLATFORM =~ /win32|win64|\.NET/
11
+ @pid = spawn("powercfg -change -monitor-timeout-ac 0")
12
+ end
13
+ @note.replace "😳"
14
+ else
15
+ if RUBY_PLATFORM =~ /darwin/
16
+ system("kill #{@pid}")
17
+ elsif RUBY_PLATFORM =~ /linux/
18
+ system("kill -9 #{@pid}")
19
+ elsif RUBY_PLATFORM =~ /win32|win64|\.NET/
20
+ system("taskkill /pid #{@pid} /f")
21
+ end
22
+ @pid = nil
23
+ @note.replace "😪"
24
+ end
25
+ }
26
+ end
data/examples/slots.rb CHANGED
@@ -1,6 +1,4 @@
1
- require "scarpe"
2
-
3
- Scarpe.app do
1
+ Shoes.app do
4
2
  flow do
5
3
  button "Click"
6
4
  button "Clickaty"
@@ -9,4 +7,4 @@ Scarpe.app do
9
7
  button "Boop"
10
8
  button "Bip"
11
9
  end
12
- end
10
+ end
@@ -0,0 +1,18 @@
1
+ Shoes.app(title: "Spacing") do
2
+ stack margin: 50 do
3
+ background "purple"
4
+ para "with 50px margin", stroke: "white"
5
+ end
6
+ stack margin: { left: 10, right: 10, bottom: 20 } do
7
+ background "red"
8
+ para "with 10px margin-left and margin-right, and 20px margin-bottom", stroke: "white"
9
+ end
10
+ stack margin: [15, 15, nil, 40] do
11
+ background "blue"
12
+ para "with 15px margin-left and margin-right, and 40px margin-bottom", stroke: "white"
13
+ end
14
+ stack margin_left: 20, margin_right: 30, margin_bottom: 10 do
15
+ background "green"
16
+ para "with 20px margin-left, 30px margin-right, and 10px margin-bottom", stroke: "white"
17
+ end
18
+ end
data/examples/span.rb ADDED
@@ -0,0 +1,6 @@
1
+ Shoes.app :height => 500, :width => 500 do
2
+ stack :margin => 10 do
3
+ para span("TEXT EDITOR", :stroke => "blue", :fill => "green"), " * USE ALT-Q TO QUIT", :stroke => "red"
4
+ end
5
+ span ("text")
6
+ end
@@ -0,0 +1,35 @@
1
+ Shoes.app do
2
+ stack width: 0.33 do
3
+ background "purple"
4
+ button "a button"
5
+ end
6
+ stack width: 0.33 do
7
+ background "red".."green"
8
+ para "Red to green gradient"
9
+ end
10
+ stack width: 0.33 do
11
+ background "purple"
12
+ button "a button"
13
+ flow do
14
+ background "purple"
15
+ button "a button"
16
+ stack width: 0.33 do
17
+ background "purple"
18
+ button "a button"
19
+ button "a button"
20
+ end
21
+ stack width: 0.34 do
22
+ background "purple"
23
+ button "a button"
24
+ end
25
+ end
26
+ flow do
27
+ background "purple"
28
+ button "a button"
29
+ end
30
+ flow do
31
+ background "purple"
32
+ button "a button"
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,11 @@
1
+ Shoes.app do
2
+ stack do
3
+ border "red", strokewidth: 5, curve: 12
4
+ para "Curved Red"
5
+ end
6
+
7
+ stack do
8
+ border "#DDD".."#AAA", strokewidth: 10
9
+ para "Gradient!"
10
+ end
11
+ end
@@ -0,0 +1,6 @@
1
+ Shoes.app do
2
+ stack height: 200, width: 200 do
3
+ border "#090979".."#ac033d", strokewidth: 15
4
+ background "#ac033d".."#090979"
5
+ end
6
+ end
@@ -0,0 +1,8 @@
1
+ Shoes.app do
2
+ stack do
3
+ para "Hello World"
4
+ end
5
+ stack do
6
+ para "Fish"
7
+ end
8
+ end
@@ -0,0 +1,27 @@
1
+ Shoes.app do
2
+ stack margin: 50 do
3
+ button "with 50px margin"
4
+ end
5
+
6
+ stack width: 0.5 do
7
+ button "50% width"
8
+ end
9
+
10
+ stack width: 80, height: 100 do
11
+ para "This para is in a stack that's 80px wide and 100px high"
12
+ end
13
+
14
+ stack width: -80 do
15
+ button "100% - 80px width"
16
+ end
17
+
18
+ flow do
19
+ stack width: 0.33 do
20
+ button "inside flow left 1/3"
21
+ end
22
+
23
+ stack width: 0.67 do
24
+ button "inside flow right 2/3"
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,4 @@
1
+ Shoes.app do
2
+ p = para "Hello"
3
+ p.replace "Goodbye"
4
+ end
@@ -0,0 +1,10 @@
1
+ Shoes.app(title: "Text Sizes") do
2
+ banner "Banner"
3
+ title "Title"
4
+ subtitle "Subtitle"
5
+ tagline "Tagline"
6
+ caption "Caption"
7
+ para "Para"
8
+ inscription "Inscription"
9
+ ins "Inscription via ins"
10
+ end