shoes-swt 4.0.0.pre4 → 4.0.0.pre5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (84) hide show
  1. checksums.yaml +4 -4
  2. data/Guardfile +4 -0
  3. data/lib/shoes/swt/app.rb +11 -2
  4. data/lib/shoes/swt/button.rb +2 -4
  5. data/lib/shoes/swt/check_button.rb +2 -4
  6. data/lib/shoes/swt/color_factory.rb +1 -2
  7. data/lib/shoes/swt/common/painter.rb +8 -6
  8. data/lib/shoes/swt/common/resource.rb +14 -0
  9. data/lib/shoes/swt/download.rb +1 -1
  10. data/lib/shoes/swt/generate-backend.rb +1 -1
  11. data/lib/shoes/swt/gradient.rb +3 -2
  12. data/lib/shoes/swt/image.rb +3 -4
  13. data/lib/shoes/swt/input_box.rb +10 -11
  14. data/lib/shoes/swt/key_listener.rb +11 -5
  15. data/lib/shoes/swt/link.rb +2 -0
  16. data/lib/shoes/swt/list_box.rb +4 -9
  17. data/lib/shoes/swt/packager.rb +1 -0
  18. data/lib/shoes/swt/progress.rb +4 -5
  19. data/lib/shoes/swt/radio.rb +3 -3
  20. data/lib/shoes/swt/redrawing_aspect.rb +4 -13
  21. data/lib/shoes/swt/slot.rb +4 -1
  22. data/lib/shoes/swt/sound.rb +1 -1
  23. data/lib/shoes/swt/swt_button.rb +4 -4
  24. data/lib/shoes/swt/text_block/painter.rb +4 -1
  25. data/lib/shoes/swt/text_block/text_segment_collection.rb +14 -3
  26. data/lib/shoes/swt/text_block/text_style_factory.rb +1 -0
  27. data/lib/shoes/swt/text_block.rb +5 -1
  28. data/lib/shoes/swt/version.rb +1 -1
  29. data/lib/shoes/swt.rb +3 -3
  30. data/shoes-swt.gemspec +1 -1
  31. data/spec/shoes/swt/animation_spec.rb +6 -7
  32. data/spec/shoes/swt/app_spec.rb +56 -14
  33. data/spec/shoes/swt/arc_spec.rb +5 -5
  34. data/spec/shoes/swt/background_spec.rb +5 -5
  35. data/spec/shoes/swt/border_spec.rb +3 -3
  36. data/spec/shoes/swt/button_spec.rb +3 -7
  37. data/spec/shoes/swt/check_spec.rb +1 -1
  38. data/spec/shoes/swt/click_listener_spec.rb +2 -2
  39. data/spec/shoes/swt/color_factory_spec.rb +1 -1
  40. data/spec/shoes/swt/color_spec.rb +1 -1
  41. data/spec/shoes/swt/common/painter_spec.rb +13 -3
  42. data/spec/shoes/swt/common/remove_spec.rb +1 -1
  43. data/spec/shoes/swt/configuration_spec.rb +1 -2
  44. data/spec/shoes/swt/dialog_spec.rb +1 -4
  45. data/spec/shoes/swt/flow_spec.rb +4 -4
  46. data/spec/shoes/swt/font_spec.rb +1 -3
  47. data/spec/shoes/swt/gradient_spec.rb +1 -1
  48. data/spec/shoes/swt/image_pattern_spec.rb +1 -1
  49. data/spec/shoes/swt/image_spec.rb +3 -4
  50. data/spec/shoes/swt/input_box_spec.rb +6 -8
  51. data/spec/shoes/swt/integration_spec.rb +1 -1
  52. data/spec/shoes/swt/key_listener_spec.rb +44 -17
  53. data/spec/shoes/swt/line_spec.rb +2 -2
  54. data/spec/shoes/swt/link_segment_spec.rb +2 -3
  55. data/spec/shoes/swt/link_spec.rb +1 -1
  56. data/spec/shoes/swt/list_box_spec.rb +8 -9
  57. data/spec/shoes/swt/mouse_move_listener_spec.rb +6 -6
  58. data/spec/shoes/swt/oval_spec.rb +1 -1
  59. data/spec/shoes/swt/progress_spec.rb +3 -3
  60. data/spec/shoes/swt/radio_group_spec.rb +1 -2
  61. data/spec/shoes/swt/radio_spec.rb +4 -4
  62. data/spec/shoes/swt/rect_painter_spec.rb +6 -6
  63. data/spec/shoes/swt/rect_spec.rb +1 -1
  64. data/spec/shoes/swt/shape_spec.rb +2 -3
  65. data/spec/shoes/swt/shared_examples/button.rb +0 -2
  66. data/spec/shoes/swt/shared_examples/movable.rb +0 -1
  67. data/spec/shoes/swt/shared_examples/painter.rb +2 -3
  68. data/spec/shoes/swt/shared_examples/swt_app_context.rb +11 -9
  69. data/spec/shoes/swt/shell_control_listener_spec.rb +2 -2
  70. data/spec/shoes/swt/shoes_layout_spec.rb +6 -7
  71. data/spec/shoes/swt/slot_spec.rb +10 -4
  72. data/spec/shoes/swt/spec_helper.rb +11 -0
  73. data/spec/shoes/swt/star_spec.rb +4 -4
  74. data/spec/shoes/swt/text_block/centered_text_segment_spec.rb +1 -1
  75. data/spec/shoes/swt/text_block/cursor_painter_spec.rb +7 -7
  76. data/spec/shoes/swt/text_block/fitter_spec.rb +8 -9
  77. data/spec/shoes/swt/text_block/painter_spec.rb +15 -4
  78. data/spec/shoes/swt/text_block/text_font_factory_spec.rb +4 -4
  79. data/spec/shoes/swt/text_block/text_segment_collection_spec.rb +17 -18
  80. data/spec/shoes/swt/text_block/text_segment_spec.rb +5 -5
  81. data/spec/shoes/swt/text_block_spec.rb +13 -11
  82. data/spec/spec_helper.rb +2 -1
  83. metadata +14 -14
  84. data/lib/shoes/swt/common/child.rb +0 -16
@@ -1,4 +1,4 @@
1
- require 'shoes/swt/spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe Shoes::Swt::Link do
4
4
  include_context "swt app"
@@ -1,22 +1,21 @@
1
- require 'shoes/swt/spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe Shoes::Swt::ListBox do
4
4
  include_context "swt app"
5
5
 
6
6
  let(:items) { ["Pie", "Apple", "Sand"] }
7
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) { ->(){} }
8
+ items: items, opts: {},
9
+ element_width: 200, element_height: 20).as_null_object }
10
+ let(:block) { ->() {} }
11
11
  let(:real) { double('real', text: "",
12
- :items= => true, :text= => true,
13
- set_size: true, add_selection_listener: true,
14
- disposed?: false) }
12
+ :items= => true, :text= => true,
13
+ set_size: true, add_selection_listener: true,
14
+ disposed?: false) }
15
15
 
16
- subject { Shoes::Swt::ListBox.new dsl, parent, &block }
16
+ subject { Shoes::Swt::ListBox.new dsl, swt_app, &block }
17
17
 
18
18
  before :each do
19
- allow(parent).to receive(:real)
20
19
  allow(::Swt::Widgets::Combo).to receive(:new) { real }
21
20
  end
22
21
 
@@ -1,14 +1,14 @@
1
- require 'shoes/swt/spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe Shoes::Swt::MouseMoveListener do
4
4
  let(:app) {double 'SWT App', dsl: dsl_app, shell: shell,
5
- clickable_elements: clickable_elements}
5
+ clickable_elements: clickable_elements}
6
6
  let(:clickable_elements) {[]}
7
7
  let(:mouse_hover_controls) {[]}
8
8
  let(:mouse_motion) {[]}
9
9
  let(:shell) {double 'Shell', setCursor: nil}
10
10
  let(:dsl_app) {double('DSL App', mouse_hover_controls: mouse_hover_controls,
11
- mouse_motion: mouse_motion).as_null_object}
11
+ mouse_motion: mouse_motion).as_null_object}
12
12
  let(:x) {10}
13
13
  let(:y) {42}
14
14
  let(:block) {double 'Block', call: nil}
@@ -54,7 +54,7 @@ describe Shoes::Swt::MouseMoveListener do
54
54
 
55
55
  describe 'hover control' do
56
56
  let(:element) {double 'element', in_bounds?: in_bounds?, hovered?: hovered?,
57
- visible?: true, mouse_left: nil, mouse_hovered: nil}
57
+ visible?: true, mouse_left: nil, mouse_hovered: nil}
58
58
  let(:mouse_hover_controls) {[element]}
59
59
 
60
60
  shared_examples_for 'does not do anything' do
@@ -100,7 +100,7 @@ describe Shoes::Swt::MouseMoveListener do
100
100
  let(:in_bounds?) {true}
101
101
  let(:hovered?) {false}
102
102
  let(:element) {double 'element', in_bounds?: in_bounds?, hovered?: hovered?,
103
- visible?: false, mouse_left: nil, mouse_hovered: nil}
103
+ visible?: false, mouse_left: nil, mouse_hovered: nil}
104
104
 
105
105
  it_behaves_like 'does not do anything'
106
106
  end
@@ -110,7 +110,7 @@ describe Shoes::Swt::MouseMoveListener do
110
110
  let(:hovered?) {true}
111
111
 
112
112
  let(:element2) {double 'element 2', in_bounds?: true, hovered?: false,
113
- visible?: true, mouse_left: nil, mouse_hovered: nil}
113
+ visible?: true, mouse_left: nil, mouse_hovered: nil}
114
114
  let(:mouse_hover_controls) {[element, element2]}
115
115
 
116
116
  it 'calls leave for element 1 before calling hover for element 2' do
@@ -1,4 +1,4 @@
1
- require 'shoes/swt/spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe Shoes::Swt::Oval do
4
4
  include_context "swt app"
@@ -1,4 +1,4 @@
1
- require 'shoes/swt/spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe Shoes::Swt::Progress do
4
4
  include_context "swt app"
@@ -8,10 +8,10 @@ describe Shoes::Swt::Progress do
8
8
  let(:real) { double('real', disposed?: real_disposed).as_null_object }
9
9
  let(:real_disposed) {false}
10
10
 
11
- subject { Shoes::Swt::Progress.new dsl, parent }
11
+ subject { Shoes::Swt::Progress.new dsl, swt_app }
12
12
 
13
13
  before :each do
14
- allow(parent).to receive(:real)
14
+ allow(swt_app).to receive(:real)
15
15
  allow(::Swt::Widgets::ProgressBar).to receive(:new) { real }
16
16
  end
17
17
 
@@ -1,4 +1,4 @@
1
- require 'shoes/swt/spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe Shoes::Swt::RadioGroup do
4
4
  let(:name) { "Group Name" }
@@ -69,5 +69,4 @@ describe Shoes::Swt::RadioGroup do
69
69
  expect(real).to receive(:set_selection).with(false)
70
70
  end
71
71
  end
72
-
73
72
  end
@@ -1,13 +1,13 @@
1
- require 'shoes/swt/spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe Shoes::Swt::Radio do
4
4
  include_context "swt app"
5
5
 
6
6
  let(:text) { "TEXT" }
7
7
  let(:dsl) { double('dsl', :app => shoes_app,
8
- :width= => true, :width => 100,
9
- :height= => true, :height => 200,
10
- :group => nil, :blk => block).as_null_object }
8
+ :width= => true, :width => 100,
9
+ :height= => true, :height => 200,
10
+ :group => nil, :blk => block).as_null_object }
11
11
  let(:block) { proc {} }
12
12
  let(:real) { double('real').as_null_object }
13
13
 
@@ -1,15 +1,15 @@
1
- require 'shoes/swt/spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe Shoes::Swt::RectPainter do
4
4
  include_context "painter context"
5
5
 
6
6
  let(:corners) { 0 }
7
- let(:app) { double('app', :real => container, :add_paint_listener => true, :dsl => dsl) }
8
- let(:container) { double('container', :disposed? => false) }
7
+ let(:app) { double('app', real: container, add_paint_listener: true, dsl: dsl) }
8
+ let(:container) { double('container', disposed?: false) }
9
9
  let(:dsl) { double("dsl object", hidden: false, rotate: 0,
10
- element_left: left, element_top: top,
11
- element_width: width, element_height: height,
12
- curve: corners).as_null_object }
10
+ element_left: left, element_top: top,
11
+ element_width: width, element_height: height,
12
+ curve: corners).as_null_object }
13
13
  let(:left) { 55 }
14
14
  let(:top) { 77 }
15
15
  let(:width) { 222 }
@@ -1,4 +1,4 @@
1
- require 'shoes/swt/spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe Shoes::Swt::Rect do
4
4
  include_context "swt app"
@@ -1,10 +1,10 @@
1
- require 'shoes/swt/spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe Shoes::Swt::Shape do
4
4
  include_context "swt app"
5
5
 
6
6
  let(:dsl) { instance_double("Shoes::Shape", hidden: false,
7
- needs_rotate?: false,style: {}).as_null_object }
7
+ needs_rotate?: false,style: {}).as_null_object }
8
8
  subject { Shoes::Swt::Shape.new dsl, swt_app }
9
9
 
10
10
  shared_examples_for "Swt::Shape" do
@@ -65,7 +65,6 @@ describe Shoes::Swt::Shape do
65
65
  expect(transform).to receive(:translate).with(20, 30)
66
66
  subject.update_position
67
67
  end
68
-
69
68
  end
70
69
 
71
70
  describe "painter" do
@@ -1,10 +1,8 @@
1
1
  shared_examples "buttons" do
2
-
3
2
  it "calls set_focus when focus is called" do
4
3
  expect(real).to receive(:set_focus)
5
4
  subject.focus
6
5
  end
7
-
8
6
  end
9
7
 
10
8
  # Check and Radio
@@ -1,5 +1,4 @@
1
1
  shared_examples "movable element" do |left, top|
2
-
3
2
  before :each do
4
3
  allow(dsl).to receive_messages element_left: left, element_top: top
5
4
  end
@@ -1,8 +1,8 @@
1
1
  # Provide `shape` (a double) and `subject` (a Painter)
2
2
 
3
3
  shared_context "painter context" do
4
- let(:event) { double("event", :gc => gc) }
5
- let(:gc) { double("gc", :get_line_width => sw).as_null_object }
4
+ let(:event) { double("event", gc: gc) }
5
+ let(:gc) { double("gc", get_line_width: sw).as_null_object }
6
6
  let(:fill) { Shoes::Swt::Color.new(Shoes::Color.new(11, 12, 13, fill_alpha)) }
7
7
  let(:stroke) { Shoes::Swt::Color.new(Shoes::Color.new(111, 112, 113, stroke_alpha)) }
8
8
  let(:fill_alpha) { 70 }
@@ -18,7 +18,6 @@ shared_context "painter context" do
18
18
  end
19
19
  end
20
20
 
21
-
22
21
  shared_examples_for "movable painter" do
23
22
  describe "when moved" do
24
23
  let(:transform) { double("transform").as_null_object }
@@ -4,7 +4,7 @@
4
4
  # - shoes_app: use for instantiating a Shoes DSL object
5
5
  shared_context "swt app" do
6
6
  let(:swt_app_real) { double('swt app real', disposed?: false,
7
- set_visible: true) }
7
+ set_visible: true) }
8
8
 
9
9
  let(:clickable_element) { double("clickable_element", delete: nil) }
10
10
  let(:click_listener) { double("click listener",
@@ -13,18 +13,20 @@ shared_context "swt app" do
13
13
  remove_listeners_for: nil) }
14
14
  let(:swt_app) do
15
15
  swt_double = double('swt app', real: swt_app_real, disposed?: false,
16
- add_paint_listener: true, remove_paint_listener: true,
17
- add_clickable_element: true, add_listener: true,
18
- remove_listener: true, flush: true, redraw: true,
19
- click_listener: click_listener,
20
- clickable_elements: clickable_element)
16
+ add_paint_listener: true, remove_paint_listener: true,
17
+ add_clickable_element: true, add_listener: true,
18
+ remove_listener: true, flush: true, redraw: true,
19
+ click_listener: click_listener,
20
+ clickable_elements: clickable_element)
21
21
  allow(swt_double).to receive(:app).and_return(swt_double)
22
22
  swt_double
23
23
  end
24
24
 
25
25
  let(:shoes_app) { double('shoes app', gui: swt_app, rotate: 0, style: {}, element_styles: {}) }
26
- let(:parent) { double('parent', app: swt_app, add_child: true, real: true) }
26
+ let(:parent) { double('parent', app: swt_app, add_child: true, real: true,
27
+ absolute_left: 0, absolute_top: 0,
28
+ width: 200, height: 100, fixed_height?: true) }
27
29
  let(:parent_dsl) {double("parent dsl", add_child: true, contents: [],
28
- gui: parent, x_dimension: double.as_null_object,
29
- y_dimension: double.as_null_object)}
30
+ gui: parent, x_dimension: double.as_null_object,
31
+ y_dimension: double.as_null_object)}
30
32
  end
@@ -1,4 +1,4 @@
1
- require 'shoes/swt/spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe Shoes::Swt::ShellControlListener do
4
4
  let(:app) {double 'SWT App', dsl: dsl_app, shell: shell, real: real}
@@ -15,7 +15,7 @@ describe Shoes::Swt::ShellControlListener do
15
15
  end
16
16
 
17
17
  describe 'resize' do
18
- let(:resize_callbacks){[block]}
18
+ let(:resize_callbacks) {[block]}
19
19
  it 'calls the resize block' do
20
20
  expect(block).to have_received(:call)
21
21
  end
@@ -1,7 +1,6 @@
1
- require 'shoes/swt/spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe Shoes::Swt::ShoesLayout do
4
-
5
4
  subject do
6
5
  result = Shoes::Swt::ShoesLayout.new
7
6
  result.gui_app = gui_app
@@ -10,17 +9,17 @@ describe Shoes::Swt::ShoesLayout do
10
9
 
11
10
  let(:gui_app) { double('gui_app', dsl: dsl, real: real, shell: shell) }
12
11
  let(:real) { double('real', set_size: nil,
13
- location: location, :location= => nil) }
12
+ location: location, :location= => nil) }
14
13
  let(:size) { double('size', height: 0, width: 0) }
15
14
  let(:location) { double('location', :y= => nil) }
16
15
  let(:dsl) { double('dsl', top_slot: top_slot,
17
- height: 100, width: 100) }
16
+ height: 100, width: 100) }
18
17
  let(:top_slot) { double('top_slot', contents_alignment: 0,
19
- :width= => nil, :height= => nil) }
18
+ :width= => nil, :height= => nil) }
20
19
  let(:shell) { double('shell', vertical_bar: vertical_bar) }
21
20
  let(:vertical_bar) { double('vertical_bar', :increment= => nil,
22
- :visible= => nil, :maximum= => nil,
23
- :thumb= => nil, thumb: 0) }
21
+ :visible= => nil, :maximum= => nil,
22
+ :thumb= => nil, thumb: 0) }
24
23
 
25
24
  let(:scroll_height) { dsl.height * 2 }
26
25
 
@@ -1,9 +1,9 @@
1
- require 'shoes/swt/spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe Shoes::Swt::Slot do
4
4
  include_context "swt app"
5
5
  let(:dsl) {instance_double Shoes::Slot, hidden?: true,
6
- visible?: false, contents: [content] }
6
+ visible?: false, contents: [content] }
7
7
  let(:content) {double 'content', show: true, hide: true}
8
8
 
9
9
  subject {Shoes::Swt::Slot.new dsl, swt_app}
@@ -14,11 +14,17 @@ describe Shoes::Swt::Slot do
14
14
  expect(swt_app.real).not_to have_received(:set_visible)
15
15
  end
16
16
 
17
- # spec may be deleted if we can hide slots as a whole and not each element
18
- # on its own
17
+ # spec may be deleted if we can hide entire rather than their contents
19
18
  it 'tries to hide the content' do
20
19
  subject.update_visibility
21
20
  expect(content).to have_received :hide
22
21
  end
22
+
23
+ # spec may be deleted if we can hide entire rather than their contents
24
+ it 'only hides on visibility changes' do
25
+ subject.update_visibility
26
+ subject.update_visibility
27
+ expect(content).to have_received(:hide).once
28
+ end
23
29
  end
24
30
  end
@@ -13,6 +13,17 @@ RSpec.configure do |config|
13
13
  # which then fail because some doubles are not made for the methods called
14
14
  allow(Shoes::Swt::RedrawingAspect).to receive_messages new: true
15
15
  end
16
+
17
+ # https://github.com/jruby/jruby/wiki/Persistence
18
+ # mostly to allow stubbing/mocking of said java classes
19
+ config.before(:all) do
20
+ Swt::Widgets::Shell.__persistent__ = true
21
+ Swt::Widgets::MessageBox.__persistent__ = true
22
+ Swt::Path.__persistent__ = true
23
+ Swt::Transform.__persistent__ = true
24
+ Swt::Font.__persistent__ = true
25
+ Swt::Widgets::Display.__persistent__ = true
26
+ end
16
27
  end
17
28
 
18
29
  # as we do not create real apps most of the time there are no redraws and we
@@ -1,4 +1,4 @@
1
- require 'shoes/swt/spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe Shoes::Swt::Star do
4
4
  include_context "swt app"
@@ -25,9 +25,9 @@ describe Shoes::Swt::Star do
25
25
 
26
26
  let(:corners) { 0 }
27
27
  let(:dsl) { double("dsl object", hidden: false, points: points, outer: outer,
28
- inner: inner, element_width: outer * 2.0,
29
- element_height: outer * 2.0, element_left: left,
30
- element_top: top).as_null_object }
28
+ inner: inner, element_width: outer * 2.0,
29
+ element_height: outer * 2.0, element_left: left,
30
+ element_top: top).as_null_object }
31
31
  let(:shape) { Shoes::Swt::Star.new dsl, swt_app }
32
32
  subject { Shoes::Swt::Star::Painter.new shape }
33
33
 
@@ -1,4 +1,4 @@
1
- require 'shoes/swt/spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe Shoes::Swt::TextBlock::CenteredTextSegment do
4
4
  let(:width) { 200 }
@@ -1,4 +1,4 @@
1
- require 'shoes/swt/spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe Shoes::Swt::TextBlock::CursorPainter do
4
4
  include_context "swt app"
@@ -6,8 +6,8 @@ describe Shoes::Swt::TextBlock::CursorPainter do
6
6
  let(:dsl) { double("dsl", app: shoes_app, textcursor: textcursor, textcursor?: true) }
7
7
  let(:textcursor) { double("textcursor", left:0, top: 0, height: 10) }
8
8
  let(:segment_collection) { double('segment collection',
9
- cursor_height: 12,
10
- relative_text_position: 0)}
9
+ cursor_height: 12,
10
+ relative_text_position: 0)}
11
11
 
12
12
  subject { Shoes::Swt::TextBlock::CursorPainter.new(dsl,
13
13
  segment_collection) }
@@ -38,8 +38,8 @@ describe Shoes::Swt::TextBlock::CursorPainter do
38
38
  let(:top) { 20 }
39
39
  let(:position) { double(x: 5, y: 5) }
40
40
  let(:first_segment) { double("first segment", text: "first",
41
- get_location: position, height: 10,
42
- element_left: left, element_top: top) }
41
+ get_location: position, height: 10,
42
+ element_left: left, element_top: top) }
43
43
 
44
44
  before(:each) do
45
45
  allow(textcursor).to receive(:move)
@@ -48,8 +48,8 @@ describe Shoes::Swt::TextBlock::CursorPainter do
48
48
 
49
49
  context "with two segments" do
50
50
  let(:second_segment) { double("second segment", text: "second",
51
- get_location: position,
52
- element_left: left, element_top: top + 100) }
51
+ get_location: position,
52
+ element_left: left, element_top: top + 100) }
53
53
  before(:each) do
54
54
  allow(dsl).to receive(:text).and_return(first_segment.text + second_segment.text)
55
55
  end
@@ -1,18 +1,18 @@
1
- require 'shoes/swt/spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe Shoes::Swt::TextBlock::Fitter do
4
4
  let(:dsl) { double('dsl', parent: parent_dsl, text: "Text goes here",
5
- desired_width: 85, centered?: false,
6
- absolute_left: 25, absolute_top: 75,
7
- element_left: 26, element_top: 76,
8
- margin_left: 1, margin_top: 1) }
5
+ desired_width: 85, centered?: false,
6
+ absolute_left: 25, absolute_top: 75,
7
+ element_left: 26, element_top: 76,
8
+ margin_left: 1, margin_top: 1) }
9
9
 
10
10
  let(:parent_dsl) { double('parent_dsl', parent: grandparent_dsl,
11
- absolute_top: 0, absolute_left: 0, absolute_right: 100,
12
- width: parent_width, height: 200) }
11
+ absolute_top: 0, absolute_left: 0, absolute_right: 100,
12
+ width: parent_width, height: 200) }
13
13
 
14
14
  let(:grandparent_dsl) { double('grandparent_dsl', parent: app,
15
- width: grandparent_width) }
15
+ width: grandparent_width) }
16
16
 
17
17
  let(:app) { double('app', width: app_width) }
18
18
 
@@ -101,7 +101,6 @@ describe Shoes::Swt::TextBlock::Fitter do
101
101
  allow(segment).to receive(:position_at) { segment }
102
102
  allow(segment).to receive(:spacing) { 4 }
103
103
  allow(segment).to receive(:layout) { layout }
104
-
105
104
  end
106
105
 
107
106
  context "to one segment" do
@@ -1,13 +1,18 @@
1
- require 'shoes/swt/spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe Shoes::Swt::TextBlock::Painter do
4
4
  include_context "swt app"
5
5
 
6
- let(:dsl) { double("dsl", app: shoes_app, gui: gui, hidden?: false) }
7
- let(:gui) { double("gui", dispose: nil, segments: segment_collection) }
8
- let(:event) { double("event").as_null_object }
6
+ let(:parent) { double("parent", absolute_left: 0, absolute_top: 0, height: 100, width: 200) }
7
+ let(:dsl) { double("dsl", app: shoes_app, gui: gui, parent: parent, hidden?: false) }
8
+ let(:gui) { double("gui", dispose: nil, segments: segment_collection) }
9
9
  let(:segment_collection) { double("segment collection", empty?: false) }
10
10
 
11
+ let(:event) { double("event", gc: graphics_context).as_null_object }
12
+ let(:graphics_context) { double("graphics context", set_antialias: nil,
13
+ set_line_cap: nil, set_transform: nil,
14
+ clipping: nil, set_clipping: nil) }
15
+
11
16
  subject { Shoes::Swt::TextBlock::Painter.new(dsl) }
12
17
 
13
18
  it "doesn't draw if hidden" do
@@ -31,6 +36,12 @@ describe Shoes::Swt::TextBlock::Painter do
31
36
  subject.paintControl(event)
32
37
  end
33
38
 
39
+ it "clips to parent" do
40
+ expect(segment_collection).to receive(:paint_control)
41
+ expect(graphics_context).to receive(:set_clipping).with(0, 0, 200, 100)
42
+ subject.paintControl(event)
43
+ end
44
+
34
45
  it "paints" do
35
46
  expect(segment_collection).to receive(:paint_control)
36
47
  subject.paintControl(event)
@@ -1,11 +1,11 @@
1
- require 'shoes/swt/spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe Shoes::Swt::TextFontFactory do
4
4
  let(:font_details) {
5
5
  {
6
- :name => "Helvetica",
7
- :size => 16,
8
- :styles => [::Swt::SWT::BOLD]
6
+ name: "Helvetica",
7
+ size: 16,
8
+ styles: [::Swt::SWT::BOLD]
9
9
  }
10
10
  }
11
11
 
@@ -1,4 +1,4 @@
1
- require 'shoes/swt/spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe Shoes::Swt::TextBlock::TextSegmentCollection do
4
4
  include_context "swt app"
@@ -6,27 +6,27 @@ describe Shoes::Swt::TextBlock::TextSegmentCollection do
6
6
  let(:first_segment) { create_segment("first", "first") }
7
7
  let(:second_segment) { create_segment("second", "rest") }
8
8
  let(:dsl) { double("dsl", font: "", size: 16, style:{},
9
- text_styles: {(0..-1) => ["whatever"]}) }
9
+ text_styles: {(0..-1) => ["whatever"]}) }
10
10
 
11
11
  let(:gc) { double("gc") }
12
12
  let(:default_text_styles) {
13
13
  {
14
- :fg => :fg,
15
- :bg => :bg,
16
- :strikecolor => :strikecolor,
17
- :undercolor => :undercolor,
18
- :font_detail => {
19
- :name => "font name",
20
- :size => 12,
21
- :styles => [::Swt::SWT::NORMAL]
14
+ fg: :fg,
15
+ bg: :bg,
16
+ strikecolor: :strikecolor,
17
+ undercolor: :undercolor,
18
+ font_detail: {
19
+ name: "font name",
20
+ size: 12,
21
+ styles: [::Swt::SWT::NORMAL]
22
22
  }
23
23
  }
24
24
  }
25
25
 
26
26
  describe "with one segment" do
27
27
  subject { Shoes::Swt::TextBlock::TextSegmentCollection.new(dsl,
28
- [first_segment],
29
- default_text_styles) }
28
+ [first_segment],
29
+ default_text_styles) }
30
30
 
31
31
  before do
32
32
  allow(dsl).to receive(:text) { first_segment.text }
@@ -130,8 +130,8 @@ describe Shoes::Swt::TextBlock::TextSegmentCollection do
130
130
 
131
131
  describe "with two segments" do
132
132
  subject { Shoes::Swt::TextBlock::TextSegmentCollection.new(dsl,
133
- [first_segment, second_segment],
134
- default_text_styles) }
133
+ [first_segment, second_segment],
134
+ default_text_styles) }
135
135
 
136
136
  before do
137
137
  allow(dsl).to receive(:text) { first_segment.text + second_segment.text }
@@ -237,9 +237,8 @@ describe Shoes::Swt::TextBlock::TextSegmentCollection do
237
237
  def create_segment(name, text)
238
238
  bounds = double("bounds", x: 0, y: 0, height: 0)
239
239
  layout = double(name, text: text,
240
- :justify= => nil, :spacing= => nil, :alignment= => nil,
241
- line_bounds: bounds, line_count: 1)
242
-
240
+ :justify= => nil, :spacing= => nil, :alignment= => nil,
241
+ line_bounds: bounds, line_count: 1)
243
242
 
244
243
  allow_any_instance_of(Shoes::Swt::TextFontFactory).to receive(:create_font)
245
244
 
@@ -256,7 +255,7 @@ describe Shoes::Swt::TextBlock::TextSegmentCollection do
256
255
  Shoes::Link.new(shoes_app, [text])
257
256
  end
258
257
 
259
- def style_with(style={})
258
+ def style_with(style = {})
260
259
  default_text_styles.merge(style)
261
260
  end
262
261
 
@@ -1,11 +1,11 @@
1
- require 'shoes/swt/spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe Shoes::Swt::TextBlock::TextSegment do
4
4
  let(:layout) { double("layout", text: "the text",
5
- :alignment= => nil, :justify= => nil, :spacing= => nil,
6
- :text= => nil, :width= => nil,
7
- disposed?: false, dispose: nil,
8
- set_style: nil, bounds: bounds) }
5
+ :alignment= => nil, :justify= => nil, :spacing= => nil,
6
+ :text= => nil, :width= => nil,
7
+ disposed?: false, dispose: nil,
8
+ set_style: nil, bounds: bounds) }
9
9
  let(:bounds) { Java::OrgEclipseSwtGraphics::Rectangle.new(0, 0, 0, 0) }
10
10
  let(:element_left) { 0 }
11
11
  let(:element_top) { 0 }