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,12 +0,0 @@
1
- class Shoes
2
- module Swt
3
- module Common
4
- module PainterUpdatesPosition
5
- # No-op. This object manages its own position with its own painter. The
6
- # painter is triggered automatically in the event loop.
7
- def update_position
8
- end
9
- end
10
- end
11
- end
12
- end
@@ -1,14 +0,0 @@
1
- class Shoes
2
- module Swt
3
- module Common
4
- module Resource
5
- def gcs_reset gc
6
- @gcs ||= []
7
- @gcs.each{|g| g.dispose if g}
8
- @gcs.clear
9
- @gcs << gc
10
- end
11
- end
12
- end
13
- end
14
- end
@@ -1,14 +0,0 @@
1
- class Shoes
2
- module Swt
3
- class SelectionListener
4
-
5
- def initialize radio, &blk
6
- @radio = radio
7
- @blk = blk
8
- end
9
- def widget_selected event
10
- @blk.call @radio, event
11
- end
12
- end
13
- end
14
- end
@@ -1,41 +0,0 @@
1
- class Shoes
2
- module Swt
3
- module Common
4
- # Methods for retrieving stroke values from a Shoes DSL class
5
- #
6
- # @note Including classes must provide `#dsl`
7
- module Stroke
8
- # This object's stroke color
9
- #
10
- # @return [Swt::Graphics::Color] The Swt representation of this object's stroke color
11
- def stroke
12
- dsl.stroke ? ::Shoes.configuration.backend_for(dsl.stroke) : nil
13
- end
14
-
15
- # This object's stroke alpha value
16
- #
17
- # @return [Integer] The alpha value of this object's stroke color (0-255)
18
- def stroke_alpha
19
- dsl.stroke.alpha if dsl.stroke
20
- end
21
-
22
- # This object's strokewidth
23
- #
24
- # @return [Integer] This object's strokewidth
25
- def strokewidth
26
- dsl.strokewidth
27
- end
28
-
29
-
30
- def apply_stroke(context)
31
- if stroke
32
- l, t = self.is_a?(Star) ? [element_left - element_width/2.0, element_top - element_height/2.0] : [element_left, element_top]
33
- stroke.apply_as_stroke(context, l, t, element_width, element_height, angle)
34
- context.set_line_width strokewidth
35
- true
36
- end
37
- end
38
- end
39
- end
40
- end
41
- end
@@ -1,13 +0,0 @@
1
- class Shoes
2
- module Swt
3
- module Common
4
- module Toggle
5
- def toggle
6
- if @real && @real.respond_to?(:set_visible)
7
- @real.set_visible(@dsl.visible?)
8
- end
9
- end
10
- end
11
- end
12
- end
13
- end
@@ -1,15 +0,0 @@
1
- class Shoes
2
- module Swt
3
- module Common
4
- module UpdatePosition
5
- # Updates the position of this object. This object does not have its
6
- # own painter, so we need to update the position manually.
7
- def update_position
8
- unless @real.disposed?
9
- @real.set_location dsl.element_left, dsl.element_top
10
- end
11
- end
12
- end
13
- end
14
- end
15
- end
@@ -1,89 +0,0 @@
1
- class Shoes
2
- module Swt
3
- class Dialog
4
- SWT = ::Swt::SWT
5
- ALERT_STYLE = SWT::OK | SWT::ICON_INFORMATION
6
- CONFIRM_STYLE = SWT::YES | SWT::NO | SWT::ICON_QUESTION
7
-
8
- def alert(msg = '')
9
- open_message_box ALERT_STYLE, msg
10
- nil
11
- end
12
-
13
- def confirm(msg = '')
14
- answer_id = open_message_box CONFIRM_STYLE, msg
15
- confirmed? answer_id
16
- end
17
-
18
- def dialog_chooser title, folder=false
19
- style = ::Swt::SWT::OPEN
20
- shell = ::Swt::Widgets::Shell.new Shoes.display
21
- fd = folder ? ::Swt::Widgets::DirectoryDialog.new(shell, style) : ::Swt::Widgets::FileDialog.new(shell, style)
22
- fd.setText title
23
- fd.open
24
- end
25
-
26
- def ask msg, args
27
- Swt::AskDialog.new(::Swt::Widgets::Shell.new, msg, args).open
28
- end
29
-
30
- def ask_color title
31
- shell = ::Swt::Widgets::Shell.new Shoes.display
32
- cd = ::Swt::Widgets::ColorDialog.new shell
33
- cd.setText title
34
- color = cd.open
35
- color ? ::Shoes::Color.new(color.red, color.green, color.blue, ::Shoes::Color::OPAQUE) : ::Shoes::Color.new(0, 0, 0, ::Shoes::Color::OPAQUE)
36
- end
37
-
38
- private
39
- def open_message_box(style, msg)
40
- shell = ::Swt::Widgets::Shell.new ::Swt.display
41
- @message_box = ::Swt::Widgets::MessageBox.new shell, style
42
- @message_box.message = msg.to_s
43
- @message_box.open
44
- end
45
-
46
- def confirmed?(answer_id)
47
- answer_id == SWT::YES
48
- end
49
- end
50
-
51
- class AskDialog < ::Swt::Widgets::Dialog
52
- def initialize shell, msg, args
53
- @shell, @msg, @args= shell, msg, args
54
- super shell
55
- end
56
-
57
- def open
58
- display = getParent.getDisplay
59
- icon = ::Swt::Graphics::Image.new display, File.join(::Shoes::DIR, 'static/shoes-icon.png')
60
- @shell.setImage icon
61
- @shell.setSize 300, 125
62
- @shell.setText 'Shoes 4 asks:'
63
- label = ::Swt::Widgets::Label.new @shell, ::Swt::SWT::NONE
64
- label.setText @msg
65
- label.setLocation 10, 10
66
- label.pack
67
- styles = @args[:secret] ? ::Swt::SWT::BORDER | ::Swt::SWT::SINGLE | ::Swt::SWT::PASSWORD : ::Swt::SWT::BORDER | ::Swt::SWT::SINGLE
68
- text = ::Swt::Widgets::Text.new @shell, styles
69
- text.setLocation 10, 30
70
- text.setSize 270, 20
71
- b = ::Swt::Widgets::Button.new @shell, ::Swt::SWT::NULL
72
- b.setText 'OK'
73
- b.setLocation 180, 55
74
- b.pack
75
- b.addSelectionListener{|e| @ret = text.getText; @shell.close}
76
- b = ::Swt::Widgets::Button.new @shell, ::Swt::SWT::NULL
77
- b.setText 'CANCEL'
78
- b.setLocation 222, 55
79
- b.pack
80
- b.addSelectionListener{|e| @ret = nil; @shell.close}
81
- @shell.open
82
- while !@shell.isDisposed do
83
- display.sleep unless display.readAndDispatch
84
- end
85
- @ret
86
- end
87
- end
88
- end
89
- end
@@ -1,23 +0,0 @@
1
- class Shoes
2
- module Swt
3
- module DisposedProtection
4
- def real
5
- return NullObject.new(@real) if @real.disposed?
6
- @real
7
- end
8
-
9
- class NullObject < BasicObject
10
- def initialize(real)
11
- @real = real
12
- end
13
-
14
- def respond_to?(method)
15
- @real.respond_to? method
16
- end
17
-
18
- def method_missing(method, *args)
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,24 +0,0 @@
1
- class Shoes
2
- module Swt
3
- class Download
4
-
5
- attr_accessor :busy
6
- def initialize(_dsl)
7
- @busy = false
8
- end
9
-
10
- # This exists to guarantee the callback block for download completion
11
- # executes on the main UI thread. Without it we get thread access errors.
12
- def eval_block(blk, result)
13
- ::Swt.display.asyncExec do
14
- blk.call result
15
- @busy = false
16
- end
17
- end
18
-
19
- def busy?
20
- @busy
21
- end
22
- end
23
- end
24
- end
@@ -1,94 +0,0 @@
1
- class Shoes
2
- module Swt
3
- # Resources created here need to be disposed (see #dispose). Note that this
4
- # applies to ::Swt::Font and ::Swt::TextLayout. ::Swt::TextStyle does not
5
- # need to be disposed, because it is not backed by system resources.
6
- #
7
- # The instance factories and our own instances will track these resources
8
- # and ensure that they get properly disposed when TextBlock or
9
- # TextBlockFitter tell us we're done.
10
- #
11
- # These are only expected to be called when we're doing #contents_alignment
12
- class FittedTextLayout
13
- DEFAULT_SPACING = 4
14
-
15
- attr_reader :layout, :element_left, :element_top
16
-
17
- extend Forwardable
18
- def_delegators :@layout, :get_bounds, :text, :text=,
19
- :line_count, :line_metrics, :line_offsets
20
-
21
- def initialize(dsl, text, width)
22
- @dsl = dsl
23
- @layout = ::Swt::TextLayout.new Shoes.display
24
- @font_factory = TextFontFactory.new
25
- @style_factory = TextStyleFactory.new
26
-
27
- layout.text = text
28
- style_from(font_styling, @dsl.opts)
29
- shrink_layout_to(width) unless layout_fits_in?(width)
30
- end
31
-
32
- def dispose
33
- @layout.dispose unless @layout.disposed?
34
- @font_factory.dispose
35
- @style_factory.dispose
36
- end
37
-
38
- def position_at(element_left, element_top)
39
- @element_left = element_left
40
- @element_top = element_top
41
- self
42
- end
43
-
44
- def get_location(cursor, trailing=false)
45
- @layout.get_location(cursor, trailing)
46
- end
47
-
48
- def style_from(default_text_styles, opts)
49
- layout.justify = opts[:justify]
50
- layout.spacing = (opts[:leading] || DEFAULT_SPACING)
51
- layout.alignment = case opts[:align]
52
- when 'center'; ::Swt::SWT::CENTER
53
- when 'right'; ::Swt::SWT::RIGHT
54
- else ::Swt::SWT::LEFT
55
- end
56
-
57
- set_style(TextStyleFactory.apply_styles(default_text_styles, opts))
58
- end
59
-
60
- def set_style(styles, range=(0...text.length))
61
- font = @font_factory.create_font(styles[:font_detail])
62
- style = @style_factory.create_style(font, styles[:fg], styles[:bg], styles)
63
- layout.set_style(style, range.min, range.max)
64
- end
65
-
66
- def font_styling
67
- {
68
- font_detail: {
69
- name: @dsl.font,
70
- size: @dsl.font_size,
71
- styles:[::Swt::SWT::NORMAL]
72
- }
73
- }
74
- end
75
-
76
- def shrink_layout_to(width)
77
- layout.setWidth(width)
78
- end
79
-
80
- def layout_fits_in?(width)
81
- layout.bounds.width <= width
82
- end
83
-
84
- def draw(graphics_context)
85
- layout.draw(graphics_context, element_left, element_top)
86
- end
87
-
88
- # x,y in app coordinates, so translate for layout's element-local values
89
- def in_bounds?(x, y)
90
- layout.bounds.contains?(x - element_left, y - element_top)
91
- end
92
- end
93
- end
94
- end
@@ -1,108 +0,0 @@
1
- class Shoes
2
- module Swt
3
- class FittedTextLayoutCollection
4
- extend Forwardable
5
- def_delegators :@layouts, :length
6
-
7
- attr_reader :default_text_styles
8
-
9
- def initialize(layouts, default_text_styles)
10
- @layouts = layouts
11
- @default_text_styles = default_text_styles
12
- end
13
-
14
- def paint_control(dsl, graphic_context)
15
- style_from(dsl.opts)
16
- style_segment_ranges(dsl.text_styles)
17
- create_links(dsl.text_styles)
18
- draw(graphic_context)
19
- end
20
-
21
- def style_from(opts)
22
- @layouts.each do |layout|
23
- layout.style_from(default_text_styles, opts)
24
- end
25
- end
26
-
27
- def draw(graphic_context)
28
- @layouts.each do |layout|
29
- layout.draw(graphic_context)
30
- end
31
- end
32
-
33
- def style_segment_ranges(elements_by_range)
34
- elements_by_range.each do |range, elements|
35
- style = calculate_style(elements)
36
- layout_ranges(range).each do |layout, inner_range|
37
- layout.set_style(style, inner_range)
38
- end
39
- end
40
- end
41
-
42
- def calculate_style(elements)
43
- elements.inject(default_text_styles) do |current_style, element|
44
- if element.respond_to?(:opts)
45
- TextStyleFactory.apply_styles(current_style, element.opts)
46
- else
47
- # Didn't know how to style from the element, so punt
48
- current_style
49
- end
50
- end
51
- end
52
-
53
- def create_links(elements_by_range)
54
- elements_by_range.each do |range, elements|
55
- elements.each do |element|
56
- if supports_links?(element)
57
- element.gui.create_links_in(layout_ranges(range))
58
- end
59
- end
60
- end
61
- end
62
-
63
- def supports_links?(element)
64
- element.respond_to?(:gui) &&
65
- element.gui &&
66
- element.gui.respond_to?(:create_links_in)
67
- end
68
-
69
- # If we've got segments that style us across different ranges, it might
70
- # be in either, or both, of the layouts. This method figures out which
71
- # layouts apply, and what the relative ranges within each layout to use.
72
- def layout_ranges(text_range)
73
- return [] unless @layouts.first # TODO WTF #636
74
- first_text = @layouts.first.layout.text
75
- slice = first_text[text_range]
76
-
77
- if slice.nil? || slice.empty?
78
- results_in_last_layout(text_range, first_text)
79
- elsif slice.length < text_range.count
80
- results_spanning_layouts(text_range, first_text, slice)
81
- else
82
- results_in_first_layout(text_range)
83
- end
84
- end
85
-
86
- def results_in_first_layout(text_range)
87
- [[@layouts.first, text_range]]
88
- end
89
-
90
- def results_spanning_layouts(text_range, first_text, slice)
91
- result = []
92
- result << [@layouts.first, (text_range.first..first_text.length)]
93
- # If first == last, then requested range was longer than our one and
94
- # only layout, so just stick with full range of the first layout.
95
- if @layouts.first != @layouts.last
96
- result << [@layouts.last, (0..text_range.count - slice.length - 1)]
97
- end
98
- result
99
- end
100
-
101
- def results_in_last_layout(text_range, first_text)
102
- range_start = text_range.first - first_text.length
103
- range_end = text_range.last - first_text.length
104
- [[@layouts.last, (range_start..range_end)]]
105
- end
106
- end
107
- end
108
- end