Sha256: a7b0322191037041ab6c81d1eb7bd9b1c838a33f492d5918ac4f5159c623672b

Contents?: true

Size: 1.76 KB

Versions: 2

Compression:

Stored size: 1.76 KB

Contents

require 'glimmer/swt/widget_proxy'
# require 'glimmer/swt/image_proxy'

module Glimmer
  module SWT
    class LabelProxy < WidgetProxy
      attr_reader :text, :background_image, :image
      
      def initialize(parent, args, block)
        super(parent, args, block)
      end

      def text=(value)
        @text = value
        dom_element.html(value)
      end
      
      def background_image=(*image_options)
        # TODO consider if there is a difference between background_image and image in label and to have one reuse the other
        # TODO finish implementation
#         @background_image = Glimmer::SWT::ImageProxy.create(*image_options)
#         dom_element.css('background-image', @background_image.image_data.dom_element.src)
      end
      
      def image=(*image_options)
        # TODO finish implementation
#         @image = Glimmer::SWT::ImageProxy.create(*image_options)
#         dom_element.css('background-image', @image.image_data.dom_element.src)
      end
      
      def element
        'label'
      end
      
      def alignment
        if @alignment.nil?
          found_arg = nil
          @alignment = [:left, :center, :right].detect {|align| found_arg = args.detect { |arg| SWTProxy[align] == SWTProxy[arg] } }
          args.delete(found_arg)
        end
        @alignment
      end

      def alignment=(value)
        # TODO consider storing swt value in the future instead
        @alignment = value
        dom_element.css('text-align', @alignment.to_s)
      end
      
      def dom
        label_text = @text
        label_id = id
        label_class = name
        @dom ||= html {
          label(id: label_id, class: label_class, style: "text-align: #{alignment};") {
            label_text
          }
        }.to_s
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
glimmer-dsl-opal-0.7.5 lib/glimmer/swt/label_proxy.rb
glimmer-dsl-opal-0.7.4 lib/glimmer/swt/label_proxy.rb