glimmer-cp-bevel 0.1.0

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 3b067e71639dba1551298912b12b995b16050196015d9d31f7fc99f0281d9103
4
+ data.tar.gz: 2221be15315e361b00165848b06fada2b230d0c83f3fd2f6b4c31eec7169b396
5
+ SHA512:
6
+ metadata.gz: 1116677f45d31ddd5597c91471b024bd1993f6c83d32ae9348fe334323c22ec16deead3f1ed43f4f1833e590f0b7095fb328ff5042079bdfde3cadcb673c13a2
7
+ data.tar.gz: 6acbe0ae2c0e2db80b52b529a16ced3083229928559e16f1a9cf47cadca2d42811c63c0d4df56b5d3eeeae2add1084006b2de882b88d3e02ef25f574293e0629
data/LICENSE.txt ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2021 Andy Maleh
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,93 @@
1
+ # Bevel 0.1.0
2
+ ## [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=40 /> Glimmer Custom Shape](https://github.com/AndyObtiva/glimmer-dsl-swt/docs/reference/GLIMMER_COMMAND.md#custom-shape-gem)
3
+
4
+ [Glimmer DSL for SWT](https://github.com/AndyObtiva/glimmer-dsl-swt) Bevel Custom Shape.
5
+
6
+ `bevel` is the [Glimmer GUI DSL](https://github.com/AndyObtiva/glimmer-dsl-swt/blob/master/docs/reference/GLIMMER_GUI_DSL_SYNTAX.md#glimmer-gui-dsl-syntax) keyword provided by this [gem](https://rubygems.org/gems/glimmer-cp-bevel).
7
+
8
+ ### Screenshot
9
+
10
+ Every square is a `bevel` custom shape instance with a varying base color.
11
+
12
+ ![bevel screenshot](https://raw.githubusercontent.com/AndyObtiva/glimmer-dsl-swt/master/images/glimmer-example-image-shape-dsl.png)
13
+
14
+ ### Actual Use
15
+
16
+ It is used in [Glimmer Tetris](https://github.com/AndyObtiva/glimmer-dsl-swt/blob/master/docs/reference/GLIMMER_SAMPLES.md#glimmer-tetris).
17
+
18
+ ![Glimmer Tetris](https://raw.githubusercontent.com/AndyObtiva/glimmer-dsl-swt/master/images/glimmer-tetris.png)
19
+
20
+ ## API
21
+
22
+ `bevel(options)`
23
+
24
+ Options (keyword args) are:
25
+ - `:base_color` (required): base background color to produce bevel effect for
26
+ - `:size` (required): size in pixels for width and height (resulting in bevel squares having that size)
27
+ - `:bevel_pixel_size` (optional): adjusts the bevel area
28
+ - `:x` (default: 0) (optional): starting location x coordinate within parent
29
+ - `:y` (default: 0) (optional): starting location y coordinate within parent
30
+
31
+ ## Example
32
+
33
+ [Glimmer GUI DSL](https://github.com/AndyObtiva/glimmer-dsl-swt/blob/master/docs/reference/GLIMMER_GUI_DSL_SYNTAX.md#glimmer-gui-dsl-syntax) code snippet:
34
+
35
+ ```ruby
36
+ require 'glimmer-cp-bevel'
37
+
38
+ include Glimmer
39
+
40
+ shell {
41
+ text 'Glimmer Tetris Icon'
42
+ label {
43
+ text 'Check out the application icon!'
44
+ font height: 20
45
+ }
46
+ icon_block_size = 64
47
+ icon_bevel_size = icon_block_size.to_f / 25.to_f
48
+ icon_bevel_pixel_size = 0.16*icon_block_size.to_f
49
+ icon_size = 8
50
+ icon_pixel_size = icon_block_size * icon_size
51
+ image(icon_pixel_size, icon_pixel_size) {
52
+ icon_size.times { |row|
53
+ icon_size.times { |column|
54
+ colored = row >= 1 && column.between?(1, 6)
55
+ color = colored ? color(([:white] + [:cyan, :blue, :dark_yellow, :yellow, :green, :magenta, :red]).sample) : color(:white)
56
+ x = column * icon_block_size
57
+ y = row * icon_block_size
58
+ bevel(x: x, y: y, base_color: color, size: icon_block_size)
59
+ }
60
+ }
61
+ }
62
+ }.open
63
+ ```
64
+
65
+ Produces this [Glimmer Tetris](https://github.com/AndyObtiva/glimmer-dsl-swt/blob/master/docs/reference/GLIMMER_SAMPLES.md#glimmer-tetris) icon [image](https://github.com/AndyObtiva/glimmer-dsl-swt/blob/master/docs/reference/GLIMMER_GUI_DSL_SYNTAX.md#image):
66
+
67
+ ![Tetris Icon](https://raw.githubusercontent.com/AndyObtiva/glimmer-dsl-swt/master/images/glimmer-tetris-icon.png)
68
+
69
+ ## Contributing to glimmer-cp-bevel
70
+
71
+ - Check out the latest master to make sure the feature hasn't been
72
+ implemented or the bug hasn't been fixed yet.
73
+ - Check out the issue tracker to make sure someone already hasn't
74
+ requested it and/or contributed it.
75
+ - Fork the project.
76
+ - Start a feature/bugfix branch.
77
+ - Commit and push until you are happy with your contribution.
78
+ - Make sure to add tests for it. This is important so I don't break it
79
+ in a future version unintentionally.
80
+ - Please try not to mess with the Rakefile, version, or history. If
81
+ you want to have your own version, or is otherwise necessary, that
82
+ is fine, but please isolate to its own commit so I can cherry-pick
83
+ around it.
84
+
85
+ ## License
86
+
87
+ [MIT](LICENSE.txt)
88
+
89
+ Copyright (c) 2021 - Andy Maleh.
90
+
91
+ --
92
+
93
+ [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=40 />](https://github.com/AndyObtiva/glimmer) Built for [Glimmer DSL for SWT](https://github.com/AndyObtiva/glimmer-dsl-swt) (JRuby Desktop Development GUI Framework).
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.1.0
@@ -0,0 +1,58 @@
1
+ # Generated by juwelier
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+ # stub: glimmer-cp-bevel 0.1.0 ruby lib
6
+
7
+ Gem::Specification.new do |s|
8
+ s.name = "glimmer-cp-bevel".freeze
9
+ s.version = "0.1.0"
10
+
11
+ s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib".freeze]
13
+ s.authors = ["Andy Maleh".freeze]
14
+ s.date = "2021-03-10"
15
+ s.description = "Bevel - Glimmer Custom Shape".freeze
16
+ s.email = "andy.am@gmail.com".freeze
17
+ s.extra_rdoc_files = [
18
+ "LICENSE.txt",
19
+ "README.md"
20
+ ]
21
+ s.files = [
22
+ "LICENSE.txt",
23
+ "README.md",
24
+ "VERSION",
25
+ "glimmer-cp-bevel.gemspec",
26
+ "lib/glimmer-cp-bevel.rb",
27
+ "lib/views/glimmer/bevel.rb"
28
+ ]
29
+ s.homepage = "http://github.com/AndyObtiva/glimmer-cp-bevel".freeze
30
+ s.licenses = ["MIT".freeze]
31
+ s.rubygems_version = "3.0.6".freeze
32
+ s.summary = "Bevel - Glimmer Custom Shape".freeze
33
+
34
+ if s.respond_to? :specification_version then
35
+ s.specification_version = 4
36
+
37
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
38
+ s.add_runtime_dependency(%q<glimmer-dsl-swt>.freeze, ["~> 4.18.7.4"])
39
+ s.add_development_dependency(%q<rspec>.freeze, ["~> 3.5.0"])
40
+ s.add_development_dependency(%q<juwelier>.freeze, ["= 2.4.9"])
41
+ s.add_development_dependency(%q<warbler>.freeze, ["= 2.0.5"])
42
+ s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
43
+ else
44
+ s.add_dependency(%q<glimmer-dsl-swt>.freeze, ["~> 4.18.7.4"])
45
+ s.add_dependency(%q<rspec>.freeze, ["~> 3.5.0"])
46
+ s.add_dependency(%q<juwelier>.freeze, ["= 2.4.9"])
47
+ s.add_dependency(%q<warbler>.freeze, ["= 2.0.5"])
48
+ s.add_dependency(%q<simplecov>.freeze, [">= 0"])
49
+ end
50
+ else
51
+ s.add_dependency(%q<glimmer-dsl-swt>.freeze, ["~> 4.18.7.4"])
52
+ s.add_dependency(%q<rspec>.freeze, ["~> 3.5.0"])
53
+ s.add_dependency(%q<juwelier>.freeze, ["= 2.4.9"])
54
+ s.add_dependency(%q<warbler>.freeze, ["= 2.0.5"])
55
+ s.add_dependency(%q<simplecov>.freeze, [">= 0"])
56
+ end
57
+ end
58
+
@@ -0,0 +1,4 @@
1
+ $LOAD_PATH.unshift(File.expand_path('..', __FILE__))
2
+
3
+ require 'glimmer-dsl-swt'
4
+ require 'views/glimmer/bevel'
@@ -0,0 +1,60 @@
1
+ module Glimmer
2
+ class Bevel
3
+ include Glimmer::UI::CustomShape
4
+
5
+ BEVEL_CONSTANT = 20
6
+
7
+ options :base_color, :size, :bevel_pixel_size
8
+ option :x, default: 0
9
+ option :y, default: 0
10
+
11
+ before_body {
12
+ self.bevel_pixel_size = 0.16*size.to_f if bevel_pixel_size.nil?
13
+ }
14
+
15
+ body {
16
+ rectangle(x, y, size, size) {
17
+ background bind(self, :base_color)
18
+ polygon(0, 0, size, 0, size - bevel_pixel_size, bevel_pixel_size, bevel_pixel_size, bevel_pixel_size) {
19
+ background bind(self, :base_color) { |color_value|
20
+ unless color_value.nil?
21
+ color = color(color_value)
22
+ rgb(color.red + 4*BEVEL_CONSTANT, color.green + 4*BEVEL_CONSTANT, color.blue + 4*BEVEL_CONSTANT)
23
+ end
24
+ }
25
+ }
26
+ polygon(size, 0, size - bevel_pixel_size, bevel_pixel_size, size - bevel_pixel_size, size - bevel_pixel_size, size, size) {
27
+ background bind(self, :base_color) { |color_value|
28
+ unless color_value.nil?
29
+ color = color(color_value)
30
+ rgb(color.red - BEVEL_CONSTANT, color.green - BEVEL_CONSTANT, color.blue - BEVEL_CONSTANT)
31
+ end
32
+ }
33
+ }
34
+ polygon(size, size, 0, size, bevel_pixel_size, size - bevel_pixel_size, size - bevel_pixel_size, size - bevel_pixel_size) {
35
+ background bind(self, :base_color) { |color_value|
36
+ unless color_value.nil?
37
+ color = color(color_value)
38
+ rgb(color.red - 2*BEVEL_CONSTANT, color.green - 2*BEVEL_CONSTANT, color.blue - 2*BEVEL_CONSTANT)
39
+ end
40
+ }
41
+ }
42
+ polygon(0, 0, 0, size, bevel_pixel_size, size - bevel_pixel_size, bevel_pixel_size, bevel_pixel_size) {
43
+ background bind(self, :base_color) { |color_value|
44
+ unless color_value.nil?
45
+ color = color(color_value)
46
+ rgb(color.red - BEVEL_CONSTANT, color.green - BEVEL_CONSTANT, color.blue - BEVEL_CONSTANT)
47
+ end
48
+ }
49
+ }
50
+ rectangle(0, 0, size, size) {
51
+ foreground bind(self, :base_color) { |color_value|
52
+ # use gray instead of white for the :white color border
53
+ color_value == :white ? :gray : color_value
54
+ }
55
+ }
56
+ }
57
+ }
58
+
59
+ end
60
+ end
metadata ADDED
@@ -0,0 +1,120 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: glimmer-cp-bevel
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Andy Maleh
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2021-03-10 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: 4.18.7.4
19
+ name: glimmer-dsl-swt
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 4.18.7.4
27
+ - !ruby/object:Gem::Dependency
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: 3.5.0
33
+ name: rspec
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 3.5.0
41
+ - !ruby/object:Gem::Dependency
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - '='
45
+ - !ruby/object:Gem::Version
46
+ version: 2.4.9
47
+ name: juwelier
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '='
53
+ - !ruby/object:Gem::Version
54
+ version: 2.4.9
55
+ - !ruby/object:Gem::Dependency
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - '='
59
+ - !ruby/object:Gem::Version
60
+ version: 2.0.5
61
+ name: warbler
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '='
67
+ - !ruby/object:Gem::Version
68
+ version: 2.0.5
69
+ - !ruby/object:Gem::Dependency
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ name: simplecov
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ description: Bevel - Glimmer Custom Shape
84
+ email: andy.am@gmail.com
85
+ executables: []
86
+ extensions: []
87
+ extra_rdoc_files:
88
+ - LICENSE.txt
89
+ - README.md
90
+ files:
91
+ - LICENSE.txt
92
+ - README.md
93
+ - VERSION
94
+ - glimmer-cp-bevel.gemspec
95
+ - lib/glimmer-cp-bevel.rb
96
+ - lib/views/glimmer/bevel.rb
97
+ homepage: http://github.com/AndyObtiva/glimmer-cp-bevel
98
+ licenses:
99
+ - MIT
100
+ metadata: {}
101
+ post_install_message:
102
+ rdoc_options: []
103
+ require_paths:
104
+ - lib
105
+ required_ruby_version: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ required_rubygems_version: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ version: '0'
115
+ requirements: []
116
+ rubygems_version: 3.0.6
117
+ signing_key:
118
+ specification_version: 4
119
+ summary: Bevel - Glimmer Custom Shape
120
+ test_files: []