scarpe 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (240) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +4 -0
  3. data/.yardopts +11 -0
  4. data/Gemfile +3 -0
  5. data/Gemfile.lock +112 -0
  6. data/README.md +31 -24
  7. data/Rakefile +13 -1
  8. data/docs/yard/catscradle.md +44 -0
  9. data/docs/yard/template/default/fulldoc/html/setup.rb +13 -0
  10. data/docs/yard/template/default/layout/html/setup.rb +9 -0
  11. data/examples/background_with_image.rb +16 -0
  12. data/examples/bloopsaphone/working/bronx_army_knife.rb +66 -0
  13. data/examples/bloopsaphone/working/morning_serenity.rb +21 -0
  14. data/examples/bloopsaphone/working/simpsons_theme_song_by_why.rb +6 -4
  15. data/examples/button_go_away.rb +1 -1
  16. data/examples/check.rb +18 -0
  17. data/examples/clear_and_append.rb +24 -0
  18. data/examples/download_and_show_image.rb +28 -0
  19. data/examples/edit_box.rb +3 -5
  20. data/examples/fonts.rb +2 -2
  21. data/examples/get_headers.rb +10 -0
  22. data/examples/highlander.rb +2 -0
  23. data/examples/link.rb +2 -2
  24. data/examples/local_fonts.rb +4 -0
  25. data/examples/local_images.rb +4 -0
  26. data/examples/motion_events.rb +20 -0
  27. data/examples/parse_xl_funnies.rb +58 -0
  28. data/examples/radio/radio.rb +16 -0
  29. data/examples/radio/radio_groups.rb +18 -0
  30. data/examples/radio/radio_same_slot.rb +6 -0
  31. data/examples/ruby_racer.rb +13 -15
  32. data/examples/selfitude.rb +18 -0
  33. data/examples/shapes/shapes_fill.rb +4 -3
  34. data/examples/shoes_school.rb +2 -4
  35. data/examples/show_hide.rb +6 -0
  36. data/examples/skip_ci/change_my_audio_source.rb +21 -0
  37. data/examples/skip_ci/guitar_fretboard.rb +137 -0
  38. data/examples/video.rb +10 -0
  39. data/exe/scarpe +42 -66
  40. data/fonts/Pacifico.ttf +0 -0
  41. data/lacci/Gemfile +22 -0
  42. data/lacci/Gemfile.lock +72 -0
  43. data/lacci/Rakefile +12 -0
  44. data/lacci/lacci.gemspec +37 -0
  45. data/lacci/lib/lacci/scarpe_cli.rb +70 -0
  46. data/lacci/lib/lacci/scarpe_core.rb +21 -0
  47. data/lacci/lib/lacci/version.rb +13 -0
  48. data/lacci/lib/shoes/app.rb +264 -0
  49. data/{lib/scarpe → lacci/lib/shoes}/background.rb +1 -1
  50. data/{lib/scarpe → lacci/lib/shoes}/border.rb +1 -1
  51. data/{lib/scarpe → lacci/lib/shoes}/colors.rb +1 -1
  52. data/lacci/lib/shoes/constants.rb +29 -0
  53. data/{lib/scarpe → lacci/lib/shoes}/display_service.rb +40 -45
  54. data/lacci/lib/shoes/download.rb +123 -0
  55. data/lacci/lib/shoes/log.rb +71 -0
  56. data/lacci/lib/shoes/spacing.rb +9 -0
  57. data/{lib/scarpe → lacci/lib/shoes}/widget.rb +63 -43
  58. data/{lib/scarpe → lacci/lib/shoes/widgets}/alert.rb +3 -3
  59. data/{lib/scarpe → lacci/lib/shoes/widgets}/arc.rb +7 -5
  60. data/{lib/scarpe → lacci/lib/shoes/widgets}/button.rb +3 -3
  61. data/lacci/lib/shoes/widgets/check.rb +28 -0
  62. data/lacci/lib/shoes/widgets/document_root.rb +20 -0
  63. data/{lib/scarpe → lacci/lib/shoes/widgets}/edit_box.rb +10 -5
  64. data/{lib/scarpe → lacci/lib/shoes/widgets}/edit_line.rb +2 -2
  65. data/lacci/lib/shoes/widgets/flow.rb +22 -0
  66. data/lacci/lib/shoes/widgets/font.rb +14 -0
  67. data/{lib/scarpe → lacci/lib/shoes/widgets}/image.rb +3 -7
  68. data/lacci/lib/shoes/widgets/line.rb +18 -0
  69. data/{lib/scarpe → lacci/lib/shoes/widgets}/link.rb +2 -2
  70. data/{lib/scarpe → lacci/lib/shoes/widgets}/list_box.rb +2 -2
  71. data/{lib/scarpe → lacci/lib/shoes/widgets}/para.rb +4 -26
  72. data/lacci/lib/shoes/widgets/radio.rb +35 -0
  73. data/lacci/lib/shoes/widgets/shape.rb +37 -0
  74. data/lacci/lib/shoes/widgets/slot.rb +75 -0
  75. data/{lib/scarpe → lacci/lib/shoes/widgets}/span.rb +2 -2
  76. data/lacci/lib/shoes/widgets/stack.rb +24 -0
  77. data/{lib/scarpe → lacci/lib/shoes/widgets}/star.rb +6 -9
  78. data/lacci/lib/shoes/widgets/subscription_item.rb +60 -0
  79. data/lacci/lib/shoes/widgets/text_widget.rb +51 -0
  80. data/lacci/lib/shoes/widgets/video.rb +15 -0
  81. data/lacci/lib/shoes/widgets.rb +29 -0
  82. data/lacci/lib/shoes.rb +127 -0
  83. data/lacci/test/test_colors.rb +39 -0
  84. data/lacci/test/test_helper.rb +9 -0
  85. data/lacci/test/test_lacci.rb +9 -0
  86. data/lib/scarpe/cats_cradle.rb +249 -0
  87. data/lib/scarpe/evented_assertions.rb +88 -0
  88. data/lib/scarpe/version.rb +1 -1
  89. data/lib/scarpe/wv/alert.rb +3 -2
  90. data/lib/scarpe/wv/app.rb +30 -8
  91. data/lib/scarpe/wv/arc.rb +5 -6
  92. data/lib/scarpe/wv/background.rb +10 -1
  93. data/lib/scarpe/wv/border.rb +5 -3
  94. data/lib/scarpe/wv/button.rb +11 -9
  95. data/lib/scarpe/wv/check.rb +29 -0
  96. data/lib/scarpe/wv/control_interface.rb +14 -20
  97. data/lib/scarpe/wv/control_interface_test.rb +13 -28
  98. data/lib/scarpe/wv/document_root.rb +3 -45
  99. data/lib/scarpe/wv/edit_box.rb +5 -7
  100. data/lib/scarpe/wv/edit_line.rb +2 -2
  101. data/lib/scarpe/wv/flow.rb +10 -20
  102. data/lib/scarpe/wv/font.rb +36 -0
  103. data/lib/scarpe/wv/html.rb +3 -2
  104. data/lib/scarpe/wv/image.rb +7 -2
  105. data/lib/scarpe/wv/line.rb +4 -7
  106. data/lib/scarpe/wv/link.rb +1 -0
  107. data/lib/scarpe/wv/list_box.rb +3 -3
  108. data/lib/scarpe/wv/para.rb +16 -14
  109. data/lib/scarpe/wv/radio.rb +34 -0
  110. data/lib/scarpe/wv/shape.rb +44 -8
  111. data/lib/scarpe/wv/slot.rb +81 -0
  112. data/lib/scarpe/wv/spacing.rb +1 -1
  113. data/lib/scarpe/wv/span.rb +10 -8
  114. data/lib/scarpe/wv/stack.rb +10 -30
  115. data/lib/scarpe/wv/star.rb +11 -12
  116. data/lib/scarpe/wv/subscription_item.rb +50 -0
  117. data/lib/scarpe/wv/video.rb +34 -0
  118. data/lib/scarpe/wv/web_wrangler.rb +238 -58
  119. data/lib/scarpe/wv/webview_local_display.rb +27 -5
  120. data/lib/scarpe/wv/webview_relay_display.rb +18 -119
  121. data/lib/scarpe/wv/webview_relay_util.rb +143 -0
  122. data/lib/scarpe/wv/widget.rb +80 -11
  123. data/lib/scarpe/wv/wv_display_worker.rb +17 -4
  124. data/lib/scarpe/wv.rb +33 -4
  125. data/lib/scarpe/wv_local.rb +1 -1
  126. data/lib/scarpe/wv_relay.rb +1 -1
  127. data/lib/scarpe.rb +3 -32
  128. data/scarpe-components/.gitignore +1 -0
  129. data/scarpe-components/Gemfile +22 -0
  130. data/scarpe-components/README.md +35 -0
  131. data/scarpe-components/Rakefile +12 -0
  132. data/scarpe-components/lib/scarpe/components/base64.rb +29 -0
  133. data/scarpe-components/lib/scarpe/components/file_helpers.rb +65 -0
  134. data/scarpe-components/lib/scarpe/components/modular_logger.rb +113 -0
  135. data/scarpe-components/lib/scarpe/components/print_logger.rb +43 -0
  136. data/{lib/scarpe → scarpe-components/lib/scarpe/components}/promises.rb +102 -35
  137. data/scarpe-components/lib/scarpe/components/segmented_file_loader.rb +170 -0
  138. data/scarpe-components/lib/scarpe/components/unit_test_helpers.rb +217 -0
  139. data/scarpe-components/lib/scarpe/components/version.rb +7 -0
  140. data/scarpe-components/scarpe-components.gemspec +38 -0
  141. data/scarpe-components/test/test_components.rb +9 -0
  142. data/scarpe-components/test/test_helper.rb +23 -0
  143. data/scarpe-components/test/test_promises.rb +260 -0
  144. data/scarpe-components/test/test_segmented_app_files.rb +182 -0
  145. data/{lib/scarpe → spikes}/glibui/widget.rb +2 -2
  146. data/{lib/scarpe → spikes}/glibui.rb +1 -1
  147. data/templates/basic_class_template.erb +1 -1
  148. data/templates/class_template_with_event_bind.erb +1 -1
  149. data/templates/class_template_with_shapes.erb +1 -1
  150. data/templates/webview_template.erb +0 -3
  151. metadata +151 -118
  152. data/examples/fill.rb +0 -25
  153. data/examples/legacy/not_checked/shoes-contrib/basic/class-book.yaml +0 -387
  154. data/examples/legacy/not_checked/shoes-contrib/good/good-clock.rb +0 -51
  155. data/examples/legacy/not_checked/shoes-contrib/good/good-follow.rb +0 -26
  156. data/examples/legacy/not_checked/shoes-contrib/good/good-reminder.rb +0 -174
  157. data/examples/legacy/not_checked/shoes-contrib/good/good-vjot.rb +0 -56
  158. data/examples/legacy/not_checked/shoes-contrib/simple/simple-timer.rb +0 -13
  159. data/examples/legacy/not_checked/shoes-dep-samples/good-clock.rb +0 -51
  160. data/examples/legacy/not_checked/shoes-dep-samples/good-follow.rb +0 -26
  161. data/examples/legacy/not_checked/shoes-dep-samples/good-reminder.rb +0 -174
  162. data/examples/legacy/not_checked/shoes-dep-samples/good-vjot.rb +0 -56
  163. data/examples/legacy/not_checked/shoes-dep-samples/simple-accordion.rb +0 -75
  164. data/examples/legacy/not_checked/shoes-dep-samples/simple-anim-shapes.rb +0 -17
  165. data/examples/legacy/not_checked/shoes-dep-samples/simple-anim-text.rb +0 -13
  166. data/examples/legacy/not_checked/shoes-dep-samples/simple-arc.rb +0 -23
  167. data/examples/legacy/not_checked/shoes-dep-samples/simple-bounce.rb +0 -24
  168. data/examples/legacy/not_checked/shoes-dep-samples/simple-calc.rb +0 -70
  169. data/examples/legacy/not_checked/shoes-dep-samples/simple-chipmunk.rb +0 -26
  170. data/examples/legacy/not_checked/shoes-dep-samples/simple-control-sizes.rb +0 -24
  171. data/examples/legacy/not_checked/shoes-dep-samples/simple-curve.rb +0 -26
  172. data/examples/legacy/not_checked/shoes-dep-samples/simple-dialogs.rb +0 -29
  173. data/examples/legacy/not_checked/shoes-dep-samples/simple-draw.rb +0 -13
  174. data/examples/legacy/not_checked/shoes-dep-samples/simple-editor.rb +0 -28
  175. data/examples/legacy/not_checked/shoes-dep-samples/simple-form.rb +0 -28
  176. data/examples/legacy/not_checked/shoes-dep-samples/simple-form.shy +0 -0
  177. data/examples/legacy/not_checked/shoes-dep-samples/simple-mask.rb +0 -21
  178. data/examples/legacy/not_checked/shoes-dep-samples/simple-menu.rb +0 -31
  179. data/examples/legacy/not_checked/shoes-dep-samples/simple-menu1.rb +0 -35
  180. data/examples/legacy/not_checked/shoes-dep-samples/simple-rubygems.rb +0 -29
  181. data/examples/legacy/not_checked/shoes-dep-samples/simple-slide.rb +0 -45
  182. data/examples/legacy/not_checked/shoes-dep-samples/simple-sphere.rb +0 -28
  183. data/examples/legacy/not_checked/shoes-dep-samples/simple-sqlite3.rb +0 -13
  184. data/examples/legacy/not_checked/shoes-dep-samples/simple-timer.rb +0 -13
  185. data/examples/legacy/not_checked/shoes-dep-samples/simple-video.rb +0 -13
  186. data/examples/legacy/not_checked/simple/anim-text.rb +0 -13
  187. data/examples/legacy/not_checked/simple/arc.rb +0 -23
  188. data/examples/legacy/not_checked/simple/bounce.rb +0 -24
  189. data/examples/legacy/not_checked/simple/chipmunk.rb +0 -26
  190. data/examples/legacy/not_checked/simple/curve.rb +0 -26
  191. data/examples/legacy/not_checked/simple/dialogs.rb +0 -29
  192. data/examples/legacy/not_checked/simple/downloader.rb +0 -40
  193. data/examples/legacy/not_checked/simple/draw.rb +0 -13
  194. data/examples/legacy/not_checked/simple/mask.rb +0 -21
  195. data/examples/legacy/not_checked/simple/slide.rb +0 -45
  196. data/examples/legacy/not_checked/simple/sphere.rb +0 -28
  197. data/lib/constants.rb +0 -5
  198. data/lib/scarpe/app.rb +0 -78
  199. data/lib/scarpe/document_root.rb +0 -20
  200. data/lib/scarpe/fill.rb +0 -23
  201. data/lib/scarpe/flow.rb +0 -19
  202. data/lib/scarpe/line.rb +0 -25
  203. data/lib/scarpe/logger.rb +0 -155
  204. data/lib/scarpe/shape.rb +0 -19
  205. data/lib/scarpe/spacing.rb +0 -9
  206. data/lib/scarpe/stack.rb +0 -70
  207. data/lib/scarpe/text_widget.rb +0 -42
  208. data/lib/scarpe/unit_test_helpers.rb +0 -163
  209. data/lib/scarpe/widgets.rb +0 -30
  210. data/lib/scarpe/wv/fill.rb +0 -30
  211. data/lib/scarpe/wv/shape_helper.rb +0 -44
  212. data/scarpe-0.2.0.gem +0 -0
  213. /data/{lib/scarpe → spikes}/glibui/README.md +0 -0
  214. /data/{lib/scarpe → spikes}/glibui/alert.rb +0 -0
  215. /data/{lib/scarpe → spikes}/glibui/app.rb +0 -0
  216. /data/{lib/scarpe → spikes}/glibui/background.rb +0 -0
  217. /data/{lib/scarpe → spikes}/glibui/border.rb +0 -0
  218. /data/{lib/scarpe → spikes}/glibui/button.rb +0 -0
  219. /data/{lib/scarpe → spikes}/glibui/dimensions.rb +0 -0
  220. /data/{lib/scarpe → spikes}/glibui/document_root.rb +0 -0
  221. /data/{lib/scarpe → spikes}/glibui/edit_box.rb +0 -0
  222. /data/{lib/scarpe → spikes}/glibui/edit_line.rb +0 -0
  223. /data/{lib/scarpe → spikes}/glibui/flow.rb +0 -0
  224. /data/{lib/scarpe → spikes}/glibui/html.rb +0 -0
  225. /data/{lib/scarpe → spikes}/glibui/image.rb +0 -0
  226. /data/{lib/scarpe → spikes}/glibui/link.rb +0 -0
  227. /data/{lib/scarpe → spikes}/glibui/local_display.rb +0 -0
  228. /data/{lib/scarpe → spikes}/glibui/para.rb +0 -0
  229. /data/{lib/scarpe → spikes}/glibui/spacing.rb +0 -0
  230. /data/{lib/scarpe → spikes}/glibui/stack.rb +0 -0
  231. /data/{lib/scarpe → spikes}/glibui/text_widget.rb +0 -0
  232. /data/{lib/scarpe → spikes}/libui/alert.rb +0 -0
  233. /data/{lib/scarpe → spikes}/libui/button.rb +0 -0
  234. /data/{lib/scarpe → spikes}/libui/colors.rb +0 -0
  235. /data/{lib/scarpe → spikes}/libui/core.rb +0 -0
  236. /data/{lib/scarpe → spikes}/libui/flow.rb +0 -0
  237. /data/{lib/scarpe → spikes}/libui/libui.rb +0 -0
  238. /data/{lib/scarpe → spikes}/libui/notepad.md +0 -0
  239. /data/{lib/scarpe → spikes}/libui/para.rb +0 -0
  240. /data/{lib/scarpe → spikes}/libui/stack.rb +0 -0
@@ -1,70 +0,0 @@
1
- class Calc
2
- def initialize
3
- @number = 0
4
- @previous = nil
5
- @op = nil
6
- end
7
-
8
- def to_s
9
- @number.to_s
10
- end
11
-
12
- (0..9).each do |n|
13
- define_method "press_#{n}" do
14
- @number = @number.to_i * 10 + n
15
- end
16
- end
17
-
18
- def press_clear
19
- @number = 0
20
- end
21
-
22
- {'add' => '+', 'sub' => '-', 'times' => '*', 'div' => '/'}.each do |meth, op|
23
- define_method "press_#{meth}" do
24
- if @op
25
- press_equals
26
- end
27
- @op = op
28
- @previous, @number = @number, nil
29
- end
30
- end
31
-
32
- def press_equals
33
- @number = @previous.send(@op, @number.to_i)
34
- @op = nil
35
- end
36
-
37
- end
38
-
39
- number_field = nil
40
- number = Calc.new
41
- Shoes.app :height => 250, :width => 200, :resizable => false do
42
- background "#EEC".."#996", :curve => 5, :margin => 2
43
-
44
- stack :margin => 2 do
45
-
46
- stack :margin => 8 do
47
- number_field = para strong(number)
48
- end
49
-
50
- flow :width => 218, :margin => 4 do
51
- %w(7 8 9 / 4 5 6 * 1 2 3 - 0 Clr = +).each do |btn|
52
- button btn, :width => 46, :height => 46 do
53
- method = case btn
54
- when /[0-9]/; 'press_'+btn
55
- when 'Clr'; 'press_clear'
56
- when '='; 'press_equals'
57
- when '+'; 'press_add'
58
- when '-'; 'press_sub'
59
- when '*'; 'press_times'
60
- when '/'; 'press_div'
61
- end
62
-
63
- number.send(method)
64
- number_field.replace strong(number)
65
- end
66
- end
67
- end
68
- end
69
-
70
- end
@@ -1,26 +0,0 @@
1
- # simple-chipmunk.rb
2
- require 'shoes/chipmunk'
3
-
4
- Shoes.app title: 'A Tiny Chipmunk Physics Demo' do
5
- extend ChipMunk
6
- space = cp_space
7
- balls = []
8
-
9
- nofill
10
- cp_line 0, 180, 200, 280, stroke: gold
11
- cp_line 200, 280, 300, 270, stroke: gold
12
- cp_line 250, 350, 350, 330
13
- cp_line 170, 370, 220, 380
14
- cp_line 100, 450, 300, 430, stroke: lightslategray
15
- cp_line 300, 430, 500, 450, stroke: lightslategray
16
-
17
- nostroke
18
- oval(10, 30, 40, fill: blue).click{balls << cp_oval(30, 50, 20, stroke: blue, strokewidth: 2)}
19
- oval(70, 40, 20, fill: green).click{balls << cp_oval(80, 50, 10, fill: green)}
20
- oval(105, 45, 10, fill: red).click{balls << cp_oval(110, 50, 5, fill: red)}
21
-
22
- every do
23
- 6.times{space.step 1.0/60}
24
- balls.each{|ball| ball.cp_move}
25
- end
26
- end
@@ -1,24 +0,0 @@
1
- Shoes.app :width => 360, :height => 600, :resizable => false do
2
- stroke "#dde"
3
- background "#f1f5ff"
4
- 13.times { |x| line 20, 142 + (30 * x), 320, 142 + (30 * x) }
5
- 11.times { |x| line 20 + (30 * x), 142, 20 + (30 * x), 502 }
6
-
7
- stack :margin => 20 do
8
- title "Control Sizes", :size => 16
9
- para "This app measures various controls against a grid of lines, to be sure they size appropriately despite the platform."
10
- stack :top => 122, :left => 40 do
11
- button "Standard"
12
- button "Margin: 2, Height: 28", :margin => 2, :height => 30
13
- edit_line "Standard", :margin => 1
14
- edit_line "Margin: 4, Height: 30", :height => 30, :margin => 4
15
- list_box :items => ["Standard"], :choose => "Standard"
16
- list_box :items => ["Margin: 4, Height: 32"],
17
- :choose => "Margin: 4, Height: 32",
18
- :height => 32, :margin => 4
19
- progress
20
- progress :height => 32, :margin => 4
21
- edit_box
22
- end
23
- end
24
- end
@@ -1,26 +0,0 @@
1
- #
2
- # based on the cairo curve_to example
3
- # http://www.cairographics.org/samples/curve_to/
4
- #
5
- Shoes.app do
6
- x, y = 25.6, 128.0
7
- x1 = 102.4; y1 = 230.4
8
- x2 = 153.6; y2 = 25.6
9
- x3 = 230.4; y3 = 128.0
10
-
11
- nofill
12
- strokewidth 10.0
13
- shape do
14
- move_to x, y
15
- curve_to x1, y1, x2, y2, x3, y3
16
- end
17
-
18
- strokewidth 6.0
19
- stroke rgb(1.0, 0.2, 0.2, 0.6)
20
- shape do
21
- move_to x, y
22
- line_to x1, y1
23
- move_to x2, y2
24
- line_to x3, y3
25
- end
26
- end
@@ -1,29 +0,0 @@
1
- Shoes.app :width => 300, :height => 150, :margin => 10 do
2
- def answer(v)
3
- @answer.replace v.inspect
4
- end
5
-
6
- button "Ask" do
7
- answer ask("What is your name?")
8
- end
9
- button "Confirm" do
10
- answer confirm("Would you like to proceed?")
11
- end
12
- button "Open File..." do
13
- answer ask_open_file
14
- end
15
- button "Save File..." do
16
- answer ask_save_file
17
- end
18
- button "Open Folder..." do
19
- answer ask_open_folder
20
- end
21
- button "Save Folder..." do
22
- answer ask_save_folder
23
- end
24
- button "Color" do
25
- answer ask_color("Pick a Color")
26
- end
27
-
28
- @answer = para "Answers appear here"
29
- end
@@ -1,13 +0,0 @@
1
- Shoes.app do
2
- background "#999"
3
- stroke "#000"
4
- x, y = nil, nil
5
- motion do |_x, _y|
6
- if x and y and (x != _x or y != _y)
7
- append do
8
- line x, y, _x, _y
9
- end
10
- end
11
- x, y = _x, _y
12
- end
13
- end
@@ -1,28 +0,0 @@
1
- str, t = "", nil
2
- Shoes.app :height => 500, :width => 450 do
3
- background rgb(77, 77, 77)
4
- stack :margin => 10 do
5
- para span("TEXT EDITOR", :stroke => red, :fill => white), " * USE ALT-Q TO QUIT", :stroke => white
6
- end
7
- stack :margin => 10 do
8
- t = para "", :font => "Monospace 12px", :stroke => white
9
- t.cursor = -1
10
- end
11
- keypress do |k|
12
- case k
13
- when String
14
- str += k
15
- when :backspace
16
- str.slice!(-1)
17
- when :tab
18
- str += " "
19
- when :alt_q
20
- quit
21
- when :alt_c
22
- self.clipboard = str
23
- when :alt_v
24
- str += self.clipboard
25
- end
26
- t.replace str
27
- end
28
- end
@@ -1,28 +0,0 @@
1
- Shoes.app :width => 320, :height => 420 do
2
- background "../static/menu-gray.png"
3
- background "../static/menu-top.png", :height => 50
4
- background "../static/menu-left.png", :top => 50, :width => 55
5
- background "../static/menu-right.png", :right => 0, :top => 50, :width => 55
6
- image "../static/menu-corner1.png", :top => 0, :left => 0
7
- image "../static/menu-corner2.png", :right => 0, :top => 0
8
-
9
- stack :margin => 40 do
10
- stack :margin => 10 do
11
- para "Name"
12
- @name = list_box :items => ["Phyllis", "Ronald", "Wyatt"]
13
- end
14
- stack :margin => 10 do
15
- para "Address"
16
- @address = edit_line
17
- end
18
- stack :margin => 10 do
19
- para "Phone"
20
- @phone = edit_line
21
- end
22
- stack :margin => 10 do
23
- button "Save" do
24
- Shoes.p [@name.text, @address.text, @phone.text]
25
- end
26
- end
27
- end
28
- end
@@ -1,21 +0,0 @@
1
- Shoes.app do
2
- background black
3
-
4
- stack :top => 0.4, :left => 0.2 do
5
- @stripes = stack
6
-
7
- mask do
8
- title "Shoes", :weight => "bold", :size => 82
9
- end
10
- end
11
-
12
- animate 10 do
13
- @stripes.clear do
14
- 20.times do |i|
15
- strokewidth 4
16
- stroke rgb((0.0..0.5).rand, (0.0..1.0).rand, (0.0..0.3).rand)
17
- line 0, i * 5, 400, i * 8
18
- end
19
- end
20
- end
21
- end
@@ -1,31 +0,0 @@
1
- class MenuPanel < Shoes::Widget
2
- @@boxes = []
3
- def initialize(color, args)
4
- @@boxes << self
5
- background color
6
- para link("Box #{@@boxes.length}", :stroke => white, :fill => nil).
7
- click { visit "/" },
8
- :margin => 18, :align => "center", :size => 20
9
- hover { expand }
10
- end
11
- def expand
12
- if self.width < 170
13
- a = animate 30 do
14
- @@boxes.each do |b|
15
- b.width -= 5 if b != self and b.width > 140
16
- end
17
- self.width += 5
18
- a.stop if self.width >= 170
19
- end
20
- end
21
- end
22
- end
23
-
24
- Shoes.app :width => 400, :height => 130 do
25
- style(Link, :underline => nil)
26
- style(LinkHover, :fill => nil, :underline => nil)
27
- menu_panel green, :width => 170, :height => 120, :margin => 4
28
- menu_panel blue, :width => 140, :height => 120, :margin => 4
29
- menu_panel red, :width => 140, :height => 120, :margin => 4
30
- menu_panel purple, :width => 140, :height => 120, :margin => 4
31
- end
@@ -1,35 +0,0 @@
1
- class MenuPanel < Shoes::Widget
2
- $boxes = []
3
- def initialize(color, args)
4
- $boxes << self
5
- background color
6
- para link("Box #{$boxes.length}", :stroke => white, :fill => nil).
7
- click { visit "/" },
8
- :margin => 18, :align => "center", :size => 20
9
- yield
10
- end
11
- end
12
-
13
- Shoes.app :width => 600, :height => 130 do
14
- style(Link, :underline => nil)
15
- style(LinkHover, :fill => nil, :underline => nil)
16
-
17
- expand = proc do
18
- hover do |box|
19
- if box.width < 170
20
- a = animate 30 do
21
- $boxes.each do |b|
22
- b.width -= 5 if b != box and b.width > 140
23
- end
24
- box.width += 5
25
- a.stop if box.width >= 170
26
- end
27
- end
28
- end
29
- end
30
-
31
- menu_panel green, :width => 170, :height => 120, :margin => 4, &expand
32
- menu_panel blue, :width => 140, :height => 120, :margin => 4, &expand
33
- menu_panel red, :width => 140, :height => 120, :margin => 4, &expand
34
- menu_panel purple, :width => 140, :height => 120, :margin => 4, &expand
35
- end
@@ -1,29 +0,0 @@
1
- #
2
- # The setup block will install gems before launching the
3
- # rest of the app below it.
4
- #
5
- Shoes.setup do
6
- gem 'bluecloth =2.0.6'
7
- gem 'metaid'
8
- end
9
-
10
- require 'bluecloth'
11
- require 'metaid'
12
-
13
- Shoes.app :width => 300, :height => 400, :resizable => false do
14
- background "#eed"
15
-
16
- stack :margin => 40 do
17
- tagline "Loaded Gems:", :align => "center", :underline => "single"
18
- Gem.loaded_specs.each do |name, spec|
19
- para "#{name}\n#{spec.version}", :align => "center"
20
- end
21
-
22
- caption "Total Gems: #{Gem.source_index.length}", :align => "center", :margin_bottom => 0
23
- para "(includes unloaded gems)", :align => "center", :margin_top => 0
24
- button "OK", :bottom => 30, :left => 0.4 do
25
- self.close
26
- end
27
- end
28
-
29
- end
@@ -1,45 +0,0 @@
1
- #
2
- # mimicking the mootools demo for Fx.Slide
3
- # http://demos.mootools.net/Fx.Slide
4
- #
5
- Shoes.app do
6
- def stop_anim
7
- @anim.stop
8
- @anim = nil
9
- end
10
- def slide_anim &blk
11
- stop_anim if @anim
12
- @anim = animate 30, &blk
13
- end
14
- def slide_out slot
15
- slide_anim do |i|
16
- slot.height = 150 - (i * 3)
17
- slot.contents[0].top = -i * 3
18
- if slot.height == 0
19
- stop_anim
20
- slot.hide
21
- end
22
- end
23
- end
24
- def slide_in slot
25
- slot.show
26
- slide_anim do |i|
27
- slot.height = i * 6
28
- slot.contents[0].top = slot.height - 150
29
- stop_anim if slot.height == 150
30
- end
31
- end
32
-
33
- background white
34
- stack :margin => 10 do
35
- para link("slide out") { slide_out @lipsum }, " | ",
36
- link("slide in") { slide_in @lipsum }
37
- @lipsum = stack :width => 1.0, :height => 150 do
38
- stack do
39
- background "#ddd"
40
- border "#eee", :strokewidth => 5
41
- para "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", :margin => 10
42
- end
43
- end
44
- end
45
- end
@@ -1,28 +0,0 @@
1
- Shoes.app :width => 500, :height => 500, :resizable => false do
2
- image 400, 470, :top => 30, :left => 50 do
3
- nostroke
4
- fill "#127"
5
- image :top => 230, :left => 0 do
6
- oval 70, 130, 260, 40
7
- blur 30
8
- end
9
- oval 10, 10, 380, 380
10
- image :top => 0, :left => 0 do
11
- fill "#46D"
12
- oval 30, 30, 338, 338
13
- blur 10
14
- end
15
- fill gradient(rgb(1.0, 1.0, 1.0, 0.7), rgb(1.0, 1.0, 1.0, 0.0))
16
- oval 80, 14, 240, 176
17
- image :top => 0, :left => 0 do
18
- fill "#79F"
19
- oval 134, 134, 130, 130
20
- blur 40
21
- end
22
- image :top => 150, :left => 40, :width => 320, :height => 260 do
23
- fill gradient(rgb(0.7, 0.9, 1.0, 0.0), rgb(0.7, 0.9, 1.0, 0.6))
24
- oval 60, 60, 200, 136
25
- blur 20
26
- end
27
- end
28
- end
@@ -1,13 +0,0 @@
1
- require 'sqlite3'
2
- Shoes.app :width => 350, :height => 130 do
3
- db = SQLite3::Database.new "simple-sqlite3.db"
4
- db.execute "create table t1 (t1key INTEGER PRIMARY KEY,data " \
5
- "TEXT,num double,timeEnter DATE)"
6
- db.execute "insert into t1 (data,num) values ('This is sample data',3)"
7
- db.execute "insert into t1 (data,num) values ('More sample data',6)"
8
- db.execute "insert into t1 (data,num) values ('Aurélio, Küng, Stärk, Uña, Łuksza',6)"
9
- db.execute "insert into t1 (data,num) values ('And a little more',9)"
10
- rows = db.execute "select * from t1"
11
- rows.each{|k, d, n| para "#{k} : #{d} : #{n}\n"}
12
- end
13
-
@@ -1,13 +0,0 @@
1
- Shoes.app :height => 150, :width => 250 do
2
- background rgb(240, 250, 208)
3
- stack :margin => 10 do
4
- button "Start" do
5
- @time = Time.now
6
- @label.replace "Stop watch started at #@time"
7
- end
8
- button "Stop" do
9
- @label.replace "Stopped, ", strong("#{Time.now - @time}"), " seconds elapsed."
10
- end
11
- @label = para "Press ", strong("start"), " to begin timing."
12
- end
13
- end
@@ -1,13 +0,0 @@
1
- Shoes.app :width => 408, :height => 346, :resizable => false do
2
- background "#eee"
3
- stack :margin => 4 do
4
- @vid = video "http://www.rin-shun.com/shoes/AdventureTimewithFinnandJakeFinnTime.mp4"
5
- end
6
- para "controls: ",
7
- link("play") { @vid.play }, ", ",
8
- link("pause") { @vid.pause }, ", ",
9
- link("stop") { @vid.stop }, ", ",
10
- link("hide") { @vid.hide }, ", ",
11
- link("show") { @vid.show }, ", ",
12
- link("+5 sec") { @vid.time += 5000 }
13
- end
@@ -1,13 +0,0 @@
1
- Shoes.app do
2
- stack :top => 0.5, :left => 0.5 do
3
- para "Counting up:"
4
- l = para "0"
5
- animate(24) do |i|
6
- f = ['Arial 14px', 'Serif 34px', 'Monospace 18px', 'Arial 48px'][rand(3)]
7
- l.replace "#{i}", :font => f
8
- end
9
- motion do |x, y|
10
- Shoes.p [x, y]
11
- end
12
- end
13
- end
@@ -1,23 +0,0 @@
1
- #
2
- # a translation from a processing example
3
- # http://vormplus.be/weging/an-introduction-to-processing/
4
- #
5
- Shoes.app :width => 420, :height => 420, :resizable => false do
6
- rotation = -(Shoes::HALF_PI / 3)
7
- step = 20
8
-
9
- background gray(240)
10
- stroke gray(127)
11
- cap :curve
12
- nofill
13
-
14
- 10.times do |i|
15
- strokewidth i
16
- size = 200 + (step * i)
17
- shape do
18
- arc self.width / 2, self.height / 2,
19
- size, size,
20
- rotation * i, rotation * i + Shoes::TWO_PI - Shoes::HALF_PI
21
- end
22
- end
23
- end
@@ -1,24 +0,0 @@
1
- xspeed, yspeed = 8.4, 6.6
2
- xdir, ydir = 1, 1
3
-
4
- Shoes.app do
5
- background "#DFA"
6
- border black, :strokewidth => 6
7
-
8
- nostroke
9
- @icon = image "#{DIR}/static/shoes-icon.png", :left => 100, :top => 100 do
10
- alert "You're soooo quick."
11
- end
12
-
13
- x, y = self.width / 2, self.height / 2
14
- size = @icon.size
15
- animate(30) do
16
- x += xspeed * xdir
17
- y += yspeed * ydir
18
-
19
- xdir *= -1 if x > self.width - size[0] or x < 0
20
- ydir *= -1 if y > self.height - size[1] or y < 0
21
-
22
- @icon.move x.to_i, y.to_i
23
- end
24
- end
@@ -1,26 +0,0 @@
1
- # simple-chipmunk.rb
2
- require 'shoes/chipmunk'
3
-
4
- Shoes.app title: 'A Tiny Chipmunk Physics Demo' do
5
- extend ChipMunk
6
- space = cp_space
7
- balls = []
8
-
9
- nofill
10
- cp_line 0, 180, 200, 280, stroke: gold
11
- cp_line 200, 280, 300, 270, stroke: gold
12
- cp_line 250, 350, 350, 330
13
- cp_line 170, 370, 220, 380
14
- cp_line 100, 450, 300, 430, stroke: lightslategray
15
- cp_line 300, 430, 500, 450, stroke: lightslategray
16
-
17
- nostroke
18
- oval(10, 30, 40, fill: blue).click{balls << cp_oval(30, 50, 20, stroke: blue, strokewidth: 2)}
19
- oval(70, 40, 20, fill: green).click{balls << cp_oval(80, 50, 10, fill: green)}
20
- oval(105, 45, 10, fill: red).click{balls << cp_oval(110, 50, 5, fill: red)}
21
-
22
- every do
23
- 6.times{space.step 1.0/60}
24
- balls.each{|ball| ball.cp_move}
25
- end
26
- end
@@ -1,26 +0,0 @@
1
- #
2
- # based on the cairo curve_to example
3
- # http://www.cairographics.org/samples/curve_to/
4
- #
5
- Shoes.app do
6
- x, y = 25.6, 128.0
7
- x1 = 102.4; y1 = 230.4
8
- x2 = 153.6; y2 = 25.6
9
- x3 = 230.4; y3 = 128.0
10
-
11
- nofill
12
- strokewidth 10.0
13
- shape do
14
- move_to x, y
15
- curve_to x1, y1, x2, y2, x3, y3
16
- end
17
-
18
- strokewidth 6.0
19
- stroke rgb(1.0, 0.2, 0.2, 0.6)
20
- shape do
21
- move_to x, y
22
- line_to x1, y1
23
- move_to x2, y2
24
- line_to x3, y3
25
- end
26
- end
@@ -1,29 +0,0 @@
1
- Shoes.app :width => 300, :height => 150, :margin => 10 do
2
- def answer(v)
3
- @answer.replace v.inspect
4
- end
5
-
6
- button "Ask" do
7
- answer ask("What is your name?")
8
- end
9
- button "Confirm" do
10
- answer confirm("Would you like to proceed?")
11
- end
12
- button "Open File..." do
13
- answer ask_open_file
14
- end
15
- button "Save File..." do
16
- answer ask_save_file
17
- end
18
- button "Open Folder..." do
19
- answer ask_open_folder
20
- end
21
- button "Save Folder..." do
22
- answer ask_save_folder
23
- end
24
- button "Color" do
25
- answer ask_color("Pick a Color")
26
- end
27
-
28
- @answer = para "Answers appear here"
29
- end