shoes-core 4.0.0.pre12 → 4.0.0.rc1
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 +4 -4
- data/bin/shoes-picker +1 -0
- data/fonts/FiraMono.otf +0 -0
- data/lib/shoes.rb +1 -0
- data/lib/shoes/animation.rb +1 -0
- data/lib/shoes/app.rb +4 -3
- data/lib/shoes/arc.rb +3 -0
- data/lib/shoes/arrow.rb +34 -2
- data/lib/shoes/background.rb +1 -0
- data/lib/shoes/border.rb +1 -0
- data/lib/shoes/builtin_methods.rb +2 -1
- data/lib/shoes/button.rb +1 -0
- data/lib/shoes/check_button.rb +1 -0
- data/lib/shoes/color.rb +7 -6
- data/lib/shoes/color/dsl.rb +1 -0
- data/lib/shoes/color/dsl_helpers.rb +1 -0
- data/lib/shoes/color/hex_converter.rb +1 -0
- data/lib/shoes/common/art_element.rb +5 -0
- data/lib/shoes/common/attachable.rb +1 -0
- data/lib/shoes/common/background_element.rb +5 -0
- data/lib/shoes/common/changeable.rb +1 -0
- data/lib/shoes/common/clickable.rb +1 -0
- data/lib/shoes/common/fill.rb +1 -0
- data/lib/shoes/common/focus.rb +9 -0
- data/lib/shoes/common/hover.rb +8 -7
- data/lib/shoes/common/image_handling.rb +1 -0
- data/lib/shoes/common/inspect.rb +1 -0
- data/lib/shoes/common/link_finder.rb +1 -0
- data/lib/shoes/common/positioning.rb +1 -0
- data/lib/shoes/common/registration.rb +1 -0
- data/lib/shoes/common/remove.rb +2 -2
- data/lib/shoes/common/rotate.rb +1 -0
- data/lib/shoes/common/safely_evaluate.rb +1 -0
- data/lib/shoes/common/state.rb +1 -0
- data/lib/shoes/common/stroke.rb +1 -0
- data/lib/shoes/common/style.rb +3 -1
- data/lib/shoes/common/style_normalizer.rb +1 -0
- data/lib/shoes/common/translate.rb +1 -0
- data/lib/shoes/common/ui_element.rb +24 -0
- data/lib/shoes/common/visibility.rb +21 -1
- data/lib/shoes/configuration.rb +1 -0
- data/lib/shoes/console.rb +2 -1
- data/lib/shoes/core.rb +1 -0
- data/lib/shoes/core/version.rb +1 -1
- data/lib/shoes/dialog.rb +2 -1
- data/lib/shoes/dimension.rb +17 -7
- data/lib/shoes/dimensions.rb +12 -1
- data/lib/shoes/download.rb +1 -0
- data/lib/shoes/dsl.rb +2 -1
- data/lib/shoes/dsl/animate.rb +1 -0
- data/lib/shoes/dsl/art.rb +51 -50
- data/lib/shoes/dsl/element.rb +1 -0
- data/lib/shoes/dsl/interaction.rb +1 -0
- data/lib/shoes/dsl/media.rb +4 -3
- data/lib/shoes/dsl/setup.rb +1 -0
- data/lib/shoes/dsl/style.rb +1 -0
- data/lib/shoes/dsl/text.rb +3 -2
- data/lib/shoes/file_not_found_error.rb +1 -0
- data/lib/shoes/font.rb +1 -0
- data/lib/shoes/gradient.rb +1 -0
- data/lib/shoes/image.rb +1 -0
- data/lib/shoes/image_pattern.rb +1 -0
- data/lib/shoes/input_box.rb +1 -0
- data/lib/shoes/internal_app.rb +7 -4
- data/lib/shoes/key_event.rb +1 -0
- data/lib/shoes/line.rb +19 -2
- data/lib/shoes/link.rb +1 -0
- data/lib/shoes/list_box.rb +1 -0
- data/lib/shoes/mock/animation.rb +1 -0
- data/lib/shoes/mock/app.rb +1 -0
- data/lib/shoes/mock/arc.rb +1 -0
- data/lib/shoes/mock/arrow.rb +1 -0
- data/lib/shoes/mock/background.rb +1 -0
- data/lib/shoes/mock/border.rb +1 -0
- data/lib/shoes/mock/button.rb +1 -0
- data/lib/shoes/mock/check.rb +1 -0
- data/lib/shoes/mock/clickable.rb +1 -0
- data/lib/shoes/mock/common_methods.rb +1 -0
- data/lib/shoes/mock/dialog.rb +1 -0
- data/lib/shoes/mock/download.rb +1 -0
- data/lib/shoes/mock/font.rb +1 -0
- data/lib/shoes/mock/image.rb +1 -0
- data/lib/shoes/mock/image_pattern.rb +1 -0
- data/lib/shoes/mock/input_box.rb +1 -0
- data/lib/shoes/mock/keypress.rb +1 -0
- data/lib/shoes/mock/keyrelease.rb +1 -0
- data/lib/shoes/mock/line.rb +1 -0
- data/lib/shoes/mock/link.rb +1 -0
- data/lib/shoes/mock/list_box.rb +1 -0
- data/lib/shoes/mock/oval.rb +1 -0
- data/lib/shoes/mock/packager.rb +1 -0
- data/lib/shoes/mock/progress.rb +1 -0
- data/lib/shoes/mock/radio.rb +1 -0
- data/lib/shoes/mock/rect.rb +1 -0
- data/lib/shoes/mock/shape.rb +1 -0
- data/lib/shoes/mock/slot.rb +1 -0
- data/lib/shoes/mock/sound.rb +1 -0
- data/lib/shoes/mock/star.rb +1 -0
- data/lib/shoes/mock/text_block.rb +1 -0
- data/lib/shoes/mock/timer.rb +1 -0
- data/lib/shoes/not_implemented_error.rb +1 -0
- data/lib/shoes/oval.rb +1 -0
- data/lib/shoes/packager.rb +1 -0
- data/lib/shoes/point.rb +1 -0
- data/lib/shoes/progress.rb +1 -0
- data/lib/shoes/radio.rb +1 -0
- data/lib/shoes/rect.rb +3 -2
- data/lib/shoes/renamed_delegate.rb +1 -0
- data/lib/shoes/shape.rb +31 -0
- data/lib/shoes/slot.rb +52 -14
- data/lib/shoes/slot_contents.rb +1 -0
- data/lib/shoes/sound.rb +1 -0
- data/lib/shoes/span.rb +1 -0
- data/lib/shoes/standard_logger.rb +1 -0
- data/lib/shoes/star.rb +29 -2
- data/lib/shoes/text.rb +1 -0
- data/lib/shoes/text_block.rb +11 -1
- data/lib/shoes/text_block_dimensions.rb +9 -0
- data/lib/shoes/timer.rb +1 -0
- data/lib/shoes/ui/cli.rb +1 -0
- data/lib/shoes/ui/cli/base_command.rb +1 -0
- data/lib/shoes/ui/cli/default_command.rb +1 -0
- data/lib/shoes/ui/cli/help_command.rb +4 -3
- data/lib/shoes/ui/cli/manual_command.rb +4 -3
- data/lib/shoes/ui/cli/package_command.rb +1 -0
- data/lib/shoes/ui/cli/samples_command.rb +1 -0
- data/lib/shoes/ui/cli/select_backend_command.rb +5 -4
- data/lib/shoes/ui/cli/version_command.rb +4 -3
- data/lib/shoes/ui/picker.rb +1 -0
- data/lib/shoes/url.rb +1 -0
- data/lib/shoes/version.rb +1 -1
- data/lib/shoes/widget.rb +1 -0
- data/lib/shoes/window.rb +1 -0
- data/static/shoes-icon.png +0 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f7191316edb6e714b9463aca4217a1b01a95a4b2474a08991abe151cb2491dbd
|
4
|
+
data.tar.gz: 2fca9ebbb2065bd06fa6fe70ecc328fbccb55b95d260613c8c53e693afe62792
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 21af8b401b6533980537bd97539c601bcfe2ae5f74d3a865b483b25d116c3ca0cd4f0f1aa3af71681c811ef065b22b7da94aef2115518c5f81b3162ceede7836
|
7
|
+
data.tar.gz: 5684057007b1a95a6cfb1550bd2fa26139924246f9fb26b0612ba4f9736f706a5a50ccd0c122929520da6a7992b54cc7feef4afda223688d0648d66f19da2900
|
data/bin/shoes-picker
CHANGED
data/fonts/FiraMono.otf
ADDED
Binary file
|
data/lib/shoes.rb
CHANGED
data/lib/shoes/animation.rb
CHANGED
data/lib/shoes/app.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
class Shoes
|
3
4
|
ICON = File.join(DIR, 'static/shoes-icon.png').freeze
|
4
5
|
|
@@ -83,11 +84,11 @@ class Shoes
|
|
83
84
|
@__app__.current_slot.parent
|
84
85
|
end
|
85
86
|
|
86
|
-
delegated_to_internal_app = %w
|
87
|
+
delegated_to_internal_app = %w[
|
87
88
|
width height owner started? location left top absolute_left
|
88
89
|
absolute_top click release clear fullscreen fullscreen=
|
89
90
|
contents wait_until_closed focus open? gui
|
90
|
-
|
91
|
+
]
|
91
92
|
|
92
93
|
def_delegators :@__app__, *delegated_to_internal_app
|
93
94
|
|
@@ -101,7 +102,7 @@ class Shoes
|
|
101
102
|
end
|
102
103
|
|
103
104
|
def method_missing(name, *args, &blk)
|
104
|
-
if @__additional_context__
|
105
|
+
if defined?(@__additional_context__) && @__additional_context__
|
105
106
|
@__additional_context__.public_send(name, *args, &blk)
|
106
107
|
else
|
107
108
|
super
|
data/lib/shoes/arc.rb
CHANGED
@@ -1,6 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
class Shoes
|
3
4
|
class Arc < Common::ArtElement
|
5
|
+
# angle is the gradient angle used across all art elements
|
6
|
+
# angle1/2 are the angles of the arc itself!
|
4
7
|
style_with :angle1, :angle2, :art_styles, :center, :common_styles, :dimensions, :radius, :wedge
|
5
8
|
STYLES = { wedge: false, fill: Shoes::COLORS[:black] }.freeze
|
6
9
|
|
data/lib/shoes/arrow.rb
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
class Shoes
|
3
4
|
class Arrow < Common::ArtElement
|
4
|
-
style_with :
|
5
|
-
STYLES = {
|
5
|
+
style_with :art_styles, :curve, :common_styles, :dimensions
|
6
|
+
STYLES = { fill: Shoes::COLORS[:black] }.freeze
|
6
7
|
|
7
8
|
def create_dimensions(left, top, width)
|
8
9
|
left ||= @style[:left] || 0
|
@@ -16,5 +17,36 @@ class Shoes
|
|
16
17
|
super
|
17
18
|
gui.update_position
|
18
19
|
end
|
20
|
+
|
21
|
+
# Our locations are nonstandard, so let redrawing and gradient know
|
22
|
+
def redraw_left
|
23
|
+
return 0 unless element_left
|
24
|
+
element_left - width * 0.5 - style[:strokewidth].to_i
|
25
|
+
end
|
26
|
+
|
27
|
+
def redraw_top
|
28
|
+
return 0 unless element_top
|
29
|
+
element_top - width * 0.4 - style[:strokewidth].to_i
|
30
|
+
end
|
31
|
+
|
32
|
+
def redraw_width
|
33
|
+
width + style[:strokewidth].to_i * 2
|
34
|
+
end
|
35
|
+
|
36
|
+
def redraw_height
|
37
|
+
width + style[:strokewidth].to_i * 2
|
38
|
+
end
|
39
|
+
|
40
|
+
def gradient_left
|
41
|
+
redraw_left
|
42
|
+
end
|
43
|
+
|
44
|
+
def gradient_top
|
45
|
+
redraw_top
|
46
|
+
end
|
47
|
+
|
48
|
+
def gradient_height
|
49
|
+
redraw_height
|
50
|
+
end
|
19
51
|
end
|
20
52
|
end
|
data/lib/shoes/background.rb
CHANGED
data/lib/shoes/border.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
# The methods defined in this module/file are also available outside of the
|
3
4
|
# Shoes.app block. So they are monkey patched onto the main object.
|
4
5
|
# However they can also be used from the normal Shoes.app block.
|
@@ -18,7 +19,7 @@ class Shoes
|
|
18
19
|
Shoes::Dialog.new.confirm(message)
|
19
20
|
end
|
20
21
|
|
21
|
-
%w
|
22
|
+
%w[info debug warn error].each do |log_level|
|
22
23
|
define_method(log_level) do |message = ''|
|
23
24
|
Shoes.logger.public_send(log_level, message)
|
24
25
|
end
|
data/lib/shoes/button.rb
CHANGED
data/lib/shoes/check_button.rb
CHANGED
data/lib/shoes/color.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
class Shoes
|
3
4
|
class Color
|
4
5
|
include Common::Inspect
|
@@ -18,12 +19,12 @@ class Shoes
|
|
18
19
|
when 3, 4
|
19
20
|
red, green, blue, alpha = *args
|
20
21
|
else
|
21
|
-
message =
|
22
|
-
Wrong number of arguments (#{args.length} for 1, 3, or 4).
|
23
|
-
Must be one of:
|
24
|
-
|
25
|
-
|
26
|
-
|
22
|
+
message = <<~EOS
|
23
|
+
Wrong number of arguments (#{args.length} for 1, 3, or 4).
|
24
|
+
Must be one of:
|
25
|
+
- #{self.class}.new(hex_string)
|
26
|
+
- #{self.class}.new(red, green, blue)
|
27
|
+
- #{self.class}.new(red, green, blue, alpha)
|
27
28
|
EOS
|
28
29
|
raise ArgumentError, message
|
29
30
|
end
|
data/lib/shoes/color/dsl.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
class Shoes
|
3
4
|
module Common
|
4
5
|
class ArtElement < UIElement
|
@@ -13,6 +14,10 @@ class Shoes
|
|
13
14
|
# We need to include it at inheritance time to get that behavior.
|
14
15
|
child.include Common::Hover
|
15
16
|
end
|
17
|
+
|
18
|
+
def painted?
|
19
|
+
true
|
20
|
+
end
|
16
21
|
end
|
17
22
|
end
|
18
23
|
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
class Shoes
|
3
4
|
module Common
|
4
5
|
class BackgroundElement < Common::UIElement
|
@@ -6,6 +7,10 @@ class Shoes
|
|
6
7
|
@dimensions = ParentDimensions.new @parent, @style
|
7
8
|
end
|
8
9
|
|
10
|
+
def painted?
|
11
|
+
true
|
12
|
+
end
|
13
|
+
|
9
14
|
# We derive everything from our parent, so we skip slot positioning.
|
10
15
|
def needs_positioning?
|
11
16
|
false
|
data/lib/shoes/common/fill.rb
CHANGED
data/lib/shoes/common/focus.rb
CHANGED
@@ -1,10 +1,19 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
class Shoes
|
3
4
|
module Common
|
4
5
|
module Focus
|
5
6
|
def focus
|
6
7
|
@gui.focus
|
7
8
|
end
|
9
|
+
|
10
|
+
def focused?
|
11
|
+
@gui.focused?
|
12
|
+
end
|
13
|
+
|
14
|
+
alias focussed? focused?
|
15
|
+
alias focussed focused?
|
16
|
+
alias focused focused?
|
8
17
|
end
|
9
18
|
end
|
10
19
|
end
|
data/lib/shoes/common/hover.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
class Shoes
|
3
4
|
module Common
|
4
5
|
module Hover
|
@@ -25,32 +26,32 @@ class Shoes
|
|
25
26
|
end
|
26
27
|
|
27
28
|
def hovered?
|
28
|
-
@hovered
|
29
|
+
@hovered ||= false
|
29
30
|
end
|
30
31
|
|
31
32
|
def hover_class
|
32
|
-
return @hover_class if @hover_class
|
33
|
+
return @hover_class if defined?(@hover_class)
|
33
34
|
|
34
35
|
name = self.class.name.split("::").last
|
35
36
|
@hover_class = Shoes.const_get("#{name}Hover")
|
36
37
|
end
|
37
38
|
|
38
39
|
def mouse_hovered
|
39
|
-
return if
|
40
|
+
return if hovered?
|
40
41
|
|
41
42
|
@hovered = true
|
42
43
|
|
43
44
|
apply_style_from_hover_class
|
44
|
-
eval_hover_block(@hover_blk)
|
45
|
+
eval_hover_block(@hover_blk ||= nil)
|
45
46
|
end
|
46
47
|
|
47
48
|
def mouse_left
|
48
|
-
return unless
|
49
|
+
return unless hovered?
|
49
50
|
|
50
51
|
@hovered = false
|
51
52
|
|
52
53
|
apply_style_from_pre_hover
|
53
|
-
eval_hover_block(@leave_blk)
|
54
|
+
eval_hover_block(@leave_blk ||= nil)
|
54
55
|
end
|
55
56
|
|
56
57
|
def add_mouse_hover_control
|
@@ -74,7 +75,7 @@ class Shoes
|
|
74
75
|
end
|
75
76
|
|
76
77
|
def apply_style_from_pre_hover
|
77
|
-
style(@pre_hover_style) if @pre_hover_style
|
78
|
+
style(@pre_hover_style) if defined?(@pre_hover_style) && @pre_hover_style
|
78
79
|
@pre_hover_style = nil
|
79
80
|
end
|
80
81
|
end
|
data/lib/shoes/common/inspect.rb
CHANGED
data/lib/shoes/common/remove.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
class Shoes
|
3
4
|
module Common
|
4
5
|
module Remove
|
5
6
|
def remove
|
6
7
|
parent&.remove_child self
|
7
8
|
gui&.remove if gui&.respond_to?(:remove)
|
8
|
-
|
9
|
-
@app&.remove_mouse_hover_control(self)
|
9
|
+
@app&.remove_mouse_hover_control(self) if defined?(@app)
|
10
10
|
end
|
11
11
|
end
|
12
12
|
end
|
data/lib/shoes/common/rotate.rb
CHANGED
data/lib/shoes/common/state.rb
CHANGED
data/lib/shoes/common/stroke.rb
CHANGED
data/lib/shoes/common/style.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
# The general Style module handles the many optional styles that may be passed
|
3
4
|
# to shoes elements upon creates as well as the fact that they can later on be
|
4
5
|
# altered through the #style method.
|
@@ -15,7 +16,8 @@ class Shoes
|
|
15
16
|
}
|
16
17
|
|
17
18
|
STYLE_GROUPS = {
|
18
|
-
art_styles: [:cap, :click, :fill, :rotate, :stroke,
|
19
|
+
art_styles: [:angle, :cap, :click, :fill, :rotate, :stroke,
|
20
|
+
:strokewidth, :transform, :translate],
|
19
21
|
common_styles: [:displace_left, :displace_top, :hidden],
|
20
22
|
dimensions: [:bottom, :height, :left, :margin,
|
21
23
|
:margin_bottom, :margin_left, :margin_right,
|