Sha256: 0ce6c652c465b17aed961072a5beffe599fbf49cea697cc67031652bc5d06a1c

Contents?: true

Size: 1.26 KB

Versions: 1

Compression:

Stored size: 1.26 KB

Contents

module CyberarmEngine
  class Element
    class Label < Element
      def initialize(text, options = {}, block = nil)
        super(options, block)

        @text = Text.new(text, font: @options[:font], z: @z, color: @options[:color], size: @options[:text_size], shadow: @options[:text_shadow])
      end

      def render
        @text.draw
      end

      def clicked_left_mouse_button(sender, x, y)
        @block.call(self) if @block

        return :handled
      end

      def recalculate
        @width, @height = 0, 0

        _width = dimensional_size(@style.width, :width)
        _height= dimensional_size(@style.height,:height)

        @width = _width  ? _width  : @text.width.round
        @height= _height ? _height : @text.height.round

        @text.x = @style.border_thickness_left + @style.padding_left + @x
        @text.y = @style.border_thickness_top + @style.padding_top  + @y
        @text.z = @z + 3

        update_background
      end

      def value
        @text.text
      end

      def value=(value)
        @text.text = value

        old_width, old_height = width, height
        recalculate

        root.gui_state.request_recalculate if old_width != width || old_height != height
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cyberarm_engine-0.13.0 lib/cyberarm_engine/ui/elements/label.rb