shoes-core 4.0.0.pre4 → 4.0.0.pre5
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/Guardfile +5 -0
- data/bin/shoes +1 -1
- data/bin/shoes-stub +1 -1
- data/ext/install/Rakefile +15 -5
- data/ext/install/shoes.bat +1 -1
- data/lib/shoes/animation.rb +2 -2
- data/lib/shoes/arc.rb +1 -0
- data/lib/shoes/builtin_methods.rb +5 -18
- data/lib/shoes/button.rb +1 -5
- data/lib/shoes/check_button.rb +1 -5
- data/lib/shoes/color.rb +5 -274
- data/lib/shoes/color/dsl.rb +166 -0
- data/lib/shoes/color/dsl_helpers.rb +84 -0
- data/lib/shoes/color/hex_converter.rb +32 -0
- data/lib/shoes/common/background_element.rb +5 -0
- data/lib/shoes/common/hover.rb +87 -0
- data/lib/shoes/common/initialization.rb +21 -8
- data/lib/shoes/common/remove.rb +2 -0
- data/lib/shoes/common/state.rb +17 -3
- data/lib/shoes/common/style.rb +8 -0
- data/lib/shoes/configuration.rb +18 -15
- data/lib/shoes/core/version.rb +1 -1
- data/lib/shoes/dimension.rb +6 -19
- data/lib/shoes/dimensions.rb +8 -0
- data/lib/shoes/download.rb +5 -3
- data/lib/shoes/dsl.rb +3 -3
- data/lib/shoes/image.rb +1 -0
- data/lib/shoes/image_pattern.rb +1 -1
- data/lib/shoes/input_box.rb +2 -5
- data/lib/shoes/internal_app.rb +13 -2
- data/lib/shoes/line.rb +1 -0
- data/lib/shoes/link.rb +8 -0
- data/lib/shoes/list_box.rb +2 -5
- data/lib/shoes/mock/check.rb +3 -0
- data/lib/shoes/mock/image.rb +6 -0
- data/lib/shoes/mock/progress.rb +6 -0
- data/lib/shoes/mock/radio.rb +3 -0
- data/lib/shoes/mock/sound.rb +1 -1
- data/lib/shoes/oval.rb +1 -0
- data/lib/shoes/packager.rb +1 -1
- data/lib/shoes/rect.rb +1 -0
- data/lib/shoes/shape.rb +4 -0
- data/lib/shoes/slot.rb +75 -38
- data/lib/shoes/slot_contents.rb +4 -0
- data/lib/shoes/sound.rb +3 -2
- data/lib/shoes/star.rb +1 -0
- data/lib/shoes/text_block.rb +18 -2
- data/lib/shoes/text_block_dimensions.rb +19 -3
- data/lib/shoes/timer.rb +2 -2
- data/lib/shoes/ui/picker.rb +4 -4
- data/lib/shoes/version.rb +1 -1
- data/shoes-core.gemspec +1 -1
- data/spec/shoes/animation_spec.rb +2 -2
- data/spec/shoes/app_spec.rb +6 -17
- data/spec/shoes/arc_spec.rb +2 -1
- data/spec/shoes/background_spec.rb +2 -2
- data/spec/shoes/border_spec.rb +2 -2
- data/spec/shoes/builtin_methods_spec.rb +68 -56
- data/spec/shoes/button_spec.rb +3 -3
- data/spec/shoes/check_spec.rb +3 -2
- data/spec/shoes/color_spec.rb +9 -3
- data/spec/shoes/common/remove_spec.rb +0 -1
- data/spec/shoes/common/rotate_spec.rb +13 -0
- data/spec/shoes/common/style_spec.rb +12 -3
- data/spec/shoes/configuration_spec.rb +18 -3
- data/spec/shoes/constants_spec.rb +1 -0
- data/spec/shoes/dialog_spec.rb +1 -3
- data/spec/shoes/dimension_spec.rb +33 -24
- data/spec/shoes/dimensions_spec.rb +21 -31
- data/spec/shoes/download_spec.rb +14 -3
- data/spec/shoes/flow_spec.rb +6 -7
- data/spec/shoes/font_spec.rb +2 -3
- data/spec/shoes/framework_learning_spec.rb +1 -2
- data/spec/shoes/gradient_spec.rb +1 -2
- data/spec/shoes/helpers/fake_absolute_element.rb +30 -0
- data/spec/shoes/helpers/sample17_helper.rb +0 -1
- data/spec/shoes/image_spec.rb +2 -1
- data/spec/shoes/input_box_spec.rb +2 -2
- data/spec/shoes/integration_spec.rb +0 -1
- data/spec/shoes/internal_app_spec.rb +4 -5
- data/spec/shoes/keypress_spec.rb +1 -1
- data/spec/shoes/keyrelease_spec.rb +1 -2
- data/spec/shoes/line_spec.rb +3 -2
- data/spec/shoes/link_spec.rb +26 -6
- data/spec/shoes/list_box_spec.rb +2 -2
- data/spec/shoes/oval_spec.rb +2 -1
- data/spec/shoes/packager_spec.rb +1 -1
- data/spec/shoes/point_spec.rb +1 -1
- data/spec/shoes/progress_spec.rb +1 -1
- data/spec/shoes/radio_spec.rb +1 -1
- data/spec/shoes/rect_spec.rb +2 -1
- data/spec/shoes/renamed_delegate_spec.rb +0 -1
- data/spec/shoes/shape_spec.rb +1 -1
- data/spec/shoes/shared_examples/common_methods.rb +1 -1
- data/spec/shoes/shared_examples/dsl/animate.rb +1 -1
- data/spec/shoes/shared_examples/dsl/background.rb +2 -2
- data/spec/shoes/shared_examples/dsl/rgb.rb +4 -2
- data/spec/shoes/shared_examples/dsl/star.rb +0 -1
- data/spec/shoes/shared_examples/dsl/style.rb +1 -1
- data/spec/shoes/shared_examples/dsl/text_elements.rb +2 -2
- data/spec/shoes/shared_examples/dsl/video.rb +1 -1
- data/spec/shoes/shared_examples/dsl_app_context.rb +4 -1
- data/spec/shoes/shared_examples/hover.rb +78 -0
- data/spec/shoes/shared_examples/slot.rb +34 -4
- data/spec/shoes/shared_examples/state.rb +9 -2
- data/spec/shoes/shared_examples/style.rb +0 -5
- data/spec/shoes/slot_spec.rb +11 -38
- data/spec/shoes/sound_spec.rb +3 -2
- data/spec/shoes/span_spec.rb +2 -2
- data/spec/shoes/spec_helper.rb +1 -1
- data/spec/shoes/stack_spec.rb +6 -6
- data/spec/shoes/star_spec.rb +2 -1
- data/spec/shoes/text_block_dimensions_spec.rb +3 -4
- data/spec/shoes/text_block_spec.rb +16 -11
- data/spec/shoes/ui/picker_spec.rb +5 -6
- data/spec/shoes/url_spec.rb +1 -2
- data/spec/shoes/widget_spec.rb +11 -3
- data/spec/shoes_spec.rb +1 -4
- data/spec/spec_helper.rb +2 -1
- metadata +16 -9
- data/bin/shoes-guard +0 -8
- data/lib/shoes/link_hover.rb +0 -5
- data/spec/shoes/shared_examples/hover_leave.rb +0 -11
data/lib/shoes/rect.rb
CHANGED
data/lib/shoes/shape.rb
CHANGED
data/lib/shoes/slot.rb
CHANGED
@@ -2,6 +2,7 @@ class Shoes
|
|
2
2
|
class Slot
|
3
3
|
include Common::UIElement
|
4
4
|
include Common::Clickable
|
5
|
+
include Common::Hover
|
5
6
|
include Common::Style
|
6
7
|
|
7
8
|
# We need that offset because otherwise element overlap e.g. occupy
|
@@ -9,7 +10,7 @@ class Shoes
|
|
9
10
|
# See #update_current_position
|
10
11
|
NEXT_ELEMENT_OFFSET = 1
|
11
12
|
|
12
|
-
attr_reader :parent, :dimensions, :gui, :contents, :blk
|
13
|
+
attr_reader :parent, :dimensions, :gui, :contents, :blk
|
13
14
|
|
14
15
|
style_with :art_styles, :attach, :common_styles, :dimensions, :scroll
|
15
16
|
STYLES = { scroll: false, fill: Shoes::COLORS[:black] }
|
@@ -28,14 +29,13 @@ class Shoes
|
|
28
29
|
end
|
29
30
|
|
30
31
|
def handle_block(blk)
|
32
|
+
@current_position = CurrentPosition.new element_left,
|
33
|
+
element_top,
|
34
|
+
element_top
|
31
35
|
@blk = blk
|
32
36
|
eval_block blk
|
33
37
|
end
|
34
38
|
|
35
|
-
def after_initialize(*_)
|
36
|
-
contents_alignment
|
37
|
-
end
|
38
|
-
|
39
39
|
def set_default_dimension_values
|
40
40
|
self.width ||= 1.0
|
41
41
|
self.height ||= 0
|
@@ -63,6 +63,50 @@ class Shoes
|
|
63
63
|
|
64
64
|
def add_child(element)
|
65
65
|
contents.add_element element
|
66
|
+
|
67
|
+
if !element.hidden? && element.takes_up_space?
|
68
|
+
# Prepending would entail repositioning everyone after us, so just give
|
69
|
+
# it up and let contents_alignment save us the work.
|
70
|
+
if contents.prepending?
|
71
|
+
contents_alignment
|
72
|
+
else
|
73
|
+
original_height = self.height
|
74
|
+
@current_position = positioning(element, @current_position)
|
75
|
+
|
76
|
+
height_delta = slot_grew_by(original_height)
|
77
|
+
bump_parent_current_position(height_delta)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
def slot_grew_by(original_height)
|
83
|
+
determine_slot_height
|
84
|
+
self.height - original_height
|
85
|
+
end
|
86
|
+
|
87
|
+
def bump_parent_current_position(height_delta)
|
88
|
+
return unless height_delta > 0
|
89
|
+
return unless parent.respond_to?(:bump_current_position)
|
90
|
+
|
91
|
+
parent.bump_current_position(self, height_delta)
|
92
|
+
end
|
93
|
+
|
94
|
+
# This method gets called when one of our child slots got larger, so we
|
95
|
+
# need to move our current position to accomodate.
|
96
|
+
def bump_current_position(growing_slot, height_delta)
|
97
|
+
# If intermediate child changed, give up and hit it with the big hammer
|
98
|
+
if any_sibling_slots_following?(growing_slot)
|
99
|
+
contents_alignment
|
100
|
+
else
|
101
|
+
@current_position.y += height_delta
|
102
|
+
@current_position.next_line_start += height_delta
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
def any_sibling_slots_following?(growing_slot)
|
107
|
+
next_sibling = contents.index(growing_slot) + 1
|
108
|
+
next_siblings = contents[next_sibling..-1]
|
109
|
+
next_siblings.any? { |e| e.is_a?(Slot) }
|
66
110
|
end
|
67
111
|
|
68
112
|
def remove_child(element)
|
@@ -84,28 +128,8 @@ class Shoes
|
|
84
128
|
determine_slot_height
|
85
129
|
end
|
86
130
|
|
87
|
-
def
|
88
|
-
@
|
89
|
-
end
|
90
|
-
|
91
|
-
def hover(blk)
|
92
|
-
@hover_proc = blk
|
93
|
-
@app.add_mouse_hover_control self
|
94
|
-
end
|
95
|
-
|
96
|
-
def leave(blk)
|
97
|
-
@leave_proc = blk
|
98
|
-
@app.add_mouse_hover_control self
|
99
|
-
end
|
100
|
-
|
101
|
-
def mouse_hovered
|
102
|
-
@hovered = true
|
103
|
-
@hover_proc.call(self) if @hover_proc
|
104
|
-
end
|
105
|
-
|
106
|
-
def mouse_left
|
107
|
-
@hovered = false
|
108
|
-
@leave_proc.call(self) if @leave_proc
|
131
|
+
def add_mouse_hover_control
|
132
|
+
@app.add_mouse_hover_control(self)
|
109
133
|
end
|
110
134
|
|
111
135
|
def scroll_height
|
@@ -128,25 +152,36 @@ class Shoes
|
|
128
152
|
"#<#{self.class}:0x#{hash.to_s(16)} @contents=#{@contents.inspect} and so much stuff literally breaks the memory limit. Look at it selectively.>"
|
129
153
|
end
|
130
154
|
|
155
|
+
def fixed_height?
|
156
|
+
!!@fixed_height
|
157
|
+
end
|
158
|
+
|
159
|
+
def variable_height?
|
160
|
+
!@fixed_height
|
161
|
+
end
|
162
|
+
|
131
163
|
protected
|
132
164
|
|
133
165
|
CurrentPosition = Struct.new(:x, :y, :next_line_start)
|
134
166
|
|
135
167
|
def position_contents
|
136
|
-
current_position = CurrentPosition.new element_left,
|
168
|
+
@current_position = CurrentPosition.new element_left,
|
137
169
|
element_top,
|
138
170
|
element_top
|
139
171
|
|
140
172
|
contents.each do |element|
|
141
173
|
next if element.hidden?
|
142
|
-
current_position = positioning(element, current_position)
|
174
|
+
@current_position = positioning(element, @current_position)
|
143
175
|
end
|
144
|
-
current_position
|
176
|
+
@current_position
|
145
177
|
end
|
146
178
|
|
147
179
|
def positioning(element, current_position)
|
148
|
-
|
149
|
-
|
180
|
+
if element.needs_positioning?
|
181
|
+
position_element element, current_position
|
182
|
+
element.contents_alignment(current_position) if element.respond_to? :contents_alignment
|
183
|
+
end
|
184
|
+
|
150
185
|
if element.takes_up_space?
|
151
186
|
update_current_position(current_position, element)
|
152
187
|
else
|
@@ -244,7 +279,7 @@ class Shoes
|
|
244
279
|
|
245
280
|
def determine_slot_height
|
246
281
|
content_height = compute_content_height
|
247
|
-
self.
|
282
|
+
self.element_height = content_height if variable_height?
|
248
283
|
content_height
|
249
284
|
end
|
250
285
|
|
@@ -256,18 +291,17 @@ class Shoes
|
|
256
291
|
max
|
257
292
|
|
258
293
|
if max_bottom
|
259
|
-
max_bottom - self.
|
294
|
+
max_bottom - self.element_top + NEXT_ELEMENT_OFFSET
|
260
295
|
else
|
261
296
|
0
|
262
297
|
end
|
263
298
|
end
|
264
|
-
|
265
|
-
def variable_height?
|
266
|
-
!@fixed_height
|
267
|
-
end
|
268
299
|
end
|
269
300
|
|
270
301
|
class Flow < Slot
|
302
|
+
# Included to generate the *Hover class
|
303
|
+
include Common::Hover
|
304
|
+
|
271
305
|
def position_element(element, current_position)
|
272
306
|
if fits_on_the_same_line?(element, current_position.x)
|
273
307
|
position_in_current_line(element, current_position)
|
@@ -278,6 +312,9 @@ class Shoes
|
|
278
312
|
end
|
279
313
|
|
280
314
|
class Stack < Slot
|
315
|
+
# Included to generate the *Hover class
|
316
|
+
include Common::Hover
|
317
|
+
|
281
318
|
def position_element(element, current_position)
|
282
319
|
move_to_next_line(element, current_position)
|
283
320
|
end
|
data/lib/shoes/slot_contents.rb
CHANGED
data/lib/shoes/sound.rb
CHANGED
@@ -3,13 +3,14 @@ class Shoes
|
|
3
3
|
include Common::Inspect
|
4
4
|
|
5
5
|
def initialize(parent, filepath, _opts = {}, &_blk)
|
6
|
+
@app = parent
|
6
7
|
@parent = parent
|
7
8
|
@filepath = filepath
|
8
9
|
|
9
|
-
@gui = Shoes.
|
10
|
+
@gui = Shoes.backend_for(self)
|
10
11
|
end
|
11
12
|
|
12
|
-
attr_reader :gui, :filepath, :parent
|
13
|
+
attr_reader :app, :gui, :filepath, :parent
|
13
14
|
|
14
15
|
def play
|
15
16
|
@gui.play
|
data/lib/shoes/star.rb
CHANGED
data/lib/shoes/text_block.rb
CHANGED
@@ -6,6 +6,7 @@ class Shoes
|
|
6
6
|
include Common::UIElement
|
7
7
|
include Common::Style
|
8
8
|
include Common::Clickable
|
9
|
+
include Common::Hover
|
9
10
|
include TextBlockDimensionsDelegations
|
10
11
|
|
11
12
|
attr_reader :text, :contents, :text_styles
|
@@ -18,17 +19,27 @@ class Shoes
|
|
18
19
|
@dimensions = TextBlockDimensions.new @parent, @style
|
19
20
|
end
|
20
21
|
|
21
|
-
def
|
22
|
+
def add_to_parent(text)
|
22
23
|
handle_styles @style
|
23
24
|
|
24
|
-
# Important to use accessor and do this after the backend exists
|
25
|
+
# Important to use accessor and do this after the backend exists, but
|
26
|
+
# before we place ourselves in the parent container!
|
25
27
|
self.text = Array(text)
|
28
|
+
|
29
|
+
super
|
26
30
|
end
|
27
31
|
|
28
32
|
def in_bounds?(*args)
|
29
33
|
@gui.in_bounds?(*args)
|
30
34
|
end
|
31
35
|
|
36
|
+
def remove
|
37
|
+
super
|
38
|
+
links.each do |link|
|
39
|
+
@app.remove_mouse_hover_control(link)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
32
43
|
def text=(*texts)
|
33
44
|
replace(*texts[0])
|
34
45
|
end
|
@@ -138,6 +149,11 @@ class Shoes
|
|
138
149
|
clazz = Class.new(TextBlock) do
|
139
150
|
const_set("STYLES", { font: DEFAULT_TEXTBLOCK_FONT, fill: nil }.merge(styles))
|
140
151
|
end
|
152
|
+
|
141
153
|
Shoes.const_set(name, clazz)
|
154
|
+
|
155
|
+
clazz.class_eval do
|
156
|
+
include Shoes::Common::Hover
|
157
|
+
end
|
142
158
|
end
|
143
159
|
end
|
@@ -29,9 +29,21 @@ class Shoes
|
|
29
29
|
10
|
30
30
|
end
|
31
31
|
|
32
|
-
# This is the width the text block initially wants to try
|
33
|
-
|
34
|
-
|
32
|
+
# This is the width the text block initially wants to try to fit in.
|
33
|
+
#
|
34
|
+
# If an explicit containing width is provided, trust that most
|
35
|
+
# If we've gotten an explicit width, use that but check that we fit still
|
36
|
+
# Last but certainly not least, consult what's remaining in our parent.
|
37
|
+
def desired_width(containing = nil)
|
38
|
+
if containing
|
39
|
+
desired = parent.absolute_left + containing - absolute_left
|
40
|
+
elsif element_width
|
41
|
+
desired = [element_width, remaining_in_parent].min
|
42
|
+
else
|
43
|
+
desired = remaining_in_parent
|
44
|
+
end
|
45
|
+
|
46
|
+
desired - margin_left - margin_right
|
35
47
|
end
|
36
48
|
|
37
49
|
# If an explicit width's set, use that when asking how much space we need.
|
@@ -39,6 +51,10 @@ class Shoes
|
|
39
51
|
def containing_width
|
40
52
|
element_width || parent.element_width
|
41
53
|
end
|
54
|
+
|
55
|
+
def remaining_in_parent
|
56
|
+
parent.absolute_left + parent.element_width - absolute_left
|
57
|
+
end
|
42
58
|
end
|
43
59
|
|
44
60
|
module TextBlockDimensionsDelegations
|
data/lib/shoes/timer.rb
CHANGED
@@ -6,9 +6,9 @@ class Shoes
|
|
6
6
|
@app = app
|
7
7
|
@n = n
|
8
8
|
@blk = @app.current_slot.create_bound_block(blk)
|
9
|
-
@gui = Shoes.
|
9
|
+
@gui = Shoes.backend_for(self, @blk)
|
10
10
|
end
|
11
11
|
|
12
|
-
attr_reader :n, :gui
|
12
|
+
attr_reader :app, :n, :gui
|
13
13
|
end
|
14
14
|
end
|
data/lib/shoes/ui/picker.rb
CHANGED
@@ -3,12 +3,12 @@ class Shoes
|
|
3
3
|
# This class is used for interactively (if necessary) picking the Shoes
|
4
4
|
# backend that the user will run their Shoes app with.
|
5
5
|
class Picker
|
6
|
-
def initialize(input=STDIN, output=STDOUT)
|
6
|
+
def initialize(input = STDIN, output = STDOUT)
|
7
7
|
@input = input
|
8
8
|
@output = output
|
9
9
|
end
|
10
10
|
|
11
|
-
def run(bin_dir, desired_backend=nil)
|
11
|
+
def run(bin_dir, desired_backend = nil)
|
12
12
|
bundle
|
13
13
|
generator_file = select_generator(desired_backend)
|
14
14
|
write_backend(generator_file, bin_dir)
|
@@ -25,7 +25,7 @@ class Shoes
|
|
25
25
|
require 'bundler/setup'
|
26
26
|
end
|
27
27
|
|
28
|
-
def select_generator(desired_backend=nil)
|
28
|
+
def select_generator(desired_backend = nil)
|
29
29
|
candidates = find_candidates(desired_backend)
|
30
30
|
|
31
31
|
if candidates.empty?
|
@@ -75,7 +75,7 @@ class Shoes
|
|
75
75
|
|
76
76
|
def name_for_candidate(candidate)
|
77
77
|
/.*lib\/shoes\/(.*)\/generate-backend.rb/.match(candidate)
|
78
|
-
return "shoes-#{$1.gsub(
|
78
|
+
return "shoes-#{$1.gsub('/', '-')}"
|
79
79
|
end
|
80
80
|
|
81
81
|
def write_backend(generator_file, bin_dir)
|
data/lib/shoes/version.rb
CHANGED
data/shoes-core.gemspec
CHANGED
@@ -12,7 +12,7 @@ Gem::Specification.new do |s|
|
|
12
12
|
s.description = "Shoes is the best little GUI toolkit for Ruby. Shoes makes building for Mac, Windows, and Linux super simple. This is the DSL for writing your app. You'll need a backend to run it."
|
13
13
|
s.license = 'MIT'
|
14
14
|
|
15
|
-
s.files = `git ls-files`.split(
|
15
|
+
s.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
|
16
16
|
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
17
17
|
s.require_paths = ["lib"]
|
18
18
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'spec_helper'
|
2
2
|
|
3
3
|
shared_examples_for Shoes::Animation do
|
4
4
|
it "should start" do
|
@@ -60,7 +60,7 @@ describe Shoes::Animation do
|
|
60
60
|
it { is_expected.not_to be_stopped }
|
61
61
|
|
62
62
|
describe "with framerate" do
|
63
|
-
let(:opts) { {:
|
63
|
+
let(:opts) { {framerate: 36, app: app} }
|
64
64
|
|
65
65
|
it "sets framerate" do
|
66
66
|
expect(subject.framerate).to eq(36)
|
data/spec/shoes/app_spec.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Shoes::App do
|
4
4
|
let(:input_blk) { Proc.new {} }
|
@@ -64,7 +64,7 @@ describe Shoes::App do
|
|
64
64
|
end
|
65
65
|
|
66
66
|
context "from opts" do
|
67
|
-
let(:opts) { {:
|
67
|
+
let(:opts) { {width: 150, height: 2, title: "Shoes::App Spec", resizable: false} }
|
68
68
|
|
69
69
|
it "sets width", :qt do
|
70
70
|
expect(subject.width).to eq opts[:width]
|
@@ -125,11 +125,9 @@ describe Shoes::App do
|
|
125
125
|
it "passes default to objects" do
|
126
126
|
expect(subject.line(0, 100, 100, 0).style[key]).to eq(value)
|
127
127
|
end
|
128
|
-
|
129
128
|
end
|
130
129
|
end
|
131
130
|
|
132
|
-
|
133
131
|
describe "default styles" do
|
134
132
|
it "are independent among Shoes::App instances" do
|
135
133
|
app1 = Shoes::App.new
|
@@ -140,7 +138,6 @@ describe Shoes::App do
|
|
140
138
|
|
141
139
|
# .. but does not affect app2
|
142
140
|
expect(app2.line(0, 100, 100, 0).style[:strokewidth]).not_to eq(10)
|
143
|
-
|
144
141
|
end
|
145
142
|
end
|
146
143
|
end
|
@@ -164,7 +161,6 @@ describe Shoes::App do
|
|
164
161
|
expect(subject.line(0, 100, 100, 0).style[style]).to eq('val')
|
165
162
|
end
|
166
163
|
end
|
167
|
-
|
168
164
|
end
|
169
165
|
|
170
166
|
describe "connecting with gui" do
|
@@ -234,7 +230,7 @@ describe Shoes::App do
|
|
234
230
|
expect(app).not_to be_fullscreen
|
235
231
|
end
|
236
232
|
|
237
|
-
it 'can enter fullscreen' do
|
233
|
+
it 'can enter fullscreen', :fullscreen do
|
238
234
|
app.fullscreen = true
|
239
235
|
expect(app).to be_fullscreen
|
240
236
|
end
|
@@ -248,18 +244,15 @@ describe Shoes::App do
|
|
248
244
|
app.fullscreen = false
|
249
245
|
end
|
250
246
|
|
251
|
-
|
252
|
-
it 'is not in fullscreen', :fails_on_osx do
|
247
|
+
it 'is not in fullscreen', :fullscreen do
|
253
248
|
expect(app).not_to be_fullscreen
|
254
249
|
end
|
255
250
|
|
256
|
-
|
257
|
-
it 'has its origina', :fails_on_osx do
|
251
|
+
it 'has its original', :fullscreen do
|
258
252
|
expect(app.width).to eq(defaults[:width])
|
259
253
|
end
|
260
254
|
|
261
|
-
|
262
|
-
it 'has its original height', :fails_on_osx do
|
255
|
+
it 'has its original height', :fullscreen do
|
263
256
|
expect(app.height).to eq(defaults[:height])
|
264
257
|
end
|
265
258
|
end
|
@@ -311,7 +304,6 @@ describe Shoes::App do
|
|
311
304
|
expect(my_parent).to eq my_stack
|
312
305
|
end
|
313
306
|
end
|
314
|
-
|
315
307
|
end
|
316
308
|
|
317
309
|
describe "additional context" do
|
@@ -352,7 +344,6 @@ describe Shoes::App do
|
|
352
344
|
end
|
353
345
|
|
354
346
|
describe 'subscribing to DSL methods' do
|
355
|
-
|
356
347
|
class TestSubscribeClass
|
357
348
|
attr_reader :app
|
358
349
|
def initialize(app)
|
@@ -384,7 +375,6 @@ describe Shoes::App do
|
|
384
375
|
end
|
385
376
|
|
386
377
|
describe '.new_dsl_method (for widget method notifications etc.)' do
|
387
|
-
|
388
378
|
before :each do
|
389
379
|
Shoes::App.new_dsl_method :widget_method do
|
390
380
|
# noop
|
@@ -417,7 +407,6 @@ describe Shoes::App do
|
|
417
407
|
it {is_expected.not_to include :parent, :app}
|
418
408
|
end
|
419
409
|
end
|
420
|
-
|
421
410
|
end
|
422
411
|
end
|
423
412
|
|