shoes-core 4.0.0.pre12 → 4.0.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- 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,
|