lacci 0.2.1

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 (559) hide show
  1. checksums.yaml +7 -0
  2. data/.rubocop.yml +85 -0
  3. data/.ruby-version +1 -0
  4. data/.vscode/extensions.json +5 -0
  5. data/.yardopts +12 -0
  6. data/CHANGELOG.md +19 -0
  7. data/CODE_OF_CONDUCT.md +84 -0
  8. data/CONTRIBUTING.md +20 -0
  9. data/Gemfile +24 -0
  10. data/LICENSE.txt +21 -0
  11. data/README.md +178 -0
  12. data/Rakefile +15 -0
  13. data/bin/console +15 -0
  14. data/bin/setup +8 -0
  15. data/dev.yml +7 -0
  16. data/docs/static/PKGBUILD +47 -0
  17. data/docs/static/Shoes.icns +0 -0
  18. data/docs/static/avatar.png +0 -0
  19. data/docs/static/code_highlighter.js +188 -0
  20. data/docs/static/code_highlighter_ruby.js +26 -0
  21. data/docs/static/icon-debug.png +0 -0
  22. data/docs/static/icon-error.png +0 -0
  23. data/docs/static/icon-info.png +0 -0
  24. data/docs/static/icon-warn.png +0 -0
  25. data/docs/static/listbox_button1.png +0 -0
  26. data/docs/static/listbox_button2.png +0 -0
  27. data/docs/static/man-app.png +0 -0
  28. data/docs/static/man-builds.png +0 -0
  29. data/docs/static/man-builds1.png +0 -0
  30. data/docs/static/man-editor-notepad.png +0 -0
  31. data/docs/static/man-editor-osx.png +0 -0
  32. data/docs/static/man-ele-background.png +0 -0
  33. data/docs/static/man-ele-border.png +0 -0
  34. data/docs/static/man-ele-button.png +0 -0
  35. data/docs/static/man-ele-check.png +0 -0
  36. data/docs/static/man-ele-editbox.png +0 -0
  37. data/docs/static/man-ele-editline.png +0 -0
  38. data/docs/static/man-ele-image.png +0 -0
  39. data/docs/static/man-ele-listbox.png +0 -0
  40. data/docs/static/man-ele-progress.png +0 -0
  41. data/docs/static/man-ele-radio.png +0 -0
  42. data/docs/static/man-ele-shape.png +0 -0
  43. data/docs/static/man-ele-textblock.png +0 -0
  44. data/docs/static/man-ele-video.png +0 -0
  45. data/docs/static/man-intro-dmg.png +0 -0
  46. data/docs/static/man-intro-exe.png +0 -0
  47. data/docs/static/man-look-tiger.png +0 -0
  48. data/docs/static/man-look-ubuntu.png +0 -0
  49. data/docs/static/man-look-vista.png +0 -0
  50. data/docs/static/man-run-osx.png +0 -0
  51. data/docs/static/man-run-vista.png +0 -0
  52. data/docs/static/man-run-xp.png +0 -0
  53. data/docs/static/man-shot1.png +0 -0
  54. data/docs/static/manual-en.txt +3529 -0
  55. data/docs/static/manual-ja.txt +2829 -0
  56. data/docs/static/manual.css +171 -0
  57. data/docs/static/manual.md +3528 -0
  58. data/docs/static/menu-corner1.png +0 -0
  59. data/docs/static/menu-corner2.png +0 -0
  60. data/docs/static/menu-gray.png +0 -0
  61. data/docs/static/menu-left.png +0 -0
  62. data/docs/static/menu-right.png +0 -0
  63. data/docs/static/menu-top.png +0 -0
  64. data/docs/static/shoes-dmg.jpg +0 -0
  65. data/docs/static/shoes-icon-blue.png +0 -0
  66. data/docs/static/shoes-icon.png +0 -0
  67. data/docs/static/shoes-manual-apps.gif +0 -0
  68. data/docs/static/shoes_main_window.png +0 -0
  69. data/docs/static/stripe.png +0 -0
  70. data/docs/static/stubs/blank.exe +0 -0
  71. data/docs/static/stubs/blank.hfz +0 -0
  72. data/docs/static/stubs/blank.run +375 -0
  73. data/docs/static/stubs/cocoa-install +0 -0
  74. data/docs/static/stubs/sh-install +49 -0
  75. data/docs/static/stubs/shoes-stub-inject.exe +0 -0
  76. data/docs/static/stubs/shoes-stub.exe +0 -0
  77. data/docs/static/tutor-back.png +0 -0
  78. data/docs/yard/catscradle.md +44 -0
  79. data/docs/yard/template/default/fulldoc/html/setup.rb +13 -0
  80. data/docs/yard/template/default/layout/html/setup.rb +9 -0
  81. data/examples/backdround_with_image.rb +16 -0
  82. data/examples/bloopsaphone/working/1901_by_Aanand_Prasad.rb +478 -0
  83. data/examples/bloopsaphone/working/b1.rb +64 -0
  84. data/examples/bloopsaphone/working/b2.rb +36 -0
  85. data/examples/bloopsaphone/working/bloops_test.rb +41 -0
  86. data/examples/bloopsaphone/working/bloopsaphone_theme_song_by_why.rb +31 -0
  87. data/examples/bloopsaphone/working/feepogram.rb +67 -0
  88. data/examples/bloopsaphone/working/simpsons_theme_song_by_why.rb +14 -0
  89. data/examples/bloopsaphone/working/tune_cheeky_drat.rb +210 -0
  90. data/examples/button.rb +10 -0
  91. data/examples/button_alert.rb +6 -0
  92. data/examples/button_go_away.rb +6 -0
  93. data/examples/button_with_position_and_size.rb +7 -0
  94. data/examples/coffee.rb +14 -0
  95. data/examples/download.rb +5 -0
  96. data/examples/download_and_show_image.rb +28 -0
  97. data/examples/edit_box.rb +8 -0
  98. data/examples/edit_line.rb +8 -0
  99. data/examples/fill.rb +25 -0
  100. data/examples/flow.rb +11 -0
  101. data/examples/fonts.rb +6 -0
  102. data/examples/gen.rb +140 -0
  103. data/examples/get_headers.rb +10 -0
  104. data/examples/hello_world.rb +3 -0
  105. data/examples/highlander.rb +87 -0
  106. data/examples/image/clickable_image.rb +5 -0
  107. data/examples/image/image.rb +3 -0
  108. data/examples/image/image_size.rb +7 -0
  109. data/examples/image/image_with_position_and_size.rb +3 -0
  110. data/examples/info.rb +9 -0
  111. data/examples/legacy/not_checked/expert/colours.rb +105 -0
  112. data/examples/legacy/not_checked/expert/curve-animation.rb +31 -0
  113. data/examples/legacy/not_checked/expert/curve-control-point.rb +51 -0
  114. data/examples/legacy/not_checked/expert/custom-list-box.rb +53 -0
  115. data/examples/legacy/not_checked/expert/definr.rb +23 -0
  116. data/examples/legacy/not_checked/expert/funnies.rb +56 -0
  117. data/examples/legacy/not_checked/expert/minesweeper.rb +267 -0
  118. data/examples/legacy/not_checked/expert/othello.rb +318 -0
  119. data/examples/legacy/not_checked/expert/pong.rb +62 -0
  120. data/examples/legacy/not_checked/expert/tankspank.rb +385 -0
  121. data/examples/legacy/not_checked/expert/tooltips.rb +45 -0
  122. data/examples/legacy/not_checked/expert/url.rb +37 -0
  123. data/examples/legacy/not_checked/expert/video-player.rb +256 -0
  124. data/examples/legacy/not_checked/good/_why-stories.rb +44 -0
  125. data/examples/legacy/not_checked/good/_why-stories.yaml +387 -0
  126. data/examples/legacy/not_checked/good/arc.rb +37 -0
  127. data/examples/legacy/not_checked/good/cardflip.rb +141 -0
  128. data/examples/legacy/not_checked/good/clock.rb +51 -0
  129. data/examples/legacy/not_checked/good/console.rb +21 -0
  130. data/examples/legacy/not_checked/good/follow.rb +26 -0
  131. data/examples/legacy/not_checked/good/image-rotate.rb +14 -0
  132. data/examples/legacy/not_checked/good/paris.svg +7236 -0
  133. data/examples/legacy/not_checked/good/path-animation.rb +46 -0
  134. data/examples/legacy/not_checked/good/plots.rb +100 -0
  135. data/examples/legacy/not_checked/good/reminder.rb +174 -0
  136. data/examples/legacy/not_checked/good/svgview.rb +113 -0
  137. data/examples/legacy/not_checked/good/vjot.rb +56 -0
  138. data/examples/legacy/not_checked/shoes-contrib/.gitignore +2 -0
  139. data/examples/legacy/not_checked/shoes-contrib/README.md +34 -0
  140. data/examples/legacy/not_checked/shoes-contrib/animation/animate-ovals.rb +21 -0
  141. data/examples/legacy/not_checked/shoes-contrib/animation/flowers.rb +59 -0
  142. data/examples/legacy/not_checked/shoes-contrib/animation/happy-trails.rb +31 -0
  143. data/examples/legacy/not_checked/shoes-contrib/animation/mice-satellites.rb +27 -0
  144. data/examples/legacy/not_checked/shoes-contrib/animation/oval-motion.rb +12 -0
  145. data/examples/legacy/not_checked/shoes-contrib/animation/pink-bubbles.rb +34 -0
  146. data/examples/legacy/not_checked/shoes-contrib/animation/pulsate.rb +18 -0
  147. data/examples/legacy/not_checked/shoes-contrib/animation/rotating-star.rb +18 -0
  148. data/examples/legacy/not_checked/shoes-contrib/app/download-and-save.rb +11 -0
  149. data/examples/legacy/not_checked/shoes-contrib/app/download.rb +10 -0
  150. data/examples/legacy/not_checked/shoes-contrib/app/get-google.rb +11 -0
  151. data/examples/legacy/not_checked/shoes-contrib/app/mouse-detection.rb +7 -0
  152. data/examples/legacy/not_checked/shoes-contrib/app/resizeable-false.rb +6 -0
  153. data/examples/legacy/not_checked/shoes-contrib/art/bubble-bullseye.rb +23 -0
  154. data/examples/legacy/not_checked/shoes-contrib/art/faded.rb +17 -0
  155. data/examples/legacy/not_checked/shoes-contrib/art/fill-oval.rb +5 -0
  156. data/examples/legacy/not_checked/shoes-contrib/art/mask.rb +15 -0
  157. data/examples/legacy/not_checked/shoes-contrib/art/oval-gradient.rb +6 -0
  158. data/examples/legacy/not_checked/shoes-contrib/art/star-gradient.rb +4 -0
  159. data/examples/legacy/not_checked/shoes-contrib/basic/basic-edit-box.rb +8 -0
  160. data/examples/legacy/not_checked/shoes-contrib/basic/basic-new-window.rb +8 -0
  161. data/examples/legacy/not_checked/shoes-contrib/basic/basic-oval-image.rb +8 -0
  162. data/examples/legacy/not_checked/shoes-contrib/basic/basic-oval-shape.rb +8 -0
  163. data/examples/legacy/not_checked/shoes-contrib/basic/basic-oval.rb +6 -0
  164. data/examples/legacy/not_checked/shoes-contrib/basic/class-book.rb +43 -0
  165. data/examples/legacy/not_checked/shoes-contrib/basic/class-book.yaml +387 -0
  166. data/examples/legacy/not_checked/shoes-contrib/basic/clock.rb +6 -0
  167. data/examples/legacy/not_checked/shoes-contrib/basic/edit-stack +14 -0
  168. data/examples/legacy/not_checked/shoes-contrib/basic/gradient-shoes.rb +7 -0
  169. data/examples/legacy/not_checked/shoes-contrib/basic/list_box-shape-report.rb +19 -0
  170. data/examples/legacy/not_checked/shoes-contrib/basic/rect-arrow.rb +7 -0
  171. data/examples/legacy/not_checked/shoes-contrib/basic/scribble.rb +8 -0
  172. data/examples/legacy/not_checked/shoes-contrib/basic/search.rb +32 -0
  173. data/examples/legacy/not_checked/shoes-contrib/basic/shoes-notes.rb +16 -0
  174. data/examples/legacy/not_checked/shoes-contrib/basic/url-shoes-subclassing.rb +24 -0
  175. data/examples/legacy/not_checked/shoes-contrib/browser.rb +21 -0
  176. data/examples/legacy/not_checked/shoes-contrib/elements/background-column.rb +3 -0
  177. data/examples/legacy/not_checked/shoes-contrib/elements/background.rb +4 -0
  178. data/examples/legacy/not_checked/shoes-contrib/elements/basic-fps.rb +6 -0
  179. data/examples/legacy/not_checked/shoes-contrib/elements/border-cat.rb +6 -0
  180. data/examples/legacy/not_checked/shoes-contrib/elements/button-block.rb +8 -0
  181. data/examples/legacy/not_checked/shoes-contrib/elements/check-mate.rb +15 -0
  182. data/examples/legacy/not_checked/shoes-contrib/elements/common-styles.rb +13 -0
  183. data/examples/legacy/not_checked/shoes-contrib/elements/displace-animation.rb +13 -0
  184. data/examples/legacy/not_checked/shoes-contrib/elements/edit_box-character-count.rb +7 -0
  185. data/examples/legacy/not_checked/shoes-contrib/elements/edit_line-character-count.rb +7 -0
  186. data/examples/legacy/not_checked/shoes-contrib/elements/image-icon.rb +3 -0
  187. data/examples/legacy/not_checked/shoes-contrib/elements/list_box-select-class.rb +13 -0
  188. data/examples/legacy/not_checked/shoes-contrib/elements/list_box.rb +6 -0
  189. data/examples/legacy/not_checked/shoes-contrib/elements/move-flow-animate.rb +13 -0
  190. data/examples/legacy/not_checked/shoes-contrib/elements/phat-button.rb +7 -0
  191. data/examples/legacy/not_checked/shoes-contrib/elements/popup.rb +7 -0
  192. data/examples/legacy/not_checked/shoes-contrib/elements/progress-bar.rb +10 -0
  193. data/examples/legacy/not_checked/shoes-contrib/elements/radio-dreamcast-favs.rb +17 -0
  194. data/examples/legacy/not_checked/shoes-contrib/elements/timer.rb +6 -0
  195. data/examples/legacy/not_checked/shoes-contrib/elements/width-introspec.rb +8 -0
  196. data/examples/legacy/not_checked/shoes-contrib/events/background-hover.rb +11 -0
  197. data/examples/legacy/not_checked/shoes-contrib/events/motion-detect.rb +9 -0
  198. data/examples/legacy/not_checked/shoes-contrib/events/pressed-key.rb +6 -0
  199. data/examples/legacy/not_checked/shoes-contrib/expert/expert-funnies.rb +51 -0
  200. data/examples/legacy/not_checked/shoes-contrib/expert/expert-irb.rb +112 -0
  201. data/examples/legacy/not_checked/shoes-contrib/expert/expert-othello.rb +319 -0
  202. data/examples/legacy/not_checked/shoes-contrib/good/good-arc.rb +37 -0
  203. data/examples/legacy/not_checked/shoes-contrib/good/good-clock.rb +51 -0
  204. data/examples/legacy/not_checked/shoes-contrib/good/good-follow.rb +26 -0
  205. data/examples/legacy/not_checked/shoes-contrib/good/good-reminder.rb +174 -0
  206. data/examples/legacy/not_checked/shoes-contrib/good/good-vjot.rb +56 -0
  207. data/examples/legacy/not_checked/shoes-contrib/kernel/ask.rb +4 -0
  208. data/examples/legacy/not_checked/shoes-contrib/kernel/ask_color.rb +4 -0
  209. data/examples/legacy/not_checked/shoes-contrib/kernel/ask_open_file.rb +4 -0
  210. data/examples/legacy/not_checked/shoes-contrib/kernel/ask_save_file.rb +7 -0
  211. data/examples/legacy/not_checked/shoes-contrib/kernel/confirm.rb +3 -0
  212. data/examples/legacy/not_checked/shoes-contrib/kernel/debug.rb +4 -0
  213. data/examples/legacy/not_checked/shoes-contrib/kernel/exit.rb +5 -0
  214. data/examples/legacy/not_checked/shoes-contrib/kernel/font.rb +5 -0
  215. data/examples/legacy/not_checked/shoes-contrib/kernel/fonts.rb +3 -0
  216. data/examples/legacy/not_checked/shoes-contrib/manipulation/append-slot.rb +9 -0
  217. data/examples/legacy/not_checked/shoes-contrib/manipulation/clear-slot.rb +6 -0
  218. data/examples/legacy/not_checked/shoes-contrib/manipulation/prepend-slot.rb +6 -0
  219. data/examples/legacy/not_checked/shoes-contrib/manipulation/roll.rb +17 -0
  220. data/examples/legacy/not_checked/shoes-contrib/position/gutter-margin.rb +5 -0
  221. data/examples/legacy/not_checked/shoes-contrib/position/stack-width.rb +3 -0
  222. data/examples/legacy/not_checked/shoes-contrib/simple/simple-accordion.rb +75 -0
  223. data/examples/legacy/not_checked/shoes-contrib/simple/simple-anim-shapes.rb +17 -0
  224. data/examples/legacy/not_checked/shoes-contrib/simple/simple-anim-text.rb +13 -0
  225. data/examples/legacy/not_checked/shoes-contrib/simple/simple-arc.rb +23 -0
  226. data/examples/legacy/not_checked/shoes-contrib/simple/simple-bounce.rb +24 -0
  227. data/examples/legacy/not_checked/shoes-contrib/simple/simple-calc.rb +70 -0
  228. data/examples/legacy/not_checked/shoes-contrib/simple/simple-chipmunk.rb +26 -0
  229. data/examples/legacy/not_checked/shoes-contrib/simple/simple-control-sizes.rb +24 -0
  230. data/examples/legacy/not_checked/shoes-contrib/simple/simple-curve.rb +26 -0
  231. data/examples/legacy/not_checked/shoes-contrib/simple/simple-dialogs.rb +29 -0
  232. data/examples/legacy/not_checked/shoes-contrib/simple/simple-downloader.rb +27 -0
  233. data/examples/legacy/not_checked/shoes-contrib/simple/simple-draw.rb +13 -0
  234. data/examples/legacy/not_checked/shoes-contrib/simple/simple-editor.rb +28 -0
  235. data/examples/legacy/not_checked/shoes-contrib/simple/simple-form.rb +28 -0
  236. data/examples/legacy/not_checked/shoes-contrib/simple/simple-form.shy +0 -0
  237. data/examples/legacy/not_checked/shoes-contrib/simple/simple-mask.rb +21 -0
  238. data/examples/legacy/not_checked/shoes-contrib/simple/simple-menu.rb +31 -0
  239. data/examples/legacy/not_checked/shoes-contrib/simple/simple-menu1.rb +35 -0
  240. data/examples/legacy/not_checked/shoes-contrib/simple/simple-rubygems.rb +29 -0
  241. data/examples/legacy/not_checked/shoes-contrib/simple/simple-slide.rb +45 -0
  242. data/examples/legacy/not_checked/shoes-contrib/simple/simple-sphere.rb +28 -0
  243. data/examples/legacy/not_checked/shoes-contrib/simple/simple-sqlite3.rb +13 -0
  244. data/examples/legacy/not_checked/shoes-contrib/simple/simple-timer.rb +13 -0
  245. data/examples/legacy/not_checked/shoes-contrib/simple/simple-video.rb +13 -0
  246. data/examples/legacy/not_checked/shoes-contrib/styles/alignment.rb +4 -0
  247. data/examples/legacy/not_checked/shoes-contrib/styles/attachment.rb +5 -0
  248. data/examples/legacy/not_checked/shoes-contrib/styles/emphasis.rb +3 -0
  249. data/examples/legacy/not_checked/shoes-contrib/styles/gradient-angle.rb +3 -0
  250. data/examples/legacy/not_checked/shoes-contrib/styles/para-methods.rb +5 -0
  251. data/examples/legacy/not_checked/shoes-contrib/styles/para-red-underlined.rb +3 -0
  252. data/examples/legacy/not_checked/shoes-contrib/styles/para-style-method.rb +4 -0
  253. data/examples/legacy/not_checked/shoes-dep-samples/expert-game-of-life.rb +243 -0
  254. data/examples/legacy/not_checked/shoes-dep-samples/expert-othello.rb +319 -0
  255. data/examples/legacy/not_checked/shoes-dep-samples/good-clock.rb +51 -0
  256. data/examples/legacy/not_checked/shoes-dep-samples/good-follow.rb +26 -0
  257. data/examples/legacy/not_checked/shoes-dep-samples/good-reminder.rb +174 -0
  258. data/examples/legacy/not_checked/shoes-dep-samples/good-vjot.rb +56 -0
  259. data/examples/legacy/not_checked/shoes-dep-samples/simple-accordion.rb +75 -0
  260. data/examples/legacy/not_checked/shoes-dep-samples/simple-anim-shapes.rb +17 -0
  261. data/examples/legacy/not_checked/shoes-dep-samples/simple-anim-text.rb +13 -0
  262. data/examples/legacy/not_checked/shoes-dep-samples/simple-arc.rb +23 -0
  263. data/examples/legacy/not_checked/shoes-dep-samples/simple-bounce.rb +24 -0
  264. data/examples/legacy/not_checked/shoes-dep-samples/simple-calc.rb +70 -0
  265. data/examples/legacy/not_checked/shoes-dep-samples/simple-chipmunk.rb +26 -0
  266. data/examples/legacy/not_checked/shoes-dep-samples/simple-control-sizes.rb +24 -0
  267. data/examples/legacy/not_checked/shoes-dep-samples/simple-curve.rb +26 -0
  268. data/examples/legacy/not_checked/shoes-dep-samples/simple-dialogs.rb +29 -0
  269. data/examples/legacy/not_checked/shoes-dep-samples/simple-draw.rb +13 -0
  270. data/examples/legacy/not_checked/shoes-dep-samples/simple-editor.rb +28 -0
  271. data/examples/legacy/not_checked/shoes-dep-samples/simple-form.rb +28 -0
  272. data/examples/legacy/not_checked/shoes-dep-samples/simple-form.shy +0 -0
  273. data/examples/legacy/not_checked/shoes-dep-samples/simple-mask.rb +21 -0
  274. data/examples/legacy/not_checked/shoes-dep-samples/simple-menu.rb +31 -0
  275. data/examples/legacy/not_checked/shoes-dep-samples/simple-menu1.rb +35 -0
  276. data/examples/legacy/not_checked/shoes-dep-samples/simple-rubygems.rb +29 -0
  277. data/examples/legacy/not_checked/shoes-dep-samples/simple-slide.rb +45 -0
  278. data/examples/legacy/not_checked/shoes-dep-samples/simple-sphere.rb +28 -0
  279. data/examples/legacy/not_checked/shoes-dep-samples/simple-sqlite3.rb +13 -0
  280. data/examples/legacy/not_checked/shoes-dep-samples/simple-timer.rb +13 -0
  281. data/examples/legacy/not_checked/shoes-dep-samples/simple-video.rb +13 -0
  282. data/examples/legacy/not_checked/shoes3-tests/AnemicCinema1926marcelDuchampCut.mp4 +0 -0
  283. data/examples/legacy/not_checked/shoes3-tests/button/button.rb +53 -0
  284. data/examples/legacy/not_checked/shoes3-tests/cache/cache.rb +41 -0
  285. data/examples/legacy/not_checked/shoes3-tests/combo/combo.rb +24 -0
  286. data/examples/legacy/not_checked/shoes3-tests/curl/bare.rb +34 -0
  287. data/examples/legacy/not_checked/shoes3-tests/curl/downloader.rb +40 -0
  288. data/examples/legacy/not_checked/shoes3-tests/curl/m1.rb +11 -0
  289. data/examples/legacy/not_checked/shoes3-tests/curl/m2.rb +12 -0
  290. data/examples/legacy/not_checked/shoes3-tests/curl/m3.rb +11 -0
  291. data/examples/legacy/not_checked/shoes3-tests/curl/m4.rb +5 -0
  292. data/examples/legacy/not_checked/shoes3-tests/curl/typ.rb +30 -0
  293. data/examples/legacy/not_checked/shoes3-tests/cursor/c1.rb +21 -0
  294. data/examples/legacy/not_checked/shoes3-tests/decoration.rb +14 -0
  295. data/examples/legacy/not_checked/shoes3-tests/dialogs/ask.rb +6 -0
  296. data/examples/legacy/not_checked/shoes3-tests/dialogs/confirm.rb +6 -0
  297. data/examples/legacy/not_checked/shoes3-tests/editbox/editbox.rb +36 -0
  298. data/examples/legacy/not_checked/shoes3-tests/editline/editline.rb +27 -0
  299. data/examples/legacy/not_checked/shoes3-tests/events/button.rb +32 -0
  300. data/examples/legacy/not_checked/shoes3-tests/events/button.yaml +40 -0
  301. data/examples/legacy/not_checked/shoes3-tests/events/capture.rb +57 -0
  302. data/examples/legacy/not_checked/shoes3-tests/events/chipmunk.yaml +47 -0
  303. data/examples/legacy/not_checked/shoes3-tests/events/event0.rb +8 -0
  304. data/examples/legacy/not_checked/shoes3-tests/events/event1.rb +51 -0
  305. data/examples/legacy/not_checked/shoes3-tests/events/event1.yaml +26 -0
  306. data/examples/legacy/not_checked/shoes3-tests/events/event2.rb +46 -0
  307. data/examples/legacy/not_checked/shoes3-tests/events/event3.rb +44 -0
  308. data/examples/legacy/not_checked/shoes3-tests/events/event4.rb +65 -0
  309. data/examples/legacy/not_checked/shoes3-tests/events/event5.rb +17 -0
  310. data/examples/legacy/not_checked/shoes3-tests/events/event6.rb +51 -0
  311. data/examples/legacy/not_checked/shoes3-tests/events/replay.rb +60 -0
  312. data/examples/legacy/not_checked/shoes3-tests/gapp/fullscreen.rb +38 -0
  313. data/examples/legacy/not_checked/shoes3-tests/gapp/icon.rb +56 -0
  314. data/examples/legacy/not_checked/shoes3-tests/gapp/mon1.rb +46 -0
  315. data/examples/legacy/not_checked/shoes3-tests/gapp/settings1.rb +22 -0
  316. data/examples/legacy/not_checked/shoes3-tests/gapp/title1.rb +34 -0
  317. data/examples/legacy/not_checked/shoes3-tests/indian.m4a +0 -0
  318. data/examples/legacy/not_checked/shoes3-tests/menus/event.rb +33 -0
  319. data/examples/legacy/not_checked/shoes3-tests/menus/menu1.rb +8 -0
  320. data/examples/legacy/not_checked/shoes3-tests/menus/menu2.rb +25 -0
  321. data/examples/legacy/not_checked/shoes3-tests/menus/menu3.rb +103 -0
  322. data/examples/legacy/not_checked/shoes3-tests/menus/menu4.rb +41 -0
  323. data/examples/legacy/not_checked/shoes3-tests/menus/tests.txt +42 -0
  324. data/examples/legacy/not_checked/shoes3-tests/opacity.rb +13 -0
  325. data/examples/legacy/not_checked/shoes3-tests/plot/^IRX.R +5219 -0
  326. data/examples/legacy/not_checked/shoes3-tests/plot/^SPX +5219 -0
  327. data/examples/legacy/not_checked/shoes3-tests/plot/cstest.rb +51 -0
  328. data/examples/legacy/not_checked/shoes3-tests/plot/gr1.rb +73 -0
  329. data/examples/legacy/not_checked/shoes3-tests/plot/gr2.rb +40 -0
  330. data/examples/legacy/not_checked/shoes3-tests/plot/gr3.rb +47 -0
  331. data/examples/legacy/not_checked/shoes3-tests/plot/gr4.rb +35 -0
  332. data/examples/legacy/not_checked/shoes3-tests/plot/gr5.rb +31 -0
  333. data/examples/legacy/not_checked/shoes3-tests/plot/gr6.rb +35 -0
  334. data/examples/legacy/not_checked/shoes3-tests/plot/gr7.rb +37 -0
  335. data/examples/legacy/not_checked/shoes3-tests/plot/grcsv.rb +219 -0
  336. data/examples/legacy/not_checked/shoes3-tests/plot/manual.rb +40 -0
  337. data/examples/legacy/not_checked/shoes3-tests/progress/progress.rb +29 -0
  338. data/examples/legacy/not_checked/shoes3-tests/radio/clear.rb +20 -0
  339. data/examples/legacy/not_checked/shoes3-tests/radio/group.rb +18 -0
  340. data/examples/legacy/not_checked/shoes3-tests/radio/multiple.rb +32 -0
  341. data/examples/legacy/not_checked/shoes3-tests/radio/nogroup.rb +9 -0
  342. data/examples/legacy/not_checked/shoes3-tests/simpletest.svg +14 -0
  343. data/examples/legacy/not_checked/shoes3-tests/spinner.rb +15 -0
  344. data/examples/legacy/not_checked/shoes3-tests/svg.rb +208 -0
  345. data/examples/legacy/not_checked/shoes3-tests/switch/switch.rb +28 -0
  346. data/examples/legacy/not_checked/shoes3-tests/systray/back.rb +20 -0
  347. data/examples/legacy/not_checked/shoes3-tests/systray/note.rb +17 -0
  348. data/examples/legacy/not_checked/shoes3-tests/terminal/cursor.rb +27 -0
  349. data/examples/legacy/not_checked/shoes3-tests/terminal/ed.rb +65 -0
  350. data/examples/legacy/not_checked/shoes3-tests/terminal/el.rb +50 -0
  351. data/examples/legacy/not_checked/shoes3-tests/terminal/logattr.rb +31 -0
  352. data/examples/legacy/not_checked/shoes3-tests/tests_color.rb +138 -0
  353. data/examples/legacy/not_checked/shoes3-tests/tests_svg.rb +228 -0
  354. data/examples/legacy/not_checked/shoes3-tests/tests_video_vlc.rb +186 -0
  355. data/examples/legacy/not_checked/shoes3-tests/tooltips.rb +20 -0
  356. data/examples/legacy/not_checked/shoes3-tests/video_vlc.rb +242 -0
  357. data/examples/legacy/not_checked/shoes3-tests/wheel/wheel1.rb +21 -0
  358. data/examples/legacy/not_checked/simple/accordion.rb +81 -0
  359. data/examples/legacy/not_checked/simple/anim-shapes.rb +17 -0
  360. data/examples/legacy/not_checked/simple/anim-text.rb +13 -0
  361. data/examples/legacy/not_checked/simple/arc.rb +23 -0
  362. data/examples/legacy/not_checked/simple/bounce.rb +24 -0
  363. data/examples/legacy/not_checked/simple/chipmunk.rb +26 -0
  364. data/examples/legacy/not_checked/simple/control-sizes.rb +24 -0
  365. data/examples/legacy/not_checked/simple/curve-control-points.rb +24 -0
  366. data/examples/legacy/not_checked/simple/curve.rb +26 -0
  367. data/examples/legacy/not_checked/simple/dialogs.rb +29 -0
  368. data/examples/legacy/not_checked/simple/downloader.rb +40 -0
  369. data/examples/legacy/not_checked/simple/downloader1.rb +31 -0
  370. data/examples/legacy/not_checked/simple/draw.rb +13 -0
  371. data/examples/legacy/not_checked/simple/editor.rb +28 -0
  372. data/examples/legacy/not_checked/simple/form.rb +30 -0
  373. data/examples/legacy/not_checked/simple/image.rb +21 -0
  374. data/examples/legacy/not_checked/simple/info.rb +78 -0
  375. data/examples/legacy/not_checked/simple/mask.rb +21 -0
  376. data/examples/legacy/not_checked/simple/mask2.rb +27 -0
  377. data/examples/legacy/not_checked/simple/menu.rb +31 -0
  378. data/examples/legacy/not_checked/simple/menu1.rb +35 -0
  379. data/examples/legacy/not_checked/simple/slide.rb +45 -0
  380. data/examples/legacy/not_checked/simple/sphere.rb +28 -0
  381. data/examples/legacy/not_checked/superleg.rb +244 -0
  382. data/examples/legacy/working/shoes-contrib/basic/a-poem.rb +24 -0
  383. data/examples/legacy/working/shoes-contrib/basic/basic-blocks-instances.rb +7 -0
  384. data/examples/legacy/working/shoes-contrib/basic/basic-blocks.rb +7 -0
  385. data/examples/legacy/working/shoes-contrib/basic/basic-slot.rb +8 -0
  386. data/examples/legacy/working/shoes-contrib/basic/intro.rb +20 -0
  387. data/examples/legacy/working/shoes-contrib/basic/two-column.rb +12 -0
  388. data/examples/legacy/working/shoes-contrib/elements/edit_box.rb +6 -0
  389. data/examples/legacy/working/shoes-contrib/kernel/alert.rb +3 -0
  390. data/examples/legacy/working/simple/calc.rb +71 -0
  391. data/examples/legacy/working/simple/sqlite3.rb +27 -0
  392. data/examples/legacy/working/simple/timer.rb +13 -0
  393. data/examples/line.rb +5 -0
  394. data/examples/link.rb +20 -0
  395. data/examples/list_box.rb +8 -0
  396. data/examples/local_fonts.rb +4 -0
  397. data/examples/local_images.rb +4 -0
  398. data/examples/motion_events.rb +20 -0
  399. data/examples/para/collection_of_arguments.rb +9 -0
  400. data/examples/para/hello_world.rb +5 -0
  401. data/examples/para/hide_and_show.rb +9 -0
  402. data/examples/para/rainbow.rb +11 -0
  403. data/examples/para/rainbow_2.rb +11 -0
  404. data/examples/para/sizes.rb +11 -0
  405. data/examples/para/sizes_2.rb +12 -0
  406. data/examples/para/strong.rb +3 -0
  407. data/examples/para_text_widgets.rb +4 -0
  408. data/examples/parse_xl_funnies.rb +58 -0
  409. data/examples/pirate.png +0 -0
  410. data/examples/raw_flow.rb +11 -0
  411. data/examples/ruby_racer.rb +50 -0
  412. data/examples/selfitude.rb +18 -0
  413. data/examples/shapes/arc.rb +8 -0
  414. data/examples/shapes/shapes.rb +8 -0
  415. data/examples/shapes/shapes_fill.rb +10 -0
  416. data/examples/shapes/star.rb +5 -0
  417. data/examples/shoes_school.rb +66 -0
  418. data/examples/shoes_splorer.rb +150 -0
  419. data/examples/simple_slides.rb +73 -0
  420. data/examples/skip_ci/parrot.rb +22 -0
  421. data/examples/skip_ci/say.rb +20 -0
  422. data/examples/sleepless.rb +26 -0
  423. data/examples/slots.rb +10 -0
  424. data/examples/spacing.rb +18 -0
  425. data/examples/span.rb +6 -0
  426. data/examples/stack/background.rb +35 -0
  427. data/examples/stack/border.rb +11 -0
  428. data/examples/stack/gradients.rb +6 -0
  429. data/examples/stack/raw_stack.rb +8 -0
  430. data/examples/stack/stack.rb +27 -0
  431. data/examples/text_change.rb +4 -0
  432. data/examples/text_sizes.rb +10 -0
  433. data/examples/timmy.rb +109 -0
  434. data/examples/title_and_resize.rb +3 -0
  435. data/examples/video.rb +10 -0
  436. data/exe/scarpe +107 -0
  437. data/fonts/Pacifico.ttf +0 -0
  438. data/lib/scarpe/alert.rb +19 -0
  439. data/lib/scarpe/arc.rb +49 -0
  440. data/lib/scarpe/background.rb +14 -0
  441. data/lib/scarpe/base64.rb +27 -0
  442. data/lib/scarpe/border.rb +16 -0
  443. data/lib/scarpe/button.rb +35 -0
  444. data/lib/scarpe/cats_cradle.rb +255 -0
  445. data/lib/scarpe/colors.rb +215 -0
  446. data/lib/scarpe/display_service.rb +185 -0
  447. data/lib/scarpe/document_root.rb +20 -0
  448. data/lib/scarpe/download.rb +123 -0
  449. data/lib/scarpe/edit_box.rb +29 -0
  450. data/lib/scarpe/edit_line.rb +25 -0
  451. data/lib/scarpe/fill.rb +23 -0
  452. data/lib/scarpe/flow.rb +18 -0
  453. data/lib/scarpe/font.rb +14 -0
  454. data/lib/scarpe/glibui/README.md +34 -0
  455. data/lib/scarpe/glibui/alert.rb +65 -0
  456. data/lib/scarpe/glibui/app.rb +27 -0
  457. data/lib/scarpe/glibui/background.rb +18 -0
  458. data/lib/scarpe/glibui/border.rb +22 -0
  459. data/lib/scarpe/glibui/button.rb +38 -0
  460. data/lib/scarpe/glibui/dimensions.rb +22 -0
  461. data/lib/scarpe/glibui/document_root.rb +33 -0
  462. data/lib/scarpe/glibui/edit_box.rb +44 -0
  463. data/lib/scarpe/glibui/edit_line.rb +43 -0
  464. data/lib/scarpe/glibui/flow.rb +33 -0
  465. data/lib/scarpe/glibui/html.rb +77 -0
  466. data/lib/scarpe/glibui/image.rb +36 -0
  467. data/lib/scarpe/glibui/link.rb +29 -0
  468. data/lib/scarpe/glibui/local_display.rb +62 -0
  469. data/lib/scarpe/glibui/para.rb +84 -0
  470. data/lib/scarpe/glibui/spacing.rb +41 -0
  471. data/lib/scarpe/glibui/stack.rb +33 -0
  472. data/lib/scarpe/glibui/text_widget.rb +30 -0
  473. data/lib/scarpe/glibui/widget.rb +81 -0
  474. data/lib/scarpe/glibui.rb +29 -0
  475. data/lib/scarpe/image.rb +35 -0
  476. data/lib/scarpe/libui/alert.rb +9 -0
  477. data/lib/scarpe/libui/button.rb +18 -0
  478. data/lib/scarpe/libui/colors.rb +157 -0
  479. data/lib/scarpe/libui/core.rb +66 -0
  480. data/lib/scarpe/libui/flow.rb +16 -0
  481. data/lib/scarpe/libui/libui.rb +45 -0
  482. data/lib/scarpe/libui/notepad.md +26 -0
  483. data/lib/scarpe/libui/para.rb +154 -0
  484. data/lib/scarpe/libui/stack.rb +34 -0
  485. data/lib/scarpe/line.rb +25 -0
  486. data/lib/scarpe/link.rb +25 -0
  487. data/lib/scarpe/list_box.rb +25 -0
  488. data/lib/scarpe/logger.rb +159 -0
  489. data/lib/scarpe/para.rb +92 -0
  490. data/lib/scarpe/promises.rb +405 -0
  491. data/lib/scarpe/shape.rb +20 -0
  492. data/lib/scarpe/slot.rb +7 -0
  493. data/lib/scarpe/spacing.rb +9 -0
  494. data/lib/scarpe/span.rb +26 -0
  495. data/lib/scarpe/stack.rb +20 -0
  496. data/lib/scarpe/star.rb +47 -0
  497. data/lib/scarpe/subscription_item.rb +60 -0
  498. data/lib/scarpe/unit_test_helpers.rb +236 -0
  499. data/lib/scarpe/version.rb +5 -0
  500. data/lib/scarpe/video.rb +15 -0
  501. data/lib/scarpe/widgets.rb +35 -0
  502. data/lib/scarpe/wv/alert.rb +65 -0
  503. data/lib/scarpe/wv/app.rb +104 -0
  504. data/lib/scarpe/wv/arc.rb +57 -0
  505. data/lib/scarpe/wv/background.rb +27 -0
  506. data/lib/scarpe/wv/border.rb +24 -0
  507. data/lib/scarpe/wv/button.rb +50 -0
  508. data/lib/scarpe/wv/control_interface.rb +147 -0
  509. data/lib/scarpe/wv/control_interface_test.rb +234 -0
  510. data/lib/scarpe/wv/dimensions.rb +22 -0
  511. data/lib/scarpe/wv/document_root.rb +8 -0
  512. data/lib/scarpe/wv/edit_box.rb +44 -0
  513. data/lib/scarpe/wv/edit_line.rb +43 -0
  514. data/lib/scarpe/wv/fill.rb +30 -0
  515. data/lib/scarpe/wv/flow.rb +24 -0
  516. data/lib/scarpe/wv/font.rb +36 -0
  517. data/lib/scarpe/wv/html.rb +108 -0
  518. data/lib/scarpe/wv/image.rb +41 -0
  519. data/lib/scarpe/wv/line.rb +38 -0
  520. data/lib/scarpe/wv/link.rb +29 -0
  521. data/lib/scarpe/wv/list_box.rb +50 -0
  522. data/lib/scarpe/wv/para.rb +90 -0
  523. data/lib/scarpe/wv/shape.rb +35 -0
  524. data/lib/scarpe/wv/shape_helper.rb +44 -0
  525. data/lib/scarpe/wv/slot.rb +81 -0
  526. data/lib/scarpe/wv/spacing.rb +41 -0
  527. data/lib/scarpe/wv/span.rb +66 -0
  528. data/lib/scarpe/wv/stack.rb +24 -0
  529. data/lib/scarpe/wv/star.rb +64 -0
  530. data/lib/scarpe/wv/subscription_item.rb +50 -0
  531. data/lib/scarpe/wv/text_widget.rb +30 -0
  532. data/lib/scarpe/wv/video.rb +42 -0
  533. data/lib/scarpe/wv/web_wrangler.rb +683 -0
  534. data/lib/scarpe/wv/webview_local_display.rb +73 -0
  535. data/lib/scarpe/wv/webview_relay_display.rb +185 -0
  536. data/lib/scarpe/wv/widget.rb +185 -0
  537. data/lib/scarpe/wv/wv_display_worker.rb +65 -0
  538. data/lib/scarpe/wv.rb +43 -0
  539. data/lib/scarpe/wv_local.rb +6 -0
  540. data/lib/scarpe/wv_relay.rb +6 -0
  541. data/lib/scarpe.rb +29 -0
  542. data/lib/shoes/app.rb +187 -0
  543. data/lib/shoes/constants.rb +26 -0
  544. data/lib/shoes/text_widget.rb +52 -0
  545. data/lib/shoes/widget.rb +209 -0
  546. data/lib/shoes.rb +65 -0
  547. data/logger/debug_web_wrangler.json +4 -0
  548. data/logger/scarpe_wv_test.json +4 -0
  549. data/scarpe-0.2.0.gem +0 -0
  550. data/scarpe.gemspec +44 -0
  551. data/scarpegen.rb +193 -0
  552. data/sig/scarpe.rbs +4 -0
  553. data/templates/basic_class_template.erb +38 -0
  554. data/templates/class_template_with_event_bind.erb +27 -0
  555. data/templates/class_template_with_shapes.erb +43 -0
  556. data/templates/example_template.erb +3 -0
  557. data/templates/module_template.erb +12 -0
  558. data/templates/webview_template.erb +27 -0
  559. metadata +606 -0
@@ -0,0 +1,46 @@
1
+ Shoes.app(title: "Drag the dot to make a path. Redrag to extend.") do
2
+ @path = [[self.width / 2, self.height / 2, RADIUS = 20]]
3
+
4
+ @controller = nil
5
+ click do |btn, left, top|
6
+ px, py, pr = @path.last
7
+ if left.between?(px - pr, px + pr) and top.between?(py - pr, py + pr)
8
+ @controller = true
9
+ end
10
+ end
11
+ release do |btn, left, top|
12
+ @controller = nil
13
+ end
14
+
15
+ motion do |left, top|
16
+ @path << [left, top, RADIUS] unless @controller.nil?
17
+ end
18
+
19
+ button("reset") do
20
+ @index = 0
21
+ @path = [@path.first]
22
+ @controller = nil
23
+ end
24
+
25
+ @stack = stack :top => 0, :left => 0
26
+
27
+ @index = 0
28
+ animate(24) do
29
+ @stack.clear do
30
+ fill red(0.05)
31
+ stroke red(0.05)
32
+ ovals = @path.collect { |x, y, r| oval x, y, r, :center => true }
33
+ ovals.first.style :fill => fuchsia, :stroke => fuchsia
34
+ ovals.last.style :fill => blue, :stroke => blue
35
+
36
+ if @controller.nil? and @path.size > 1
37
+ fill green
38
+ stroke green
39
+ rotate -5
40
+ x, y, r = @path[@index]
41
+ rect x, y, r * 4, r * 4, r / 2, :center => true
42
+ @index = (@index < @path.size - 1) ? @index + 1 : 0
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,100 @@
1
+ # good-plots.rb
2
+ Shoes.app width: 620, height: 480 do
3
+ stack do
4
+ flow do
5
+ # button "quit" do Shoes.quit end
6
+ button "Line" do
7
+ @plot_area.clear do
8
+ @values1 = [24, 22, 10, 13, 20, 8, 22]
9
+ @x_axis1 = ['a','b','c','d','e','f', 'g']
10
+ @values2 = [200, 150, 75, 125, 75, 225, 125]
11
+ @x_axis2 = ['a','b','c','d','e','f', 'g']
12
+ @grf = plot 600, 400, title: "Line Graph", caption: "Not that hard to do",
13
+ font: "Helvetica", auto_grid: true, default: "skip", background: honeydew
14
+ @grf.add values: @values1, labels: @x_axis1, name: "foobar",
15
+ min: 6, max: 26 , desc: "foobar Yy", color: dodgerblue,
16
+ points: true
17
+ @grf.add values: @values2, labels: @x_axis2,
18
+ name: "Tab", min: @values2.min, max: @values2.max, desc: "BarTab", color: coral,
19
+ points: true, strokewidth: 2
20
+ @plot_area.refresh_slot
21
+ end
22
+ end
23
+ button "Column" do
24
+ @plot_area.clear do
25
+ @values1 = [24, 22, 10, 13, 20, 8, 22]
26
+ @x_axis1 = ['a','b','c','d','e','f', 'g']
27
+ @values2 = [200, 150, 75, 125, 75, 225, 125]
28
+ @x_axis2 = ['a','b','c','d','e','f', 'g']
29
+ @grf = plot 600, 400, title: "Column Graph", caption:
30
+ "Amazing!!" , font: "Mono", auto_grid: false,
31
+ default: "skip", background: cornsilk, chart: "column", boundary_box: false
32
+ @grf.add values: @values1, labels: @x_axis1,
33
+ name: "Bar", min: 0, max: 30, desc: "foobar Yy", color: rgb(220, 20, 60, 172),
34
+ points: true, strokewidth: 12
35
+ cs2 = chart_series values: @values2, labels: @x_axis2,
36
+ name: "Tab", min: 50, max: 230, desc: "BarTab", color: green,
37
+ points: true, strokewidth: 6
38
+ @grf.add cs2
39
+ end
40
+ end
41
+ button "Scatter" do
42
+ @plot_area.clear do
43
+ @values1 = [14,13,15,27,17,18,33,25,21] # x values - Wind speed
44
+ @values2 = [11,17,23,39,22,31,47,48,41] # y values - Cloud cover
45
+ @grf = plot 600, 400, title: "Weather Conditions", caption:
46
+ "Scatter along, Children" , font: "Helvetica", auto_grid: true,
47
+ default: "skip", background: honeydew, chart: "scatter"
48
+ cs1 = @grf.add values: @values1,
49
+ name: "Wind", min: 12.5, max: 35 , color: dodgerblue,
50
+ points: "dot", strokewidth: 1, desc: "Wind speed (km/hr)"
51
+ #cs1.points = "box"
52
+ cs1.strokewidth = 5
53
+ cs2 = chart_series values: @values2, name: "Clouds",
54
+ min: 10, max: 50 , color: black,
55
+ points: "box", strokewidth: 1, desc: "Cloud Cover (percentage)"
56
+ @grf.add cs2
57
+ end
58
+ end
59
+ button "Pie" do
60
+ @plot_area.clear do
61
+ @values1 = [15, 5, 4, 4, 3, 3, 1, 1] # downloads
62
+ @obs1 = ["gtk3-32.exe", "gtk3-x86_64.install", "osx-10.9.tgz", "/",
63
+ "3.2.25.exe", "robots.txt", "gtk3-i686,install,", "gtk3-armhf.install"]
64
+ @grf = plot 600, 400, title: "Shoes Https downloads", caption:
65
+ "popularity " , font: "Helvetica", auto_grid: true,
66
+ default: "skip", background: white, chart: "pie", pie_percent: false,
67
+ colors: [yellow, olive]
68
+ cs = chart_series values: @values1, labels: @obs1,
69
+ name: "download", min: @values1.min, max: @values1.max
70
+ @grf.add cs
71
+ end
72
+ end
73
+ button "Radar" do
74
+ @plot_area.clear do
75
+ @obs1 = ["internet", "television", "radio", "newspaper", "magazine"]
76
+ @values1 = [80, 160, 145, 75, 80]
77
+ @values2 = [180, 90, 95, 90, 90]
78
+ @columns = [ ["Internet", 0, 200, "%3.0f k"],
79
+ ["Television", 0, 250," %3.0f k" ],
80
+ {label: "Radio", min: 0, max: 200, format: "%3.0f k"},
81
+ ["Newspaper", 0, 200, "%3.0f k"],
82
+ ["Magazine", 0, 200, "%3.0f k"]
83
+ ]
84
+ @grf = plot 600, 400, title: "Advertising", caption:
85
+ "Budget Spend" , font: "Helvetica", auto_grid: true,
86
+ default: "skip", background: cornsilk, chart: "radar", column_settings: @columns
87
+ @grf.add values: @values1, labels: @xobs,
88
+ name: "Year 1", min: 0, max: 200, color: dodgerblue,
89
+ points: "dot", strokewidth: 3
90
+ cs = app.chart_series values: @values2, labels: @xobs,
91
+ name: "Year 2", min: 0, max: 200, color: coral,
92
+ points: "dot", strokewidth: 3
93
+ @grf.add cs
94
+ end
95
+ end
96
+ end
97
+ @plot_area = stack do
98
+ end
99
+ end
100
+ end
@@ -0,0 +1,174 @@
1
+ require 'yaml'
2
+
3
+ Shoes.app :title => "A Gentle Reminder",
4
+ :width => 370, :height => 560, :resizable => false do
5
+
6
+ background white
7
+ background tan, :height => 40
8
+
9
+ caption "A Gentle Reminder", :margin => 8, :stroke => white
10
+
11
+ stack :margin => 10, :margin_top => 50 do
12
+ para "You need to", :stroke => red, :fill => yellow
13
+
14
+ stack :margin_left => 5, :margin_right => 10, :width => 1.0, :height => 200, :scroll => true do
15
+ background white
16
+ border white, :strokewidth => 3
17
+ @gui_todo = para
18
+ end
19
+
20
+ flow :margin_top => 10 do
21
+ para "Remember to"
22
+ @add = edit_line(:margin_left => 10, :width => 180)
23
+ button("Add", :margin_left => 5) { add_todo(@add.text); @add.text = '' }
24
+ end
25
+ end
26
+
27
+ stack :margin_top => 10 do
28
+ background darkgray
29
+ para strong('Completed'), :stroke => white
30
+ end
31
+
32
+ @gui_completed = stack :width => 1.0, :height => 207, :margin_right => 20
33
+
34
+
35
+ def data_path
36
+ if RUBY_PLATFORM =~ /win32/
37
+ if ENV['USERPROFILE']
38
+ if File.exist?(File.join(File.expand_path(ENV['USERPROFILE']), "Application Data"))
39
+ user_data_directory = File.join File.expand_path(ENV['USERPROFILE']), "Application Data", "GentleReminder"
40
+ else
41
+ user_data_directory = File.join File.expand_path(ENV['USERPROFILE']), "GentleReminder"
42
+ end
43
+ else
44
+ user_data_directory = File.join File.expand_path(Dir.getwd), "data"
45
+ end
46
+ else
47
+ user_data_directory = File.expand_path(File.join("~", ".gentlereminder"))
48
+ end
49
+
50
+ unless File.exist?(user_data_directory)
51
+ Dir.mkdir(user_data_directory)
52
+ end
53
+
54
+ return File.join(user_data_directory, "data.yaml")
55
+ end
56
+
57
+
58
+ def refresh_todo
59
+ @gui_todo.replace *(
60
+ @todo.map { |item|
61
+ [ item, ' ' ] + [ link('Done') { complete_todo item } ] + [ ' ' ] +
62
+ [ link('Forget it') { forget_todo item } ] + [ "\n" ]
63
+ }.flatten
64
+ )
65
+ end
66
+
67
+
68
+ def refresh
69
+ refresh_todo
70
+
71
+ @gui_completed.clear
72
+
73
+ @gui_completed.append do
74
+ background white
75
+
76
+ @completed.keys.sort.reverse.each { |day|
77
+ stack do
78
+ background lightgrey
79
+ para strong(Time.at(day).strftime('%B %d, %Y')), :stroke => white
80
+ end
81
+
82
+ stack do
83
+ inscription *(
84
+ @completed[day].map { |item|
85
+ [ item ] + [ ' ' ] + [ link('Not Done') { undo_todo day, item } ] +
86
+ (@completed[day].index(item) == @completed[day].length - 1 ? [ '' ] : [ "\n" ])
87
+ }.flatten
88
+ )
89
+ end
90
+
91
+ }
92
+ end
93
+ end
94
+
95
+
96
+ def complete_todo(item)
97
+ day = Time.today.to_i
98
+
99
+ if @completed.keys.include? day
100
+ @completed[day] << item
101
+ else
102
+ @completed[day] = [ item ]
103
+ end
104
+
105
+ @todo.delete(item)
106
+
107
+ save
108
+
109
+ refresh
110
+ end
111
+
112
+
113
+ def undo_todo(day, item)
114
+ @completed[day].delete item
115
+
116
+ @completed.delete(day) if @completed[day].empty?
117
+
118
+ @todo << item unless @todo.include? item
119
+
120
+ save
121
+
122
+ refresh
123
+ end
124
+
125
+
126
+ def add_todo(item)
127
+ item = item.strip
128
+
129
+ return if item == ''
130
+
131
+ if @todo.include? item
132
+ alert('You have already added that to the list!')
133
+ return
134
+ end
135
+
136
+ @todo << item
137
+
138
+ save
139
+
140
+ refresh_todo
141
+ end
142
+
143
+
144
+ def forget_todo(item)
145
+ @todo.delete item
146
+
147
+ save
148
+
149
+ refresh_todo
150
+ end
151
+
152
+
153
+ def load
154
+ if File.exist?(data_path)
155
+ @todo, @completed = YAML::load(File.open(data_path, 'r'))
156
+ else
157
+ @todo = []
158
+ @completed = {}
159
+ end
160
+
161
+ refresh
162
+ end
163
+
164
+
165
+ def save
166
+ File.open(data_path, 'w') { |f|
167
+ f.write [ @todo, @completed ].to_yaml
168
+ }
169
+ end
170
+
171
+
172
+ load
173
+
174
+ end
@@ -0,0 +1,113 @@
1
+ # svg viewer
2
+ require 'nokogiri'
3
+
4
+ Shoes.app width: 500, height: 610, title: "SVG Viewer" do
5
+ @widget_sizeW = 450
6
+ @widget_sizeH = 400
7
+
8
+ def load (path)
9
+ File.open(path) {|f| @xml = f.read}
10
+ doc = Nokogiri::XML(@xml)
11
+ groups = doc.css("g[id]") - doc.css("defs g[id]")
12
+ groups.each_with_object([]) { |elem, arr| arr << elem.attributes["id"].value.strip }
13
+ end
14
+
15
+ def get_details
16
+ "original svg offsets : x = #{@current_svg.offset_x}, y = #{@current_svg.offset_y} \n" +
17
+ "original svg size : width = #{@current_svg.preferred_width}, height = #{@current_svg.preferred_height}"
18
+ end
19
+
20
+ def show_svg(fpath)
21
+ @lbw.items = load(fpath)
22
+ @display_panel.clear do
23
+ @current_svg = svg @xml, width: @widget_sizeW, height: @widget_sizeH, aspect: true
24
+ if @current_svg.is_a? Array
25
+ #puts "Converting array"
26
+ @current_svg = @current_svg[0]
27
+ end
28
+ end
29
+ @details.text = get_details
30
+ @group.checked = false
31
+ @subid.text = ""
32
+ @aspect.checked = true
33
+ @specified.text = "1.0"
34
+ end
35
+
36
+ stack do
37
+ flow do
38
+ tagline "SVG Viewer", margin: [0,0,30,0]
39
+ @details = inscription
40
+ end
41
+
42
+ @display_panel = flow width: @widget_sizeW+20, height: @widget_sizeH+20, margin: 10 do; end
43
+
44
+ flow margin: [5,20,0,10] do
45
+ button "Load" do
46
+ if fpath = ask_open_file
47
+ show_svg(fpath)
48
+ end
49
+ end
50
+
51
+ button "Paris Cards" do
52
+ fpath = Shoes::RELEASE_TYPE =~ /TIGHT/ ? "#{DIR}/samples/good/paris.svg" : "#{DIR}/samples/good/paris.svg"
53
+
54
+ if File.exist? fpath
55
+ show_svg(fpath)
56
+ else
57
+ alert "Can't find #{fpath} !!"
58
+ end
59
+ end
60
+
61
+ button "Render", width: 150, margin: [25,0,0,0] do
62
+ return if @xml.nil? || @xml.empty?
63
+
64
+ id = @subid.text
65
+ id = (@group.checked? && @current_svg.group?(id)) ? id : nil
66
+
67
+ asp = @specified.text.to_f == 1.0 ? true : @specified.text.to_f
68
+ asp = @aspect.checked? ? asp : false
69
+ @display_panel.clear do
70
+ @current_svg = svg @xml, width: @widget_sizeW, height: @widget_sizeH, group: id, aspect: asp
71
+ if @current_svg.is_a? Array
72
+ @current_svg = @current_svg[0]
73
+ #puts "Converted in Render"
74
+ end
75
+ end
76
+ @details.text = get_details
77
+ end
78
+
79
+ button "Save" do
80
+ savep = ask_save_file
81
+ if savep
82
+ ext = File.extname(savep)
83
+ case ext
84
+ when '.png'
85
+ @current_svg.export filename: savep
86
+ when '.svg', '.pdf', '.ps'
87
+ @current_svg.save filename: savep, format: ext
88
+ else
89
+ alert "not png, svg, ps or pdf"
90
+ end
91
+ end
92
+ end
93
+
94
+ button "Quit", margin: [10,0,0,0] do; Shoes.quit; end
95
+ end
96
+
97
+ flow do
98
+ @group = check checked: false
99
+ para "use image group", margin_right: 20
100
+ @subid = edit_line :width => 120, text: ""
101
+
102
+ @lbw = list_box do |lb|
103
+ @subid.text = '#' + (lb.text.nil? ? "": lb.text)
104
+ end
105
+ end
106
+
107
+ flow do
108
+ @aspect = check checked: true
109
+ para "use image aspect", margin_right: 16
110
+ @specified = edit_line :width => 100, text: "1.00"
111
+ end
112
+ end
113
+ end
@@ -0,0 +1,56 @@
1
+ NOTES = [['Welcome to the vJot Clone', <<-'END']]
2
+ This sample app is a notetaker, a clone of PJ Hyett's vjot.com.
3
+
4
+ Creating
5
+ ----------
6
+ Click "Add a New Note" and the jot will be loaded into the editor for reading or editing.
7
+
8
+ Editing
9
+ ---------
10
+ Click a jot's title to load it.
11
+
12
+ Saving
13
+ --------
14
+ There is no save button, the jot is saved as you edit.
15
+
16
+ END
17
+
18
+ Shoes.app :title => "vJot",
19
+ :width => 420, :height => 560, :resizable => false do
20
+
21
+ @note = NOTES.first
22
+ background "#C7EAFB"
23
+ stack :width => 400, :margin => 20 do
24
+ background "#eee", :curve => 12
25
+ border "#00D0FF", :strokewidth => 3, :curve => 12
26
+ stack :margin => 20 do
27
+ caption "vJot"
28
+ @title = edit_line @note[0], :width => 1.0 do
29
+ @note[0] = @title.text
30
+ load_list
31
+ end
32
+ stack :width => 1.0, :height => 200, :scroll => true do
33
+ @list = para
34
+ end
35
+ @jot = edit_box @note[1], :width => 1.0, :height => 200, :margin_bottom => 20 do
36
+ @note[1] = @jot.text
37
+ end
38
+ end
39
+ end
40
+
41
+ def load_list
42
+ @list.replace *(NOTES.map { |note|
43
+ [link(note.first) { @note = load_note(note); load_list }, "\n"]
44
+ }.flatten +
45
+ [link("+ Add a new Note") { NOTES << (@note = load_note); load_list }])
46
+ end
47
+
48
+ def load_note(note = ['New Note', ''])
49
+ @note = note
50
+ @title.text = note[0]
51
+ @jot.text = note[1]
52
+ note
53
+ end
54
+
55
+ load_list
56
+ end
@@ -0,0 +1,2 @@
1
+ *~
2
+ *.swp
@@ -0,0 +1,34 @@
1
+ /) , /)
2
+ _ (/ ___ _ _ _ _____ _/_ __ (/_
3
+ /_)_/ )_(_)_(/_/_)_ (__(_) / (_(__/ (__(_/_)
4
+
5
+ # Welcome to Shoes-Contrib
6
+
7
+ You've found the shoes-contrib project.
8
+
9
+ ## What is shoes-contrib?
10
+
11
+ Shoes-contrib is a collection of examples for [Shoes](http://shoesrb.com/),
12
+ the best little GUI toolkit for Ruby. We've packaged up a bunch of great
13
+ little scripts to show off different parts of Shoes, so if you're looking
14
+ to tinker around, need to find an example of some part of the api, or just
15
+ want to see what Shoes can do, you're in the right place!
16
+
17
+ ## How can I try the examples out?
18
+
19
+ If you'd like to give a specific example a shot, you can just copy any of
20
+ the examples into a file, and open them with Shoes. Easy peasy!
21
+
22
+ If you'd like to try out a bunch of examples, you can open the [browser.rb](http://github.com/shoes/shoes-contrib/blob/master/browser.rb)
23
+ file with Shoes, and it'll give you a little app that opens any of the other
24
+ examples, perfect for playing with a few of them!
25
+
26
+ ## How can I contribute?
27
+
28
+ If you've got any fun examples with Shoes, please fork the repo, add them, and
29
+ send us a pull request! Bonus points for smaller examples, ones with comments,
30
+ and screenshots of your example in action.
31
+
32
+ ## I have a question!
33
+
34
+ If something's not clear, just send an email to the shoes mailing list, shoes@librelist.com, and we'll straighten things out. Or, hop on #shoes on Freenode, if you're into that whole IRC thing.
@@ -0,0 +1,21 @@
1
+ Shoes.app(:width => 300,
2
+ :height => 400) do
3
+
4
+ fill rgb(0, 0.6, 0.9, 0.1)
5
+ stroke rgb(0, 0.6, 0.9)
6
+ strokewidth 0.25
7
+
8
+ @shoes = []
9
+ 10.times {
10
+ @shoes.push(oval :left => (-5..self.width).rand,
11
+ :top => (-5..self.height).rand,
12
+ :radius => (25..50).rand)
13
+ }
14
+
15
+ animate do |i|
16
+ @shoes.each do |s|
17
+ s.top += (-20..20).rand
18
+ s.left += (-20..20).rand
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,59 @@
1
+ #
2
+ # This is from juixe "Running with Shoes - 2D Examples"
3
+ # http://juixe.com/techknow/index.php/2007/10/19/running-with-shoes-2d-examples/
4
+ #
5
+ # This is an animation of two concentric sets of circles moving in different
6
+ # directions. As the circles move they change size and color.
7
+ #
8
+
9
+ degree = 0
10
+ color = 0
11
+ size = 0
12
+
13
+ Shoes.app :width => 537, :height => 500 do
14
+ mx, my = (500/2).to_i, (537/2).to_i
15
+ animate(24) do
16
+ clear do
17
+ # Manage color
18
+ nostroke
19
+ background rgb(1.0, 0.5, 1.0, 1.0)
20
+
21
+ # Update some variables
22
+ degree += 1
23
+ size += 1
24
+ degree = 0 if(degree >= 360)
25
+ size = 0 if(size >= 100)
26
+ color = 0.0 if(color >= 1.0)
27
+ color += 0.05 if(degree % 10 == 0)
28
+
29
+ # Draw inner circle
30
+ fill red(color)
31
+ 10.times do |i|
32
+ current_size = 100 + size
33
+ d = to_radians(i * 60 + degree)
34
+ rx = Math::cos(d) * 100
35
+ ry = Math::sin(d) * 100
36
+ center_x = -current_size/2 + rx + mx
37
+ center_y = -current_size/2 + ry + my
38
+ oval center_x, center_y, current_size, current_size
39
+ end
40
+
41
+ # Draw outer circle
42
+ fill blue(color)
43
+ 20.times do |i|
44
+ current_size = 50 + size
45
+ d = to_radians(i * 30 - degree)
46
+ rx = Math::cos(d) * 150
47
+ ry = Math::sin(d) * 150
48
+ center_x = -current_size/2 + rx + mx
49
+ center_y = -current_size/2 + ry + my
50
+ oval center_x, center_y, current_size, current_size
51
+ end
52
+ end
53
+ end
54
+ end
55
+
56
+ # Convert degrees to radians
57
+ def to_radians(deg)
58
+ deg * Math::PI / 180
59
+ end
@@ -0,0 +1,31 @@
1
+ #
2
+ # Example from Getting Started with Shoes on OS X blog post found here:
3
+ # http://lethain.com/entry/2007/oct/15/getting-started-shoes-os-x/
4
+ #
5
+ trails = [[0,0]] * 60
6
+ shape = 0
7
+ Shoes.app do
8
+ keypress do |k|
9
+ case k
10
+ when " "
11
+ shape += 1
12
+ end
13
+ end
14
+ nostroke
15
+ fill rgb(0x30, 0xFF, 0xFF, 0.6)
16
+ animate(24) do
17
+ trails.shift
18
+ trails << self.mouse[1,2]
19
+ clear do
20
+ trails.each_with_index do |(x, y), i|
21
+ i += 1
22
+ case shape%2
23
+ when 0
24
+ rect :left => x, :top => y, :width => i, :height => i
25
+ else
26
+ oval :left => x, :top => y, :radius => i, :center => true
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,27 @@
1
+ #
2
+ # From infoq: "Ruby Shoes for lightweight GUIs, graphics and animation"
3
+ # http://www.infoq.com/news/2007/09/ruby-shoes
4
+ #
5
+ Shoes.app do
6
+ radius = 20.0
7
+ vert = width - 30.0
8
+ hor = width - 30.0
9
+ o = oval(hor, vert, 10.0)
10
+ animate(10) do |anim|
11
+ nofill
12
+ clear do
13
+ oval(hor - radius, vert-radius, radius*2.0)
14
+ satellites = vert /10
15
+ satellites.to_i.times {|x|
16
+ h = hor + Math::sin(((6.28/satellites) * x )) * 40.0
17
+ v = vert - Math::cos(((6.28/satellites) * x ))* 40.0
18
+ fill rgb(1.0/satellites, 1.0/satellites, 0.8)
19
+ oval(h, v, 5.0)
20
+ }
21
+ skew vert/10*Math::cos(anim)
22
+ end
23
+ end
24
+ motion do |x,y|
25
+ hor, vert = x, y
26
+ end
27
+ end
@@ -0,0 +1,12 @@
1
+ Shoes.app do
2
+ @o = oval :top => 0, :left => 0, :radius => 40
3
+
4
+ stack :margin => 40 do
5
+ title "Dancing With a Circle"
6
+ subtitle "How graceful and round."
7
+ end
8
+
9
+ motion do |x,y|
10
+ @o.move width - x, height - y
11
+ end
12
+ end