Sha256: 69b2d646d20e67cf2220d5db8aff3cb1cefc9d9ec8812a9c12e769a34f49e442

Contents?: true

Size: 1.21 KB

Versions: 5

Compression:

Stored size: 1.21 KB

Contents

require 'glimmer/swt/grid_layout_proxy'
require 'glimmer/swt/widget_proxy'

module Glimmer
  module SWT
    class CompositeProxy < WidgetProxy
      def initialize(parent, args, block)
        super(parent, args, block)
        @layout = default_layout
      end
      
      def default_layout
        GridLayoutProxy.new(self, [])
      end
      
      def dom
        div_id = id
        div_style = css
        div_class = name
        @dom ||= html {
          div(id: div_id, class: div_class, style: div_style)
        }.to_s
      end
      
      def layout=(the_layout)
        @layout = the_layout
      end
      alias set_layout layout=
      alias setLayout layout=
      
      def get_layout
        @layout
      end
      alias getLayout get_layout #TODO consider pregenerating these aliases with an easy method in the future

      def pack(*args)
        # No Op (just a shim) TODO consider if it should be implemented
      end
      
      def layout​(changed = nil, all = nil)
        # TODO implement layout(changed = nil, all = nil) just as per SWT API
        @layout&.layout(self, changed)
      end
            
    end
    
    CanvasProxy = CompositeProxy # TODO implement fully eventually
    
  end
  
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
glimmer-dsl-opal-0.14.0 lib/glimmer/swt/composite_proxy.rb
glimmer-dsl-opal-0.13.0 lib/glimmer/swt/composite_proxy.rb
glimmer-dsl-opal-0.12.0 lib/glimmer/swt/composite_proxy.rb
glimmer-dsl-opal-0.11.0 lib/glimmer/swt/composite_proxy.rb
glimmer-dsl-opal-0.10.3 lib/glimmer/swt/composite_proxy.rb