scarpe 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +4 -0
- data/.yardopts +12 -0
- data/CHANGELOG.md +16 -2
- data/Gemfile +3 -0
- data/Gemfile.lock +116 -0
- data/README.md +53 -30
- data/Rakefile +13 -1
- data/docs/yard/catscradle.md +44 -0
- data/docs/yard/template/default/fulldoc/html/setup.rb +13 -0
- data/docs/yard/template/default/layout/html/setup.rb +9 -0
- data/examples/animate.rb +20 -0
- data/examples/arrow.rb +10 -0
- data/examples/background_with_image.rb +16 -0
- data/examples/bloopsaphone/working/bronx_army_knife.rb +66 -0
- data/examples/bloopsaphone/working/morning_serenity.rb +21 -0
- data/examples/bloopsaphone/working/simpsons_theme_song_by_why.rb +6 -4
- data/examples/btn_tooltip.rb +7 -0
- data/examples/button_go_away.rb +1 -1
- data/examples/button_style_changed.rb +7 -0
- data/examples/button_styles_default.rb +6 -0
- data/examples/check.rb +18 -0
- data/examples/clear_and_append.rb +24 -0
- data/examples/download_and_show_image.rb +28 -0
- data/examples/edit_box.rb +3 -5
- data/examples/fonts.rb +2 -2
- data/examples/gen.rb +8 -8
- data/examples/get_headers.rb +10 -0
- data/examples/highlander.rb +4 -2
- data/examples/legacy/README.md +6 -0
- data/examples/legacy/not_checked/shoes-contrib/basic/shoes-notes.rb +1 -1
- data/examples/legacy/not_checked/simple/anim-shapes.rb +1 -1
- data/examples/legacy/not_checked/speedometer_app.rb +55 -0
- data/examples/legacy/working/simple/image-icon.rb +3 -0
- data/examples/legacy/{not_checked → working}/simple/image.rb +1 -1
- data/examples/link.rb +2 -2
- data/examples/list_box_choose.rb +17 -0
- data/examples/local_assets/local_file_server.rb +82 -0
- data/examples/local_assets/sample.gif +0 -0
- data/examples/local_assets/sample.mp4 +0 -0
- data/examples/local_fonts.rb +4 -0
- data/examples/local_images.rb +3 -0
- data/examples/motion_events.rb +20 -0
- data/examples/para/para_text.rb +14 -0
- data/examples/parse_xl_funnies.rb +58 -0
- data/examples/progress.rb +31 -0
- data/examples/radio/radio.rb +16 -0
- data/examples/radio/radio_groups.rb +18 -0
- data/examples/radio/radio_same_slot.rb +6 -0
- data/examples/rect.rb +4 -0
- data/examples/rotate_shapes.rb +17 -0
- data/examples/ruby_racer.rb +13 -15
- data/examples/selfitude.rb +18 -0
- data/examples/shapes/shapes_fill.rb +4 -3
- data/examples/shoes_school.rb +2 -4
- data/examples/show_hide.rb +6 -0
- data/examples/simpler-menu.rb +21 -0
- data/examples/skip_ci/change_my_audio_source.rb +21 -0
- data/examples/skip_ci/guitar_fretboard.rb +137 -0
- data/examples/video.rb +10 -0
- data/exe/scarpe +43 -66
- data/fonts/Pacifico.ttf +0 -0
- data/lacci/Gemfile +24 -0
- data/lacci/Gemfile.lock +79 -0
- data/lacci/Rakefile +12 -0
- data/lacci/lacci.gemspec +37 -0
- data/lacci/lib/lacci/scarpe_cli.rb +71 -0
- data/lacci/lib/lacci/scarpe_core.rb +22 -0
- data/lacci/lib/lacci/version.rb +13 -0
- data/lacci/lib/scarpe/niente/app.rb +23 -0
- data/lacci/lib/scarpe/niente/display_service.rb +62 -0
- data/lacci/lib/scarpe/niente/drawable.rb +57 -0
- data/lacci/lib/scarpe/niente/logger.rb +29 -0
- data/lacci/lib/scarpe/niente/shoes_spec.rb +87 -0
- data/lacci/lib/scarpe/niente.rb +20 -0
- data/lacci/lib/shoes/app.rb +309 -0
- data/{lib/scarpe → lacci/lib/shoes}/background.rb +2 -2
- data/{lib/scarpe → lacci/lib/shoes}/border.rb +2 -2
- data/lacci/lib/shoes/builtins.rb +63 -0
- data/lacci/lib/shoes/changelog.rb +52 -0
- data/{lib/scarpe → lacci/lib/shoes}/colors.rb +3 -1
- data/lacci/lib/shoes/constants.rb +47 -0
- data/{lib/scarpe → lacci/lib/shoes}/display_service.rb +71 -53
- data/lacci/lib/shoes/download.rb +123 -0
- data/lacci/lib/shoes/drawable.rb +380 -0
- data/lacci/lib/shoes/drawables/arc.rb +49 -0
- data/lacci/lib/shoes/drawables/arrow.rb +41 -0
- data/lacci/lib/shoes/drawables/button.rb +73 -0
- data/lacci/lib/shoes/drawables/check.rb +29 -0
- data/lacci/lib/shoes/drawables/document_root.rb +20 -0
- data/lacci/lib/shoes/drawables/edit_box.rb +29 -0
- data/{lib/scarpe → lacci/lib/shoes/drawables}/edit_line.rb +6 -6
- data/lacci/lib/shoes/drawables/flow.rb +22 -0
- data/{lib/scarpe → lacci/lib/shoes/drawables}/image.rb +7 -11
- data/lacci/lib/shoes/drawables/line.rb +20 -0
- data/lacci/lib/shoes/drawables/link.rb +34 -0
- data/lacci/lib/shoes/drawables/list_box.rb +56 -0
- data/lacci/lib/shoes/drawables/para.rb +118 -0
- data/lacci/lib/shoes/drawables/progress.rb +14 -0
- data/lacci/lib/shoes/drawables/radio.rb +33 -0
- data/lacci/lib/shoes/drawables/rect.rb +17 -0
- data/lacci/lib/shoes/drawables/shape.rb +36 -0
- data/lacci/lib/shoes/drawables/slot.rb +87 -0
- data/{lib/scarpe → lacci/lib/shoes/drawables}/span.rb +8 -7
- data/lacci/lib/shoes/drawables/stack.rb +26 -0
- data/lacci/lib/shoes/drawables/star.rb +50 -0
- data/lacci/lib/shoes/drawables/subscription_item.rb +93 -0
- data/lacci/lib/shoes/drawables/text_drawable.rb +63 -0
- data/lacci/lib/shoes/drawables/video.rb +16 -0
- data/lacci/lib/shoes/drawables/widget.rb +69 -0
- data/lacci/lib/shoes/drawables.rb +31 -0
- data/lacci/lib/shoes/errors.rb +28 -0
- data/lacci/lib/shoes/log.rb +71 -0
- data/lacci/lib/shoes/ruby_extensions.rb +15 -0
- data/lacci/lib/shoes/spacing.rb +9 -0
- data/lacci/lib/shoes-spec.rb +93 -0
- data/lacci/lib/shoes.rb +147 -0
- data/lacci/test/test_colors.rb +39 -0
- data/lacci/test/test_helper.rb +63 -0
- data/lacci/test/test_lacci.rb +18 -0
- data/lacci/test/test_shoes_errors.rb +49 -0
- data/lib/scarpe/cats_cradle.rb +271 -0
- data/lib/scarpe/errors.rb +77 -0
- data/lib/scarpe/evented_assertions.rb +121 -0
- data/lib/scarpe/shoes_spec.rb +181 -0
- data/lib/scarpe/version.rb +2 -2
- data/lib/scarpe/wv/app.rb +45 -23
- data/lib/scarpe/wv/arc.rb +4 -48
- data/lib/scarpe/wv/arrow.rb +9 -0
- data/lib/scarpe/wv/button.rb +7 -33
- data/lib/scarpe/wv/check.rb +27 -0
- data/lib/scarpe/wv/control_interface.rb +32 -40
- data/lib/scarpe/wv/document_root.rb +66 -31
- data/lib/scarpe/wv/drawable.rb +273 -0
- data/lib/scarpe/wv/edit_box.rb +4 -19
- data/lib/scarpe/wv/edit_line.rb +4 -18
- data/lib/scarpe/wv/flow.rb +2 -28
- data/lib/scarpe/wv/image.rb +10 -25
- data/lib/scarpe/wv/line.rb +3 -28
- data/lib/scarpe/wv/link.rb +3 -15
- data/lib/scarpe/wv/list_box.rb +6 -29
- data/lib/scarpe/wv/para.rb +11 -28
- data/lib/scarpe/wv/progress.rb +19 -0
- data/lib/scarpe/wv/radio.rb +33 -0
- data/lib/scarpe/wv/rect.rb +13 -0
- data/lib/scarpe/wv/shape.rb +41 -10
- data/lib/scarpe/wv/slot.rb +64 -0
- data/lib/scarpe/wv/span.rb +3 -25
- data/lib/scarpe/wv/stack.rb +2 -38
- data/lib/scarpe/wv/star.rb +3 -54
- data/lib/scarpe/wv/subscription_item.rb +84 -0
- data/lib/scarpe/wv/text_drawable.rb +32 -0
- data/lib/scarpe/wv/video.rb +34 -0
- data/lib/scarpe/wv/web_wrangler.rb +449 -299
- data/lib/scarpe/wv/webview_local_display.rb +63 -26
- data/lib/scarpe/wv/webview_relay_display.rb +24 -125
- data/lib/scarpe/wv/webview_relay_util.rb +140 -0
- data/lib/scarpe/wv/wv_display_worker.rb +19 -6
- data/lib/scarpe/wv.rb +76 -14
- data/lib/scarpe/wv_local.rb +1 -1
- data/lib/scarpe/wv_relay.rb +1 -1
- data/lib/scarpe.rb +4 -32
- data/logger/debug_web_wrangler.json +1 -1
- data/logger/scarpe_wv_test.json +1 -1
- data/scarpe-components/.gitignore +1 -0
- data/scarpe-components/Gemfile +22 -0
- data/scarpe-components/Gemfile.lock +86 -0
- data/scarpe-components/README.md +35 -0
- data/scarpe-components/Rakefile +12 -0
- data/scarpe-components/lib/scarpe/components/base64.rb +25 -0
- data/scarpe-components/lib/scarpe/components/calzini/alert.rb +49 -0
- data/scarpe-components/lib/scarpe/components/calzini/art_widgets.rb +203 -0
- data/scarpe-components/lib/scarpe/components/calzini/button.rb +39 -0
- data/scarpe-components/lib/scarpe/components/calzini/misc.rb +146 -0
- data/scarpe-components/lib/scarpe/components/calzini/para.rb +35 -0
- data/scarpe-components/lib/scarpe/components/calzini/slots.rb +155 -0
- data/scarpe-components/lib/scarpe/components/calzini/text_widgets.rb +65 -0
- data/scarpe-components/lib/scarpe/components/calzini.rb +149 -0
- data/scarpe-components/lib/scarpe/components/errors.rb +20 -0
- data/scarpe-components/lib/scarpe/components/file_helpers.rb +66 -0
- data/scarpe-components/lib/scarpe/components/html.rb +131 -0
- data/scarpe-components/lib/scarpe/components/minitest_export_reporter.rb +75 -0
- data/scarpe-components/lib/scarpe/components/minitest_import_runnable.rb +98 -0
- data/scarpe-components/lib/scarpe/components/minitest_result.rb +86 -0
- data/scarpe-components/lib/scarpe/components/modular_logger.rb +113 -0
- data/scarpe-components/lib/scarpe/components/print_logger.rb +47 -0
- data/{lib/scarpe → scarpe-components/lib/scarpe/components}/promises.rb +115 -48
- data/scarpe-components/lib/scarpe/components/segmented_file_loader.rb +189 -0
- data/scarpe-components/lib/scarpe/components/string_helpers.rb +10 -0
- data/scarpe-components/lib/scarpe/components/tiranti.rb +225 -0
- data/scarpe-components/lib/scarpe/components/unit_test_helpers.rb +257 -0
- data/scarpe-components/lib/scarpe/components/version.rb +7 -0
- data/scarpe-components/scarpe-components.gemspec +38 -0
- data/scarpe-components/test/calzini/test_calzini_alert.rb +30 -0
- data/scarpe-components/test/calzini/test_calzini_art_drawables.rb +105 -0
- data/scarpe-components/test/calzini/test_calzini_button.rb +52 -0
- data/scarpe-components/test/calzini/test_calzini_misc.rb +115 -0
- data/scarpe-components/test/calzini/test_calzini_para.rb +37 -0
- data/scarpe-components/test/calzini/test_calzini_slots.rb +130 -0
- data/scarpe-components/test/calzini/test_calzini_text_drawables.rb +41 -0
- data/scarpe-components/test/mtr_data/exception.json +1 -0
- data/scarpe-components/test/mtr_data/fail_with_message.json +1 -0
- data/scarpe-components/test/mtr_data/skipped_no_message.json +1 -0
- data/scarpe-components/test/mtr_data/skipped_w_msg.json +1 -0
- data/scarpe-components/test/mtr_data/succeed_2_asserts.json +1 -0
- data/scarpe-components/test/test_components.rb +9 -0
- data/scarpe-components/test/test_dimensions.rb +26 -0
- data/scarpe-components/test/test_helper.rb +43 -0
- data/scarpe-components/test/test_html.rb +65 -0
- data/scarpe-components/test/test_minitest_result.rb +61 -0
- data/scarpe-components/test/test_promises.rb +261 -0
- data/scarpe-components/test/test_segmented_app_files.rb +184 -0
- data/scarpegen.rb +14 -14
- data/sig/scarpe.rbs +1 -1
- data/{lib/scarpe → spikes}/glibui/widget.rb +2 -2
- data/{lib/scarpe → spikes}/glibui.rb +1 -1
- data/templates/basic_class_template.erb +13 -14
- data/templates/class_template_with_event_bind.erb +4 -4
- data/templates/class_template_with_shapes.erb +8 -17
- data/templates/example_template.erb +1 -1
- data/templates/module_template.erb +4 -4
- data/templates/webview_template.erb +3 -5
- metadata +236 -145
- data/examples/fill.rb +0 -25
- data/examples/legacy/not_checked/shoes-contrib/basic/class-book.yaml +0 -387
- data/examples/legacy/not_checked/shoes-contrib/elements/image-icon.rb +0 -3
- data/examples/legacy/not_checked/shoes-contrib/good/good-clock.rb +0 -51
- data/examples/legacy/not_checked/shoes-contrib/good/good-follow.rb +0 -26
- data/examples/legacy/not_checked/shoes-contrib/good/good-reminder.rb +0 -174
- data/examples/legacy/not_checked/shoes-contrib/good/good-vjot.rb +0 -56
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-timer.rb +0 -13
- data/examples/legacy/not_checked/shoes-dep-samples/good-clock.rb +0 -51
- data/examples/legacy/not_checked/shoes-dep-samples/good-follow.rb +0 -26
- data/examples/legacy/not_checked/shoes-dep-samples/good-reminder.rb +0 -174
- data/examples/legacy/not_checked/shoes-dep-samples/good-vjot.rb +0 -56
- data/examples/legacy/not_checked/shoes-dep-samples/simple-accordion.rb +0 -75
- data/examples/legacy/not_checked/shoes-dep-samples/simple-anim-shapes.rb +0 -17
- data/examples/legacy/not_checked/shoes-dep-samples/simple-anim-text.rb +0 -13
- data/examples/legacy/not_checked/shoes-dep-samples/simple-arc.rb +0 -23
- data/examples/legacy/not_checked/shoes-dep-samples/simple-bounce.rb +0 -24
- data/examples/legacy/not_checked/shoes-dep-samples/simple-calc.rb +0 -70
- data/examples/legacy/not_checked/shoes-dep-samples/simple-chipmunk.rb +0 -26
- data/examples/legacy/not_checked/shoes-dep-samples/simple-control-sizes.rb +0 -24
- data/examples/legacy/not_checked/shoes-dep-samples/simple-curve.rb +0 -26
- data/examples/legacy/not_checked/shoes-dep-samples/simple-dialogs.rb +0 -29
- data/examples/legacy/not_checked/shoes-dep-samples/simple-draw.rb +0 -13
- data/examples/legacy/not_checked/shoes-dep-samples/simple-editor.rb +0 -28
- data/examples/legacy/not_checked/shoes-dep-samples/simple-form.rb +0 -28
- data/examples/legacy/not_checked/shoes-dep-samples/simple-form.shy +0 -0
- data/examples/legacy/not_checked/shoes-dep-samples/simple-mask.rb +0 -21
- data/examples/legacy/not_checked/shoes-dep-samples/simple-menu.rb +0 -31
- data/examples/legacy/not_checked/shoes-dep-samples/simple-menu1.rb +0 -35
- data/examples/legacy/not_checked/shoes-dep-samples/simple-rubygems.rb +0 -29
- data/examples/legacy/not_checked/shoes-dep-samples/simple-slide.rb +0 -45
- data/examples/legacy/not_checked/shoes-dep-samples/simple-sphere.rb +0 -28
- data/examples/legacy/not_checked/shoes-dep-samples/simple-sqlite3.rb +0 -13
- data/examples/legacy/not_checked/shoes-dep-samples/simple-timer.rb +0 -13
- data/examples/legacy/not_checked/shoes-dep-samples/simple-video.rb +0 -13
- data/examples/legacy/not_checked/simple/anim-text.rb +0 -13
- data/examples/legacy/not_checked/simple/arc.rb +0 -23
- data/examples/legacy/not_checked/simple/bounce.rb +0 -24
- data/examples/legacy/not_checked/simple/chipmunk.rb +0 -26
- data/examples/legacy/not_checked/simple/curve.rb +0 -26
- data/examples/legacy/not_checked/simple/dialogs.rb +0 -29
- data/examples/legacy/not_checked/simple/downloader.rb +0 -40
- data/examples/legacy/not_checked/simple/draw.rb +0 -13
- data/examples/legacy/not_checked/simple/mask.rb +0 -21
- data/examples/legacy/not_checked/simple/slide.rb +0 -45
- data/examples/legacy/not_checked/simple/sphere.rb +0 -28
- data/lib/constants.rb +0 -5
- data/lib/scarpe/alert.rb +0 -19
- data/lib/scarpe/app.rb +0 -78
- data/lib/scarpe/arc.rb +0 -49
- data/lib/scarpe/button.rb +0 -35
- data/lib/scarpe/document_root.rb +0 -20
- data/lib/scarpe/edit_box.rb +0 -24
- data/lib/scarpe/fill.rb +0 -23
- data/lib/scarpe/flow.rb +0 -19
- data/lib/scarpe/line.rb +0 -25
- data/lib/scarpe/link.rb +0 -25
- data/lib/scarpe/list_box.rb +0 -25
- data/lib/scarpe/logger.rb +0 -155
- data/lib/scarpe/para.rb +0 -90
- data/lib/scarpe/shape.rb +0 -19
- data/lib/scarpe/spacing.rb +0 -9
- data/lib/scarpe/stack.rb +0 -70
- data/lib/scarpe/star.rb +0 -47
- data/lib/scarpe/text_widget.rb +0 -42
- data/lib/scarpe/unit_test_helpers.rb +0 -163
- data/lib/scarpe/widget.rb +0 -198
- data/lib/scarpe/widgets.rb +0 -30
- data/lib/scarpe/wv/alert.rb +0 -65
- data/lib/scarpe/wv/background.rb +0 -18
- data/lib/scarpe/wv/border.rb +0 -22
- data/lib/scarpe/wv/control_interface_test.rb +0 -253
- data/lib/scarpe/wv/dimensions.rb +0 -22
- data/lib/scarpe/wv/fill.rb +0 -30
- data/lib/scarpe/wv/html.rb +0 -107
- data/lib/scarpe/wv/shape_helper.rb +0 -44
- data/lib/scarpe/wv/spacing.rb +0 -41
- data/lib/scarpe/wv/text_widget.rb +0 -30
- data/lib/scarpe/wv/widget.rb +0 -181
- data/scarpe-0.2.0.gem +0 -0
- /data/examples/legacy/not_checked/{expert → shoes-contrib/basic}/definr.rb +0 -0
- /data/examples/legacy/not_checked/{expert → shoes-contrib/basic}/funnies.rb +0 -0
- /data/examples/legacy/not_checked/shoes-contrib/{elements → basic}/list_box-select-class.rb +0 -0
- /data/examples/legacy/{not_checked/shoes-contrib/basic → working/simple}/basic-edit-box.rb +0 -0
- /data/examples/legacy/{not_checked/shoes-contrib/elements → working/simple}/basic-fps.rb +0 -0
- /data/examples/legacy/{not_checked/shoes-contrib/elements → working/simple}/border-cat.rb +0 -0
- /data/examples/legacy/{not_checked/shoes-contrib/elements → working/simple}/check-mate.rb +0 -0
- /data/examples/legacy/{not_checked/shoes-contrib/manipulation → working/simple}/clear-slot.rb +0 -0
- /data/examples/legacy/{not_checked/shoes-contrib/basic → working/simple}/clock.rb +0 -0
- /data/examples/legacy/{not_checked/shoes-contrib/basic → working/simple}/gradient-shoes.rb +0 -0
- /data/examples/legacy/{not_checked/shoes-contrib/basic → working/simple}/list_box-shape-report.rb +0 -0
- /data/examples/legacy/{not_checked/shoes-contrib/elements → working/simple}/list_box.rb +0 -0
- /data/examples/legacy/{not_checked/shoes-contrib/elements → working/simple}/phat-button.rb +0 -0
- /data/examples/legacy/{not_checked/shoes-contrib → working}/simple/simple-calc.rb +0 -0
- /data/examples/legacy/{not_checked/shoes-contrib/position → working/simple}/stack-width.rb +0 -0
- /data/examples/legacy/{not_checked/shoes-contrib/elements → working/simple}/width-introspec.rb +0 -0
- /data/{lib/scarpe → spikes}/glibui/README.md +0 -0
- /data/{lib/scarpe → spikes}/glibui/alert.rb +0 -0
- /data/{lib/scarpe → spikes}/glibui/app.rb +0 -0
- /data/{lib/scarpe → spikes}/glibui/background.rb +0 -0
- /data/{lib/scarpe → spikes}/glibui/border.rb +0 -0
- /data/{lib/scarpe → spikes}/glibui/button.rb +0 -0
- /data/{lib/scarpe → spikes}/glibui/dimensions.rb +0 -0
- /data/{lib/scarpe → spikes}/glibui/document_root.rb +0 -0
- /data/{lib/scarpe → spikes}/glibui/edit_box.rb +0 -0
- /data/{lib/scarpe → spikes}/glibui/edit_line.rb +0 -0
- /data/{lib/scarpe → spikes}/glibui/flow.rb +0 -0
- /data/{lib/scarpe → spikes}/glibui/html.rb +0 -0
- /data/{lib/scarpe → spikes}/glibui/image.rb +0 -0
- /data/{lib/scarpe → spikes}/glibui/link.rb +0 -0
- /data/{lib/scarpe → spikes}/glibui/local_display.rb +0 -0
- /data/{lib/scarpe → spikes}/glibui/para.rb +0 -0
- /data/{lib/scarpe → spikes}/glibui/spacing.rb +0 -0
- /data/{lib/scarpe → spikes}/glibui/stack.rb +0 -0
- /data/{lib/scarpe → spikes}/glibui/text_widget.rb +0 -0
- /data/{lib/scarpe → spikes}/libui/alert.rb +0 -0
- /data/{lib/scarpe → spikes}/libui/button.rb +0 -0
- /data/{lib/scarpe → spikes}/libui/colors.rb +0 -0
- /data/{lib/scarpe → spikes}/libui/core.rb +0 -0
- /data/{lib/scarpe → spikes}/libui/flow.rb +0 -0
- /data/{lib/scarpe → spikes}/libui/libui.rb +0 -0
- /data/{lib/scarpe → spikes}/libui/notepad.md +0 -0
- /data/{lib/scarpe → spikes}/libui/para.rb +0 -0
- /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,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
|
Binary file
|
@@ -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
|