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,57 @@
1
+ require 'yaml'
2
+ Shoes.app do
3
+ stack do
4
+ tagline "Capture Clicks for another app"
5
+ para "Load this"
6
+ flow do
7
+ @el = edit_line width: 450
8
+ @el.text = "#{DIR}/samples/simple/chipmunk.rb"
9
+ button "select app" do
10
+ path = ask_open_file
11
+ @el.text = path if path
12
+ end
13
+ end
14
+ para "Save events to"
15
+ flow do
16
+ @sv = edit_line width: 450
17
+ @sv.text = "#{Dir.getwd}/event.yaml"
18
+ button "Change" do
19
+ path = ask_save_file
20
+ @sv.text = path if path
21
+ end
22
+ end
23
+ flow do
24
+ button "Start app and capture" do
25
+ @capture = {}
26
+ events = []
27
+ eval IO.read(@el.text).force_encoding("UTF-8"), TOPLEVEL_BINDING, @el.text
28
+ w2 = Shoes.APPS[-1]
29
+ x = w2.left
30
+ y = w2.top
31
+ w2.move x+80, y-40
32
+ base_t = Time.now
33
+ @capture[:context] = {app: @el.text, time: base_t}
34
+ @capture[:events] = events
35
+ w2.event = proc do |evt|
36
+ case evt.type
37
+ when :click
38
+ #$stderr.puts "click handler2 with #{evt.type}"
39
+ events << { time: (Time.now - base_t), button: evt.button, x: evt.x, y: evt.y,
40
+ modifiers: evt.modifiers, object: evt.object, type: evt.type}
41
+ evt.accept = true
42
+ when :btn_activate
43
+ events << { time: (Time.now - base_t), button: evt.button, x: evt.x, y: evt.y,
44
+ modifiers: evt.modifiers, object: evt.object, type: evt.type}
45
+ else
46
+ evt.accept = true
47
+ end
48
+ end
49
+ end
50
+ end
51
+ flow do
52
+ button "Stop and save" do
53
+ File.open(@sv.text, 'w') {|f| YAML.dump(@capture, f)}
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,47 @@
1
+ ---
2
+ :context:
3
+ :app: "/home/ccoupe/Projects/shoes3/minlin/samples/simple/chipmunk.rb"
4
+ :time: 2017-12-17 21:37:26.497452015 -07:00
5
+ :events:
6
+ - :time: 3.111306338
7
+ :button: 1
8
+ :x: 19
9
+ :y: 59
10
+ :modifiers: shift
11
+ :object: &1 !ruby/object:Shoes::Types::Shape {}
12
+ :type: :click
13
+ - :time: 6.447366351
14
+ :button: 1
15
+ :x: 82
16
+ :y: 52
17
+ :modifiers: control
18
+ :object: &3 !ruby/object:Shoes::Types::Shape {}
19
+ :type: :click
20
+ - :time: 10.895925171
21
+ :button: 1
22
+ :x: 112
23
+ :y: 49
24
+ :modifiers: shift
25
+ :object: &2 !ruby/object:Shoes::Types::Shape {}
26
+ :type: :click
27
+ - :time: 15.735470191
28
+ :button: 1
29
+ :x: 17
30
+ :y: 52
31
+ :modifiers: control_shift
32
+ :object: *1
33
+ :type: :click
34
+ - :time: 19.503386712
35
+ :button: 1
36
+ :x: 109
37
+ :y: 52
38
+ :modifiers: control_shift
39
+ :object: *2
40
+ :type: :click
41
+ - :time: 22.647864317
42
+ :button: 1
43
+ :x: 82
44
+ :y: 54
45
+ :modifiers:
46
+ :object: *3
47
+ :type: :click
@@ -0,0 +1,8 @@
1
+ Shoes.app do
2
+ stack do
3
+ @ev = shoesevent type: :click, button: 1, x: 222, y: 333
4
+ para "Event #{@ev.type} #{@ev.button} #{@ev.x} #{@ev.y} will use: #{@ev.accept}"
5
+ @ev.accept = false
6
+ para "Event #{@ev.type} #{@ev.button} #{@ev.x} #{@ev.y} will use: #{@ev.accept}"
7
+ end
8
+ end
@@ -0,0 +1,51 @@
1
+ Shoes.app do
2
+
3
+ event do |evt|
4
+ # do not trigger new events here unless you can handle them
5
+ case evt.type
6
+ when :click
7
+ $stderr.puts "click handler called: #{evt.type} #{evt.button}, #{evt.x} #{evt.y} #{evt.modifiers}"
8
+ evt.accept = @ck1.checked?
9
+ when :btn_activate
10
+ $stderr.puts "button #{evt.object} at #{evt.type} #{evt.button} #{evt.x} #{evt.y} #{evt.width} #{evt.height}"
11
+ evt.accept = @ck1.checked?
12
+ else
13
+ evt.accept = true
14
+ end
15
+ end
16
+
17
+ stack do
18
+ para "Click test 1"
19
+ flow do
20
+ @ck1 = check checked: true; para "pass clicks to Shoes"
21
+ end
22
+ flow do
23
+ @btn1 = button "button 1", width: 75 do
24
+ @eb.append "button 1 clicked\n"
25
+ end
26
+ @btn2 = button "button 2" do
27
+ @eb.append "button 2 clicked\n"
28
+ end
29
+ click do
30
+ @eb.append "flow click\n"
31
+ end
32
+ end
33
+ @eb = edit_box width: 500, height: 350
34
+ end
35
+ click do |btn, x, y, mods|
36
+ @eb.append "app click: #{btn} x: #{x} y: #{y} mods: #{mods}\n"
37
+ end
38
+ release do |btn, x, y, mods|
39
+ @eb.append "app unclick: #{btn} x: #{x} y: #{y} mods: #{mods}\n"
40
+ end
41
+ keypress do |key|
42
+ $stderr.puts key
43
+ @eb.append "#{key} "
44
+ end
45
+ #motion do |x, y, mods|
46
+ # @eb.append "modtion #{x},#{y} #{mods} "
47
+ #end
48
+ wheel do |d,x,y,mods|
49
+ @eb.append "wheel #{d} #{mods} at #{x},#{y}\n"
50
+ end
51
+ end
@@ -0,0 +1,26 @@
1
+ ---
2
+ :context:
3
+ :app: "/home/ccoupe/Projects/shoes3/Tests/events/event1.rb"
4
+ :time: 2017-12-18 19:14:17.527820709 -07:00
5
+ :events:
6
+ - :time: 2.084820129
7
+ :button: 1
8
+ :x: 379
9
+ :y: 55
10
+ :modifiers:
11
+ :object:
12
+ :type: :click
13
+ - :time: 3.299109652
14
+ :button: 1
15
+ :x: 0
16
+ :y: 70
17
+ :modifiers:
18
+ :object: !ruby/object:Shoes::Types::Button {}
19
+ :type: :btn_activate
20
+ - :time: 4.835090063
21
+ :button: 1
22
+ :x: 75
23
+ :y: 70
24
+ :modifiers:
25
+ :object: !ruby/object:Shoes::Types::Button {}
26
+ :type: :btn_activate
@@ -0,0 +1,46 @@
1
+ Shoes.app do
2
+ stack do
3
+ tagline "Manage clicks for second Window"
4
+ para "Demonstrates communication with second app"
5
+ flow do
6
+ @el = edit_line width: 450
7
+ @el.text = "#{DIR}/samples/simple/chipmunk.rb"
8
+ button "select app" do
9
+ path = ask_file_open
10
+ @el.text = path if path
11
+ end
12
+ end
13
+ flow do
14
+ $ck = check checked: true; para "Pass clicks?"
15
+ end
16
+ flow do
17
+ button "Start app with handler for it" do
18
+ eval IO.read(@el.text).force_encoding("UTF-8"), TOPLEVEL_BINDING, @el.text
19
+ w2 = Shoes.APPS[-1]
20
+ x = w2.left
21
+ y = w2.top
22
+ w2.move x+80, y-40
23
+ w2.event = proc do |evt|
24
+ case evt.type
25
+ when :click
26
+ $stderr.puts "click handler2 with #{evt.type}"
27
+ evt.accept = $ck.checked?
28
+ else
29
+ evt.accept = true
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ =begin
36
+ # 2nd App
37
+ eval IO.read("#{DIR}/samples/simple/chipmunk.rb").force_encoding("UTF-8"), TOPLEVEL_BINDING
38
+ start do
39
+ # move the frontmost app (#2) left and up - it flickers.
40
+ w = Shoes.APPS[-1]
41
+ x = app.left
42
+ y = app.top
43
+ w.move x+80, y-40
44
+ end
45
+ =end
46
+ end
@@ -0,0 +1,44 @@
1
+ Shoes.app do
2
+ #puts "ARGV #{ARGV}"
3
+ script_path = ""
4
+ if ARGV.length > 1
5
+ tp = ARGV[1]
6
+ if tp[0] != '/'
7
+ script_path = "#{DIR}/#{tp}"
8
+ else
9
+ script_path = tp
10
+ end
11
+ $stderr.puts "script is: #{script_path}"
12
+ end
13
+
14
+ handler = proc do |evt|
15
+ $stderr.puts "event handler2 with #{evt.type}"
16
+ evt.accept = $ck.checked?
17
+ end
18
+
19
+ stack do
20
+ tagline "Manage events for a Shoes app"
21
+ para "Run this app:"
22
+ flow do
23
+ @el = edit_line width: 500
24
+ @el.text = script_path
25
+ button "Select" do
26
+ script_path = ask_open_file
27
+ @el.text = script_path if script_path
28
+ end
29
+ end
30
+ flow do
31
+ $ck = check checked: true; para "Pass clicks?"
32
+ end
33
+ flow do
34
+ button "Load and control" do
35
+ eval IO.read("#{script_path}").force_encoding("UTF-8"), TOPLEVEL_BINDING
36
+ w = Shoes.APPS[-1]
37
+ x = w.left
38
+ y = w.top
39
+ w.move x+80, y+40
40
+ w.event = handler
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,65 @@
1
+ class TestWidget < Shoes::Widget
2
+
3
+ attr_accessor :click_blk
4
+
5
+ def initialize(&blk)
6
+ @click_blk = blk
7
+ self.width = 200; self.height = 200 ## note that you do need this
8
+ flow width: 190, height: 200 do ###### explicit slot
9
+ background coral
10
+ para "user defined widget"
11
+ end
12
+ end
13
+
14
+ def click(btn,x,y,mods)
15
+ puts "TW click called, sending.."
16
+ @click_blk.call(btn,x,y,mods)
17
+ end
18
+ end
19
+
20
+ Shoes.app height: 650 do
21
+ stack do
22
+ tagline "Clicks for non-native widgets"
23
+ flow do
24
+ @ck1 = check checked: true; para "Pass clicks?"
25
+ end
26
+ flow do
27
+ @img = image "#{DIR}/static/shoes-icon-walkabout.png", width: 200, height: 200
28
+ @img.click {|btn,x,y,mods| @eb.append "Image clicked btn: #{btn} at #{x},#{y} with #{mods}\n"}
29
+ @svg = svg "#{DIR}/samples/good/paris.svg", width: 200, height: 200, group: "#diamond_4"
30
+ @svg.click {|btn,x,y,mods| @eb.append "Svg clicked btn: #{btn} at #{x},#{y} with #{mods}\n"}
31
+ # click only works on TimeSeries plots
32
+ @plt = plot 200, 200, title: "Test plot", chart: "timeseries"
33
+ @plt.click {|btn,x,y,mods| @eb.append "Plot clicked btn: #{btn} at #{x},#{y} with #{mods}\n"}
34
+ @btn = button "button" do
35
+ @eb.append "Button clicked\n"
36
+ end
37
+ @tw = test_widget {|btn,x,y,mods| @eb.append "User Widget: #{btn} at #{x},#{y} with #{mods}\n"}
38
+ end
39
+ @eb = edit_box width: 500, height: 200
40
+ # draw a shape
41
+ stroke blue
42
+ strokewidth 4
43
+ fill black
44
+ oval 540, 590, 50
45
+ end
46
+
47
+ event do |evt|
48
+ # do not trigger new events here unless you can handle them
49
+ case evt.type
50
+ when :click
51
+ $stderr.puts "click handler called: #{evt.type} #{evt.button}, #{evt.x} #{evt.y} #{evt.modifiers}"
52
+ if evt.object
53
+ # Note: for Textblocks the evt.obj is the String of the text block
54
+ $stderr.puts " non-native widget: #{evt.object.class} width #{evt.width} height #{evt.height}"
55
+ end
56
+ evt.accept = @ck1.checked?
57
+ when :btn_activate
58
+ $stderr.puts "button #{evt.object} at #{evt.type} #{evt.button} #{evt.x} #{evt.y} #{evt.width} #{evt.height}"
59
+ evt.accept = @ck1.checked?
60
+ else
61
+ evt.accept = false
62
+ end
63
+ end
64
+
65
+ end
@@ -0,0 +1,17 @@
1
+ Shoes.app(width: 200, height: 200) do
2
+ @img1 = image "#{DIR}/static/shoes-icon-walkabout.png", left: 0, top: 0, width: 200, height: 200
3
+ @img2 = image "#{DIR}/static/shoes-icon-blue.png", left: 50, top: 50, width: 100, height: 100
4
+ event do |evt|
5
+ case evt.type
6
+ when :click
7
+ $stderr.puts "click handler called: #{evt.type} #{evt.button}, #{evt.x} #{evt.y} #{evt.modifiers}"
8
+ if evt.object
9
+ # Note: for Textblocks the evt.obj is the String of the text block
10
+ $stderr.puts " non-native widget: #{evt.object.class} width #{evt.width} height #{evt.height}"
11
+ end
12
+ evt.accept = true
13
+ else
14
+ evt.accept = false
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,51 @@
1
+ Shoes.app do
2
+
3
+ event do |evt|
4
+ # do not trigger new events here unless you can handle them recursively
5
+ # which is harder than you think.
6
+ case evt.type
7
+ when :click
8
+ $stderr.puts "click handler called: #{evt.type} #{evt.button}, #{evt.x} #{evt.y} #{evt.modifiers}"
9
+ evt.accept = true
10
+ when :keypress
11
+ $stderr.puts "keypress: #{evt.key}"
12
+ evt.accept = true
13
+ when :keydown
14
+ $stderr.puts "keydown for #{evt.key}"
15
+ evt.accept = $ck.checked?
16
+ when :keyup
17
+ $stderr.puts "keyup for #{evt.key}"
18
+ evt.accept = $ck.checked?
19
+ when :motion
20
+ evt.accept = false
21
+ when :release
22
+ evt.accept = false
23
+ when :wheel
24
+ $stderr.puts "wheel handler called: #{evt.type} #{evt.button}, #{evt.x} #{evt.y} #{evt.modifiers}"
25
+ evt.accept = true
26
+ else
27
+ puts "Other: #{evt.type.inspect}"
28
+ evt.accept = true
29
+ end
30
+ end
31
+
32
+ stack do
33
+ para "Key Tests"
34
+ flow do
35
+ $ck = check checked: true; para "Enable up/down"
36
+ end
37
+ @eb = edit_box width: 500, height: 350
38
+ end
39
+ keypress do |key|
40
+ @eb.append "press: #{key}\n"
41
+ end
42
+ keyup do |key|
43
+ @eb.append "up: #{key}\n"
44
+ end
45
+ keydown do |key|
46
+ @eb.append "down: #{key}\n"
47
+ end
48
+ wheel do |d, x, y, mods|
49
+ @eb.append "wheel dir: #{d} at #{x},#{y}, with #{mods}\n"
50
+ end
51
+ end
@@ -0,0 +1,60 @@
1
+ require 'yaml'
2
+ Shoes.app do
3
+ yaml_path = ""
4
+ if ARGV.length > 1
5
+ tp = ARGV[1]
6
+ if tp[0] != '/'
7
+ yaml_path = "#{DIR}/../#{tp}"
8
+ else
9
+ yaml_path = tp
10
+ end
11
+ end
12
+ stack do
13
+ tagline "Replay Clicks for another app"
14
+ para "Load events from"
15
+ flow do
16
+ @sv = edit_line width: 450
17
+ @sv.text = yaml_path
18
+ button "Change" do
19
+ path = ask_open_file
20
+ @sv.text = path if path
21
+ end
22
+ end
23
+
24
+ flow do
25
+ button "Start App" do
26
+ evtflhash = YAML::load_file(@sv.text)
27
+ hdr = evtflhash[:context]
28
+ puts hdr
29
+ script = hdr[:app]
30
+ eval IO.read(script).force_encoding("UTF-8"), TOPLEVEL_BINDING, script
31
+ w2 = Shoes.APPS[-1]
32
+ x = w2.left
33
+ y = w2.top
34
+ w2.move x+80, y-40
35
+ @events = evtflhash[:events]
36
+ #puts @events
37
+ end
38
+ end
39
+ button "Replay Events" do
40
+ # note this creates as many simulaneous timers as events
41
+ # not pretty
42
+ w2 = Shoes.APPS[-1]
43
+ base_t = nil
44
+ @events.each_index do |r|
45
+ ev = @events[r]
46
+ if r == 0
47
+ # chop first delay - minor improvement
48
+ base_t = ev[:time]
49
+ puts "base_t #{base_t}"
50
+ end
51
+ t = ev[:time]
52
+ timer(t-base_t) do
53
+ puts "wait for #{t-base_t}"
54
+ puts " move to #{ev[:x]}, #{ev[:y]} and click "
55
+ w2.replay_event(ev)
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,38 @@
1
+ Shoes.app do
2
+ stack do
3
+ para "Muliple Monitor Full Screen Test"
4
+ st = Shoes.settings
5
+ @eb = edit_box width: 400, height: 150
6
+ end
7
+ start do
8
+ st = Shoes.settings
9
+ dflt = st.monitor_default
10
+ @eb.append "Default monitor is #{dflt}\n"
11
+ st.monitor_count.times do |mon|
12
+ @eb.append "Monitor #{mon} => #{st.monitor_geometry(mon)}\n"
13
+ end
14
+ button "Tooggle FullScreen #{dflt}" do
15
+ state = app.fullscreen
16
+ app.fullscreen = (state ? false : true);
17
+ end
18
+ (st.monitor_count - 1).times do |mon|
19
+ flow do
20
+ newmon = (dflt ^ 1)
21
+ @ck = check
22
+ para "full screen?"
23
+ button "New Window on #{newmon}" do
24
+ window title: "Launched in #{newmon}", monitor: newmon, fullscreen: @ck.checked? do
25
+ stack do
26
+ para "My Monitor is #{app.monitor}"
27
+ button "Fullscreen #{app.monitor}" do
28
+ state = app.fullscreen
29
+ app.fullscreen = (state ? false : true);
30
+ end
31
+ @eb = edit_box width: 300, height: 150
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,56 @@
1
+ Shoes.app do
2
+ stack do
3
+ para "Icon setting tests"
4
+ st = Shoes.settings
5
+ default = st.icon_path
6
+ para "Settings path is #{st.icon_path} "
7
+ button "Show Default icon" do
8
+ @pnl.clear do
9
+ image "#{DIR}/#{st.icon_path}"
10
+ end
11
+ end
12
+ para "Must be relative to #{DIR}"
13
+ flow do
14
+ button "Set default" do
15
+ fp = ask_open_file
16
+ str = fp[DIR.length+1..-1]
17
+ @el1.text = str
18
+ end
19
+ @el1 = edit_line
20
+ button "Test" do
21
+ @pnl.clear do
22
+ image "#{DIR}/#{@el1.text}"
23
+ end
24
+ st.icon_path = @el1.text
25
+ window do
26
+ para "What icon did you expect?"
27
+ end
28
+ end
29
+ button "restore" do
30
+ st.icon_path = default
31
+ @pnl.clear do
32
+ image "#{DIR}/#{st.icon_path}"
33
+ end
34
+ end
35
+ end
36
+ para "app.window_set_icon_path - try ABS path"
37
+ flow do
38
+ @el2 = edit_line
39
+ button "select" do
40
+ fp = ask_open_file
41
+ @el2.text = fp
42
+ end
43
+ button "test" do
44
+ @pnl.clear do
45
+ image @el2.text
46
+ end
47
+ app.set_window_icon_path @el2.text
48
+ window do
49
+ para "Is that the icon you expected"
50
+ end
51
+ end
52
+ end
53
+ end
54
+ @pnl = stack do
55
+ end
56
+ end
@@ -0,0 +1,46 @@
1
+ Shoes.app do
2
+ stack do
3
+ para "Muliple Monitor Test"
4
+ st = Shoes.settings
5
+ @eb = edit_box width: 400, height: 150
6
+ end
7
+ start do
8
+ st = Shoes.settings
9
+ dflt = st.monitor_default
10
+ @eb.append "Default monitor is #{dflt}\n"
11
+ st.monitor_count.times do |mon|
12
+ @eb.append "Monitor #{mon} => #{st.monitor_geometry(mon)}\n"
13
+ end
14
+ (st.monitor_count- 1).times do |mon|
15
+ flow do
16
+ newmon = (dflt ^ 1)
17
+ button "New Window on #{newmon}" do
18
+ window title: "Launched in #{newmon}", monitor: newmon do
19
+ stack do
20
+ para "My Monitor is #{app.monitor}"
21
+ button "Dialog" do
22
+ alert "Which Window?"
23
+ end
24
+ button "move down right" do
25
+ x = self.left
26
+ y = self.top
27
+ @eb.append "from: #{x}, #{y}\n"
28
+ self.move x+20, y+20
29
+ x = self.left
30
+ y = self.top
31
+ @eb.append "to: #{x}, #{y}\n"
32
+ end
33
+ @eb = edit_box width: 300, height: 150
34
+ end
35
+ end
36
+ end
37
+ button "Move This to #{newmon}" do
38
+ app.monitor = newmon
39
+ end
40
+ button "Restore this to #{dflt}" do
41
+ app.monitor = dflt
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,22 @@
1
+ Shoes.app do
2
+ stack do
3
+ para "Check if we can access shoes.yaml settings"
4
+ button "Check" do
5
+ st = Shoes.settings
6
+ @eb.append "Have settings for #{st}\n"
7
+ @eb.append "Name: #{st.app_name}\n"
8
+ if RUBY_PLATFORM =~ /(linux)|(bsd)/
9
+ @eb.append "Dbus: #{st.dbus}\n"
10
+ @eb.append "RDomain: #{st.rdomain}\n"
11
+ end
12
+ @eb.append "Theme: #{st.theme}\n"
13
+ @eb.append "MDI: #{st.mdi}\n"
14
+ @eb.append "Menus: #{st.use_menus}\n"
15
+ st.monitor_count.times do |mon|
16
+ @eb.append "Monitor #{mon} => #{st.monitor_geometry(mon)}\n"
17
+ end
18
+ @eb.append "Default monitor: #{st.monitor_default}\n"
19
+ end
20
+ @eb = edit_box width: 400, height: 300
21
+ end
22
+ end
@@ -0,0 +1,34 @@
1
+ Shoes.app do
2
+ stack do
3
+ para "Title and app name tests"
4
+ st = Shoes.settings
5
+ para "settings name is #{st.app_name} vs #{app.name}"
6
+ flow do
7
+ @el1 = edit_line width: 100, border: 3
8
+ button "name =" do
9
+ app.name = @el1.text
10
+ para "settings name is #{st.app_name} vs #{app.name} did title change?"
11
+ end
12
+ end
13
+ flow do
14
+ @el2 = edit_line width: 100, border: 3
15
+ button "app_name =" do
16
+ st.app_name = @el2.text
17
+ window do
18
+ para "only affect new windows?"
19
+ end
20
+ para "settings name is #{st.app_name} vs #{app.name} did title change?"
21
+ end
22
+ end
23
+ flow do
24
+ @el3 = edit_line width: 100, margin: 3
25
+ button "wtitle =" do
26
+ app.set_window_title @el3.text
27
+ window do
28
+ para "only affect new windows?"
29
+ end
30
+ para "settings name is #{st.app_name} vs #{app.name} did title change?"
31
+ end
32
+ end
33
+ end
34
+ end