glimmer-dsl-swt 4.17.8.1 → 4.17.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +25 -4
- data/VERSION +1 -1
- data/glimmer-dsl-swt.gemspec +4 -3
- data/lib/glimmer/dsl/swt/checkbox_group_selection_data_binding_expression.rb +3 -3
- data/lib/glimmer/dsl/swt/radio_group_selection_data_binding_expression.rb +3 -3
- data/lib/glimmer/swt/custom/checkbox_group.rb +29 -8
- data/lib/glimmer/swt/custom/radio_group.rb +27 -6
- data/lib/glimmer/swt/tab_item_proxy.rb +3 -3
- data/samples/hello/hello_checkbox.rb +4 -4
- data/samples/hello/hello_checkbox_group.rb +3 -3
- data/samples/hello/hello_group.rb +104 -0
- data/samples/hello/hello_radio.rb +6 -6
- data/samples/hello/hello_radio_group.rb +6 -6
- metadata +3 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 517e5bcedc06e71150e504d4c8ad484adb383e839df9b09e9683d9ebcce72ce8
         | 
| 4 | 
            +
              data.tar.gz: b9792dd4d60cdb642b187848f9cc07d2d33c5bb1801bf2cb961a59f1247d9713
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 74eae56731cba0eba1092b9a926cd995cc23190b78126436d5dff8454dc0b0a75e5a70ecc4c5a864d3580bb8f2ad4d003a3ef18bba4d7bb5b0a4f4a44eb5afe3
         | 
| 7 | 
            +
              data.tar.gz: 41b95e7e364eab995e026fec0c442162fefa138b504a48a95ba0e93f39e460b676e635a64228a8c51559ea4c0468afa09695fa1be63f375d6788c7914c6609fc
         | 
    
        data/README.md
    CHANGED
    
    | @@ -1,4 +1,4 @@ | |
| 1 | 
            -
            # [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=85 />](https://github.com/AndyObtiva/glimmer) Glimmer DSL for SWT 4.17.8. | 
| 1 | 
            +
            # [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=85 />](https://github.com/AndyObtiva/glimmer) Glimmer DSL for SWT 4.17.8.2
         | 
| 2 2 | 
             
            ## JRuby Desktop Development GUI Library
         | 
| 3 3 | 
             
            [](http://badge.fury.io/rb/glimmer-dsl-swt)
         | 
| 4 4 | 
             
            [](https://travis-ci.com/github/AndyObtiva/glimmer-dsl-swt)
         | 
| @@ -349,6 +349,7 @@ Glimmer App: | |
| 349 349 | 
             
                  - [Hello, Expand Bar!](#hello-expand-bar)
         | 
| 350 350 | 
             
                  - [Hello, Radio!](#hello-radio)
         | 
| 351 351 | 
             
                  - [Hello, Radio Group!](#hello-radio-group)
         | 
| 352 | 
            +
                  - [Hello, Group!](#hello-group)
         | 
| 352 353 | 
             
                  - [Hello, Checkbox!](#hello-checkbox)
         | 
| 353 354 | 
             
                  - [Hello, Checkbox Group!](#hello-checkbox-group)
         | 
| 354 355 | 
             
                  - [Hello, Directory Dialog!](#hello-directory-dialog)
         | 
| @@ -446,7 +447,7 @@ jgem install glimmer-dsl-swt | |
| 446 447 |  | 
| 447 448 | 
             
            Or this command if you want a specific version:
         | 
| 448 449 | 
             
            ```
         | 
| 449 | 
            -
            jgem install glimmer-dsl-swt -v 4.17.8. | 
| 450 | 
            +
            jgem install glimmer-dsl-swt -v 4.17.8.2
         | 
| 450 451 | 
             
            ```
         | 
| 451 452 |  | 
| 452 453 | 
             
            `jgem` is JRuby's version of `gem` command.
         | 
| @@ -522,7 +523,7 @@ bin/glimmer samples | |
| 522 523 | 
             
            Below are the full usage instructions that come up when running `glimmer` without args.
         | 
| 523 524 |  | 
| 524 525 | 
             
            ```
         | 
| 525 | 
            -
            Glimmer (Ruby Desktop Development GUI Library) - JRuby Gem: glimmer-dsl-swt v4.17.8. | 
| 526 | 
            +
            Glimmer (Ruby Desktop Development GUI Library) - JRuby Gem: glimmer-dsl-swt v4.17.8.2
         | 
| 526 527 |  | 
| 527 528 | 
             
            Usage: glimmer [--bundler] [--pd] [--quiet] [--debug] [--log-level=VALUE] [[ENV_VAR=VALUE]...] [[-jruby-option]...] (application.rb or task[task_args]) [[application2.rb]...]
         | 
| 528 529 |  | 
| @@ -999,7 +1000,7 @@ Output: | |
| 999 1000 |  | 
| 1000 1001 | 
             
              Css    glimmer-dsl-css    1.1.0     AndyMaleh    Glimmer DSL for CSS
         | 
| 1001 1002 | 
             
              Opal   glimmer-dsl-opal   0.4.0     AndyMaleh    Glimmer DSL for Opal
         | 
| 1002 | 
            -
              Swt    glimmer-dsl-swt    4.17.8. | 
| 1003 | 
            +
              Swt    glimmer-dsl-swt    4.17.8.2  AndyMaleh    Glimmer DSL for SWT
         | 
| 1003 1004 | 
             
              Tk     glimmer-dsl-tk     0.0.6     AndyMaleh    Glimmer DSL for Tk
         | 
| 1004 1005 | 
             
              Xml    glimmer-dsl-xml    1.1.0     AndyMaleh    Glimmer DSL for XML
         | 
| 1005 1006 | 
             
            ```
         | 
| @@ -3732,6 +3733,26 @@ Code: | |
| 3732 3733 |  | 
| 3733 3734 | 
             
            [samples/hello/hello_checkbox.rb](https://github.com/AndyObtiva/glimmer-dsl-swt/blob/master/samples/hello/hello_checkbox.rb)
         | 
| 3734 3735 |  | 
| 3736 | 
            +
            #### Hello, Group!
         | 
| 3737 | 
            +
             | 
| 3738 | 
            +
            This sample demonstrates the use of a `group` in Glimmer (not to be confused with the logical radio group custom widget, this is just an alternative to `composite` that provides a border around content).
         | 
| 3739 | 
            +
             | 
| 3740 | 
            +
            Code:
         | 
| 3741 | 
            +
             | 
| 3742 | 
            +
            [samples/hello/hello_group.rb](https://github.com/AndyObtiva/glimmer-dsl-swt/blob/master/samples/hello/hello_group.rb)
         | 
| 3743 | 
            +
             | 
| 3744 | 
            +
            Hello, Group!
         | 
| 3745 | 
            +
             | 
| 3746 | 
            +
            
         | 
| 3747 | 
            +
             | 
| 3748 | 
            +
            #### Hello, Checkbox!
         | 
| 3749 | 
            +
             | 
| 3750 | 
            +
            This sample demonstrates the use of a `checkbox` (aka `check` or `button(:check)`) in Glimmer.
         | 
| 3751 | 
            +
             | 
| 3752 | 
            +
            Code:
         | 
| 3753 | 
            +
             | 
| 3754 | 
            +
            [samples/hello/hello_checkbox.rb](https://github.com/AndyObtiva/glimmer-dsl-swt/blob/master/samples/hello/hello_checkbox.rb)
         | 
| 3755 | 
            +
             | 
| 3735 3756 | 
             
            Hello, Checkbox!
         | 
| 3736 3757 |  | 
| 3737 3758 | 
             
            
         | 
    
        data/VERSION
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            4.17.8. | 
| 1 | 
            +
            4.17.8.2
         | 
    
        data/glimmer-dsl-swt.gemspec
    CHANGED
    
    | @@ -2,16 +2,16 @@ | |
| 2 2 | 
             
            # DO NOT EDIT THIS FILE DIRECTLY
         | 
| 3 3 | 
             
            # Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
         | 
| 4 4 | 
             
            # -*- encoding: utf-8 -*-
         | 
| 5 | 
            -
            # stub: glimmer-dsl-swt 4.17.8. | 
| 5 | 
            +
            # stub: glimmer-dsl-swt 4.17.8.2 ruby lib
         | 
| 6 6 |  | 
| 7 7 | 
             
            Gem::Specification.new do |s|
         | 
| 8 8 | 
             
              s.name = "glimmer-dsl-swt".freeze
         | 
| 9 | 
            -
              s.version = "4.17.8. | 
| 9 | 
            +
              s.version = "4.17.8.2"
         | 
| 10 10 |  | 
| 11 11 | 
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
         | 
| 12 12 | 
             
              s.require_paths = ["lib".freeze]
         | 
| 13 13 | 
             
              s.authors = ["AndyMaleh".freeze]
         | 
| 14 | 
            -
              s.date = "2020-11- | 
| 14 | 
            +
              s.date = "2020-11-03"
         | 
| 15 15 | 
             
              s.description = "Glimmer DSL for SWT (JRuby Desktop Development GUI Library)".freeze
         | 
| 16 16 | 
             
              s.email = "andy.am@gmail.com".freeze
         | 
| 17 17 | 
             
              s.executables = ["glimmer".freeze, "girb".freeze]
         | 
| @@ -141,6 +141,7 @@ Gem::Specification.new do |s| | |
| 141 141 | 
             
                "samples/hello/hello_drag_and_drop.rb",
         | 
| 142 142 | 
             
                "samples/hello/hello_expand_bar.rb",
         | 
| 143 143 | 
             
                "samples/hello/hello_file_dialog.rb",
         | 
| 144 | 
            +
                "samples/hello/hello_group.rb",
         | 
| 144 145 | 
             
                "samples/hello/hello_list_multi_selection.rb",
         | 
| 145 146 | 
             
                "samples/hello/hello_list_single_selection.rb",
         | 
| 146 147 | 
             
                "samples/hello/hello_menu_bar.rb",
         | 
| @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            # Copyright (c) 2007-2020 Andy Maleh
         | 
| 2 | 
            -
            # | 
| 2 | 
            +
            #
         | 
| 3 3 | 
             
            # Permission is hereby granted, free of charge, to any person obtaining
         | 
| 4 4 | 
             
            # a copy of this software and associated documentation files (the
         | 
| 5 5 | 
             
            # "Software"), to deal in the Software without restriction, including
         | 
| @@ -7,10 +7,10 @@ | |
| 7 7 | 
             
            # distribute, sublicense, and/or sell copies of the Software, and to
         | 
| 8 8 | 
             
            # permit persons to whom the Software is furnished to do so, subject to
         | 
| 9 9 | 
             
            # the following conditions:
         | 
| 10 | 
            -
            # | 
| 10 | 
            +
            #
         | 
| 11 11 | 
             
            # The above copyright notice and this permission notice shall be
         | 
| 12 12 | 
             
            # included in all copies or substantial portions of the Software.
         | 
| 13 | 
            -
            # | 
| 13 | 
            +
            #
         | 
| 14 14 | 
             
            # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
         | 
| 15 15 | 
             
            # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
         | 
| 16 16 | 
             
            # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
         | 
| @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            # Copyright (c) 2007-2020 Andy Maleh
         | 
| 2 | 
            -
            # | 
| 2 | 
            +
            #
         | 
| 3 3 | 
             
            # Permission is hereby granted, free of charge, to any person obtaining
         | 
| 4 4 | 
             
            # a copy of this software and associated documentation files (the
         | 
| 5 5 | 
             
            # "Software"), to deal in the Software without restriction, including
         | 
| @@ -7,10 +7,10 @@ | |
| 7 7 | 
             
            # distribute, sublicense, and/or sell copies of the Software, and to
         | 
| 8 8 | 
             
            # permit persons to whom the Software is furnished to do so, subject to
         | 
| 9 9 | 
             
            # the following conditions:
         | 
| 10 | 
            -
            # | 
| 10 | 
            +
            #
         | 
| 11 11 | 
             
            # The above copyright notice and this permission notice shall be
         | 
| 12 12 | 
             
            # included in all copies or substantial portions of the Software.
         | 
| 13 | 
            -
            # | 
| 13 | 
            +
            #
         | 
| 14 14 | 
             
            # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
         | 
| 15 15 | 
             
            # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
         | 
| 16 16 | 
             
            # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
         | 
| @@ -1,9 +1,30 @@ | |
| 1 | 
            +
            # Copyright (c) 2007-2020 Andy Maleh
         | 
| 2 | 
            +
            #
         | 
| 3 | 
            +
            # Permission is hereby granted, free of charge, to any person obtaining
         | 
| 4 | 
            +
            # a copy of this software and associated documentation files (the
         | 
| 5 | 
            +
            # "Software"), to deal in the Software without restriction, including
         | 
| 6 | 
            +
            # without limitation the rights to use, copy, modify, merge, publish,
         | 
| 7 | 
            +
            # distribute, sublicense, and/or sell copies of the Software, and to
         | 
| 8 | 
            +
            # permit persons to whom the Software is furnished to do so, subject to
         | 
| 9 | 
            +
            # the following conditions:
         | 
| 10 | 
            +
            #
         | 
| 11 | 
            +
            # The above copyright notice and this permission notice shall be
         | 
| 12 | 
            +
            # included in all copies or substantial portions of the Software.
         | 
| 13 | 
            +
            #
         | 
| 14 | 
            +
            # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
         | 
| 15 | 
            +
            # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
         | 
| 16 | 
            +
            # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
         | 
| 17 | 
            +
            # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
         | 
| 18 | 
            +
            # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
         | 
| 19 | 
            +
            # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
         | 
| 20 | 
            +
            # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
         | 
| 21 | 
            +
             | 
| 1 22 | 
             
            require 'glimmer/ui/custom_widget'
         | 
| 2 23 |  | 
| 3 24 | 
             
            module Glimmer
         | 
| 4 25 | 
             
              module SWT
         | 
| 5 26 | 
             
                module Custom
         | 
| 6 | 
            -
                  #  | 
| 27 | 
            +
                  # A custom widget rendering a group of checkboxes generated via data-binding
         | 
| 7 28 | 
             
                  class CheckboxGroup
         | 
| 8 29 | 
             
                    include Glimmer::UI::CustomWidget
         | 
| 9 30 |  | 
| @@ -71,7 +92,7 @@ module Glimmer | |
| 71 92 | 
             
                      if observation_request != 'on_widget_disposed'
         | 
| 72 93 | 
             
                        checkboxes.count.times do |index|
         | 
| 73 94 | 
             
                          checkbox = checkboxes[index]
         | 
| 74 | 
            -
                          label = labels[index] | 
| 95 | 
            +
                          label = labels[index]
         | 
| 75 96 | 
             
                          listener_block = lambda do |event|
         | 
| 76 97 | 
             
                            event.widget = self.swt_widget
         | 
| 77 98 | 
             
                            block.call(event)
         | 
| @@ -81,7 +102,7 @@ module Glimmer | |
| 81 102 | 
             
                            label.handle_observation_request('on_mouse_up', &listener_block)
         | 
| 82 103 | 
             
                          else
         | 
| 83 104 | 
             
                            checkbox.handle_observation_request(observation_request, &listener_block) if checkbox.can_handle_observation_request?(observation_request)
         | 
| 84 | 
            -
                            label.handle_observation_request(observation_request, &listener_block) if label.can_handle_observation_request?(observation_request) | 
| 105 | 
            +
                            label.handle_observation_request(observation_request, &listener_block) if label.can_handle_observation_request?(observation_request)
         | 
| 85 106 | 
             
                          end
         | 
| 86 107 | 
             
                        end
         | 
| 87 108 | 
             
                      end
         | 
| @@ -93,7 +114,7 @@ module Glimmer | |
| 93 114 |  | 
| 94 115 | 
             
                    def has_attribute?(attribute_name, *args)
         | 
| 95 116 | 
             
                      (@composites.to_a + @checkboxes.to_a + @labels.to_a).map do |widget_proxy|
         | 
| 96 | 
            -
                        return true if widget_proxy.has_attribute?(attribute_name, *args) | 
| 117 | 
            +
                        return true if widget_proxy.has_attribute?(attribute_name, *args)
         | 
| 97 118 | 
             
                      end
         | 
| 98 119 | 
             
                      super
         | 
| 99 120 | 
             
                    end
         | 
| @@ -124,16 +145,16 @@ module Glimmer | |
| 124 145 | 
             
                              margin_height 0
         | 
| 125 146 | 
             
                              horizontal_spacing 0
         | 
| 126 147 | 
             
                              vertical_spacing 0
         | 
| 127 | 
            -
                            } | 
| 148 | 
            +
                            }
         | 
| 128 149 | 
             
                            checkboxes << checkbox { |checkbox_proxy|
         | 
| 129 | 
            -
                              on_widget_selected { | 
| 150 | 
            +
                              on_widget_selected {
         | 
| 130 151 | 
             
                                self.selection_indices = checkboxes.each_with_index.map {|cb, i| i if cb.selection}.to_a.compact
         | 
| 131 152 | 
             
                              }
         | 
| 132 153 | 
             
                            }
         | 
| 133 154 | 
             
                            labels << label { |label_proxy|
         | 
| 134 155 | 
             
                              layout_data :fill, :center, true, false
         | 
| 135 156 | 
             
                              text item
         | 
| 136 | 
            -
                              on_mouse_up { |event| | 
| 157 | 
            +
                              on_mouse_up { |event|
         | 
| 137 158 | 
             
                                found_text = labels.each_with_index.detect {|l, i| event.widget == l.swt_widget}[0]&.text
         | 
| 138 159 | 
             
                                selection_values = self.selection
         | 
| 139 160 | 
             
                                if selection_values.include?(found_text)
         | 
| @@ -148,7 +169,7 @@ module Glimmer | |
| 148 169 | 
             
                        }
         | 
| 149 170 | 
             
                      end
         | 
| 150 171 | 
             
                      observation_requests.to_a.each do |observation_request, block|
         | 
| 151 | 
            -
                        delegate_observation_request_to_checkboxes(observation_request, &block) | 
| 172 | 
            +
                        delegate_observation_request_to_checkboxes(observation_request, &block)
         | 
| 152 173 | 
             
                      end
         | 
| 153 174 | 
             
                      self.selection = current_selection
         | 
| 154 175 | 
             
                    end
         | 
| @@ -1,9 +1,30 @@ | |
| 1 | 
            +
            # Copyright (c) 2007-2020 Andy Maleh
         | 
| 2 | 
            +
            #
         | 
| 3 | 
            +
            # Permission is hereby granted, free of charge, to any person obtaining
         | 
| 4 | 
            +
            # a copy of this software and associated documentation files (the
         | 
| 5 | 
            +
            # "Software"), to deal in the Software without restriction, including
         | 
| 6 | 
            +
            # without limitation the rights to use, copy, modify, merge, publish,
         | 
| 7 | 
            +
            # distribute, sublicense, and/or sell copies of the Software, and to
         | 
| 8 | 
            +
            # permit persons to whom the Software is furnished to do so, subject to
         | 
| 9 | 
            +
            # the following conditions:
         | 
| 10 | 
            +
            #
         | 
| 11 | 
            +
            # The above copyright notice and this permission notice shall be
         | 
| 12 | 
            +
            # included in all copies or substantial portions of the Software.
         | 
| 13 | 
            +
            #
         | 
| 14 | 
            +
            # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
         | 
| 15 | 
            +
            # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
         | 
| 16 | 
            +
            # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
         | 
| 17 | 
            +
            # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
         | 
| 18 | 
            +
            # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
         | 
| 19 | 
            +
            # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
         | 
| 20 | 
            +
            # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
         | 
| 21 | 
            +
             | 
| 1 22 | 
             
            require 'glimmer/ui/custom_widget'
         | 
| 2 23 |  | 
| 3 24 | 
             
            module Glimmer
         | 
| 4 25 | 
             
              module SWT
         | 
| 5 26 | 
             
                module Custom
         | 
| 6 | 
            -
                  #  | 
| 27 | 
            +
                  # A custom widget rendering a group of radios generated via data-binding
         | 
| 7 28 | 
             
                  class RadioGroup
         | 
| 8 29 | 
             
                    include Glimmer::UI::CustomWidget
         | 
| 9 30 |  | 
| @@ -65,7 +86,7 @@ module Glimmer | |
| 65 86 | 
             
                      if observation_request != 'on_widget_disposed'
         | 
| 66 87 | 
             
                        radios.count.times do |index|
         | 
| 67 88 | 
             
                          radio = radios[index]
         | 
| 68 | 
            -
                          label = labels[index] | 
| 89 | 
            +
                          label = labels[index]
         | 
| 69 90 | 
             
                          if observation_request == 'on_widget_selected'
         | 
| 70 91 | 
             
                            radio_block = lambda do |event|
         | 
| 71 92 | 
             
                              if event.widget.selection || selection_index == -1
         | 
| @@ -76,7 +97,7 @@ module Glimmer | |
| 76 97 | 
             
                            label_block = lambda do |event|
         | 
| 77 98 | 
             
                              self.selection_index = index
         | 
| 78 99 | 
             
                              block.call(event)
         | 
| 79 | 
            -
                            end | 
| 100 | 
            +
                            end
         | 
| 80 101 | 
             
                            radio.handle_observation_request(observation_request, &radio_block) if radio.can_handle_observation_request?(observation_request)
         | 
| 81 102 | 
             
                            label.handle_observation_request('on_mouse_up', &label_block)
         | 
| 82 103 | 
             
                          else
         | 
| @@ -85,7 +106,7 @@ module Glimmer | |
| 85 106 | 
             
                              block.call(event)
         | 
| 86 107 | 
             
                            end
         | 
| 87 108 | 
             
                            radio.handle_observation_request(observation_request, &listener_block) if radio.can_handle_observation_request?(observation_request)
         | 
| 88 | 
            -
                            label.handle_observation_request(observation_request, &listener_block) if label.can_handle_observation_request?(observation_request) | 
| 109 | 
            +
                            label.handle_observation_request(observation_request, &listener_block) if label.can_handle_observation_request?(observation_request)
         | 
| 89 110 | 
             
                          end
         | 
| 90 111 | 
             
                        end
         | 
| 91 112 | 
             
                      end
         | 
| @@ -97,7 +118,7 @@ module Glimmer | |
| 97 118 |  | 
| 98 119 | 
             
                    def has_attribute?(attribute_name, *args)
         | 
| 99 120 | 
             
                      (@composites.to_a + @radios.to_a + @labels.to_a).map do |widget_proxy|
         | 
| 100 | 
            -
                        return true if widget_proxy.has_attribute?(attribute_name, *args) | 
| 121 | 
            +
                        return true if widget_proxy.has_attribute?(attribute_name, *args)
         | 
| 101 122 | 
             
                      end
         | 
| 102 123 | 
             
                      super
         | 
| 103 124 | 
             
                    end
         | 
| @@ -145,7 +166,7 @@ module Glimmer | |
| 145 166 | 
             
                        }
         | 
| 146 167 | 
             
                      end
         | 
| 147 168 | 
             
                      observation_requests.to_a.each do |observation_request, block|
         | 
| 148 | 
            -
                        delegate_observation_request_to_radios(observation_request, &block) | 
| 169 | 
            +
                        delegate_observation_request_to_radios(observation_request, &block)
         | 
| 149 170 | 
             
                      end
         | 
| 150 171 | 
             
                      self.selection = current_selection
         | 
| 151 172 | 
             
                    end
         | 
| @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            # Copyright (c) 2007-2020 Andy Maleh
         | 
| 2 | 
            -
            # | 
| 2 | 
            +
            #
         | 
| 3 3 | 
             
            # Permission is hereby granted, free of charge, to any person obtaining
         | 
| 4 4 | 
             
            # a copy of this software and associated documentation files (the
         | 
| 5 5 | 
             
            # "Software"), to deal in the Software without restriction, including
         | 
| @@ -7,10 +7,10 @@ | |
| 7 7 | 
             
            # distribute, sublicense, and/or sell copies of the Software, and to
         | 
| 8 8 | 
             
            # permit persons to whom the Software is furnished to do so, subject to
         | 
| 9 9 | 
             
            # the following conditions:
         | 
| 10 | 
            -
            # | 
| 10 | 
            +
            #
         | 
| 11 11 | 
             
            # The above copyright notice and this permission notice shall be
         | 
| 12 12 | 
             
            # included in all copies or substantial portions of the Software.
         | 
| 13 | 
            -
            # | 
| 13 | 
            +
            #
         | 
| 14 14 | 
             
            # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
         | 
| 15 15 | 
             
            # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
         | 
| 16 16 | 
             
            # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
         | 
| @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            # Copyright (c) 2007-2020 Andy Maleh
         | 
| 2 | 
            -
            # | 
| 2 | 
            +
            #
         | 
| 3 3 | 
             
            # Permission is hereby granted, free of charge, to any person obtaining
         | 
| 4 4 | 
             
            # a copy of this software and associated documentation files (the
         | 
| 5 5 | 
             
            # "Software"), to deal in the Software without restriction, including
         | 
| @@ -7,10 +7,10 @@ | |
| 7 7 | 
             
            # distribute, sublicense, and/or sell copies of the Software, and to
         | 
| 8 8 | 
             
            # permit persons to whom the Software is furnished to do so, subject to
         | 
| 9 9 | 
             
            # the following conditions:
         | 
| 10 | 
            -
            # | 
| 10 | 
            +
            #
         | 
| 11 11 | 
             
            # The above copyright notice and this permission notice shall be
         | 
| 12 12 | 
             
            # included in all copies or substantial portions of the Software.
         | 
| 13 | 
            -
            # | 
| 13 | 
            +
            #
         | 
| 14 14 | 
             
            # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
         | 
| 15 15 | 
             
            # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
         | 
| 16 16 | 
             
            # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
         | 
| @@ -41,7 +41,7 @@ class HelloCheckbox | |
| 41 41 | 
             
                person = Person.new
         | 
| 42 42 |  | 
| 43 43 | 
             
                shell {
         | 
| 44 | 
            -
                  text 'Hello, Checkbox!' | 
| 44 | 
            +
                  text 'Hello, Checkbox!'
         | 
| 45 45 | 
             
                  row_layout :vertical
         | 
| 46 46 |  | 
| 47 47 | 
             
                  label {
         | 
| @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            # Copyright (c) 2007-2020 Andy Maleh
         | 
| 2 | 
            -
            # | 
| 2 | 
            +
            #
         | 
| 3 3 | 
             
            # Permission is hereby granted, free of charge, to any person obtaining
         | 
| 4 4 | 
             
            # a copy of this software and associated documentation files (the
         | 
| 5 5 | 
             
            # "Software"), to deal in the Software without restriction, including
         | 
| @@ -7,10 +7,10 @@ | |
| 7 7 | 
             
            # distribute, sublicense, and/or sell copies of the Software, and to
         | 
| 8 8 | 
             
            # permit persons to whom the Software is furnished to do so, subject to
         | 
| 9 9 | 
             
            # the following conditions:
         | 
| 10 | 
            -
            # | 
| 10 | 
            +
            #
         | 
| 11 11 | 
             
            # The above copyright notice and this permission notice shall be
         | 
| 12 12 | 
             
            # included in all copies or substantial portions of the Software.
         | 
| 13 | 
            -
            # | 
| 13 | 
            +
            #
         | 
| 14 14 | 
             
            # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
         | 
| 15 15 | 
             
            # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
         | 
| 16 16 | 
             
            # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
         | 
| @@ -0,0 +1,104 @@ | |
| 1 | 
            +
            # Copyright (c) 2007-2020 Andy Maleh
         | 
| 2 | 
            +
            #
         | 
| 3 | 
            +
            # Permission is hereby granted, free of charge, to any person obtaining
         | 
| 4 | 
            +
            # a copy of this software and associated documentation files (the
         | 
| 5 | 
            +
            # "Software"), to deal in the Software without restriction, including
         | 
| 6 | 
            +
            # without limitation the rights to use, copy, modify, merge, publish,
         | 
| 7 | 
            +
            # distribute, sublicense, and/or sell copies of the Software, and to
         | 
| 8 | 
            +
            # permit persons to whom the Software is furnished to do so, subject to
         | 
| 9 | 
            +
            # the following conditions:
         | 
| 10 | 
            +
            #
         | 
| 11 | 
            +
            # The above copyright notice and this permission notice shall be
         | 
| 12 | 
            +
            # included in all copies or substantial portions of the Software.
         | 
| 13 | 
            +
            #
         | 
| 14 | 
            +
            # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
         | 
| 15 | 
            +
            # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
         | 
| 16 | 
            +
            # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
         | 
| 17 | 
            +
            # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
         | 
| 18 | 
            +
            # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
         | 
| 19 | 
            +
            # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
         | 
| 20 | 
            +
            # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
         | 
| 21 | 
            +
             | 
| 22 | 
            +
            class HelloGroup
         | 
| 23 | 
            +
              class Person
         | 
| 24 | 
            +
                attr_accessor :male, :female, :child, :teen, :adult, :senior
         | 
| 25 | 
            +
                
         | 
| 26 | 
            +
                def initialize
         | 
| 27 | 
            +
                  reset
         | 
| 28 | 
            +
                end
         | 
| 29 | 
            +
                
         | 
| 30 | 
            +
                def reset
         | 
| 31 | 
            +
                  self.male = nil
         | 
| 32 | 
            +
                  self.female = nil
         | 
| 33 | 
            +
                  self.child = nil
         | 
| 34 | 
            +
                  self.teen = nil
         | 
| 35 | 
            +
                  self.adult = true
         | 
| 36 | 
            +
                  self.senior = nil
         | 
| 37 | 
            +
                end
         | 
| 38 | 
            +
              end
         | 
| 39 | 
            +
              
         | 
| 40 | 
            +
              include Glimmer
         | 
| 41 | 
            +
              
         | 
| 42 | 
            +
              def launch
         | 
| 43 | 
            +
                person = Person.new
         | 
| 44 | 
            +
                
         | 
| 45 | 
            +
                shell {
         | 
| 46 | 
            +
                  text 'Hello, Radio!'
         | 
| 47 | 
            +
                  row_layout :vertical
         | 
| 48 | 
            +
                  
         | 
| 49 | 
            +
                  group {
         | 
| 50 | 
            +
                    row_layout
         | 
| 51 | 
            +
                    
         | 
| 52 | 
            +
                    text 'Gender'
         | 
| 53 | 
            +
                    font style: :bold
         | 
| 54 | 
            +
                    
         | 
| 55 | 
            +
                    radio {
         | 
| 56 | 
            +
                      text 'Male'
         | 
| 57 | 
            +
                      selection bind(person, :male)
         | 
| 58 | 
            +
                    }
         | 
| 59 | 
            +
                    
         | 
| 60 | 
            +
                    radio {
         | 
| 61 | 
            +
                      text 'Female'
         | 
| 62 | 
            +
                      selection bind(person, :female)
         | 
| 63 | 
            +
                    }
         | 
| 64 | 
            +
                  }
         | 
| 65 | 
            +
                  
         | 
| 66 | 
            +
                  group {
         | 
| 67 | 
            +
                    row_layout
         | 
| 68 | 
            +
                    
         | 
| 69 | 
            +
                    text 'Age Group'
         | 
| 70 | 
            +
                    font style: :bold
         | 
| 71 | 
            +
                    
         | 
| 72 | 
            +
                    radio {
         | 
| 73 | 
            +
                      text 'Child'
         | 
| 74 | 
            +
                      selection bind(person, :child)
         | 
| 75 | 
            +
                    }
         | 
| 76 | 
            +
                    
         | 
| 77 | 
            +
                    radio {
         | 
| 78 | 
            +
                      text 'Teen'
         | 
| 79 | 
            +
                      selection bind(person, :teen)
         | 
| 80 | 
            +
                    }
         | 
| 81 | 
            +
                    
         | 
| 82 | 
            +
                    radio {
         | 
| 83 | 
            +
                      text 'Adult'
         | 
| 84 | 
            +
                      selection bind(person, :adult)
         | 
| 85 | 
            +
                    }
         | 
| 86 | 
            +
                    
         | 
| 87 | 
            +
                    radio {
         | 
| 88 | 
            +
                      text 'Senior'
         | 
| 89 | 
            +
                      selection bind(person, :senior)
         | 
| 90 | 
            +
                    }
         | 
| 91 | 
            +
                  }
         | 
| 92 | 
            +
                  
         | 
| 93 | 
            +
                  button {
         | 
| 94 | 
            +
                    text 'Reset'
         | 
| 95 | 
            +
                    
         | 
| 96 | 
            +
                    on_widget_selected do
         | 
| 97 | 
            +
                      person.reset
         | 
| 98 | 
            +
                    end
         | 
| 99 | 
            +
                  }
         | 
| 100 | 
            +
                }.open
         | 
| 101 | 
            +
              end
         | 
| 102 | 
            +
            end
         | 
| 103 | 
            +
             | 
| 104 | 
            +
            HelloGroup.new.launch
         | 
| @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            # Copyright (c) 2007-2020 Andy Maleh
         | 
| 2 | 
            -
            # | 
| 2 | 
            +
            #
         | 
| 3 3 | 
             
            # Permission is hereby granted, free of charge, to any person obtaining
         | 
| 4 4 | 
             
            # a copy of this software and associated documentation files (the
         | 
| 5 5 | 
             
            # "Software"), to deal in the Software without restriction, including
         | 
| @@ -7,10 +7,10 @@ | |
| 7 7 | 
             
            # distribute, sublicense, and/or sell copies of the Software, and to
         | 
| 8 8 | 
             
            # permit persons to whom the Software is furnished to do so, subject to
         | 
| 9 9 | 
             
            # the following conditions:
         | 
| 10 | 
            -
            # | 
| 10 | 
            +
            #
         | 
| 11 11 | 
             
            # The above copyright notice and this permission notice shall be
         | 
| 12 12 | 
             
            # included in all copies or substantial portions of the Software.
         | 
| 13 | 
            -
            # | 
| 13 | 
            +
            #
         | 
| 14 14 | 
             
            # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
         | 
| 15 15 | 
             
            # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
         | 
| 16 16 | 
             
            # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
         | 
| @@ -19,7 +19,7 @@ | |
| 19 19 | 
             
            # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
         | 
| 20 20 | 
             
            # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
         | 
| 21 21 |  | 
| 22 | 
            -
            class HelloRadio | 
| 22 | 
            +
            class HelloRadio
         | 
| 23 23 | 
             
              class Person
         | 
| 24 24 | 
             
                attr_accessor :male, :female, :child, :teen, :adult, :senior
         | 
| 25 25 |  | 
| @@ -37,13 +37,13 @@ class HelloRadio | |
| 37 37 | 
             
                end
         | 
| 38 38 | 
             
              end
         | 
| 39 39 |  | 
| 40 | 
            -
              include Glimmer | 
| 40 | 
            +
              include Glimmer
         | 
| 41 41 |  | 
| 42 42 | 
             
              def launch
         | 
| 43 43 | 
             
                person = Person.new
         | 
| 44 44 |  | 
| 45 45 | 
             
                shell {
         | 
| 46 | 
            -
                  text 'Hello, Radio!' | 
| 46 | 
            +
                  text 'Hello, Radio!'
         | 
| 47 47 | 
             
                  row_layout :vertical
         | 
| 48 48 |  | 
| 49 49 | 
             
                  label {
         | 
| @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            # Copyright (c) 2007-2020 Andy Maleh
         | 
| 2 | 
            -
            # | 
| 2 | 
            +
            #
         | 
| 3 3 | 
             
            # Permission is hereby granted, free of charge, to any person obtaining
         | 
| 4 4 | 
             
            # a copy of this software and associated documentation files (the
         | 
| 5 5 | 
             
            # "Software"), to deal in the Software without restriction, including
         | 
| @@ -7,10 +7,10 @@ | |
| 7 7 | 
             
            # distribute, sublicense, and/or sell copies of the Software, and to
         | 
| 8 8 | 
             
            # permit persons to whom the Software is furnished to do so, subject to
         | 
| 9 9 | 
             
            # the following conditions:
         | 
| 10 | 
            -
            # | 
| 10 | 
            +
            #
         | 
| 11 11 | 
             
            # The above copyright notice and this permission notice shall be
         | 
| 12 12 | 
             
            # included in all copies or substantial portions of the Software.
         | 
| 13 | 
            -
            # | 
| 13 | 
            +
            #
         | 
| 14 14 | 
             
            # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
         | 
| 15 15 | 
             
            # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
         | 
| 16 16 | 
             
            # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
         | 
| @@ -32,7 +32,7 @@ class HelloRadioGroup | |
| 32 32 | 
             
                end
         | 
| 33 33 |  | 
| 34 34 | 
             
                def age_group_options
         | 
| 35 | 
            -
                  ['Child', 'Teen', 'Adult', 'Senior'] | 
| 35 | 
            +
                  ['Child', 'Teen', 'Adult', 'Senior']
         | 
| 36 36 | 
             
                end
         | 
| 37 37 |  | 
| 38 38 | 
             
                def reset
         | 
| @@ -47,8 +47,8 @@ class HelloRadioGroup | |
| 47 47 | 
             
                person = Person.new
         | 
| 48 48 |  | 
| 49 49 | 
             
                shell {
         | 
| 50 | 
            -
                  text 'Hello, Radio Group!' | 
| 51 | 
            -
                  row_layout :vertical | 
| 50 | 
            +
                  text 'Hello, Radio Group!'
         | 
| 51 | 
            +
                  row_layout :vertical
         | 
| 52 52 |  | 
| 53 53 | 
             
                  label {
         | 
| 54 54 | 
             
                    text 'Gender:'
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: glimmer-dsl-swt
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 4.17.8. | 
| 4 | 
            +
              version: 4.17.8.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - AndyMaleh
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2020-11- | 
| 11 | 
            +
            date: 2020-11-03 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -441,6 +441,7 @@ files: | |
| 441 441 | 
             
            - samples/hello/hello_drag_and_drop.rb
         | 
| 442 442 | 
             
            - samples/hello/hello_expand_bar.rb
         | 
| 443 443 | 
             
            - samples/hello/hello_file_dialog.rb
         | 
| 444 | 
            +
            - samples/hello/hello_group.rb
         | 
| 444 445 | 
             
            - samples/hello/hello_list_multi_selection.rb
         | 
| 445 446 | 
             
            - samples/hello/hello_list_single_selection.rb
         | 
| 446 447 | 
             
            - samples/hello/hello_menu_bar.rb
         |