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.
Files changed (124) hide show
  1. checksums.yaml +4 -4
  2. data/Guardfile +5 -0
  3. data/bin/shoes +1 -1
  4. data/bin/shoes-stub +1 -1
  5. data/ext/install/Rakefile +15 -5
  6. data/ext/install/shoes.bat +1 -1
  7. data/lib/shoes/animation.rb +2 -2
  8. data/lib/shoes/arc.rb +1 -0
  9. data/lib/shoes/builtin_methods.rb +5 -18
  10. data/lib/shoes/button.rb +1 -5
  11. data/lib/shoes/check_button.rb +1 -5
  12. data/lib/shoes/color.rb +5 -274
  13. data/lib/shoes/color/dsl.rb +166 -0
  14. data/lib/shoes/color/dsl_helpers.rb +84 -0
  15. data/lib/shoes/color/hex_converter.rb +32 -0
  16. data/lib/shoes/common/background_element.rb +5 -0
  17. data/lib/shoes/common/hover.rb +87 -0
  18. data/lib/shoes/common/initialization.rb +21 -8
  19. data/lib/shoes/common/remove.rb +2 -0
  20. data/lib/shoes/common/state.rb +17 -3
  21. data/lib/shoes/common/style.rb +8 -0
  22. data/lib/shoes/configuration.rb +18 -15
  23. data/lib/shoes/core/version.rb +1 -1
  24. data/lib/shoes/dimension.rb +6 -19
  25. data/lib/shoes/dimensions.rb +8 -0
  26. data/lib/shoes/download.rb +5 -3
  27. data/lib/shoes/dsl.rb +3 -3
  28. data/lib/shoes/image.rb +1 -0
  29. data/lib/shoes/image_pattern.rb +1 -1
  30. data/lib/shoes/input_box.rb +2 -5
  31. data/lib/shoes/internal_app.rb +13 -2
  32. data/lib/shoes/line.rb +1 -0
  33. data/lib/shoes/link.rb +8 -0
  34. data/lib/shoes/list_box.rb +2 -5
  35. data/lib/shoes/mock/check.rb +3 -0
  36. data/lib/shoes/mock/image.rb +6 -0
  37. data/lib/shoes/mock/progress.rb +6 -0
  38. data/lib/shoes/mock/radio.rb +3 -0
  39. data/lib/shoes/mock/sound.rb +1 -1
  40. data/lib/shoes/oval.rb +1 -0
  41. data/lib/shoes/packager.rb +1 -1
  42. data/lib/shoes/rect.rb +1 -0
  43. data/lib/shoes/shape.rb +4 -0
  44. data/lib/shoes/slot.rb +75 -38
  45. data/lib/shoes/slot_contents.rb +4 -0
  46. data/lib/shoes/sound.rb +3 -2
  47. data/lib/shoes/star.rb +1 -0
  48. data/lib/shoes/text_block.rb +18 -2
  49. data/lib/shoes/text_block_dimensions.rb +19 -3
  50. data/lib/shoes/timer.rb +2 -2
  51. data/lib/shoes/ui/picker.rb +4 -4
  52. data/lib/shoes/version.rb +1 -1
  53. data/shoes-core.gemspec +1 -1
  54. data/spec/shoes/animation_spec.rb +2 -2
  55. data/spec/shoes/app_spec.rb +6 -17
  56. data/spec/shoes/arc_spec.rb +2 -1
  57. data/spec/shoes/background_spec.rb +2 -2
  58. data/spec/shoes/border_spec.rb +2 -2
  59. data/spec/shoes/builtin_methods_spec.rb +68 -56
  60. data/spec/shoes/button_spec.rb +3 -3
  61. data/spec/shoes/check_spec.rb +3 -2
  62. data/spec/shoes/color_spec.rb +9 -3
  63. data/spec/shoes/common/remove_spec.rb +0 -1
  64. data/spec/shoes/common/rotate_spec.rb +13 -0
  65. data/spec/shoes/common/style_spec.rb +12 -3
  66. data/spec/shoes/configuration_spec.rb +18 -3
  67. data/spec/shoes/constants_spec.rb +1 -0
  68. data/spec/shoes/dialog_spec.rb +1 -3
  69. data/spec/shoes/dimension_spec.rb +33 -24
  70. data/spec/shoes/dimensions_spec.rb +21 -31
  71. data/spec/shoes/download_spec.rb +14 -3
  72. data/spec/shoes/flow_spec.rb +6 -7
  73. data/spec/shoes/font_spec.rb +2 -3
  74. data/spec/shoes/framework_learning_spec.rb +1 -2
  75. data/spec/shoes/gradient_spec.rb +1 -2
  76. data/spec/shoes/helpers/fake_absolute_element.rb +30 -0
  77. data/spec/shoes/helpers/sample17_helper.rb +0 -1
  78. data/spec/shoes/image_spec.rb +2 -1
  79. data/spec/shoes/input_box_spec.rb +2 -2
  80. data/spec/shoes/integration_spec.rb +0 -1
  81. data/spec/shoes/internal_app_spec.rb +4 -5
  82. data/spec/shoes/keypress_spec.rb +1 -1
  83. data/spec/shoes/keyrelease_spec.rb +1 -2
  84. data/spec/shoes/line_spec.rb +3 -2
  85. data/spec/shoes/link_spec.rb +26 -6
  86. data/spec/shoes/list_box_spec.rb +2 -2
  87. data/spec/shoes/oval_spec.rb +2 -1
  88. data/spec/shoes/packager_spec.rb +1 -1
  89. data/spec/shoes/point_spec.rb +1 -1
  90. data/spec/shoes/progress_spec.rb +1 -1
  91. data/spec/shoes/radio_spec.rb +1 -1
  92. data/spec/shoes/rect_spec.rb +2 -1
  93. data/spec/shoes/renamed_delegate_spec.rb +0 -1
  94. data/spec/shoes/shape_spec.rb +1 -1
  95. data/spec/shoes/shared_examples/common_methods.rb +1 -1
  96. data/spec/shoes/shared_examples/dsl/animate.rb +1 -1
  97. data/spec/shoes/shared_examples/dsl/background.rb +2 -2
  98. data/spec/shoes/shared_examples/dsl/rgb.rb +4 -2
  99. data/spec/shoes/shared_examples/dsl/star.rb +0 -1
  100. data/spec/shoes/shared_examples/dsl/style.rb +1 -1
  101. data/spec/shoes/shared_examples/dsl/text_elements.rb +2 -2
  102. data/spec/shoes/shared_examples/dsl/video.rb +1 -1
  103. data/spec/shoes/shared_examples/dsl_app_context.rb +4 -1
  104. data/spec/shoes/shared_examples/hover.rb +78 -0
  105. data/spec/shoes/shared_examples/slot.rb +34 -4
  106. data/spec/shoes/shared_examples/state.rb +9 -2
  107. data/spec/shoes/shared_examples/style.rb +0 -5
  108. data/spec/shoes/slot_spec.rb +11 -38
  109. data/spec/shoes/sound_spec.rb +3 -2
  110. data/spec/shoes/span_spec.rb +2 -2
  111. data/spec/shoes/spec_helper.rb +1 -1
  112. data/spec/shoes/stack_spec.rb +6 -6
  113. data/spec/shoes/star_spec.rb +2 -1
  114. data/spec/shoes/text_block_dimensions_spec.rb +3 -4
  115. data/spec/shoes/text_block_spec.rb +16 -11
  116. data/spec/shoes/ui/picker_spec.rb +5 -6
  117. data/spec/shoes/url_spec.rb +1 -2
  118. data/spec/shoes/widget_spec.rb +11 -3
  119. data/spec/shoes_spec.rb +1 -4
  120. data/spec/spec_helper.rb +2 -1
  121. metadata +16 -9
  122. data/bin/shoes-guard +0 -8
  123. data/lib/shoes/link_hover.rb +0 -5
  124. data/spec/shoes/shared_examples/hover_leave.rb +0 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 84a2c73e863ae6a5e1d2c53484822830719a8e3e
4
- data.tar.gz: e26555a20033558b5618a6be1821ce73ec0dbf1d
3
+ metadata.gz: a1ef269a6d0c75e333dd8592da3a015c91b94aed
4
+ data.tar.gz: 5f827551fdacff4074c2bb9050104c83e10ca5e8
5
5
  SHA512:
6
- metadata.gz: 775fbfd5702df09c69a035c02502f1c8db234eef54aaa7f9e72fe46f6fac2af59c698e7d40f86bf9d61ec6dfbc6fd49b2d14fb643a8a473f86fb598aeeb227f0
7
- data.tar.gz: b4568bcb40bcc3e4c3e67b63d90b9d70f85905aba5ed0450add252ee22da124b6c4d64e847f81245636ac8d2c5de4a70b5c28fb0c93cd35f43b89ad2f41b61d9
6
+ metadata.gz: 742d48be0d8c9b7f6d17e8c9d96dc93ed5db1c8076d3430ac1e91d9126d948b996f54ed422a7a2a81e8e646cf1d374484cb457dcd554a370691eee700786e2ff
7
+ data.tar.gz: 7388924d45215cb1ae721ef6feed84562c4dd3050c4a35a587f80442258b4579b5006b0e70c445f1a03761ce421a22c66ae770749cc14e7b02780d63226a6925
data/Guardfile ADDED
@@ -0,0 +1,5 @@
1
+ guard 'rspec', cmd: 'rspec' do
2
+ watch(%r{^spec/.+_spec\.rb$})
3
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
4
+ watch(%r{^lib/shoes/mock/(.+)\.rb$}) { |m| "spec/shoes/#{m[1]}_spec.rb" }
5
+ end
data/bin/shoes CHANGED
@@ -42,7 +42,7 @@ mac_readlink_f () {
42
42
  echo $RESULT
43
43
  }
44
44
 
45
- case "${MACHTYPE:-}" in
45
+ case "${MACHTYPE:-}${OSTYPE:-}" in
46
46
  (*darwin*)
47
47
  SCRIPT=$(mac_readlink_f $0);;
48
48
  (*)
data/bin/shoes-stub CHANGED
@@ -42,7 +42,7 @@ mac_readlink_f () {
42
42
  echo $RESULT
43
43
  }
44
44
 
45
- case "${MACHTYPE:-}" in
45
+ case "${MACHTYPE:-}${OSTYPE:-}" in
46
46
  (*darwin*)
47
47
  SCRIPT=$(mac_readlink_f $0);;
48
48
  (*)
data/ext/install/Rakefile CHANGED
@@ -15,15 +15,25 @@ require 'fileutils'
15
15
  # We also provide a Rubygems plugin to clean up our manual file on uninstall.
16
16
  # Post-install hooks didn't seem to work, though, hence the extension trick.
17
17
 
18
- task :default => ['install_script']
18
+ task default: ['install_script']
19
19
 
20
20
  task :install_script do
21
+ # If we're run via jruby-complete.jar, bindir is within the jar itself so
22
+ # look for bin based on user directory. Otherwise, prefer Gem.bindir.
23
+ if Gem.bindir.start_with?("uri:classloader")
24
+ dest_dir = Gem.bindir(Gem.user_dir)
25
+ else
26
+ dest_dir = Gem.bindir
27
+ end
28
+
21
29
  if Gem.win_platform?
22
- source_path = File.join(File.dirname(__FILE__), "shoes.bat")
23
- dest_path = File.join(Gem.bindir, "shoes.bat")
30
+ source_path = File.join(Dir.pwd, "shoes.bat")
31
+ dest_path = File.join(dest_dir, "shoes.bat")
24
32
  else
25
- source_path = File.join(File.dirname(__FILE__), "..", "..", "bin", "shoes-stub")
26
- dest_path = File.join(Gem.bindir, "shoes")
33
+ source_path = File.join(Dir.pwd, "..", "..", "bin", "shoes-stub")
34
+ dest_path = File.join(dest_dir, "shoes")
27
35
  end
36
+
37
+ FileUtils.mkdir_p(dest_dir)
28
38
  FileUtils.cp(source_path, dest_path)
29
39
  end
@@ -7,7 +7,7 @@ if not defined bin_dir set bin_dir=%~dp0
7
7
  if not exist !bin_dir!\shoes-backend (
8
8
  REM TODO: Can we get rid of jruby in some way here? My Windows box didn't
9
9
  REM have a global ruby installed by just installing jruby :(
10
- jruby --1.9 !bin_dir!\shoes-picker !bin_dir!
10
+ jruby !bin_dir!\shoes-picker !bin_dir!
11
11
  )
12
12
 
13
13
  set shoes_bin_dir=!bin_dir!
@@ -17,10 +17,10 @@ class Shoes
17
17
  @blk = @app.current_slot.create_bound_block(blk)
18
18
  @current_frame = 0
19
19
  @stopped = false
20
- @gui = Shoes.configuration.backend_for(self, @app.gui)
20
+ @gui = Shoes.backend_for(self)
21
21
  end
22
22
 
23
- attr_reader :current_frame, :framerate, :blk
23
+ attr_reader :current_frame, :framerate, :blk, :app
24
24
 
25
25
  def start
26
26
  @stopped = false
data/lib/shoes/arc.rb CHANGED
@@ -5,6 +5,7 @@ class Shoes
5
5
  include Common::Stroke
6
6
  include Common::Style
7
7
  include Common::Clickable
8
+ include Common::Hover
8
9
 
9
10
  style_with :angle1, :angle2, :art_styles, :center, :common_styles, :dimensions, :radius, :wedge
10
11
  STYLES = { wedge: false }
@@ -17,24 +17,11 @@ class Shoes
17
17
  Shoes::Dialog.new.confirm(message)
18
18
  end
19
19
 
20
- def info(message = '')
21
- Shoes::LOG << ['info', message]
22
- Shoes.logger.info message
23
- end
24
-
25
- def debug(message = '')
26
- Shoes::LOG << ['debug', message]
27
- Shoes.logger.debug message
28
- end
29
-
30
- def warn(message = '')
31
- Shoes::LOG << ['warn', message]
32
- Shoes.logger.warn message
33
- end
34
-
35
- def error(message = '')
36
- Shoes::LOG << ['error', message]
37
- Shoes.logger.error message
20
+ %w(info debug warn error).each do |log_level|
21
+ define_method(log_level) do |message = ''|
22
+ Shoes::LOG << [log_level, message]
23
+ Shoes.logger.public_send(log_level, message)
24
+ end
38
25
  end
39
26
 
40
27
  alias_method :confirm?, :confirm
data/lib/shoes/button.rb CHANGED
@@ -3,6 +3,7 @@ class Shoes
3
3
  include Common::UIElement
4
4
  include Common::Style
5
5
  include Common::Clickable
6
+ include Common::State
6
7
 
7
8
  style_with :click, :common_styles, :dimensions, :state, :text
8
9
 
@@ -13,10 +14,5 @@ class Shoes
13
14
  def focus
14
15
  @gui.focus
15
16
  end
16
-
17
- def state=(value)
18
- style(state: value)
19
- @gui.enabled value.nil?
20
- end
21
17
  end
22
18
  end
@@ -3,6 +3,7 @@ class Shoes
3
3
  include Common::UIElement
4
4
  include Common::Style
5
5
  include Common::Clickable
6
+ include Common::State
6
7
 
7
8
  def checked?
8
9
  @gui.checked?
@@ -16,11 +17,6 @@ class Shoes
16
17
  def focus
17
18
  @gui.focus
18
19
  end
19
-
20
- def state=(value)
21
- style(state: value)
22
- @gui.enabled value.nil?
23
- end
24
20
  end
25
21
 
26
22
  class Check < CheckButton
data/lib/shoes/color.rb CHANGED
@@ -60,6 +60,7 @@ EOS
60
60
  end
61
61
 
62
62
  def <=>(other)
63
+ return nil unless other.is_a?(self.class)
63
64
  if same_base_color?(other)
64
65
  @alpha <=> other.alpha
65
66
  else
@@ -104,279 +105,9 @@ EOS
104
105
  -1
105
106
  end
106
107
  end
107
-
108
-
109
- class HexConverter
110
- def initialize(hex)
111
- @hex = validate(hex) || fail(ArgumentError, "Bad hex color: #{hex}")
112
- @red, @green, @blue = hex_to_rgb(pad_if_necessary @hex)
113
- end
114
-
115
- def to_rgb
116
- [@red, @green, @blue]
117
- end
118
-
119
- private
120
-
121
- def hex_to_rgb(hex)
122
- hex.chars.each_slice(2).map { |a| a.join.to_i(16) }
123
- end
124
-
125
- def pad_if_necessary(hex)
126
- return hex unless hex.length == 3
127
- hex.chars.map { |c| "#{c}#{c}" }.join
128
- end
129
-
130
- # Returns a 3- or 6-char hex string for valid input, or nil
131
- # for invalid input.
132
- def validate(hex)
133
- match = /^#?(([0-9a-f]{3}){1,2})$/i.match(hex)
134
- match && match[1]
135
- end
136
- end
137
-
138
- module DSLHelpers
139
- def pattern(*args)
140
- if args.length == 1
141
- arg = args.first
142
- case arg
143
- when String
144
- image_file?(arg) ? image_pattern(arg) : color(arg)
145
- when Shoes::Color
146
- color arg
147
- when Range, Shoes::Gradient
148
- gradient(arg)
149
- when Shoes::ImagePattern
150
- arg
151
- else
152
- fail ArgumentError, "Bad pattern: #{arg.inspect}"
153
- end
154
- else
155
- gradient(*args)
156
- end
157
- end
158
-
159
- def color(arg)
160
- Shoes::Color.create(arg)
161
- end
162
-
163
- def rgb(red, green, blue, alpha = Shoes::Color::OPAQUE)
164
- Shoes::Color.new(red, green, blue, alpha)
165
- end
166
-
167
- # Creates a new Shoes::Gradient
168
- #
169
- # @overload gradient(from, to)
170
- # @param [Shoes::Color] from the starting color
171
- # @param [Shoes::Color] to the ending color
172
- #
173
- # @overload gradient(from, to)
174
- # @param [String] from a hex string representing the starting color
175
- # @param [String] to a hex string representing the ending color
176
- #
177
- # @overload gradient(range)
178
- # @param [Range<Shoes::Color>] range min color to max color
179
- #
180
- # @overload gradient(range)
181
- # @param [Range<String>] range min color to max color
182
- def gradient(*args)
183
- case args.length
184
- when 1
185
- arg = args[0]
186
- case arg
187
- when Gradient
188
- min, max = arg.color1, arg.color2
189
- when Range
190
- min, max = arg.first, arg.last
191
- else
192
- fail ArgumentError, "Can't make gradient out of #{arg.inspect}"
193
- end
194
- when 2
195
- min, max = args[0], args[1]
196
- else
197
- fail ArgumentError, "Wrong number of arguments (#{args.length} for 1 or 2)"
198
- end
199
- Shoes::Gradient.new(color(min), color(max))
200
- end
201
-
202
- def gray(level = 128, alpha = Shoes::Color::OPAQUE)
203
- Shoes::Color.new(level, level, level, alpha)
204
- end
205
-
206
- alias_method :grey, :gray
207
-
208
- private
209
-
210
- def image_file?(arg)
211
- arg =~ /\.gif|jpg|jpeg|png$/
212
- end
213
-
214
- def image_pattern(path)
215
- Shoes::ImagePattern.new path if File.exist?(path)
216
- end
217
- end
218
- end
219
-
220
- # Create all of the built-in Shoes colors
221
- COLORS = {}
222
-
223
- module DSL
224
- colors = [
225
- [:aliceblue, 240, 248, 255],
226
- [:antiquewhite, 250, 235, 215],
227
- [:aqua, 0, 255, 255],
228
- [:aquamarine, 127, 255, 212],
229
- [:azure, 240, 255, 255],
230
- [:beige, 245, 245, 220],
231
- [:bisque, 255, 228, 196],
232
- [:black, 0, 0, 0],
233
- [:blanchedalmond, 255, 235, 205],
234
- [:blue, 0, 0, 255],
235
- [:blueviolet, 138, 43, 226],
236
- [:brown, 165, 42, 42],
237
- [:burlywood, 222, 184, 135],
238
- [:cadetblue, 95, 158, 160],
239
- [:chartreuse, 127, 255, 0],
240
- [:chocolate, 210, 105, 30],
241
- [:coral, 255, 127, 80],
242
- [:cornflowerblue, 100, 149, 237],
243
- [:cornsilk, 255, 248, 220],
244
- [:crimson, 220, 20, 60],
245
- [:cyan, 0, 255, 255],
246
- [:darkblue, 0, 0, 139],
247
- [:darkcyan, 0, 139, 139],
248
- [:darkgoldenrod, 184, 134, 11],
249
- [:darkgray, 169, 169, 169],
250
- [:darkgrey, 169, 169, 169],
251
- [:darkgreen, 0, 100, 0],
252
- [:darkkhaki, 189, 183, 107],
253
- [:darkmagenta, 139, 0, 139],
254
- [:darkolivegreen, 85, 107, 47],
255
- [:darkorange, 255, 140, 0],
256
- [:darkorchid, 153, 50, 204],
257
- [:darkred, 139, 0, 0],
258
- [:darksalmon, 233, 150, 122],
259
- [:darkseagreen, 143, 188, 143],
260
- [:darkslateblue, 72, 61, 139],
261
- [:darkslategray, 47, 79, 79],
262
- [:darkslategrey, 47, 79, 79],
263
- [:darkturquoise, 0, 206, 209],
264
- [:darkviolet, 148, 0, 211],
265
- [:deeppink, 255, 20, 147],
266
- [:deepskyblue, 0, 191, 255],
267
- [:dimgray, 105, 105, 105],
268
- [:dimgrey, 105, 105, 105],
269
- [:dodgerblue, 30, 144, 255],
270
- [:firebrick, 178, 34, 34],
271
- [:floralwhite, 255, 250, 240],
272
- [:forestgreen, 34, 139, 34],
273
- [:fuchsia, 255, 0, 255],
274
- [:gainsboro, 220, 220, 220],
275
- [:ghostwhite, 248, 248, 255],
276
- [:gold, 255, 215, 0],
277
- [:goldenrod, 218, 165, 32],
278
- [:green, 0, 128, 0],
279
- [:greenyellow, 173, 255, 47],
280
- [:honeydew, 240, 255, 240],
281
- [:hotpink, 255, 105, 180],
282
- [:indianred, 205, 92, 92],
283
- [:indigo, 75, 0, 130],
284
- [:ivory, 255, 255, 240],
285
- [:khaki, 240, 230, 140],
286
- [:lavender, 230, 230, 250],
287
- [:lavenderblush, 255, 240, 245],
288
- [:lawngreen, 124, 252, 0],
289
- [:lemonchiffon, 255, 250, 205],
290
- [:lightblue, 173, 216, 230],
291
- [:lightcoral, 240, 128, 128],
292
- [:lightcyan, 224, 255, 255],
293
- [:lightgoldenrodyellow, 250, 250, 210],
294
- [:lightgreen, 144, 238, 144],
295
- [:lightgray, 211, 211, 211],
296
- [:lightgrey, 211, 211, 211],
297
- [:lightpink, 255, 182, 193],
298
- [:lightsalmon, 255, 160, 122],
299
- [:lightseagreen, 32, 178, 170],
300
- [:lightskyblue, 135, 206, 250],
301
- [:lightslategray, 119, 136, 153],
302
- [:lightslategrey, 119, 136, 153],
303
- [:lightsteelblue, 176, 196, 222],
304
- [:lightyellow, 255, 255, 224],
305
- [:lime, 0, 255, 0],
306
- [:limegreen, 50, 205, 50],
307
- [:linen, 250, 240, 230],
308
- [:magenta, 255, 0, 255],
309
- [:maroon, 128, 0, 0],
310
- [:mediumaquamarine, 102, 205, 170],
311
- [:mediumblue, 0, 0, 205],
312
- [:mediumorchid, 186, 85, 211],
313
- [:mediumpurple, 147, 112, 219],
314
- [:mediumseagreen, 60, 179, 113],
315
- [:mediumslateblue, 123, 104, 238],
316
- [:mediumspringgreen, 0, 250, 154],
317
- [:mediumturquoise, 72, 209, 204],
318
- [:mediumvioletred, 199, 21, 133],
319
- [:midnightblue, 25, 25, 112],
320
- [:mintcream, 245, 255, 250],
321
- [:mistyrose, 255, 228, 225],
322
- [:moccasin, 255, 228, 181],
323
- [:navajowhite, 255, 222, 173],
324
- [:navy, 0, 0, 128],
325
- [:oldlace, 253, 245, 230],
326
- [:olive, 128, 128, 0],
327
- [:olivedrab, 107, 142, 35],
328
- [:orange, 255, 165, 0],
329
- [:orangered, 255, 69, 0],
330
- [:orchid, 218, 112, 214],
331
- [:palegoldenrod, 238, 232, 170],
332
- [:palegreen, 152, 251, 152],
333
- [:paleturquoise, 175, 238, 238],
334
- [:palevioletred, 219, 112, 147],
335
- [:papayawhip, 255, 239, 213],
336
- [:peachpuff, 255, 218, 185],
337
- [:peru, 205, 133, 63],
338
- [:pink, 255, 192, 203],
339
- [:plum, 221, 160, 221],
340
- [:powderblue, 176, 224, 230],
341
- [:purple, 128, 0, 128],
342
- [:red, 255, 0, 0],
343
- [:rosybrown, 188, 143, 143],
344
- [:royalblue, 65, 105, 225],
345
- [:saddlebrown, 139, 69, 19],
346
- [:salmon, 250, 128, 114],
347
- [:sandybrown, 244, 164, 96],
348
- [:seagreen, 46, 139, 87],
349
- [:seashell, 255, 245, 238],
350
- [:sienna, 160, 82, 45],
351
- [:silver, 192, 192, 192],
352
- [:skyblue, 135, 206, 235],
353
- [:slateblue, 106, 90, 205],
354
- [:slategray, 112, 128, 144],
355
- [:slategrey, 112, 128, 144],
356
- [:snow, 255, 250, 250],
357
- [:springgreen, 0, 255, 127],
358
- [:steelblue, 70, 130, 180],
359
- [:tan, 210, 180, 140],
360
- [:teal, 0, 128, 128],
361
- [:thistle, 216, 191, 216],
362
- [:tomato, 255, 99, 71],
363
- [:turquoise, 64, 224, 208],
364
- [:violet, 238, 130, 238],
365
- [:wheat, 245, 222, 179],
366
- [:white, 255, 255, 255],
367
- [:whitesmoke, 245, 245, 245],
368
- [:yellow, 255, 255, 0],
369
- [:yellowgreen, 154, 205, 50],
370
- [:shoes_background, 237, 237, 237],
371
- ]
372
-
373
- colors.each do |color_name, r, g, b|
374
- Shoes::COLORS[color_name] = Shoes::Color.new(r, g, b)
375
- define_method(color_name) do |alpha = Shoes::Color::OPAQUE|
376
- color = Shoes::COLORS.fetch(color_name)
377
- return color if alpha == Shoes::Color::OPAQUE
378
- Shoes::Color.new(color.red, color.green, color.blue, alpha)
379
- end
380
- end
381
108
  end
382
109
  end
110
+
111
+ require 'shoes/color/hex_converter'
112
+ require 'shoes/color/dsl_helpers'
113
+ require 'shoes/color/dsl'