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,103 +0,0 @@
1
- require 'swt_shoes/spec_helper'
2
-
3
- describe Shoes::Swt::LinkSegment do
4
- let(:range) { (2..10) }
5
- let(:line_width) { 20 }
6
- let(:line_height) { 14 }
7
- let(:layout) { double('swt layout', width: line_width, line_count: 10) }
8
- let(:fitted_layout) { double('fitted layout', layout: layout,
9
- element_left: 0, element_top: 0) }
10
-
11
- subject { Shoes::Swt::LinkSegment.new(fitted_layout, range) }
12
-
13
- before(:each) do
14
- 10.times {|i| stub_line_bounds(i)}
15
- end
16
-
17
- # xxxxxxxxxx..........
18
- it "sets bounds on single line" do
19
- stub_start_and_end_locations([0, 0], [10, 0])
20
-
21
- expect_bounded_box(0, 0, 10, line_height)
22
- end
23
-
24
- # xxxxxxxxxxxxxxxxxxxx
25
- # xxxxx...............
26
- it "sets bounds wrapping to second line" do
27
- stub_start_and_end_locations([0, 0], [5, line_height])
28
-
29
- expect_bounded_box(0, 0, line_width, line_height)
30
- expect_bounded_box(0, line_height, 5, 2*line_height)
31
- end
32
-
33
- # .....xxxxxxxxxxxxxxx
34
- # xxxxxxxxxxxxxxxxxxxx
35
- # xxxxx...............
36
- it "sets bounds wrapping over three lines" do
37
- stub_start_and_end_locations([5, 0], [5, 2*line_height])
38
-
39
- expect_bounded_box(5, 0, line_width, line_height)
40
- expect_bounded_box(0, line_height, line_width, 2*line_height)
41
- expect_bounded_box(0, 2*line_height, 5, 3*line_height)
42
- end
43
-
44
- # ....................
45
- # .....xxxxxxxxxx.....
46
- it "sets bounds with single line beginning further down" do
47
- stub_start_and_end_locations([5, line_height], [15, line_height])
48
-
49
- expect_bounded_box(5, line_height, 15, 2*line_height)
50
- end
51
-
52
- # ....................
53
- # ...............xxxxx
54
- # xxxxx...............
55
- it "sets bounds with two lines beginning further down" do
56
- stub_start_and_end_locations([15, line_height], [5, 2*line_height])
57
-
58
- expect_bounded_box(15, line_height, 15, 2*line_height)
59
- expect_bounded_box(0, 2*line_height, 5, 3*line_height)
60
- end
61
-
62
- # ....................
63
- # ...............xxxxx
64
- # xxxxxxxxxxxxxxxxxxxx
65
- # xxxxx...............
66
- it "sets bounds with three lines beginning further down" do
67
- stub_start_and_end_locations([15, line_height], [5, 3*line_height])
68
-
69
- expect_bounded_box(15, line_height, 15, 2*line_height)
70
- expect_bounded_box(0, 2*line_height, line_width, 3*line_height)
71
- expect_bounded_box(0, 3*line_height, 5, 4*line_height)
72
- end
73
-
74
- def expect_bounded_box(left, top, right, bottom)
75
- expect_in_bounds([left, top], [right, top],
76
- [left, bottom], [right,bottom])
77
- end
78
-
79
- def expect_in_bounds(*points)
80
- points.each do |(x,y)|
81
- expect(subject.in_bounds?(x, y)).to be_true, "with #{x}, #{y}"
82
- end
83
- end
84
-
85
- def stub_start_and_end_locations(first, last)
86
- stub_location(range.first, first[0], first[1])
87
- stub_location(range.last, last[0], last[1])
88
- end
89
-
90
- def stub_location(at, x, y)
91
- fitted_layout.stub(:get_location).with(at, anything) { double(x: x, y: y) }
92
- end
93
-
94
- def stub_line_bounds(index)
95
- layout.stub(:line_bounds).with(index) {
96
- double("line #{index}",
97
- x: 0,
98
- y: index * line_height,
99
- width: line_width,
100
- height: line_height)
101
- }
102
- end
103
- end
@@ -1,59 +0,0 @@
1
- require 'swt_shoes/spec_helper'
2
-
3
- describe Shoes::Swt::Link do
4
- include_context "swt app"
5
- let(:dsl) { Shoes::Link.new shoes_app, parent, ["linky"] }
6
-
7
- subject { Shoes::Swt::Link.new(dsl, swt_app) }
8
-
9
- it "marks itself clickable" do
10
- expect(swt_app).to receive(:add_listener)
11
- expect(swt_app).to receive(:add_clickable_element)
12
-
13
- subject
14
- end
15
-
16
- its(:dsl) {should eq dsl}
17
-
18
- context "creating link segments" do
19
- let(:bounds) { double("bounds", height: 0) }
20
- let(:inner_layout) { double("inner layout",
21
- get_line_bounds: bounds, line_count: 1,
22
- line_bounds: double(x: 0, y: 0, height: 0)) }
23
- let(:layout) { double("layout",
24
- get_location: double("position", x: 0, y: 0),
25
- element_left: 0, element_top: 0,
26
- layout: inner_layout) }
27
-
28
- before(:each) do
29
- shoes_app.stub(:add_listener)
30
- shoes_app.stub(:add_clickable_element)
31
-
32
- swt_app.stub(:clickable_elements) { [] }
33
- end
34
-
35
- it "clears existing" do
36
- subject.link_segments << double("segment")
37
- subject.create_links_in([])
38
- expect(subject.link_segments).to be_empty
39
- end
40
-
41
- it "adds new segments" do
42
- subject.create_links_in([
43
- [layout, [5..10]],
44
- [layout, [0..5]]
45
- ])
46
- expect(subject.link_segments.count).to eql(2)
47
- end
48
-
49
- it "clears links" do
50
- # One remove call each for mouse down, mouse up
51
- expect(swt_app).to receive(:remove_listener).twice
52
-
53
- subject.create_links_in([[layout, 0..10]])
54
- subject.clear
55
-
56
- expect(subject.link_segments).to be_empty
57
- end
58
- end
59
- end
@@ -1,51 +0,0 @@
1
- require 'swt_shoes/spec_helper'
2
-
3
- describe Shoes::Swt::ListBox do
4
- include_context "swt app"
5
-
6
- let(:items) { ["Pie", "Apple", "Sand"] }
7
- let(:dsl) { double('dsl', app: shoes_app,
8
- items: items, opts: {},
9
- element_width: 200, element_height: 20).as_null_object }
10
- let(:block) { ->(){} }
11
- let(:real) { double('real', text: "",
12
- set_size: true, add_selection_listener: true,
13
- disposed?: false) }
14
-
15
- subject { Shoes::Swt::ListBox.new dsl, parent, &block }
16
-
17
- before :each do
18
- parent.stub(:real)
19
- ::Swt::Widgets::Combo.stub(:new) { real }
20
- end
21
-
22
- it_behaves_like "togglable"
23
-
24
- it "should return nil when nothing is highlighted" do
25
- subject.text.should be_nil
26
- end
27
-
28
- it "should call 'items' when updating values" do
29
- real.should_receive(:items=).with(["hello"])
30
- subject.update_items(["hello"])
31
- end
32
-
33
- it "should respond to choose" do
34
- subject.should respond_to :choose
35
- end
36
-
37
- it "should call text= when choosing" do
38
- real.should_receive(:text=).with "Bacon"
39
- subject.choose "Bacon"
40
- end
41
-
42
- describe "when the backend notifies us that the selection has changed" do
43
- it "should call the change listeners" do
44
- dsl.should_receive(:call_change_listeners)
45
- real.should_receive(:add_selection_listener) do |&blk|
46
- blk.call()
47
- end
48
- subject
49
- end
50
- end
51
- end
Binary file
@@ -1,129 +0,0 @@
1
- require 'swt_shoes/spec_helper'
2
-
3
- describe Shoes::Swt::MouseMoveListener do
4
- let(:app) {double 'SWT App', dsl: dsl_app, shell: shell,
5
- clickable_elements: clickable_elements}
6
- let(:clickable_elements) {[]}
7
- let(:mouse_hover_controls) {[]}
8
- let(:mouse_motion) {[]}
9
- let(:shell) {double 'Shell', setCursor: nil}
10
- let(:dsl_app) {double('DSL App', mouse_hover_controls: mouse_hover_controls,
11
- mouse_motion: mouse_motion).as_null_object}
12
- let(:x) {10}
13
- let(:y) {42}
14
- let(:block) {double 'Block', call: nil}
15
- let(:mouse_event) {double'mouse event', x: x, y: y}
16
-
17
- subject {Shoes::Swt::MouseMoveListener.new(app)}
18
- before :each do
19
- subject.mouse_move(mouse_event)
20
- end
21
-
22
- describe 'mouse position' do
23
- it 'receives the correct mouse position' do
24
- expect(dsl_app).to have_received(:mouse_pos=).with([x, y])
25
- end
26
- end
27
-
28
- describe 'mouse motion' do
29
- let(:mouse_motion) {[block]}
30
-
31
- it 'calls the block with the position' do
32
- expect(block).to have_received(:call).with(x, y)
33
- end
34
- end
35
-
36
- describe 'shape control' do
37
- let(:hand_cursor) {Shoes::Swt::Shoes.display.getSystemCursor(::Swt::SWT::CURSOR_HAND)}
38
- let(:arrow_cursor) {Shoes::Swt::Shoes.display.getSystemCursor(::Swt::SWT::CURSOR_ARROW)}
39
-
40
- context 'over a clickable element' do
41
- let(:clickable_elements) {[double('element', in_bounds?: true)]}
42
- it 'should set the curser hand' do
43
- expect(shell).to have_received(:setCursor).with(hand_cursor)
44
- end
45
- end
46
-
47
- context 'not over a clickable element' do
48
- let(:clickable_elements) {[double('element', in_bounds?: false)]}
49
- it 'should set the curser hand' do
50
- expect(shell).to have_received(:setCursor).with(arrow_cursor)
51
- end
52
- end
53
- end
54
-
55
- describe 'hover control' do
56
- let(:element) {double 'element', in_bounds?: in_bounds?, hovered?: hovered?,
57
- hover_proc: element_hover, leave_proc: element_leave,
58
- mouse_left: nil, mouse_hovered: nil}
59
- let(:element_hover) {double 'element hover', call: nil}
60
- let(:element_leave) {double 'element leave', call: nil}
61
- let(:mouse_hover_controls) {[element]}
62
-
63
- shared_examples_for 'does not do anything' do
64
- it 'calls no hover related methods whatsoever' do
65
- expect(element).not_to have_received :mouse_left
66
- expect(element).not_to have_received :mouse_hovered
67
- expect(element_hover).not_to have_received :call
68
- expect(element_leave).not_to have_received :call
69
- end
70
- end
71
-
72
- context 'in bounds and hovered' do
73
- let(:in_bounds?) {true}
74
- let(:hovered?) {true}
75
-
76
- it_behaves_like 'does not do anything'
77
- end
78
-
79
- context 'out of bounds and not hovered' do
80
- let(:in_bounds?) {false}
81
- let(:hovered?) {false}
82
-
83
- it_behaves_like 'does not do anything'
84
- end
85
-
86
- context 'in bounds and not hovered' do
87
- let(:in_bounds?) {true}
88
- let(:hovered?) {false}
89
-
90
- it 'calls the hover block' do
91
- expect(element_hover).to have_received :call
92
- end
93
-
94
- it 'calls the hovered method' do
95
- expect(element).to have_received :mouse_hovered
96
- end
97
- end
98
-
99
- context 'out of bounds and hovered' do
100
- let(:in_bounds?) {false}
101
- let(:hovered?) {true}
102
-
103
- it 'calls the leave block' do
104
- expect(element_leave).to have_received :call
105
- end
106
-
107
- it 'calls the mouse_left method' do
108
- expect(element).to have_received :mouse_left
109
- end
110
- end
111
-
112
- describe 'with 2 elements' do
113
- let(:in_bounds?) {false}
114
- let(:hovered?) {true}
115
-
116
- let(:element2) {double 'element 2', in_bounds?: true, hovered?: false,
117
- hover_proc: element2_hover, leave_proc: nil,
118
- mouse_left: nil, mouse_hovered: nil}
119
- let(:element2_hover) {double 'element 2 hover', call: nil}
120
- let(:mouse_hover_controls) {[element, element2]}
121
-
122
- it 'calls leave for element 1 before calling hover for element 2' do
123
- expect(element_leave).to receive(:call).ordered
124
- expect(element2_hover).to receive(:call).ordered
125
- subject.mouse_move(mouse_event)
126
- end
127
- end
128
- end
129
- end
@@ -1,51 +0,0 @@
1
- require 'swt_shoes/spec_helper'
2
-
3
- describe Shoes::Swt::Oval do
4
- include_context "swt app"
5
-
6
- let(:left) { 100 }
7
- let(:top) { 200 }
8
- let(:width) { 300 }
9
- let(:height) { 400 }
10
- let(:dsl) {::Shoes::Oval.new shoes_app, parent, left, top, width, height}
11
-
12
- subject {
13
- Shoes::Swt::Oval.new(dsl, swt_app)
14
- }
15
-
16
- it_behaves_like "paintable"
17
- it_behaves_like "togglable"
18
- it_behaves_like 'clickable backend'
19
-
20
- describe "painter" do
21
- include_context "painter context"
22
-
23
- before :each do
24
- shape.absolute_left = left
25
- shape.absolute_top = top
26
- end
27
- let(:shape) { Shoes::Swt::Oval.new(dsl, swt_app) }
28
- subject { Shoes::Swt::Oval::Painter.new(shape) }
29
-
30
- it_behaves_like "fill painter"
31
- it_behaves_like "stroke painter"
32
-
33
- it "creates oval clipping area" do
34
- double_path = double("path")
35
- ::Swt::Path.stub(:new) { double_path }
36
- double_path.should_receive(:add_arc).with(left, top, width, height, 0, 360)
37
- subject.clipping
38
- end
39
-
40
- it "fills" do
41
- gc.should_receive(:fill_oval)
42
- subject.paint_control(event)
43
- end
44
-
45
- specify "draws oval" do
46
- gc.should_receive(:draw_oval).with(left+sw/2, top+sw/2, width-sw, height-sw)
47
- subject.paint_control(event)
48
- end
49
- end
50
- end
51
-
@@ -1,44 +0,0 @@
1
- require 'swt_shoes/spec_helper'
2
-
3
- describe Shoes::Swt::Progress do
4
- include_context "swt app"
5
-
6
- let(:text) { "TEXT" }
7
- let(:dsl) { double('dsl', app: shoes_app).as_null_object }
8
- let(:real) { double('real', disposed?: false, :disposed? => false).as_null_object }
9
-
10
- subject { Shoes::Swt::Progress.new dsl, parent }
11
-
12
- before :each do
13
- parent.stub(:real)
14
- ::Swt::Widgets::ProgressBar.stub(:new) { real }
15
- end
16
-
17
- it_behaves_like "movable element"
18
- it_behaves_like "togglable"
19
-
20
- it "should have a method called fraction=" do
21
- subject.should respond_to :fraction=
22
- end
23
-
24
- it "should multiply the value by 100 when calling real.selection" do
25
- real.should_receive(:selection=).and_return(55)
26
- subject.fraction = 0.55
27
- end
28
-
29
- it "should round up correctly" do
30
- real.should_receive(:selection=).and_return(100)
31
- subject.fraction = 0.999
32
- end
33
-
34
- context "with disposed real element" do
35
- before :each do
36
- real.stub(:disposed?) { true }
37
- end
38
-
39
- it "shouldn't set selection" do
40
- real.should_not_receive(:selection=)
41
- subject.fraction = 0.55
42
- end
43
- end
44
- end
@@ -1,73 +0,0 @@
1
- require 'swt_shoes/spec_helper'
2
-
3
- describe Shoes::Swt::RadioGroup do
4
- let(:name) { "Group Name" }
5
- let(:real) { double('real', add_selection_listener: true, remove_selection_listener: true).as_null_object }
6
- let(:radio) { double('radio', real: real) }
7
-
8
- subject { Shoes::Swt::RadioGroup.new name }
9
-
10
- describe "#initialize" do
11
- it "sets name" do
12
- subject.name.should == "Group Name"
13
- end
14
- end
15
-
16
- describe "#add" do
17
- it "monitors selection" do
18
- real.should_receive(:add_selection_listener)
19
- subject.add(radio)
20
- end
21
-
22
- describe 'after adding a button' do
23
- before :each do
24
- subject.add radio
25
- end
26
-
27
- it "only one button is added" do
28
- subject.length.should == 1
29
- end
30
-
31
- it "the correct button is added" do
32
- subject.include?(radio).should == true
33
- end
34
- end
35
- end
36
-
37
- describe "#remove" do
38
- before :each do
39
- subject.add(radio)
40
- end
41
-
42
- it "stops monitoring selection" do
43
- real.should_receive(:remove_selection_listener)
44
- subject.remove(radio)
45
- end
46
-
47
- it "removes one button" do
48
- subject.remove(radio)
49
- subject.length.should == 0
50
- end
51
- end
52
-
53
- describe "#select_only_one_radio_in_group" do
54
- let(:real_selected) { double('real').as_null_object }
55
- let(:radio_selected) { double('radio', real: real_selected) }
56
- before :each do
57
- subject.add(radio)
58
- subject.add(radio_selected)
59
- end
60
- after :each do
61
- subject.select_only_one_radio_in_group(radio_selected)
62
- end
63
-
64
- it "turns on the selected radio" do
65
- real_selected.should_receive(:set_selection).with(true)
66
- end
67
-
68
- it "turns off the non-selected radios" do
69
- real.should_receive(:set_selection).with(false)
70
- end
71
- end
72
-
73
- end