shoes-swt 4.0.0.pre9 → 4.0.0.pre10
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 +5 -5
- data/bin/shoes-swt +1 -1
- data/lib/shoes/swt.rb +1 -0
- data/lib/shoes/swt/common/image_handling.rb +36 -0
- data/lib/shoes/swt/image.rb +7 -2
- data/lib/shoes/swt/image_pattern.rb +5 -1
- data/lib/shoes/swt/packager.rb +21 -35
- data/lib/shoes/swt/version.rb +1 -1
- metadata +10 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 5568168dba00b066067857b6851707061f81ce275c5433c703bf6f063cf676b6
|
4
|
+
data.tar.gz: '08a5ab31927b65327622b913cd240b1cc7065bf672b638ce11dfd2ffa11a60bc'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 165e28c2286c5983066af12851ac288da3fb4800e1112bf2177876873ffc3467fe2b6d3a196a91b0b8902f900602ea208642cbb51b66ace23e2b2c62ae0a51db
|
7
|
+
data.tar.gz: afbf71d8d6436e73bd5a34ea2366e2027e983aa215e00b32d7c006905a8a961714abd5bb4c51ef03880626a10ec4206ddf99ff8b2c755962f9fb4e8b82092cc0
|
data/bin/shoes-swt
CHANGED
data/lib/shoes/swt.rb
CHANGED
@@ -59,6 +59,7 @@ class Shoes
|
|
59
59
|
require 'shoes/swt/common/clickable'
|
60
60
|
require 'shoes/swt/common/container'
|
61
61
|
require 'shoes/swt/common/fill'
|
62
|
+
require 'shoes/swt/common/image_handling'
|
62
63
|
require 'shoes/swt/common/resource'
|
63
64
|
require 'shoes/swt/common/painter'
|
64
65
|
require 'shoes/swt/common/painter_updates_position'
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
class Shoes
|
3
|
+
module Swt
|
4
|
+
module Common
|
5
|
+
module ImageHandling
|
6
|
+
# Why copy the file to a temporary location just to pass a different name
|
7
|
+
# to load? Because SWT doesn't like us when we're packaged!
|
8
|
+
#
|
9
|
+
# Apparently the warbler-style path names we end up with for relative
|
10
|
+
# image paths don't cross nicely to SWT, so we need to resolve the paths
|
11
|
+
# in Ruby-land before handing it over.
|
12
|
+
def load_file_image_data(name)
|
13
|
+
tmpname = File.join(Dir.tmpdir, "__shoes4_#{Time.now.to_i}_#{File.basename(name)}")
|
14
|
+
FileUtils.cp(name, tmpname)
|
15
|
+
|
16
|
+
@cleanup_files ||= []
|
17
|
+
@cleanup_files << tmpname
|
18
|
+
tmpname
|
19
|
+
end
|
20
|
+
|
21
|
+
def cleanup_temporary_files
|
22
|
+
return unless @cleanup_files
|
23
|
+
|
24
|
+
@cleanup_files.each do |file|
|
25
|
+
begin
|
26
|
+
FileUtils.rm(file)
|
27
|
+
rescue => e
|
28
|
+
Shoes.logger.debug("Error during image temp file cleanup.\n#{e.class}: #{e.message}")
|
29
|
+
end
|
30
|
+
end
|
31
|
+
@cleanup_files.clear
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/lib/shoes/swt/image.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
require 'fileutils'
|
3
|
+
|
2
4
|
class Shoes
|
3
5
|
module Swt
|
4
6
|
class Image
|
@@ -9,6 +11,7 @@ class Shoes
|
|
9
11
|
include Common::PainterUpdatesPosition
|
10
12
|
include Common::Visibility
|
11
13
|
include Common::Remove
|
14
|
+
include Common::ImageHandling
|
12
15
|
include ::Shoes::BackendDimensionsDelegations
|
13
16
|
|
14
17
|
attr_reader :app, :real, :dsl, :painter
|
@@ -47,7 +50,7 @@ class Shoes
|
|
47
50
|
|
48
51
|
def display_temporary_download_image
|
49
52
|
temporary_download_image = File.join(DIR, 'static/downloading.png')
|
50
|
-
create_image(temporary_download_image)
|
53
|
+
create_image(load_file_image_data(temporary_download_image))
|
51
54
|
end
|
52
55
|
|
53
56
|
def create_image(data)
|
@@ -56,6 +59,8 @@ class Shoes
|
|
56
59
|
@full_height = @real.getImageData.height
|
57
60
|
dsl.element_width ||= default_width
|
58
61
|
dsl.element_height ||= default_height
|
62
|
+
|
63
|
+
cleanup_temporary_files
|
59
64
|
end
|
60
65
|
|
61
66
|
def default_width
|
@@ -93,7 +98,7 @@ class Shoes
|
|
93
98
|
data = if raw_image_data?(name_or_data)
|
94
99
|
load_raw_image_data(name_or_data)
|
95
100
|
else
|
96
|
-
name_or_data
|
101
|
+
load_file_image_data(name_or_data)
|
97
102
|
end
|
98
103
|
create_image(data)
|
99
104
|
end
|
@@ -3,6 +3,7 @@ class Shoes
|
|
3
3
|
module Swt
|
4
4
|
class ImagePattern
|
5
5
|
include Common::Remove
|
6
|
+
include Common::ImageHandling
|
6
7
|
|
7
8
|
def initialize(dsl)
|
8
9
|
@dsl = dsl
|
@@ -16,8 +17,11 @@ class Shoes
|
|
16
17
|
# Since colors are bound up (at least in specs) with image patterns,
|
17
18
|
# we can't safely touch images during initialize, so lazily load them.
|
18
19
|
def pattern
|
19
|
-
@image ||= ::Swt::Image.new(Shoes.display, @dsl.path)
|
20
|
+
@image ||= ::Swt::Image.new(Shoes.display, load_file_image_data(@dsl.path))
|
20
21
|
@pattern ||= ::Swt::Pattern.new(Shoes.display, @image)
|
22
|
+
cleanup_temporary_files
|
23
|
+
|
24
|
+
@pattern
|
21
25
|
end
|
22
26
|
|
23
27
|
def apply_as_fill(gc, _dsl)
|
data/lib/shoes/swt/packager.rb
CHANGED
@@ -7,13 +7,27 @@ class Shoes
|
|
7
7
|
def initialize(dsl)
|
8
8
|
@dsl = dsl
|
9
9
|
@gems = []
|
10
|
+
@packages = []
|
10
11
|
end
|
11
12
|
|
12
|
-
def
|
13
|
-
|
14
|
-
|
13
|
+
def options
|
14
|
+
OptionParser.new do |opts|
|
15
|
+
opts.on('--jar', 'Package as executable JAR file') do
|
16
|
+
@packages << :jar
|
17
|
+
end
|
18
|
+
|
19
|
+
opts.on('--mac', 'Package as OS X application') do
|
20
|
+
@packages << :mac
|
21
|
+
end
|
22
|
+
|
23
|
+
opts.on('--windows', 'Package as Windows application') do
|
24
|
+
@packages << :windows
|
25
|
+
end
|
26
|
+
|
27
|
+
opts.on('--linux', 'Package as Linux application') do
|
28
|
+
@packages << :linux
|
29
|
+
end
|
15
30
|
end
|
16
|
-
package.split(':')
|
17
31
|
end
|
18
32
|
|
19
33
|
def run(path)
|
@@ -26,40 +40,12 @@ class Shoes
|
|
26
40
|
abort "shoes: #{e.message}"
|
27
41
|
end
|
28
42
|
|
29
|
-
@
|
30
|
-
puts "Packaging #{
|
31
|
-
packager = ::Shoes::Package.create_packager(config,
|
43
|
+
@packages.each do |package_type|
|
44
|
+
puts "Packaging #{package_type}..."
|
45
|
+
packager = ::Shoes::Package.create_packager(config, package_type)
|
32
46
|
packager.package
|
33
47
|
end
|
34
48
|
end
|
35
|
-
|
36
|
-
def help(program_name)
|
37
|
-
<<-EOS
|
38
|
-
|
39
|
-
Package types:
|
40
|
-
#{package_types}
|
41
|
-
Examples:
|
42
|
-
#{examples(program_name)}
|
43
|
-
EOS
|
44
|
-
end
|
45
|
-
|
46
|
-
def package_types
|
47
|
-
<<-EOS
|
48
|
-
swt:app A standalone OS X executable with the Swt backend
|
49
|
-
swt:jar An executable JAR with the Swt backend
|
50
|
-
EOS
|
51
|
-
end
|
52
|
-
|
53
|
-
def examples(program_name)
|
54
|
-
<<-EOS
|
55
|
-
To run a Shoes app:
|
56
|
-
#{program_name} path/to/shoes-app.rb
|
57
|
-
|
58
|
-
Two ways to package a Shoes app as an APP and a JAR, using the Swt backend:
|
59
|
-
#{program_name} -p swt:app -p swt:jar path/to/app.yaml
|
60
|
-
#{program_name} -p swt:app -p swt:jar path/to/shoes-app.rb
|
61
|
-
EOS
|
62
|
-
end
|
63
49
|
end
|
64
50
|
end
|
65
51
|
end
|
data/lib/shoes/swt/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shoes-swt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.0.
|
4
|
+
version: 4.0.0.pre10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Team Shoes
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-06-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
requirements:
|
44
44
|
- - '='
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: 4.0.0.
|
46
|
+
version: 4.0.0.pre10
|
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.
|
54
|
+
version: 4.0.0.pre10
|
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.
|
60
|
+
version: 4.0.0.pre10
|
61
61
|
name: shoes-package
|
62
62
|
prerelease: false
|
63
63
|
type: :runtime
|
@@ -65,8 +65,9 @@ dependencies:
|
|
65
65
|
requirements:
|
66
66
|
- - '='
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 4.0.0.
|
69
|
-
description: A JRuby and Swt backend for Shoes, the best little GUI toolkit for Ruby.
|
68
|
+
version: 4.0.0.pre10
|
69
|
+
description: A JRuby and Swt backend for Shoes, the best little GUI toolkit for Ruby.
|
70
|
+
Shoes makes building for Mac, Windows, and Linux super simple.
|
70
71
|
email:
|
71
72
|
- shoes@lists.mvmanila.com
|
72
73
|
executables:
|
@@ -95,6 +96,7 @@ files:
|
|
95
96
|
- lib/shoes/swt/common/clickable.rb
|
96
97
|
- lib/shoes/swt/common/container.rb
|
97
98
|
- lib/shoes/swt/common/fill.rb
|
99
|
+
- lib/shoes/swt/common/image_handling.rb
|
98
100
|
- lib/shoes/swt/common/painter.rb
|
99
101
|
- lib/shoes/swt/common/painter_updates_position.rb
|
100
102
|
- lib/shoes/swt/common/remove.rb
|
@@ -176,7 +178,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
176
178
|
version: 1.3.1
|
177
179
|
requirements: []
|
178
180
|
rubyforge_project:
|
179
|
-
rubygems_version: 2.6.
|
181
|
+
rubygems_version: 2.6.11
|
180
182
|
signing_key:
|
181
183
|
specification_version: 4
|
182
184
|
summary: A JRuby and Swt backend for Shoes, the best little GUI toolkit for Ruby.
|