glimmer-dsl-swt 4.23.1.1 → 4.23.1.4
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 +21 -0
- data/README.md +6 -6
- data/VERSION +1 -1
- data/docs/reference/GLIMMER_GUI_DSL_SYNTAX.md +15 -13
- data/docs/reference/GLIMMER_SAMPLES.md +7 -1
- data/glimmer-dsl-swt.gemspec +0 -0
- data/lib/glimmer/rake_task/scaffold.rb +18 -11
- data/lib/glimmer/swt/shell_proxy.rb +2 -1
- data/lib/glimmer/swt/widget_proxy.rb +8 -0
- data/samples/elaborate/meta_sample/tutorials.yml +5 -0
- data/samples/elaborate/weather.rb +3 -1
- data/samples/hello/hello_menu_bar.rb +75 -0
- data/samples/hello/hello_sash_form.rb +22 -14
- data/samples/hello/hello_tree.rb +1 -1
- 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: 8ee026868e1804b6f2869a86e9a5065e71da62719404a48b0dcd84543ff4456c
         | 
| 4 | 
            +
              data.tar.gz: 5a0873cbeeaf9b79d4c6f1e9f21457b27c7f84a36a7ea7494e7f7000f528f200
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 1d160e6cca46cd9c9a64b9b6f218ad758862deedc101e2a6ff3f9a3700094cac5e2860b495d013138e741841331c88f29155658398afb48e50fc2fb3a83d9f3e
         | 
| 7 | 
            +
              data.tar.gz: 19d84761f50d5ec8b9a160def8fdfb2dcd67ec11f3625b2162224deedea84d528f409d4f42cf5c1092795108f2f4a07f1cab3fc8bb58f01edaff3ee445a2aae8
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,5 +1,26 @@ | |
| 1 1 | 
             
            # Change Log
         | 
| 2 2 |  | 
| 3 | 
            +
            ## 4.23.1.4
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            - Improve convenience by making `sash_form` accept `orientation` with SWT style symbols directly (`:horizontal` directly instead of `swt(:horizontal)`)
         | 
| 6 | 
            +
            - Improve convenience by making `sash_form` accept `maximized_control` as Glimmer DSL for SWT widget proxy instead of low-level SWT widget (`@label` instead of `@label.swt_widget`)
         | 
| 7 | 
            +
            - Update Hello, Sash Form! to add Sash Color and simplify with new `sash_form` improvements
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            ## 4.23.1.3
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            - Update initial tab folder width in Weather sample
         | 
| 12 | 
            +
            - Add Help menu to scaffolded apps/gems with About menu item that used to be in the scaffolded File menu
         | 
| 13 | 
            +
            - Fix names of icons generated for custom shell gems to get them picked up by the `glimmer package` command
         | 
| 14 | 
            +
            - Fix issue with shell not packing layout correctly on initial open (might be caused by the latest version of SWT under certain scenarios)
         | 
| 15 | 
            +
            - Fix setting of Display app_name and app_version in scaffolded apps and custom shells
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            ## 4.23.1.2
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            - Add Hello, Pop Up Context Menu! video tutorial to Glimmer Meta-Sample
         | 
| 20 | 
            +
            - Add Hello, Menu Bar! video tutorial to Glimmer Meta-Sample
         | 
| 21 | 
            +
            - Add Language & Country menus to Hello, Menu Bar!
         | 
| 22 | 
            +
            - Fix "Last Name" label in Hello, Tree! (was a duplicate "First Name" by mistake)
         | 
| 23 | 
            +
             | 
| 3 24 | 
             
            ## 4.23.1.1
         | 
| 4 25 |  | 
| 5 26 | 
             
            - Switch order of buttons in Glimmer Meta-Sample to put Tutorial first
         | 
    
        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.23.1. | 
| 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.23.1.4
         | 
| 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)
         | 
| @@ -19,9 +19,9 @@ Featured in JRuby Cookbook](http://shop.oreilly.com/product/9780596519650.do) an | |
| 19 19 |  | 
| 20 20 | 
             
            
         | 
| 21 21 |  | 
| 22 | 
            -
            [Glimmer DSL for SWT](https://rubygems.org/gems/glimmer-dsl-swt) 4.23.1. | 
| 22 | 
            +
            [Glimmer DSL for SWT](https://rubygems.org/gems/glimmer-dsl-swt) 4.23.1.4 includes [SWT 4.23](https://download.eclipse.org/eclipse/downloads/drops4/R-4.23-202203080310/), which was released on March 8, 2022. 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.
         | 
| 23 23 |  | 
| 24 | 
            -
            **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.
         | 
| 24 | 
            +
            **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. That was [originally conceived back in 2007](https://andymaleh.blogspot.com/2007/12/data-shining-in-glimmer.html).
         | 
| 25 25 |  | 
| 26 26 | 
             
            Please help make [Glimmer DSL for SWT](https://rubygems.org/gems/glimmer-dsl-swt) better by providing feedback and [contributing](#contributing) whenever possible. Any feature suggestions that are accepted could be implemented within weeks if not days.
         | 
| 27 27 |  | 
| @@ -333,7 +333,7 @@ jgem install glimmer-dsl-swt | |
| 333 333 |  | 
| 334 334 | 
             
            Or this command if you want a specific version:
         | 
| 335 335 | 
             
            ```
         | 
| 336 | 
            -
            jgem install glimmer-dsl-swt -v 4.23.1. | 
| 336 | 
            +
            jgem install glimmer-dsl-swt -v 4.23.1.4
         | 
| 337 337 | 
             
            ```
         | 
| 338 338 |  | 
| 339 339 | 
             
            `jgem` is JRuby's version of `gem` command.
         | 
| @@ -361,7 +361,7 @@ Note: if you're using activerecord or activesupport, keep in mind that Glimmer u | |
| 361 361 |  | 
| 362 362 | 
             
            Add the following to `Gemfile`:
         | 
| 363 363 | 
             
            ```
         | 
| 364 | 
            -
            gem 'glimmer-dsl-swt', '~> 4.23.1. | 
| 364 | 
            +
            gem 'glimmer-dsl-swt', '~> 4.23.1.4'
         | 
| 365 365 | 
             
            ```
         | 
| 366 366 |  | 
| 367 367 | 
             
            And, then run:
         | 
| @@ -384,7 +384,7 @@ glimmer | |
| 384 384 | 
             
            ```
         | 
| 385 385 |  | 
| 386 386 | 
             
            ```
         | 
| 387 | 
            -
            Glimmer (JRuby Desktop Development GUI Framework) - JRuby Gem: glimmer-dsl-swt v4.23.1. | 
| 387 | 
            +
            Glimmer (JRuby Desktop Development GUI Framework) - JRuby Gem: glimmer-dsl-swt v4.23.1.4
         | 
| 388 388 |  | 
| 389 389 | 
             
            Usage: glimmer [--bundler] [--pd] [--quiet] [--debug] [--log-level=VALUE] [[ENV_VAR=VALUE]...] [[-jruby-option]...] (application.rb or task[task_args]) [[application2.rb]...]
         | 
| 390 390 |  | 
    
        data/VERSION
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            4.23.1. | 
| 1 | 
            +
            4.23.1.4
         | 
| @@ -938,12 +938,10 @@ shell { | |
| 938 938 |  | 
| 939 939 | 
             
            The system tray allows showing icons for various apps that need to stay on for extended periods of time and provide quick access.
         | 
| 940 940 |  | 
| 941 | 
            -
            In Glimmer DSL for SWT, generating tray items is automated via the `tray_item` keyword, which can be nested under `shell` and then have a child `menu` underneath that pops up when the user clicks on its icon in the system tray.
         | 
| 941 | 
            +
            In Glimmer DSL for SWT, generating tray items is automated via the `tray_item` keyword, which can be nested under `shell` and then have a child `menu` underneath that pops up when the user clicks on its icon in the system tray. It is recommended that the related shell is declared with the `:on_top` style (in addition to the default style `:shell_trim`) to ensure it opens above all apps when shown.
         | 
| 942 942 |  | 
| 943 943 | 
             
            Note that if you would like to display notifications, you can use the [Nebula Notifier custom widget](https://github.com/AndyObtiva/glimmer-cw-nebula#notifier). Alternatively, you can look into the [Two Slices](https://github.com/sshtools/two-slices) Java library.
         | 
| 944 944 |  | 
| 945 | 
            -
            Note how the shell was declared with the `:on_top` style (in addition to the default, which is `:shell_trim`) to ensure it opens above all apps when the "Show Application" menu item is selected.
         | 
| 946 | 
            -
             | 
| 947 945 | 
             
            Example code:
         | 
| 948 946 |  | 
| 949 947 | 
             
            ```ruby
         | 
| @@ -1044,6 +1042,10 @@ It can be customized with the `weights` attribute by setting initial weights to | |
| 1044 1042 |  | 
| 1045 1043 | 
             
            One noteworthy thing about the Glimmer implementation is that, unlike behavior in SWT, it allows declaring `weights` before the content of the `sash_form`, thus providing more natural and convenient syntax (Glimmer automatically takes care of sending that declaration to SWT at the end of declaring `sash_form` content as per the SWT requirements)
         | 
| 1046 1044 |  | 
| 1045 | 
            +
            You can customize the color of the sash by setting the `background` attribute.
         | 
| 1046 | 
            +
             | 
| 1047 | 
            +
            Also, you can customize the `sash_width` (`Integer`) and `orientation` properties (`swt(:horizontal)` or `swt(:vertical)`).
         | 
| 1048 | 
            +
             | 
| 1047 1049 | 
             
            Example (you may copy/paste in [`girb`](GLIMMER_GIRB.md)):
         | 
| 1048 1050 |  | 
| 1049 1051 | 
             
            ```ruby
         | 
| @@ -3606,7 +3608,7 @@ Learn more at the [Hello, Tree!](/docs/reference/GLIMMER_SAMPLES.md#hello-tree) | |
| 3606 3608 |  | 
| 3607 3609 | 
             
            #### DateTime
         | 
| 3608 3610 |  | 
| 3609 | 
            -
            `date_time` represents the SWT DateTime widget.
         | 
| 3611 | 
            +
            `date_time` represents the SWT [DateTime](https://help.eclipse.org/latest/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/swt/widgets/DateTime.html) widget.
         | 
| 3610 3612 |  | 
| 3611 3613 | 
             
            Glimmer s the following alias keywords for it for convenience:
         | 
| 3612 3614 | 
             
            - `date`: `date_time(:date)`
         | 
| @@ -3615,15 +3617,15 @@ Glimmer s the following alias keywords for it for convenience: | |
| 3615 3617 | 
             
            - `calendar`: `date_time(:calendar)`
         | 
| 3616 3618 |  | 
| 3617 3619 | 
             
            You can data-bind any of these properties:
         | 
| 3618 | 
            -
            - `date_time  | 
| 3619 | 
            -
            - `date  | 
| 3620 | 
            -
            - `time  | 
| 3621 | 
            -
            - `year  | 
| 3622 | 
            -
            - `month  | 
| 3623 | 
            -
            - `day  | 
| 3624 | 
            -
            - `hours  | 
| 3625 | 
            -
            - `minutes  | 
| 3626 | 
            -
            - `seconds  | 
| 3620 | 
            +
            - `date_time <=> [model, :property]`: produces a Ruby DateTime object
         | 
| 3621 | 
            +
            - `date <=> [model, :property]`: produces a Ruby Date object
         | 
| 3622 | 
            +
            - `time <=> [model, :property]`: produces a Ruby Time object
         | 
| 3623 | 
            +
            - `year <=> [model, :property]`: produces an integer
         | 
| 3624 | 
            +
            - `month <=> [model, :property]`: produces an integer
         | 
| 3625 | 
            +
            - `day <=> [model, :property]`: produces an integer
         | 
| 3626 | 
            +
            - `hours <=> [model, :property]`: produces an integer
         | 
| 3627 | 
            +
            - `minutes <=> [model, :property]`: produces an integer
         | 
| 3628 | 
            +
            - `seconds <=> [model, :property]`: produces an integer
         | 
| 3627 3629 |  | 
| 3628 3630 | 
             
            Learn more at the [Hello, Date Time!](/docs/reference/GLIMMER_SAMPLES.md#hello-date-time) sample.
         | 
| 3629 3631 |  | 
| @@ -682,7 +682,7 @@ Hello, Print! | |
| 682 682 |  | 
| 683 683 | 
             
            #### Hello, Date Time!
         | 
| 684 684 |  | 
| 685 | 
            -
            This sample demonstrates the use of [date_time](#datetime) widget keywords in Glimmer: `date`, `date_drop_down`, `time`, and `calendar`
         | 
| 685 | 
            +
            This sample demonstrates the use of [date_time](/docs/reference/GLIMMER_GUI_DSL_SYNTAX.md#datetime) widget keywords in Glimmer: `date`, `date_drop_down`, `time`, and `calendar`
         | 
| 686 686 |  | 
| 687 687 | 
             
            Code:
         | 
| 688 688 |  | 
| @@ -1429,6 +1429,12 @@ Gladiator is a good demonstration of: | |
| 1429 1429 |  | 
| 1430 1430 | 
             
            [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer-cs-timer/master/glimmer-timer-screenshot.png" />](https://github.com/AndyObtiva/glimmer-cs-timer)
         | 
| 1431 1431 |  | 
| 1432 | 
            +
            #### Contact Manager
         | 
| 1433 | 
            +
             | 
| 1434 | 
            +
            [<img src="https://raw.githubusercontent.com/AndyObtiva/contact_manager/master/icons/linux/Contact%20Manager.png" height=40 /> Contact Manager](https://github.com/AndyObtiva/contact_manager) is an enhanced version of the included Contact Manager elaborate sample, which demonstrates how to connect to a [SQLite database](https://www.sqlite.org/index.html) with [ActiveRecord](https://rubygems.org/gems/activerecord).
         | 
| 1435 | 
            +
             | 
| 1436 | 
            +
            [<img src="https://raw.githubusercontent.com/AndyObtiva/contact_manager/master/screenshots/contact-manager.png" /> ](https://github.com/AndyObtiva/contact_manager)
         | 
| 1437 | 
            +
             | 
| 1432 1438 | 
             
            ## License
         | 
| 1433 1439 |  | 
| 1434 1440 | 
             
            [MIT](LICENSE.txt)
         | 
    
        data/glimmer-dsl-swt.gemspec
    CHANGED
    
    | Binary file | 
| @@ -280,17 +280,17 @@ module Glimmer | |
| 280 280 | 
             
                      write 'spec/spec_helper.rb', spec_helper_file
         | 
| 281 281 |  | 
| 282 282 | 
             
                      mkdir_p 'icons/windows'
         | 
| 283 | 
            -
                      icon_file = "icons/windows/#{human_name( | 
| 283 | 
            +
                      icon_file = "icons/windows/#{human_name(gem_name)}.ico"
         | 
| 284 284 | 
             
                      cp File.expand_path('../../../../icons/scaffold_app.ico', __FILE__), icon_file
         | 
| 285 285 | 
             
                      puts "Created #{current_dir_name}/#{icon_file}"
         | 
| 286 286 |  | 
| 287 287 | 
             
                      mkdir_p 'icons/macosx'
         | 
| 288 | 
            -
                      icon_file = "icons/macosx/#{human_name( | 
| 288 | 
            +
                      icon_file = "icons/macosx/#{human_name(gem_name)}.icns"
         | 
| 289 289 | 
             
                      cp File.expand_path('../../../../icons/scaffold_app.icns', __FILE__), icon_file
         | 
| 290 290 | 
             
                      puts "Created #{current_dir_name}/#{icon_file}"
         | 
| 291 291 |  | 
| 292 292 | 
             
                      mkdir_p 'icons/linux'
         | 
| 293 | 
            -
                      icon_file = "icons/linux/#{human_name( | 
| 293 | 
            +
                      icon_file = "icons/linux/#{human_name(gem_name)}.png"
         | 
| 294 294 | 
             
                      cp File.expand_path('../../../../icons/scaffold_app.png', __FILE__), icon_file
         | 
| 295 295 | 
             
                      puts "Created #{current_dir_name}/#{icon_file}"
         | 
| 296 296 |  | 
| @@ -445,9 +445,13 @@ module Glimmer | |
| 445 445 | 
             
                        end
         | 
| 446 446 |  | 
| 447 447 | 
             
                        class #{class_name(app_name)}
         | 
| 448 | 
            +
                          include Glimmer
         | 
| 449 | 
            +
                          
         | 
| 448 450 | 
             
                          APP_ROOT = File.expand_path('../..', __FILE__)
         | 
| 449 451 | 
             
                          VERSION = File.read(File.join(APP_ROOT, 'VERSION'))
         | 
| 450 452 | 
             
                          LICENSE = File.read(File.join(APP_ROOT, 'LICENSE.txt'))
         | 
| 453 | 
            +
                          Display.app_name = '#{human_name(app_name)}'
         | 
| 454 | 
            +
                          Display.app_version = VERSION
         | 
| 451 455 | 
             
                        end
         | 
| 452 456 |  | 
| 453 457 | 
             
                        require '#{file_name(app_name)}/view/app_view'
         | 
| @@ -574,6 +578,8 @@ module Glimmer | |
| 574 578 | 
             
                  APP_ROOT = File.expand_path('../../../..', __FILE__)
         | 
| 575 579 | 
             
                  VERSION = File.read(File.join(APP_ROOT, 'VERSION'))
         | 
| 576 580 | 
             
                  LICENSE = File.read(File.join(APP_ROOT, 'LICENSE.txt'))
         | 
| 581 | 
            +
                  Display.app_name = '#{human_name(custom_shell_name)}'
         | 
| 582 | 
            +
                  Display.app_version = VERSION
         | 
| 577 583 |  | 
| 578 584 | 
             
                        MULTI_LINE_STRING
         | 
| 579 585 | 
             
                      end
         | 
| @@ -594,8 +600,6 @@ module Glimmer | |
| 594 600 | 
             
                      if %i[gem app desktopify].include?(shell_type)
         | 
| 595 601 | 
             
                        custom_shell_file_content += <<-MULTI_LINE_STRING
         | 
| 596 602 | 
             
                  before_body do
         | 
| 597 | 
            -
                    Display.app_name = '#{shell_type == :gem ? human_name(custom_shell_name) : human_name(namespace)}'
         | 
| 598 | 
            -
                    Display.app_version = VERSION
         | 
| 599 603 | 
             
                    @display = display {
         | 
| 600 604 | 
             
                      on_about do
         | 
| 601 605 | 
             
                        display_about_dialog
         | 
| @@ -630,8 +634,8 @@ module Glimmer | |
| 630 634 | 
             
                    shell#{'(:fill_screen)' if shell_type == :desktopify} {
         | 
| 631 635 | 
             
                      # Replace example content below with custom shell content
         | 
| 632 636 | 
             
                      minimum_size #{shell_type == :desktopify ? '768, 432' : '420, 240'}
         | 
| 633 | 
            -
                      image File.join(APP_ROOT, 'icons', 'windows', "#{human_name( | 
| 634 | 
            -
                      image File.join(APP_ROOT, 'icons', 'linux', "#{human_name( | 
| 637 | 
            +
                      image File.join(APP_ROOT, 'icons', 'windows', "#{human_name(current_dir_name)}.ico") if OS.windows?
         | 
| 638 | 
            +
                      image File.join(APP_ROOT, 'icons', 'linux', "#{human_name(current_dir_name)}.png") unless OS.windows?
         | 
| 635 639 | 
             
                      text "#{human_name(namespace)}#{' - ' + human_name(custom_shell_name) if shell_type != :desktopify}"
         | 
| 636 640 |  | 
| 637 641 | 
             
                      MULTI_LINE_STRING
         | 
| @@ -661,18 +665,21 @@ module Glimmer | |
| 661 665 | 
             
                          text '&File'
         | 
| 662 666 |  | 
| 663 667 | 
             
                          menu_item {
         | 
| 664 | 
            -
                            text '& | 
| 668 | 
            +
                            text '&Preferences...'
         | 
| 665 669 |  | 
| 666 670 | 
             
                            on_widget_selected do
         | 
| 667 | 
            -
                              display_about_dialog
         | 
| 671 | 
            +
                              #{shell_type == :desktopify ? 'display_about_dialog' : 'display_preferences_dialog'}
         | 
| 668 672 | 
             
                            end
         | 
| 669 673 | 
             
                          }
         | 
| 674 | 
            +
                        }
         | 
| 675 | 
            +
                        menu {
         | 
| 676 | 
            +
                          text '&Help'
         | 
| 670 677 |  | 
| 671 678 | 
             
                          menu_item {
         | 
| 672 | 
            -
                            text '& | 
| 679 | 
            +
                            text '&About...'
         | 
| 673 680 |  | 
| 674 681 | 
             
                            on_widget_selected do
         | 
| 675 | 
            -
                               | 
| 682 | 
            +
                              display_about_dialog
         | 
| 676 683 | 
             
                            end
         | 
| 677 684 | 
             
                          }
         | 
| 678 685 | 
             
                        }
         | 
| @@ -1141,6 +1141,14 @@ module Glimmer | |
| 1141 1141 | 
             
                      items: lambda do |value|
         | 
| 1142 1142 | 
             
                        value.to_java :string
         | 
| 1143 1143 | 
             
                      end,
         | 
| 1144 | 
            +
                      maximized_control: lambda do |value|
         | 
| 1145 | 
            +
                        value = (value.respond_to?(:swt_widget) ? value.swt_widget : value) if swt_widget.is_a?(SashForm)
         | 
| 1146 | 
            +
                        value
         | 
| 1147 | 
            +
                      end,
         | 
| 1148 | 
            +
                      orientation: lambda do |value|
         | 
| 1149 | 
            +
                        value = SWTProxy[value] if swt_widget.is_a?(SashForm)
         | 
| 1150 | 
            +
                        value
         | 
| 1151 | 
            +
                      end,
         | 
| 1144 1152 | 
             
                      selection: lambda do |value|
         | 
| 1145 1153 | 
             
                        value = value.to_f if swt_widget.is_a?(Spinner)
         | 
| 1146 1154 | 
             
                        value
         | 
| @@ -12,3 +12,8 @@ Hello, Styled Text!: ahs54DPmmso | |
| 12 12 | 
             
            Hello, Code Text!: y0rNzMURnHY
         | 
| 13 13 | 
             
            Hello, Tree!: M-ZOFyzbEKo
         | 
| 14 14 | 
             
            Hello, Table!: 3zyyXq7WJwc
         | 
| 15 | 
            +
            Hello, Pop Up Context Menu!: kupwWSZdsQE
         | 
| 16 | 
            +
            Hello, Menu Bar!: 3RRVFIfA_UM
         | 
| 17 | 
            +
            Weather: rC6x6aj1MdA
         | 
| 18 | 
            +
            Hello, Date Time!: MpXbPEMUrns
         | 
| 19 | 
            +
            Hello, Sash Form!: F7j2TTpbX6s
         | 
| @@ -41,6 +41,7 @@ shell { | |
| 41 41 | 
             
              menu_bar {
         | 
| 42 42 | 
             
                menu {
         | 
| 43 43 | 
             
                  text '&File'
         | 
| 44 | 
            +
             | 
| 44 45 | 
             
                  menu_item {
         | 
| 45 46 | 
             
                    text '&New'
         | 
| 46 47 | 
             
                    accelerator :command, :N
         | 
| @@ -52,6 +53,7 @@ shell { | |
| 52 53 | 
             
                      }.open
         | 
| 53 54 | 
             
                    end
         | 
| 54 55 | 
             
                  }
         | 
| 56 | 
            +
             | 
| 55 57 | 
             
                  menu_item {
         | 
| 56 58 | 
             
                    text '&Open...'
         | 
| 57 59 | 
             
                    accelerator :command, :O
         | 
| @@ -63,10 +65,13 @@ shell { | |
| 63 65 | 
             
                      }.open
         | 
| 64 66 | 
             
                    end
         | 
| 65 67 | 
             
                  }
         | 
| 68 | 
            +
             | 
| 66 69 | 
             
                  menu {
         | 
| 67 70 | 
             
                    text 'Open &Recent'
         | 
| 71 | 
            +
             | 
| 68 72 | 
             
                    menu_item {
         | 
| 69 73 | 
             
                      text 'File 1'
         | 
| 74 | 
            +
             | 
| 70 75 | 
             
                      on_widget_selected do
         | 
| 71 76 | 
             
                        message_box {
         | 
| 72 77 | 
             
                          text 'File 1'
         | 
| @@ -74,8 +79,10 @@ shell { | |
| 74 79 | 
             
                        }.open
         | 
| 75 80 | 
             
                      end
         | 
| 76 81 | 
             
                    }
         | 
| 82 | 
            +
             | 
| 77 83 | 
             
                    menu_item {
         | 
| 78 84 | 
             
                      text 'File 2'
         | 
| 85 | 
            +
             | 
| 79 86 | 
             
                      on_widget_selected do
         | 
| 80 87 | 
             
                        message_box {
         | 
| 81 88 | 
             
                          text 'File 2'
         | 
| @@ -84,7 +91,9 @@ shell { | |
| 84 91 | 
             
                      end
         | 
| 85 92 | 
             
                    }
         | 
| 86 93 | 
             
                  }
         | 
| 94 | 
            +
             | 
| 87 95 | 
             
                  menu_item(:separator)
         | 
| 96 | 
            +
             | 
| 88 97 | 
             
                  menu_item {
         | 
| 89 98 | 
             
                    text 'E&xit'
         | 
| 90 99 |  | 
| @@ -93,21 +102,26 @@ shell { | |
| 93 102 | 
             
                    end
         | 
| 94 103 | 
             
                  }
         | 
| 95 104 | 
             
                }
         | 
| 105 | 
            +
             | 
| 96 106 | 
             
                menu {
         | 
| 97 107 | 
             
                  text '&Edit'
         | 
| 108 | 
            +
             | 
| 98 109 | 
             
                  menu_item {
         | 
| 99 110 | 
             
                    text 'Cut'
         | 
| 100 111 | 
             
                    accelerator :command, :X
         | 
| 101 112 | 
             
                  }
         | 
| 113 | 
            +
             | 
| 102 114 | 
             
                  menu_item {
         | 
| 103 115 | 
             
                    text 'Copy'
         | 
| 104 116 | 
             
                    accelerator :command, :C
         | 
| 105 117 | 
             
                  }
         | 
| 118 | 
            +
             | 
| 106 119 | 
             
                  menu_item {
         | 
| 107 120 | 
             
                    text 'Paste'
         | 
| 108 121 | 
             
                    accelerator :command, :V
         | 
| 109 122 | 
             
                  }
         | 
| 110 123 | 
             
                }
         | 
| 124 | 
            +
             | 
| 111 125 | 
             
                menu {
         | 
| 112 126 | 
             
                  text '&Options'
         | 
| 113 127 |  | 
| @@ -119,6 +133,7 @@ shell { | |
| 119 133 | 
             
                      @select_multiple_menu.enabled = true
         | 
| 120 134 | 
             
                    end
         | 
| 121 135 | 
             
                  }
         | 
| 136 | 
            +
             | 
| 122 137 | 
             
                  @select_one_menu = menu {
         | 
| 123 138 | 
             
                    text '&Select One'
         | 
| 124 139 | 
             
                    enabled false
         | 
| @@ -126,13 +141,16 @@ shell { | |
| 126 141 | 
             
                    menu_item(:radio) {
         | 
| 127 142 | 
             
                      text 'Option 1'
         | 
| 128 143 | 
             
                    }
         | 
| 144 | 
            +
             | 
| 129 145 | 
             
                    menu_item(:radio) {
         | 
| 130 146 | 
             
                      text 'Option 2'
         | 
| 131 147 | 
             
                    }
         | 
| 148 | 
            +
             | 
| 132 149 | 
             
                    menu_item(:radio) {
         | 
| 133 150 | 
             
                      text 'Option 3'
         | 
| 134 151 | 
             
                    }
         | 
| 135 152 | 
             
                  }
         | 
| 153 | 
            +
             | 
| 136 154 | 
             
                  @select_multiple_menu = menu {
         | 
| 137 155 | 
             
                    text '&Select Multiple'
         | 
| 138 156 | 
             
                    enabled false
         | 
| @@ -140,18 +158,64 @@ shell { | |
| 140 158 | 
             
                    menu_item(:check) {
         | 
| 141 159 | 
             
                      text 'Option 4'
         | 
| 142 160 | 
             
                    }
         | 
| 161 | 
            +
             | 
| 143 162 | 
             
                    menu_item(:check) {
         | 
| 144 163 | 
             
                      text 'Option 5'
         | 
| 145 164 | 
             
                    }
         | 
| 165 | 
            +
             | 
| 146 166 | 
             
                    menu_item(:check) {
         | 
| 147 167 | 
             
                      text 'Option 6'
         | 
| 148 168 | 
             
                    }
         | 
| 149 169 | 
             
                  }
         | 
| 150 170 | 
             
                }
         | 
| 171 | 
            +
             | 
| 172 | 
            +
                menu {
         | 
| 173 | 
            +
                  text '&Language'
         | 
| 174 | 
            +
             | 
| 175 | 
            +
                  ['denmark', 'finland', 'france', 'germany', 'italy', 'mexico', 'netherlands', 'norway', 'usa'].each do |image_name|
         | 
| 176 | 
            +
                    menu_item(:radio) { |a_menu_item|
         | 
| 177 | 
            +
                      image File.expand_path("images/#{image_name}.png", __dir__)
         | 
| 178 | 
            +
                      selection image_name == 'usa'
         | 
| 179 | 
            +
             | 
| 180 | 
            +
                      on_widget_selected do
         | 
| 181 | 
            +
                        if a_menu_item.selection
         | 
| 182 | 
            +
                          message_box {
         | 
| 183 | 
            +
                            text 'Language Selection'
         | 
| 184 | 
            +
                            message "You selected the language of #{image_name.capitalize}!"
         | 
| 185 | 
            +
                          }.open
         | 
| 186 | 
            +
                        end
         | 
| 187 | 
            +
                      end
         | 
| 188 | 
            +
                    }
         | 
| 189 | 
            +
                  end
         | 
| 190 | 
            +
                }
         | 
| 191 | 
            +
             | 
| 192 | 
            +
                menu {
         | 
| 193 | 
            +
                  text '&Country'
         | 
| 194 | 
            +
             | 
| 195 | 
            +
                  ['denmark', 'finland', 'france', 'germany', 'italy', 'mexico', 'netherlands', 'norway', 'usa'].each do |image_name|
         | 
| 196 | 
            +
                    menu_item(:radio) { |a_menu_item|
         | 
| 197 | 
            +
                      text image_name.capitalize
         | 
| 198 | 
            +
                      image File.expand_path("images/#{image_name}.png", __dir__)
         | 
| 199 | 
            +
                      selection image_name == 'usa'
         | 
| 200 | 
            +
             | 
| 201 | 
            +
                      on_widget_selected do
         | 
| 202 | 
            +
                        if a_menu_item.selection
         | 
| 203 | 
            +
                          message_box {
         | 
| 204 | 
            +
                            text 'Country Selection'
         | 
| 205 | 
            +
                            message "You selected the country of #{image_name.capitalize}!"
         | 
| 206 | 
            +
                          }.open
         | 
| 207 | 
            +
                        end
         | 
| 208 | 
            +
                      end
         | 
| 209 | 
            +
                    }
         | 
| 210 | 
            +
                  end
         | 
| 211 | 
            +
                }
         | 
| 212 | 
            +
             | 
| 151 213 | 
             
                menu {
         | 
| 152 214 | 
             
                  text '&Format'
         | 
| 215 | 
            +
             | 
| 153 216 | 
             
                  menu {
         | 
| 154 217 | 
             
                    text '&Background Color'
         | 
| 218 | 
            +
             | 
| 155 219 | 
             
                    COLORS.each { |color_style|
         | 
| 156 220 | 
             
                      menu_item(:radio) {
         | 
| 157 221 | 
             
                        text color_style.to_s.split('_').map(&:capitalize).join(' ')
         | 
| @@ -162,8 +226,10 @@ shell { | |
| 162 226 | 
             
                      }
         | 
| 163 227 | 
             
                    }
         | 
| 164 228 | 
             
                  }
         | 
| 229 | 
            +
             | 
| 165 230 | 
             
                  menu {
         | 
| 166 231 | 
             
                    text 'Foreground &Color'
         | 
| 232 | 
            +
             | 
| 167 233 | 
             
                    COLORS.each { |color_style|
         | 
| 168 234 | 
             
                      menu_item(:radio) {
         | 
| 169 235 | 
             
                        text color_style.to_s.split('_').map(&:capitalize).join(' ')
         | 
| @@ -175,8 +241,10 @@ shell { | |
| 175 241 | 
             
                    }
         | 
| 176 242 | 
             
                  }
         | 
| 177 243 | 
             
                }
         | 
| 244 | 
            +
             | 
| 178 245 | 
             
                menu {
         | 
| 179 246 | 
             
                  text '&View'
         | 
| 247 | 
            +
             | 
| 180 248 | 
             
                  menu_item(:radio) {
         | 
| 181 249 | 
             
                    text 'Small'
         | 
| 182 250 |  | 
| @@ -185,6 +253,7 @@ shell { | |
| 185 253 | 
             
                      @label.parent.pack
         | 
| 186 254 | 
             
                    end
         | 
| 187 255 | 
             
                  }
         | 
| 256 | 
            +
             | 
| 188 257 | 
             
                  menu_item(:radio) {
         | 
| 189 258 | 
             
                    text 'Medium'
         | 
| 190 259 | 
             
                    selection true
         | 
| @@ -194,6 +263,7 @@ shell { | |
| 194 263 | 
             
                      @label.parent.pack
         | 
| 195 264 | 
             
                    end
         | 
| 196 265 | 
             
                  }
         | 
| 266 | 
            +
             | 
| 197 267 | 
             
                  menu_item(:radio) {
         | 
| 198 268 | 
             
                    text 'Large'
         | 
| 199 269 |  | 
| @@ -203,8 +273,10 @@ shell { | |
| 203 273 | 
             
                    end
         | 
| 204 274 | 
             
                  }
         | 
| 205 275 | 
             
                }
         | 
| 276 | 
            +
             | 
| 206 277 | 
             
                menu {
         | 
| 207 278 | 
             
                  text '&Help'
         | 
| 279 | 
            +
             | 
| 208 280 | 
             
                  menu_item {
         | 
| 209 281 | 
             
                    text '&Manual'
         | 
| 210 282 | 
             
                    accelerator :command, :shift, :M
         | 
| @@ -216,6 +288,7 @@ shell { | |
| 216 288 | 
             
                      }.open
         | 
| 217 289 | 
             
                    end
         | 
| 218 290 | 
             
                  }
         | 
| 291 | 
            +
             | 
| 219 292 | 
             
                  menu_item {
         | 
| 220 293 | 
             
                    text '&Tutorial'
         | 
| 221 294 | 
             
                    accelerator :command, :shift, :T
         | 
| @@ -227,7 +300,9 @@ shell { | |
| 227 300 | 
             
                      }.open
         | 
| 228 301 | 
             
                    end
         | 
| 229 302 | 
             
                  }
         | 
| 303 | 
            +
             | 
| 230 304 | 
             
                  menu_item(:separator)
         | 
| 305 | 
            +
             | 
| 231 306 | 
             
                  menu_item {
         | 
| 232 307 | 
             
                    text '&Report an Issue...'
         | 
| 233 308 |  | 
| @@ -22,22 +22,15 @@ | |
| 22 22 | 
             
            require 'glimmer-dsl-swt'
         | 
| 23 23 |  | 
| 24 24 | 
             
            class SashFormPresenter
         | 
| 25 | 
            -
               | 
| 26 | 
            -
              
         | 
| 27 | 
            -
              attr_accessor :sash_width, :orientation, :orientation_style
         | 
| 25 | 
            +
              attr_accessor :sash_width, :sash_color, :orientation
         | 
| 28 26 |  | 
| 29 27 | 
             
              def initialize
         | 
| 30 | 
            -
                 | 
| 31 | 
            -
                self.orientation =  | 
| 28 | 
            +
                self.sash_width = 10
         | 
| 29 | 
            +
                self.orientation = :horizontal
         | 
| 32 30 | 
             
              end
         | 
| 33 31 |  | 
| 34 32 | 
             
              def orientation_options
         | 
| 35 | 
            -
                [ | 
| 36 | 
            -
              end
         | 
| 37 | 
            -
              
         | 
| 38 | 
            -
              def orientation=(value)
         | 
| 39 | 
            -
                @orientation = value
         | 
| 40 | 
            -
                self.orientation_style = swt(@orientation)
         | 
| 33 | 
            +
                [:horizontal, :vertical]
         | 
| 41 34 | 
             
              end
         | 
| 42 35 | 
             
            end
         | 
| 43 36 |  | 
| @@ -55,7 +48,8 @@ shell { | |
| 55 48 | 
             
                  height_hint 200
         | 
| 56 49 | 
             
                }
         | 
| 57 50 | 
             
                sash_width <=> [@presenter, :sash_width]
         | 
| 58 | 
            -
                 | 
| 51 | 
            +
                background <=> [@presenter, :sash_color]
         | 
| 52 | 
            +
                orientation <=> [@presenter, :orientation]
         | 
| 59 53 | 
             
                weights 1, 2
         | 
| 60 54 |  | 
| 61 55 | 
             
                @green_label = label {
         | 
| @@ -90,6 +84,20 @@ shell { | |
| 90 84 | 
             
                  font height: 16
         | 
| 91 85 | 
             
                }
         | 
| 92 86 |  | 
| 87 | 
            +
                label {
         | 
| 88 | 
            +
                  layout_data(:right, :center, true, false)
         | 
| 89 | 
            +
                  text 'Sash Color:'
         | 
| 90 | 
            +
                  font height: 16
         | 
| 91 | 
            +
                }
         | 
| 92 | 
            +
                button {
         | 
| 93 | 
            +
                  layout_data :fill, :center, true, false
         | 
| 94 | 
            +
                  text "Choose Color..."
         | 
| 95 | 
            +
                  
         | 
| 96 | 
            +
                  on_widget_selected do
         | 
| 97 | 
            +
                    @presenter.sash_color = color_dialog.open
         | 
| 98 | 
            +
                  end
         | 
| 99 | 
            +
                }
         | 
| 100 | 
            +
                
         | 
| 93 101 | 
             
                label {
         | 
| 94 102 | 
             
                  layout_data(:right, :center, true, false)
         | 
| 95 103 | 
             
                  text 'Orientation:'
         | 
| @@ -110,7 +118,7 @@ shell { | |
| 110 118 | 
             
                  font height: 16
         | 
| 111 119 |  | 
| 112 120 | 
             
                  on_widget_selected do
         | 
| 113 | 
            -
                    @sash_form.maximized_control = @green_label | 
| 121 | 
            +
                    @sash_form.maximized_control = @green_label
         | 
| 114 122 | 
             
                  end
         | 
| 115 123 | 
             
                }
         | 
| 116 124 | 
             
                button {
         | 
| @@ -120,7 +128,7 @@ shell { | |
| 120 128 | 
             
                  font height: 16
         | 
| 121 129 |  | 
| 122 130 | 
             
                  on_widget_selected do
         | 
| 123 | 
            -
                    @sash_form.maximized_control = @red_label | 
| 131 | 
            +
                    @sash_form.maximized_control = @red_label
         | 
| 124 132 | 
             
                  end
         | 
| 125 133 | 
             
                }
         | 
| 126 134 |  | 
    
        data/samples/hello/hello_tree.rb
    CHANGED
    
    
    
        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.23.1. | 
| 4 | 
            +
              version: 4.23.1.4
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Andy Maleh
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2022- | 
| 11 | 
            +
            date: 2022-06-03 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              requirement: !ruby/object:Gem::Requirement
         |