shoes-swt 4.0.0.pre5 → 4.0.0.pre6

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ad850293dc338127cb8179643d1687913cb91fbb
4
- data.tar.gz: e0fc3c0b500802b5f294ca454fc12955a9fc6462
3
+ metadata.gz: beac25befd7cf85ba03f9b1cd9826bb9f1e28930
4
+ data.tar.gz: e82b136fb081ce7f34a0a9c62e1683e42e1f46cc
5
5
  SHA512:
6
- metadata.gz: e0e22591aded485f7bd61cfe8b0db70b92d9c1f50bb3b8f350cf11c42fc5b43b44d030983f82de0755d851a53601a36ae65ae8b208485acffdb1eeb1b4d0dcd0
7
- data.tar.gz: 3f282218db6550e8dafb20d006f6f7c98aea3d33e0f602ddcbb4199088c903125fb851d77069c40316e47a799f8bf184e2696e85adb6588bffa753747f2afad0
6
+ metadata.gz: 11f22c3d4cf71dc857f7ce0314b1faeac57a8b4438c24b2fa4c32a5b186e1abd9ac804934eade0a1972dca958391c5a32d90eb52b4ac5f85dc9afcd3e36483a5
7
+ data.tar.gz: e44f05ba4c214ed613aacd03325c24f588e4a68ddf6d3118fac3070efcdd9f25d42144b21f9185c06f8d054d8507cb1d628bce93f5a4a1ba282f6a9da2a1efde
data/lib/shoes/swt/app.rb CHANGED
@@ -199,7 +199,8 @@ class Shoes
199
199
  style = ::Swt::SWT::CLOSE | ::Swt::SWT::MIN | ::Swt::SWT::V_SCROLL
200
200
  style |= ::Swt::SWT::RESIZE | ::Swt::SWT::MAX if @dsl.opts[:resizable]
201
201
  style |= ::Swt::SWT::APPLICATION_MODAL if @dsl.opts[:modal]
202
- style |= ::Swt::SWT::ON_TOP if @dsl.opts[:always_on_top]
202
+ style |= ::Swt::SWT::ON_TOP if @dsl.opts[:always_on_top]
203
+ style |= ::Swt::SWT::NO_TRIM unless @dsl.opts.fetch(:border, true)
203
204
  style
204
205
  end
205
206
 
@@ -11,6 +11,10 @@ class Shoes
11
11
  button.set_text @dsl.text
12
12
  end
13
13
  end
14
+
15
+ def text=(value)
16
+ @real.text = value
17
+ end
14
18
  end
15
19
  end
16
20
  end
@@ -89,11 +89,11 @@ class Shoes
89
89
  end
90
90
 
91
91
  def display_image(name_or_data)
92
- if raw_image_data?(name_or_data)
93
- data = load_raw_image_data(name_or_data)
94
- else
95
- data = name_or_data
96
- end
92
+ data = if raw_image_data?(name_or_data)
93
+ load_raw_image_data(name_or_data)
94
+ else
95
+ name_or_data
96
+ end
97
97
  create_image(data)
98
98
  end
99
99
 
@@ -33,7 +33,7 @@ class Shoes
33
33
 
34
34
  def line_bounds
35
35
  (0..layout.line_count - 1).map do |index|
36
- layout.line_bounds(index)
36
+ layout.get_line_bounds(index)
37
37
  end
38
38
  end
39
39
 
@@ -198,7 +198,7 @@ class Shoes
198
198
 
199
199
  offsets = layout.line_offsets
200
200
  offsets[0...-1].each_with_index do |_, i|
201
- height_so_far += layout.line_bounds(i).height + TextBlock::NEXT_ELEMENT_OFFSET
201
+ height_so_far += layout.get_line_bounds(i).height + TextBlock::NEXT_ELEMENT_OFFSET
202
202
  ending_offset = offsets[i + 1]
203
203
 
204
204
  break if height_so_far >= height
@@ -12,14 +12,15 @@ class Shoes
12
12
  #
13
13
  # These are only expected to be called during contents_alignment
14
14
  class TextSegment
15
+ extend Forwardable
16
+
15
17
  DEFAULT_SPACING = 4
16
18
 
17
19
  attr_reader :layout, :element_left, :element_top
18
20
  attr_accessor :fill_background
19
21
 
20
- extend Forwardable
21
22
  def_delegators :@layout, :text, :text=, :bounds, :width, :spacing,
22
- :line_bounds, :line_count, :line_offsets
23
+ :get_line_bounds, :line_count, :line_offsets
23
24
 
24
25
  def initialize(dsl, text, width)
25
26
  @dsl = dsl
@@ -88,11 +89,11 @@ class Shoes
88
89
  end
89
90
 
90
91
  def last_line_height
91
- layout.line_bounds(layout.line_count - 1).height
92
+ layout.get_line_bounds(layout.line_count - 1).height
92
93
  end
93
94
 
94
95
  def last_line_width
95
- layout.line_bounds(layout.line_count - 1).width
96
+ layout.get_line_bounds(layout.line_count - 1).width
96
97
  end
97
98
 
98
99
  def draw(graphics_context)
@@ -177,7 +177,7 @@ class Shoes
177
177
  end
178
178
 
179
179
  def height_from_segment(segment)
180
- segment.line_bounds(0).height
180
+ segment.get_line_bounds(0).height
181
181
  end
182
182
  end
183
183
  end
@@ -1,5 +1,5 @@
1
1
  class Shoes
2
2
  module Swt
3
- VERSION = "4.0.0.pre5"
3
+ VERSION = "4.0.0.pre6"
4
4
  end
5
5
  end
data/shoes-swt.gemspec CHANGED
@@ -16,8 +16,8 @@ Gem::Specification.new do |s|
16
16
  s.test_files = s.files.grep(%r{^(test|spec|features)/})
17
17
  s.require_paths = ["lib"]
18
18
 
19
- s.add_dependency "swt", "~>4.4"
20
- s.add_dependency "after_do", "~>0.3"
19
+ s.add_dependency "swt", "~>4.4.0"
20
+ s.add_dependency "after_do", "~>0.4.0"
21
21
  s.add_dependency "shoes-core", Shoes::Swt::VERSION
22
22
  s.add_dependency "shoes-package", Shoes::Swt::VERSION
23
23
 
@@ -2,34 +2,11 @@ require 'spec_helper'
2
2
 
3
3
  describe Shoes::Swt::App do
4
4
  let(:opts) { {background: Shoes::COLORS[:salmon], resizable: true} }
5
- let(:app) { double('app') }
6
- let(:dsl) { double('dsl', app: app,
7
- opts: opts,
8
- width: width,
9
- height: 0,
10
- app_title: 'double') }
11
-
12
- let(:opts_unresizable) { { background: Shoes::COLORS[:salmon],
13
- resizable: false } }
14
- let(:app_unresizable) { double('app', opts: opts_unresizable,
15
- width: 0,
16
- height: 0,
17
- app_title: 'double') }
18
- let(:opts_always_on_top) { {background: Shoes::COLORS[:salmon],
19
- always_on_top: true} }
20
- let(:app_always_on_top) { double('app', opts: opts_always_on_top,
21
- width: 0,
22
- height: 0,
23
- app_title: 'double') }
24
- let(:plain_app) { double('app', opts: {},
25
- width: 2,
26
- height: 2,
27
- app_title: 'double') }
28
5
  let(:width) {0}
6
+ let(:dsl) { dsl_app_with_opts(opts) }
7
+ let(:app) {double 'app' }
29
8
 
30
- let(:swt_salmon) { Shoes::Swt::Color.new(Shoes::COLORS[:salmon]).real }
31
-
32
- subject { Shoes::Swt::App.new(dsl) }
9
+ subject { described_class.new dsl }
33
10
 
34
11
  it { is_expected.to respond_to :clipboard }
35
12
  it { is_expected.to respond_to :clipboard= }
@@ -85,14 +62,19 @@ describe Shoes::Swt::App do
85
62
  end
86
63
 
87
64
  it "should return a bitmask that represents not being resizable" do
88
- not_resizable = Shoes::Swt::App.new app_unresizable
65
+ not_resizable = app_with_opts resizable: false
89
66
  expect(not_resizable.send(:main_window_style)).to eq(BASE_BITMASK)
90
67
  end
91
68
 
92
69
  it "should return a bitmask that represents always being on top" do
93
- always_on_top = Shoes::Swt::App.new app_always_on_top
70
+ always_on_top = app_with_opts always_on_top: true, resizable: false
94
71
  expect(always_on_top.send(:main_window_style)).to eq(BASE_BITMASK | Swt::SWT::ON_TOP)
95
72
  end
73
+
74
+ it "should return an bitmask that indicates no trim" do
75
+ no_border = app_with_opts(border: false, resizable: false)
76
+ expect(no_border.send(:main_window_style)).to eq(BASE_BITMASK | Swt::SWT::NO_TRIM)
77
+ end
96
78
  end
97
79
 
98
80
  context "when attempting to copy text" do
@@ -142,12 +124,12 @@ describe Shoes::Swt::App do
142
124
 
143
125
  describe 'App Background color' do
144
126
  it 'has the given background when specified' do
145
- not_resizable = Shoes::Swt::App.new app_unresizable
146
- background = not_resizable.shell.background
147
- expect(background).to eq swt_salmon
127
+ color = Shoes::COLORS[:salmon]
128
+ colored = app_with_opts background: color
129
+ background = colored.shell.background
130
+ expect(background).to eq Shoes::Swt::Color.new(color).real
148
131
  end
149
132
 
150
-
151
133
  it 'has the default system background when unspecified' do
152
134
  default_background = ::Swt.display.getSystemColor(::Swt::SWT::COLOR_WIDGET_BACKGROUND)
153
135
  app = Shoes::Swt::App.new(Shoes::InternalApp.new(Shoes::App.new, {}))
@@ -165,4 +147,20 @@ describe Shoes::Swt::App do
165
147
  subject.class.setup_system_colors
166
148
  end
167
149
  end
150
+
151
+ def app_with_opts(opts)
152
+ dsl_app_double = dsl_app_with_opts(opts)
153
+
154
+ Shoes::Swt::App.new dsl_app_double
155
+ end
156
+
157
+ def dsl_app_with_opts(opts)
158
+ double('app',
159
+ app: app,
160
+ opts: Shoes::InternalApp::DEFAULT_OPTIONS.merge(opts),
161
+ width: 0,
162
+ height: 0,
163
+ app_title: 'double')
164
+ end
165
+
168
166
  end
@@ -94,4 +94,11 @@ describe Shoes::Swt::Button do
94
94
  subject.click block
95
95
  end
96
96
  end
97
+
98
+ describe ".text=" do
99
+ it "sets text on real element" do
100
+ expect(real).to receive(:text=).with("some text")
101
+ subject.text = "some text"
102
+ end
103
+ end
97
104
  end
@@ -108,7 +108,7 @@ describe Shoes::Swt::LinkSegment do
108
108
  end
109
109
 
110
110
  def stub_line_bounds(index)
111
- allow(layout).to receive(:line_bounds).with(index) {
111
+ allow(layout).to receive(:get_line_bounds).with(index) {
112
112
  double("line #{index}",
113
113
  x: 0,
114
114
  y: index * line_height,
@@ -12,10 +12,9 @@ describe Shoes::Swt::Link do
12
12
  it_behaves_like "clickable backend"
13
13
 
14
14
  context "creating link segments" do
15
- let(:bounds) { double("bounds", height: 0) }
15
+ let(:bounds) { double("bounds", x: 0, y: 0, height: 0) }
16
16
  let(:inner_layout) { double("inner layout",
17
- get_line_bounds: bounds, line_count: 1,
18
- line_bounds: double(x: 0, y: 0, height: 0)) }
17
+ get_line_bounds: bounds, line_count: 1) }
19
18
  let(:layout) { double("layout",
20
19
  get_location: double("position", x: 0, y: 0),
21
20
  element_left: 0, element_top: 0,
@@ -76,15 +76,15 @@ describe Shoes::Swt::TextBlock::Fitter do
76
76
  describe "finding what didn't fit" do
77
77
  it "splits when one line past requested height" do
78
78
  segment = double('segment', line_offsets: [0, 5, 10], text: "Text Split")
79
- allow(segment).to receive(:line_bounds) { double('line_bounds', height: 25)}
79
+ allow(segment).to receive(:get_line_bounds) { double('line_bounds', height: 25)}
80
80
 
81
81
  expect(subject.split_text(segment, 24)).to eq(["Text ", "Split"])
82
82
  end
83
83
 
84
84
  it "should be able to split text when too small" do
85
85
  segment = double('segment', line_offsets: [0, 10], text: "Text Split")
86
- allow(segment).to receive(:line_bounds).with(0) { double('line_bounds', height: 21)}
87
- allow(segment).to receive(:line_bounds).with(1) { raise "Boom" }
86
+ allow(segment).to receive(:get_line_bounds).with(0) { double('line_bounds', height: 21)}
87
+ allow(segment).to receive(:get_line_bounds).with(1) { raise "Boom" }
88
88
 
89
89
  expect(subject.split_text(segment, 33)).to eq(["Text Split", ""])
90
90
  end
@@ -118,7 +118,7 @@ describe Shoes::Swt::TextBlock::Fitter do
118
118
 
119
119
  context "to two segments" do
120
120
  before(:each) do
121
- allow(segment).to receive_messages(line_count: 2, line_bounds: double(height: 15))
121
+ allow(segment).to receive_messages(line_count: 2, get_line_bounds: double(height: 15))
122
122
  allow(bounds).to receive_messages(width: 50)
123
123
  allow(dsl).to receive_messages(containing_width: :unused)
124
124
  end
@@ -238,7 +238,7 @@ describe Shoes::Swt::TextBlock::TextSegmentCollection do
238
238
  bounds = double("bounds", x: 0, y: 0, height: 0)
239
239
  layout = double(name, text: text,
240
240
  :justify= => nil, :spacing= => nil, :alignment= => nil,
241
- line_bounds: bounds, line_count: 1)
241
+ get_line_bounds: bounds, line_count: 1)
242
242
 
243
243
  allow_any_instance_of(Shoes::Swt::TextFontFactory).to receive(:create_font)
244
244
 
@@ -196,11 +196,11 @@ describe Shoes::Swt::TextBlock do
196
196
  end
197
197
 
198
198
  def create_segment(name = "segment", width = layout_width,
199
- height = layout_height, line_height = line_height)
199
+ height = layout_height, last_line_height = line_height)
200
200
  bounds = double("bounds", width: width, height: height)
201
201
  double(name, disposed?: false, style_from: nil,
202
202
  width: width, height: height,
203
- last_line_width: width, last_line_height: line_height,
203
+ last_line_width: width, last_line_height: last_line_height,
204
204
  bounds: bounds)
205
205
  end
206
206
 
metadata CHANGED
@@ -1,21 +1,21 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shoes-swt
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0.pre5
4
+ version: 4.0.0.pre6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Team Shoes
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-14 00:00:00.000000000 Z
11
+ date: 2016-11-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: '4.4'
18
+ version: 4.4.0
19
19
  name: swt
20
20
  prerelease: false
21
21
  type: :runtime
@@ -23,13 +23,13 @@ dependencies:
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '4.4'
26
+ version: 4.4.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
30
  - - "~>"
31
31
  - !ruby/object:Gem::Version
32
- version: '0.3'
32
+ version: 0.4.0
33
33
  name: after_do
34
34
  prerelease: false
35
35
  type: :runtime
@@ -37,13 +37,13 @@ dependencies:
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.3'
40
+ version: 0.4.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - '='
45
45
  - !ruby/object:Gem::Version
46
- version: 4.0.0.pre5
46
+ version: 4.0.0.pre6
47
47
  name: shoes-core
48
48
  prerelease: false
49
49
  type: :runtime
@@ -51,13 +51,13 @@ dependencies:
51
51
  requirements:
52
52
  - - '='
53
53
  - !ruby/object:Gem::Version
54
- version: 4.0.0.pre5
54
+ version: 4.0.0.pre6
55
55
  - !ruby/object:Gem::Dependency
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - '='
59
59
  - !ruby/object:Gem::Version
60
- version: 4.0.0.pre5
60
+ version: 4.0.0.pre6
61
61
  name: shoes-package
62
62
  prerelease: false
63
63
  type: :runtime
@@ -65,7 +65,7 @@ dependencies:
65
65
  requirements:
66
66
  - - '='
67
67
  - !ruby/object:Gem::Version
68
- version: 4.0.0.pre5
68
+ version: 4.0.0.pre6
69
69
  description: A JRuby and Swt backend for Shoes, the best little GUI toolkit for Ruby. Shoes makes building for Mac, Windows, and Linux super simple.
70
70
  email:
71
71
  - shoes@librelist.com
@@ -231,7 +231,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
231
231
  version: 1.3.1
232
232
  requirements: []
233
233
  rubyforge_project:
234
- rubygems_version: 2.4.8
234
+ rubygems_version: 2.6.6
235
235
  signing_key:
236
236
  specification_version: 4
237
237
  summary: A JRuby and Swt backend for Shoes, the best little GUI toolkit for Ruby.
@@ -296,4 +296,3 @@ test_files:
296
296
  - spec/shoes/swt/text_block/text_segment_spec.rb
297
297
  - spec/shoes/swt/text_block_spec.rb
298
298
  - spec/spec_helper.rb
299
- has_rdoc: