glimmer-dsl-swt 4.18.7.3 → 4.19.0.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 +44 -0
 - data/README.md +126 -20
 - data/RUBY_VERSION +1 -1
 - data/VERSION +1 -1
 - data/bin/girb +10 -9
 - data/bin/girb_runner.rb +8 -3
 - data/bin/glimmer +10 -1
 - data/bin/glimmer-setup +58 -0
 - data/bin/glimmer_runner.rb +4 -0
 - data/docs/reference/GLIMMER_COMMAND.md +98 -32
 - data/docs/reference/GLIMMER_GUI_DSL_SYNTAX.md +9 -7
 - data/docs/reference/GLIMMER_PACKAGING_AND_DISTRIBUTION.md +7 -1
 - data/docs/reference/GLIMMER_SAMPLES.md +25 -0
 - data/glimmer-dsl-swt.gemspec +0 -0
 - data/lib/glimmer-dsl-swt.rb +8 -0
 - data/lib/glimmer/data_binding/widget_binding.rb +1 -1
 - data/lib/glimmer/dsl/swt/c_tab_item_expression.rb +58 -0
 - data/lib/glimmer/dsl/swt/combo_selection_data_binding_expression.rb +2 -1
 - data/lib/glimmer/dsl/swt/tab_item_expression.rb +7 -3
 - data/lib/glimmer/dsl/swt/widget_expression.rb +1 -1
 - data/lib/glimmer/launcher.rb +27 -51
 - data/lib/glimmer/rake_task.rb +37 -7
 - data/lib/glimmer/rake_task/list.rb +8 -0
 - data/lib/glimmer/rake_task/package.rb +7 -2
 - data/lib/glimmer/rake_task/scaffold.rb +283 -207
 - data/lib/glimmer/swt/c_tab_item_proxy.rb +53 -0
 - data/lib/glimmer/swt/custom/code_text.rb +19 -3
 - data/lib/glimmer/swt/custom/shape.rb +22 -4
 - data/lib/glimmer/swt/image_proxy.rb +5 -1
 - data/lib/glimmer/swt/sash_form_proxy.rb +6 -0
 - data/lib/glimmer/swt/shell_proxy.rb +3 -1
 - data/lib/glimmer/swt/tab_folder_proxy.rb +1 -0
 - data/lib/glimmer/swt/tab_item_proxy.rb +17 -18
 - data/lib/glimmer/swt/widget_proxy.rb +9 -0
 - data/samples/elaborate/mandelbrot_fractal.rb +1 -1
 - data/samples/elaborate/tetris.rb +1 -4
 - data/samples/elaborate/tetris/view/bevel.rb +4 -1
 - data/samples/elaborate/tetris/view/block.rb +1 -3
 - data/samples/hello/hello_c_combo.rb +68 -0
 - data/samples/hello/hello_c_tab.rb +271 -0
 - data/samples/hello/hello_code_text.rb +141 -73
 - data/samples/hello/hello_tab.rb +2 -0
 - data/vendor/swt/linux/swt.jar +0 -0
 - data/vendor/swt/mac/swt.jar +0 -0
 - data/vendor/swt/windows/swt.jar +0 -0
 - metadata +45 -15
 
| 
         @@ -44,7 +44,7 @@ bin/glimmer samples 
     | 
|
| 
       44 
44 
     | 
    
         
             
            Below are the full usage instructions that come up when running `glimmer` without args.
         
     | 
| 
       45 
45 
     | 
    
         | 
| 
       46 
46 
     | 
    
         
             
            ```
         
     | 
| 
       47 
     | 
    
         
            -
            Glimmer (JRuby Desktop Development GUI Framework) - JRuby Gem: glimmer-dsl-swt v4.18. 
     | 
| 
      
 47 
     | 
    
         
            +
            Glimmer (JRuby Desktop Development GUI Framework) - JRuby Gem: glimmer-dsl-swt v4.18.7.4
         
     | 
| 
       48 
48 
     | 
    
         | 
| 
       49 
49 
     | 
    
         
             
            Usage: glimmer [--bundler] [--pd] [--quiet] [--debug] [--log-level=VALUE] [[ENV_VAR=VALUE]...] [[-jruby-option]...] (application.rb or task[task_args]) [[application2.rb]...]
         
     | 
| 
       50 
50 
     | 
    
         | 
| 
         @@ -67,6 +67,7 @@ Tasks are run via rake. Some tasks take arguments in square brackets. 
     | 
|
| 
       67 
67 
     | 
    
         
             
            Available tasks are below (if you do not see any, please add `require 'glimmer/rake_task'` to Rakefile and rerun or run rake -T):
         
     | 
| 
       68 
68 
     | 
    
         | 
| 
       69 
69 
     | 
    
         
             
            Select a Glimmer task to run: (Press ↑/↓ arrow to move, Enter to select and letters to filter)
         
     | 
| 
      
 70 
     | 
    
         
            +
              glimmer list:gems:customshape[query]                       # List Glimmer custom shape gems available at rubygems.org (query is optional) [alt: list:gems:cp]
         
     | 
| 
       70 
71 
     | 
    
         
             
            ‣ glimmer list:gems:customshell[query]                       # List Glimmer custom shell gems available at rubygems.org (query is optional) [alt: list:gems:cs]
         
     | 
| 
       71 
72 
     | 
    
         
             
              glimmer list:gems:customwidget[query]                      # List Glimmer custom widget gems available at rubygems.org (query is optional) [alt: list:gems:cw]
         
     | 
| 
       72 
73 
     | 
    
         
             
              glimmer list:gems:dsl[query]                               # List Glimmer DSL gems available at rubygems.org (query is optional)
         
     | 
| 
         @@ -81,8 +82,11 @@ Select a Glimmer task to run: (Press ↑/↓ arrow to move, Enter to select and 
     | 
|
| 
       81 
82 
     | 
    
         
             
              glimmer run[app_path]                                      # Runs Glimmer app or custom shell gem in the current directory, unless app_path is specified, then runs it instead (app_path is optional)
         
     | 
| 
       82 
83 
     | 
    
         
             
              glimmer samples                                            # Brings up the Glimmer Meta-Sample app to allow browsing, running, and viewing code of Glimmer samples
         
     | 
| 
       83 
84 
     | 
    
         
             
              glimmer scaffold[app_name]                                 # Scaffold Glimmer application directory structure to build a new app
         
     | 
| 
      
 85 
     | 
    
         
            +
              glimmer scaffold:customshape[name,namespace]               # Scaffold Glimmer::UI::CustomShape subclass (part of a view) under app/views (namespace is optional) [alt: scaffold:cp]
         
     | 
| 
       84 
86 
     | 
    
         
             
              glimmer scaffold:customshell[name,namespace]               # Scaffold Glimmer::UI::CustomShell subclass (full window view) under app/views (namespace is optional) [alt: scaffold:cs]
         
     | 
| 
       85 
87 
     | 
    
         
             
              glimmer scaffold:customwidget[name,namespace]              # Scaffold Glimmer::UI::CustomWidget subclass (part of a view) under app/views (namespace is optional) [alt: scaffold:cw]
         
     | 
| 
      
 88 
     | 
    
         
            +
              glimmer scaffold:desktopify[app_name,website]              # Desktopify a web app
         
     | 
| 
      
 89 
     | 
    
         
            +
              glimmer scaffold:gem:customshape[name,namespace]           # Scaffold Glimmer::UI::CustomShape subclass (part of a view) under its own Ruby gem project (namespace is required) [alt: scaffold:gem:cp]
         
     | 
| 
       86 
90 
     | 
    
         
             
              glimmer scaffold:gem:customshell[name,namespace]           # Scaffold Glimmer::UI::CustomShell subclass (full window view) under its own Ruby gem + app project (namespace is required) [alt: scaffold:ge...
         
     | 
| 
       87 
91 
     | 
    
         
             
              glimmer scaffold:gem:customwidget[name,namespace]          # Scaffold Glimmer::UI::CustomWidget subclass (part of a view) under its own Ruby gem project (namespace is required) [alt: scaffold:gem:cw]
         
     | 
| 
       88 
92 
     | 
    
         
             
            ```
         
     | 
| 
         @@ -162,15 +166,12 @@ $ glimmer scaffold[greeter] 
     | 
|
| 
       162 
166 
     | 
    
         
             
              create  Rakefile
         
     | 
| 
       163 
167 
     | 
    
         
             
              create  Gemfile
         
     | 
| 
       164 
168 
     | 
    
         
             
              create  LICENSE.txt
         
     | 
| 
       165 
     | 
    
         
            -
              create  README. 
     | 
| 
      
 169 
     | 
    
         
            +
              create  README.markdown
         
     | 
| 
       166 
170 
     | 
    
         
             
              create  .document
         
     | 
| 
       167 
171 
     | 
    
         
             
              create  lib
         
     | 
| 
       168 
     | 
    
         
            -
              create  lib/ 
     | 
| 
       169 
     | 
    
         
            -
              create  spec
         
     | 
| 
       170 
     | 
    
         
            -
              create  spec/spec_helper.rb
         
     | 
| 
       171 
     | 
    
         
            -
              create  spec/greeter_spec.rb
         
     | 
| 
      
 172 
     | 
    
         
            +
              create  lib/snowboard_utah.rb
         
     | 
| 
       172 
173 
     | 
    
         
             
              create  .rspec
         
     | 
| 
       173 
     | 
    
         
            -
            Juwelier has prepared your gem in ./ 
     | 
| 
      
 174 
     | 
    
         
            +
            Juwelier has prepared your gem in ./snowboard_utah
         
     | 
| 
       174 
175 
     | 
    
         
             
            Created greeter/.gitignore
         
     | 
| 
       175 
176 
     | 
    
         
             
            Created greeter/.ruby-version
         
     | 
| 
       176 
177 
     | 
    
         
             
            Created greeter/.ruby-gemset
         
     | 
| 
         @@ -179,17 +180,19 @@ Created greeter/LICENSE.txt 
     | 
|
| 
       179 
180 
     | 
    
         
             
            Created greeter/Gemfile
         
     | 
| 
       180 
181 
     | 
    
         
             
            Created greeter/Rakefile
         
     | 
| 
       181 
182 
     | 
    
         
             
            Created greeter/app/greeter.rb
         
     | 
| 
       182 
     | 
    
         
            -
            Created greeter/app/ 
     | 
| 
       183 
     | 
    
         
            -
            Created greeter/package/windows/ 
     | 
| 
       184 
     | 
    
         
            -
            Created greeter/package/macosx/ 
     | 
| 
       185 
     | 
    
         
            -
            Created greeter/package/linux/ 
     | 
| 
      
 183 
     | 
    
         
            +
            Created greeter/app/greeter/view/app_view.rb
         
     | 
| 
      
 184 
     | 
    
         
            +
            Created greeter/package/windows/Snowboard Utah.ico
         
     | 
| 
      
 185 
     | 
    
         
            +
            Created greeter/package/macosx/Snowboard Utah.icns
         
     | 
| 
      
 186 
     | 
    
         
            +
            Created greeter/package/linux/Snowboard Utah.png
         
     | 
| 
      
 187 
     | 
    
         
            +
            Created greeter/app/greeter/launch.rb
         
     | 
| 
       186 
188 
     | 
    
         
             
            Created greeter/bin/greeter
         
     | 
| 
       187 
     | 
    
         
            -
            Created greeter/spec/spec_helper.rb
         
     | 
| 
       188 
189 
     | 
    
         
             
            ...
         
     | 
| 
       189 
190 
     | 
    
         
             
            ```
         
     | 
| 
       190 
191 
     | 
    
         | 
| 
       191 
192 
     | 
    
         
             
            Eventually, it will launch an advanced "Hello, World!" app window having the title of your application ("Greeter").
         
     | 
| 
       192 
193 
     | 
    
         | 
| 
      
 194 
     | 
    
         
            +
            (note: javapackager might claim at the end "Error: Bundler "DMG Installer" (dmg) failed to produce a bundle.", but it's a false negative since it works fully anyways)
         
     | 
| 
      
 195 
     | 
    
         
            +
             
     | 
| 
       193 
196 
     | 
    
         
             
            
         
     | 
| 
       194 
197 
     | 
    
         | 
| 
       195 
198 
     | 
    
         
             
            It also comes with a boilerplate Preferences dialog.
         
     | 
| 
         @@ -252,21 +255,6 @@ You should see output like the following: 
     | 
|
| 
       252 
255 
     | 
    
         | 
| 
       253 
256 
     | 
    
         
             
            ```
         
     | 
| 
       254 
257 
     | 
    
         
             
            $ glimmer scaffold:desktopify[snowboard_utah,https://www.brightonresort.com]
         
     | 
| 
       255 
     | 
    
         
            -
            Fetching kamelcase-0.0.2.gem
         
     | 
| 
       256 
     | 
    
         
            -
            Fetching github_api-0.19.0.gem
         
     | 
| 
       257 
     | 
    
         
            -
            Fetching highline-2.0.3.gem
         
     | 
| 
       258 
     | 
    
         
            -
            Fetching juwelier-2.4.9.gem
         
     | 
| 
       259 
     | 
    
         
            -
            Fetching hashie-3.6.0.gem
         
     | 
| 
       260 
     | 
    
         
            -
            Fetching nokogiri-1.10.10-java.gem
         
     | 
| 
       261 
     | 
    
         
            -
            Fetching semver2-3.4.2.gem
         
     | 
| 
       262 
     | 
    
         
            -
            Successfully installed semver2-3.4.2
         
     | 
| 
       263 
     | 
    
         
            -
            Successfully installed kamelcase-0.0.2
         
     | 
| 
       264 
     | 
    
         
            -
            Successfully installed highline-2.0.3
         
     | 
| 
       265 
     | 
    
         
            -
            Successfully installed hashie-3.6.0
         
     | 
| 
       266 
     | 
    
         
            -
            Successfully installed github_api-0.19.0
         
     | 
| 
       267 
     | 
    
         
            -
            Successfully installed nokogiri-1.10.10-java
         
     | 
| 
       268 
     | 
    
         
            -
            Successfully installed juwelier-2.4.9
         
     | 
| 
       269 
     | 
    
         
            -
            7 gems installed
         
     | 
| 
       270 
258 
     | 
    
         
             
              create  .gitignore
         
     | 
| 
       271 
259 
     | 
    
         
             
              create  Rakefile
         
     | 
| 
       272 
260 
     | 
    
         
             
              create  Gemfile
         
     | 
| 
         @@ -285,16 +273,19 @@ Created snowboard_utah/LICENSE.txt 
     | 
|
| 
       285 
273 
     | 
    
         
             
            Created snowboard_utah/Gemfile
         
     | 
| 
       286 
274 
     | 
    
         
             
            Created snowboard_utah/Rakefile
         
     | 
| 
       287 
275 
     | 
    
         
             
            Created snowboard_utah/app/snowboard_utah.rb
         
     | 
| 
       288 
     | 
    
         
            -
            Created snowboard_utah/app/ 
     | 
| 
      
 276 
     | 
    
         
            +
            Created snowboard_utah/app/snowboard_utah/view/app_view.rb
         
     | 
| 
       289 
277 
     | 
    
         
             
            Created snowboard_utah/package/windows/Snowboard Utah.ico
         
     | 
| 
       290 
278 
     | 
    
         
             
            Created snowboard_utah/package/macosx/Snowboard Utah.icns
         
     | 
| 
       291 
279 
     | 
    
         
             
            Created snowboard_utah/package/linux/Snowboard Utah.png
         
     | 
| 
      
 280 
     | 
    
         
            +
            Created snowboard_utah/app/snowboard_utah/launch.rb
         
     | 
| 
       292 
281 
     | 
    
         
             
            Created snowboard_utah/bin/snowboard_utah
         
     | 
| 
       293 
282 
     | 
    
         
             
            ...
         
     | 
| 
       294 
283 
     | 
    
         
             
            ```
         
     | 
| 
       295 
284 
     | 
    
         | 
| 
       296 
285 
     | 
    
         
             
            Eventually, it will launch a desktopified version of "https://www.brightonresort.com" having the title of ("Snowboard Utah").
         
     | 
| 
       297 
286 
     | 
    
         | 
| 
      
 287 
     | 
    
         
            +
            (note: javapackager might claim at the end "Error: Bundler "DMG Installer" (dmg) failed to produce a bundle.", but it's a false negative since it works fully anyways)
         
     | 
| 
      
 288 
     | 
    
         
            +
             
     | 
| 
       298 
289 
     | 
    
         
             
            Desktopified App on Mac
         
     | 
| 
       299 
290 
     | 
    
         | 
| 
       300 
291 
     | 
    
         
             
            
         
     | 
| 
         @@ -333,7 +324,7 @@ glimmer scaffold:cs[name] 
     | 
|
| 
       333 
324 
     | 
    
         | 
| 
       334 
325 
     | 
    
         
             
            #### Custom Widget
         
     | 
| 
       335 
326 
     | 
    
         | 
| 
       336 
     | 
    
         
            -
            To scaffold a Glimmer [custom widget](#custom-widgets) (part of a view) for an existing Glimmer app, run the following command:
         
     | 
| 
      
 327 
     | 
    
         
            +
            To scaffold a Glimmer [custom widget](GLIMMER_GUI_DSL_SYNTAX.md#custom-widgets) (part of a view) for an existing Glimmer app, run the following command:
         
     | 
| 
       337 
328 
     | 
    
         | 
| 
       338 
329 
     | 
    
         
             
            ```
         
     | 
| 
       339 
330 
     | 
    
         
             
            glimmer scaffold:customwidget[name]
         
     | 
| 
         @@ -345,6 +336,20 @@ Or the following alternative abbreviation: 
     | 
|
| 
       345 
336 
     | 
    
         
             
            glimmer scaffold:cw[name]
         
     | 
| 
       346 
337 
     | 
    
         
             
            ```
         
     | 
| 
       347 
338 
     | 
    
         | 
| 
      
 339 
     | 
    
         
            +
            #### Custom Shape
         
     | 
| 
      
 340 
     | 
    
         
            +
             
     | 
| 
      
 341 
     | 
    
         
            +
            To scaffold a Glimmer [custom shape](GLIMMER_GUI_DSL_SYNTAX.md#custom-shapes) (a composite or customized shape) for an existing Glimmer app, run the following command:
         
     | 
| 
      
 342 
     | 
    
         
            +
             
     | 
| 
      
 343 
     | 
    
         
            +
            ```
         
     | 
| 
      
 344 
     | 
    
         
            +
            glimmer scaffold:customshape[name]
         
     | 
| 
      
 345 
     | 
    
         
            +
            ```
         
     | 
| 
      
 346 
     | 
    
         
            +
             
     | 
| 
      
 347 
     | 
    
         
            +
            Or the following alternative abbreviation:
         
     | 
| 
      
 348 
     | 
    
         
            +
             
     | 
| 
      
 349 
     | 
    
         
            +
            ```
         
     | 
| 
      
 350 
     | 
    
         
            +
            glimmer scaffold:cp[name]
         
     | 
| 
      
 351 
     | 
    
         
            +
            ```
         
     | 
| 
      
 352 
     | 
    
         
            +
             
     | 
| 
       348 
353 
     | 
    
         
             
            #### Custom Shell Gem
         
     | 
| 
       349 
354 
     | 
    
         | 
| 
       350 
355 
     | 
    
         
             
            Custom shell gems are self-contained Glimmer apps as well as reusable [custom shells](#custom-shells).
         
     | 
| 
         @@ -382,7 +387,7 @@ Examples: 
     | 
|
| 
       382 
387 
     | 
    
         | 
| 
       383 
388 
     | 
    
         
             
            #### Custom Widget Gem
         
     | 
| 
       384 
389 
     | 
    
         | 
| 
       385 
     | 
    
         
            -
            To scaffold a Glimmer [custom widget](#custom-widgets) gem (part of a view distributed as a Ruby gem), run the following command:
         
     | 
| 
      
 390 
     | 
    
         
            +
            To scaffold a Glimmer [custom widget](GLIMMER_GUI_DSL_SYNTAX.md#custom-widgets) gem (part of a view distributed as a Ruby gem), run the following command:
         
     | 
| 
       386 
391 
     | 
    
         | 
| 
       387 
392 
     | 
    
         
             
            ```
         
     | 
| 
       388 
393 
     | 
    
         
             
            glimmer scaffold:gem:customwidget[name,namespace]
         
     | 
| 
         @@ -397,14 +402,40 @@ glimmer scaffold:gem:cw[name,namespace] 
     | 
|
| 
       397 
402 
     | 
    
         | 
| 
       398 
403 
     | 
    
         
             
            It is important to specify a namespace to avoid having your gem clash with existing gems.
         
     | 
| 
       399 
404 
     | 
    
         | 
| 
       400 
     | 
    
         
            -
            The Ruby gem name will follow the convention "glimmer-cw-customwidgetname-namespace" (the 'cw' is for Custom Widget)
         
     | 
| 
      
 405 
     | 
    
         
            +
            The Ruby gem name will follow the convention "glimmer-cw-customwidgetname-namespace" (the 'cw' is for Custom Widget; name words are not separated)
         
     | 
| 
       401 
406 
     | 
    
         | 
| 
       402 
407 
     | 
    
         
             
            Only official Glimmer gems created by the Glimmer project committers will have no namespace (e.g. [glimmer-cw-video](https://rubygems.org/gems/glimmer-cw-video) Ruby gem)
         
     | 
| 
       403 
408 
     | 
    
         | 
| 
       404 
409 
     | 
    
         
             
            Examples:
         
     | 
| 
       405 
410 
     | 
    
         | 
| 
       406 
411 
     | 
    
         
             
            - [glimmer-cw-video](https://github.com/AndyObtiva/glimmer-cw-video): Video Widget
         
     | 
| 
       407 
     | 
    
         
            -
            - [glimmer-cw- 
     | 
| 
      
 412 
     | 
    
         
            +
            - [glimmer-cw-nebula](https://github.com/AndyObtiva/glimmer-cw-nebula): The Nebula Project 50+ enterprise-grade high quality custom widgets for SWT
         
     | 
| 
      
 413 
     | 
    
         
            +
            - [glimmer-cw-cdatetime-nebula](https://github.com/AndyObtiva/glimmer-cw-cdatetime-nebula): Nebula CDateTime Widget (piecemeal)
         
     | 
| 
      
 414 
     | 
    
         
            +
             
     | 
| 
      
 415 
     | 
    
         
            +
            #### Custom Shape Gem
         
     | 
| 
      
 416 
     | 
    
         
            +
             
     | 
| 
      
 417 
     | 
    
         
            +
            To scaffold a Glimmer [custom shape](GLIMMER_GUI_DSL_SYNTAX.md#custom-shapes) gem (part of a view distributed as a Ruby gem), run the following command:
         
     | 
| 
      
 418 
     | 
    
         
            +
             
     | 
| 
      
 419 
     | 
    
         
            +
            ```
         
     | 
| 
      
 420 
     | 
    
         
            +
            glimmer scaffold:gem:customshape[name,namespace]
         
     | 
| 
      
 421 
     | 
    
         
            +
            ```
         
     | 
| 
      
 422 
     | 
    
         
            +
             
     | 
| 
      
 423 
     | 
    
         
            +
            Or the following alternative abbreviation:
         
     | 
| 
      
 424 
     | 
    
         
            +
             
     | 
| 
      
 425 
     | 
    
         
            +
            ```
         
     | 
| 
      
 426 
     | 
    
         
            +
            glimmer scaffold:gem:cp[name,namespace]
         
     | 
| 
      
 427 
     | 
    
         
            +
            ```
         
     | 
| 
      
 428 
     | 
    
         
            +
             
     | 
| 
      
 429 
     | 
    
         
            +
             
     | 
| 
      
 430 
     | 
    
         
            +
            It is important to specify a namespace to avoid having your gem clash with existing gems.
         
     | 
| 
      
 431 
     | 
    
         
            +
             
     | 
| 
      
 432 
     | 
    
         
            +
            The Ruby gem name will follow the convention "glimmer-cp-customshapename-namespace" (the 'cp' is for Custom Shape; name words are not separated)
         
     | 
| 
      
 433 
     | 
    
         
            +
             
     | 
| 
      
 434 
     | 
    
         
            +
            Only official Glimmer gems created by the Glimmer project committers will have no namespace (e.g. [glimmer-cp-bevel](https://rubygems.org/gems/glimmer-cp-bevel) Ruby gem)
         
     | 
| 
      
 435 
     | 
    
         
            +
             
     | 
| 
      
 436 
     | 
    
         
            +
            Examples:
         
     | 
| 
      
 437 
     | 
    
         
            +
             
     | 
| 
      
 438 
     | 
    
         
            +
            - [glimmer-cp-bevel](https://github.com/AndyObtiva/glimmer-cp-bevel): Bevel
         
     | 
| 
       408 
439 
     | 
    
         | 
| 
       409 
440 
     | 
    
         
             
            ### Gem Listing
         
     | 
| 
       410 
441 
     | 
    
         | 
| 
         @@ -500,6 +531,39 @@ Output: 
     | 
|
| 
       500 
531 
     | 
    
         | 
| 
       501 
532 
     | 
    
         
             
            ```
         
     | 
| 
       502 
533 
     | 
    
         | 
| 
      
 534 
     | 
    
         
            +
            #### Listing Custom Shape Gems
         
     | 
| 
      
 535 
     | 
    
         
            +
             
     | 
| 
      
 536 
     | 
    
         
            +
            The following command lists available Glimmer [Custom Shape Gems](#custom-shape-gem) (prefixed with "glimmer-cp-" by scaffolding convention) created by the the Glimmer community and published on [rubygems.org](http://www.rubygems.org):
         
     | 
| 
      
 537 
     | 
    
         
            +
             
     | 
| 
      
 538 
     | 
    
         
            +
            ```
         
     | 
| 
      
 539 
     | 
    
         
            +
            glimmer list:gems:customshape[query]
         
     | 
| 
      
 540 
     | 
    
         
            +
            ```
         
     | 
| 
      
 541 
     | 
    
         
            +
             
     | 
| 
      
 542 
     | 
    
         
            +
            Or the following alternative abbreviation:
         
     | 
| 
      
 543 
     | 
    
         
            +
             
     | 
| 
      
 544 
     | 
    
         
            +
            ```
         
     | 
| 
      
 545 
     | 
    
         
            +
            glimmer list:gems:cp[query]
         
     | 
| 
      
 546 
     | 
    
         
            +
            ```
         
     | 
| 
      
 547 
     | 
    
         
            +
             
     | 
| 
      
 548 
     | 
    
         
            +
            Example:
         
     | 
| 
      
 549 
     | 
    
         
            +
             
     | 
| 
      
 550 
     | 
    
         
            +
            ```
         
     | 
| 
      
 551 
     | 
    
         
            +
            glimmer list:gems:customshape
         
     | 
| 
      
 552 
     | 
    
         
            +
            ```
         
     | 
| 
      
 553 
     | 
    
         
            +
             
     | 
| 
      
 554 
     | 
    
         
            +
            Output:
         
     | 
| 
      
 555 
     | 
    
         
            +
             
     | 
| 
      
 556 
     | 
    
         
            +
            ```
         
     | 
| 
      
 557 
     | 
    
         
            +
             
     | 
| 
      
 558 
     | 
    
         
            +
              Glimmer Custom Shape Gems at rubygems.org:
         
     | 
| 
      
 559 
     | 
    
         
            +
                                                                                                                 
         
     | 
| 
      
 560 
     | 
    
         
            +
                 Name                Gem             Version     Author                 Description
         
     | 
| 
      
 561 
     | 
    
         
            +
                                                                                                                 
         
     | 
| 
      
 562 
     | 
    
         
            +
              Bevel         glimmer-cp-bevel         0.1.1     Andy Maleh   Bevel - Glimmer Custom Shape
         
     | 
| 
      
 563 
     | 
    
         
            +
              Stickfigure   glimmer-cp-stickfigure   0.1.1     Andy Maleh   Stick Figure - Glimmer Custom Shape
         
     | 
| 
      
 564 
     | 
    
         
            +
              
         
     | 
| 
      
 565 
     | 
    
         
            +
            ```
         
     | 
| 
      
 566 
     | 
    
         
            +
             
     | 
| 
       503 
567 
     | 
    
         
             
            #### Listing DSL Gems
         
     | 
| 
       504 
568 
     | 
    
         | 
| 
       505 
569 
     | 
    
         
             
            The following command lists available Glimmer [DSL Gems](#multi-dsl-support) (prefixed with "glimmer-dsl-" by convention) created by the the Glimmer community and published on [rubygems.org](http://www.rubygems.org):
         
     | 
| 
         @@ -554,6 +618,8 @@ Or, the following on Mac: 
     | 
|
| 
       554 
618 
     | 
    
         
             
            jruby -J-XstartOnFirstThread -r glimmer-dsl-swt -S application.rb
         
     | 
| 
       555 
619 
     | 
    
         
             
            ```
         
     | 
| 
       556 
620 
     | 
    
         | 
| 
      
 621 
     | 
    
         
            +
            Unless you ran `glimmer-setup`, which adds `JRUBY_OPTS` environment variable that includes the `-J-XstartOnFirstThread` option automatically so you would not have to specify manually.
         
     | 
| 
      
 622 
     | 
    
         
            +
             
     | 
| 
       557 
623 
     | 
    
         
             
            If you want to use a specific custom version of SWT, run the following on Windows/Linux:
         
     | 
| 
       558 
624 
     | 
    
         | 
| 
       559 
625 
     | 
    
         
             
            ```
         
     | 
| 
         @@ -163,7 +163,7 @@ Dynamic keywords are dynamically figured out from currently imported (aka requir 
     | 
|
| 
       163 
163 
     | 
    
         | 
| 
       164 
164 
     | 
    
         
             
            The only reason to distinguish between the two is to realize that importing new Glimmer [custom widgets](#custom-widgets) and Java SWT custom widget libraries automatically expands Glimmer's DSL vocabulary with new dynamic keywords.
         
     | 
| 
       165 
165 
     | 
    
         | 
| 
       166 
     | 
    
         
            -
            For example, if a project adds this custom Java SWT library from the [Nebula Project](https:// 
     | 
| 
      
 166 
     | 
    
         
            +
            For example, if a project adds this custom Java SWT library from the [Nebula Project](https://github.com/AndyObtiva/glimmer-cw-nebula):
         
     | 
| 
       167 
167 
     | 
    
         | 
| 
       168 
168 
     | 
    
         
             
            https://www.eclipse.org/nebula/widgets/gallery/gallery.php
         
     | 
| 
       169 
169 
     | 
    
         | 
| 
         @@ -284,9 +284,7 @@ shell { 
     | 
|
| 
       284 
284 
     | 
    
         | 
| 
       285 
285 
     | 
    
         
             
            If you are new to Glimmer, you have learned enough to start running some [samples](#samples) directly or by reading through [Glimmer GUI DSL Keywords](#glimmer-gui-dsl-keywords) (which list each keyword's samples). Go ahead and run all Glimmer [samples](#samples), and come back to read the rest in any order you like since this material is more organized like a reference.
         
     | 
| 
       286 
286 
     | 
    
         | 
| 
       287 
     | 
    
         
            -
            If you are advanced and need more widgets, check out the [Nebula Project](https:// 
     | 
| 
       288 
     | 
    
         
            -
             
     | 
| 
       289 
     | 
    
         
            -
            https://www.eclipse.org/nebula/
         
     | 
| 
      
 287 
     | 
    
         
            +
            If you are an advanced user of Glimmer DSL for SWT and need more widgets, check out the [Nebula Project](https://github.com/AndyObtiva/glimmer-cw-nebula) for an extensive list (50+) of high quality custom widgets.
         
     | 
| 
       290 
288 
     | 
    
         | 
| 
       291 
289 
     | 
    
         
             
            #### Glimmer GUI DSL Keywords
         
     | 
| 
       292 
290 
     | 
    
         | 
| 
         @@ -370,7 +368,7 @@ These proxy objects have an API and provide some convenience methods, some of wh 
     | 
|
| 
       370 
368 
     | 
    
         | 
| 
       371 
369 
     | 
    
         
             
            Glimmer SWT proxies come with the instance method `#swt_widget`, which returns the actual SWT `Widget` object wrapped by the Glimmer widget proxy. It is useful in cases you'd like to do some custom SWT programming outside of Glimmer.
         
     | 
| 
       372 
370 
     | 
    
         | 
| 
       373 
     | 
    
         
            -
            ##### Shell  
     | 
| 
      
 371 
     | 
    
         
            +
            ##### Shell Widget Proxy Methods
         
     | 
| 
       374 
372 
     | 
    
         | 
| 
       375 
373 
     | 
    
         
             
            Shell widget proxy has extra methods specific to SWT Shell:
         
     | 
| 
       376 
374 
     | 
    
         
             
            - `#open`: Opens the shell, making it visible and active, and starting the SWT Event Loop (you may learn more about it here: https://help.eclipse.org/2019-12/nftopic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/swt/widgets/Display.html). If shell was already open, but hidden, it makes the shell visible.
         
     | 
| 
         @@ -1042,6 +1040,10 @@ shell(:no_resize) { 
     | 
|
| 
       1042 
1040 
     | 
    
         
             
            }
         
     | 
| 
       1043 
1041 
     | 
    
         
             
            ```
         
     | 
| 
       1044 
1042 
     | 
    
         | 
| 
      
 1043 
     | 
    
         
            +
            ##### Fill Screen Window
         
     | 
| 
      
 1044 
     | 
    
         
            +
             
     | 
| 
      
 1045 
     | 
    
         
            +
            SWT Shell can open and fill the screen with this style `swt(:fill_screen)`. This makes it have the size of the display, thus filling the screen. Keep in mind that this is different from being maximized (which is a special window state, not just filling the screen).
         
     | 
| 
      
 1046 
     | 
    
         
            +
             
     | 
| 
       1045 
1047 
     | 
    
         
             
            ### Widget Properties
         
     | 
| 
       1046 
1048 
     | 
    
         | 
| 
       1047 
1049 
     | 
    
         
             
            Widget properties such as text value, enablement, visibility, and layout details are set within the widget block using methods matching SWT widget property names in lower snakecase. You may refer to SWT widget guide for details on available widget properties:
         
     | 
| 
         @@ -1416,7 +1418,7 @@ Shape keywords and their args (including defaults) are listed below (they basica 
     | 
|
| 
       1416 
1418 
     | 
    
         
             
            - `text(string, x, y, is_transparent = true)` text with optional is_transparent to indicate if background is transparent (default is true)
         
     | 
| 
       1417 
1419 
     | 
    
         
             
            - `text(string, x, y, flags)` text with optional flags (flag format is `swt(comma_separated_flags)` where flags can be `:draw_delimiter` (i.e. new lines), `:draw_tab`, `:draw_mnemonic`, and `:draw_transparent` as explained in [GC API](https://help.eclipse.org/2020-12/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/swt/graphics/GC.html))
         
     | 
| 
       1418 
1420 
     | 
    
         | 
| 
       1419 
     | 
    
         
            -
            Shape keywords that can be filled with color can take a keyword argument `fill: true 
     | 
| 
      
 1421 
     | 
    
         
            +
            Shape keywords that can be filled with color can take a keyword argument `fill: true` (or `filled: true`). Defaults to false when not specified unless background is set with no foreground (or foreground is set with no background), in which case a smart default is applied.
         
     | 
| 
       1420 
1422 
     | 
    
         
             
            Smart defaults can be applied to automatically infer `gradient: true` (rectangle with both foreground and background) and `round: true` (rectangle with more than 4 args, the extra args are numeric) as well.
         
     | 
| 
       1421 
1423 
     | 
    
         | 
| 
       1422 
1424 
     | 
    
         
             
            Optionally, a shape keyword takes a block that can set any attributes from [org.eclipse.swt.graphics.GC](https://help.eclipse.org/2020-12/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/swt/graphics/GC.html) (methods starting with `set`), which enable setting the `background` for filling and `foreground` for drawing.
         
     | 
| 
         @@ -3473,7 +3475,7 @@ shell { |app_shell| 
     | 
|
| 
       3473 
3475 
     | 
    
         
             
            }.open
         
     | 
| 
       3474 
3476 
     | 
    
         
             
            ```
         
     | 
| 
       3475 
3477 
     | 
    
         | 
| 
       3476 
     | 
    
         
            -
            If you use a Custom Shell as the top-level app shell, you may invoke the class method  
     | 
| 
      
 3478 
     | 
    
         
            +
            If you use a Custom Shell as the top-level app shell, you may invoke the class method `.launch` instead to avoid building an app class yourself or including Glimmer into the top-level namespace (e.g. `Tetris.launch` instead of `include Glimmer; tetris.open`)
         
     | 
| 
       3477 
3479 
     | 
    
         | 
| 
       3478 
3480 
     | 
    
         
             
            You may check out [Hello, Custom Shell!](GLIMMER_SAMPLES.md#hello-custom-shell) for another example.
         
     | 
| 
       3479 
3481 
     | 
    
         | 
| 
         @@ -20,6 +20,12 @@ You may choose to generate a specific type of packaging instead by addionally pa 
     | 
|
| 
       20 
20 
     | 
    
         
             
            glimmer package[msi]
         
     | 
| 
       21 
21 
     | 
    
         
             
            ```
         
     | 
| 
       22 
22 
     | 
    
         | 
| 
      
 23 
     | 
    
         
            +
            Make sure to surround with double-quotes when running from ZShell (zsh):
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
            ```
         
     | 
| 
      
 26 
     | 
    
         
            +
            glimmer "package[msi]"
         
     | 
| 
      
 27 
     | 
    
         
            +
            ```
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
       23 
29 
     | 
    
         
             
            - Available Mac packaging types are `dmg`, `pkg`, and `image` (image means a pure Mac `app` without a setup program). Keep in mind that the packages you produce are compatible with the same MacOS you are on or older.
         
     | 
| 
       24 
30 
     | 
    
         
             
            - Available Windows packaging types are `msi`, `exe`, and `image` (image means a Windows application directory without a setup program). Learn more about Windows packaging are [over here](#windows-application-packaging).
         
     | 
| 
       25 
31 
     | 
    
         | 
| 
         @@ -190,7 +196,7 @@ Currently, `Glimmer::RakeTask::Package.javapackager_extra_args` is only honored 
     | 
|
| 
       190 
196 
     | 
    
         
             
            You can get around that in zsh by running glimmer package commands with `bash -c` prefix:
         
     | 
| 
       191 
197 
     | 
    
         | 
| 
       192 
198 
     | 
    
         
             
            ```
         
     | 
| 
       193 
     | 
    
         
            -
            bash -c 'glimmer package'
         
     | 
| 
      
 199 
     | 
    
         
            +
            bash -c 'source ~/.glimmer_source; glimmer package'
         
     | 
| 
       194 
200 
     | 
    
         
             
            ```
         
     | 
| 
       195 
201 
     | 
    
         | 
| 
       196 
202 
     | 
    
         
             
            4. Java on Windows System PATH
         
     | 
| 
         @@ -2,7 +2,9 @@ 
     | 
|
| 
       2 
2 
     | 
    
         
             
              - [Hello Samples](#hello-samples)
         
     | 
| 
       3 
3 
     | 
    
         
             
                - [Hello, World!](#hello-world)
         
     | 
| 
       4 
4 
     | 
    
         
             
                - [Hello, Tab!](#hello-tab)
         
     | 
| 
      
 5 
     | 
    
         
            +
                - [Hello, C Tab!](#hello-c-tab)
         
     | 
| 
       5 
6 
     | 
    
         
             
                - [Hello, Combo!](#hello-combo)
         
     | 
| 
      
 7 
     | 
    
         
            +
                - [Hello, C Combo!](#hello-c-combo)
         
     | 
| 
       6 
8 
     | 
    
         
             
                - [Hello, List Single Selection!](#hello-list-single-selection)
         
     | 
| 
       7 
9 
     | 
    
         
             
                - [Hello, List Multi Selection!](#hello-list-multi-selection)
         
     | 
| 
       8 
10 
     | 
    
         
             
                - [Hello, Computed!](#hello-computed)
         
     | 
| 
         @@ -101,6 +103,18 @@ Code: 
     | 
|
| 
       101 
103 
     | 
    
         
             
            
         
     | 
| 
       102 
104 
     | 
    
         
             
            
         
     | 
| 
       103 
105 
     | 
    
         | 
| 
      
 106 
     | 
    
         
            +
            #### Hello, C Tab!
         
     | 
| 
      
 107 
     | 
    
         
            +
             
     | 
| 
      
 108 
     | 
    
         
            +
            This sample demonstrates custom tab widget usage (`c_tab_folder` and `c_tab_item`), which supports more customizations to tab fonts/background/foreground colors and display of extra additional tabs via a drop down.
         
     | 
| 
      
 109 
     | 
    
         
            +
             
     | 
| 
      
 110 
     | 
    
         
            +
            Code:
         
     | 
| 
      
 111 
     | 
    
         
            +
             
     | 
| 
      
 112 
     | 
    
         
            +
            [samples/hello/hello_c_tab.rb](/samples/hello/hello_c_tab.rb)
         
     | 
| 
      
 113 
     | 
    
         
            +
             
     | 
| 
      
 114 
     | 
    
         
            +
            
         
     | 
| 
      
 115 
     | 
    
         
            +
            
         
     | 
| 
      
 116 
     | 
    
         
            +
            
         
     | 
| 
      
 117 
     | 
    
         
            +
             
     | 
| 
       104 
118 
     | 
    
         
             
            #### Hello, Combo!
         
     | 
| 
       105 
119 
     | 
    
         | 
| 
       106 
120 
     | 
    
         
             
            This sample demonstrates combo data-binding.
         
     | 
| 
         @@ -112,6 +126,17 @@ Code: 
     | 
|
| 
       112 
126 
     | 
    
         
             
            
         
     | 
| 
       113 
127 
     | 
    
         
             
            
         
     | 
| 
       114 
128 
     | 
    
         | 
| 
      
 129 
     | 
    
         
            +
            #### Hello, C Combo!
         
     | 
| 
      
 130 
     | 
    
         
            +
             
     | 
| 
      
 131 
     | 
    
         
            +
            This sample demonstrates the custom combo variation on combo, which allows the adjustment of the combo height based on font height or layout data.
         
     | 
| 
      
 132 
     | 
    
         
            +
             
     | 
| 
      
 133 
     | 
    
         
            +
            Code:
         
     | 
| 
      
 134 
     | 
    
         
            +
             
     | 
| 
      
 135 
     | 
    
         
            +
            [samples/hello/hello_c_combo.rb](/samples/hello/hello_c_combo.rb)
         
     | 
| 
      
 136 
     | 
    
         
            +
             
     | 
| 
      
 137 
     | 
    
         
            +
            
         
     | 
| 
      
 138 
     | 
    
         
            +
            
         
     | 
| 
      
 139 
     | 
    
         
            +
             
     | 
| 
       115 
140 
     | 
    
         
             
            #### Hello, List Single Selection!
         
     | 
| 
       116 
141 
     | 
    
         | 
| 
       117 
142 
     | 
    
         
             
            This sample demonstrates list single-selection data-binding.
         
     | 
    
        data/glimmer-dsl-swt.gemspec
    CHANGED
    
    | 
         Binary file 
     | 
    
        data/lib/glimmer-dsl-swt.rb
    CHANGED
    
    
| 
         @@ -53,7 +53,7 @@ module Glimmer 
     | 
|
| 
       53 
53 
     | 
    
         
             
                        return
         
     | 
| 
       54 
54 
     | 
    
         
             
                      end
         
     | 
| 
       55 
55 
     | 
    
         
             
                      # need the rescue false for a scenario with tree items not being equal to model objects raising an exception
         
     | 
| 
       56 
     | 
    
         
            -
                       
     | 
| 
      
 56 
     | 
    
         
            +
                      if @async_exec || !((value == evaluate_property) rescue false) # need the rescue false for a scenario with tree items not being equal to model objects raising an exception
         
     | 
| 
       57 
57 
     | 
    
         
             
                        @widget.set_attribute(@property, value)
         
     | 
| 
       58 
58 
     | 
    
         
             
                      end
         
     | 
| 
       59 
59 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -0,0 +1,58 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # Copyright (c) 2007-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.
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            require 'glimmer'
         
     | 
| 
      
 23 
     | 
    
         
            +
            require 'glimmer/dsl/static_expression'
         
     | 
| 
      
 24 
     | 
    
         
            +
            require 'glimmer/dsl/parent_expression'
         
     | 
| 
      
 25 
     | 
    
         
            +
            require 'glimmer/swt/widget_proxy'
         
     | 
| 
      
 26 
     | 
    
         
            +
            require 'glimmer/swt/c_tab_item_proxy'
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
            module Glimmer
         
     | 
| 
      
 29 
     | 
    
         
            +
              module DSL
         
     | 
| 
      
 30 
     | 
    
         
            +
                module SWT
         
     | 
| 
      
 31 
     | 
    
         
            +
                  class CTabItemExpression < StaticExpression
         
     | 
| 
      
 32 
     | 
    
         
            +
                    include ParentExpression
         
     | 
| 
      
 33 
     | 
    
         
            +
              
         
     | 
| 
      
 34 
     | 
    
         
            +
                    include_package 'org.eclipse.swt.custom'
         
     | 
| 
      
 35 
     | 
    
         
            +
              
         
     | 
| 
      
 36 
     | 
    
         
            +
                    def can_interpret?(parent, keyword, *args, &block)
         
     | 
| 
      
 37 
     | 
    
         
            +
                      initial_condition = (keyword == 'c_tab_item') and parent.respond_to?(:swt_widget)
         
     | 
| 
      
 38 
     | 
    
         
            +
                      if initial_condition
         
     | 
| 
      
 39 
     | 
    
         
            +
                        if parent.swt_widget.is_a?(CTabFolder)
         
     | 
| 
      
 40 
     | 
    
         
            +
                          return true
         
     | 
| 
      
 41 
     | 
    
         
            +
                        else
         
     | 
| 
      
 42 
     | 
    
         
            +
                          Glimmer::Config.logger.error {"c_tab_item widget may only be used directly under a c_tab_folder widget!"}
         
     | 
| 
      
 43 
     | 
    
         
            +
                        end
         
     | 
| 
      
 44 
     | 
    
         
            +
                      end
         
     | 
| 
      
 45 
     | 
    
         
            +
                      false
         
     | 
| 
      
 46 
     | 
    
         
            +
                    end
         
     | 
| 
      
 47 
     | 
    
         
            +
              
         
     | 
| 
      
 48 
     | 
    
         
            +
                    def interpret(parent, keyword, *args, &block)
         
     | 
| 
      
 49 
     | 
    
         
            +
                      Glimmer::SWT::CTabItemProxy.new(parent, args)
         
     | 
| 
      
 50 
     | 
    
         
            +
                    end
         
     | 
| 
      
 51 
     | 
    
         
            +
                    
         
     | 
| 
      
 52 
     | 
    
         
            +
                  end
         
     | 
| 
      
 53 
     | 
    
         
            +
                  
         
     | 
| 
      
 54 
     | 
    
         
            +
                end
         
     | 
| 
      
 55 
     | 
    
         
            +
                
         
     | 
| 
      
 56 
     | 
    
         
            +
              end
         
     | 
| 
      
 57 
     | 
    
         
            +
              
         
     | 
| 
      
 58 
     | 
    
         
            +
            end
         
     |