glimmer-dsl-swt 4.20.8.0 → 4.20.9.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 +4 -4
 - data/CHANGELOG.md +4 -0
 - data/README.md +5 -5
 - data/VERSION +1 -1
 - data/docs/reference/GLIMMER_GUI_DSL_SYNTAX.md +3 -2
 - data/glimmer-dsl-swt.gemspec +0 -0
 - data/lib/glimmer/swt/custom/animation.rb +10 -2
 - data/samples/hello/hello_canvas_animation.rb +30 -11
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 67146280061b1d25faa20a00e53ee4afed1f45c28ab2e7fd8054b528db26076c
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 8c5a14a627a19f5247bf49ed7b73aeed59b057b6eabeab6d6a554c7828a4885b
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: aa70e97297e9d502fad7fa4456e161302aa32ba9c44bf6ee7a7d4aabca2fcdb1ade0946c912f3c705987238738fdb5be4a9c0c9615638dabf891f58ed128a656
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: a72892383f756b6b990ce37ed319fa6f36de7a4d8832ea380921cd4a6bcda827f43f94dfa4419843ab146804081a9b6393c29f21a55056ffd94b870811c42a3b
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    
    
        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.20. 
     | 
| 
      
 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.20.9.0
         
     | 
| 
       2 
2 
     | 
    
         
             
            ## JRuby Desktop Development GUI Framework
         
     | 
| 
       3 
3 
     | 
    
         
             
            [](http://badge.fury.io/rb/glimmer-dsl-swt)
         
     | 
| 
       4 
4 
     | 
    
         
             
            [](https://travis-ci.com/github/AndyObtiva/glimmer-dsl-swt)
         
     | 
| 
         @@ -15,7 +15,7 @@ 
     | 
|
| 
       15 
15 
     | 
    
         
             
            [<img src="https://covers.oreillystatic.com/images/9780596519650/lrg.jpg" width=105 /><br />
         
     | 
| 
       16 
16 
     | 
    
         
             
            Featured in JRuby Cookbook](http://shop.oreilly.com/product/9780596519650.do) and [Chalmers/Gothenburg University Software Engineering Master's Lecture Material](http://www.cse.chalmers.se/~bergert/slides/guest_lecture_DSLs.pdf)
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
       18 
     | 
    
         
            -
            [Glimmer DSL for SWT](https://rubygems.org/gems/glimmer-dsl-swt) 4.20. 
     | 
| 
      
 18 
     | 
    
         
            +
            [Glimmer DSL for SWT](https://rubygems.org/gems/glimmer-dsl-swt) 4.20.9.0 includes [SWT 4.20](https://download.eclipse.org/eclipse/downloads/drops4/R-4.20-202106111600/), which was released on June 11, 2021. 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. Note that SWT now supports AARCH64 on Mac and Linux, but it is not fully tested in Glimmer DSL for SWT yet, so deem its support experimental for the time being without guarantees for functionality until declared otherwise (report any issues you may encounter).
         
     | 
| 
       19 
19 
     | 
    
         | 
| 
       20 
20 
     | 
    
         
             
            **Starting in version 4.20.0.0, [Glimmer DSL for SWT](https://rubygems.org/gems/glimmer-dsl-swt) comes with the new [***Shine***](/docs/reference/GLIMMER_GUI_DSL_SYNTAX.md#shine) syntax** for highly intuitive and visually expressive View/Model Attribute Mapping, relying on `<=>` for bidirectional (two-way) data-binding and `<=` for unidirectional (one-way) data-binding, providing an alternative to the `bind` keyword (keep in mind that it is still a beta, so default back to `bind` whenever needed).
         
     | 
| 
       21 
21 
     | 
    
         | 
| 
         @@ -347,7 +347,7 @@ jgem install glimmer-dsl-swt 
     | 
|
| 
       347 
347 
     | 
    
         | 
| 
       348 
348 
     | 
    
         
             
            Or this command if you want a specific version:
         
     | 
| 
       349 
349 
     | 
    
         
             
            ```
         
     | 
| 
       350 
     | 
    
         
            -
            jgem install glimmer-dsl-swt -v 4.20. 
     | 
| 
      
 350 
     | 
    
         
            +
            jgem install glimmer-dsl-swt -v 4.20.9.0
         
     | 
| 
       351 
351 
     | 
    
         
             
            ```
         
     | 
| 
       352 
352 
     | 
    
         | 
| 
       353 
353 
     | 
    
         
             
            `jgem` is JRuby's version of `gem` command.
         
     | 
| 
         @@ -375,7 +375,7 @@ Note: if you're using activerecord or activesupport, keep in mind that Glimmer u 
     | 
|
| 
       375 
375 
     | 
    
         | 
| 
       376 
376 
     | 
    
         
             
            Add the following to `Gemfile`:
         
     | 
| 
       377 
377 
     | 
    
         
             
            ```
         
     | 
| 
       378 
     | 
    
         
            -
            gem 'glimmer-dsl-swt', '~> 4.20. 
     | 
| 
      
 378 
     | 
    
         
            +
            gem 'glimmer-dsl-swt', '~> 4.20.9.0'
         
     | 
| 
       379 
379 
     | 
    
         
             
            ```
         
     | 
| 
       380 
380 
     | 
    
         | 
| 
       381 
381 
     | 
    
         
             
            And, then run:
         
     | 
| 
         @@ -396,7 +396,7 @@ glimmer 
     | 
|
| 
       396 
396 
     | 
    
         
             
            ```
         
     | 
| 
       397 
397 
     | 
    
         | 
| 
       398 
398 
     | 
    
         
             
            ```
         
     | 
| 
       399 
     | 
    
         
            -
            Glimmer (JRuby Desktop Development GUI Framework) - JRuby Gem: glimmer-dsl-swt v4.20. 
     | 
| 
      
 399 
     | 
    
         
            +
            Glimmer (JRuby Desktop Development GUI Framework) - JRuby Gem: glimmer-dsl-swt v4.20.9.0
         
     | 
| 
       400 
400 
     | 
    
         | 
| 
       401 
401 
     | 
    
         
             
            Usage: glimmer [--bundler] [--pd] [--quiet] [--debug] [--log-level=VALUE] [[ENV_VAR=VALUE]...] [[-jruby-option]...] (application.rb or task[task_args]) [[application2.rb]...]
         
     | 
| 
       402 
402 
     | 
    
         | 
    
        data/VERSION
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            4.20. 
     | 
| 
      
 1 
     | 
    
         
            +
            4.20.9.0
         
     | 
| 
         @@ -2239,7 +2239,7 @@ Learn more at the [Hello, Canvas Transform! Sample](GLIMMER_SAMPLES.md#hello-can 
     | 
|
| 
       2239 
2239 
     | 
    
         | 
| 
       2240 
2240 
     | 
    
         
             
            ### Canvas Animation DSL
         
     | 
| 
       2241 
2241 
     | 
    
         | 
| 
       2242 
     | 
    
         
            -
            **(ALPHA FEATURE)**
         
     | 
| 
      
 2242 
     | 
    
         
            +
            **(EXPERIMENTAL EARLY ALPHA FEATURE)**
         
     | 
| 
       2243 
2243 
     | 
    
         | 
| 
       2244 
2244 
     | 
    
         
             
            (note: this is a very new feature of Glimmer. It may change a bit while getting battle tested. As always, you could default to basic SWT usage if needed.)
         
     | 
| 
       2245 
2245 
     | 
    
         | 
| 
         @@ -2281,7 +2281,8 @@ Screenshot: 
     | 
|
| 
       2281 
2281 
     | 
    
         | 
| 
       2282 
2282 
     | 
    
         
             
            Keywords:
         
     | 
| 
       2283 
2283 
     | 
    
         
             
            - `animation` declares an animation under a canvas, which renders frames using a frame block indefinitely or finitely depending on (cycle_count/frame_count) properties
         
     | 
| 
       2284 
     | 
    
         
            -
            - `every` specifies delay in seconds between every two frame renders
         
     | 
| 
      
 2284 
     | 
    
         
            +
            - `every` specifies delay in seconds between every two frame renders (an alternative to `fps`, cannot use together)
         
     | 
| 
      
 2285 
     | 
    
         
            +
            - `fps` (alias: `frame_rate`) specifies frame rate as frames per second (an alternative to `every`, cannot use together)
         
     | 
| 
       2285 
2286 
     | 
    
         
             
            - `frame {|index, cycle_var| }` a block that can contain Shape DSL syntax that is rendered dynamically with variables calculated on the fly
         
     | 
| 
       2286 
2287 
     | 
    
         
             
            - `cycle` an optional property that takes an array to cycle into a second variable for the `frame` block
         
     | 
| 
       2287 
2288 
     | 
    
         
             
            - `cycle_count` an optional cycle count limit after which the animation stops (finishes)
         
     | 
    
        data/glimmer-dsl-swt.gemspec
    CHANGED
    
    | 
         Binary file 
     | 
| 
         @@ -21,6 +21,7 @@ 
     | 
|
| 
       21 
21 
     | 
    
         | 
| 
       22 
22 
     | 
    
         
             
            require 'glimmer/swt/properties'
         
     | 
| 
       23 
23 
     | 
    
         
             
            require 'glimmer/swt/custom/shape'
         
     | 
| 
      
 24 
     | 
    
         
            +
            require 'bigdecimal'
         
     | 
| 
       24 
25 
     | 
    
         | 
| 
       25 
26 
     | 
    
         
             
            module Glimmer
         
     | 
| 
       26 
27 
     | 
    
         
             
              module SWT
         
     | 
| 
         @@ -79,10 +80,12 @@ module Glimmer 
     | 
|
| 
       79 
80 
     | 
    
         
             
                    end
         
     | 
| 
       80 
81 
     | 
    
         | 
| 
       81 
82 
     | 
    
         
             
                    attr_reader :parent, :options
         
     | 
| 
       82 
     | 
    
         
            -
                    attr_accessor :frame_index, :cycle, :frame_block, :every, :cycle_count, :frame_count, :started, :duration_limit, :duration, :finished, :cycle_count_index
         
     | 
| 
      
 83 
     | 
    
         
            +
                    attr_accessor :frame_index, :cycle, :frame_block, :every, :fps, :cycle_count, :frame_count, :started, :duration_limit, :duration, :finished, :cycle_count_index
         
     | 
| 
       83 
84 
     | 
    
         
             
                    alias current_frame_index frame_index
         
     | 
| 
       84 
85 
     | 
    
         
             
                    alias started? started
         
     | 
| 
       85 
86 
     | 
    
         
             
                    alias finished? finished
         
     | 
| 
      
 87 
     | 
    
         
            +
                    alias frame_rate fps
         
     | 
| 
      
 88 
     | 
    
         
            +
                    alias frame_rate= fps=
         
     | 
| 
       86 
89 
     | 
    
         
             
                    # TODO consider supporting an async: false option
         
     | 
| 
       87 
90 
     | 
    
         | 
| 
       88 
91 
     | 
    
         
             
                    def initialize(parent)
         
     | 
| 
         @@ -266,7 +269,12 @@ module Glimmer 
     | 
|
| 
       266 
269 
     | 
    
         
             
                      end
         
     | 
| 
       267 
270 
     | 
    
         
             
                      self.frame_index += 1
         
     | 
| 
       268 
271 
     | 
    
         
             
                      self.cycle_count_index += 1 if cycle_limited? && (@frame_index % @cycle&.length&.to_i) == 0
         
     | 
| 
       269 
     | 
    
         
            -
                       
     | 
| 
      
 272 
     | 
    
         
            +
                      # TODO consider using timer_exec as a perhaps more reliable alternative
         
     | 
| 
      
 273 
     | 
    
         
            +
                      if every.is_a?(Numeric) && every > 0
         
     | 
| 
      
 274 
     | 
    
         
            +
                        sleep(every)
         
     | 
| 
      
 275 
     | 
    
         
            +
                      elsif fps.is_a?(Numeric) && fps > 0
         
     | 
| 
      
 276 
     | 
    
         
            +
                        sleep((BigDecimal(1.0.to_s) / BigDecimal(fps.to_f.to_s)).to_f)
         
     | 
| 
      
 277 
     | 
    
         
            +
                      end
         
     | 
| 
       270 
278 
     | 
    
         
             
                      true
         
     | 
| 
       271 
279 
     | 
    
         
             
                    rescue => e
         
     | 
| 
       272 
280 
     | 
    
         
             
                      Glimmer::Config.logger.error {e}
         
     | 
| 
         @@ -25,11 +25,11 @@ require 'bigdecimal' 
     | 
|
| 
       25 
25 
     | 
    
         
             
            class HelloCanvasAnimation
         
     | 
| 
       26 
26 
     | 
    
         
             
              include Glimmer::UI::CustomShell
         
     | 
| 
       27 
27 
     | 
    
         | 
| 
       28 
     | 
    
         
            -
               
     | 
| 
       29 
     | 
    
         
            -
              attr_accessor :animation_every, :animation_frame_count, :animation_duration_limit, :animation_started, :animation_finished
         
     | 
| 
      
 28 
     | 
    
         
            +
              attr_accessor :animation_every, :animation_fps, :animation_frame_count, :animation_duration_limit, :animation_started, :animation_finished
         
     | 
| 
       30 
29 
     | 
    
         | 
| 
       31 
30 
     | 
    
         
             
              before_body {
         
     | 
| 
       32 
31 
     | 
    
         
             
                @animation_every = 0.050 # seconds
         
     | 
| 
      
 32 
     | 
    
         
            +
                @animation_fps = 0
         
     | 
| 
       33 
33 
     | 
    
         
             
                @animation_frame_count = 100
         
     | 
| 
       34 
34 
     | 
    
         
             
                @animation_duration_limit = 0 # seconds
         
     | 
| 
       35 
35 
     | 
    
         
             
                @animation_started = true
         
     | 
| 
         @@ -69,14 +69,14 @@ class HelloCanvasAnimation 
     | 
|
| 
       69 
69 
     | 
    
         
             
                    text 'every'
         
     | 
| 
       70 
70 
     | 
    
         
             
                  }
         
     | 
| 
       71 
71 
     | 
    
         
             
                  label {
         
     | 
| 
       72 
     | 
    
         
            -
                    text ' 
     | 
| 
      
 72 
     | 
    
         
            +
                    text 'frames per second'
         
     | 
| 
       73 
73 
     | 
    
         
             
                  }
         
     | 
| 
       74 
74 
     | 
    
         | 
| 
       75 
75 
     | 
    
         
             
                  # row 3
         
     | 
| 
       76 
76 
     | 
    
         
             
                  spinner {
         
     | 
| 
       77 
77 
     | 
    
         
             
                    layout_data(:fill, :center, true, false)
         
     | 
| 
       78 
78 
     | 
    
         
             
                    digits 3
         
     | 
| 
       79 
     | 
    
         
            -
                    minimum  
     | 
| 
      
 79 
     | 
    
         
            +
                    minimum 0
         
     | 
| 
       80 
80 
     | 
    
         
             
                    maximum 100
         
     | 
| 
       81 
81 
     | 
    
         
             
                    selection <=> [self, :animation_every, on_read: ->(v) {(BigDecimal(v.to_s)*1000).to_f}, on_write: ->(v) {(BigDecimal(v.to_s)/1000).to_f}]
         
     | 
| 
       82 
82 
     | 
    
         
             
                  }
         
     | 
| 
         @@ -84,16 +84,24 @@ class HelloCanvasAnimation 
     | 
|
| 
       84 
84 
     | 
    
         
             
                    layout_data(:fill, :center, true, false)
         
     | 
| 
       85 
85 
     | 
    
         
             
                    minimum 0
         
     | 
| 
       86 
86 
     | 
    
         
             
                    maximum 100
         
     | 
| 
       87 
     | 
    
         
            -
                    selection <=> [self, : 
     | 
| 
      
 87 
     | 
    
         
            +
                    selection <=> [self, :animation_fps]
         
     | 
| 
       88 
88 
     | 
    
         
             
                  }
         
     | 
| 
       89 
89 
     | 
    
         | 
| 
       90 
90 
     | 
    
         
             
                  # row 4
         
     | 
| 
      
 91 
     | 
    
         
            +
                  label {
         
     | 
| 
      
 92 
     | 
    
         
            +
                    text 'frame count (0=unlimited)'
         
     | 
| 
      
 93 
     | 
    
         
            +
                  }
         
     | 
| 
       91 
94 
     | 
    
         
             
                  label {
         
     | 
| 
       92 
95 
     | 
    
         
             
                    text 'duration limit (0=unlimited)'
         
     | 
| 
       93 
96 
     | 
    
         
             
                  }
         
     | 
| 
       94 
     | 
    
         
            -
                  label # filler
         
     | 
| 
       95 
97 
     | 
    
         | 
| 
       96 
98 
     | 
    
         
             
                  # row 5
         
     | 
| 
      
 99 
     | 
    
         
            +
                  spinner {
         
     | 
| 
      
 100 
     | 
    
         
            +
                    layout_data(:fill, :center, true, false)
         
     | 
| 
      
 101 
     | 
    
         
            +
                    minimum 0
         
     | 
| 
      
 102 
     | 
    
         
            +
                    maximum 100
         
     | 
| 
      
 103 
     | 
    
         
            +
                    selection <=> [self, :animation_frame_count]
         
     | 
| 
      
 104 
     | 
    
         
            +
                  }
         
     | 
| 
       97 
105 
     | 
    
         
             
                  spinner {
         
     | 
| 
       98 
106 
     | 
    
         
             
                    layout_data(:fill, :center, true, false)
         
     | 
| 
       99 
107 
     | 
    
         
             
                    minimum 0
         
     | 
| 
         @@ -108,11 +116,12 @@ class HelloCanvasAnimation 
     | 
|
| 
       108 
116 
     | 
    
         
             
                      height_hint 320
         
     | 
| 
       109 
117 
     | 
    
         
             
                    }
         
     | 
| 
       110 
118 
     | 
    
         
             
                    @animation = animation {
         
     | 
| 
       111 
     | 
    
         
            -
                      every 
     | 
| 
       112 
     | 
    
         
            -
                       
     | 
| 
       113 
     | 
    
         
            -
                       
     | 
| 
       114 
     | 
    
         
            -
                       
     | 
| 
       115 
     | 
    
         
            -
                       
     | 
| 
      
 119 
     | 
    
         
            +
                      every          <=  [self, :animation_every]
         
     | 
| 
      
 120 
     | 
    
         
            +
                      fps            <=  [self, :animation_fps]
         
     | 
| 
      
 121 
     | 
    
         
            +
                      frame_count    <=  [self, :animation_frame_count]
         
     | 
| 
      
 122 
     | 
    
         
            +
                      duration_limit <=  [self, :animation_duration_limit]
         
     | 
| 
      
 123 
     | 
    
         
            +
                      started        <=> [self, :animation_started]
         
     | 
| 
      
 124 
     | 
    
         
            +
                      finished       <=> [self, :animation_finished]
         
     | 
| 
       116 
125 
     | 
    
         | 
| 
       117 
126 
     | 
    
         
             
                      frame { |index|
         
     | 
| 
       118 
127 
     | 
    
         
             
                        background rgb(index%100, index%100 + 100, index%55 + 200)
         
     | 
| 
         @@ -124,6 +133,16 @@ class HelloCanvasAnimation 
     | 
|
| 
       124 
133 
     | 
    
         
             
                  }
         
     | 
| 
       125 
134 
     | 
    
         
             
                }
         
     | 
| 
       126 
135 
     | 
    
         
             
              }
         
     | 
| 
      
 136 
     | 
    
         
            +
              
         
     | 
| 
      
 137 
     | 
    
         
            +
              def animation_every=(value)
         
     | 
| 
      
 138 
     | 
    
         
            +
                @animation_every = value
         
     | 
| 
      
 139 
     | 
    
         
            +
                self.animation_fps = 0 if @animation_every.to_f > 0
         
     | 
| 
      
 140 
     | 
    
         
            +
              end
         
     | 
| 
      
 141 
     | 
    
         
            +
              
         
     | 
| 
      
 142 
     | 
    
         
            +
              def animation_fps=(value)
         
     | 
| 
      
 143 
     | 
    
         
            +
                @animation_fps = value
         
     | 
| 
      
 144 
     | 
    
         
            +
                self.animation_every = 0 if @animation_fps.to_f > 0
         
     | 
| 
      
 145 
     | 
    
         
            +
              end
         
     | 
| 
       127 
146 
     | 
    
         
             
            end
         
     | 
| 
       128 
147 
     | 
    
         | 
| 
       129 
148 
     | 
    
         
             
            HelloCanvasAnimation.launch
         
     | 
    
        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.20. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 4.20.9.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Andy Maleh
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire:
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2021-07- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2021-07-20 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     |