scarpe 0.2.1 → 0.2.2
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 +11 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +112 -0
- data/README.md +31 -24
- 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/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/button_go_away.rb +1 -1
- 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/get_headers.rb +10 -0
- data/examples/highlander.rb +2 -0
- data/examples/link.rb +2 -2
- data/examples/local_fonts.rb +4 -0
- data/examples/local_images.rb +4 -0
- data/examples/motion_events.rb +20 -0
- data/examples/parse_xl_funnies.rb +58 -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/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/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 +42 -66
- data/fonts/Pacifico.ttf +0 -0
- data/lacci/Gemfile +22 -0
- data/lacci/Gemfile.lock +72 -0
- data/lacci/Rakefile +12 -0
- data/lacci/lacci.gemspec +37 -0
- data/lacci/lib/lacci/scarpe_cli.rb +70 -0
- data/lacci/lib/lacci/scarpe_core.rb +21 -0
- data/lacci/lib/lacci/version.rb +13 -0
- data/lacci/lib/shoes/app.rb +264 -0
- data/{lib/scarpe → lacci/lib/shoes}/background.rb +1 -1
- data/{lib/scarpe → lacci/lib/shoes}/border.rb +1 -1
- data/{lib/scarpe → lacci/lib/shoes}/colors.rb +1 -1
- data/lacci/lib/shoes/constants.rb +29 -0
- data/{lib/scarpe → lacci/lib/shoes}/display_service.rb +40 -45
- data/lacci/lib/shoes/download.rb +123 -0
- data/lacci/lib/shoes/log.rb +71 -0
- data/lacci/lib/shoes/spacing.rb +9 -0
- data/{lib/scarpe → lacci/lib/shoes}/widget.rb +63 -43
- data/{lib/scarpe → lacci/lib/shoes/widgets}/alert.rb +3 -3
- data/{lib/scarpe → lacci/lib/shoes/widgets}/arc.rb +7 -5
- data/{lib/scarpe → lacci/lib/shoes/widgets}/button.rb +3 -3
- data/lacci/lib/shoes/widgets/check.rb +28 -0
- data/lacci/lib/shoes/widgets/document_root.rb +20 -0
- data/{lib/scarpe → lacci/lib/shoes/widgets}/edit_box.rb +10 -5
- data/{lib/scarpe → lacci/lib/shoes/widgets}/edit_line.rb +2 -2
- data/lacci/lib/shoes/widgets/flow.rb +22 -0
- data/lacci/lib/shoes/widgets/font.rb +14 -0
- data/{lib/scarpe → lacci/lib/shoes/widgets}/image.rb +3 -7
- data/lacci/lib/shoes/widgets/line.rb +18 -0
- data/{lib/scarpe → lacci/lib/shoes/widgets}/link.rb +2 -2
- data/{lib/scarpe → lacci/lib/shoes/widgets}/list_box.rb +2 -2
- data/{lib/scarpe → lacci/lib/shoes/widgets}/para.rb +4 -26
- data/lacci/lib/shoes/widgets/radio.rb +35 -0
- data/lacci/lib/shoes/widgets/shape.rb +37 -0
- data/lacci/lib/shoes/widgets/slot.rb +75 -0
- data/{lib/scarpe → lacci/lib/shoes/widgets}/span.rb +2 -2
- data/lacci/lib/shoes/widgets/stack.rb +24 -0
- data/{lib/scarpe → lacci/lib/shoes/widgets}/star.rb +6 -9
- data/lacci/lib/shoes/widgets/subscription_item.rb +60 -0
- data/lacci/lib/shoes/widgets/text_widget.rb +51 -0
- data/lacci/lib/shoes/widgets/video.rb +15 -0
- data/lacci/lib/shoes/widgets.rb +29 -0
- data/lacci/lib/shoes.rb +127 -0
- data/lacci/test/test_colors.rb +39 -0
- data/lacci/test/test_helper.rb +9 -0
- data/lacci/test/test_lacci.rb +9 -0
- data/lib/scarpe/cats_cradle.rb +249 -0
- data/lib/scarpe/evented_assertions.rb +88 -0
- data/lib/scarpe/version.rb +1 -1
- data/lib/scarpe/wv/alert.rb +3 -2
- data/lib/scarpe/wv/app.rb +30 -8
- data/lib/scarpe/wv/arc.rb +5 -6
- data/lib/scarpe/wv/background.rb +10 -1
- data/lib/scarpe/wv/border.rb +5 -3
- data/lib/scarpe/wv/button.rb +11 -9
- data/lib/scarpe/wv/check.rb +29 -0
- data/lib/scarpe/wv/control_interface.rb +14 -20
- data/lib/scarpe/wv/control_interface_test.rb +13 -28
- data/lib/scarpe/wv/document_root.rb +3 -45
- data/lib/scarpe/wv/edit_box.rb +5 -7
- data/lib/scarpe/wv/edit_line.rb +2 -2
- data/lib/scarpe/wv/flow.rb +10 -20
- data/lib/scarpe/wv/font.rb +36 -0
- data/lib/scarpe/wv/html.rb +3 -2
- data/lib/scarpe/wv/image.rb +7 -2
- data/lib/scarpe/wv/line.rb +4 -7
- data/lib/scarpe/wv/link.rb +1 -0
- data/lib/scarpe/wv/list_box.rb +3 -3
- data/lib/scarpe/wv/para.rb +16 -14
- data/lib/scarpe/wv/radio.rb +34 -0
- data/lib/scarpe/wv/shape.rb +44 -8
- data/lib/scarpe/wv/slot.rb +81 -0
- data/lib/scarpe/wv/spacing.rb +1 -1
- data/lib/scarpe/wv/span.rb +10 -8
- data/lib/scarpe/wv/stack.rb +10 -30
- data/lib/scarpe/wv/star.rb +11 -12
- data/lib/scarpe/wv/subscription_item.rb +50 -0
- data/lib/scarpe/wv/video.rb +34 -0
- data/lib/scarpe/wv/web_wrangler.rb +238 -58
- data/lib/scarpe/wv/webview_local_display.rb +27 -5
- data/lib/scarpe/wv/webview_relay_display.rb +18 -119
- data/lib/scarpe/wv/webview_relay_util.rb +143 -0
- data/lib/scarpe/wv/widget.rb +80 -11
- data/lib/scarpe/wv/wv_display_worker.rb +17 -4
- data/lib/scarpe/wv.rb +33 -4
- data/lib/scarpe/wv_local.rb +1 -1
- data/lib/scarpe/wv_relay.rb +1 -1
- data/lib/scarpe.rb +3 -32
- data/scarpe-components/.gitignore +1 -0
- data/scarpe-components/Gemfile +22 -0
- data/scarpe-components/README.md +35 -0
- data/scarpe-components/Rakefile +12 -0
- data/scarpe-components/lib/scarpe/components/base64.rb +29 -0
- data/scarpe-components/lib/scarpe/components/file_helpers.rb +65 -0
- data/scarpe-components/lib/scarpe/components/modular_logger.rb +113 -0
- data/scarpe-components/lib/scarpe/components/print_logger.rb +43 -0
- data/{lib/scarpe → scarpe-components/lib/scarpe/components}/promises.rb +102 -35
- data/scarpe-components/lib/scarpe/components/segmented_file_loader.rb +170 -0
- data/scarpe-components/lib/scarpe/components/unit_test_helpers.rb +217 -0
- data/scarpe-components/lib/scarpe/components/version.rb +7 -0
- data/scarpe-components/scarpe-components.gemspec +38 -0
- data/scarpe-components/test/test_components.rb +9 -0
- data/scarpe-components/test/test_helper.rb +23 -0
- data/scarpe-components/test/test_promises.rb +260 -0
- data/scarpe-components/test/test_segmented_app_files.rb +182 -0
- data/{lib/scarpe → spikes}/glibui/widget.rb +2 -2
- data/{lib/scarpe → spikes}/glibui.rb +1 -1
- data/templates/basic_class_template.erb +1 -1
- data/templates/class_template_with_event_bind.erb +1 -1
- data/templates/class_template_with_shapes.erb +1 -1
- data/templates/webview_template.erb +0 -3
- metadata +151 -118
- 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/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/app.rb +0 -78
- data/lib/scarpe/document_root.rb +0 -20
- data/lib/scarpe/fill.rb +0 -23
- data/lib/scarpe/flow.rb +0 -19
- data/lib/scarpe/line.rb +0 -25
- data/lib/scarpe/logger.rb +0 -155
- data/lib/scarpe/shape.rb +0 -19
- data/lib/scarpe/spacing.rb +0 -9
- data/lib/scarpe/stack.rb +0 -70
- data/lib/scarpe/text_widget.rb +0 -42
- data/lib/scarpe/unit_test_helpers.rb +0 -163
- data/lib/scarpe/widgets.rb +0 -30
- data/lib/scarpe/wv/fill.rb +0 -30
- data/lib/scarpe/wv/shape_helper.rb +0 -44
- data/scarpe-0.2.0.gem +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
|