shoes-swt 4.0.0.pre2 → 4.0.0.pre3

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 (227) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -200
  3. data/Rakefile +1 -0
  4. data/bin/shoes-swt +11 -0
  5. data/lib/shoes/swt.rb +5 -2
  6. data/lib/shoes/swt/animation.rb +2 -2
  7. data/lib/shoes/swt/app.rb +45 -50
  8. data/lib/shoes/swt/arc.rb +7 -7
  9. data/lib/shoes/swt/background.rb +1 -1
  10. data/lib/shoes/swt/border.rb +1 -2
  11. data/lib/shoes/swt/click_listener.rb +70 -0
  12. data/lib/shoes/swt/color.rb +5 -5
  13. data/lib/shoes/swt/common/clickable.rb +2 -53
  14. data/lib/shoes/swt/common/fill.rb +1 -1
  15. data/lib/shoes/swt/common/painter.rb +7 -7
  16. data/lib/shoes/swt/common/painter_updates_position.rb +2 -2
  17. data/lib/shoes/swt/common/remove.rb +2 -3
  18. data/lib/shoes/swt/common/resource.rb +1 -1
  19. data/lib/shoes/swt/common/selection_listener.rb +14 -14
  20. data/lib/shoes/swt/common/stroke.rb +1 -2
  21. data/lib/shoes/swt/common/update_position.rb +1 -1
  22. data/lib/shoes/swt/dialog.rb +3 -45
  23. data/lib/shoes/swt/disposed_protection.rb +1 -1
  24. data/lib/shoes/swt/download.rb +0 -1
  25. data/lib/shoes/swt/font.rb +4 -4
  26. data/lib/shoes/swt/generate-backend.rb +9 -0
  27. data/lib/shoes/swt/gradient.rb +17 -16
  28. data/lib/shoes/swt/image.rb +3 -5
  29. data/lib/shoes/swt/image_pattern.rb +2 -2
  30. data/lib/shoes/swt/input_box.rb +3 -3
  31. data/lib/shoes/swt/key_listener.rb +6 -6
  32. data/lib/shoes/swt/line.rb +4 -24
  33. data/lib/shoes/swt/link.rb +2 -2
  34. data/lib/shoes/swt/link_segment.rb +3 -3
  35. data/lib/shoes/swt/list_box.rb +4 -4
  36. data/lib/shoes/swt/mouse_move_listener.rb +6 -5
  37. data/lib/shoes/swt/oval.rb +2 -3
  38. data/lib/shoes/swt/packager.rb +82 -0
  39. data/lib/shoes/swt/progress.rb +2 -2
  40. data/lib/shoes/swt/radio.rb +0 -2
  41. data/lib/shoes/swt/radio_group.rb +54 -54
  42. data/lib/shoes/swt/rect_painter.rb +7 -7
  43. data/lib/shoes/swt/redrawing_aspect.rb +32 -34
  44. data/lib/shoes/swt/shape.rb +1 -1
  45. data/lib/shoes/swt/shoes_layout.rb +5 -2
  46. data/lib/shoes/swt/slot.rb +2 -3
  47. data/lib/shoes/swt/sound.rb +17 -22
  48. data/lib/shoes/swt/star.rb +30 -8
  49. data/lib/shoes/swt/swt_button.rb +3 -2
  50. data/lib/shoes/swt/text_block.rb +3 -3
  51. data/lib/shoes/swt/text_block/cursor_painter.rb +2 -2
  52. data/lib/shoes/swt/text_block/fitter.rb +5 -3
  53. data/lib/shoes/swt/text_block/painter.rb +9 -9
  54. data/lib/shoes/swt/text_block/text_font_factory.rb +3 -3
  55. data/lib/shoes/swt/text_block/text_segment.rb +9 -9
  56. data/lib/shoes/swt/text_block/text_segment_collection.rb +2 -0
  57. data/lib/shoes/swt/text_block/text_style_factory.rb +9 -3
  58. data/lib/shoes/swt/timer.rb +1 -1
  59. data/lib/shoes/swt/version.rb +1 -1
  60. data/shoes-swt.gemspec +7 -6
  61. data/spec/shoes/cli_spec.rb +2 -2
  62. data/spec/{swt_shoes → shoes/swt}/animation_spec.rb +1 -1
  63. data/spec/{swt_shoes → shoes/swt}/app_spec.rb +36 -3
  64. data/spec/{swt_shoes → shoes/swt}/arc_spec.rb +1 -1
  65. data/spec/{swt_shoes → shoes/swt}/background_spec.rb +1 -1
  66. data/spec/{swt_shoes → shoes/swt}/border_spec.rb +1 -1
  67. data/spec/{swt_shoes → shoes/swt}/button_spec.rb +1 -1
  68. data/spec/{swt_shoes → shoes/swt}/check_spec.rb +1 -1
  69. data/spec/shoes/swt/click_listener_spec.rb +162 -0
  70. data/spec/{swt_shoes → shoes/swt}/color_factory_spec.rb +1 -1
  71. data/spec/{swt_shoes → shoes/swt}/color_spec.rb +1 -1
  72. data/spec/{swt_shoes → shoes/swt}/common/painter_spec.rb +1 -1
  73. data/spec/{swt_shoes → shoes/swt}/common/remove_spec.rb +4 -11
  74. data/spec/{swt_shoes → shoes/swt}/configuration_spec.rb +1 -1
  75. data/spec/{swt_shoes → shoes/swt}/dialog_spec.rb +1 -7
  76. data/spec/{swt_shoes → shoes/swt}/disposed_protection_spec.rb +0 -0
  77. data/spec/{swt_shoes → shoes/swt}/flow_spec.rb +1 -1
  78. data/spec/{swt_shoes → shoes/swt}/font_spec.rb +1 -1
  79. data/spec/{swt_shoes → shoes/swt}/gradient_spec.rb +1 -1
  80. data/spec/{swt_shoes → shoes/swt}/image_pattern_spec.rb +1 -1
  81. data/spec/{swt_shoes → shoes/swt}/image_spec.rb +4 -3
  82. data/spec/{swt_shoes → shoes/swt}/input_box_spec.rb +1 -1
  83. data/spec/{swt_shoes → shoes/swt}/integration_spec.rb +1 -1
  84. data/spec/{swt_shoes → shoes/swt}/key_listener_spec.rb +1 -1
  85. data/spec/{swt_shoes → shoes/swt}/line_spec.rb +4 -8
  86. data/spec/{swt_shoes → shoes/swt}/link_segment_spec.rb +1 -1
  87. data/spec/{swt_shoes → shoes/swt}/link_spec.rb +3 -10
  88. data/spec/{swt_shoes → shoes/swt}/list_box_spec.rb +5 -3
  89. data/spec/{swt_shoes → shoes/swt}/minimal.png +0 -0
  90. data/spec/{swt_shoes → shoes/swt}/mouse_move_listener_spec.rb +1 -1
  91. data/spec/{swt_shoes → shoes/swt}/oval_spec.rb +1 -1
  92. data/spec/{swt_shoes → shoes/swt}/progress_spec.rb +1 -1
  93. data/spec/{swt_shoes → shoes/swt}/radio_group_spec.rb +1 -1
  94. data/spec/{swt_shoes → shoes/swt}/radio_spec.rb +1 -1
  95. data/spec/{swt_shoes → shoes/swt}/rect_painter_spec.rb +1 -1
  96. data/spec/{swt_shoes → shoes/swt}/rect_spec.rb +1 -1
  97. data/spec/{swt_shoes → shoes/swt}/shape_spec.rb +1 -1
  98. data/spec/{swt_shoes → shoes/swt}/shared_examples/button.rb +0 -0
  99. data/spec/shoes/swt/shared_examples/clickable.rb +13 -0
  100. data/spec/{swt_shoes → shoes/swt}/shared_examples/movable.rb +0 -0
  101. data/spec/{swt_shoes → shoes/swt}/shared_examples/paintable.rb +0 -0
  102. data/spec/{swt_shoes → shoes/swt}/shared_examples/painter.rb +0 -0
  103. data/spec/{swt_shoes → shoes/swt}/shared_examples/pattern.rb +0 -0
  104. data/spec/{swt_shoes → shoes/swt}/shared_examples/removable.rb +1 -3
  105. data/spec/{swt_shoes → shoes/swt}/shared_examples/swt_app_context.rb +11 -3
  106. data/spec/{swt_shoes → shoes/swt}/shared_examples/visibility.rb +0 -0
  107. data/spec/{swt_shoes → shoes/swt}/shell_control_listener_spec.rb +1 -1
  108. data/spec/{swt_shoes → shoes/swt}/slot_spec.rb +1 -1
  109. data/spec/{swt_shoes → shoes/swt}/spec_helper.rb +0 -1
  110. data/spec/{swt_shoes → shoes/swt}/star_spec.rb +1 -1
  111. data/spec/{swt_shoes → shoes/swt}/text_block/centered_text_segment_spec.rb +1 -1
  112. data/spec/{swt_shoes → shoes/swt}/text_block/cursor_painter_spec.rb +8 -4
  113. data/spec/{swt_shoes → shoes/swt}/text_block/fitter_spec.rb +5 -5
  114. data/spec/{swt_shoes → shoes/swt}/text_block/painter_spec.rb +1 -1
  115. data/spec/{swt_shoes → shoes/swt}/text_block/text_font_factory_spec.rb +1 -1
  116. data/spec/{swt_shoes → shoes/swt}/text_block/text_segment_collection_spec.rb +7 -2
  117. data/spec/{swt_shoes → shoes/swt}/text_block/text_segment_spec.rb +1 -1
  118. data/spec/{swt_shoes → shoes/swt}/text_block_spec.rb +2 -5
  119. data/spec/spec_helper.rb +7 -3
  120. metadata +132 -331
  121. data/CHANGELOG +0 -84
  122. data/Gemfile +0 -24
  123. data/Guardfile +0 -11
  124. data/manifests/common.rb +0 -34
  125. data/manifests/shoes-swt.rb +0 -29
  126. data/spec/code_coverage.rb +0 -14
  127. data/spec/shoes/animation_spec.rb +0 -65
  128. data/spec/shoes/app_spec.rb +0 -484
  129. data/spec/shoes/arc_spec.rb +0 -51
  130. data/spec/shoes/background_spec.rb +0 -53
  131. data/spec/shoes/border_spec.rb +0 -47
  132. data/spec/shoes/builtin_methods_spec.rb +0 -110
  133. data/spec/shoes/button_spec.rb +0 -44
  134. data/spec/shoes/check_spec.rb +0 -35
  135. data/spec/shoes/color_spec.rb +0 -408
  136. data/spec/shoes/common/inspect_spec.rb +0 -26
  137. data/spec/shoes/common/remove_spec.rb +0 -38
  138. data/spec/shoes/common/style_normalizer_spec.rb +0 -28
  139. data/spec/shoes/common/style_spec.rb +0 -147
  140. data/spec/shoes/configuration_spec.rb +0 -36
  141. data/spec/shoes/constants_spec.rb +0 -38
  142. data/spec/shoes/dialog_spec.rb +0 -163
  143. data/spec/shoes/dimension_spec.rb +0 -407
  144. data/spec/shoes/dimensions_spec.rb +0 -837
  145. data/spec/shoes/download_spec.rb +0 -142
  146. data/spec/shoes/flow_spec.rb +0 -133
  147. data/spec/shoes/font_spec.rb +0 -37
  148. data/spec/shoes/framework_learning_spec.rb +0 -30
  149. data/spec/shoes/gradient_spec.rb +0 -32
  150. data/spec/shoes/helpers/fake_element.rb +0 -17
  151. data/spec/shoes/helpers/inspect_helpers.rb +0 -5
  152. data/spec/shoes/helpers/sample17_helper.rb +0 -66
  153. data/spec/shoes/image_spec.rb +0 -49
  154. data/spec/shoes/images/shoe.jpg +0 -0
  155. data/spec/shoes/input_box_spec.rb +0 -80
  156. data/spec/shoes/integration_spec.rb +0 -20
  157. data/spec/shoes/internal_app_spec.rb +0 -141
  158. data/spec/shoes/keypress_spec.rb +0 -11
  159. data/spec/shoes/keyrelease_spec.rb +0 -12
  160. data/spec/shoes/line_spec.rb +0 -49
  161. data/spec/shoes/link_spec.rb +0 -105
  162. data/spec/shoes/list_box_spec.rb +0 -74
  163. data/spec/shoes/logger/ruby_spec.rb +0 -8
  164. data/spec/shoes/logger_spec.rb +0 -45
  165. data/spec/shoes/oval_spec.rb +0 -24
  166. data/spec/shoes/point_spec.rb +0 -71
  167. data/spec/shoes/progress_spec.rb +0 -54
  168. data/spec/shoes/radio_spec.rb +0 -32
  169. data/spec/shoes/rect_spec.rb +0 -39
  170. data/spec/shoes/renamed_delegate_spec.rb +0 -70
  171. data/spec/shoes/shape_spec.rb +0 -95
  172. data/spec/shoes/shared_examples/button.rb +0 -6
  173. data/spec/shoes/shared_examples/changeable.rb +0 -26
  174. data/spec/shoes/shared_examples/clickable.rb +0 -5
  175. data/spec/shoes/shared_examples/common_methods.rb +0 -35
  176. data/spec/shoes/shared_examples/dimensions.rb +0 -32
  177. data/spec/shoes/shared_examples/dsl.rb +0 -44
  178. data/spec/shoes/shared_examples/dsl/animate.rb +0 -29
  179. data/spec/shoes/shared_examples/dsl/arc.rb +0 -45
  180. data/spec/shoes/shared_examples/dsl/background.rb +0 -26
  181. data/spec/shoes/shared_examples/dsl/border.rb +0 -10
  182. data/spec/shoes/shared_examples/dsl/button.rb +0 -5
  183. data/spec/shoes/shared_examples/dsl/cap.rb +0 -6
  184. data/spec/shoes/shared_examples/dsl/check.rb +0 -11
  185. data/spec/shoes/shared_examples/dsl/edit_box.rb +0 -8
  186. data/spec/shoes/shared_examples/dsl/edit_line.rb +0 -8
  187. data/spec/shoes/shared_examples/dsl/editable_element.rb +0 -29
  188. data/spec/shoes/shared_examples/dsl/fill.rb +0 -27
  189. data/spec/shoes/shared_examples/dsl/flow.rb +0 -15
  190. data/spec/shoes/shared_examples/dsl/gradient.rb +0 -62
  191. data/spec/shoes/shared_examples/dsl/image.rb +0 -21
  192. data/spec/shoes/shared_examples/dsl/line.rb +0 -9
  193. data/spec/shoes/shared_examples/dsl/nofill.rb +0 -6
  194. data/spec/shoes/shared_examples/dsl/nostroke.rb +0 -6
  195. data/spec/shoes/shared_examples/dsl/oval.rb +0 -88
  196. data/spec/shoes/shared_examples/dsl/pattern.rb +0 -34
  197. data/spec/shoes/shared_examples/dsl/progress.rb +0 -7
  198. data/spec/shoes/shared_examples/dsl/rect.rb +0 -92
  199. data/spec/shoes/shared_examples/dsl/rgb.rb +0 -26
  200. data/spec/shoes/shared_examples/dsl/shape.rb +0 -21
  201. data/spec/shoes/shared_examples/dsl/star.rb +0 -48
  202. data/spec/shoes/shared_examples/dsl/stroke.rb +0 -30
  203. data/spec/shoes/shared_examples/dsl/strokewidth.rb +0 -19
  204. data/spec/shoes/shared_examples/dsl/style.rb +0 -32
  205. data/spec/shoes/shared_examples/dsl/text_elements.rb +0 -81
  206. data/spec/shoes/shared_examples/dsl/video.rb +0 -5
  207. data/spec/shoes/shared_examples/dsl_app_context.rb +0 -8
  208. data/spec/shoes/shared_examples/hover_leave.rb +0 -11
  209. data/spec/shoes/shared_examples/parent.rb +0 -6
  210. data/spec/shoes/shared_examples/scroll.rb +0 -41
  211. data/spec/shoes/shared_examples/shared_element_method.rb +0 -60
  212. data/spec/shoes/shared_examples/slot.rb +0 -331
  213. data/spec/shoes/shared_examples/state.rb +0 -19
  214. data/spec/shoes/shared_examples/style.rb +0 -82
  215. data/spec/shoes/slot_spec.rb +0 -130
  216. data/spec/shoes/sound_spec.rb +0 -15
  217. data/spec/shoes/span_spec.rb +0 -112
  218. data/spec/shoes/spec_helper.rb +0 -24
  219. data/spec/shoes/stack_spec.rb +0 -79
  220. data/spec/shoes/star_spec.rb +0 -31
  221. data/spec/shoes/text_block_dimensions_spec.rb +0 -75
  222. data/spec/shoes/text_block_spec.rb +0 -270
  223. data/spec/shoes/url_spec.rb +0 -68
  224. data/spec/shoes/widget_spec.rb +0 -70
  225. data/spec/shoes_spec.rb +0 -44
  226. data/spec/swt_shoes/shared_examples/clickable.rb +0 -85
  227. data/spec/swt_shoes/sound.rb +0 -10
@@ -18,7 +18,7 @@ class Shoes
18
18
  @real.minimum = 0
19
19
  @real.maximum = 100
20
20
 
21
- if @dsl.element_width and @dsl.element_height
21
+ if @dsl.element_width && @dsl.element_height
22
22
  @real.setSize dsl.element_width, dsl.element_height
23
23
  else
24
24
  @real.pack
@@ -28,7 +28,7 @@ class Shoes
28
28
  end
29
29
 
30
30
  def fraction=(value)
31
- @real.selection = (value*100).to_i unless @real.disposed?
31
+ @real.selection = (value * 100).to_i unless @real.disposed?
32
32
  end
33
33
  end
34
34
  end
@@ -25,5 +25,3 @@ class Shoes
25
25
  end
26
26
  end
27
27
  end
28
-
29
-
@@ -1,54 +1,54 @@
1
- class Shoes
2
- module Swt
3
- # In Swt radio groups are managed by composites which occupy space
4
- # and can interfere with users interacting with other controls. Here
5
- # we simulate radio groups so that they can all be in one composite.
6
- class RadioGroup
7
- extend Forwardable
8
- include Enumerable
9
-
10
- DEFAULT_RADIO_GROUP = "Default Radio Group"
11
-
12
- @group_lookup = Hash.new { |h, k| h[k] = RadioGroup.new(k) }
13
-
14
- attr_reader :name
15
- def_delegators :@radio_buttons, :each, :length, :empty?
16
-
17
- def initialize(name = DEFAULT_RADIO_GROUP)
18
- @name = name
19
- @radio_buttons = []
20
- @selection_listeners = []
21
- end
22
-
23
- def add(radio_button)
24
- return if @radio_buttons.include?(radio_button)
25
- @radio_buttons << radio_button
26
-
27
- selection_listener = SelectionListener.new radio_button do |selected_radio, event|
28
- select_only_one_radio_in_group(selected_radio)
29
- end
30
- @selection_listeners << selection_listener
31
- radio_button.real.add_selection_listener selection_listener
32
- end
33
-
34
- def remove(radio_button)
35
- index = @radio_buttons.index(radio_button)
36
- return if index.nil?
37
- @radio_buttons.delete_at(index)
38
-
39
- radio_button.real.remove_selection_listener @selection_listeners[index]
40
- @selection_listeners.delete_at(index)
41
- end
42
-
43
- def self.group_lookup
44
- @group_lookup
45
- end
46
-
47
- def select_only_one_radio_in_group(selected_radio)
48
- @radio_buttons.each do |radio|
49
- radio.real.set_selection(radio == selected_radio)
50
- end
51
- end
52
- end
53
- end
54
- end
1
+ class Shoes
2
+ module Swt
3
+ # In Swt radio groups are managed by composites which occupy space
4
+ # and can interfere with users interacting with other controls. Here
5
+ # we simulate radio groups so that they can all be in one composite.
6
+ class RadioGroup
7
+ extend Forwardable
8
+ include Enumerable
9
+
10
+ DEFAULT_RADIO_GROUP = "Default Radio Group"
11
+
12
+ @group_lookup = Hash.new { |h, k| h[k] = RadioGroup.new(k) }
13
+
14
+ attr_reader :name
15
+ def_delegators :@radio_buttons, :each, :length, :empty?
16
+
17
+ def initialize(name = DEFAULT_RADIO_GROUP)
18
+ @name = name
19
+ @radio_buttons = []
20
+ @selection_listeners = []
21
+ end
22
+
23
+ def add(radio_button)
24
+ return if @radio_buttons.include?(radio_button)
25
+ @radio_buttons << radio_button
26
+
27
+ selection_listener = SelectionListener.new radio_button do |selected_radio, _event|
28
+ select_only_one_radio_in_group(selected_radio)
29
+ end
30
+ @selection_listeners << selection_listener
31
+ radio_button.real.add_selection_listener selection_listener
32
+ end
33
+
34
+ def remove(radio_button)
35
+ index = @radio_buttons.index(radio_button)
36
+ return if index.nil?
37
+ @radio_buttons.delete_at(index)
38
+
39
+ radio_button.real.remove_selection_listener @selection_listeners[index]
40
+ @selection_listeners.delete_at(index)
41
+ end
42
+
43
+ class << self
44
+ attr_reader :group_lookup
45
+ end
46
+
47
+ def select_only_one_radio_in_group(selected_radio)
48
+ @radio_buttons.each do |radio|
49
+ radio.real.set_selection(radio == selected_radio)
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
@@ -6,17 +6,17 @@ class Shoes
6
6
  @obj.element_top,
7
7
  @obj.element_width,
8
8
  @obj.element_height,
9
- @obj.corners*2,
10
- @obj.corners*2)
9
+ @obj.corners * 2,
10
+ @obj.corners * 2)
11
11
  end
12
12
 
13
13
  def draw(gc)
14
14
  stroke_width = gc.get_line_width
15
- gc.draw_round_rectangle(@obj.element_left+stroke_width/2,
16
- @obj.element_top+stroke_width/2,
17
- @obj.element_width-stroke_width,
18
- @obj.element_height-stroke_width,
19
- @obj.corners*2, @obj.corners*2)
15
+ gc.draw_round_rectangle(@obj.element_left + stroke_width / 2,
16
+ @obj.element_top + stroke_width / 2,
17
+ @obj.element_width - stroke_width,
18
+ @obj.element_height - stroke_width,
19
+ @obj.corners * 2, @obj.corners * 2)
20
20
  end
21
21
  end
22
22
  end
@@ -9,41 +9,38 @@
9
9
  class Shoes
10
10
  module Swt
11
11
  class RedrawingAspect
12
-
13
12
  NEED_TO_UPDATE =
14
- {Animation => [:eval_block],
15
- Button => [:eval_block],
16
- Common::Clickable::ClickListener => [:eval_block],
17
- ::Shoes::InternalApp => [:execute_block],
18
- Keypress => [:eval_block],
19
- Keyrelease => [:eval_block],
20
- MouseMoveListener => [:eval_move_block],
21
- TextBlock::CursorPainter => [:move_textcursor],
22
- Timer => [:eval_block],
23
- ::Shoes::Common::Changeable => [:call_change_listeners]}
13
+ { Animation => [:eval_block],
14
+ Button => [:eval_block],
15
+ ClickListener => [:eval_block],
16
+ ::Shoes::InternalApp => [:execute_block],
17
+ Keypress => [:eval_block],
18
+ Keyrelease => [:eval_block],
19
+ MouseMoveListener => [:eval_move_block],
20
+ TextBlock::CursorPainter => [:move_textcursor],
21
+ Timer => [:eval_block],
22
+ ::Shoes::Common::Changeable => [:call_change_listeners] }
24
23
  # only the main thread may draw
25
- NEED_TO_ASYNC_UPDATE_GUI = {::Shoes::Download => [:eval_block]}
24
+ NEED_TO_ASYNC_UPDATE_GUI = { ::Shoes::Download => [:eval_block] }
26
25
 
27
26
  # These need to trigger a redraw
28
- SAME_POSITION = {Common::Visibility => [:update_visibility],
29
- Image => [:update_image],
30
- ::Shoes::Common::Style => [:update_style],
31
- ::Shoes::Common::Remove => [:remove],
32
- ::Shoes::Slot => [:mouse_hovered,
33
- :mouse_left],
34
- ::Shoes::TextBlock => [:replace]}
27
+ SAME_POSITION = { Common::Visibility => [:update_visibility],
28
+ Image => [:update_image],
29
+ ::Shoes::Common::Style => [:update_style],
30
+ ::Shoes::Common::Remove => [:remove],
31
+ ::Shoes::Slot => [:mouse_hovered,
32
+ :mouse_left],
33
+ ::Shoes::TextBlock => [:replace] }
35
34
 
36
- CHANGED_POSITION = {::Shoes::Common::Positioning => [:_position]}
35
+ CHANGED_POSITION = { ::Shoes::Common::Positioning => [:_position] }
37
36
 
38
37
  # These methods trigger SWT painting listeners, so we need to be sure
39
38
  # that positioning has run properly before allowing them to continue.
40
39
  NEED_CONTENTS_ALIGNMENT = {
41
- ::Shoes::Swt::Dialog => [:ask_color,
42
- :dialog_chooser,
43
- :open_message_box],
44
- ::Shoes::Swt::AskDialog => [:open]
45
- }
46
-
40
+ ::Shoes::Swt::Dialog => [:ask_color,
41
+ :dialog_chooser,
42
+ :open_message_box]
43
+ }
47
44
 
48
45
  attr_reader :app
49
46
 
@@ -55,12 +52,13 @@ class Shoes
55
52
  end
56
53
 
57
54
  def remove_redraws
58
- affected_classes.each {|klass| klass.remove_all_callbacks}
55
+ affected_classes.each(&:remove_all_callbacks)
59
56
  end
60
57
 
61
58
  private
59
+
62
60
  def extend_needed_classes
63
- affected_classes.each {|klass| klass.extend AfterDo}
61
+ affected_classes.each { |klass| klass.extend AfterDo }
64
62
  end
65
63
 
66
64
  def affected_classes
@@ -75,17 +73,17 @@ class Shoes
75
73
  def add_redraws
76
74
  after_every NEED_TO_UPDATE do update_gui end
77
75
  after_every NEED_TO_ASYNC_UPDATE_GUI do
78
- @display.asyncExec do update_gui end
76
+ @display.asyncExec { update_gui }
79
77
  end
80
- after_every SAME_POSITION do |*args, element|
78
+ after_every SAME_POSITION do |*_args, element|
81
79
  element = element.dsl if element.respond_to? :dsl
82
80
  redraw_element element, false
83
81
  end
84
82
  # need to redraw old occupied area and newly occupied area
85
- before_and_after_every CHANGED_POSITION do |*args, element|
83
+ before_and_after_every CHANGED_POSITION do |*_args, element|
86
84
  redraw_element element
87
85
  end
88
- before_every NEED_CONTENTS_ALIGNMENT do |*args|
86
+ before_every NEED_CONTENTS_ALIGNMENT do |*_args|
89
87
  app.dsl.top_slot.contents_alignment
90
88
  end
91
89
  end
@@ -107,7 +105,7 @@ class Shoes
107
105
  end
108
106
 
109
107
  def after_every(hash, &blk)
110
- hash.each {|klass, methods| klass.after methods, &blk }
108
+ hash.each { |klass, methods| klass.after methods, &blk }
111
109
  end
112
110
 
113
111
  def before_and_after_every(hash, &blk)
@@ -116,7 +114,7 @@ class Shoes
116
114
  end
117
115
 
118
116
  def before_every(hash, &blk)
119
- hash.each {|klass, methods| klass.before methods, &blk }
117
+ hash.each { |klass, methods| klass.before methods, &blk }
120
118
  end
121
119
  end
122
120
  end
@@ -6,7 +6,6 @@ class Shoes
6
6
  include Common::Stroke
7
7
  include Common::PainterUpdatesPosition
8
8
 
9
-
10
9
  # Creates a new Shoes::Swt::Shape
11
10
  #
12
11
  # @param [Shoes::Shape] dsl The dsl object to provide gui for
@@ -81,6 +80,7 @@ class Shoes
81
80
  end
82
81
 
83
82
  private
83
+
84
84
  def new_java_float_array(length)
85
85
  Java::float[length].new
86
86
  end
@@ -1,15 +1,17 @@
1
1
  class Shoes
2
2
  module Swt
3
3
  class ShoesLayout < ::Swt::Widgets::Layout
4
-
5
4
  attr_accessor :gui_app
6
5
 
7
- def layout(*dontcare)
6
+ def layout(*_dontcare)
8
7
  dsl_app = @gui_app.dsl
9
8
  height = dsl_app.height
10
9
  scrollable_height = dsl_app.top_slot.contents_alignment
11
10
  set_gui_size(height, scrollable_height)
12
11
 
12
+ dsl_app.top_slot.width = dsl_app.width
13
+ dsl_app.top_slot.height = [scrollable_height, height].max
14
+
13
15
  vertical_bar = @gui_app.shell.getVerticalBar
14
16
  vertical_bar.setVisible(scrollable_height > height)
15
17
  if scrollable_height > height
@@ -20,6 +22,7 @@ class Shoes
20
22
  end
21
23
 
22
24
  private
25
+
23
26
  def set_gui_size(height, scrollable_height)
24
27
  width = @gui_app.dsl.width
25
28
  maximum_height = [scrollable_height, height].max
@@ -26,12 +26,11 @@ class Shoes
26
26
  # #904 #905
27
27
  def update_visibility
28
28
  if dsl.hidden?
29
- dsl.contents.each &:hide
29
+ dsl.contents.each(&:hide)
30
30
  else
31
- dsl.contents.each &:show
31
+ dsl.contents.each(&:show)
32
32
  end
33
33
  end
34
-
35
34
  end
36
35
  class Flow < Slot; end
37
36
  class Stack < Slot; end
@@ -32,7 +32,7 @@ class Shoes
32
32
  def play
33
33
  Thread.new do
34
34
  begin
35
- sound_file = JFile.new(self.filepath)
35
+ sound_file = JFile.new(filepath)
36
36
 
37
37
  audio_input_stream = AudioSystem.getAudioInputStream(sound_file)
38
38
  audio_format = audio_input_stream.getFormat
@@ -47,8 +47,8 @@ class Shoes
47
47
  puts uafex.inspect, uafex.backtrace
48
48
  rescue IOException => ioex
49
49
  puts ioex.inspect, ioex.backtrace
50
- #rescue JIOException => jioex
51
- # jioex.stacktrace
50
+ # rescue JIOException => jioex
51
+ # jioex.stacktrace
52
52
  rescue LineUnavailableException => luex
53
53
  puts luex.inspect, luex.backtrace
54
54
  rescue Exception => e
@@ -61,11 +61,11 @@ class Shoes
61
61
  case audio_format.encoding
62
62
  when Java::JavazoomSpiVorbisSampledFile::VorbisEncoding, Java::JavazoomSpiMpegSampledFile::MpegEncoding
63
63
  decoded_format = AudioFormat.new(AudioFormat::Encoding::PCM_SIGNED,
64
- audio_format.getSampleRate(),
64
+ audio_format.getSampleRate,
65
65
  16,
66
- audio_format.getChannels(),
67
- audio_format.getChannels() * 2,
68
- audio_format.getSampleRate(),
66
+ audio_format.getChannels,
67
+ audio_format.getChannels * 2,
68
+ audio_format.getSampleRate,
69
69
  false)
70
70
  decoded_audio_input_stream = AudioSystem.getAudioInputStream(decoded_format, audio_input_stream)
71
71
 
@@ -77,38 +77,33 @@ class Shoes
77
77
  end
78
78
 
79
79
  def rawplay(decoded_audio_format, decoded_audio_input_stream)
80
-
81
- #throws IOException, LineUnavailableException
80
+ # throws IOException, LineUnavailableException
82
81
 
83
82
  sampled_data = Java::byte[BufferSize].new
84
83
 
85
84
  line = getLine(decoded_audio_format)
86
- if line != nil
85
+ unless line.nil?
87
86
 
88
87
  # Start
89
- line.start()
90
- bytes_read = 0, bytes_written = 0
88
+ line.start
89
+ bytes_read = 0
91
90
  while bytes_read != -1
92
91
 
93
92
  bytes_read = decoded_audio_input_stream.read(sampled_data, 0, sampled_data.length)
94
93
  if bytes_read != -1
95
-
96
- bytes_written = line.write(sampled_data, 0, bytes_read)
94
+ line.write(sampled_data, 0, bytes_read)
97
95
  end
98
96
  end
99
97
  # Stop
100
- line.drain()
101
- line.stop()
102
- line.close()
103
- decoded_audio_input_stream.close()
98
+ line.drain
99
+ line.stop
100
+ line.close
101
+ decoded_audio_input_stream.close
104
102
  end
105
103
  end
106
104
 
107
105
  def getLine(audioFormat)
108
-
109
- #throws LineUnavailableException
110
-
111
- res = nil
106
+ # throws LineUnavailableException
112
107
  info = DataLine::Info.new(SourceDataLine.java_class, audioFormat)
113
108
  res = AudioSystem.getLine(info)
114
109
  res.open(audioFormat)
@@ -31,18 +31,40 @@ class Shoes
31
31
  def draw(gc)
32
32
  gc.drawPolygon make_polygon(@obj)
33
33
  end
34
-
34
+
35
35
  def make_polygon(obj)
36
36
  outer, inner, points, left, top = obj.outer, obj.inner, obj.points,
37
37
  obj.element_left, obj.element_top
38
- polygon = []
39
- polygon << left << (top + outer)
40
- (1..points*2).each do |i|
41
- angle = i * ::Math::PI / points
42
- r = (i % 2 == 0) ? outer : inner
43
- polygon << (left + r * ::Math.sin(angle)) << (top + r * ::Math.cos(angle))
38
+ @polygon = []
39
+ add_edge(left, top + outer)
40
+ (1..points * 2).each do |i|
41
+ make_edge(i, left, top, outer, inner, points)
42
+ end
43
+
44
+ translate_to_proper_start(obj)
45
+
46
+ @polygon
47
+ end
48
+
49
+ def add_edge(start, finish)
50
+ @polygon << start << finish
51
+ end
52
+
53
+ def make_edge(i, left, top, outer, inner, points)
54
+ r = (i % 2 == 0) ? outer : inner
55
+ angle = i * ::Math::PI / points
56
+ add_edge(left + r * ::Math.sin(angle),
57
+ top + r * ::Math.cos(angle))
58
+ end
59
+
60
+ # Prior logic centers start on left/top, so translate to where we
61
+ # really want to start.
62
+ def translate_to_proper_start(obj)
63
+ return if obj.dsl.style[:center]
64
+
65
+ @polygon.map! do |x|
66
+ x + obj.element_width / 2
44
67
  end
45
- polygon
46
68
  end
47
69
  end
48
70
  end