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,9 +0,0 @@
1
- class Shoes
2
- module Common
3
- module BackgroundElement
4
- def takes_up_space?
5
- false
6
- end
7
- end
8
- end
9
- end
@@ -1,34 +0,0 @@
1
- class Shoes
2
- module Common
3
- # Changeable elements are elements that receive `change' events.
4
- # These are ListBox, EditBox and EditLine. To have your code respond
5
- # to these events, either pass a block in when creating the element,
6
- # or call #change on the element with a block.
7
- module Changeable
8
- # Add an extra change event listener block
9
- #
10
- # @yield The block to execute on a change event
11
- def change(&blk)
12
- add_change_listener(blk)
13
- end
14
-
15
- # The GUI backend needs to call this when an actual change happens in
16
- # the backend.
17
- def call_change_listeners
18
- change_listeners.each do |listener|
19
- listener.call(self)
20
- end
21
- end
22
-
23
- private
24
-
25
- def change_listeners
26
- @change_listeners ||= []
27
- end
28
-
29
- def add_change_listener(callable)
30
- change_listeners << callable
31
- end
32
- end
33
- end
34
- end
@@ -1,17 +0,0 @@
1
- class Shoes
2
- module Common
3
- module Clickable
4
- def click(&blk)
5
- @gui.click &blk
6
- end
7
-
8
- def release(&blk)
9
- @gui.release &blk
10
- end
11
-
12
- def clickable_options(opts)
13
- click(&opts[:click]) if opts[:click]
14
- end
15
- end
16
- end
17
- end
@@ -1,70 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- class Shoes
3
- # Methods common to Shoes gui elements.
4
- #
5
- # Classes that include this module must expose:
6
- #
7
- # gui_container - the "real" framework implementation object
8
- module CommonMethods
9
-
10
- # Hides the element, so that it can't be seen. See also #show and #toggle.
11
- def hide
12
- @hidden = false
13
- toggle
14
- end
15
-
16
- def hidden?
17
- @hidden
18
- end
19
-
20
- alias_method :hidden, :hidden?
21
-
22
- def visible?
23
- !hidden?
24
- end
25
-
26
- # Reveals the element, if it is hidden. See also #hide and #toggle.
27
- def show
28
- @hidden = true
29
- toggle
30
- end
31
-
32
- # Hides an element if it is shown. Or shows the element, if it is hidden.
33
- # See also #hide and #show.
34
- def toggle
35
- @hidden = !@hidden
36
- @gui.toggle
37
- self
38
- end
39
-
40
- # Moves an element to a specific pixel position. The element is still in the slot,
41
- # but will no longer be stacked or flowed with the other stuff in the slot.
42
- def move(left, top)
43
- self.left = left
44
- self.top = top
45
- self
46
- end
47
-
48
- # NOT part of the public interface e.g. no Shoes APP should use this
49
- # however we need it from the Slot code to position elements
50
- def _position left, top
51
- self.absolute_left = left
52
- self.absolute_top = top
53
- @gui.update_position if @gui && @gui.respond_to?(:update_position)
54
- end
55
-
56
- def remove
57
- @parent.contents.delete self if @parent
58
- @gui.clear if @gui
59
- end
60
-
61
- # displace(left: a number, top: a number) » self
62
- # Displacing an element moves it. But without changing the layout around it.
63
- def displace(left, top)
64
- self.displace_left = left
65
- self.displace_top = top
66
- gui.update_position
67
- self
68
- end
69
- end
70
- end
@@ -1,21 +0,0 @@
1
- class Shoes
2
- module Common
3
- # Methods for objects with fill
4
- #
5
- # @note Including classes must provide `#style`
6
- module Fill
7
- DEFAULTS = {
8
- :fill => Shoes::COLORS[:black]
9
- }
10
-
11
- def fill
12
- style[:fill]
13
- end
14
-
15
- def fill=(color)
16
- style[:fill] = color
17
- end
18
- end
19
- end
20
- end
21
-
@@ -1,33 +0,0 @@
1
- class Shoes
2
- module Common
3
- module Registration
4
- def apps
5
- @apps ||= []
6
- @apps.dup
7
- end
8
-
9
- def register(app)
10
- register_main_app app
11
- apps && @apps << app
12
- end
13
-
14
- def unregister(app)
15
- apps && @apps.delete(app)
16
- end
17
-
18
- def unregister_all
19
- @main_app = nil
20
- @apps = []
21
- end
22
-
23
- def main_app
24
- @main_app
25
- end
26
-
27
- # Registers the first app as the main app
28
- def register_main_app(app)
29
- @main_app ||= app
30
- end
31
- end
32
- end
33
- end
@@ -1,18 +0,0 @@
1
- class Shoes
2
- module Common
3
- module State
4
- def state
5
- @state
6
- end
7
-
8
- def state=(value)
9
- @state = value
10
- @gui.enabled value.nil?
11
- end
12
-
13
- def state_options(opts)
14
- self.state = opts[:state]
15
- end
16
- end
17
- end
18
- end
@@ -1,28 +0,0 @@
1
- class Shoes
2
- module Common
3
- # Methods for objects with stroke
4
- #
5
- # @note Including classes must provide `#style`
6
- module Stroke
7
- DEFAULTS = {
8
- :stroke => Shoes::COLORS[:black]
9
- }
10
-
11
- def stroke
12
- style[:stroke]
13
- end
14
-
15
- def stroke=(color)
16
- style[:stroke] = color
17
- end
18
-
19
- def strokewidth
20
- style[:strokewidth]
21
- end
22
-
23
- def strokewidth=(width)
24
- style[:strokewidth] = width
25
- end
26
- end
27
- end
28
- end
@@ -1,34 +0,0 @@
1
- class Shoes
2
- module Common
3
- # Style methods.
4
- #
5
- # Including classes must have instance variable `@style`
6
- module Style
7
- # Adds style, or just returns current style if no argument
8
- #
9
- # Returns the updated style
10
- def style(new_styles = nil)
11
- update_style(new_styles) if need_to_update_style?(new_styles)
12
- @style
13
- end
14
-
15
- private
16
- def update_style(new_styles)
17
- normalized_style = StyleNormalizer.new.normalize new_styles
18
- @style.merge! normalized_style
19
- end
20
-
21
- def need_to_update_style?(new_styles)
22
- new_styles && style_changed?(new_styles)
23
- end
24
-
25
- # check necessary because update_style trigger a redraw in the redrawing
26
- # aspect and we want to avoid unnecessary redraws
27
- def style_changed?(new_styles)
28
- new_styles.each_pair.any? do |key, value|
29
- @style[key] != value
30
- end
31
- end
32
- end
33
- end
34
- end
@@ -1,16 +0,0 @@
1
- class Shoes
2
- module Common
3
- class StyleNormalizer
4
- include Color::DSLHelpers
5
- def normalize(orig_style)
6
- normalized_style = {}
7
- [:fill, :stroke].each do |s|
8
- if orig_style[s]
9
- normalized_style[s] = pattern(orig_style[s])
10
- end
11
- end
12
- orig_style.merge(normalized_style)
13
- end
14
- end
15
- end
16
- end
@@ -1,96 +0,0 @@
1
- class Shoes
2
- class Configuration
3
- class << self
4
- def reset
5
- @logger = nil
6
- @logger_instance = nil
7
- end
8
-
9
- def backend
10
- @backend ||= Shoes.load_backend(backend_name)
11
- end
12
-
13
- def backend_name
14
- @backend_name ||= ENV.fetch('SHOES_BACKEND', default_backend).to_sym
15
- end
16
-
17
- def default_backend
18
- if caller.any? {|path| path =~ /rspec/}
19
- :mock
20
- else
21
- :swt
22
- end
23
- end
24
-
25
- # The Shoes backend to use. Can only be set once.
26
- #
27
- # @param [Symbol] backend The backend's name
28
- # @return [Module] The backend's root module
29
- # @example
30
- # Shoes::Configuration.backend = :swt # => Shoes::Swt
31
- def backend=(name)
32
- unless @backend.nil?
33
- raise "Can't switch backend to Shoes::#{name.capitalize}, Shoes::#{backend_name.capitalize} backend already loaded."
34
- end
35
- @backend_name ||= name
36
- end
37
-
38
- # Finds the appropriate backend class for the given Shoes object
39
- #
40
- # @param [Object] shoes_object A Shoes object
41
- # @return [Object] An appropriate backend class
42
- # @example
43
- # Shoes.configuration.backend_class(shoes_button) # => Shoes::Swt::Button
44
- def backend_class(shoes_object)
45
- class_name = shoes_object.class.name.split("::").last
46
- raise ArgumentError, "#{shoes_object} does not have a backend class defined for #{backend}" unless self.backend.const_defined?(class_name)
47
- self.backend.const_get(class_name)
48
- end
49
-
50
- # Creates an appropriate backend object, passing along additional arguments
51
- #
52
- # @param [Object] shoes_object A Shoes object
53
- # @return [Object] An appropriate backend object
54
- # @example
55
- # Shoes.configuration.backend_for(button, args) # => <Shoes::Swt::Button:0x12345678>
56
- def backend_for(shoes_object, *args)
57
- backend_factory(shoes_object).call(shoes_object, *args)
58
- end
59
-
60
- # Experimental replacement for #backend_for
61
- def backend_with_app_for(shoes_object, *args, &blk)
62
- backend_factory(shoes_object).call(shoes_object, shoes_object.app.gui, *args, &blk)
63
- end
64
-
65
- def backend_factory(shoes_object)
66
- klass = backend_class(shoes_object)
67
- klass.respond_to?(:create) ? klass.method(:create) : klass.method(:new)
68
- end
69
-
70
- def logger=(value)
71
- @logger = value
72
- @logger_instance = nil
73
- end
74
-
75
- def logger
76
- @logger ||= :ruby
77
- end
78
-
79
- def logger_instance
80
- @logger_instance ||= Shoes::Logger.get(self.logger).new
81
- end
82
- end
83
- end
84
- end
85
-
86
- def Shoes.configuration
87
- Shoes::Configuration
88
- end
89
-
90
- def Shoes.backend_for(shoes_object, *args, &blk)
91
- Shoes::Configuration.backend_with_app_for(shoes_object, *args, &blk)
92
- end
93
-
94
- def Shoes.backend
95
- Shoes.configuration.backend
96
- end
@@ -1,27 +0,0 @@
1
- class Shoes
2
- class Dialog
3
- def initialize
4
- @gui = Shoes.backend::Dialog.new
5
- end
6
-
7
- def alert(msg = '')
8
- @gui.alert msg
9
- end
10
-
11
- def confirm(msg = '')
12
- @gui.confirm msg
13
- end
14
-
15
- def dialog_chooser title, folder=false
16
- @gui.dialog_chooser title, folder
17
- end
18
-
19
- def ask msg, args
20
- @gui.ask msg, args
21
- end
22
-
23
- def ask_color title
24
- @gui.ask_color title
25
- end
26
- end
27
- end
@@ -1,237 +0,0 @@
1
- class Shoes
2
- class Dimension
3
- attr_reader :parent
4
- attr_accessor :absolute_start
5
- protected :parent # we shall not mess with parent,see #495
6
-
7
- # in case you wonder about the -1... it is used to adjust the right and
8
- # bottom values. Because right is not left + width but rather left + width -1
9
- # Let me give you an example:
10
- # Say left is 20 and we have a width of 100 then the right must be 119,
11
- # because you have to take pixel number 20 into account so 20..119 is 100
12
- # while 20..120 is 101. E.g.:
13
- # (20..119).size => 100
14
- PIXEL_COUNTING_ADJUSTMENT = -1
15
-
16
- def initialize(parent = nil, start_as_center = false)
17
- @parent = parent
18
- @start_as_center = start_as_center
19
- end
20
-
21
- def start
22
- value = basic_start_value
23
- value = adjust_start_for_center(value) if start_as_center?
24
- value
25
- end
26
-
27
- def end
28
- @end || report_relative_to_parent_end
29
- end
30
-
31
- def extent
32
- result = @extent
33
- if @parent
34
- result = calculate_relative(result) if is_relative?(result)
35
- result = calculate_negative(result) if is_negative?(result)
36
- end
37
- result
38
- end
39
-
40
- def extent=(value)
41
- @extent = value
42
- @extent = parse_from_string @extent if is_string? @extent
43
- @extent
44
- end
45
-
46
- def absolute_end
47
- return absolute_start if extent.nil?
48
- absolute_start + extent + PIXEL_COUNTING_ADJUSTMENT
49
- end
50
-
51
- def element_extent
52
- my_extent = extent
53
- if my_extent.nil?
54
- nil
55
- else
56
- extent - (margin_start + margin_end)
57
- end
58
- end
59
-
60
- def element_extent=(value)
61
- self.extent = if value.nil?
62
- nil
63
- else
64
- margin_start + value + margin_end
65
- end
66
- end
67
-
68
- def element_start
69
- return nil if absolute_start.nil?
70
- absolute_start + margin_start + displace_start
71
- end
72
-
73
- def element_end
74
- return nil if element_start.nil? || element_extent.nil?
75
- element_start + element_extent + PIXEL_COUNTING_ADJUSTMENT
76
- end
77
-
78
- def absolute_start_position?
79
- not @start.nil?
80
- end
81
-
82
- def absolute_end_position?
83
- not @end.nil?
84
- end
85
-
86
- def absolute_position?
87
- absolute_start_position? || absolute_end_position?
88
- end
89
-
90
- def positioned?
91
- absolute_start
92
- end
93
-
94
- def in_bounds?(value)
95
- (absolute_start <= value) && (value <= absolute_end)
96
- end
97
-
98
- # For... reasons it is important to have the value of the instance variable
99
- # set to nil if it's not modified and then return a default value on the
100
- # getter... reason being that for ParentDimensions we need to be able to
101
- # figure out if a value has been modified or if we should consulte the
102
- # parent value - see ParentDimension implementation
103
- [:margin_start, :margin_end, :displace_start].each do |method|
104
- define_method method do
105
- instance_variable_name = '@' + method.to_s
106
- instance_variable_get(instance_variable_name) || 0
107
- end
108
- end
109
-
110
- def self.define_int_parsing_writer(name)
111
- define_method "#{name}=" do |value|
112
- instance_variable_set("@#{name}", parse_int_value(value))
113
- end
114
- end
115
-
116
- %w(start end margin_start margin_end displace_start).each do |method|
117
- define_int_parsing_writer method
118
- end
119
-
120
- private
121
- def basic_start_value
122
- value = @start
123
- value = calculate_relative value if is_relative?(value)
124
- value = report_relative_to_parent_start if value.nil?
125
- value
126
- end
127
-
128
- def is_relative?(result)
129
- # as the value is relative to the parent values bigger than one don't
130
- # make much sense and are problematic. E.g. through calculations users
131
- # might end up with values like 5.14 meaning 5 pixel which would get
132
- # interpreted as 514% of the parent
133
- # Also check for existance of parent because otherwise relative
134
- # calculation makes no sense
135
- result.is_a?(Float) && result <= 1 && @parent
136
- end
137
-
138
- def calculate_relative(result)
139
- (result * @parent.element_extent).to_i
140
- end
141
-
142
- def is_string?(result)
143
- result.is_a?(String)
144
- end
145
-
146
- def is_negative?(result)
147
- result && result < 0
148
- end
149
-
150
- def calculate_negative(result)
151
- @parent.element_extent + result
152
- end
153
-
154
- PERCENT_REGEX = /(-?\d+(\.\d+)*)%/
155
-
156
- def parse_from_string(result)
157
- match = result.gsub(/\s+/, "").match(PERCENT_REGEX)
158
- if match
159
- match[1].to_f / 100.0
160
- elsif valid_integer_string?(result)
161
- int_from_string(result)
162
- else
163
- nil
164
- end
165
- end
166
-
167
- def parse_int_value(input)
168
- if input.is_a?(Integer) || input.is_a?(Float)
169
- input
170
- elsif valid_integer_string?(input)
171
- int_from_string(input)
172
- else
173
- nil
174
- end
175
- end
176
-
177
- def int_from_string(result)
178
- (result.gsub(' ', '')).to_i
179
- end
180
-
181
- NUMBER_REGEX = /^-?\s*\d+/
182
-
183
- def valid_integer_string?(input)
184
- input.is_a?(String) && input.match(NUMBER_REGEX)
185
- end
186
-
187
- def report_relative_to_parent_start
188
- if element_start && parent.element_start
189
- element_start - parent.element_start
190
- else
191
- nil
192
- end
193
- end
194
-
195
- def report_relative_to_parent_end
196
- if element_end && parent.element_end
197
- parent.element_end - element_end
198
- else
199
- nil
200
- end
201
- end
202
-
203
- def start_as_center?
204
- @start_as_center
205
- end
206
-
207
- def adjust_start_for_center(value)
208
- my_extent = extent
209
- if my_extent && my_extent > 0
210
- value - my_extent / 2
211
- else
212
- nil
213
- end
214
- end
215
- end
216
-
217
- class ParentDimension < Dimension
218
- SIMPLE_DELEGATE_METHODS = [:extent, :absolute_start, :margin_start,
219
- :margin_end, :start]
220
-
221
- SIMPLE_DELEGATE_METHODS.each do |method|
222
- define_method method do
223
- if value_modified? method
224
- super
225
- else
226
- parent.public_send(method)
227
- end
228
- end
229
- end
230
-
231
- private
232
- def value_modified?(method)
233
- instance_variable = ('@' + method.to_s).to_sym
234
- instance_variable_get(instance_variable)
235
- end
236
- end
237
- end