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,49 +0,0 @@
1
- class Shoes
2
- module Swt
3
- class TextBlockPainter
4
- include ::Swt::Events::PaintListener
5
- include Common::Resource
6
-
7
- attr_reader :app
8
- def initialize(dsl)
9
- @dsl = dsl
10
- @opts = @dsl.opts
11
- @app = @dsl.app.gui
12
- end
13
-
14
- def paintControl(paint_event)
15
- gcs_reset(paint_event.gc)
16
- return if @dsl.hidden?
17
-
18
- draw_layouts(paint_event.gc)
19
- draw_text_cursor
20
- end
21
-
22
- def draw_layouts(graphic_context)
23
- layouts = FittedTextLayoutCollection.new(@dsl.gui.fitted_layouts,
24
- default_text_styles)
25
- layouts.paint_control(@dsl, graphic_context)
26
- end
27
-
28
- def draw_text_cursor
29
- TextBlockCursorPainter.new(@dsl, @dsl.gui.fitted_layouts).draw
30
- end
31
-
32
- private
33
-
34
- def default_text_styles
35
- {
36
- :fg => @opts[:fg],
37
- :bg => @opts[:bg],
38
- :strikecolor => @opts[:strikecolor],
39
- :undercolor => @opts[:undercolor],
40
- :font_detail => {
41
- :name => @dsl.font,
42
- :size => @dsl.font_size,
43
- :styles => [::Swt::SWT::NORMAL]
44
- }
45
- }
46
- end
47
- end
48
- end
49
- end
@@ -1,27 +0,0 @@
1
- class Shoes
2
- module Swt
3
- class TextFontFactory
4
- def initialize
5
- @fonts = []
6
- end
7
-
8
- def create_font(font_style)
9
- name = font_style[:name]
10
- size = font_style[:size]
11
- styles = font_style[:styles].reduce { |result, s| result | s }
12
-
13
- font = ::Swt::Graphics::Font.new Shoes.display, name, size, styles
14
-
15
- # Hold a reference to the font so we can dispose it when the time comes
16
- @fonts << font
17
-
18
- font
19
- end
20
-
21
- def dispose
22
- @fonts.each { |font| font.dispose unless font.disposed? }
23
- @fonts.clear
24
- end
25
- end
26
- end
27
- end
@@ -1,88 +0,0 @@
1
- class Shoes
2
- module Swt
3
- class TextStyleFactory
4
- UNDERLINE_STYLES = {
5
- "single" => 0,
6
- "double" => 1,
7
- "error" => 2,
8
- }
9
-
10
- def initialize
11
- @colors = []
12
- end
13
-
14
- def dispose
15
- @colors.each { |color| color.dispose unless color.disposed? }
16
- @colors.clear
17
- end
18
-
19
- def create_style(font, foreground, background, opts)
20
- fg = swt_color(foreground, ::Shoes::COLORS[:black])
21
- bg = swt_color(background)
22
- @style = ::Swt::TextStyle.new font, fg, bg
23
- set_underline(opts)
24
- set_undercolor(opts)
25
- set_rise(opts)
26
- set_strikethrough(opts)
27
- set_strikecolor(opts)
28
- @style
29
- end
30
-
31
- def self.apply_styles(styles, opts)
32
- styles[:font_detail][:styles] = parse_font_style(opts)
33
- styles[:font_detail][:name] = opts[:font] if opts[:font]
34
- styles[:font_detail][:size] = opts[:size] if opts[:size]
35
- styles[:fg] = opts[:stroke]
36
- styles[:bg] = opts[:fill]
37
- styles[:font_detail][:size] *= opts[:size_modifier] if opts[:size_modifier]
38
- styles.merge(opts)
39
- end
40
-
41
- def self.parse_font_style(opts)
42
- font_styles = []
43
- font_styles << ::Swt::SWT::BOLD if opts[:weight]
44
- font_styles << ::Swt::SWT::ITALIC if opts[:emphasis]
45
- font_styles << ::Swt::SWT::NORMAL if !opts[:weight] && !opts[:emphasis]
46
- font_styles
47
- end
48
-
49
- private
50
- def set_rise(opts)
51
- @style.rise = opts[:rise]
52
- end
53
-
54
- def set_underline(opts)
55
- @style.underline = opts[:underline].nil? || opts[:underline] == "none" ? false : true
56
- @style.underlineStyle = UNDERLINE_STYLES[opts[:underline]]
57
- end
58
-
59
- def set_undercolor(opts)
60
- @style.underlineColor = color_from_dsl opts[:undercolor]
61
- end
62
-
63
- def set_strikethrough(opts)
64
- @style.strikeout = opts[:strikethrough].nil? || opts[:strikethrough] == "none" ? false : true
65
- end
66
-
67
- def set_strikecolor(opts)
68
- @style.strikeoutColor = color_from_dsl opts[:strikecolor]
69
- end
70
-
71
- def swt_color(color, default = nil)
72
- return color if color.is_a? ::Swt::Color
73
- color_from_dsl color, default
74
- end
75
-
76
- def color_from_dsl(dsl_color, default = nil)
77
- return nil if dsl_color.nil? and default.nil?
78
- return color_from_dsl default if dsl_color.nil?
79
- color = ::Swt::Color.new(Shoes.display, dsl_color.red, dsl_color.green, dsl_color.blue)
80
-
81
- # Hold a reference to the color so we can dispose it when the time comes
82
- @colors << color
83
-
84
- color
85
- end
86
- end
87
- end
88
- end
@@ -1,19 +0,0 @@
1
- class Shoes
2
- module Swt
3
- class Timer
4
- def initialize(dsl, app, blk)
5
- @blk = blk
6
- task = Proc.new do
7
- unless app.real.disposed?
8
- eval_block
9
- end
10
- end
11
- ::Swt.display.timer_exec(dsl.n, task)
12
- end
13
-
14
- def eval_block
15
- @blk.call
16
- end
17
- end
18
- end
19
- end
@@ -1,84 +0,0 @@
1
- require 'swt'
2
- require 'shoes/swt'
3
-
4
- $callers = {}
5
- $untracked_disposals = {}
6
-
7
- -> do
8
- # All known subclasses of Swt::Graphics::Resource
9
- # see http://help.eclipse.org/helios/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fswt%2Fpackage-summary.html
10
- classes = [
11
- ::Swt::Graphics::Color,
12
- ::Swt::Graphics::Cursor,
13
- ::Swt::Graphics::Font,
14
- ::Swt::Graphics::GC,
15
- ::Swt::Graphics::Image,
16
- ::Swt::Graphics::Path,
17
- ::Swt::Graphics::Pattern,
18
- ::Swt::Graphics::Region,
19
- ::Swt::Graphics::TextLayout,
20
- ::Swt::Graphics::Transform,
21
- ]
22
-
23
- create_key = ->(klass, backtrace) do
24
- "[#{klass}]\n" + backtrace.join("\n\t")
25
- end
26
-
27
- classes.each do |klass|
28
- klass.class_eval do
29
- define_singleton_method(:new) do |*args|
30
- key = create_key.call(self.name, caller)
31
- $callers[key] ||= 0
32
- $callers[key] += 1
33
-
34
- result = super(*args)
35
- result.instance_variable_set(:@__shoes_creation_backtrace, key)
36
- result
37
- end
38
-
39
- define_method(:dispose) do |*args|
40
- if $callers[@__shoes_creation_backtrace]
41
- $callers[@__shoes_creation_backtrace] -= 1
42
- else
43
- key = create_key.call(self.class.name, caller)
44
- $untracked_disposals[key] ||= 0
45
- $untracked_disposals[key] += 1
46
- end
47
- super(*args)
48
- end
49
- end
50
- end
51
- end.call
52
-
53
- at_exit do
54
- count_for_class_and_backtrace = ->(hash) do
55
- hash.map do |k, v|
56
- if v > 0
57
- "#{v} => #{k}"
58
- end
59
- end.compact.join("\n\n")
60
- end
61
-
62
- totals = ->(hash) do
63
- hash.inject({}) do |memo, (k, v)|
64
- klass = k.split("\n").first
65
- memo[klass] ||= 0
66
- memo[klass] += v
67
- memo
68
- end.map do |k, v|
69
- v == 0 ? nil : " %-42s %5d" % [k, v]
70
- end.compact.join("\n")
71
- end
72
-
73
- puts "Undisposed resources:"
74
- puts count_for_class_and_backtrace.call($callers)
75
- puts
76
- puts "Resources disposed without being tracked:"
77
- puts count_for_class_and_backtrace.call($untracked_disposals)
78
- puts
79
- puts "Undisposed resource totals:"
80
- puts totals.call($callers)
81
- puts
82
- puts "Untracked disposal totals:"
83
- puts totals.call($untracked_disposals)
84
- end
@@ -1,14 +0,0 @@
1
- class Shoes
2
- class Text
3
- def initialize texts, color=nil
4
- @texts = texts
5
- @color = color
6
- @to_s = @texts.map(&:to_s).join
7
- end
8
- attr_reader :to_s, :texts, :color
9
- attr_accessor :parent
10
- def app
11
- @parent.app
12
- end
13
- end
14
- end
@@ -1,162 +0,0 @@
1
- class Shoes
2
- DEFAULT_TEXTBLOCK_FONT = "Arial"
3
-
4
- class TextBlock
5
- include CommonMethods
6
- include Common::Clickable
7
- include DimensionsDelegations
8
-
9
- attr_reader :gui, :parent, :text, :contents, :app, :text_styles, :dimensions, :opts
10
- attr_accessor :calculated_width, :font, :font_size, :cursor, :textcursor
11
-
12
- def initialize(app, parent, text, font_size, opts = {})
13
- texts = Array(text)
14
- @parent = parent
15
- @app = app
16
- @opts = opts
17
- @font = @app.font || DEFAULT_TEXTBLOCK_FONT
18
- @font_size = @opts[:size] || font_size
19
- @contents = texts
20
- @text = texts.map(&:to_s).join
21
- @text_styles = gather_text_styles(self, texts)
22
-
23
- @opts[:stroke] = Shoes::Color.new(@opts[:stroke]) if @opts[:stroke].is_a?(String)
24
- @opts[:fill] = Shoes::Color.new(@opts[:fill]) if @opts[:fill].is_a?(String)
25
-
26
- @dimensions = Dimensions.new parent, opts
27
-
28
- handle_opts @opts
29
-
30
- @opts = @app.style.merge(@opts)
31
-
32
- @gui = Shoes.configuration.backend_for(self)
33
- @parent.add_child(self)
34
-
35
- clickable_options(@opts)
36
- end
37
-
38
- def in_bounds?(*args)
39
- @gui.in_bounds?(*args)
40
- end
41
-
42
- def update_text_styles(texts)
43
- @text_styles = gather_text_styles(self, texts)
44
- end
45
-
46
- def text=(*values)
47
- replace *values[0]
48
- end
49
-
50
- def replace(*values)
51
- @text = values.map(&:to_s).join
52
- @gui.replace *values
53
- end
54
-
55
- def to_s
56
- self.text
57
- end
58
-
59
- # Since we flow, try to fit in almost any space
60
- def fitting_width
61
- 10
62
- end
63
-
64
- # We take over a bunch of the absolute_* measurements since the jagged
65
- # shape of a flowed TextBlock doesn't follow the usual rules for dimensions
66
- # when we get to positioning (which is the main use of these values).
67
- def absolute_right=(value)
68
- @absolute_right = value
69
- end
70
-
71
- def absolute_right
72
- return @dimensions.absolute_right if @absolute_right.nil?
73
- @absolute_right
74
- end
75
-
76
- def absolute_bottom=(value)
77
- @absolute_bottom = value
78
- end
79
-
80
- def absolute_bottom
81
- return absolute_top + height if @absolute_bottom.nil?
82
- @absolute_bottom
83
- end
84
-
85
- def width
86
- @dimensions.width || self.calculated_width
87
- end
88
-
89
- # If an explicit width's set, it's used. If not, we look to the parent.
90
- def containing_width
91
- (@dimensions.width || parent.width) - (margin_left + margin_right)
92
- end
93
-
94
- # This is the width the text block initially wants to try and fit into.
95
- def desired_width(containing=containing_width)
96
- parent.absolute_left + containing - self.absolute_left
97
- end
98
-
99
- def contents_alignment(current_position=nil)
100
- @gui.contents_alignment(current_position)
101
- end
102
-
103
- def textcursor(line_height = 0)
104
- @textcursor ||= app.textcursor(line_height)
105
- end
106
-
107
- def has_textcursor?
108
- @textcursor
109
- end
110
-
111
- def links
112
- @contents.select do |element|
113
- element.is_a?(Shoes::Link)
114
- end
115
- end
116
-
117
- private
118
-
119
- def gather_text_styles(parent, texts, styles={}, start_point=0)
120
- texts.each do |text|
121
- if text.is_a? Shoes::Text
122
- text.parent = parent
123
- end_point = start_point + text.to_s.length - 1
124
- range = start_point..end_point
125
- styles[range] ||= []
126
- styles[range] << text
127
- gather_text_styles(text, text.texts, styles, start_point)
128
- end
129
- start_point += text.to_s.length
130
- end
131
- styles
132
- end
133
-
134
- def handle_opts(opts)
135
- parse_font_opt opts[:font] if opts.has_key? :font
136
- end
137
-
138
- def parse_font_opt(type)
139
- size_regex = /(\d+)(\s*px)?/
140
- style_regex = /none|bold|normal|oblique|italic/i # TODO: add more
141
-
142
- font_family = type.gsub(style_regex,'').gsub(size_regex,'').
143
- split(',').map { |x| x.strip.gsub(/["]/,'') }
144
-
145
- @font = font_family.first unless (font_family.size == 1 and
146
- font_family[0] == "") or font_family.size == 0
147
-
148
- fsize = size_regex.match(type)
149
- @font_size = fsize[1].to_i unless fsize.nil?
150
-
151
- # TODO: Style options
152
- end
153
- end
154
-
155
- class Banner < TextBlock; end
156
- class Title < TextBlock; end
157
- class Subtitle < TextBlock; end
158
- class Tagline < TextBlock; end
159
- class Caption < TextBlock; end
160
- class Para < TextBlock; end
161
- class Inscription < TextBlock; end
162
- end