glimmer-dsl-libui 0.3.2 → 0.3.3
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 +16 -0
- data/README.md +599 -883
- data/VERSION +1 -1
- data/bin/girb +0 -0
- data/examples/area_gallery.rb +19 -19
- data/examples/area_gallery2.rb +91 -89
- data/examples/area_gallery3.rb +19 -19
- data/examples/area_gallery4.rb +91 -89
- data/examples/basic_transform.rb +3 -6
- data/examples/basic_transform2.rb +34 -0
- data/examples/color_the_circles.rb +1 -3
- data/examples/dynamic_area.rb +1 -3
- data/examples/dynamic_area2.rb +5 -7
- data/examples/form_table.rb +4 -0
- data/examples/grid.rb +4 -4
- data/examples/histogram.rb +4 -8
- data/examples/meta_example.rb +50 -10
- data/examples/snake.rb +1 -3
- data/examples/tetris.rb +15 -18
- data/examples/tic_tac_toe/board.rb +4 -2
- data/examples/tic_tac_toe.rb +1 -3
- data/glimmer-dsl-libui.gemspec +0 -0
- data/lib/glimmer/dsl/libui/shape_expression.rb +6 -1
- data/lib/glimmer/libui/shape.rb +44 -1
- metadata +6 -5
    
        data/examples/dynamic_area2.rb
    CHANGED
    
    | @@ -54,7 +54,7 @@ window('Dynamic Area', 240, 600) { | |
| 54 54 | 
             
                    value 102
         | 
| 55 55 |  | 
| 56 56 | 
             
                    on_changed do
         | 
| 57 | 
            -
                      @ | 
| 57 | 
            +
                      @rectangle.fill[:r] = @red_spinbox.value # updating hash properties automatically triggers area.queue_redraw_all
         | 
| 58 58 | 
             
                    end
         | 
| 59 59 | 
             
                  }
         | 
| 60 60 |  | 
| @@ -63,7 +63,7 @@ window('Dynamic Area', 240, 600) { | |
| 63 63 | 
             
                    value 102
         | 
| 64 64 |  | 
| 65 65 | 
             
                    on_changed do
         | 
| 66 | 
            -
                      @ | 
| 66 | 
            +
                      @rectangle.fill[:g] = @green_spinbox.value # updating hash properties automatically triggers area.queue_redraw_all
         | 
| 67 67 | 
             
                    end
         | 
| 68 68 | 
             
                  }
         | 
| 69 69 |  | 
| @@ -72,7 +72,7 @@ window('Dynamic Area', 240, 600) { | |
| 72 72 | 
             
                    value 204
         | 
| 73 73 |  | 
| 74 74 | 
             
                    on_changed do
         | 
| 75 | 
            -
                      @ | 
| 75 | 
            +
                      @rectangle.fill[:b] = @blue_spinbox.value # updating hash properties automatically triggers area.queue_redraw_all
         | 
| 76 76 | 
             
                    end
         | 
| 77 77 | 
             
                  }
         | 
| 78 78 |  | 
| @@ -81,15 +81,13 @@ window('Dynamic Area', 240, 600) { | |
| 81 81 | 
             
                    value 100
         | 
| 82 82 |  | 
| 83 83 | 
             
                    on_changed do
         | 
| 84 | 
            -
                      @ | 
| 84 | 
            +
                      @rectangle.fill[:a] = @alpha_spinbox.value / 100.0 # updating hash properties automatically triggers area.queue_redraw_all
         | 
| 85 85 | 
             
                    end
         | 
| 86 86 | 
             
                  }
         | 
| 87 87 | 
             
                }
         | 
| 88 88 |  | 
| 89 89 | 
             
                area {
         | 
| 90 | 
            -
                  @ | 
| 91 | 
            -
                    @rectangle = rectangle(@x_spinbox.value, @y_spinbox.value, @width_spinbox.value, @height_spinbox.value)
         | 
| 92 | 
            -
                    
         | 
| 90 | 
            +
                  @rectangle = rectangle(@x_spinbox.value, @y_spinbox.value, @width_spinbox.value, @height_spinbox.value) { # stable path
         | 
| 93 91 | 
             
                    fill r: @red_spinbox.value, g: @green_spinbox.value, b: @blue_spinbox.value, a: @alpha_spinbox.value / 100.0
         | 
| 94 92 | 
             
                  }
         | 
| 95 93 | 
             
                }
         | 
    
        data/examples/form_table.rb
    CHANGED
    
    | @@ -22,15 +22,19 @@ window('Contacts', 600, 600) { |w| | |
| 22 22 | 
             
                  @name_entry = entry {
         | 
| 23 23 | 
             
                    label 'Name'
         | 
| 24 24 | 
             
                  }
         | 
| 25 | 
            +
                  
         | 
| 25 26 | 
             
                  @email_entry = entry {
         | 
| 26 27 | 
             
                    label 'Email'
         | 
| 27 28 | 
             
                  }
         | 
| 29 | 
            +
                  
         | 
| 28 30 | 
             
                  @phone_entry = entry {
         | 
| 29 31 | 
             
                    label 'Phone'
         | 
| 30 32 | 
             
                  }
         | 
| 33 | 
            +
                  
         | 
| 31 34 | 
             
                  @city_entry = entry {
         | 
| 32 35 | 
             
                    label 'City'
         | 
| 33 36 | 
             
                  }
         | 
| 37 | 
            +
                  
         | 
| 34 38 | 
             
                  @state_entry = entry {
         | 
| 35 39 | 
             
                    label 'State'
         | 
| 36 40 | 
             
                  }
         | 
    
        data/examples/grid.rb
    CHANGED
    
    | @@ -8,16 +8,16 @@ window('Grid') { | |
| 8 8 | 
             
              tab {
         | 
| 9 9 | 
             
                tab_item('Span') {
         | 
| 10 10 | 
             
                  grid {
         | 
| 11 | 
            -
                    4.times  | 
| 12 | 
            -
                      4.times  | 
| 11 | 
            +
                    4.times do |top_value|
         | 
| 12 | 
            +
                      4.times do |left_value|
         | 
| 13 13 | 
             
                        label("(#{left_value}, #{top_value}) xspan1\nyspan1") {
         | 
| 14 14 | 
             
                          left left_value
         | 
| 15 15 | 
             
                          top top_value
         | 
| 16 16 | 
             
                          hexpand true
         | 
| 17 17 | 
             
                          vexpand true
         | 
| 18 18 | 
             
                        }
         | 
| 19 | 
            -
                       | 
| 20 | 
            -
                     | 
| 19 | 
            +
                      end
         | 
| 20 | 
            +
                    end
         | 
| 21 21 | 
             
                    label("(0, 4) xspan2\nyspan1 more text fits horizontally") {
         | 
| 22 22 | 
             
                      left 0
         | 
| 23 23 | 
             
                      top 4
         | 
    
        data/examples/histogram.rb
    CHANGED
    
    | @@ -79,19 +79,15 @@ window('histogram example', 640, 480) { | |
| 79 79 |  | 
| 80 80 | 
             
                @area = area {
         | 
| 81 81 | 
             
                  on_draw do |area_draw_params|
         | 
| 82 | 
            -
                     | 
| 83 | 
            -
                      rectangle(0, 0, area_draw_params[:area_width], area_draw_params[:area_height])
         | 
| 84 | 
            -
                      
         | 
| 82 | 
            +
                    rectangle(0, 0, area_draw_params[:area_width], area_draw_params[:area_height]) {
         | 
| 85 83 | 
             
                      fill 0xFFFFFF
         | 
| 86 84 | 
             
                    }
         | 
| 87 85 |  | 
| 88 86 | 
             
                    graph_width, graph_height = *graph_size(area_draw_params[:area_width], area_draw_params[:area_height])
         | 
| 89 87 |  | 
| 90 | 
            -
                     | 
| 91 | 
            -
                       | 
| 92 | 
            -
             | 
| 93 | 
            -
                        line(X_OFF_LEFT + graph_width, Y_OFF_TOP + graph_height)
         | 
| 94 | 
            -
                      }
         | 
| 88 | 
            +
                    figure(X_OFF_LEFT, Y_OFF_TOP) {
         | 
| 89 | 
            +
                      line(X_OFF_LEFT, Y_OFF_TOP + graph_height)
         | 
| 90 | 
            +
                      line(X_OFF_LEFT + graph_width, Y_OFF_TOP + graph_height)
         | 
| 95 91 |  | 
| 96 92 | 
             
                      stroke 0x000000, thickness: 2, miter_limit: 10
         | 
| 97 93 | 
             
                    }
         | 
    
        data/examples/meta_example.rb
    CHANGED
    
    | @@ -5,8 +5,10 @@ require 'fileutils' | |
| 5 5 | 
             
            class MetaExample
         | 
| 6 6 | 
             
              include Glimmer
         | 
| 7 7 |  | 
| 8 | 
            +
              ADDITIONAL_BASIC_EXAMPLES = ['Color Button', 'Font Button', 'Form', 'Date Time Picker', 'Simple Notepad']
         | 
| 9 | 
            +
              
         | 
| 8 10 | 
             
              def initialize
         | 
| 9 | 
            -
                @selected_example_index =  | 
| 11 | 
            +
                @selected_example_index = examples_with_versions.index(basic_examples_with_versions.first)
         | 
| 10 12 | 
             
              end
         | 
| 11 13 |  | 
| 12 14 | 
             
              def examples
         | 
| @@ -25,6 +27,14 @@ class MetaExample | |
| 25 27 | 
             
                end
         | 
| 26 28 | 
             
              end
         | 
| 27 29 |  | 
| 30 | 
            +
              def basic_examples_with_versions
         | 
| 31 | 
            +
                examples_with_versions.select {|example| example.start_with?('Basic') || ADDITIONAL_BASIC_EXAMPLES.include?(example) }
         | 
| 32 | 
            +
              end
         | 
| 33 | 
            +
              
         | 
| 34 | 
            +
              def advanced_examples_with_versions
         | 
| 35 | 
            +
                examples_with_versions - basic_examples_with_versions
         | 
| 36 | 
            +
              end
         | 
| 37 | 
            +
              
         | 
| 28 38 | 
             
              def file_path_for(example)
         | 
| 29 39 | 
             
                File.join(File.expand_path('.', __dir__), "#{example.underscore}.rb")
         | 
| 30 40 | 
             
              end
         | 
| @@ -66,17 +76,47 @@ class MetaExample | |
| 66 76 | 
             
                    vertical_box {
         | 
| 67 77 | 
             
                      stretchy false
         | 
| 68 78 |  | 
| 69 | 
            -
                       | 
| 79 | 
            +
                      tab {
         | 
| 70 80 | 
             
                        stretchy false
         | 
| 71 | 
            -
                        items examples_with_versions
         | 
| 72 | 
            -
                        selected @selected_example_index
         | 
| 73 81 |  | 
| 74 | 
            -
                         | 
| 75 | 
            -
                           | 
| 76 | 
            -
             | 
| 77 | 
            -
             | 
| 78 | 
            -
             | 
| 79 | 
            -
             | 
| 82 | 
            +
                        tab_item('Basic') {
         | 
| 83 | 
            +
                          vertical_box {
         | 
| 84 | 
            +
                            @basic_example_radio_buttons = radio_buttons {
         | 
| 85 | 
            +
                              stretchy false
         | 
| 86 | 
            +
                              items basic_examples_with_versions
         | 
| 87 | 
            +
                              selected basic_examples_with_versions.index(examples_with_versions[@selected_example_index])
         | 
| 88 | 
            +
                              
         | 
| 89 | 
            +
                              on_selected do
         | 
| 90 | 
            +
                                @selected_example_index = examples_with_versions.index(basic_examples_with_versions[@basic_example_radio_buttons.selected])
         | 
| 91 | 
            +
                                example = selected_example
         | 
| 92 | 
            +
                                @code_entry.text = File.read(file_path_for(example))
         | 
| 93 | 
            +
                                @version_spinbox.value = 1
         | 
| 94 | 
            +
                              end
         | 
| 95 | 
            +
                            }
         | 
| 96 | 
            +
                            
         | 
| 97 | 
            +
                            label # filler
         | 
| 98 | 
            +
                            label # filler
         | 
| 99 | 
            +
                          }
         | 
| 100 | 
            +
                        }
         | 
| 101 | 
            +
                        
         | 
| 102 | 
            +
                        tab_item('Advanced') {
         | 
| 103 | 
            +
                          vertical_box {
         | 
| 104 | 
            +
                            @advanced_example_radio_buttons = radio_buttons {
         | 
| 105 | 
            +
                              stretchy false
         | 
| 106 | 
            +
                              items advanced_examples_with_versions
         | 
| 107 | 
            +
                              
         | 
| 108 | 
            +
                              on_selected do
         | 
| 109 | 
            +
                                @selected_example_index = examples_with_versions.index(advanced_examples_with_versions[@advanced_example_radio_buttons.selected])
         | 
| 110 | 
            +
                                example = selected_example
         | 
| 111 | 
            +
                                @code_entry.text = File.read(file_path_for(example))
         | 
| 112 | 
            +
                                @version_spinbox.value = 1
         | 
| 113 | 
            +
                              end
         | 
| 114 | 
            +
                            }
         | 
| 115 | 
            +
                            
         | 
| 116 | 
            +
                            label # filler
         | 
| 117 | 
            +
                            label # filler
         | 
| 118 | 
            +
                          }
         | 
| 119 | 
            +
                        }
         | 
| 80 120 | 
             
                      }
         | 
| 81 121 |  | 
| 82 122 | 
             
                      horizontal_box {
         | 
    
        data/examples/snake.rb
    CHANGED
    
    
    
        data/examples/tetris.rb
    CHANGED
    
    | @@ -203,34 +203,31 @@ class Tetris | |
| 203 203 | 
             
                bevel_pixel_size = 0.16 * block_size.to_f
         | 
| 204 204 | 
             
                color = Glimmer::LibUI.interpret_color(Model::Block::COLOR_CLEAR)
         | 
| 205 205 | 
             
                area {
         | 
| 206 | 
            -
                  block[:background_square] =  | 
| 207 | 
            -
                    square(0, 0, block_size)
         | 
| 208 | 
            -
                    
         | 
| 206 | 
            +
                  block[:background_square] = square(0, 0, block_size) {
         | 
| 209 207 | 
             
                    fill color
         | 
| 210 208 | 
             
                  }
         | 
| 211 | 
            -
                   | 
| 212 | 
            -
             | 
| 213 | 
            -
             | 
| 209 | 
            +
                  
         | 
| 210 | 
            +
                  block[:top_bevel_edge] = polygon {
         | 
| 211 | 
            +
                    point_array 0, 0, block_size, 0, block_size - bevel_pixel_size, bevel_pixel_size, bevel_pixel_size, bevel_pixel_size
         | 
| 214 212 | 
             
                    fill r: color[:r] + 4*BEVEL_CONSTANT, g: color[:g] + 4*BEVEL_CONSTANT, b: color[:b] + 4*BEVEL_CONSTANT
         | 
| 215 213 | 
             
                  }
         | 
| 216 | 
            -
                   | 
| 217 | 
            -
             | 
| 218 | 
            -
             | 
| 214 | 
            +
                  
         | 
| 215 | 
            +
                  block[:right_bevel_edge] = polygon {
         | 
| 216 | 
            +
                    point_array block_size, 0, block_size - bevel_pixel_size, bevel_pixel_size, block_size - bevel_pixel_size, block_size - bevel_pixel_size, block_size, block_size
         | 
| 219 217 | 
             
                    fill r: color[:r] - BEVEL_CONSTANT, g: color[:g] - BEVEL_CONSTANT, b: color[:b] - BEVEL_CONSTANT
         | 
| 220 218 | 
             
                  }
         | 
| 221 | 
            -
                   | 
| 222 | 
            -
             | 
| 223 | 
            -
             | 
| 219 | 
            +
                  
         | 
| 220 | 
            +
                  block[:bottom_bevel_edge] = polygon {
         | 
| 221 | 
            +
                    point_array block_size, block_size, 0, block_size, bevel_pixel_size, block_size - bevel_pixel_size, block_size - bevel_pixel_size, block_size - bevel_pixel_size
         | 
| 224 222 | 
             
                    fill r: color[:r] - BEVEL_CONSTANT, g: color[:g] - BEVEL_CONSTANT, b: color[:b] - BEVEL_CONSTANT
         | 
| 225 223 | 
             
                  }
         | 
| 226 | 
            -
                   | 
| 227 | 
            -
             | 
| 228 | 
            -
             | 
| 224 | 
            +
                  
         | 
| 225 | 
            +
                  block[:left_bevel_edge] = polygon {
         | 
| 226 | 
            +
                    point_array 0, 0, 0, block_size, bevel_pixel_size, block_size - bevel_pixel_size, bevel_pixel_size, bevel_pixel_size
         | 
| 229 227 | 
             
                    fill r: color[:r] - BEVEL_CONSTANT, g: color[:g] - BEVEL_CONSTANT, b: color[:b] - BEVEL_CONSTANT
         | 
| 230 228 | 
             
                  }
         | 
| 231 | 
            -
                   | 
| 232 | 
            -
             | 
| 233 | 
            -
              
         | 
| 229 | 
            +
                  
         | 
| 230 | 
            +
                  block[:border_square] = square(0, 0, block_size) {
         | 
| 234 231 | 
             
                    stroke COLOR_GRAY
         | 
| 235 232 | 
             
                  }
         | 
| 236 233 |  | 
| @@ -38,8 +38,10 @@ class TicTacToe | |
| 38 38 |  | 
| 39 39 | 
             
                #row and column numbers are 1-based
         | 
| 40 40 | 
             
                def mark(row, column)
         | 
| 41 | 
            -
                  self[row, column]. | 
| 42 | 
            -
             | 
| 41 | 
            +
                  if self[row, column].empty
         | 
| 42 | 
            +
                    self[row, column].mark(current_sign)
         | 
| 43 | 
            +
                    game_over? #updates winning sign
         | 
| 44 | 
            +
                  end
         | 
| 43 45 | 
             
                end
         | 
| 44 46 |  | 
| 45 47 | 
             
                def current_sign
         | 
    
        data/examples/tic_tac_toe.rb
    CHANGED
    
    
    
        data/glimmer-dsl-libui.gemspec
    CHANGED
    
    | Binary file | 
| @@ -21,6 +21,9 @@ | |
| 21 21 |  | 
| 22 22 | 
             
            require 'glimmer/dsl/expression'
         | 
| 23 23 | 
             
            require 'glimmer/dsl/parent_expression'
         | 
| 24 | 
            +
            require 'glimmer/libui/control_proxy/path_proxy'
         | 
| 25 | 
            +
            require 'glimmer/libui/shape'
         | 
| 26 | 
            +
            require 'glimmer/libui/control_proxy/area_proxy'
         | 
| 24 27 |  | 
| 25 28 | 
             
            module Glimmer
         | 
| 26 29 | 
             
              module DSL
         | 
| @@ -32,7 +35,9 @@ module Glimmer | |
| 32 35 | 
             
                      Glimmer::LibUI::Shape.exists?(keyword) and
         | 
| 33 36 | 
             
                        (
         | 
| 34 37 | 
             
                          parent.is_a?(Glimmer::LibUI::ControlProxy::PathProxy) or
         | 
| 35 | 
            -
             | 
| 38 | 
            +
                          parent.is_a?(Glimmer::LibUI::Shape) or
         | 
| 39 | 
            +
                          parent.is_a?(Glimmer::LibUI::ControlProxy::AreaProxy) or
         | 
| 40 | 
            +
                          (parent.nil? && Glimmer::LibUI::ControlProxy::AreaProxy.current_area_draw_params)
         | 
| 36 41 | 
             
                        )
         | 
| 37 42 | 
             
                    end
         | 
| 38 43 |  | 
    
        data/lib/glimmer/libui/shape.rb
    CHANGED
    
    | @@ -73,12 +73,22 @@ module Glimmer | |
| 73 73 | 
             
                    @args = args
         | 
| 74 74 | 
             
                    @block = block
         | 
| 75 75 | 
             
                    set_parameter_defaults
         | 
| 76 | 
            +
                    build_control if implicit_path?
         | 
| 76 77 | 
             
                    post_add_content if @block.nil?
         | 
| 77 78 | 
             
                  end
         | 
| 78 79 |  | 
| 79 80 | 
             
                  # Subclasses may override to perform post add_content work (normally must call super)
         | 
| 80 81 | 
             
                  def post_add_content
         | 
| 81 82 | 
             
                    @parent&.post_initialize_child(self)
         | 
| 83 | 
            +
                    @parent.post_add_content if implicit_path? && dynamic?
         | 
| 84 | 
            +
                  end
         | 
| 85 | 
            +
                  
         | 
| 86 | 
            +
                  def post_initialize_child(child, add_child: true)
         | 
| 87 | 
            +
                    if child.is_a?(ControlProxy::MatrixProxy)
         | 
| 88 | 
            +
                      path_proxy.post_initialize_child(child, add_child: add_child)
         | 
| 89 | 
            +
                    else
         | 
| 90 | 
            +
                      super(child, add_child: add_child)
         | 
| 91 | 
            +
                    end
         | 
| 82 92 | 
             
                  end
         | 
| 83 93 |  | 
| 84 94 | 
             
                  # Subclasses must override to perform draw work and call super afterwards to ensure calling destroy when semi-declarative in an on_draw method
         | 
| @@ -105,6 +115,24 @@ module Glimmer | |
| 105 115 | 
             
                  def path_proxy
         | 
| 106 116 | 
             
                    find_parent_in_ancestors { |parent| parent.nil? || parent.is_a?(ControlProxy::PathProxy) }
         | 
| 107 117 | 
             
                  end
         | 
| 118 | 
            +
                
         | 
| 119 | 
            +
                  def fill(*args)
         | 
| 120 | 
            +
                    path_proxy.fill(*args)
         | 
| 121 | 
            +
                  end
         | 
| 122 | 
            +
                  alias fill= fill
         | 
| 123 | 
            +
                  alias set_fill fill
         | 
| 124 | 
            +
                  
         | 
| 125 | 
            +
                  def stroke(*args)
         | 
| 126 | 
            +
                    path_proxy.stroke(*args)
         | 
| 127 | 
            +
                  end
         | 
| 128 | 
            +
                  alias stroke= stroke
         | 
| 129 | 
            +
                  alias set_stroke stroke
         | 
| 130 | 
            +
                  
         | 
| 131 | 
            +
                  def transform(matrix = nil)
         | 
| 132 | 
            +
                    path_proxy.transform(matrix)
         | 
| 133 | 
            +
                  end
         | 
| 134 | 
            +
                  alias transform= transform
         | 
| 135 | 
            +
                  alias set_transform transform
         | 
| 108 136 |  | 
| 109 137 | 
             
                  def respond_to?(method_name, *args, &block)
         | 
| 110 138 | 
             
                    self.class.parameters.include?(method_name.to_s.sub(/=$/, '').sub(/^set_/, '').to_sym) or
         | 
| @@ -117,6 +145,7 @@ module Glimmer | |
| 117 145 | 
             
                      method_name = method_name.to_s
         | 
| 118 146 | 
             
                      parameter_index = self.class.parameters.index(method_name_parameter)
         | 
| 119 147 | 
             
                      if method_name.start_with?('set_') || method_name.end_with?('=') || !args.empty?
         | 
| 148 | 
            +
                        args = [args] if args.size > 1
         | 
| 120 149 | 
             
                        if args.first != @args[parameter_index]
         | 
| 121 150 | 
             
                          @args[parameter_index] = args.first
         | 
| 122 151 | 
             
                          request_auto_redraw
         | 
| @@ -124,13 +153,27 @@ module Glimmer | |
| 124 153 | 
             
                      else
         | 
| 125 154 | 
             
                        @args[parameter_index]
         | 
| 126 155 | 
             
                      end
         | 
| 127 | 
            -
                    else
         | 
| 156 | 
            +
                    else # TODO consider if there is a need to redirect anything to path proxy or delete this TODO
         | 
| 128 157 | 
             
                      super
         | 
| 129 158 | 
             
                    end
         | 
| 130 159 | 
             
                  end
         | 
| 131 160 |  | 
| 132 161 | 
             
                  private
         | 
| 133 162 |  | 
| 163 | 
            +
                  def build_control
         | 
| 164 | 
            +
                    block = Proc.new {} if dynamic?
         | 
| 165 | 
            +
                    @parent = Glimmer::LibUI::ControlProxy::PathProxy.new('path', @parent, [], &block)
         | 
| 166 | 
            +
                  end
         | 
| 167 | 
            +
                  
         | 
| 168 | 
            +
                  # indicates if nested directly under area or on_draw event (having an implicit path not an explicit path parent)
         | 
| 169 | 
            +
                  def implicit_path?
         | 
| 170 | 
            +
                    @implicit_path ||= !!(@parent.is_a?(Glimmer::LibUI::ControlProxy::AreaProxy) || (@parent.nil? && Glimmer::LibUI::ControlProxy::AreaProxy.current_area_draw_params))
         | 
| 171 | 
            +
                  end
         | 
| 172 | 
            +
                  
         | 
| 173 | 
            +
                  def dynamic?
         | 
| 174 | 
            +
                    ((@parent.nil? || (@parent.is_a?(ControlProxy::PathProxy) && @parent.parent_proxy.nil?)) && Glimmer::LibUI::ControlProxy::AreaProxy.current_area_draw_params)
         | 
| 175 | 
            +
                  end
         | 
| 176 | 
            +
                  
         | 
| 134 177 | 
             
                  def set_parameter_defaults
         | 
| 135 178 | 
             
                    self.class.parameter_defaults.each_with_index do |default, i|
         | 
| 136 179 | 
             
                      @args[i] ||= default
         | 
    
        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.3. | 
| 4 | 
            +
              version: 0.3.3
         | 
| 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-11- | 
| 11 | 
            +
            date: 2021-11-21 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: glimmer
         | 
| @@ -16,14 +16,14 @@ dependencies: | |
| 16 16 | 
             
                requirements:
         | 
| 17 17 | 
             
                - - "~>"
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version: 2. | 
| 19 | 
            +
                    version: 2.5.0
         | 
| 20 20 | 
             
              type: :runtime
         | 
| 21 21 | 
             
              prerelease: false
         | 
| 22 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 23 | 
             
                requirements:
         | 
| 24 24 | 
             
                - - "~>"
         | 
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            -
                    version: 2. | 
| 26 | 
            +
                    version: 2.5.0
         | 
| 27 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 28 | 
             
              name: os
         | 
| 29 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -238,6 +238,7 @@ files: | |
| 238 238 | 
             
            - examples/basic_table_image_text2.rb
         | 
| 239 239 | 
             
            - examples/basic_table_progress_bar.rb
         | 
| 240 240 | 
             
            - examples/basic_transform.rb
         | 
| 241 | 
            +
            - examples/basic_transform2.rb
         | 
| 241 242 | 
             
            - examples/basic_window.rb
         | 
| 242 243 | 
             
            - examples/basic_window2.rb
         | 
| 243 244 | 
             
            - examples/color_button.rb
         | 
| @@ -394,7 +395,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 394 395 | 
             
                - !ruby/object:Gem::Version
         | 
| 395 396 | 
             
                  version: '0'
         | 
| 396 397 | 
             
            requirements: []
         | 
| 397 | 
            -
            rubygems_version: 3.2. | 
| 398 | 
            +
            rubygems_version: 3.2.31
         | 
| 398 399 | 
             
            signing_key:
         | 
| 399 400 | 
             
            specification_version: 4
         | 
| 400 401 | 
             
            summary: Glimmer DSL for LibUI
         |