shoes-dsl 4.0.0.pre2
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/CHANGELOG +84 -0
- data/Gemfile +24 -0
- data/Guardfile +11 -0
- data/LICENSE +31 -0
- data/README.md +201 -0
- data/ext/install/Rakefile +29 -0
- data/ext/install/shoes.bat +9 -0
- data/fonts/Coolvetica.ttf +0 -0
- data/fonts/Lacuna.ttf +0 -0
- data/lib/shoes/animation.rb +56 -0
- data/lib/shoes/app.rb +131 -0
- data/lib/shoes/arc.rb +25 -0
- data/lib/shoes/background.rb +24 -0
- data/lib/shoes/border.rb +24 -0
- data/lib/shoes/builtin_methods.rb +77 -0
- data/lib/shoes/button.rb +30 -0
- data/lib/shoes/check_button.rb +44 -0
- data/lib/shoes/color.rb +385 -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 +33 -0
- data/lib/shoes/common/remove.rb +10 -0
- data/lib/shoes/common/state.rb +18 -0
- data/lib/shoes/common/style.rb +152 -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 +40 -0
- data/lib/shoes/configuration.rb +96 -0
- data/lib/shoes/dialog.rb +27 -0
- data/lib/shoes/dimension.rb +239 -0
- data/lib/shoes/dimensions.rb +209 -0
- data/lib/shoes/download.rb +121 -0
- data/lib/shoes/dsl.rb +591 -0
- data/lib/shoes/font.rb +49 -0
- data/lib/shoes/gradient.rb +31 -0
- data/lib/shoes/image.rb +29 -0
- data/lib/shoes/image_pattern.rb +12 -0
- data/lib/shoes/input_box.rb +60 -0
- data/lib/shoes/internal_app.rb +219 -0
- data/lib/shoes/key_event.rb +17 -0
- data/lib/shoes/line.rb +87 -0
- data/lib/shoes/link.rb +59 -0
- data/lib/shoes/link_hover.rb +5 -0
- data/lib/shoes/list_box.rb +50 -0
- data/lib/shoes/logger.rb +66 -0
- data/lib/shoes/logger/ruby.rb +18 -0
- data/lib/shoes/mock.rb +31 -0
- data/lib/shoes/mock/animation.rb +8 -0
- data/lib/shoes/mock/app.rb +47 -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 +10 -0
- data/lib/shoes/mock/check.rb +25 -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 +18 -0
- data/lib/shoes/mock/font.rb +17 -0
- data/lib/shoes/mock/image.rb +13 -0
- data/lib/shoes/mock/image_pattern.rb +9 -0
- data/lib/shoes/mock/input_box.rb +30 -0
- data/lib/shoes/mock/keypress.rb +10 -0
- data/lib/shoes/mock/keyrelease.rb +10 -0
- data/lib/shoes/mock/line.rb +14 -0
- data/lib/shoes/mock/link.rb +12 -0
- data/lib/shoes/mock/list_box.rb +19 -0
- data/lib/shoes/mock/oval.rb +12 -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/point.rb +54 -0
- data/lib/shoes/progress.rb +25 -0
- data/lib/shoes/radio.rb +16 -0
- data/lib/shoes/rect.rb +21 -0
- data/lib/shoes/renamed_delegate.rb +15 -0
- data/lib/shoes/shape.rb +158 -0
- data/lib/shoes/slot.rb +271 -0
- data/lib/shoes/slot_contents.rb +50 -0
- data/lib/shoes/sound.rb +18 -0
- data/lib/shoes/span.rb +16 -0
- data/lib/shoes/star.rb +45 -0
- data/lib/shoes/text.rb +24 -0
- data/lib/shoes/text_block.rb +143 -0
- data/lib/shoes/text_block_dimensions.rb +52 -0
- data/lib/shoes/timer.rb +12 -0
- data/lib/shoes/url.rb +44 -0
- data/lib/shoes/version.rb +3 -0
- data/lib/shoes/widget.rb +69 -0
- data/manifests/common.rb +34 -0
- data/manifests/shoes-dsl.rb +34 -0
- data/shoes-dsl.gemspec +19 -0
- data/spec/code_coverage.rb +14 -0
- data/spec/shoes/animation_spec.rb +65 -0
- data/spec/shoes/app_spec.rb +484 -0
- data/spec/shoes/arc_spec.rb +51 -0
- data/spec/shoes/background_spec.rb +53 -0
- data/spec/shoes/border_spec.rb +47 -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/cli_spec.rb +15 -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 +163 -0
- data/spec/shoes/dimension_spec.rb +407 -0
- data/spec/shoes/dimensions_spec.rb +837 -0
- data/spec/shoes/download_spec.rb +142 -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 +49 -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 +49 -0
- data/spec/shoes/link_spec.rb +105 -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/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 +95 -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 +21 -0
- data/spec/shoes/shared_examples/dsl/star.rb +48 -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 +331 -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 +130 -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 +31 -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 +18 -0
- data/static/Shoes.icns +0 -0
- data/static/shoes-icon.png +0 -0
- metadata +354 -0
@@ -0,0 +1,30 @@
|
|
1
|
+
class Shoes
|
2
|
+
module Mock
|
3
|
+
class InputBox
|
4
|
+
include Shoes::Mock::CommonMethods
|
5
|
+
attr_accessor :left, :top
|
6
|
+
|
7
|
+
def enabled(value)
|
8
|
+
end
|
9
|
+
|
10
|
+
def highlight_text(start_index, finish_index)
|
11
|
+
end
|
12
|
+
|
13
|
+
def caret_to(index)
|
14
|
+
end
|
15
|
+
|
16
|
+
def text
|
17
|
+
@dsl.style[:text]
|
18
|
+
end
|
19
|
+
|
20
|
+
def text=(value)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
class EditBox < InputBox
|
25
|
+
end
|
26
|
+
|
27
|
+
class EditLine < InputBox
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
class Shoes
|
2
|
+
module Mock
|
3
|
+
class Radio
|
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
|
+
|
23
|
+
def group=(value)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class Shoes
|
2
|
+
module Mock
|
3
|
+
class Shape
|
4
|
+
include Shoes::Mock::CommonMethods
|
5
|
+
include Shoes::Mock::Clickable
|
6
|
+
|
7
|
+
def line_to(x, y)
|
8
|
+
end
|
9
|
+
|
10
|
+
def move_to(x, y)
|
11
|
+
end
|
12
|
+
|
13
|
+
def curve_to(*args)
|
14
|
+
end
|
15
|
+
|
16
|
+
def arc(*args)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
class Shoes
|
2
|
+
module Mock
|
3
|
+
class TextBlock
|
4
|
+
include Shoes::Mock::CommonMethods
|
5
|
+
include Shoes::Mock::Clickable
|
6
|
+
|
7
|
+
def initialize(dsl, opts = nil)
|
8
|
+
@dsl = dsl
|
9
|
+
@opts = opts
|
10
|
+
end
|
11
|
+
|
12
|
+
def redraw(*opts); end
|
13
|
+
|
14
|
+
def replace(*opts)
|
15
|
+
end
|
16
|
+
|
17
|
+
def remove;end
|
18
|
+
|
19
|
+
# A very imperfect implementation, but at least it takes up about a line.
|
20
|
+
# Needed to spec scrolling behavior
|
21
|
+
def contents_alignment(current_position)
|
22
|
+
@dsl.absolute_top = current_position.y + (@dsl.size || 12)
|
23
|
+
end
|
24
|
+
|
25
|
+
def adjust_current_position(*args);end
|
26
|
+
end
|
27
|
+
|
28
|
+
class Banner < TextBlock; end
|
29
|
+
class Title < TextBlock; end
|
30
|
+
class Subtitle < TextBlock; end
|
31
|
+
class Tagline < TextBlock; end
|
32
|
+
class Caption < TextBlock; end
|
33
|
+
class Para < TextBlock; end
|
34
|
+
class Inscription < TextBlock; end
|
35
|
+
end
|
36
|
+
end
|
data/lib/shoes/oval.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
class Shoes
|
2
|
+
class Oval
|
3
|
+
include Common::UIElement
|
4
|
+
include Common::Style
|
5
|
+
include Common::Clickable
|
6
|
+
|
7
|
+
attr_reader :app, :parent, :dimensions, :gui
|
8
|
+
style_with :art_styles, :center, :common_styles, :dimensions, :radius
|
9
|
+
|
10
|
+
def initialize(app, parent, left, top, width, height, styles = {}, blk = nil)
|
11
|
+
@app = app
|
12
|
+
@parent = parent
|
13
|
+
style_init styles
|
14
|
+
@dimensions = AbsoluteDimensions.new left, top, width, height, @style
|
15
|
+
@parent.add_child self
|
16
|
+
@gui = Shoes.backend_for self
|
17
|
+
register_click blk
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/shoes/point.rb
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
class Shoes
|
2
|
+
class Point
|
3
|
+
include Common::Inspect
|
4
|
+
|
5
|
+
def initialize(x, y)
|
6
|
+
@x, @y = x, y
|
7
|
+
end
|
8
|
+
|
9
|
+
attr_accessor :x, :y
|
10
|
+
|
11
|
+
# @param [Shoes::Point] other the other point
|
12
|
+
# @return [Integer] if this is further left, this.x; otherwise other.x
|
13
|
+
def left(other = self)
|
14
|
+
[self.x, other.x].min
|
15
|
+
end
|
16
|
+
|
17
|
+
# @param [Shoes::Point] other the other point
|
18
|
+
# @return [Integer] if this is higher, this.y; otherwise other.y
|
19
|
+
def top(other = self)
|
20
|
+
[self.y, other.y].min
|
21
|
+
end
|
22
|
+
|
23
|
+
# Creates a new point at an offset of (x,y) from this point. Positive
|
24
|
+
# offsets move right and down; negative offsets move left and up.
|
25
|
+
#
|
26
|
+
# @param [Integer] x the x-component of the offset
|
27
|
+
# @param [Integer] y the y-component of the offset
|
28
|
+
# @return [Shoes::Point] a new point at offset (x,y) from this point
|
29
|
+
def to(x, y)
|
30
|
+
Shoes::Point.new(@x + x, @y + y)
|
31
|
+
end
|
32
|
+
|
33
|
+
def width(other = self)
|
34
|
+
(@x - other.x).abs
|
35
|
+
end
|
36
|
+
|
37
|
+
def height(other = self)
|
38
|
+
(@y - other.y).abs
|
39
|
+
end
|
40
|
+
|
41
|
+
def ==(other)
|
42
|
+
return other.respond_to?(:x) && @x == other.x && other.respond_to?(:y) && @y == other.y
|
43
|
+
end
|
44
|
+
|
45
|
+
def to_s
|
46
|
+
nothing = '_'
|
47
|
+
"(#{@x || nothing},#{@y || nothing})"
|
48
|
+
end
|
49
|
+
|
50
|
+
def inspect
|
51
|
+
super.insert(-2, " #{to_s}")
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
class Shoes
|
2
|
+
class Progress
|
3
|
+
include Common::UIElement
|
4
|
+
include Common::Style
|
5
|
+
|
6
|
+
attr_reader :app, :parent, :dimensions, :gui
|
7
|
+
style_with :common_styles, :dimensions, :fraction
|
8
|
+
STYLES = {fraction: 0.0}
|
9
|
+
|
10
|
+
def initialize(app, parent, styles = {}, blk = nil)
|
11
|
+
@app = app
|
12
|
+
@parent = parent
|
13
|
+
style_init styles
|
14
|
+
@dimensions = Dimensions.new parent, @style
|
15
|
+
@parent.add_child self
|
16
|
+
@gui = Shoes.configuration.backend_for self, @parent.gui
|
17
|
+
@gui.fraction = @style[:fraction]
|
18
|
+
end
|
19
|
+
|
20
|
+
def fraction=(value)
|
21
|
+
style(fraction: value)
|
22
|
+
@gui.fraction = value
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/lib/shoes/radio.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
class Shoes
|
2
|
+
class Radio < CheckButton
|
3
|
+
|
4
|
+
style_with :checked, :click, :common_styles, :dimensions, :group, :state
|
5
|
+
|
6
|
+
def initialize(app, parent, group, styles = {}, blk = nil)
|
7
|
+
styles[:group] = group
|
8
|
+
super(app, parent, styles, blk)
|
9
|
+
end
|
10
|
+
|
11
|
+
def group=(value)
|
12
|
+
style(group: value)
|
13
|
+
gui.group = value
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/lib/shoes/rect.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
class Shoes
|
2
|
+
class Rect
|
3
|
+
include Common::UIElement
|
4
|
+
include Common::Style
|
5
|
+
include Common::Clickable
|
6
|
+
|
7
|
+
attr_reader :app, :parent, :dimensions, :gui
|
8
|
+
style_with :angle, :art_styles, :curve, :common_styles, :dimensions
|
9
|
+
STYLES = {angle: 0}
|
10
|
+
|
11
|
+
def initialize(app, parent, left, top, width, height, styles = {}, blk = nil)
|
12
|
+
@app = app
|
13
|
+
@parent = parent
|
14
|
+
style_init styles
|
15
|
+
@dimensions = AbsoluteDimensions.new left, top, width, height, @style
|
16
|
+
@parent.add_child self
|
17
|
+
@gui = Shoes.backend_for self
|
18
|
+
register_click blk
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|