shoes-swt 4.0.0.pre5 → 4.0.0.pre6

Sign up to get free protection for your applications and to get access to all the features.
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: