glimmer-dsl-libui 0.0.15 → 0.0.16
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 +9 -0
 - data/README.md +10 -10
 - data/VERSION +1 -1
 - data/examples/basic_entry.rb +1 -1
 - data/examples/form.rb +2 -4
 - data/glimmer-dsl-libui.gemspec +0 -0
 - data/lib/glimmer/libui/button_proxy.rb +41 -0
 - data/lib/glimmer/libui/checkbox_proxy.rb +41 -0
 - data/lib/glimmer/libui/control_proxy.rb +5 -1
 - data/lib/glimmer/libui/group_proxy.rb +6 -1
 - data/lib/glimmer/libui/label_proxy.rb +41 -0
 - data/lib/glimmer/libui/menu_proxy.rb +41 -0
 - data/lib/glimmer/libui/window_proxy.rb +2 -2
 - metadata +6 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 2ab738eba1965fffc98860a23a44f2e1ed15c0c426ba4d21bcbb3fc4812ecde5
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 2d5c195882767b63d941d9b8bad8338bc5d5ce160e97f34a9f57f5631c833fac
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 23e1de3b8f30f90abb605a351e6cd9302dd778da2e711f7c72c4ad39b267090bab324bd056ca3855c343781c53757af320ca67c0d4aacac4c6351f7cf4a646e8
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 18f3d9b8d48bc15a342efeb38f6979e1b2516b5144a790876d931c28a2803da840f980d0d9b9cd4c96484817d4cf241d19b7b64c751229fa1ae6a236029545ac
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -1,5 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # Change Log
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
      
 3 
     | 
    
         
            +
            ## 0.0.16
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            - Support ability to instantiate without args and set args as properties afterwards inside block (e.g. `window { title 'Greeter'; content_size 300, 400; button {text 'Greet'; on_clicked {puts 'Hi'}} }`)
         
     | 
| 
      
 6 
     | 
    
         
            +
              - window (was supported before, but changed default title to empty string)
         
     | 
| 
      
 7 
     | 
    
         
            +
              - button
         
     | 
| 
      
 8 
     | 
    
         
            +
              - checkbox
         
     | 
| 
      
 9 
     | 
    
         
            +
              - group
         
     | 
| 
      
 10 
     | 
    
         
            +
              - label
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
       3 
12 
     | 
    
         
             
            ## 0.0.15
         
     | 
| 
       4 
13 
     | 
    
         | 
| 
       5 
14 
     | 
    
         
             
            - New examples/form.rb
         
     | 
    
        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 LibUI 0.0. 
     | 
| 
      
 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 LibUI 0.0.16
         
     | 
| 
       2 
2 
     | 
    
         
             
            ## Prerequisite-Free Ruby Desktop Development GUI Library
         
     | 
| 
       3 
3 
     | 
    
         
             
            [](http://badge.fury.io/rb/glimmer-dsl-libui)
         
     | 
| 
       4 
4 
     | 
    
         
             
            [](https://codeclimate.com/github/AndyObtiva/glimmer-dsl-libui/maintainability)
         
     | 
| 
         @@ -43,7 +43,7 @@ Other [Glimmer](https://rubygems.org/gems/glimmer) DSL gems you might be interes 
     | 
|
| 
       43 
43 
     | 
    
         | 
| 
       44 
44 
     | 
    
         
             
            ## Table of Contents
         
     | 
| 
       45 
45 
     | 
    
         | 
| 
       46 
     | 
    
         
            -
            - [Glimmer DSL for LibUI 0.0. 
     | 
| 
      
 46 
     | 
    
         
            +
            - [Glimmer DSL for LibUI 0.0.16](#-glimmer-dsl-for-libui-0016)
         
     | 
| 
       47 
47 
     | 
    
         
             
              - [Glimmer GUI DSL Concepts](#glimmer-gui-dsl-concepts)
         
     | 
| 
       48 
48 
     | 
    
         
             
              - [Usage](#usage)
         
     | 
| 
       49 
49 
     | 
    
         
             
              - [API](#api)
         
     | 
| 
         @@ -156,7 +156,7 @@ gem install glimmer-dsl-libui 
     | 
|
| 
       156 
156 
     | 
    
         
             
            Or install via Bundler `Gemfile`:
         
     | 
| 
       157 
157 
     | 
    
         | 
| 
       158 
158 
     | 
    
         
             
            ```ruby
         
     | 
| 
       159 
     | 
    
         
            -
            gem 'glimmer-dsl-libui', '~> 0.0. 
     | 
| 
      
 159 
     | 
    
         
            +
            gem 'glimmer-dsl-libui', '~> 0.0.16'
         
     | 
| 
       160 
160 
     | 
    
         
             
            ```
         
     | 
| 
       161 
161 
     | 
    
         | 
| 
       162 
162 
     | 
    
         
             
            Add `require 'glimmer-dsl-libui'` at the top, and then `include Glimmer` into the top-level main object for testing or into an actual class for serious usage.
         
     | 
| 
         @@ -284,9 +284,11 @@ Control(Args) | Properties | Listeners 
     | 
|
| 
       284 
284 
     | 
    
         | 
| 
       285 
285 
     | 
    
         
             
            - `horizontal_box`, `vertical_box`, `grid`, and `form` controls have `padded` as `true` upon instantiation to ensure more user-friendly GUI by default
         
     | 
| 
       286 
286 
     | 
    
         
             
            - `group` controls have `margined` as `true` upon instantiation to ensure more user-friendly GUI by default
         
     | 
| 
       287 
     | 
    
         
            -
            - All controls nested under a `horizontal_box`  
     | 
| 
       288 
     | 
    
         
            -
            - `window`  
     | 
| 
      
 287 
     | 
    
         
            +
            - All controls nested under a `horizontal_box`, `vertical_box`, and `form` have `stretchy` property (fill maximum space) as `true` by default (passed to `box_append`/`form_append` method)
         
     | 
| 
      
 288 
     | 
    
         
            +
            - `window` instatiation args can be left off, having the following defaults when unspecified: `title` as `''`, `width` as `150`, `height` as `150`, and `has_menubar` as `true`)
         
     | 
| 
       289 
289 
     | 
    
         
             
            - `window` has an `on_closing` listener by default that quits application upon hitting the close button (can be overridden with a manual `on_closing` implementation that returns integer `0` for success)
         
     | 
| 
      
 290 
     | 
    
         
            +
            - `group` has `title` property default to `''` if not specified in instantiation args, so it can be instantiated without args with `title` property specified in nested block (e.g. `group {title 'Address'; ...}`)
         
     | 
| 
      
 291 
     | 
    
         
            +
            - `button`, `checkbox`, and `label` have `text` default to `''` if not specified in instantiation args, so they can be instantiated without args with `text` property specified in nested block (e.g. `button {text 'Greet'; on_clicked {puts 'Hello'}}`)
         
     | 
| 
       290 
292 
     | 
    
         
             
            - `quit_menu_item` has an `on_clicked` listener by default that quits application upon selecting the quit menu item (can be overridden with a manual `on_clicked` implementation that returns integer `0` for success)
         
     | 
| 
       291 
293 
     | 
    
         
             
            - If an `on_closing` listener was defined on `window` and it does not return an integer, default exit behavior is assumed (`window.destroy` is called followed by `LibUI.quit`, returning `0`).
         
     | 
| 
       292 
294 
     | 
    
         
             
            - If an `on_clicked` listener was defined on `quit_menu_item` and it does not return an integer, default exit behavior is assumed (`main_window.destroy` is called followed by `LibUI.quit`, returning `0`).
         
     | 
| 
         @@ -674,7 +676,7 @@ window('Basic Entry', 300, 50) { |w| 
     | 
|
| 
       674 
676 
     | 
    
         
             
                }
         
     | 
| 
       675 
677 
     | 
    
         | 
| 
       676 
678 
     | 
    
         
             
                button('Button') {
         
     | 
| 
       677 
     | 
    
         
            -
                  stretchy false
         
     | 
| 
      
 679 
     | 
    
         
            +
                  stretchy false # stretchy property is available when control is nested under horizontal_box
         
     | 
| 
       678 
680 
     | 
    
         | 
| 
       679 
681 
     | 
    
         
             
                  on_clicked do
         
     | 
| 
       680 
682 
     | 
    
         
             
                    text = e.text
         
     | 
| 
         @@ -1730,13 +1732,11 @@ window('Form') { |w| 
     | 
|
| 
       1730 
1732 
     | 
    
         
             
              vertical_box {
         
     | 
| 
       1731 
1733 
     | 
    
         
             
                form {
         
     | 
| 
       1732 
1734 
     | 
    
         
             
                  @first_name_entry = entry {
         
     | 
| 
       1733 
     | 
    
         
            -
                     
     | 
| 
       1734 
     | 
    
         
            -
                    label 'First Name'
         
     | 
| 
      
 1735 
     | 
    
         
            +
                    label 'First Name' # label property is available when control is nested under form
         
     | 
| 
       1735 
1736 
     | 
    
         
             
                  }
         
     | 
| 
       1736 
1737 
     | 
    
         | 
| 
       1737 
1738 
     | 
    
         
             
                  @last_name_entry = entry {
         
     | 
| 
       1738 
     | 
    
         
            -
                     
     | 
| 
       1739 
     | 
    
         
            -
                    label 'Last Name'
         
     | 
| 
      
 1739 
     | 
    
         
            +
                    label 'Last Name' # label property is available when control is nested under form
         
     | 
| 
       1740 
1740 
     | 
    
         
             
                  }
         
     | 
| 
       1741 
1741 
     | 
    
         
             
                }
         
     | 
| 
       1742 
1742 
     | 
    
         | 
    
        data/VERSION
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            0.0. 
     | 
| 
      
 1 
     | 
    
         
            +
            0.0.16
         
     | 
    
        data/examples/basic_entry.rb
    CHANGED
    
    
    
        data/examples/form.rb
    CHANGED
    
    | 
         @@ -10,13 +10,11 @@ window('Form') { |w| 
     | 
|
| 
       10 
10 
     | 
    
         
             
              vertical_box {
         
     | 
| 
       11 
11 
     | 
    
         
             
                form {
         
     | 
| 
       12 
12 
     | 
    
         
             
                  @first_name_entry = entry {
         
     | 
| 
       13 
     | 
    
         
            -
                     
     | 
| 
       14 
     | 
    
         
            -
                    label 'First Name'
         
     | 
| 
      
 13 
     | 
    
         
            +
                    label 'First Name' # label property is available when control is nested under form
         
     | 
| 
       15 
14 
     | 
    
         
             
                  }
         
     | 
| 
       16 
15 
     | 
    
         | 
| 
       17 
16 
     | 
    
         
             
                  @last_name_entry = entry {
         
     | 
| 
       18 
     | 
    
         
            -
                     
     | 
| 
       19 
     | 
    
         
            -
                    label 'Last Name'
         
     | 
| 
      
 17 
     | 
    
         
            +
                    label 'Last Name' # label property is available when control is nested under form
         
     | 
| 
       20 
18 
     | 
    
         
             
                  }
         
     | 
| 
       21 
19 
     | 
    
         
             
                }
         
     | 
| 
       22 
20 
     | 
    
         | 
    
        data/glimmer-dsl-libui.gemspec
    CHANGED
    
    | 
         Binary file 
     | 
| 
         @@ -0,0 +1,41 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # Copyright (c) 2021 Andy Maleh
         
     | 
| 
      
 2 
     | 
    
         
            +
            #
         
     | 
| 
      
 3 
     | 
    
         
            +
            # Permission is hereby granted, free of charge, to any person obtaining
         
     | 
| 
      
 4 
     | 
    
         
            +
            # a copy of this software and associated documentation files (the
         
     | 
| 
      
 5 
     | 
    
         
            +
            # "Software"), to deal in the Software without restriction, including
         
     | 
| 
      
 6 
     | 
    
         
            +
            # without limitation the rights to use, copy, modify, merge, publish,
         
     | 
| 
      
 7 
     | 
    
         
            +
            # distribute, sublicense, and/or sell copies of the Software, and to
         
     | 
| 
      
 8 
     | 
    
         
            +
            # permit persons to whom the Software is furnished to do so, subject to
         
     | 
| 
      
 9 
     | 
    
         
            +
            # the following conditions:
         
     | 
| 
      
 10 
     | 
    
         
            +
            #
         
     | 
| 
      
 11 
     | 
    
         
            +
            # The above copyright notice and this permission notice shall be
         
     | 
| 
      
 12 
     | 
    
         
            +
            # included in all copies or substantial portions of the Software.
         
     | 
| 
      
 13 
     | 
    
         
            +
            #
         
     | 
| 
      
 14 
     | 
    
         
            +
            # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
         
     | 
| 
      
 15 
     | 
    
         
            +
            # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
         
     | 
| 
      
 16 
     | 
    
         
            +
            # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
         
     | 
| 
      
 17 
     | 
    
         
            +
            # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
         
     | 
| 
      
 18 
     | 
    
         
            +
            # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
         
     | 
| 
      
 19 
     | 
    
         
            +
            # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
         
     | 
| 
      
 20 
     | 
    
         
            +
            # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            require 'glimmer/libui/control_proxy'
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            module Glimmer
         
     | 
| 
      
 25 
     | 
    
         
            +
              module LibUI
         
     | 
| 
      
 26 
     | 
    
         
            +
                # Proxy for LibUI button objects
         
     | 
| 
      
 27 
     | 
    
         
            +
                #
         
     | 
| 
      
 28 
     | 
    
         
            +
                # Follows the Proxy Design Pattern
         
     | 
| 
      
 29 
     | 
    
         
            +
                class ButtonProxy < ControlProxy
         
     | 
| 
      
 30 
     | 
    
         
            +
                  DEFAULT_TEXT = ''
         
     | 
| 
      
 31 
     | 
    
         
            +
                  
         
     | 
| 
      
 32 
     | 
    
         
            +
                  private
         
     | 
| 
      
 33 
     | 
    
         
            +
                  
         
     | 
| 
      
 34 
     | 
    
         
            +
                  def build_control
         
     | 
| 
      
 35 
     | 
    
         
            +
                    construction_args = @args.dup
         
     | 
| 
      
 36 
     | 
    
         
            +
                    construction_args[0] = DEFAULT_TEXT if construction_args.size == 0
         
     | 
| 
      
 37 
     | 
    
         
            +
                    @libui = ControlProxy.new_control(@keyword, construction_args)
         
     | 
| 
      
 38 
     | 
    
         
            +
                  end
         
     | 
| 
      
 39 
     | 
    
         
            +
                end
         
     | 
| 
      
 40 
     | 
    
         
            +
              end
         
     | 
| 
      
 41 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,41 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # Copyright (c) 2021 Andy Maleh
         
     | 
| 
      
 2 
     | 
    
         
            +
            #
         
     | 
| 
      
 3 
     | 
    
         
            +
            # Permission is hereby granted, free of charge, to any person obtaining
         
     | 
| 
      
 4 
     | 
    
         
            +
            # a copy of this software and associated documentation files (the
         
     | 
| 
      
 5 
     | 
    
         
            +
            # "Software"), to deal in the Software without restriction, including
         
     | 
| 
      
 6 
     | 
    
         
            +
            # without limitation the rights to use, copy, modify, merge, publish,
         
     | 
| 
      
 7 
     | 
    
         
            +
            # distribute, sublicense, and/or sell copies of the Software, and to
         
     | 
| 
      
 8 
     | 
    
         
            +
            # permit persons to whom the Software is furnished to do so, subject to
         
     | 
| 
      
 9 
     | 
    
         
            +
            # the following conditions:
         
     | 
| 
      
 10 
     | 
    
         
            +
            #
         
     | 
| 
      
 11 
     | 
    
         
            +
            # The above copyright notice and this permission notice shall be
         
     | 
| 
      
 12 
     | 
    
         
            +
            # included in all copies or substantial portions of the Software.
         
     | 
| 
      
 13 
     | 
    
         
            +
            #
         
     | 
| 
      
 14 
     | 
    
         
            +
            # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
         
     | 
| 
      
 15 
     | 
    
         
            +
            # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
         
     | 
| 
      
 16 
     | 
    
         
            +
            # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
         
     | 
| 
      
 17 
     | 
    
         
            +
            # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
         
     | 
| 
      
 18 
     | 
    
         
            +
            # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
         
     | 
| 
      
 19 
     | 
    
         
            +
            # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
         
     | 
| 
      
 20 
     | 
    
         
            +
            # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            require 'glimmer/libui/control_proxy'
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            module Glimmer
         
     | 
| 
      
 25 
     | 
    
         
            +
              module LibUI
         
     | 
| 
      
 26 
     | 
    
         
            +
                # Proxy for LibUI checkbox objects
         
     | 
| 
      
 27 
     | 
    
         
            +
                #
         
     | 
| 
      
 28 
     | 
    
         
            +
                # Follows the Proxy Design Pattern
         
     | 
| 
      
 29 
     | 
    
         
            +
                class CheckboxProxy < ControlProxy
         
     | 
| 
      
 30 
     | 
    
         
            +
                  DEFAULT_TEXT = ''
         
     | 
| 
      
 31 
     | 
    
         
            +
                  
         
     | 
| 
      
 32 
     | 
    
         
            +
                  private
         
     | 
| 
      
 33 
     | 
    
         
            +
                  
         
     | 
| 
      
 34 
     | 
    
         
            +
                  def build_control
         
     | 
| 
      
 35 
     | 
    
         
            +
                    construction_args = @args.dup
         
     | 
| 
      
 36 
     | 
    
         
            +
                    construction_args[0] = DEFAULT_TEXT if construction_args.size == 0
         
     | 
| 
      
 37 
     | 
    
         
            +
                    @libui = ControlProxy.new_control(@keyword, construction_args)
         
     | 
| 
      
 38 
     | 
    
         
            +
                  end
         
     | 
| 
      
 39 
     | 
    
         
            +
                end
         
     | 
| 
      
 40 
     | 
    
         
            +
              end
         
     | 
| 
      
 41 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -66,6 +66,10 @@ module Glimmer 
     | 
|
| 
       66 
66 
     | 
    
         
             
                    def menu_proxies
         
     | 
| 
       67 
67 
     | 
    
         
             
                      all_control_proxies.select {|c| c.keyword == 'menu' }
         
     | 
| 
       68 
68 
     | 
    
         
             
                    end
         
     | 
| 
      
 69 
     | 
    
         
            +
                    
         
     | 
| 
      
 70 
     | 
    
         
            +
                    def new_control(keyword, args)
         
     | 
| 
      
 71 
     | 
    
         
            +
                      ::LibUI.send("new_#{keyword}", *args)
         
     | 
| 
      
 72 
     | 
    
         
            +
                    end
         
     | 
| 
       69 
73 
     | 
    
         
             
                  end
         
     | 
| 
       70 
74 
     | 
    
         | 
| 
       71 
75 
     | 
    
         
             
                  BOOLEAN_PROPERTIES = %w[
         
     | 
| 
         @@ -254,7 +258,7 @@ module Glimmer 
     | 
|
| 
       254 
258 
     | 
    
         | 
| 
       255 
259 
     | 
    
         
             
                  def build_control
         
     | 
| 
       256 
260 
     | 
    
         
             
                    @libui = if ::LibUI.respond_to?("new_#{keyword}")
         
     | 
| 
       257 
     | 
    
         
            -
                       
     | 
| 
      
 261 
     | 
    
         
            +
                      ControlProxy.new_control(@keyword, @args)
         
     | 
| 
       258 
262 
     | 
    
         
             
                    elsif ::LibUI.respond_to?(keyword)
         
     | 
| 
       259 
263 
     | 
    
         
             
                      @args[0] = @args.first.libui if @args.first.is_a?(ControlProxy)
         
     | 
| 
       260 
264 
     | 
    
         
             
                      ::LibUI.send(@keyword, *@args)
         
     | 
| 
         @@ -27,6 +27,8 @@ module Glimmer 
     | 
|
| 
       27 
27 
     | 
    
         
             
                #
         
     | 
| 
       28 
28 
     | 
    
         
             
                # Follows the Proxy Design Pattern
         
     | 
| 
       29 
29 
     | 
    
         
             
                class GroupProxy < ControlProxy
         
     | 
| 
      
 30 
     | 
    
         
            +
                  DEFAULT_TITLE = ''
         
     | 
| 
      
 31 
     | 
    
         
            +
                  
         
     | 
| 
       30 
32 
     | 
    
         
             
                  def post_initialize_child(child)
         
     | 
| 
       31 
33 
     | 
    
         
             
                    ::LibUI.group_set_child(@libui, child.libui)
         
     | 
| 
       32 
34 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -39,7 +41,10 @@ module Glimmer 
     | 
|
| 
       39 
41 
     | 
    
         
             
                  private
         
     | 
| 
       40 
42 
     | 
    
         | 
| 
       41 
43 
     | 
    
         
             
                  def build_control
         
     | 
| 
       42 
     | 
    
         
            -
                     
     | 
| 
      
 44 
     | 
    
         
            +
                    construction_args = @args.dup
         
     | 
| 
      
 45 
     | 
    
         
            +
                    construction_args[0] = DEFAULT_TITLE if construction_args.size == 0
         
     | 
| 
      
 46 
     | 
    
         
            +
                    @libui = ControlProxy.new_control(@keyword, construction_args)
         
     | 
| 
      
 47 
     | 
    
         
            +
                    @libui.tap do
         
     | 
| 
       43 
48 
     | 
    
         
             
                      self.margined = true
         
     | 
| 
       44 
49 
     | 
    
         
             
                    end
         
     | 
| 
       45 
50 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -0,0 +1,41 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # Copyright (c) 2021 Andy Maleh
         
     | 
| 
      
 2 
     | 
    
         
            +
            #
         
     | 
| 
      
 3 
     | 
    
         
            +
            # Permission is hereby granted, free of charge, to any person obtaining
         
     | 
| 
      
 4 
     | 
    
         
            +
            # a copy of this software and associated documentation files (the
         
     | 
| 
      
 5 
     | 
    
         
            +
            # "Software"), to deal in the Software without restriction, including
         
     | 
| 
      
 6 
     | 
    
         
            +
            # without limitation the rights to use, copy, modify, merge, publish,
         
     | 
| 
      
 7 
     | 
    
         
            +
            # distribute, sublicense, and/or sell copies of the Software, and to
         
     | 
| 
      
 8 
     | 
    
         
            +
            # permit persons to whom the Software is furnished to do so, subject to
         
     | 
| 
      
 9 
     | 
    
         
            +
            # the following conditions:
         
     | 
| 
      
 10 
     | 
    
         
            +
            #
         
     | 
| 
      
 11 
     | 
    
         
            +
            # The above copyright notice and this permission notice shall be
         
     | 
| 
      
 12 
     | 
    
         
            +
            # included in all copies or substantial portions of the Software.
         
     | 
| 
      
 13 
     | 
    
         
            +
            #
         
     | 
| 
      
 14 
     | 
    
         
            +
            # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
         
     | 
| 
      
 15 
     | 
    
         
            +
            # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
         
     | 
| 
      
 16 
     | 
    
         
            +
            # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
         
     | 
| 
      
 17 
     | 
    
         
            +
            # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
         
     | 
| 
      
 18 
     | 
    
         
            +
            # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
         
     | 
| 
      
 19 
     | 
    
         
            +
            # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
         
     | 
| 
      
 20 
     | 
    
         
            +
            # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            require 'glimmer/libui/control_proxy'
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            module Glimmer
         
     | 
| 
      
 25 
     | 
    
         
            +
              module LibUI
         
     | 
| 
      
 26 
     | 
    
         
            +
                # Proxy for LibUI label objects
         
     | 
| 
      
 27 
     | 
    
         
            +
                #
         
     | 
| 
      
 28 
     | 
    
         
            +
                # Follows the Proxy Design Pattern
         
     | 
| 
      
 29 
     | 
    
         
            +
                class LabelProxy < ControlProxy
         
     | 
| 
      
 30 
     | 
    
         
            +
                  DEFAULT_TEXT = ''
         
     | 
| 
      
 31 
     | 
    
         
            +
                  
         
     | 
| 
      
 32 
     | 
    
         
            +
                  private
         
     | 
| 
      
 33 
     | 
    
         
            +
                  
         
     | 
| 
      
 34 
     | 
    
         
            +
                  def build_control
         
     | 
| 
      
 35 
     | 
    
         
            +
                    construction_args = @args.dup
         
     | 
| 
      
 36 
     | 
    
         
            +
                    construction_args[0] = DEFAULT_TEXT if construction_args.size == 0
         
     | 
| 
      
 37 
     | 
    
         
            +
                    @libui = ControlProxy.new_control(@keyword, construction_args)
         
     | 
| 
      
 38 
     | 
    
         
            +
                  end
         
     | 
| 
      
 39 
     | 
    
         
            +
                end
         
     | 
| 
      
 40 
     | 
    
         
            +
              end
         
     | 
| 
      
 41 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,41 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # Copyright (c) 2021 Andy Maleh
         
     | 
| 
      
 2 
     | 
    
         
            +
            #
         
     | 
| 
      
 3 
     | 
    
         
            +
            # Permission is hereby granted, free of charge, to any person obtaining
         
     | 
| 
      
 4 
     | 
    
         
            +
            # a copy of this software and associated documentation files (the
         
     | 
| 
      
 5 
     | 
    
         
            +
            # "Software"), to deal in the Software without restriction, including
         
     | 
| 
      
 6 
     | 
    
         
            +
            # without limitation the rights to use, copy, modify, merge, publish,
         
     | 
| 
      
 7 
     | 
    
         
            +
            # distribute, sublicense, and/or sell copies of the Software, and to
         
     | 
| 
      
 8 
     | 
    
         
            +
            # permit persons to whom the Software is furnished to do so, subject to
         
     | 
| 
      
 9 
     | 
    
         
            +
            # the following conditions:
         
     | 
| 
      
 10 
     | 
    
         
            +
            #
         
     | 
| 
      
 11 
     | 
    
         
            +
            # The above copyright notice and this permission notice shall be
         
     | 
| 
      
 12 
     | 
    
         
            +
            # included in all copies or substantial portions of the Software.
         
     | 
| 
      
 13 
     | 
    
         
            +
            #
         
     | 
| 
      
 14 
     | 
    
         
            +
            # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
         
     | 
| 
      
 15 
     | 
    
         
            +
            # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
         
     | 
| 
      
 16 
     | 
    
         
            +
            # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
         
     | 
| 
      
 17 
     | 
    
         
            +
            # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
         
     | 
| 
      
 18 
     | 
    
         
            +
            # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
         
     | 
| 
      
 19 
     | 
    
         
            +
            # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
         
     | 
| 
      
 20 
     | 
    
         
            +
            # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            require 'glimmer/libui/control_proxy'
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            module Glimmer
         
     | 
| 
      
 25 
     | 
    
         
            +
              module LibUI
         
     | 
| 
      
 26 
     | 
    
         
            +
                # Proxy for LibUI menu objects
         
     | 
| 
      
 27 
     | 
    
         
            +
                #
         
     | 
| 
      
 28 
     | 
    
         
            +
                # Follows the Proxy Design Pattern
         
     | 
| 
      
 29 
     | 
    
         
            +
                class MenuProxy < ControlProxy
         
     | 
| 
      
 30 
     | 
    
         
            +
                  DEFAULT_TEXT = ''
         
     | 
| 
      
 31 
     | 
    
         
            +
                  
         
     | 
| 
      
 32 
     | 
    
         
            +
                  private
         
     | 
| 
      
 33 
     | 
    
         
            +
                  
         
     | 
| 
      
 34 
     | 
    
         
            +
                  def build_control
         
     | 
| 
      
 35 
     | 
    
         
            +
                    construction_args = @args.dup
         
     | 
| 
      
 36 
     | 
    
         
            +
                    construction_args[0] = DEFAULT_TEXT if construction_args.size == 0
         
     | 
| 
      
 37 
     | 
    
         
            +
                    @libui = ControlProxy.new_control(@keyword, construction_args)
         
     | 
| 
      
 38 
     | 
    
         
            +
                  end
         
     | 
| 
      
 39 
     | 
    
         
            +
                end
         
     | 
| 
      
 40 
     | 
    
         
            +
              end
         
     | 
| 
      
 41 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -27,7 +27,7 @@ module Glimmer 
     | 
|
| 
       27 
27 
     | 
    
         
             
                #
         
     | 
| 
       28 
28 
     | 
    
         
             
                # Follows the Proxy Design Pattern
         
     | 
| 
       29 
29 
     | 
    
         
             
                class WindowProxy < ControlProxy
         
     | 
| 
       30 
     | 
    
         
            -
                  DEFAULT_TITLE = ' 
     | 
| 
      
 30 
     | 
    
         
            +
                  DEFAULT_TITLE = ''
         
     | 
| 
       31 
31 
     | 
    
         
             
                  DEFAULT_WIDTH = 150
         
     | 
| 
       32 
32 
     | 
    
         
             
                  DEFAULT_HEIGHT = 150
         
     | 
| 
       33 
33 
     | 
    
         
             
                  DEFAULT_HAS_MENUBAR = 1
         
     | 
| 
         @@ -79,7 +79,7 @@ module Glimmer 
     | 
|
| 
       79 
79 
     | 
    
         
             
                    construction_args[2] = DEFAULT_HEIGHT if construction_args.size == 2
         
     | 
| 
       80 
80 
     | 
    
         
             
                    construction_args[3] = DEFAULT_HAS_MENUBAR if construction_args.size == 3
         
     | 
| 
       81 
81 
     | 
    
         
             
                    construction_args[3] = ControlProxy.boolean_to_integer(construction_args[3]) if construction_args.size == 4 && (construction_args[3].is_a?(TrueClass) || construction_args[3].is_a?(FalseClass))
         
     | 
| 
       82 
     | 
    
         
            -
                    @libui =  
     | 
| 
      
 82 
     | 
    
         
            +
                    @libui = ControlProxy.new_control(@keyword, construction_args)
         
     | 
| 
       83 
83 
     | 
    
         
             
                    @libui.tap do
         
     | 
| 
       84 
84 
     | 
    
         
             
                      handle_listener('on_closing') do
         
     | 
| 
       85 
85 
     | 
    
         
             
                        destroy
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: glimmer-dsl-libui
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.0.16
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Andy Maleh
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire:
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2021-09- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2021-09-23 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: glimmer
         
     | 
| 
         @@ -205,7 +205,9 @@ files: 
     | 
|
| 
       205 
205 
     | 
    
         
             
            - lib/glimmer/dsl/libui/tab_item_expression.rb
         
     | 
| 
       206 
206 
     | 
    
         
             
            - lib/glimmer/libui/about_menu_item_proxy.rb
         
     | 
| 
       207 
207 
     | 
    
         
             
            - lib/glimmer/libui/box.rb
         
     | 
| 
      
 208 
     | 
    
         
            +
            - lib/glimmer/libui/button_proxy.rb
         
     | 
| 
       208 
209 
     | 
    
         
             
            - lib/glimmer/libui/check_menu_item_proxy.rb
         
     | 
| 
      
 210 
     | 
    
         
            +
            - lib/glimmer/libui/checkbox_proxy.rb
         
     | 
| 
       209 
211 
     | 
    
         
             
            - lib/glimmer/libui/color_button_proxy.rb
         
     | 
| 
       210 
212 
     | 
    
         
             
            - lib/glimmer/libui/combobox_proxy.rb
         
     | 
| 
       211 
213 
     | 
    
         
             
            - lib/glimmer/libui/control_proxy.rb
         
     | 
| 
         @@ -217,7 +219,9 @@ files: 
     | 
|
| 
       217 
219 
     | 
    
         
             
            - lib/glimmer/libui/grid_proxy.rb
         
     | 
| 
       218 
220 
     | 
    
         
             
            - lib/glimmer/libui/group_proxy.rb
         
     | 
| 
       219 
221 
     | 
    
         
             
            - lib/glimmer/libui/horizontal_box_proxy.rb
         
     | 
| 
      
 222 
     | 
    
         
            +
            - lib/glimmer/libui/label_proxy.rb
         
     | 
| 
       220 
223 
     | 
    
         
             
            - lib/glimmer/libui/menu_item_proxy.rb
         
     | 
| 
      
 224 
     | 
    
         
            +
            - lib/glimmer/libui/menu_proxy.rb
         
     | 
| 
       221 
225 
     | 
    
         
             
            - lib/glimmer/libui/multiline_entry_proxy.rb
         
     | 
| 
       222 
226 
     | 
    
         
             
            - lib/glimmer/libui/non_wrapping_multiline_entry_proxy.rb
         
     | 
| 
       223 
227 
     | 
    
         
             
            - lib/glimmer/libui/preferences_menu_item_proxy.rb
         
     |