shoes-core 4.0.0.pre3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE +31 -0
- data/README.md +8 -0
- data/Rakefile +1 -0
- data/bin/shoes +62 -0
- data/bin/shoes-guard +8 -0
- data/bin/shoes-picker +6 -0
- data/bin/shoes-stub +62 -0
- data/ext/install/Rakefile +29 -0
- data/ext/install/shoes.bat +15 -0
- data/fonts/Coolvetica.ttf +0 -0
- data/fonts/Lacuna.ttf +0 -0
- data/lib/rubygems_plugin.rb +24 -0
- data/lib/shoes.rb +1 -0
- data/lib/shoes/animation.rb +56 -0
- data/lib/shoes/app.rb +130 -0
- data/lib/shoes/arc.rb +25 -0
- data/lib/shoes/background.rb +20 -0
- data/lib/shoes/border.rb +20 -0
- data/lib/shoes/builtin_methods.rb +76 -0
- data/lib/shoes/button.rb +29 -0
- data/lib/shoes/check_button.rb +41 -0
- data/lib/shoes/color.rb +387 -0
- data/lib/shoes/common/background_element.rb +9 -0
- data/lib/shoes/common/changeable.rb +34 -0
- data/lib/shoes/common/clickable.rb +24 -0
- data/lib/shoes/common/inspect.rb +14 -0
- data/lib/shoes/common/positioning.rb +30 -0
- data/lib/shoes/common/registration.rb +31 -0
- data/lib/shoes/common/remove.rb +10 -0
- data/lib/shoes/common/state.rb +16 -0
- data/lib/shoes/common/style.rb +160 -0
- data/lib/shoes/common/style_normalizer.rb +16 -0
- data/lib/shoes/common/ui_element.rb +11 -0
- data/lib/shoes/common/visibility.rb +41 -0
- data/lib/shoes/configuration.rb +96 -0
- data/lib/shoes/core.rb +1 -0
- data/lib/shoes/core/version.rb +5 -0
- data/lib/shoes/dialog.rb +56 -0
- data/lib/shoes/dimension.rb +269 -0
- data/lib/shoes/dimensions.rb +203 -0
- data/lib/shoes/download.rb +130 -0
- data/lib/shoes/dsl.rb +656 -0
- data/lib/shoes/file_not_found_error.rb +4 -0
- data/lib/shoes/font.rb +50 -0
- data/lib/shoes/gradient.rb +31 -0
- data/lib/shoes/image.rb +53 -0
- data/lib/shoes/image_pattern.rb +12 -0
- data/lib/shoes/input_box.rb +59 -0
- data/lib/shoes/internal_app.rb +230 -0
- data/lib/shoes/key_event.rb +17 -0
- data/lib/shoes/line.rb +84 -0
- data/lib/shoes/link.rb +57 -0
- data/lib/shoes/link_hover.rb +5 -0
- data/lib/shoes/list_box.rb +50 -0
- data/lib/shoes/logger.rb +65 -0
- data/lib/shoes/logger/ruby.rb +16 -0
- data/lib/shoes/mock.rb +33 -0
- data/lib/shoes/mock/animation.rb +8 -0
- data/lib/shoes/mock/app.rb +49 -0
- data/lib/shoes/mock/arc.rb +9 -0
- data/lib/shoes/mock/background.rb +10 -0
- data/lib/shoes/mock/border.rb +7 -0
- data/lib/shoes/mock/button.rb +22 -0
- data/lib/shoes/mock/check.rb +24 -0
- data/lib/shoes/mock/clickable.rb +8 -0
- data/lib/shoes/mock/common_methods.rb +12 -0
- data/lib/shoes/mock/dialog.rb +13 -0
- data/lib/shoes/mock/download.rb +16 -0
- data/lib/shoes/mock/font.rb +15 -0
- data/lib/shoes/mock/image.rb +13 -0
- data/lib/shoes/mock/image_pattern.rb +8 -0
- data/lib/shoes/mock/input_box.rb +30 -0
- data/lib/shoes/mock/keypress.rb +11 -0
- data/lib/shoes/mock/keyrelease.rb +11 -0
- data/lib/shoes/mock/line.rb +14 -0
- data/lib/shoes/mock/link.rb +11 -0
- data/lib/shoes/mock/list_box.rb +19 -0
- data/lib/shoes/mock/oval.rb +11 -0
- data/lib/shoes/mock/packager.rb +13 -0
- data/lib/shoes/mock/progress.rb +10 -0
- data/lib/shoes/mock/radio.rb +27 -0
- data/lib/shoes/mock/rect.rb +14 -0
- data/lib/shoes/mock/shape.rb +20 -0
- data/lib/shoes/mock/slot.rb +16 -0
- data/lib/shoes/mock/sound.rb +8 -0
- data/lib/shoes/mock/star.rb +14 -0
- data/lib/shoes/mock/text_block.rb +36 -0
- data/lib/shoes/mock/timer.rb +8 -0
- data/lib/shoes/not_implemented_error.rb +4 -0
- data/lib/shoes/oval.rb +20 -0
- data/lib/shoes/packager.rb +26 -0
- data/lib/shoes/point.rb +54 -0
- data/lib/shoes/progress.rb +25 -0
- data/lib/shoes/radio.rb +15 -0
- data/lib/shoes/rect.rb +21 -0
- data/lib/shoes/renamed_delegate.rb +15 -0
- data/lib/shoes/shape.rb +159 -0
- data/lib/shoes/slot.rb +276 -0
- data/lib/shoes/slot_contents.rb +51 -0
- data/lib/shoes/sound.rb +18 -0
- data/lib/shoes/span.rb +16 -0
- data/lib/shoes/star.rb +50 -0
- data/lib/shoes/text.rb +24 -0
- data/lib/shoes/text_block.rb +142 -0
- data/lib/shoes/text_block_dimensions.rb +51 -0
- data/lib/shoes/timer.rb +14 -0
- data/lib/shoes/ui/cli.rb +67 -0
- data/lib/shoes/ui/picker.rb +47 -0
- data/lib/shoes/url.rb +44 -0
- data/lib/shoes/version.rb +3 -0
- data/lib/shoes/widget.rb +67 -0
- data/shoes-core.gemspec +22 -0
- data/spec/shoes/animation_spec.rb +71 -0
- data/spec/shoes/app_spec.rb +484 -0
- data/spec/shoes/arc_spec.rb +51 -0
- data/spec/shoes/background_spec.rb +47 -0
- data/spec/shoes/border_spec.rb +46 -0
- data/spec/shoes/builtin_methods_spec.rb +110 -0
- data/spec/shoes/button_spec.rb +44 -0
- data/spec/shoes/check_spec.rb +35 -0
- data/spec/shoes/color_spec.rb +408 -0
- data/spec/shoes/common/inspect_spec.rb +26 -0
- data/spec/shoes/common/remove_spec.rb +38 -0
- data/spec/shoes/common/style_normalizer_spec.rb +28 -0
- data/spec/shoes/common/style_spec.rb +147 -0
- data/spec/shoes/configuration_spec.rb +36 -0
- data/spec/shoes/constants_spec.rb +38 -0
- data/spec/shoes/dialog_spec.rb +171 -0
- data/spec/shoes/dimension_spec.rb +433 -0
- data/spec/shoes/dimensions_spec.rb +837 -0
- data/spec/shoes/download_spec.rb +146 -0
- data/spec/shoes/flow_spec.rb +133 -0
- data/spec/shoes/font_spec.rb +37 -0
- data/spec/shoes/framework_learning_spec.rb +30 -0
- data/spec/shoes/gradient_spec.rb +32 -0
- data/spec/shoes/helpers/fake_element.rb +17 -0
- data/spec/shoes/helpers/inspect_helpers.rb +5 -0
- data/spec/shoes/helpers/sample17_helper.rb +66 -0
- data/spec/shoes/image_spec.rb +68 -0
- data/spec/shoes/images/shoe.jpg +0 -0
- data/spec/shoes/input_box_spec.rb +80 -0
- data/spec/shoes/integration_spec.rb +20 -0
- data/spec/shoes/internal_app_spec.rb +141 -0
- data/spec/shoes/keypress_spec.rb +11 -0
- data/spec/shoes/keyrelease_spec.rb +12 -0
- data/spec/shoes/line_spec.rb +87 -0
- data/spec/shoes/link_spec.rb +118 -0
- data/spec/shoes/list_box_spec.rb +74 -0
- data/spec/shoes/logger/ruby_spec.rb +8 -0
- data/spec/shoes/logger_spec.rb +45 -0
- data/spec/shoes/oval_spec.rb +24 -0
- data/spec/shoes/packager_spec.rb +25 -0
- data/spec/shoes/point_spec.rb +71 -0
- data/spec/shoes/progress_spec.rb +54 -0
- data/spec/shoes/radio_spec.rb +32 -0
- data/spec/shoes/rect_spec.rb +39 -0
- data/spec/shoes/renamed_delegate_spec.rb +70 -0
- data/spec/shoes/shape_spec.rb +106 -0
- data/spec/shoes/shared_examples/button.rb +6 -0
- data/spec/shoes/shared_examples/changeable.rb +26 -0
- data/spec/shoes/shared_examples/clickable.rb +5 -0
- data/spec/shoes/shared_examples/common_methods.rb +35 -0
- data/spec/shoes/shared_examples/dimensions.rb +32 -0
- data/spec/shoes/shared_examples/dsl.rb +44 -0
- data/spec/shoes/shared_examples/dsl/animate.rb +29 -0
- data/spec/shoes/shared_examples/dsl/arc.rb +45 -0
- data/spec/shoes/shared_examples/dsl/background.rb +26 -0
- data/spec/shoes/shared_examples/dsl/border.rb +10 -0
- data/spec/shoes/shared_examples/dsl/button.rb +5 -0
- data/spec/shoes/shared_examples/dsl/cap.rb +6 -0
- data/spec/shoes/shared_examples/dsl/check.rb +11 -0
- data/spec/shoes/shared_examples/dsl/edit_box.rb +8 -0
- data/spec/shoes/shared_examples/dsl/edit_line.rb +8 -0
- data/spec/shoes/shared_examples/dsl/editable_element.rb +29 -0
- data/spec/shoes/shared_examples/dsl/fill.rb +27 -0
- data/spec/shoes/shared_examples/dsl/flow.rb +15 -0
- data/spec/shoes/shared_examples/dsl/gradient.rb +62 -0
- data/spec/shoes/shared_examples/dsl/image.rb +21 -0
- data/spec/shoes/shared_examples/dsl/line.rb +9 -0
- data/spec/shoes/shared_examples/dsl/nofill.rb +6 -0
- data/spec/shoes/shared_examples/dsl/nostroke.rb +6 -0
- data/spec/shoes/shared_examples/dsl/oval.rb +88 -0
- data/spec/shoes/shared_examples/dsl/pattern.rb +34 -0
- data/spec/shoes/shared_examples/dsl/progress.rb +7 -0
- data/spec/shoes/shared_examples/dsl/rect.rb +92 -0
- data/spec/shoes/shared_examples/dsl/rgb.rb +26 -0
- data/spec/shoes/shared_examples/dsl/shape.rb +57 -0
- data/spec/shoes/shared_examples/dsl/star.rb +111 -0
- data/spec/shoes/shared_examples/dsl/stroke.rb +30 -0
- data/spec/shoes/shared_examples/dsl/strokewidth.rb +19 -0
- data/spec/shoes/shared_examples/dsl/style.rb +32 -0
- data/spec/shoes/shared_examples/dsl/text_elements.rb +81 -0
- data/spec/shoes/shared_examples/dsl/video.rb +5 -0
- data/spec/shoes/shared_examples/dsl_app_context.rb +8 -0
- data/spec/shoes/shared_examples/hover_leave.rb +11 -0
- data/spec/shoes/shared_examples/parent.rb +6 -0
- data/spec/shoes/shared_examples/scroll.rb +41 -0
- data/spec/shoes/shared_examples/shared_element_method.rb +60 -0
- data/spec/shoes/shared_examples/slot.rb +394 -0
- data/spec/shoes/shared_examples/state.rb +19 -0
- data/spec/shoes/shared_examples/style.rb +82 -0
- data/spec/shoes/slot_spec.rb +186 -0
- data/spec/shoes/sound_spec.rb +15 -0
- data/spec/shoes/span_spec.rb +112 -0
- data/spec/shoes/spec_helper.rb +24 -0
- data/spec/shoes/stack_spec.rb +79 -0
- data/spec/shoes/star_spec.rb +48 -0
- data/spec/shoes/text_block_dimensions_spec.rb +75 -0
- data/spec/shoes/text_block_spec.rb +270 -0
- data/spec/shoes/url_spec.rb +68 -0
- data/spec/shoes/widget_spec.rb +70 -0
- data/spec/shoes_spec.rb +44 -0
- data/spec/spec_helper.rb +19 -0
- data/static/downloading.png +0 -0
- data/static/shoes-icon-blue.png +0 -0
- data/static/shoes-icon-brown.png +0 -0
- data/static/shoes-icon.png +0 -0
- metadata +366 -0
data/lib/shoes/line.rb
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
class Shoes
|
|
2
|
+
class Line
|
|
3
|
+
include Common::UIElement
|
|
4
|
+
include Common::Style
|
|
5
|
+
include Common::Clickable
|
|
6
|
+
|
|
7
|
+
attr_reader :app, :parent, :dimensions, :gui, :point_a, :point_b
|
|
8
|
+
|
|
9
|
+
style_with :angle, :art_styles, :dimensions, :x2, :y2
|
|
10
|
+
STYLES = { angle: 0 }
|
|
11
|
+
|
|
12
|
+
def initialize(app, parent, point_a, point_b, styles = {}, blk = nil)
|
|
13
|
+
@app = app
|
|
14
|
+
@parent = parent
|
|
15
|
+
@point_a = point_a
|
|
16
|
+
@point_b = point_b
|
|
17
|
+
|
|
18
|
+
style_init styles, x2: point_b.x, y2: point_b.y
|
|
19
|
+
enclosing_box_of_line
|
|
20
|
+
|
|
21
|
+
@parent.add_child self
|
|
22
|
+
@gui = Shoes.backend_for self
|
|
23
|
+
register_click blk
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def update_style(new_styles)
|
|
27
|
+
super
|
|
28
|
+
enclosing_box_of_line
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def left=(val)
|
|
32
|
+
set_point_a(:x, val)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def right=(val)
|
|
36
|
+
set_point_b(:x, val)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def top=(val)
|
|
40
|
+
set_point_a(:y, val)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def bottom=(val)
|
|
44
|
+
set_point_b(:y, val)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
alias_method :x2=, :right=
|
|
48
|
+
alias_method :y2=, :bottom=
|
|
49
|
+
|
|
50
|
+
def move(x, y, x2=nil, y2=nil)
|
|
51
|
+
@point_a.x = x
|
|
52
|
+
@point_a.y = y
|
|
53
|
+
@point_b.x = x2 if x2
|
|
54
|
+
@point_b.y = y2 if y2
|
|
55
|
+
enclosing_box_of_line
|
|
56
|
+
self
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
private
|
|
60
|
+
|
|
61
|
+
def set_point_a(which, val)
|
|
62
|
+
@point_a.x = val if which == :x
|
|
63
|
+
@point_a.y = val if which == :y
|
|
64
|
+
enclosing_box_of_line
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def set_point_b(which, val)
|
|
68
|
+
@point_b.x = val if which == :x
|
|
69
|
+
@point_b.y = val if which == :y
|
|
70
|
+
style(x2: val) if which == :x
|
|
71
|
+
style(y2: val) if which == :y
|
|
72
|
+
enclosing_box_of_line
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
def enclosing_box_of_line
|
|
76
|
+
@dimensions = AbsoluteDimensions.new left: @point_a.x,
|
|
77
|
+
top: @point_a.y,
|
|
78
|
+
right: @point_b.x,
|
|
79
|
+
bottom: @point_b.y,
|
|
80
|
+
width: @point_b.x - @point_a.x,
|
|
81
|
+
height: @point_b.y - @point_a.y
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
data/lib/shoes/link.rb
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
class Shoes
|
|
2
|
+
class Link < Span
|
|
3
|
+
include Common::Style
|
|
4
|
+
|
|
5
|
+
attr_reader :app, :gui, :blk
|
|
6
|
+
style_with :common_styles, :text_block_styles
|
|
7
|
+
STYLES = { underline: true, stroke: ::Shoes::COLORS[:blue], fill: nil }
|
|
8
|
+
|
|
9
|
+
def initialize(my_app, texts, styles = {}, blk = nil)
|
|
10
|
+
@app = my_app
|
|
11
|
+
style_init styles
|
|
12
|
+
@gui = Shoes.backend_for self
|
|
13
|
+
|
|
14
|
+
setup_click blk
|
|
15
|
+
super texts, @style
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# Doesn't use Common::Clickable because of URL flavor option clicks
|
|
19
|
+
def setup_click(blk)
|
|
20
|
+
if blk.nil?
|
|
21
|
+
if @style[:click].respond_to? :call
|
|
22
|
+
blk = @style[:click]
|
|
23
|
+
else
|
|
24
|
+
# Slightly awkward, but we need App, not InternalApp, to call visit
|
|
25
|
+
blk = proc { app.app.visit @style[:click] }
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
click(&blk)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def click(&blk)
|
|
33
|
+
@gui.click blk if blk
|
|
34
|
+
@blk = blk
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def pass_coordinates?
|
|
38
|
+
false
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def in_bounds?(x, y)
|
|
42
|
+
@gui.in_bounds?(x, y)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def remove
|
|
46
|
+
@gui.remove
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def hidden?
|
|
50
|
+
@text_block.hidden?
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def visible?
|
|
54
|
+
@text_block.visible?
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
class Shoes
|
|
2
|
+
class ListBox
|
|
3
|
+
include Common::UIElement
|
|
4
|
+
include Common::Style
|
|
5
|
+
include Common::Changeable
|
|
6
|
+
|
|
7
|
+
attr_reader :app, :parent, :dimensions, :gui
|
|
8
|
+
style_with :change, :choose, :common_styles, :dimensions, :items, :state, :text
|
|
9
|
+
STYLES = { width: 200, height: 20, items: [""] }
|
|
10
|
+
|
|
11
|
+
def initialize(app, parent, styles = {}, blk = nil)
|
|
12
|
+
@app = app
|
|
13
|
+
@parent = parent
|
|
14
|
+
style_init styles
|
|
15
|
+
@dimensions = Dimensions.new parent, @style
|
|
16
|
+
@parent.add_child self
|
|
17
|
+
@gui = Shoes.configuration.backend_for self, @parent.gui
|
|
18
|
+
change(&blk) if blk
|
|
19
|
+
|
|
20
|
+
choose @style[:choose]
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def items=(values)
|
|
24
|
+
style(items: values)
|
|
25
|
+
@gui.update_items
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def text
|
|
29
|
+
@gui.text
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def choose(item_or_hash = nil)
|
|
33
|
+
case item_or_hash
|
|
34
|
+
when String
|
|
35
|
+
style(choose: item_or_hash)
|
|
36
|
+
@gui.choose item_or_hash
|
|
37
|
+
when Hash
|
|
38
|
+
style(choose: item_or_hash[:item])
|
|
39
|
+
@gui.choose item_or_hash[:item]
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
alias_method :choose=, :choose
|
|
44
|
+
|
|
45
|
+
def state=(value)
|
|
46
|
+
style(state: value)
|
|
47
|
+
@gui.enabled value.nil?
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
data/lib/shoes/logger.rb
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
class Shoes
|
|
2
|
+
module Logger
|
|
3
|
+
class << self
|
|
4
|
+
def register(name, obj)
|
|
5
|
+
@loggers ||= {}
|
|
6
|
+
@loggers[name] = obj
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def unregister(name)
|
|
10
|
+
@loggers.delete(name)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def get(name)
|
|
14
|
+
@loggers && @loggers[name]
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def self.setup
|
|
19
|
+
Shoes.app do
|
|
20
|
+
def update
|
|
21
|
+
if @hash != Shoes::LOG.hash
|
|
22
|
+
@hash = Shoes::LOG.hash
|
|
23
|
+
@log.clear do
|
|
24
|
+
Shoes::LOG.each_with_index do |(typ, msg), index|
|
|
25
|
+
stack do
|
|
26
|
+
background "#f1f5e1" if index % 2 == 0
|
|
27
|
+
background rgb(220, 220, 220) if index % 2 != 0
|
|
28
|
+
para typ, stroke: blue
|
|
29
|
+
flow do
|
|
30
|
+
stack margin: 4 do
|
|
31
|
+
s = msg.to_s
|
|
32
|
+
para s, margin: 4, margin_top: 0
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
stack do
|
|
42
|
+
flow do
|
|
43
|
+
background black
|
|
44
|
+
stack do
|
|
45
|
+
tagline "Shoes Console", stroke: white
|
|
46
|
+
end
|
|
47
|
+
button "Clear", margin: 6, width: 80, height: 40, right: 10 do
|
|
48
|
+
Shoes::LOG.clear
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
@log, @hash = stack, nil
|
|
52
|
+
update
|
|
53
|
+
|
|
54
|
+
every(0.2) do
|
|
55
|
+
update
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
Dir[File.join(File.dirname(__FILE__), "logger", "*.rb")].each do |logger|
|
|
64
|
+
require logger
|
|
65
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
class Shoes
|
|
2
|
+
module Logger
|
|
3
|
+
class Ruby < SimpleDelegator
|
|
4
|
+
def initialize(device = STDERR)
|
|
5
|
+
require 'logger'
|
|
6
|
+
logger = ::Logger.new(device)
|
|
7
|
+
logger.formatter = proc do |severity, _datetime, _progname, message|
|
|
8
|
+
"%s: %s\n" % [severity, message]
|
|
9
|
+
end
|
|
10
|
+
super(logger)
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
Shoes::Logger.register(:ruby, Shoes::Logger::Ruby)
|
data/lib/shoes/mock.rb
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
require 'shoes/mock/common_methods'
|
|
2
|
+
require 'shoes/mock/clickable'
|
|
3
|
+
|
|
4
|
+
require 'shoes/mock/packager'
|
|
5
|
+
|
|
6
|
+
require 'shoes/mock/animation'
|
|
7
|
+
require 'shoes/mock/app'
|
|
8
|
+
require 'shoes/mock/arc'
|
|
9
|
+
require 'shoes/mock/background'
|
|
10
|
+
require 'shoes/mock/border'
|
|
11
|
+
require 'shoes/mock/button'
|
|
12
|
+
require 'shoes/mock/check'
|
|
13
|
+
require 'shoes/mock/download'
|
|
14
|
+
require 'shoes/mock/font'
|
|
15
|
+
require 'shoes/mock/image'
|
|
16
|
+
require 'shoes/mock/image_pattern'
|
|
17
|
+
require 'shoes/mock/input_box'
|
|
18
|
+
require 'shoes/mock/keypress'
|
|
19
|
+
require 'shoes/mock/keyrelease'
|
|
20
|
+
require 'shoes/mock/line'
|
|
21
|
+
require 'shoes/mock/link'
|
|
22
|
+
require 'shoes/mock/list_box'
|
|
23
|
+
require 'shoes/mock/oval'
|
|
24
|
+
require 'shoes/mock/progress'
|
|
25
|
+
require 'shoes/mock/radio'
|
|
26
|
+
require 'shoes/mock/rect'
|
|
27
|
+
require 'shoes/mock/star'
|
|
28
|
+
require 'shoes/mock/shape'
|
|
29
|
+
require 'shoes/mock/slot'
|
|
30
|
+
require 'shoes/mock/sound'
|
|
31
|
+
require 'shoes/mock/text_block'
|
|
32
|
+
require 'shoes/mock/dialog'
|
|
33
|
+
require 'shoes/mock/timer'
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
class Shoes
|
|
2
|
+
module Mock
|
|
3
|
+
class App
|
|
4
|
+
attr_accessor :fullscreen
|
|
5
|
+
def initialize(dsl)
|
|
6
|
+
@dsl = dsl
|
|
7
|
+
@started = false
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
# suboptimal but good enough for now... calling the DSL lets the methods
|
|
11
|
+
# play ping pong calling each other... will think of something.
|
|
12
|
+
def width
|
|
13
|
+
@dsl.opts[:width]
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def height
|
|
17
|
+
@dsl.opts[:height]
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def open
|
|
21
|
+
@started = true
|
|
22
|
+
self.fullscreen = true if @dsl.start_as_fullscreen?
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def quit
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def started?
|
|
29
|
+
@started
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def flush
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def clipboard
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def clipboard=(_text)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def gutter
|
|
42
|
+
16
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def wait_until_closed
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
class Shoes
|
|
2
|
+
module Mock
|
|
3
|
+
class Button
|
|
4
|
+
include Shoes::Mock::CommonMethods
|
|
5
|
+
include Shoes::Mock::Clickable
|
|
6
|
+
|
|
7
|
+
def initialize(dsl, _parent)
|
|
8
|
+
# For whatever reason the SWT button sets sizes back during initialize
|
|
9
|
+
# and at least one test (for the ask dialog which runs a full Shoes.app)
|
|
10
|
+
# relies on that sizing being set for positioning logic to run.
|
|
11
|
+
#
|
|
12
|
+
# Best I can tell, it doesn't matter *what* the values are, as long as
|
|
13
|
+
# they're there.
|
|
14
|
+
dsl.width = 0 unless dsl.width
|
|
15
|
+
dsl.height = 0 unless dsl.height
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def enabled(_value)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
class Shoes
|
|
2
|
+
module Mock
|
|
3
|
+
class Check
|
|
4
|
+
include Shoes::Mock::CommonMethods
|
|
5
|
+
include Shoes::Mock::Clickable
|
|
6
|
+
|
|
7
|
+
def initialize(*_opts)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def checked?
|
|
11
|
+
false
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def checked=(*_opts)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def focus
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def enabled(_value)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|