shoes 4.0.0.pre1 → 4.0.0.pre2

Sign up to get free protection for your applications and to get access to all the features.
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