glimmer-dsl-swt 4.17.3.0 → 4.17.4.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.
@@ -0,0 +1,137 @@
1
+ # Copyright (c) 2007-2020 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.
21
+
22
+ class SashFormPresenter
23
+ include Glimmer
24
+
25
+ attr_accessor :sash_width, :orientation, :orientation_style
26
+
27
+ def initialize
28
+ @sash_width = 10
29
+ self.orientation = 'horizontal'
30
+ end
31
+
32
+ def orientation_options
33
+ ['horizontal', 'vertical']
34
+ end
35
+
36
+ def orientation=(value)
37
+ @orientation = value
38
+ self.orientation_style = swt(@orientation)
39
+ end
40
+ end
41
+
42
+ @presenter = SashFormPresenter.new
43
+
44
+ include Glimmer
45
+
46
+ shell {
47
+ grid_layout 1, false
48
+ minimum_size 740, 0
49
+ text 'Hello, Sash Form!'
50
+
51
+ @sash_form = sash_form {
52
+ layout_data(:fill, :fill, true, true) {
53
+ height_hint 200
54
+ }
55
+ sash_width bind(@presenter, :sash_width)
56
+ orientation bind(@presenter, :orientation_style)
57
+ weights 1, 2
58
+
59
+ @green_label = label {
60
+ text 'Hello, (resize >>)'
61
+ background :dark_green
62
+ foreground :white
63
+ font height: 30
64
+ }
65
+
66
+ @red_label = label {
67
+ text '(<< resize) Sash Form!'
68
+ background :red
69
+ foreground :white
70
+ font height: 30
71
+ }
72
+ }
73
+
74
+ composite {
75
+ layout_data(:fill, :fill, true, true)
76
+ grid_layout 2, true
77
+
78
+ label {
79
+ layout_data(:right, :center, true, false)
80
+ text 'Sash Width:'
81
+ font height: 16
82
+ }
83
+ spinner {
84
+ layout_data(:fill, :center, true, false) {
85
+ width_hint 100
86
+ }
87
+ selection bind(@presenter, :sash_width)
88
+ font height: 16
89
+ }
90
+
91
+ label {
92
+ layout_data(:right, :center, true, false)
93
+ text 'Orientation:'
94
+ font height: 16
95
+ }
96
+ combo(:read_only, :border) {
97
+ layout_data(:fill, :center, true, false) {
98
+ width_hint 100
99
+ }
100
+ selection bind(@presenter, :orientation)
101
+ font height: 16
102
+ }
103
+
104
+ button {
105
+ layout_data(:fill, :center, true, false)
106
+ text 'Maximize Green Label'
107
+ foreground :dark_green
108
+ font height: 16
109
+
110
+ on_widget_selected {
111
+ @sash_form.maximized_control = @green_label.swt_widget
112
+ }
113
+ }
114
+ button {
115
+ layout_data(:fill, :center, true, false)
116
+ text 'Maximize Red Label'
117
+ foreground :red
118
+ font height: 16
119
+
120
+ on_widget_selected {
121
+ @sash_form.maximized_control = @red_label.swt_widget
122
+ }
123
+ }
124
+
125
+ button {
126
+ layout_data(:fill, :center, true, false) {
127
+ horizontal_span 2
128
+ }
129
+ text 'Maximize None'
130
+ font height: 16
131
+
132
+ on_widget_selected {
133
+ @sash_form.maximized_control = nil
134
+ }
135
+ }
136
+ }
137
+ }.open
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glimmer-dsl-swt
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.17.3.0
4
+ version: 4.17.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - AndyMaleh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-18 00:00:00.000000000 Z
11
+ date: 2020-10-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -185,21 +185,21 @@ dependencies:
185
185
  requirements:
186
186
  - - ">="
187
187
  - !ruby/object:Gem::Version
188
- version: 0.6.0
188
+ version: 3.23.0
189
189
  - - "<"
190
190
  - !ruby/object:Gem::Version
191
- version: 2.0.0
192
- name: tty-markdown
191
+ version: 4.0.0
192
+ name: rouge
193
193
  prerelease: false
194
194
  type: :runtime
195
195
  version_requirements: !ruby/object:Gem::Requirement
196
196
  requirements:
197
197
  - - ">="
198
198
  - !ruby/object:Gem::Version
199
- version: 0.6.0
199
+ version: 3.23.0
200
200
  - - "<"
201
201
  - !ruby/object:Gem::Version
202
- version: 2.0.0
202
+ version: 4.0.0
203
203
  - !ruby/object:Gem::Dependency
204
204
  requirement: !ruby/object:Gem::Requirement
205
205
  requirements:
@@ -381,10 +381,10 @@ files:
381
381
  - lib/glimmer/rake_task.rb
382
382
  - lib/glimmer/rake_task/list.rb
383
383
  - lib/glimmer/rake_task/package.rb
384
- - lib/glimmer/rake_task/sample.rb
385
384
  - lib/glimmer/rake_task/scaffold.rb
386
385
  - lib/glimmer/swt/color_proxy.rb
387
386
  - lib/glimmer/swt/cursor_proxy.rb
387
+ - lib/glimmer/swt/custom/code_text.rb
388
388
  - lib/glimmer/swt/display_proxy.rb
389
389
  - lib/glimmer/swt/dnd_proxy.rb
390
390
  - lib/glimmer/swt/font_proxy.rb
@@ -394,6 +394,7 @@ files:
394
394
  - lib/glimmer/swt/menu_proxy.rb
395
395
  - lib/glimmer/swt/message_box_proxy.rb
396
396
  - lib/glimmer/swt/packages.rb
397
+ - lib/glimmer/swt/sash_form_proxy.rb
397
398
  - lib/glimmer/swt/scrolled_composite_proxy.rb
398
399
  - lib/glimmer/swt/shell_proxy.rb
399
400
  - lib/glimmer/swt/style_constantizable.rb
@@ -412,6 +413,7 @@ files:
412
413
  - samples/elaborate/contact_manager/contact_manager_presenter.rb
413
414
  - samples/elaborate/contact_manager/contact_repository.rb
414
415
  - samples/elaborate/login.rb
416
+ - samples/elaborate/meta_sample.rb
415
417
  - samples/elaborate/tic_tac_toe.rb
416
418
  - samples/elaborate/tic_tac_toe/board.rb
417
419
  - samples/elaborate/tic_tac_toe/cell.rb
@@ -428,6 +430,7 @@ files:
428
430
  - samples/hello/hello_menu_bar.rb
429
431
  - samples/hello/hello_message_box.rb
430
432
  - samples/hello/hello_pop_up_context_menu.rb
433
+ - samples/hello/hello_sash_form.rb
431
434
  - samples/hello/hello_tab.rb
432
435
  - samples/hello/hello_world.rb
433
436
  - vendor/swt/linux/swt.jar
@@ -1,115 +0,0 @@
1
- # Copyright (c) 2007-2020 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.
21
-
22
- require 'text-table'
23
- require 'facets/string/titlecase'
24
- require 'facets/string/underscore'
25
-
26
- require_relative '../launcher'
27
-
28
- module Glimmer
29
- module RakeTask
30
- # Lists Glimmer related gems to use in rake_task.rb
31
- class Sample
32
- class << self
33
- def glimmer_gems(glimmer_gem_type = '*')
34
- Gem.find_latest_files("glimmer-#{glimmer_gem_type}-*")
35
- end
36
-
37
- def glimmer_gem_libs(glimmer_gem_type = '*')
38
- glimmer_gems(glimmer_gem_type).map {|file| file.sub(/\.rb$/, '')}.uniq.reject {|file| file.include?('glimmer-cs-gladiator')}
39
- end
40
-
41
- def glimmer_gem_samples(glimmer_gem_type = '*')
42
- sample_directories = glimmer_gems(glimmer_gem_type).map do |lib|
43
- File.dirname(File.dirname(lib))
44
- end.select do |gem|
45
- Dir.exist?(File.join(gem, 'samples'))
46
- end.map do |gem|
47
- Dir.glob(File.join(gem, 'samples', '*')).select {|file_or_dir| Dir.exist?(file_or_dir)}
48
- end.flatten.uniq.reverse
49
- if Dir.exist?('samples')
50
- Dir.glob(File.join('samples', '*')).to_a.reverse.each do |dir|
51
- sample_directories << dir if Dir.exist?(dir)
52
- end
53
- end
54
- sample_directories.uniq {|dir| File.basename(dir)}
55
- end
56
-
57
- def run(name)
58
- name = name.underscore.downcase unless name.nil?
59
- samples = glimmer_gem_samples.map {|dir| Dir.glob(File.join(dir, '*.rb'))}.reduce(:+).sort
60
- samples = samples.select {|path| path.include?("#{name}.rb")} unless name.nil?
61
- Rake::Task['glimmer:sample:code'].invoke(name) if samples.size == 1
62
- Glimmer::Launcher.new(samples << '--quiet=false').launch
63
- end
64
-
65
- def list(query)
66
- glimmer_gem_samples.each do |dir|
67
- sample_group_name = File.basename(dir)
68
- human_sample_group_name = sample_group_name.underscore.titlecase
69
- array_of_arrays = Dir.glob(File.join(dir, '*.rb')).map do |path|
70
- File.basename(path, '.rb')
71
- end.select do |path|
72
- query.nil? || path.include?(query)
73
- end.map do |path|
74
- [path, path.underscore.titlecase, "#{'bin/' if Glimmer::Launcher.dev_mode?}glimmer sample:run[#{path}]"]
75
- end.sort
76
- if array_of_arrays.empty?
77
- puts "No Glimmer #{human_sample_group_name} Samples match the query."
78
- else
79
- puts
80
- puts " Glimmer #{human_sample_group_name} Samples:"
81
- puts Text::Table.new(
82
- :head => %w[Name Description Run],
83
- :rows => array_of_arrays,
84
- :horizontal_padding => 1,
85
- :vertical_boundary => ' ',
86
- :horizontal_boundary => ' ',
87
- :boundary_intersection => ' '
88
- )
89
- end
90
- end
91
- end
92
-
93
- def code(name)
94
- require 'tty-markdown' unless OS.windows?
95
- samples = glimmer_gem_samples.map {|dir| Dir.glob(File.join(dir, '*.rb'))}.reduce(:+).sort
96
- sample = samples.detect {|path| path.include?("#{name.to_s.underscore.downcase}.rb")}
97
- sample_additional_files = Dir.glob(File.join(sample.sub('.rb', ''), '**', '*.rb'))
98
- code = ([sample] + sample_additional_files).map do |file|
99
- <<~RUBY
100
-
101
- # #{file}
102
-
103
- #{File.read(file)}
104
-
105
- # # #
106
-
107
- RUBY
108
- end.join("\n")
109
- code = TTY::Markdown.parse("```ruby\n#{code}\n```") unless OS.windows?
110
- puts code
111
- end
112
- end
113
- end
114
- end
115
- end