glimmer-dsl-swt 4.17.4.1 → 4.17.4.2
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 +4 -4
 - data/CHANGELOG.md +6 -0
 - data/README.md +5 -5
 - data/VERSION +1 -1
 - data/glimmer-dsl-swt.gemspec +4 -3
 - data/lib/glimmer/dsl/swt/widget_expression.rb +1 -0
 - data/lib/glimmer/swt/image_proxy.rb +3 -0
 - data/lib/glimmer/swt/sash_form_proxy.rb +1 -1
 - data/lib/glimmer/swt/styled_text_proxy.rb +43 -0
 - data/lib/glimmer/swt/widget_proxy.rb +58 -55
 - data/samples/elaborate/meta_sample.rb +1 -1
 - metadata +3 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: c47c4a09134e8146b6296480549750951211f3a54146d5c3b3136762bd5ee127
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 6d6d3b1909b5dcc33102c50321b5f878b06489f807bea8259123c4c01b8547d8
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 240ae88ff1b8fb6d34833e348dad32ce4c2d17aded1b0579c6955e00e50c399cdbffae1876655f5129079eeef062bad80eb36cacb3d4ff5840e17ae1436e9e4f
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 007670d907089de08b83b48ec968b2394b7ecb4ac4c51156535666aa83ce32647a0ca42a508971058e94d993facfa4a331db6e7b8e44e926245e7b9c5be015f4
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -1,5 +1,11 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # Change Log
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
      
 3 
     | 
    
         
            +
            ### 4.17.4.2
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            - Support StyledText data-binding of caret_offset, selection_count, selection, top_index, and top_pixel, useful for code_text
         
     | 
| 
      
 6 
     | 
    
         
            +
            - Support `width, height` hash options for ImageProxy and image properties on widgets
         
     | 
| 
      
 7 
     | 
    
         
            +
            - Default SWT styles for tool_bar (:border) and tool_item (:push)
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
       3 
9 
     | 
    
         
             
            ### 4.17.4.1
         
     | 
| 
       4 
10 
     | 
    
         | 
| 
       5 
11 
     | 
    
         
             
            - Optimize code_text line style listener algorithm or avoid setting code_text style via listener for performance reasons
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -1,4 +1,4 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=85 />](https://github.com/AndyObtiva/glimmer) Glimmer DSL for SWT 4.17.4. 
     | 
| 
      
 1 
     | 
    
         
            +
            # [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=85 />](https://github.com/AndyObtiva/glimmer) Glimmer DSL for SWT 4.17.4.2
         
     | 
| 
       2 
2 
     | 
    
         
             
            ## JRuby Desktop Development GUI Library
         
     | 
| 
       3 
3 
     | 
    
         
             
            [](http://badge.fury.io/rb/glimmer-dsl-swt)
         
     | 
| 
       4 
4 
     | 
    
         
             
            [](https://travis-ci.com/github/AndyObtiva/glimmer-dsl-swt)
         
     | 
| 
         @@ -10,7 +10,7 @@ 
     | 
|
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
            (The Original Glimmer Library Since 2007. Beware of Imitators!)
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
     | 
    
         
            -
            [ 
     | 
| 
      
 13 
     | 
    
         
            +
            [Glimmer DSL for SWT](https://github.com/AndyObtiva/glimmer) is a native-GUI cross-platform desktop development library written in [JRuby](https://www.jruby.org/), an OS-threaded faster version of [Ruby](https://www.ruby-lang.org/en/). [Glimmer](https://github.com/AndyObtiva/glimmer)'s main innovation is a declarative [Ruby DSL](#glimmer-dsl-syntax) that enables productive and efficient authoring of desktop application user-interfaces while relying on the robust [Eclipse SWT library](https://www.eclipse.org/swt/). [Glimmer](https://rubygems.org/gems/glimmer) additionally innovates by having built-in [data-binding](#data-binding) support, which greatly facilitates synchronizing the GUI with domain models, thus achieving true decoupling of object oriented components and enabling developers to solve business problems (test-first) without worrying about GUI concerns. To get started quickly, [Glimmer](https://rubygems.org/gems/glimmer) offers [scaffolding](#scaffolding) options for [Apps](#in-production), [Gems](#custom-shell-gem), and [Custom Widgets](#custom-widgets). [Glimmer](https://rubygems.org/gems/glimmer) also includes native-executable [packaging](#packaging--distribution) support, sorely lacking in other libraries, thus enabling the delivery of desktop apps written in [Ruby](https://www.ruby-lang.org/en/) as truly native DMG/PKG/APP files on the [Mac](https://www.apple.com/ca/macos) + [App Store](https://developer.apple.com/macos/distribution/), MSI/EXE files on [Windows](https://www.microsoft.com/en-ca/windows), and [Gem Packaged Shell Scripts](#custom-shell-gem) on [Linux](https://www.linux.org/).
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
       15 
15 
     | 
    
         
             
            [Glimmer receives two updates per month](https://rubygems.org/gems/glimmer-dsl-swt/versions). You can trust [Glimmer](https://rubygems.org/gems/glimmer) with your Ruby desktop GUI development needs. Please make [Glimmer](https://rubygems.org/gems/glimmer) even better by providing feedback and [contributing](#contributing) when possible.
         
     | 
| 
       16 
16 
     | 
    
         | 
| 
         @@ -433,7 +433,7 @@ jgem install glimmer-dsl-swt 
     | 
|
| 
       433 
433 
     | 
    
         | 
| 
       434 
434 
     | 
    
         
             
            Or this command if you want a specific version:
         
     | 
| 
       435 
435 
     | 
    
         
             
            ```
         
     | 
| 
       436 
     | 
    
         
            -
            jgem install glimmer-dsl-swt -v 4.17.4. 
     | 
| 
      
 436 
     | 
    
         
            +
            jgem install glimmer-dsl-swt -v 4.17.4.2
         
     | 
| 
       437 
437 
     | 
    
         
             
            ```
         
     | 
| 
       438 
438 
     | 
    
         | 
| 
       439 
439 
     | 
    
         
             
            Note: Gem version numbers are in sync with the SWT library versions. The first two digits represent the SWT version number. The last two digits represent the minor and patch versions of Glimmer DSL for SWT.
         
     | 
| 
         @@ -511,7 +511,7 @@ bin/glimmer samples 
     | 
|
| 
       511 
511 
     | 
    
         
             
            Below are the full usage instructions that come up when running `glimmer` without args.
         
     | 
| 
       512 
512 
     | 
    
         | 
| 
       513 
513 
     | 
    
         
             
            ```
         
     | 
| 
       514 
     | 
    
         
            -
            Glimmer (Ruby Desktop Development GUI Library) - JRuby Gem: glimmer-dsl-swt v4.17.4. 
     | 
| 
      
 514 
     | 
    
         
            +
            Glimmer (Ruby Desktop Development GUI Library) - JRuby Gem: glimmer-dsl-swt v4.17.4.2
         
     | 
| 
       515 
515 
     | 
    
         | 
| 
       516 
516 
     | 
    
         
             
            Usage: glimmer [--bundler] [--pd] [--quiet] [--debug] [--log-level=VALUE] [[ENV_VAR=VALUE]...] [[-jruby-option]...] (application.rb or task[task_args]) [[application2.rb]...]
         
     | 
| 
       517 
517 
     | 
    
         | 
| 
         @@ -988,7 +988,7 @@ Output: 
     | 
|
| 
       988 
988 
     | 
    
         | 
| 
       989 
989 
     | 
    
         
             
              Css    glimmer-dsl-css    1.1.0     AndyMaleh    Glimmer DSL for CSS    
         
     | 
| 
       990 
990 
     | 
    
         
             
              Opal   glimmer-dsl-opal   0.4.0     AndyMaleh    Glimmer DSL for Opal   
         
     | 
| 
       991 
     | 
    
         
            -
              Swt    glimmer-dsl-swt    4.17.4. 
     | 
| 
      
 991 
     | 
    
         
            +
              Swt    glimmer-dsl-swt    4.17.4.2  AndyMaleh    Glimmer DSL for SWT    
         
     | 
| 
       992 
992 
     | 
    
         
             
              Tk     glimmer-dsl-tk     0.0.6     AndyMaleh    Glimmer DSL for Tk     
         
     | 
| 
       993 
993 
     | 
    
         
             
              Xml    glimmer-dsl-xml    1.1.0     AndyMaleh    Glimmer DSL for XML                                                                         
         
     | 
| 
       994 
994 
     | 
    
         
             
            ```
         
     | 
    
        data/VERSION
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            4.17.4. 
     | 
| 
      
 1 
     | 
    
         
            +
            4.17.4.2
         
     | 
    
        data/glimmer-dsl-swt.gemspec
    CHANGED
    
    | 
         @@ -2,16 +2,16 @@ 
     | 
|
| 
       2 
2 
     | 
    
         
             
            # DO NOT EDIT THIS FILE DIRECTLY
         
     | 
| 
       3 
3 
     | 
    
         
             
            # Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
         
     | 
| 
       4 
4 
     | 
    
         
             
            # -*- encoding: utf-8 -*-
         
     | 
| 
       5 
     | 
    
         
            -
            # stub: glimmer-dsl-swt 4.17.4. 
     | 
| 
      
 5 
     | 
    
         
            +
            # stub: glimmer-dsl-swt 4.17.4.2 ruby lib
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
            Gem::Specification.new do |s|
         
     | 
| 
       8 
8 
     | 
    
         
             
              s.name = "glimmer-dsl-swt".freeze
         
     | 
| 
       9 
     | 
    
         
            -
              s.version = "4.17.4. 
     | 
| 
      
 9 
     | 
    
         
            +
              s.version = "4.17.4.2"
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
         
     | 
| 
       12 
12 
     | 
    
         
             
              s.require_paths = ["lib".freeze]
         
     | 
| 
       13 
13 
     | 
    
         
             
              s.authors = ["AndyMaleh".freeze]
         
     | 
| 
       14 
     | 
    
         
            -
              s.date = "2020-10- 
     | 
| 
      
 14 
     | 
    
         
            +
              s.date = "2020-10-23"
         
     | 
| 
       15 
15 
     | 
    
         
             
              s.description = "Glimmer DSL for SWT (JRuby Desktop Development GUI Library)".freeze
         
     | 
| 
       16 
16 
     | 
    
         
             
              s.email = "andy.am@gmail.com".freeze
         
     | 
| 
       17 
17 
     | 
    
         
             
              s.executables = ["glimmer".freeze, "girb".freeze]
         
     | 
| 
         @@ -98,6 +98,7 @@ Gem::Specification.new do |s| 
     | 
|
| 
       98 
98 
     | 
    
         
             
                "lib/glimmer/swt/scrolled_composite_proxy.rb",
         
     | 
| 
       99 
99 
     | 
    
         
             
                "lib/glimmer/swt/shell_proxy.rb",
         
     | 
| 
       100 
100 
     | 
    
         
             
                "lib/glimmer/swt/style_constantizable.rb",
         
     | 
| 
      
 101 
     | 
    
         
            +
                "lib/glimmer/swt/styled_text_proxy.rb",
         
     | 
| 
       101 
102 
     | 
    
         
             
                "lib/glimmer/swt/swt_proxy.rb",
         
     | 
| 
       102 
103 
     | 
    
         
             
                "lib/glimmer/swt/tab_item_proxy.rb",
         
     | 
| 
       103 
104 
     | 
    
         
             
                "lib/glimmer/swt/table_column_proxy.rb",
         
     | 
| 
         @@ -58,6 +58,9 @@ module Glimmer 
     | 
|
| 
       58 
58 
     | 
    
         
             
                    elsif @file_path
         
     | 
| 
       59 
59 
     | 
    
         
             
                      @image_data = ImageData.new(input_stream || @file_path)
         
     | 
| 
       60 
60 
     | 
    
         
             
                      @swt_image = Image.new(DisplayProxy.instance.swt_display, @image_data)
         
     | 
| 
      
 61 
     | 
    
         
            +
                      width = options[:width]
         
     | 
| 
      
 62 
     | 
    
         
            +
                      height = options[:height]
         
     | 
| 
      
 63 
     | 
    
         
            +
                      scale_to(width, height) unless width.nil? || height.nil?
         
     | 
| 
       61 
64 
     | 
    
         
             
                    else
         
     | 
| 
       62 
65 
     | 
    
         
             
                      @swt_image = Image.new(*@args)
         
     | 
| 
       63 
66 
     | 
    
         
             
                      @image_data = @swt_image.image_data
         
     | 
| 
         @@ -0,0 +1,43 @@ 
     | 
|
| 
      
 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 'glimmer/swt/widget_proxy'
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            module Glimmer
         
     | 
| 
      
 25 
     | 
    
         
            +
              module SWT
         
     | 
| 
      
 26 
     | 
    
         
            +
                # Proxy for org.eclipse.swt.custom.StyledText
         
     | 
| 
      
 27 
     | 
    
         
            +
                #
         
     | 
| 
      
 28 
     | 
    
         
            +
                # Follows the Proxy Design Pattern
         
     | 
| 
      
 29 
     | 
    
         
            +
                class StyledTextProxy < WidgetProxy
         
     | 
| 
      
 30 
     | 
    
         
            +
                  def set_attribute(attribute_name, *args)
         
     | 
| 
      
 31 
     | 
    
         
            +
                    if attribute_name.to_s == 'selection'
         
     | 
| 
      
 32 
     | 
    
         
            +
                      if args.first
         
     | 
| 
      
 33 
     | 
    
         
            +
                        async_exec { @swt_widget.setCaretOffset(args.first.x) }
         
     | 
| 
      
 34 
     | 
    
         
            +
                        async_exec { @swt_widget.setSelection(args.first) }
         
     | 
| 
      
 35 
     | 
    
         
            +
                      end
         
     | 
| 
      
 36 
     | 
    
         
            +
                    else
         
     | 
| 
      
 37 
     | 
    
         
            +
                      super(attribute_name, *args)
         
     | 
| 
      
 38 
     | 
    
         
            +
                    end
         
     | 
| 
      
 39 
     | 
    
         
            +
                  end
         
     | 
| 
      
 40 
     | 
    
         
            +
                  
         
     | 
| 
      
 41 
     | 
    
         
            +
                end
         
     | 
| 
      
 42 
     | 
    
         
            +
              end
         
     | 
| 
      
 43 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -44,26 +44,28 @@ module Glimmer 
     | 
|
| 
       44 
44 
     | 
    
         
             
                  include Packages
         
     | 
| 
       45 
45 
     | 
    
         | 
| 
       46 
46 
     | 
    
         
             
                  DEFAULT_STYLES = {
         
     | 
| 
       47 
     | 
    
         
            -
                     
     | 
| 
       48 
     | 
    
         
            -
                     
     | 
| 
       49 
     | 
    
         
            -
                     
     | 
| 
       50 
     | 
    
         
            -
                     
     | 
| 
       51 
     | 
    
         
            -
                     
     | 
| 
       52 
     | 
    
         
            -
                     
     | 
| 
       53 
     | 
    
         
            -
                     
     | 
| 
       54 
     | 
    
         
            -
                     
     | 
| 
       55 
     | 
    
         
            -
                     
     | 
| 
       56 
     | 
    
         
            -
                     
     | 
| 
       57 
     | 
    
         
            -
                     
     | 
| 
       58 
     | 
    
         
            -
                     
     | 
| 
       59 
     | 
    
         
            -
                     
     | 
| 
       60 
     | 
    
         
            -
                     
     | 
| 
       61 
     | 
    
         
            -
                     
     | 
| 
       62 
     | 
    
         
            -
                     
     | 
| 
      
 47 
     | 
    
         
            +
                    'arrow'               => [:arrow],
         
     | 
| 
      
 48 
     | 
    
         
            +
                    'button'              => [:push],
         
     | 
| 
      
 49 
     | 
    
         
            +
                    'checkbox'            => [:check],
         
     | 
| 
      
 50 
     | 
    
         
            +
                    'check'               => [:check],
         
     | 
| 
      
 51 
     | 
    
         
            +
                    'drag_source'         => [:drop_copy],
         
     | 
| 
      
 52 
     | 
    
         
            +
                    'drop_target'         => [:drop_copy],
         
     | 
| 
      
 53 
     | 
    
         
            +
                    'list'                => [:border, :v_scroll],
         
     | 
| 
      
 54 
     | 
    
         
            +
                    'menu_item'           => [:push],
         
     | 
| 
      
 55 
     | 
    
         
            +
                    'radio'               => [:radio],
         
     | 
| 
      
 56 
     | 
    
         
            +
                    'scrolled_composite'  => [:border, :h_scroll, :v_scroll],
         
     | 
| 
      
 57 
     | 
    
         
            +
                    'spinner'             => [:border],
         
     | 
| 
      
 58 
     | 
    
         
            +
                    'styled_text'         => [:border, :multi, :v_scroll, :h_scroll],
         
     | 
| 
      
 59 
     | 
    
         
            +
                    'table'               => [:virtual, :border, :full_selection],
         
     | 
| 
      
 60 
     | 
    
         
            +
                    'text'                => [:border],
         
     | 
| 
      
 61 
     | 
    
         
            +
                    'toggle'              => [:toggle],
         
     | 
| 
      
 62 
     | 
    
         
            +
                    'tool_bar'            => [:push],
         
     | 
| 
      
 63 
     | 
    
         
            +
                    'tool_item'           => [:push],
         
     | 
| 
      
 64 
     | 
    
         
            +
                    'tree'                => [:virtual, :border, :h_scroll, :v_scroll],
         
     | 
| 
       63 
65 
     | 
    
         
             
                  }
         
     | 
| 
       64 
66 
     | 
    
         | 
| 
       65 
67 
     | 
    
         
             
                  DEFAULT_INITIALIZERS = {
         
     | 
| 
       66 
     | 
    
         
            -
                     
     | 
| 
      
 68 
     | 
    
         
            +
                    'composite' => lambda do |composite|
         
     | 
| 
       67 
69 
     | 
    
         
             
                      if composite.get_layout.nil?
         
     | 
| 
       68 
70 
     | 
    
         
             
                        layout = GridLayout.new
         
     | 
| 
       69 
71 
     | 
    
         
             
                        layout.marginWidth = 15
         
     | 
| 
         @@ -71,18 +73,18 @@ module Glimmer 
     | 
|
| 
       71 
73 
     | 
    
         
             
                        composite.layout = layout
         
     | 
| 
       72 
74 
     | 
    
         
             
                      end
         
     | 
| 
       73 
75 
     | 
    
         
             
                    end,
         
     | 
| 
       74 
     | 
    
         
            -
                     
     | 
| 
      
 76 
     | 
    
         
            +
                    'scrolled_composite' => lambda do |scrolled_composite|
         
     | 
| 
       75 
77 
     | 
    
         
             
                      scrolled_composite.expand_horizontal = true
         
     | 
| 
       76 
78 
     | 
    
         
             
                      scrolled_composite.expand_vertical = true
         
     | 
| 
       77 
79 
     | 
    
         
             
                    end,
         
     | 
| 
       78 
     | 
    
         
            -
                     
     | 
| 
      
 80 
     | 
    
         
            +
                    'table' => lambda do |table|
         
     | 
| 
       79 
81 
     | 
    
         
             
                      table.setHeaderVisible(true)
         
     | 
| 
       80 
82 
     | 
    
         
             
                      table.setLinesVisible(true)
         
     | 
| 
       81 
83 
     | 
    
         
             
                    end,
         
     | 
| 
       82 
     | 
    
         
            -
                     
     | 
| 
      
 84 
     | 
    
         
            +
                    'table_column' => lambda do |table_column|
         
     | 
| 
       83 
85 
     | 
    
         
             
                      table_column.setWidth(80)
         
     | 
| 
       84 
86 
     | 
    
         
             
                    end,
         
     | 
| 
       85 
     | 
    
         
            -
                     
     | 
| 
      
 87 
     | 
    
         
            +
                    'group' => lambda do |group|
         
     | 
| 
       86 
88 
     | 
    
         
             
                      group.layout = GridLayout.new if group.get_layout.nil?
         
     | 
| 
       87 
89 
     | 
    
         
             
                    end,
         
     | 
| 
       88 
90 
     | 
    
         
             
                  }
         
     | 
| 
         @@ -216,7 +218,11 @@ module Glimmer 
     | 
|
| 
       216 
218 
     | 
    
         
             
                  def get_attribute(attribute_name)
         
     | 
| 
       217 
219 
     | 
    
         
             
                    widget_custom_attribute = widget_custom_attribute_mapping[attribute_name.to_s]
         
     | 
| 
       218 
220 
     | 
    
         
             
                    if widget_custom_attribute
         
     | 
| 
       219 
     | 
    
         
            -
                       
     | 
| 
      
 221 
     | 
    
         
            +
                      if widget_custom_attribute[:getter][:invoker]
         
     | 
| 
      
 222 
     | 
    
         
            +
                        widget_custom_attribute[:getter][:invoker].call(@swt_widget, [])
         
     | 
| 
      
 223 
     | 
    
         
            +
                      else
         
     | 
| 
      
 224 
     | 
    
         
            +
                        @swt_widget.send(widget_custom_attribute[:getter][:name])
         
     | 
| 
      
 225 
     | 
    
         
            +
                      end
         
     | 
| 
       220 
226 
     | 
    
         
             
                    else
         
     | 
| 
       221 
227 
     | 
    
         
             
                      @swt_widget.send(attribute_getter(attribute_name))
         
     | 
| 
       222 
228 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -330,43 +336,33 @@ module Glimmer 
     | 
|
| 
       330 
336 
     | 
    
         
             
                          }
         
     | 
| 
       331 
337 
     | 
    
         
             
                        end,
         
     | 
| 
       332 
338 
     | 
    
         
             
                        :caret_position => lambda do |observer|
         
     | 
| 
       333 
     | 
    
         
            -
                          on_swt_keydown { |event|
         
     | 
| 
       334 
     | 
    
         
            -
                            observer.call(@swt_widget.getCaretPosition)
         
     | 
| 
       335 
     | 
    
         
            -
                          }
         
     | 
| 
       336 
339 
     | 
    
         
             
                          on_swt_keyup { |event|
         
     | 
| 
       337 
     | 
    
         
            -
                            observer.call(@swt_widget. 
     | 
| 
      
 340 
     | 
    
         
            +
                            observer.call(@swt_widget.getCaretOffset)
         
     | 
| 
       338 
341 
     | 
    
         
             
                          }
         
     | 
| 
       339 
     | 
    
         
            -
                           
     | 
| 
       340 
     | 
    
         
            -
                            observer.call(@swt_widget. 
     | 
| 
      
 342 
     | 
    
         
            +
                          on_swt_mouseup { |event|
         
     | 
| 
      
 343 
     | 
    
         
            +
                            observer.call(@swt_widget.getCaretOffset)
         
     | 
| 
      
 344 
     | 
    
         
            +
                          }
         
     | 
| 
      
 345 
     | 
    
         
            +
                        end,
         
     | 
| 
      
 346 
     | 
    
         
            +
                        :caret_offset => lambda do |observer|
         
     | 
| 
      
 347 
     | 
    
         
            +
                          on_swt_keyup { |event|
         
     | 
| 
      
 348 
     | 
    
         
            +
                            observer.call(@swt_widget.getCaretOffset)
         
     | 
| 
       341 
349 
     | 
    
         
             
                          }
         
     | 
| 
       342 
350 
     | 
    
         
             
                          on_swt_mouseup { |event|
         
     | 
| 
       343 
     | 
    
         
            -
                            observer.call(@swt_widget. 
     | 
| 
      
 351 
     | 
    
         
            +
                            observer.call(@swt_widget.getCaretOffset)
         
     | 
| 
       344 
352 
     | 
    
         
             
                          }
         
     | 
| 
       345 
353 
     | 
    
         
             
                        end,
         
     | 
| 
       346 
354 
     | 
    
         
             
                        :selection => lambda do |observer|
         
     | 
| 
       347 
     | 
    
         
            -
                          on_swt_keydown { |event|
         
     | 
| 
       348 
     | 
    
         
            -
                            observer.call(@swt_widget.getSelection)
         
     | 
| 
       349 
     | 
    
         
            -
                          }
         
     | 
| 
       350 
355 
     | 
    
         
             
                          on_swt_keyup { |event|
         
     | 
| 
       351 
     | 
    
         
            -
                            observer.call(@swt_widget.getSelection)
         
     | 
| 
       352 
     | 
    
         
            -
                          }
         
     | 
| 
       353 
     | 
    
         
            -
                          on_swt_mousedown { |event|
         
     | 
| 
       354 
     | 
    
         
            -
                            observer.call(@swt_widget.getSelection)
         
     | 
| 
      
 356 
     | 
    
         
            +
                            observer.call(@swt_widget.getSelection) unless @swt_widget.getSelection.x == 0 && @swt_widget.getSelection.y == 0
         
     | 
| 
       355 
357 
     | 
    
         
             
                          }
         
     | 
| 
       356 
358 
     | 
    
         
             
                          on_swt_mouseup { |event|
         
     | 
| 
       357 
     | 
    
         
            -
                            observer.call(@swt_widget.getSelection)
         
     | 
| 
      
 359 
     | 
    
         
            +
                            observer.call(@swt_widget.getSelection) unless @swt_widget.getSelection.x == 0 && @swt_widget.getSelection.y == 0
         
     | 
| 
       358 
360 
     | 
    
         
             
                          }
         
     | 
| 
       359 
361 
     | 
    
         
             
                        end,
         
     | 
| 
       360 
362 
     | 
    
         
             
                        :selection_count => lambda do |observer|
         
     | 
| 
       361 
     | 
    
         
            -
                          on_swt_keydown { |event|
         
     | 
| 
       362 
     | 
    
         
            -
                            observer.call(@swt_widget.getSelectionCount)
         
     | 
| 
       363 
     | 
    
         
            -
                          }
         
     | 
| 
       364 
363 
     | 
    
         
             
                          on_swt_keyup { |event|
         
     | 
| 
       365 
364 
     | 
    
         
             
                            observer.call(@swt_widget.getSelectionCount)
         
     | 
| 
       366 
365 
     | 
    
         
             
                          }
         
     | 
| 
       367 
     | 
    
         
            -
                          on_swt_mousedown { |event|
         
     | 
| 
       368 
     | 
    
         
            -
                            observer.call(@swt_widget.getSelectionCount)
         
     | 
| 
       369 
     | 
    
         
            -
                          }
         
     | 
| 
       370 
366 
     | 
    
         
             
                          on_swt_mouseup { |event|
         
     | 
| 
       371 
367 
     | 
    
         
             
                            observer.call(@swt_widget.getSelectionCount)
         
     | 
| 
       372 
368 
     | 
    
         
             
                          }
         
     | 
| 
         @@ -380,6 +376,15 @@ module Glimmer 
     | 
|
| 
       380 
376 
     | 
    
         
             
                            end
         
     | 
| 
       381 
377 
     | 
    
         
             
                          }
         
     | 
| 
       382 
378 
     | 
    
         
             
                        end,            
         
     | 
| 
      
 379 
     | 
    
         
            +
                        :top_pixel => lambda do |observer|
         
     | 
| 
      
 380 
     | 
    
         
            +
                          @last_top_pixel = @swt_widget.getTopPixel
         
     | 
| 
      
 381 
     | 
    
         
            +
                          on_paint_control { |event|
         
     | 
| 
      
 382 
     | 
    
         
            +
                            if @swt_widget.getTopPixel != @last_top_pixel
         
     | 
| 
      
 383 
     | 
    
         
            +
                              @last_top_pixel = @swt_widget.getTopPixel
         
     | 
| 
      
 384 
     | 
    
         
            +
                              observer.call(@last_top_pixel)
         
     | 
| 
      
 385 
     | 
    
         
            +
                            end
         
     | 
| 
      
 386 
     | 
    
         
            +
                          }
         
     | 
| 
      
 387 
     | 
    
         
            +
                        end,
         
     | 
| 
       383 
388 
     | 
    
         
             
                      },
         
     | 
| 
       384 
389 
     | 
    
         
             
                      Java::OrgEclipseSwtWidgets::Button => {
         
     | 
| 
       385 
390 
     | 
    
         
             
                        :selection => lambda do |observer|
         
     | 
| 
         @@ -660,20 +665,20 @@ module Glimmer 
     | 
|
| 
       660 
665 
     | 
    
         
             
                  end
         
     | 
| 
       661 
666 
     | 
    
         | 
| 
       662 
667 
     | 
    
         
             
                  def widget_custom_attribute_mapping
         
     | 
| 
      
 668 
     | 
    
         
            +
                    # TODO scope per widget class type just like other mappings
         
     | 
| 
       663 
669 
     | 
    
         
             
                    @swt_widget_custom_attribute_mapping ||= {
         
     | 
| 
       664 
670 
     | 
    
         
             
                      'focus' => {
         
     | 
| 
       665 
671 
     | 
    
         
             
                        getter: {name: 'isFocusControl'},
         
     | 
| 
       666 
672 
     | 
    
         
             
                        setter: {name: 'setFocus', invoker: lambda { |widget, args| @swt_widget.setFocus if args.first }},
         
     | 
| 
       667 
673 
     | 
    
         
             
                      },
         
     | 
| 
       668 
674 
     | 
    
         
             
                      'caret_position' => {
         
     | 
| 
       669 
     | 
    
         
            -
                        getter: {name: 'getCaretPosition'},
         
     | 
| 
      
 675 
     | 
    
         
            +
                        getter: {name: 'getCaretPosition', invoker: lambda { |widget, args| @swt_widget.respond_to?(:getCaretPosition) ? @swt_widget.getCaretPosition : @swt_widget.getCaretOffset}},
         
     | 
| 
       670 
676 
     | 
    
         
             
                        setter: {name: 'setSelection', invoker: lambda { |widget, args| @swt_widget.setSelection(args.first) if args.first }},
         
     | 
| 
       671 
677 
     | 
    
         
             
                      },
         
     | 
| 
       672 
678 
     | 
    
         
             
                      'selection_count' => {
         
     | 
| 
       673 
679 
     | 
    
         
             
                        getter: {name: 'getSelectionCount'},
         
     | 
| 
       674 
680 
     | 
    
         
             
                        setter: {name: 'setSelection', invoker: lambda { |widget, args| 
         
     | 
| 
       675 
     | 
    
         
            -
                           
     | 
| 
       676 
     | 
    
         
            -
                          caret_position = @swt_widget.getCaretPosition rescue @swt_widget.getCaretOffset
         
     | 
| 
      
 681 
     | 
    
         
            +
                          caret_position = @swt_widget.respond_to?(:getCaretPosition) ? @swt_widget.getCaretPosition : @swt_widget.getCaretOffset
         
     | 
| 
       677 
682 
     | 
    
         
             
                          @swt_widget.setSelection(caret_position, caret_position + args.first) if args.first 
         
     | 
| 
       678 
683 
     | 
    
         
             
                        }},
         
     | 
| 
       679 
684 
     | 
    
         
             
                      },
         
     | 
| 
         @@ -713,11 +718,9 @@ module Glimmer 
     | 
|
| 
       713 
718 
     | 
    
         
             
                  end
         
     | 
| 
       714 
719 
     | 
    
         | 
| 
       715 
720 
     | 
    
         
             
                  def apply_property_type_converters(attribute_name, args)
         
     | 
| 
       716 
     | 
    
         
            -
                     
     | 
| 
       717 
     | 
    
         
            -
             
     | 
| 
       718 
     | 
    
         
            -
             
     | 
| 
       719 
     | 
    
         
            -
                      args[0] = converter.call(value) if converter
         
     | 
| 
       720 
     | 
    
         
            -
                    end
         
     | 
| 
      
 721 
     | 
    
         
            +
                    value = args
         
     | 
| 
      
 722 
     | 
    
         
            +
                    converter = property_type_converters[attribute_name.to_sym]
         
     | 
| 
      
 723 
     | 
    
         
            +
                    args[0..-1] = [converter.call(*value)] if converter
         
     | 
| 
       721 
724 
     | 
    
         
             
                    if args.count == 1 && args.first.is_a?(ColorProxy)
         
     | 
| 
       722 
725 
     | 
    
         
             
                      g_color = args.first
         
     | 
| 
       723 
726 
     | 
    
         
             
                      args[0] = g_color.swt_color
         
     | 
| 
         @@ -738,8 +741,8 @@ module Glimmer 
     | 
|
| 
       738 
741 
     | 
    
         
             
                        SWTProxy[*value]
         
     | 
| 
       739 
742 
     | 
    
         
             
                      },
         
     | 
| 
       740 
743 
     | 
    
         
             
                      :background => color_converter,
         
     | 
| 
       741 
     | 
    
         
            -
                      :background_image => lambda do  
     | 
| 
       742 
     | 
    
         
            -
                        image_proxy = ImageProxy.create(value)
         
     | 
| 
      
 744 
     | 
    
         
            +
                      :background_image => lambda do |*value|
         
     | 
| 
      
 745 
     | 
    
         
            +
                        image_proxy = ImageProxy.create(*value)
         
     | 
| 
       743 
746 
     | 
    
         | 
| 
       744 
747 
     | 
    
         
             
                        if image_proxy&.file_path&.end_with?('.gif')
         
     | 
| 
       745 
748 
     | 
    
         
             
                          image = image_proxy.swt_image
         
     | 
| 
         @@ -797,8 +800,8 @@ module Glimmer 
     | 
|
| 
       797 
800 
     | 
    
         
             
                          value
         
     | 
| 
       798 
801 
     | 
    
         
             
                        end
         
     | 
| 
       799 
802 
     | 
    
         
             
                      end,
         
     | 
| 
       800 
     | 
    
         
            -
                      :image => lambda do  
     | 
| 
       801 
     | 
    
         
            -
                        ImageProxy.create(value).swt_image
         
     | 
| 
      
 803 
     | 
    
         
            +
                      :image => lambda do |*value|
         
     | 
| 
      
 804 
     | 
    
         
            +
                        ImageProxy.create(*value).swt_image
         
     | 
| 
       802 
805 
     | 
    
         
             
                      end,
         
     | 
| 
       803 
806 
     | 
    
         
             
                      :images => lambda do |array|
         
     | 
| 
       804 
807 
     | 
    
         
             
                        array.to_a.map do |value|
         
     | 
    
        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.4. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 4.17.4.2
         
     | 
| 
       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- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2020-10-23 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -398,6 +398,7 @@ files: 
     | 
|
| 
       398 
398 
     | 
    
         
             
            - lib/glimmer/swt/scrolled_composite_proxy.rb
         
     | 
| 
       399 
399 
     | 
    
         
             
            - lib/glimmer/swt/shell_proxy.rb
         
     | 
| 
       400 
400 
     | 
    
         
             
            - lib/glimmer/swt/style_constantizable.rb
         
     | 
| 
      
 401 
     | 
    
         
            +
            - lib/glimmer/swt/styled_text_proxy.rb
         
     | 
| 
       401 
402 
     | 
    
         
             
            - lib/glimmer/swt/swt_proxy.rb
         
     | 
| 
       402 
403 
     | 
    
         
             
            - lib/glimmer/swt/tab_item_proxy.rb
         
     | 
| 
       403 
404 
     | 
    
         
             
            - lib/glimmer/swt/table_column_proxy.rb
         
     |