shoes 4.0.0.pre1 → 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.
Files changed (361) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +84 -32
  3. data/Gemfile +22 -1
  4. data/README.md +28 -13
  5. data/Rakefile +7 -210
  6. data/bin/ruby-shoes +2 -2
  7. data/ext/install/shoes.bat +4 -1
  8. data/lib/shoes.rb +1 -121
  9. data/lib/shoes/{cli.rb → ui/cli.rb} +7 -1
  10. data/lib/shoes/{help.rb → ui/help.rb} +2 -2
  11. data/lib/shoes/{manual.rb → ui/manual.rb} +1 -1
  12. data/lib/shoes/version.rb +1 -1
  13. data/manifests/common.rb +34 -0
  14. data/manifests/shoes.rb +44 -0
  15. data/samples/Gemfile +3 -0
  16. data/samples/Gemfile.lock +35 -0
  17. data/samples/README +16 -5
  18. data/samples/boom.rb +239 -0
  19. data/samples/clicky.rb +24 -0
  20. data/samples/flow.rb +63 -0
  21. data/samples/gray.rb +11 -0
  22. data/samples/nks_booklist.rb +24 -0
  23. data/samples/nks_breadsticks.rb +7 -0
  24. data/samples/nks_dancing_circle.rb +13 -0
  25. data/samples/nks_dictionary.rb +23 -0
  26. data/samples/nks_edit_box.rb +4 -0
  27. data/samples/nks_edit_line.rb +6 -0
  28. data/samples/nks_notes.rb +16 -0
  29. data/samples/nks_self.rb +6 -0
  30. data/samples/nks_text_sizes.rb +10 -0
  31. data/samples/nks_trurl.rb +5 -0
  32. data/samples/packaging/package_me.rb +6 -0
  33. data/samples/present.rb +27 -0
  34. data/samples/progress.rb +10 -0
  35. data/samples/sample31.rb +1 -1
  36. data/samples/simple-calc.rb +1 -1
  37. data/samples/simple-tictactoe.rb +238 -0
  38. data/samples/simple-visibility.rb +11 -0
  39. data/samples/simple-widget.rb +9 -0
  40. data/samples/swt-raw.rb +20 -0
  41. data/samples/troll.rb +22 -0
  42. data/shoes.gemspec +10 -22
  43. data/snapshots/sample56.png +0 -0
  44. data/static/manual-en.txt +16 -7
  45. data/tasks/changelog.rb +92 -0
  46. data/tasks/gem.rb +38 -0
  47. data/tasks/rspec.rb +106 -0
  48. data/tasks/sample.rb +66 -0
  49. data/tasks/yard.rb +13 -0
  50. metadata +55 -488
  51. data/.gitignore +0 -53
  52. data/.rspec +0 -3
  53. data/.ruby-gemset +0 -1
  54. data/.ruby-version +0 -1
  55. data/.travis.yml +0 -31
  56. data/bin/shoes +0 -59
  57. data/bin/shoes.bat +0 -6
  58. data/fonts/Coolvetica.ttf +0 -0
  59. data/fonts/Lacuna.ttf +0 -0
  60. data/lib/ext/highlighter.rb +0 -2
  61. data/lib/ext/highlighter/common.rb +0 -197
  62. data/lib/ext/highlighter/lang/ruby.rb +0 -316
  63. data/lib/ext/highlighter/markup.rb +0 -222
  64. data/lib/rubygems_plugin.rb +0 -19
  65. data/lib/shoes/animation.rb +0 -55
  66. data/lib/shoes/app.rb +0 -320
  67. data/lib/shoes/arc.rb +0 -35
  68. data/lib/shoes/background.rb +0 -30
  69. data/lib/shoes/border.rb +0 -33
  70. data/lib/shoes/builtin_methods.rb +0 -73
  71. data/lib/shoes/button.rb +0 -32
  72. data/lib/shoes/check_button.rb +0 -43
  73. data/lib/shoes/color.rb +0 -375
  74. data/lib/shoes/common/background_element.rb +0 -9
  75. data/lib/shoes/common/changeable.rb +0 -34
  76. data/lib/shoes/common/clickable.rb +0 -17
  77. data/lib/shoes/common/common_methods.rb +0 -70
  78. data/lib/shoes/common/fill.rb +0 -21
  79. data/lib/shoes/common/registration.rb +0 -33
  80. data/lib/shoes/common/state.rb +0 -18
  81. data/lib/shoes/common/stroke.rb +0 -28
  82. data/lib/shoes/common/style.rb +0 -34
  83. data/lib/shoes/common/style_normalizer.rb +0 -16
  84. data/lib/shoes/configuration.rb +0 -96
  85. data/lib/shoes/dialog.rb +0 -27
  86. data/lib/shoes/dimension.rb +0 -237
  87. data/lib/shoes/dimensions.rb +0 -194
  88. data/lib/shoes/download.rb +0 -117
  89. data/lib/shoes/dsl.rb +0 -478
  90. data/lib/shoes/font.rb +0 -49
  91. data/lib/shoes/gradient.rb +0 -18
  92. data/lib/shoes/image.rb +0 -33
  93. data/lib/shoes/image_pattern.rb +0 -10
  94. data/lib/shoes/input_box.rb +0 -68
  95. data/lib/shoes/key_event.rb +0 -17
  96. data/lib/shoes/line.rb +0 -38
  97. data/lib/shoes/link.rb +0 -49
  98. data/lib/shoes/link_hover.rb +0 -5
  99. data/lib/shoes/list_box.rb +0 -44
  100. data/lib/shoes/logger.rb +0 -66
  101. data/lib/shoes/logger/ruby.rb +0 -18
  102. data/lib/shoes/mock.rb +0 -30
  103. data/lib/shoes/mock/animation.rb +0 -8
  104. data/lib/shoes/mock/app.rb +0 -44
  105. data/lib/shoes/mock/arc.rb +0 -8
  106. data/lib/shoes/mock/background.rb +0 -10
  107. data/lib/shoes/mock/border.rb +0 -7
  108. data/lib/shoes/mock/button.rb +0 -10
  109. data/lib/shoes/mock/check.rb +0 -24
  110. data/lib/shoes/mock/common_methods.rb +0 -11
  111. data/lib/shoes/mock/dialog.rb +0 -13
  112. data/lib/shoes/mock/download.rb +0 -18
  113. data/lib/shoes/mock/font.rb +0 -17
  114. data/lib/shoes/mock/image.rb +0 -12
  115. data/lib/shoes/mock/image_pattern.rb +0 -9
  116. data/lib/shoes/mock/input_box.rb +0 -23
  117. data/lib/shoes/mock/keypress.rb +0 -8
  118. data/lib/shoes/mock/keyrelease.rb +0 -8
  119. data/lib/shoes/mock/line.rb +0 -14
  120. data/lib/shoes/mock/link.rb +0 -11
  121. data/lib/shoes/mock/list_box.rb +0 -16
  122. data/lib/shoes/mock/oval.rb +0 -11
  123. data/lib/shoes/mock/progress.rb +0 -10
  124. data/lib/shoes/mock/radio.rb +0 -26
  125. data/lib/shoes/mock/rect.rb +0 -13
  126. data/lib/shoes/mock/shape.rb +0 -19
  127. data/lib/shoes/mock/slot.rb +0 -14
  128. data/lib/shoes/mock/sound.rb +0 -8
  129. data/lib/shoes/mock/star.rb +0 -13
  130. data/lib/shoes/mock/text_block.rb +0 -29
  131. data/lib/shoes/mock/timer.rb +0 -8
  132. data/lib/shoes/oval.rb +0 -28
  133. data/lib/shoes/point.rb +0 -43
  134. data/lib/shoes/progress.rb +0 -26
  135. data/lib/shoes/radio.rb +0 -15
  136. data/lib/shoes/rect.rb +0 -28
  137. data/lib/shoes/renamed_delegate.rb +0 -15
  138. data/lib/shoes/shape.rb +0 -175
  139. data/lib/shoes/slot.rb +0 -232
  140. data/lib/shoes/slot_contents.rb +0 -56
  141. data/lib/shoes/sound.rb +0 -16
  142. data/lib/shoes/span.rb +0 -16
  143. data/lib/shoes/star.rb +0 -49
  144. data/lib/shoes/swt.rb +0 -114
  145. data/lib/shoes/swt/animation.rb +0 -46
  146. data/lib/shoes/swt/app.rb +0 -300
  147. data/lib/shoes/swt/arc.rb +0 -70
  148. data/lib/shoes/swt/background.rb +0 -31
  149. data/lib/shoes/swt/border.rb +0 -37
  150. data/lib/shoes/swt/button.rb +0 -18
  151. data/lib/shoes/swt/check.rb +0 -14
  152. data/lib/shoes/swt/check_button.rb +0 -19
  153. data/lib/shoes/swt/color.rb +0 -45
  154. data/lib/shoes/swt/common/child.rb +0 -16
  155. data/lib/shoes/swt/common/clear.rb +0 -24
  156. data/lib/shoes/swt/common/clickable.rb +0 -62
  157. data/lib/shoes/swt/common/container.rb +0 -28
  158. data/lib/shoes/swt/common/fill.rb +0 -37
  159. data/lib/shoes/swt/common/painter.rb +0 -83
  160. data/lib/shoes/swt/common/painter_updates_position.rb +0 -12
  161. data/lib/shoes/swt/common/resource.rb +0 -14
  162. data/lib/shoes/swt/common/selection_listener.rb +0 -14
  163. data/lib/shoes/swt/common/stroke.rb +0 -41
  164. data/lib/shoes/swt/common/toggle.rb +0 -13
  165. data/lib/shoes/swt/common/update_position.rb +0 -15
  166. data/lib/shoes/swt/dialog.rb +0 -89
  167. data/lib/shoes/swt/disposed_protection.rb +0 -23
  168. data/lib/shoes/swt/download.rb +0 -24
  169. data/lib/shoes/swt/fitted_text_layout.rb +0 -94
  170. data/lib/shoes/swt/fitted_text_layout_collection.rb +0 -108
  171. data/lib/shoes/swt/font.rb +0 -32
  172. data/lib/shoes/swt/gradient.rb +0 -77
  173. data/lib/shoes/swt/image.rb +0 -130
  174. data/lib/shoes/swt/image_pattern.rb +0 -19
  175. data/lib/shoes/swt/input_box.rb +0 -73
  176. data/lib/shoes/swt/key_listener.rb +0 -145
  177. data/lib/shoes/swt/line.rb +0 -57
  178. data/lib/shoes/swt/link.rb +0 -37
  179. data/lib/shoes/swt/link_segment.rb +0 -108
  180. data/lib/shoes/swt/list_box.rb +0 -49
  181. data/lib/shoes/swt/mouse_move_listener.rb +0 -61
  182. data/lib/shoes/swt/oval.rb +0 -53
  183. data/lib/shoes/swt/progress.rb +0 -35
  184. data/lib/shoes/swt/radio.rb +0 -29
  185. data/lib/shoes/swt/radio_group.rb +0 -54
  186. data/lib/shoes/swt/rect.rb +0 -31
  187. data/lib/shoes/swt/rect_painter.rb +0 -23
  188. data/lib/shoes/swt/redrawing_aspect.rb +0 -122
  189. data/lib/shoes/swt/shape.rb +0 -101
  190. data/lib/shoes/swt/shoes_layout.rb +0 -43
  191. data/lib/shoes/swt/slot.rb +0 -25
  192. data/lib/shoes/swt/sound.rb +0 -119
  193. data/lib/shoes/swt/star.rb +0 -51
  194. data/lib/shoes/swt/swt_button.rb +0 -49
  195. data/lib/shoes/swt/text_block.rb +0 -133
  196. data/lib/shoes/swt/text_block_cursor_painter.rb +0 -112
  197. data/lib/shoes/swt/text_block_fitter.rb +0 -180
  198. data/lib/shoes/swt/text_block_painter.rb +0 -49
  199. data/lib/shoes/swt/text_font_factory.rb +0 -27
  200. data/lib/shoes/swt/text_style_factory.rb +0 -88
  201. data/lib/shoes/swt/timer.rb +0 -19
  202. data/lib/shoes/swt/tooling/leak_hunter.rb +0 -84
  203. data/lib/shoes/text.rb +0 -14
  204. data/lib/shoes/text_block.rb +0 -162
  205. data/lib/shoes/timer.rb +0 -10
  206. data/lib/shoes/url.rb +0 -47
  207. data/lib/shoes/widget.rb +0 -73
  208. data/lib/support/jl1.0.1.jar +0 -0
  209. data/lib/support/jogg-0.0.7.jar +0 -0
  210. data/lib/support/jorbis-0.0.15.jar +0 -0
  211. data/lib/support/log4j-1.2.16.jar +0 -0
  212. data/lib/support/mp3spi1.9.5.jar +0 -0
  213. data/lib/support/tritonus_share.jar +0 -0
  214. data/lib/support/vorbisspi1.0.3.jar +0 -0
  215. data/samples/good-clock-adjusted.rb +0 -49
  216. data/spec/async_helper.rb +0 -21
  217. data/spec/code_coverage.rb +0 -11
  218. data/spec/shoes/animation_spec.rb +0 -65
  219. data/spec/shoes/app_spec.rb +0 -411
  220. data/spec/shoes/arc_spec.rb +0 -53
  221. data/spec/shoes/background_spec.rb +0 -48
  222. data/spec/shoes/border_spec.rb +0 -43
  223. data/spec/shoes/builtin_methods_spec.rb +0 -84
  224. data/spec/shoes/button_spec.rb +0 -41
  225. data/spec/shoes/check_spec.rb +0 -31
  226. data/spec/shoes/cli_spec.rb +0 -16
  227. data/spec/shoes/color_spec.rb +0 -396
  228. data/spec/shoes/common/style_normalizer_spec.rb +0 -28
  229. data/spec/shoes/common/style_spec.rb +0 -58
  230. data/spec/shoes/configuration_spec.rb +0 -37
  231. data/spec/shoes/constants_spec.rb +0 -38
  232. data/spec/shoes/dialog_spec.rb +0 -163
  233. data/spec/shoes/dimension_spec.rb +0 -381
  234. data/spec/shoes/dimensions_spec.rb +0 -831
  235. data/spec/shoes/download_spec.rb +0 -133
  236. data/spec/shoes/flow_spec.rb +0 -92
  237. data/spec/shoes/font_spec.rb +0 -38
  238. data/spec/shoes/framework_learning_spec.rb +0 -30
  239. data/spec/shoes/helpers/fake_element.rb +0 -11
  240. data/spec/shoes/helpers/sample17_helper.rb +0 -66
  241. data/spec/shoes/image_spec.rb +0 -45
  242. data/spec/shoes/images/shoe.jpg +0 -0
  243. data/spec/shoes/input_box_spec.rb +0 -44
  244. data/spec/shoes/integration_spec.rb +0 -20
  245. data/spec/shoes/keypress_spec.rb +0 -11
  246. data/spec/shoes/keyrelease_spec.rb +0 -12
  247. data/spec/shoes/line_spec.rb +0 -47
  248. data/spec/shoes/link_spec.rb +0 -89
  249. data/spec/shoes/list_box_spec.rb +0 -63
  250. data/spec/shoes/logger/ruby_spec.rb +0 -9
  251. data/spec/shoes/logger_spec.rb +0 -45
  252. data/spec/shoes/oval_spec.rb +0 -20
  253. data/spec/shoes/point_spec.rb +0 -51
  254. data/spec/shoes/progress_spec.rb +0 -40
  255. data/spec/shoes/radio_spec.rb +0 -28
  256. data/spec/shoes/rect_spec.rb +0 -38
  257. data/spec/shoes/renamed_delegate_spec.rb +0 -70
  258. data/spec/shoes/shape_spec.rb +0 -54
  259. data/spec/shoes/shared_examples/button.rb +0 -6
  260. data/spec/shoes/shared_examples/changeable.rb +0 -26
  261. data/spec/shoes/shared_examples/clickable.rb +0 -5
  262. data/spec/shoes/shared_examples/common_methods.rb +0 -42
  263. data/spec/shoes/shared_examples/dimensions.rb +0 -32
  264. data/spec/shoes/shared_examples/dsl.rb +0 -42
  265. data/spec/shoes/shared_examples/dsl/animate.rb +0 -29
  266. data/spec/shoes/shared_examples/dsl/arc.rb +0 -45
  267. data/spec/shoes/shared_examples/dsl/background.rb +0 -26
  268. data/spec/shoes/shared_examples/dsl/border.rb +0 -10
  269. data/spec/shoes/shared_examples/dsl/cap.rb +0 -6
  270. data/spec/shoes/shared_examples/dsl/check.rb +0 -11
  271. data/spec/shoes/shared_examples/dsl/edit_box.rb +0 -8
  272. data/spec/shoes/shared_examples/dsl/edit_line.rb +0 -8
  273. data/spec/shoes/shared_examples/dsl/editable_element.rb +0 -29
  274. data/spec/shoes/shared_examples/dsl/fill.rb +0 -27
  275. data/spec/shoes/shared_examples/dsl/flow.rb +0 -15
  276. data/spec/shoes/shared_examples/dsl/gradient.rb +0 -52
  277. data/spec/shoes/shared_examples/dsl/image.rb +0 -21
  278. data/spec/shoes/shared_examples/dsl/line.rb +0 -9
  279. data/spec/shoes/shared_examples/dsl/nofill.rb +0 -6
  280. data/spec/shoes/shared_examples/dsl/nostroke.rb +0 -6
  281. data/spec/shoes/shared_examples/dsl/oval.rb +0 -60
  282. data/spec/shoes/shared_examples/dsl/pattern.rb +0 -34
  283. data/spec/shoes/shared_examples/dsl/progress.rb +0 -7
  284. data/spec/shoes/shared_examples/dsl/rect.rb +0 -92
  285. data/spec/shoes/shared_examples/dsl/rgb.rb +0 -26
  286. data/spec/shoes/shared_examples/dsl/shape.rb +0 -21
  287. data/spec/shoes/shared_examples/dsl/star.rb +0 -48
  288. data/spec/shoes/shared_examples/dsl/stroke.rb +0 -30
  289. data/spec/shoes/shared_examples/dsl/strokewidth.rb +0 -19
  290. data/spec/shoes/shared_examples/dsl/style.rb +0 -32
  291. data/spec/shoes/shared_examples/dsl/text_elements.rb +0 -81
  292. data/spec/shoes/shared_examples/dsl_app_context.rb +0 -8
  293. data/spec/shoes/shared_examples/hover_leave.rb +0 -11
  294. data/spec/shoes/shared_examples/parent.rb +0 -6
  295. data/spec/shoes/shared_examples/shared_element_method.rb +0 -52
  296. data/spec/shoes/shared_examples/slot.rb +0 -272
  297. data/spec/shoes/shared_examples/state.rb +0 -19
  298. data/spec/shoes/shared_examples/style.rb +0 -24
  299. data/spec/shoes/slot_spec.rb +0 -60
  300. data/spec/shoes/sound_spec.rb +0 -15
  301. data/spec/shoes/span_spec.rb +0 -94
  302. data/spec/shoes/spec_helper.rb +0 -1
  303. data/spec/shoes/stack_spec.rb +0 -53
  304. data/spec/shoes/star_spec.rb +0 -30
  305. data/spec/shoes/text_block_spec.rb +0 -242
  306. data/spec/shoes/url_spec.rb +0 -66
  307. data/spec/shoes/widget_spec.rb +0 -34
  308. data/spec/shoes_spec.rb +0 -44
  309. data/spec/spec_helper.rb +0 -16
  310. data/spec/swt_shoes/animation_spec.rb +0 -86
  311. data/spec/swt_shoes/app_spec.rb +0 -75
  312. data/spec/swt_shoes/arc_spec.rb +0 -101
  313. data/spec/swt_shoes/background_spec.rb +0 -56
  314. data/spec/swt_shoes/border_spec.rb +0 -51
  315. data/spec/swt_shoes/button_spec.rb +0 -101
  316. data/spec/swt_shoes/check_spec.rb +0 -28
  317. data/spec/swt_shoes/color_spec.rb +0 -67
  318. data/spec/swt_shoes/common/painter_spec.rb +0 -29
  319. data/spec/swt_shoes/configuration_spec.rb +0 -12
  320. data/spec/swt_shoes/dialog_spec.rb +0 -106
  321. data/spec/swt_shoes/disposed_protection_spec.rb +0 -49
  322. data/spec/swt_shoes/fitted_text_layout_collection_spec.rb +0 -174
  323. data/spec/swt_shoes/fitted_text_layout_spec.rb +0 -130
  324. data/spec/swt_shoes/flow_spec.rb +0 -26
  325. data/spec/swt_shoes/font_spec.rb +0 -33
  326. data/spec/swt_shoes/gradient_spec.rb +0 -20
  327. data/spec/swt_shoes/image_pattern_spec.rb +0 -19
  328. data/spec/swt_shoes/image_spec.rb +0 -100
  329. data/spec/swt_shoes/input_box_spec.rb +0 -110
  330. data/spec/swt_shoes/integration_spec.rb +0 -18
  331. data/spec/swt_shoes/key_listener_spec.rb +0 -320
  332. data/spec/swt_shoes/line_spec.rb +0 -43
  333. data/spec/swt_shoes/link_segment_spec.rb +0 -103
  334. data/spec/swt_shoes/link_spec.rb +0 -59
  335. data/spec/swt_shoes/list_box_spec.rb +0 -51
  336. data/spec/swt_shoes/minimal.png +0 -0
  337. data/spec/swt_shoes/mouse_move_listener_spec.rb +0 -129
  338. data/spec/swt_shoes/oval_spec.rb +0 -51
  339. data/spec/swt_shoes/progress_spec.rb +0 -44
  340. data/spec/swt_shoes/radio_group_spec.rb +0 -73
  341. data/spec/swt_shoes/radio_spec.rb +0 -56
  342. data/spec/swt_shoes/rect_painter_spec.rb +0 -45
  343. data/spec/swt_shoes/rect_spec.rb +0 -19
  344. data/spec/swt_shoes/shape_spec.rb +0 -81
  345. data/spec/swt_shoes/shared_examples/button.rb +0 -24
  346. data/spec/swt_shoes/shared_examples/clearable.rb +0 -32
  347. data/spec/swt_shoes/shared_examples/clickable.rb +0 -60
  348. data/spec/swt_shoes/shared_examples/movable.rb +0 -36
  349. data/spec/swt_shoes/shared_examples/paintable_spec.rb +0 -7
  350. data/spec/swt_shoes/shared_examples/painter.rb +0 -83
  351. data/spec/swt_shoes/shared_examples/pattern.rb +0 -32
  352. data/spec/swt_shoes/shared_examples/swt_app_context.rb +0 -17
  353. data/spec/swt_shoes/shared_examples/togglable.rb +0 -15
  354. data/spec/swt_shoes/shell_control_listener_spec.rb +0 -23
  355. data/spec/swt_shoes/sound.rb +0 -10
  356. data/spec/swt_shoes/spec_helper.rb +0 -31
  357. data/spec/swt_shoes/star_spec.rb +0 -47
  358. data/spec/swt_shoes/text_block_cursor_painter_spec.rb +0 -202
  359. data/spec/swt_shoes/text_block_fitter_spec.rb +0 -181
  360. data/spec/swt_shoes/text_block_painter_spec.rb +0 -221
  361. data/spec/swt_shoes/text_block_spec.rb +0 -183
@@ -1,35 +0,0 @@
1
- class Shoes
2
- class Arc
3
- include CommonMethods
4
- include Common::Fill
5
- include Common::Stroke
6
- include Common::Style
7
- include Common::Clickable
8
- include DimensionsDelegations
9
-
10
- attr_reader :app, :angle1, :angle2, :dimensions, :parent
11
-
12
- def initialize(app, parent, left, top, width, height, angle1, angle2, opts = {})
13
- @app = app
14
- @dimensions = Dimensions.new app, left, top, width, height, opts
15
- @angle1, @angle2 = angle1, angle2
16
- @wedge = opts[:wedge] || false
17
- default_style = Common::Fill::DEFAULTS.merge(Common::Stroke::DEFAULTS)
18
- @style = default_style.merge(opts)
19
- @style[:strokewidth] ||= @app.style[:strokewidth] || 1
20
- @parent = parent
21
-
22
- @parent.add_child self
23
-
24
- @gui = Shoes.backend_for(self, opts)
25
-
26
- clickable_options(opts)
27
- end
28
-
29
- # @return [Boolean] if fill should be a wedge shape, rather than a chord
30
- # Defaults to false
31
- def wedge?
32
- @wedge
33
- end
34
- end
35
- end
@@ -1,30 +0,0 @@
1
- class Shoes
2
- class Background
3
- include DimensionsDelegations
4
- include CommonMethods
5
- include Common::BackgroundElement
6
- include Common::Style
7
- include Common::Fill
8
- include Common::Stroke
9
-
10
- attr_reader :app, :gui, :parent, :corners, :angle, :dimensions
11
-
12
- def initialize(app, parent, color, opts = {}, blk = nil)
13
- @app = app
14
- @parent = parent
15
- @dimensions = ParentDimensions.new parent, opts
16
- @corners = opts[:curve] || 0
17
- @angle = opts[:angle] || 0
18
- opts[:fill] = color
19
-
20
- @style = Common::Fill::DEFAULTS.merge(Common::Stroke::DEFAULTS).merge(opts)
21
- parent.add_child self
22
-
23
- @gui = Shoes.backend_for(self, opts, &blk)
24
- end
25
-
26
- def needs_to_be_positioned?
27
- absolutely_positioned?
28
- end
29
- end
30
- end
@@ -1,33 +0,0 @@
1
- class Shoes
2
- class Border
3
- include DimensionsDelegations
4
- include CommonMethods
5
- include Common::BackgroundElement
6
- include Common::Style
7
- include Common::Fill
8
- include Common::Stroke
9
-
10
- attr_reader :app, :gui, :parent, :corners, :angle, :opts, :dimensions
11
-
12
- def initialize(app, parent, color, opts = {}, blk = nil)
13
- @app = app
14
- @parent = parent
15
-
16
- @dimensions = ParentDimensions.new parent, opts
17
- @corners = opts[:curve] || 0
18
- @angle = opts[:angle] || 0
19
-
20
- opts[:stroke] = color
21
- parent.add_child self
22
-
23
- @style = Common::Fill::DEFAULTS.merge(Common::Stroke::DEFAULTS).merge(opts)
24
- @style[:strokewidth] ||= @app.style[:strokewidth] || 1
25
-
26
- @gui = Shoes.backend_for(self, opts, &blk)
27
- end
28
-
29
- def needs_to_be_positioned?
30
- false
31
- end
32
- end
33
- end
@@ -1,73 +0,0 @@
1
- # The methods defined in this module/file are also available outside of the
2
- # Shoes.app block. So they are monkey patched onto the main object.
3
- # However they can also be used from the normal Shoes.app block.
4
- class Shoes
5
- def self.p(message)
6
- Shoes::LOG << ['debug', message.inspect]
7
- end
8
-
9
- module BuiltinMethods
10
- def alert(message = '')
11
- Shoes::Dialog.new.alert message
12
- end
13
-
14
- def confirm(message = '')
15
- Shoes::Dialog.new.confirm(message)
16
- end
17
-
18
- def info(message = '')
19
- Shoes::LOG << ['info', message]
20
- Shoes.logger.info message
21
- end
22
-
23
- def debug(message = '')
24
- Shoes::LOG << ['debug', message]
25
- Shoes.logger.debug message
26
- end
27
-
28
- def warn(message = '')
29
- Shoes::LOG << ['warn', message]
30
- Shoes.logger.warn message
31
- end
32
-
33
- def error(message = '')
34
- Shoes::LOG << ['error', message]
35
- Shoes.logger.error message
36
- end
37
-
38
- alias_method :confirm?, :confirm
39
-
40
- def ask_open_file
41
- Shoes::Dialog.new.dialog_chooser 'Open File...'
42
- end
43
-
44
- def ask_save_file
45
- Shoes::Dialog.new.dialog_chooser 'Save File...'
46
- end
47
-
48
- def ask_open_folder
49
- Shoes::Dialog.new.dialog_chooser 'Open Folder...', :folder
50
- end
51
-
52
- def ask_save_folder
53
- Shoes::Dialog.new.dialog_chooser 'Save Folder...', :folder
54
- end
55
-
56
- def ask msg, args={}
57
- Shoes::Dialog.new.ask msg, args
58
- end
59
-
60
- def ask_color title = 'Pick a color...'
61
- Shoes::Dialog.new.ask_color title
62
- end
63
-
64
- def font(path = DEFAULT_TEXTBLOCK_FONT)
65
- Shoes::Font.add_font(path)
66
- end
67
- end
68
- end
69
-
70
- # including the module into the main object (monkey patch)
71
- class << self
72
- include Shoes::BuiltinMethods
73
- end
@@ -1,32 +0,0 @@
1
- class Shoes
2
- class Button
3
- include Shoes::CommonMethods
4
- include Shoes::Common::Clickable
5
- include Shoes::Common::State
6
- include DimensionsDelegations
7
-
8
- attr_reader :app, :parent, :blk, :gui, :opts, :dimensions
9
- attr_accessor :text
10
-
11
- def initialize(app, parent, text = 'Button', opts = {}, blk = nil)
12
- @app = app
13
- @parent = parent
14
- @text = text
15
- @opts = opts
16
- @blk = blk
17
-
18
- @dimensions = Dimensions.new parent, opts
19
-
20
- @gui = Shoes.configuration.backend_for(self, @parent.gui)
21
-
22
- parent.add_child self
23
-
24
- clickable_options(opts)
25
- state_options(opts)
26
- end
27
-
28
- def focus
29
- @gui.focus
30
- end
31
- end
32
- end
@@ -1,43 +0,0 @@
1
- class Shoes
2
- class CheckButton
3
- include CommonMethods
4
- include Common::Clickable
5
- include Common::State
6
- include DimensionsDelegations
7
-
8
- attr_reader :app, :parent, :blk, :gui, :dimensions
9
-
10
- def initialize(app, parent, opts = {}, blk = nil)
11
- @app = app
12
- @parent = parent
13
- @blk = blk
14
- @dimensions = Dimensions.new parent, opts
15
-
16
- @gui = Shoes.configuration.backend_for(self, @parent.gui)
17
- @parent.add_child self
18
-
19
- clickable_options(opts)
20
- state_options(opts)
21
- end
22
-
23
- def checked?
24
- @gui.checked?
25
- end
26
-
27
- def checked=(value)
28
- @gui.checked = value
29
- end
30
-
31
- def focus
32
- @gui.focus
33
- end
34
-
35
- def click
36
- @blk.call
37
- end
38
- end
39
-
40
- class Check < CheckButton ; end
41
-
42
-
43
- end
@@ -1,375 +0,0 @@
1
- class Shoes
2
- class Color
3
- include Comparable
4
- OPAQUE = 255
5
- TRANSPARENT = 0
6
-
7
- def self.create(color)
8
- color.is_a?(Color) ? color : new(color)
9
- end
10
-
11
- def initialize(*args)#red, green, blue, alpha = OPAQUE)
12
- case args.length
13
- when 1
14
- red, green, blue, alpha = HexConverter.new(args.first).to_rgb
15
- when 3, 4
16
- red, green, blue, alpha = *args
17
- else
18
- message = <<EOS
19
- Wrong number of arguments (#{args.length} for 1, 3, or 4).
20
- Must be one of:
21
- - #{self.class}.new(hex_string)
22
- - #{self.class}.new(red, green, blue)
23
- - #{self.class}.new(red, green, blue, alpha)
24
- EOS
25
- raise ArgumentError, message
26
- end
27
- alpha ||= OPAQUE
28
- @red = normalize_rgb(red)
29
- @green = normalize_rgb(green)
30
- @blue = normalize_rgb(blue)
31
- @alpha = normalize_rgb(alpha)
32
- end
33
-
34
- attr_reader :red, :green, :blue, :alpha
35
-
36
- def light?
37
- @red + @green + @blue > 510 # 0xaa * 3
38
- end
39
-
40
- def dark?
41
- @red + @green + @blue < 255 # 0x55 * 3
42
- end
43
-
44
- def transparent?
45
- @alpha == TRANSPARENT
46
- end
47
-
48
- def opaque?
49
- @alpha == OPAQUE
50
- end
51
-
52
- def white?
53
- @red == 255 && @green == 255 && @blue == 255
54
- end
55
-
56
- def black?
57
- @red == 0 && @green == 0 && @blue == 0
58
- end
59
-
60
- def <=>(other)
61
- raise_class_mismatch_error(other) unless other.is_a?(self.class)
62
- if same_base_color?(other)
63
- @alpha <=> other.alpha
64
- else
65
- less_or_greater_than other
66
- end
67
- end
68
-
69
- # @return [String] a hex represenation of this color
70
- # @example
71
- # Shoes::Color.new(255, 0, 255).hex # => "#ff00ff"
72
- def hex
73
- format "#%02x%02x%02x", @red, @green, @blue
74
- end
75
-
76
- private
77
- def normalize_rgb(value)
78
- rgb = value.is_a?(Fixnum) ? value : (255 * value).round
79
- return 255 if rgb > 255
80
- return 0 if rgb < 0
81
- rgb
82
- end
83
-
84
- def raise_class_mismatch_error other
85
- raise ArgumentError,
86
- "can't compare #{self.class.name} with #{other.class.name}"
87
- end
88
-
89
- def same_base_color? other
90
- @red == other.red && @green == other.green && @blue == other.blue
91
- end
92
-
93
- def less_or_greater_than(other)
94
- own_sum = @red + @green + @blue
95
- other_sum = other.red + other.green + other.blue
96
- if own_sum > other_sum
97
- 1
98
- else
99
- -1
100
- end
101
- end
102
-
103
- class HexConverter
104
- def initialize(hex)
105
- @hex = validate(hex) || raise(ArgumentError, "Bad hex color: #{hex}")
106
- @red, @green, @blue = hex_to_rgb(pad_if_necessary @hex)
107
- end
108
-
109
- def to_rgb
110
- [@red, @green, @blue]
111
- end
112
-
113
- private
114
- def hex_to_rgb(hex)
115
- hex.chars.each_slice(2).map { |a| a.join.to_i(16) }
116
- end
117
-
118
- def pad_if_necessary(hex)
119
- return hex unless hex.length == 3
120
- hex.chars.map { |c| "#{c}#{c}" }.join
121
- end
122
-
123
- # Returns a 3- or 6-char hex string for valid input, or nil
124
- # for invalid input.
125
- def validate(hex)
126
- match = /^#?(([0-9a-f]{3}){1,2})$/i.match(hex)
127
- match && match[1]
128
- end
129
- end
130
-
131
- module DSLHelpers
132
- def pattern(*args)
133
- if args.length == 1
134
- arg = args.first
135
- case arg
136
- when String
137
- image_file?(arg) ? image_pattern(arg) : color(arg)
138
- when Shoes::Color
139
- color arg
140
- when Range, Shoes::Gradient
141
- gradient(arg)
142
- else
143
- raise ArgumentError, "Bad pattern: #{arg.inspect}"
144
- end
145
- else
146
- gradient(*args)
147
- end
148
- end
149
-
150
- def color(arg)
151
- Shoes::Color.create(arg)
152
- end
153
-
154
- def rgb(red, green, blue, alpha = Shoes::Color::OPAQUE)
155
- Shoes::Color.new(red, green, blue, alpha)
156
- end
157
-
158
- # Creates a new Shoes::Gradient
159
- #
160
- # @overload gradient(from, to)
161
- # @param [Shoes::Color] from the starting color
162
- # @param [Shoes::Color] to the ending color
163
- #
164
- # @overload gradient(from, to)
165
- # @param [String] from a hex string representing the starting color
166
- # @param [String] to a hex string representing the ending color
167
- #
168
- # @overload gradient(range)
169
- # @param [Range<Shoes::Color>] range min color to max color
170
- #
171
- # @overload gradient(range)
172
- # @param [Range<String>] range min color to max color
173
- def gradient(*args)
174
- case args.length
175
- when 1
176
- arg = args[0]
177
- case arg
178
- when Gradient
179
- min, max = arg.color1, arg.color2
180
- when Range
181
- min, max = arg.first, arg.last
182
- else
183
- raise ArgumentError, "Can't make gradient out of #{arg.inspect}"
184
- end
185
- when 2
186
- min, max = args[0], args[1]
187
- else
188
- raise ArgumentError, "Wrong number of arguments (#{args.length} for 1 or 2)"
189
- end
190
- Shoes::Gradient.new(color(min), color(max))
191
- end
192
-
193
- def image_file?(arg)
194
- arg =~ /\.gif|jpg|jpeg|png$/
195
- end
196
-
197
- def image_pattern(path)
198
- Shoes::ImagePattern.new path if File.exist?(path)
199
- end
200
- end
201
-
202
- end
203
-
204
- # Create all of the built-in Shoes colors
205
- COLORS = {}
206
-
207
- module DSL
208
- colors = [
209
- [:aliceblue, 240, 248, 255],
210
- [:antiquewhite, 250, 235, 215],
211
- [:aqua, 0, 255, 255],
212
- [:aquamarine, 127, 255, 212],
213
- [:azure, 240, 255, 255],
214
- [:beige, 245, 245, 220],
215
- [:bisque, 255, 228, 196],
216
- [:black, 0, 0, 0],
217
- [:blanchedalmond, 255, 235, 205],
218
- [:blue, 0, 0, 255],
219
- [:blueviolet, 138, 43, 226],
220
- [:brown, 165, 42, 42],
221
- [:burlywood, 222, 184, 135],
222
- [:cadetblue, 95, 158, 160],
223
- [:chartreuse, 127, 255, 0],
224
- [:chocolate, 210, 105, 30],
225
- [:coral, 255, 127, 80],
226
- [:cornflowerblue, 100, 149, 237],
227
- [:cornsilk, 255, 248, 220],
228
- [:crimson, 220, 20, 60],
229
- [:cyan, 0, 255, 255],
230
- [:darkblue, 0, 0, 139],
231
- [:darkcyan, 0, 139, 139],
232
- [:darkgoldenrod, 184, 134, 11],
233
- [:darkgray, 169, 169, 169],
234
- [:darkgrey, 169, 169, 169],
235
- [:darkgreen, 0, 100, 0],
236
- [:darkkhaki, 189, 183, 107],
237
- [:darkmagenta, 139, 0, 139],
238
- [:darkolivegreen, 85, 107, 47],
239
- [:darkorange, 255, 140, 0],
240
- [:darkorchid, 153, 50, 204],
241
- [:darkred, 139, 0, 0],
242
- [:darksalmon, 233, 150, 122],
243
- [:darkseagreen, 143, 188, 143],
244
- [:darkslateblue, 72, 61, 139],
245
- [:darkslategray, 47, 79, 79],
246
- [:darkslategrey, 47, 79, 79],
247
- [:darkturquoise, 0, 206, 209],
248
- [:darkviolet, 148, 0, 211],
249
- [:deeppink, 255, 20, 147],
250
- [:deepskyblue, 0, 191, 255],
251
- [:dimgray, 105, 105, 105],
252
- [:dimgrey, 105, 105, 105],
253
- [:dodgerblue, 30, 144, 255],
254
- [:firebrick, 178, 34, 34],
255
- [:floralwhite, 255, 250, 240],
256
- [:forestgreen, 34, 139, 34],
257
- [:fuchsia, 255, 0, 255],
258
- [:gainsboro, 220, 220, 220],
259
- [:ghostwhite, 248, 248, 255],
260
- [:gold, 255, 215, 0],
261
- [:goldenrod, 218, 165, 32],
262
- [:gray, 128, 128, 128],
263
- [:grey, 128, 128, 128],
264
- [:green, 0, 128, 0],
265
- [:greenyellow, 173, 255, 47],
266
- [:honeydew, 240, 255, 240],
267
- [:hotpink, 255, 105, 180],
268
- [:indianred, 205, 92, 92],
269
- [:indigo, 75, 0, 130],
270
- [:ivory, 255, 255, 240],
271
- [:khaki, 240, 230, 140],
272
- [:lavender, 230, 230, 250],
273
- [:lavenderblush, 255, 240, 245],
274
- [:lawngreen, 124, 252, 0],
275
- [:lemonchiffon, 255, 250, 205],
276
- [:lightblue, 173, 216, 230],
277
- [:lightcoral, 240, 128, 128],
278
- [:lightcyan, 224, 255, 255],
279
- [:lightgoldenrodyellow, 250, 250, 210],
280
- [:lightgreen, 144, 238, 144],
281
- [:lightgray, 211, 211, 211],
282
- [:lightgrey, 211, 211, 211],
283
- [:lightpink, 255, 182, 193],
284
- [:lightsalmon, 255, 160, 122],
285
- [:lightseagreen, 32, 178, 170],
286
- [:lightskyblue, 135, 206, 250],
287
- [:lightslategray, 119, 136, 153],
288
- [:lightslategrey, 119, 136, 153],
289
- [:lightsteelblue, 176, 196, 222],
290
- [:lightyellow, 255, 255, 224],
291
- [:lime, 0, 255, 0],
292
- [:limegreen, 50, 205, 50],
293
- [:linen, 250, 240, 230],
294
- [:magenta, 255, 0, 255],
295
- [:maroon, 128, 0, 0],
296
- [:mediumaquamarine, 102, 205, 170],
297
- [:mediumblue, 0, 0, 205],
298
- [:mediumorchid, 186, 85, 211],
299
- [:mediumpurple, 147, 112, 219],
300
- [:mediumseagreen, 60, 179, 113],
301
- [:mediumslateblue, 123, 104, 238],
302
- [:mediumspringgreen, 0, 250, 154],
303
- [:mediumturquoise, 72, 209, 204],
304
- [:mediumvioletred, 199, 21, 133],
305
- [:midnightblue, 25, 25, 112],
306
- [:mintcream, 245, 255, 250],
307
- [:mistyrose, 255, 228, 225],
308
- [:moccasin, 255, 228, 181],
309
- [:navajowhite, 255, 222, 173],
310
- [:navy, 0, 0, 128],
311
- [:oldlace, 253, 245, 230],
312
- [:olive, 128, 128, 0],
313
- [:olivedrab, 107, 142, 35],
314
- [:orange, 255, 165, 0],
315
- [:orangered, 255, 69, 0],
316
- [:orchid, 218, 112, 214],
317
- [:palegoldenrod, 238, 232, 170],
318
- [:palegreen, 152, 251, 152],
319
- [:paleturquoise, 175, 238, 238],
320
- [:palevioletred, 219, 112, 147],
321
- [:papayawhip, 255, 239, 213],
322
- [:peachpuff, 255, 218, 185],
323
- [:peru, 205, 133, 63],
324
- [:pink, 255, 192, 203],
325
- [:plum, 221, 160, 221],
326
- [:powderblue, 176, 224, 230],
327
- [:purple, 128, 0, 128],
328
- [:red, 255, 0, 0],
329
- [:rosybrown, 188, 143, 143],
330
- [:royalblue, 65, 105, 225],
331
- [:saddlebrown, 139, 69, 19],
332
- [:salmon, 250, 128, 114],
333
- [:sandybrown, 244, 164, 96],
334
- [:seagreen, 46, 139, 87],
335
- [:seashell, 255, 245, 238],
336
- [:sienna, 160, 82, 45],
337
- [:silver, 192, 192, 192],
338
- [:skyblue, 135, 206, 235],
339
- [:slateblue, 106, 90, 205],
340
- [:slategray, 112, 128, 144],
341
- [:slategrey, 112, 128, 144],
342
- [:snow, 255, 250, 250],
343
- [:springgreen, 0, 255, 127],
344
- [:steelblue, 70, 130, 180],
345
- [:tan, 210, 180, 140],
346
- [:teal, 0, 128, 128],
347
- [:thistle, 216, 191, 216],
348
- [:tomato, 255, 99, 71],
349
- [:turquoise, 64, 224, 208],
350
- [:violet, 238, 130, 238],
351
- [:wheat, 245, 222, 179],
352
- [:white, 255, 255, 255],
353
- [:whitesmoke, 245, 245, 245],
354
- [:yellow, 255, 255, 0],
355
- [:yellowgreen, 154, 205, 50],
356
- [:shoes_background, 237, 237, 237],
357
- ]
358
-
359
- colors.each do |color_name, r, g, b|
360
- Shoes::COLORS[color_name] = Shoes::Color.new(r, g, b)
361
- define_method(color_name) do |alpha = Shoes::Color::OPAQUE|
362
- color = Shoes::COLORS.fetch(color_name)
363
- return color if alpha == Shoes::Color::OPAQUE
364
- Shoes::Color.new(color.red, color.green, color.blue, alpha)
365
- end
366
- end
367
-
368
- def gray(level = 128, alpha = Shoes::Color::OPAQUE)
369
- Shoes::Color.new(level, level, level, alpha)
370
- end
371
-
372
- alias_method :grey, :gray
373
-
374
- end
375
- end