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,51 @@
1
+ # chart_series test
2
+ Shoes.app width: 600, height: 500 do
3
+ @values1 = [24, 22, 10, 13, 20, 8, 22]
4
+ @x_axis1 = ['a','b','c','d','e','f', 'g']
5
+ @top = stack do
6
+ para "Chart series tests"
7
+ flow do
8
+ button "quit" do Shoes.quit end
9
+ button "List" do
10
+ @top.append do
11
+ v = @cs.values
12
+ l = @cs.labels
13
+ para "Length = #{v.size} min: #{@cs.min}, max: #{@cs.max}"
14
+ para "short: #{@cs.name}, desc: #{@cs.desc} color: #{@cs.color}"
15
+ para "stoke: #{@cs.strokewidth} points: #{@cs.points}"
16
+ v.each_index do |idx|
17
+ para "#{l[idx]} #{v[idx]}"
18
+ end
19
+ end
20
+ end
21
+ button "Change Things" do
22
+ @cs.min = 4
23
+ @cs.max = 30
24
+ @cs.desc = "Nothing Like It"
25
+ @cs.color = coral
26
+ @cs.strokewidth = 2
27
+ @cs.points = "circle" # line charts do respect this, scatter does (gr4.rb)
28
+ ary = @cs.get(3)
29
+ puts "get x: #{ary[0]} y: #{ary[1]}"
30
+ @cs.set 7, ['whoa!', 29]
31
+ ary = @cs.get(7)
32
+ puts "set x: #{ary[0]} y: #{ary[1]}"
33
+ # trigger redraw of chart
34
+ @grf.redraw_to(@values1.size)
35
+ end
36
+ end
37
+ widget_width = 580
38
+ widget_height = 300
39
+ stack do
40
+ flow do
41
+ @grf = plot widget_width, widget_height, title: "My Graph", caption:
42
+ "Look at that! Booyah!!" , font: "Helvetica", auto_grid: true,
43
+ default: "skip", background: honeydew
44
+ end
45
+ end
46
+ @cs = @grf.add values: @values1, labels: @x_axis1,
47
+ name: "foobar", min: 6, max: 26 , desc: "foobar Yy", color: dodgerblue,
48
+ points: true
49
+ end
50
+ end
51
+
@@ -0,0 +1,73 @@
1
+ # good-graph.rb ?
2
+ Shoes.app width: 700, height: 610 do
3
+ @values1 = [24, 22, 10, 13, 20, 8, 22]
4
+ @x_axis1 = ['a','b','c','d','e','f', 'g']
5
+ #@values1 = [24, 22, nil, 13, 20, 8, 22]
6
+ #@x_axis1 = ['a','b',nil,'d','e','f', 'g']
7
+ @values2 = [200, 150, 75, 125, 75, 50, 125]
8
+ stack do
9
+ para "Plot Widget Demo"
10
+ flow do
11
+ button "quit" do Shoes.quit end
12
+ end
13
+ widget_width = 600
14
+ widget_height = 400
15
+ stack do
16
+ flow do
17
+ para "This is mine!"
18
+ @grf = plot widget_width, widget_height, title: "My Graph", caption:
19
+ "Look at that! Booyah!!" , font: "Helvetica", auto_grid: true, chart: "timeseries",
20
+ default: "skip", click: proc {|btn, l, t| puts "click on #{@grf.near_x(l)}" }
21
+ end
22
+ end
23
+ @grf.add values: @values1, labels: @x_axis1,
24
+ name: "foobar", min: 6, max: 26 , desc: "foobar Yy", color: dodgerblue,
25
+ points: true
26
+ flow do
27
+ button "add #2" do
28
+ cs2 = chart_series values: @values2, name: "bartab", min: @values2.min, max: @values2.max , color: coral,
29
+ strokewidth: 3
30
+ @grf.add cs2
31
+ #@grf.add values: @values2,
32
+ # name: "bartab", min: @values2.min, max: @values2.max , color: "coral",
33
+ # strokewidth: 3 #, points: true
34
+ end
35
+ button "delete #2" do
36
+ @grf.delete(1)
37
+ end
38
+ button "drop two right" do
39
+ last = @grf.last
40
+ #puts "chopping #{last} bye two"
41
+ @grf.set_last last-2
42
+ end
43
+ button "drop one left" do
44
+ @grf.set_first (@grf.first + 1)
45
+ end
46
+ button "save as" do
47
+ file = ask_save_file
48
+ @grf.save_as file if file
49
+ end
50
+ end
51
+ button "Add points to #1" do
52
+ s2 = @grf.id("bartab")
53
+ @grf.delete(s2) if s2 # make sure only series1 is on screen
54
+ idx = @values1.size
55
+ m = @values1.min # min and max don't work if nil is in the data
56
+ rng = @values1.max - m
57
+ i = 0
58
+ tmr = every(1) do
59
+ tmr.stop if i >= 5
60
+ rv = rand(rng) + m
61
+ idx = idx + 1
62
+ @values1 << rv
63
+ @x_axis1 << idx.to_s
64
+ @grf.redraw_to(idx) #problematic
65
+ i = i + 1
66
+ end
67
+ end
68
+ end
69
+ def grf_clicked (me, btn, t, l)
70
+ puts "clicked #{btn}, #{t}, #{l}"
71
+ end
72
+ end
73
+
@@ -0,0 +1,40 @@
1
+ # two grapsh
2
+ Shoes.app width: 800, height: 500 do
3
+ @values1 = [24, 22, 10, 13, 20, 8, 22]
4
+ @x_axis1 = ['a','b','c','d','e','f', 'g']
5
+
6
+ @x_axis2 = ['a','b',nil,'d','e','f', 'g']
7
+ #@values2 = [200, 150, 75, 125, 75, 50, 125]
8
+ @values2 = [200, 150, 75, 125, nil, 50, 125]
9
+ stack do
10
+ para "Plot Widget Demo 2"
11
+ flow do
12
+ button "quit" do Shoes.quit end
13
+ end
14
+ widget_width = 400
15
+ widget_height = 300
16
+ stack do
17
+ flow do
18
+ #para "This is mine!"
19
+ @grf = plot widget_width, widget_height, title: "My Graph", caption:
20
+ "Look at that! Booyah!!" , font: "Helvetica", auto_grid: true,
21
+ default: "skip"
22
+ @grf2 = plot widget_width, widget_height+100, title: "2nd Graph", caption:
23
+ "Amazing!!" , font: "Helvetica", auto_grid: false, chart: "line",
24
+ default: "skip", background: cornsilk
25
+
26
+ end
27
+ end
28
+ cs1 = chart_series values: @values1, labels: @x_axis1,
29
+ name: "foobar", min: 6, max: 26 , desc: "foobar Yy", color: dodgerblue,
30
+ points: true
31
+ @grf.add cs1
32
+ #@grf.add values: @values1, labels: @x_axis1,
33
+ # name: "foobar", min: 6, max: 26 , desc: "foobar Yy", color: dodgerblue,
34
+ # points: true
35
+ @grf2.add values: @values2, labels: @x_axis2,
36
+ name: "Bar", min: 50, max: 250, desc: "BarBaz", color: dodgerblue,
37
+ points: true
38
+ end
39
+ end
40
+
@@ -0,0 +1,47 @@
1
+ # two graphs - line and bar
2
+ Shoes.app width: 800, height: 500 do
3
+ @values1 = [24, 22, 10, 13, 20, 8, 22]
4
+ @x_axis1 = ['a','b','c','d','e','f', 'g']
5
+
6
+ # @x_axis2 = ['a','b',nil,'d','e','f', 'g']
7
+ @x_axis2 = ['a','b','c','d','e','f', 'g']
8
+ @values2 = [200, 150, 75, 125, 75, 225, 125]
9
+ # @values2 = [200, 150, 75, 125, nil, 50, 125]
10
+ stack do
11
+ para "Plot Demo Line and Column"
12
+ flow do
13
+ button "quit" do Shoes.quit end
14
+ end
15
+ widget_width = 400
16
+ widget_height = 300
17
+ stack do
18
+ flow do
19
+ #para "This is mine!"
20
+ @grf = plot widget_width, widget_height, title: "My Graph", caption:
21
+ "Look at that! Booyah!!" , font: "Helvetica", auto_grid: true,
22
+ default: "skip", background: honeydew
23
+ @grf2 = plot widget_width, widget_height+100, title: "Column Graph", caption:
24
+ "Amazing!!" , font: "Mono", auto_grid: false,
25
+ default: "skip", background: cornsilk, chart: "column", boundary_box: false
26
+ end
27
+ end
28
+ @grf.add values: @values1, labels: @x_axis1,
29
+ name: "foobar", min: 6, max: 26 , desc: "foobar Yy", color: dodgerblue,
30
+ points: true
31
+ @grf.add values: @values2, labels: @x_axis2,
32
+ name: "Tab", min: @values2.min, max: @values2.max, desc: "BarTab", color: coral,
33
+ points: true, strokewidth: 2
34
+
35
+ @grf2.add values: @values1, labels: @x_axis1,
36
+ name: "Bar", min: 0, max: 30, desc: "foobar Yy", color: rgb(220, 20, 60, 172),
37
+ points: true, strokewidth: 12
38
+ cs2 = chart_series values: @values2, labels: @x_axis2,
39
+ name: "Tab", min: 50, max: 230, desc: "BarTab", color: green,
40
+ points: true, strokewidth: 6
41
+ @grf2.add cs2
42
+ #@grf2.add values: @values2, labels: @x_axis2,
43
+ # name: "Tab", min: 50, max: 230, desc: "BarTab", color: green,
44
+ # points: true, strokewidth: 6
45
+ end
46
+ end
47
+
@@ -0,0 +1,35 @@
1
+ # scatter graph -
2
+ # data comes form OpenOffice example
3
+ Shoes.app width: 620, height: 480 do
4
+ @values1 = [14,13,15,27,17,18,33,25,21] # x values - Wind speed
5
+ @values2 = [11,17,23,39,22,31,47,48,41] # y values - Cloud cover
6
+
7
+ stack do
8
+ para "Plot Scatter Demo 4"
9
+ flow do
10
+ button "quit" do Shoes.quit end
11
+ end
12
+ widget_width = 600
13
+ widget_height = 400
14
+ stack do
15
+ flow do
16
+ @grf = plot widget_width, widget_height, title: "Weather Conditions", caption:
17
+ "Look at that! Booyah!!" , font: "Helvetica", auto_grid: true,
18
+ default: "skip", background: honeydew, chart: "scatter"
19
+ end
20
+ end
21
+ cs1 = @grf.add values: @values1,
22
+ name: "Wind", min: 12.5, max: 35 , color: dodgerblue,
23
+ points: "dot", strokewidth: 1, desc: "Wind speed (km/hr)"
24
+ cs1.points = "box"
25
+ cs1.strokewidth = 5
26
+ cs2 = chart_series values: @values2, name: "Clouds",
27
+ min: 10, max: 50 , color: black,
28
+ points: "box", strokewidth: 1, desc: "Cloud Cover (percentage)"
29
+ @grf.add cs2
30
+ #@grf.add values: @values2, name: "Clouds",
31
+ # desc: "Cloud Cover (percentage)", min: 10, max: 50 , color: black,
32
+ # points: "box", strokewidth: 1
33
+ end
34
+ end
35
+
@@ -0,0 +1,31 @@
1
+ # pie graph -
2
+ # data is Shoes https downloads on a Sunday (light day)
3
+ Shoes.app width: 620, height: 480 do
4
+ @values1 = [15, 5, 4, 4, 3, 3, 1, 1] # downloads
5
+ @obs1 = ["gtk3-32.exe", "gtk3-x86_64.install", "osx-10.9.tgz", "/",
6
+ "3.2.25.exe", "robots.txt", "gtk3-i686,install,", "gtk3-armhf.install"]
7
+
8
+ stack do
9
+ para "Plot Pie Demo 5"
10
+ flow do
11
+ button "quit" do Shoes.quit end
12
+ end
13
+ widget_width = 600
14
+ widget_height = 400
15
+ stack do
16
+ flow do
17
+ @grf = plot widget_width, widget_height, title: "Shoes Https downloads", caption:
18
+ "popularity " , font: "Helvetica", auto_grid: true,
19
+ default: "skip", background: white, chart: "pie", percent: true,
20
+ colors: [yellow, olive]
21
+ end
22
+ end
23
+ cs = chart_series values: @values1, labels: @obs1,
24
+ name: "download", min: @values1.min, max: @values1.max
25
+ @grf.add cs
26
+ #@grf.add values: @values1, labels: @obs1,
27
+ #name: "download", min: @values1.min, max: @values1.max #, color: dodgerblue,
28
+ #points: "dot", strokewidth: 1
29
+ end
30
+ end
31
+
@@ -0,0 +1,35 @@
1
+ # Radar graph -
2
+ Shoes.app width: 620, height: 480 do
3
+ @xobs = ["internet", "television", "radio", "newspaper", "magazine"]
4
+ @values1 = [80, 160, 145, 75, 80]
5
+ @values2 = [180, 90, 95, 90, 90]
6
+ @columns = [ ["Internet", 0, 200, "%3.0f k"],
7
+ ["Television", 0, 250," %3.0f k" ],
8
+ {label: "Radio", min: 0, max: 200, format: "%3.0f k"},
9
+ ["Newspaper", 0, 200, "%3.0f k"],
10
+ ["Magazine", 0, 200, "%3.0f k"]
11
+ ]
12
+ stack do
13
+ para "Plot Radar Demo 6"
14
+ flow do
15
+ button "quit" do Shoes.quit end
16
+ end
17
+ widget_width = 600
18
+ widget_height = 400
19
+ stack do
20
+ flow do
21
+ @grf = plot widget_width, widget_height, title: "Advertising", caption:
22
+ "Budget Spend" , font: "Helvetica", auto_grid: true,
23
+ default: "skip", background: cornsilk, chart: "radar", column_settings: @columns
24
+ end
25
+ end
26
+ @grf.add values: @values1, labels: @xobs,
27
+ name: "Year 1", min: 0, max: 200, color: dodgerblue,
28
+ points: "dot", strokewidth: 3
29
+ cs = app.chart_series values: @values2, labels: @xobs,
30
+ name: "Year 2", min: 0, max: 200, color: coral,
31
+ points: "dot", strokewidth: 3
32
+ @grf.add cs
33
+ end
34
+ end
35
+
@@ -0,0 +1,37 @@
1
+ # Radar graph -
2
+ Shoes.app width: 620, height: 480 do
3
+ @pre_test = [71, 35, 62, 55, 88, 76, 55]
4
+ @practice = [70, 53, 83, 94, 71, 59, 82]
5
+ @post_test = [94, 93, 96, 89, 96, 88, 93]
6
+ @dimensions = [ ["Anger", 0, 100, "%3.0f%%"],
7
+ ["Contempt", 0, 100, "%3.0f%%"],
8
+ {label: "Disgust", min: 0, max: 100, format: "%3.0f%%"},
9
+ ["Fear", 0, 100, "%3.0f%%"],
10
+ ["Joy", 0, 100, "%3.0f%%"],
11
+ ["Sadness", 0, 100, "%3.0f%%"],
12
+ ["Surprise", 0, 100, "%3.0f%%"]
13
+ ]
14
+ stack do
15
+ para "Plot Radar Demo 7"
16
+ flow do
17
+ button "quit" do Shoes.quit end
18
+ end
19
+ widget_width = 600
20
+ widget_height = 400
21
+ stack do
22
+ flow do
23
+ @grf = plot widget_width, widget_height, title: "Microexpressions Scores",
24
+ font: "Helvetica", auto_grid: true, grid_lines: 3, label_radius: 1.10,
25
+ default: "skip", chart: "radar", column_settings: @dimensions
26
+ end
27
+ end
28
+ @grf.add values: @pre_test, color: blue,
29
+ name: "Pre-Test Score", min: 0, max: 100, strokewidth: 3
30
+ cs = app.chart_series values: @practice, color: red,
31
+ name: "Practice Score", min: 0, max: 100, strokewidth: 3
32
+ @grf.add cs
33
+ @grf.add values: @post_test, color: orange,
34
+ name: "Post-Test Score", min: 0, max: 100, strokewidth: 3
35
+ end
36
+ end
37
+
@@ -0,0 +1,219 @@
1
+ require 'csv'
2
+ # csv can be nasty with frozen values. Grrr.
3
+
4
+ class DataSeries
5
+
6
+ @name = ""
7
+ @values = []
8
+ @obs = []
9
+ attr_accessor :name, :values, :obvs
10
+
11
+ def initialize(filename)
12
+ @values = []
13
+ @obvs = []
14
+ load_file(filename)
15
+ end
16
+
17
+ def load_csv (filename, vals, obvs)
18
+ hdr_name = nil
19
+ CSV.foreach(filename, 'r') do |row|
20
+ if !hdr_name
21
+ hdr_name = row[0].dup if !hdr_name
22
+ end
23
+ dts = row[1].to_str.dup
24
+ #y = dts[0..3].to_i
25
+ #m = dts[4..5].to_i
26
+ #d = dts[6..7].to_i
27
+ #dt = DateTime.new(y,m,d,16,0,0,'-4')
28
+ v = row[2].to_f
29
+ @obvs << "#{dts[2..3]}-#{dts[4..5]}-#{dts[6..7]}"
30
+ @values << v
31
+ end
32
+ return hdr_name
33
+ end
34
+
35
+ # I know the data is well formed csv
36
+ def load_file (filename)
37
+ @name = nil
38
+ File.open(filename, mode: 'r').each do |ln|
39
+ flds = ln.split(',')
40
+ if !@name
41
+ @name = flds[0]
42
+ end
43
+ dts = flds[1];
44
+ @obvs << "#{dts[2..3]}-#{dts[4..5]}-#{dts[6..7]}"
45
+ @values << flds[2].to_f
46
+ end
47
+ #puts "load_file: #{@values.size}"
48
+ end
49
+
50
+ def size
51
+ return @values.size
52
+ end
53
+
54
+ def max
55
+ @values.max
56
+ end
57
+
58
+ def min
59
+ @values.min
60
+ end
61
+
62
+ def name
63
+ @name
64
+ end
65
+
66
+ end #class
67
+
68
+ Shoes.app width: 620, height: 610 do
69
+ @series =[]
70
+ @zooming = false;
71
+ @zoom_beg = 0
72
+ @zoom_end = 0;
73
+
74
+ def zoom_in
75
+ range = @zoom_end - @zoom_beg
76
+ @zoom_beg = (@zoom_beg + (range * 0.125)).to_i
77
+ @zoom_end = (@zoom_end - (range * 0.125)).to_i
78
+ puts "zoom in #{@zoom_beg} #{@zoom_end}"
79
+ @zooming = true;
80
+ @grf.zoom @zoom_beg, @zoom_end
81
+ end
82
+
83
+ def zoom_out
84
+ range = @zoom_end - @zoom_beg
85
+ sz = @series[0].size
86
+ @zoom_beg = (@zoom_beg - (range * 0.125)).to_i
87
+ @zoom_beg = 0 if @zoom_beg < 0
88
+ @zoom_end = (@zoom_end + (range * 0.125)).to_i
89
+ @zoom_end = sz if @zoom_end > sz
90
+ puts "zoom out #{@zoom_beg} #{@zoom_end}"
91
+ @grf.zoom @zoom_beg, @zoom_end
92
+ if @zoom_beg == 0 && @zoom_end == sz
93
+ puts "zoom off"
94
+ @zooming = false
95
+ end
96
+ end
97
+
98
+ def zoom_scroll_left
99
+ if @zooming
100
+ range = @zoom_end - @zoom_beg
101
+ sz = @series[0].size
102
+ @zoom_beg = (@zoom_beg - (range * 0.125)).to_i
103
+ @zoom_beg = 0 if @zoom_beg < 0
104
+ @zoom_end = (@zoom_end - (range * 0.125)).to_i
105
+ @zoom_end = sz if @zoom_end > sz
106
+ puts "scroll left #{@zoom_beg} #{@zoom_end}"
107
+ @grf.zoom @zoom_beg, @zoom_end
108
+ end
109
+ end
110
+
111
+ def zoom_scroll_right
112
+ if @zooming
113
+ range = @zoom_end - @zoom_beg
114
+ sz = @series[0].size
115
+ @zoom_beg = (@zoom_beg + (range * 0.125)).to_i
116
+ @zoom_beg = 0 if @zoom_beg < 0
117
+ @zoom_end = (@zoom_end + (range * 0.125)).to_i
118
+ @zoom_end = sz if @zoom_end > sz
119
+ puts "scroll right #{@zoom_beg} #{@zoom_end}"
120
+ @grf.zoom @zoom_beg, @zoom_end
121
+ end
122
+ end
123
+
124
+ def zoom_end_key
125
+ @zoom_beg = 0
126
+ @zoom_end = @series[0].size
127
+ @zooming = false
128
+ @grf.zoom @zoom_beg, @zoom_end
129
+ end
130
+
131
+ def zoom_home_key
132
+ @zoom_beg = 0
133
+ @zoom_end = @series[0].size
134
+ @zooming = false
135
+ @grf.zoom @zoom_beg, @zoom_end
136
+ end
137
+
138
+ def max (a, b)
139
+ return (a >= b) ? a : b
140
+ end
141
+
142
+ def min (a, b)
143
+ return (a <= b) ? a : b
144
+ end
145
+
146
+ # like zoom in, but it centers the display on the clicked observation (index)
147
+ # Note that the idx lies between displayed beg and end indices already
148
+ def zoom_center(x)
149
+ idx = @grf.near_x x
150
+ printf("zoom center start: %3d % 4d % 4d % 4d\n", x, @zoom_beg, idx, @zoom_end)
151
+ range = @zoom_end - @zoom_beg
152
+ cpidx = idx / range
153
+
154
+ newl = (@zoom_beg + (range * 0.125)).to_i
155
+ newr = (@zoom_end - (range * 0.125)).to_i
156
+ @zoom_beg = newl
157
+ @zoom_end = newr
158
+ printf("zoom center end: %3d % 4d % 4d % 4d \n", x, @zoom_beg, idx, @zoom_end)
159
+ @zooming = true;
160
+ @grf.zoom @zoom_beg, @zoom_end
161
+ end
162
+
163
+ @loaddir = Dir.getwd
164
+ #puts "default load dir #{@loaddir}"
165
+ stack do
166
+ flow do
167
+ button "quit" do Shoes.quit end
168
+ button "Load Dir" do
169
+ ndir = ask_open_folder
170
+ @loaddir = ndir if ndir
171
+ end
172
+ button "load file" do
173
+ Dir.chdir(@loaddir) do
174
+ filename = ask_open_file title: "Please be a csv file"
175
+ if filename
176
+ @series << DataSeries.new(filename)
177
+ newidx = @series.size - 1
178
+ ser = @series[newidx]
179
+ @grf.add values: ser.values, max: ser.max * 1.01,
180
+ min: ser.min, name: ser.name, labels: ser.obvs, points: true
181
+ @zoom_end = ser.size
182
+ end
183
+ end
184
+ end
185
+ button "in %25" do
186
+ zoom_in
187
+ end
188
+ button "out %25" do
189
+ zoom_out
190
+ end
191
+ button "reset" do
192
+ zoom_home_key
193
+ end
194
+ button "save as" do
195
+ file = ask_save_file
196
+ @grf.save_as file if file
197
+ end
198
+ end
199
+ @grf = plot 600, 400, title: "Explore Market Data", caption: "Depends on the data. eh?",
200
+ x_ticks: 8, y_ticks: 10, auto_grid: true, click: proc {|btn, l, t| zoom_center l}, chart: "timeseries"
201
+ keypress do |k|
202
+ #puts "key: #{k.inspect}"
203
+ case k
204
+ when :home
205
+ zoom_home_key
206
+ when :end
207
+ zoom_end_key
208
+ when "+"
209
+ zoom_in
210
+ when "-" , "_"
211
+ zoom_out
212
+ when :left
213
+ zoom_scroll_left
214
+ when :right
215
+ zoom_scroll_right
216
+ end
217
+ end
218
+ end
219
+ end
@@ -0,0 +1,40 @@
1
+ # two graphs - line and bar
2
+ Shoes.app width: 800, height: 500 do
3
+ @values1 = [24, 22, 10, 13, 20, 8, 22]
4
+ @x_axis1 = ['a','b','c','d','e','f', 'g']
5
+ @values2 = [200, 150, 75, 125, 75, 225, 125]
6
+ @x_axis2 = ['a','b','c','d','e','f', 'g']
7
+ stack do
8
+ para "Plot Demo Line and Column"
9
+ flow do
10
+ button "quit" do Shoes.quit end
11
+ end
12
+ widget_width = 400
13
+ widget_height = 300
14
+ stack do
15
+ flow do
16
+ @grf = plot widget_width, widget_height, title: "My Graph", caption:
17
+ "Look at that! Booyah!!" , font: "Helvetica", auto_grid: true,
18
+ default: "skip", background: honeydew
19
+ @grf2 = plot widget_width, widget_height+100, title: "Column Graph", caption:
20
+ "Amazing!!" , font: "Mono", auto_grid: false,
21
+ default: "skip", background: cornsilk, chart: "column", boundary_box: false
22
+ end
23
+ end
24
+ @grf.add values: @values1, labels: @x_axis1,
25
+ name: "foobar", min: 6, max: 26 , desc: "foobar Yy", color: dodgerblue,
26
+ points: true
27
+ @grf.add values: @values2, labels: @x_axis2,
28
+ name: "Tab", min: @values2.min, max: @values2.max, desc: "BarTab", color: coral,
29
+ points: true, strokewidth: 2
30
+
31
+ @grf2.add values: @values1, labels: @x_axis1,
32
+ name: "Bar", min: 0, max: 30, desc: "foobar Yy", color: rgb(220, 20, 60),
33
+ points: true, strokewidth: 12
34
+ cs2 = chart_series values: @values2, labels: @x_axis2,
35
+ name: "Tab", min: 50, max: 230, desc: "BarTab", color: green,
36
+ points: true, strokewidth: 6
37
+ @grf2.add cs2
38
+ end
39
+ end
40
+
@@ -0,0 +1,29 @@
1
+ Shoes.app do
2
+ background "#eee"
3
+ @list = stack do
4
+ para "Enter a URL to download:", :margin => [10, 8, 10, 0]
5
+ flow :margin => 10 do
6
+ @url = edit_line :width => -120
7
+ @url.text ='http://shoes.mvmanila.com'
8
+ button "Download", :width => 120 do
9
+ @list.append do
10
+ stack do
11
+ background "#eee".."#ccd"
12
+ stack :margin => 10 do
13
+ dld = nil
14
+ para @url.text, " [", link("cancel") { dld.abort }, "]", :margin => 0
15
+ d = inscription "Beginning transfer.", :margin => 0
16
+ p = progress :width => 1.0, :height => 14
17
+ dld = download @url.text, :save => File.basename(@url.text),
18
+ :pause => 1.25,
19
+ :progress => proc { |dl|
20
+ d.text = "Transferred #{dl.transferred} of #{dl.length} bytes (#{dl.percent}%)"
21
+ p.fraction = dl.percent },
22
+ :finish => proc { |dl| d.text = "Download completed"}
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,20 @@
1
+ Shoes.app do
2
+ def main slot, stuff
3
+ slot.clear do
4
+ stuff.each_with_index do |x, i|
5
+ flow do ####### FIX 1 : COMMENT THIS LINE
6
+ r = radio :item, checked: true; para "Radio-#{i}"
7
+ r.checked = true if i == 1
8
+ end ####### FIX 1 : COMMENT THIS LINE
9
+ end
10
+ end
11
+ end
12
+ stack do
13
+ ITEMS = Array.new( 3, 1 )
14
+ desktop = stack left: 20, top: 40, width: 200
15
+ main desktop, ITEMS
16
+ button "Reset" do
17
+ main desktop, ITEMS
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,18 @@
1
+ # group
2
+ Shoes.app do
3
+ stack do
4
+ para "Among these films, which do you prefer?"
5
+ flow do
6
+ radio :films
7
+ para "The Taste of Tea by Katsuhito Ishii"
8
+ end
9
+ flow do
10
+ radio :films
11
+ para "Kin-Dza-Dza by Georgi Danelia"
12
+ end
13
+ flow do
14
+ radio :films
15
+ para "Children of Heaven by Majid Majidi"
16
+ end
17
+ end
18
+ end