Sha256: c908906df678d5715caca24efe3518ce3d411477a8c09b4c2d3e90c026700ce1

Contents?: true

Size: 1.21 KB

Versions: 1

Compression:

Stored size: 1.21 KB

Contents

module CyberarmEngine
  class Element
    class ToggleButton < Button
      attr_reader :toggled

      def initialize(options, block = nil)
        super(options[:checkmark], options, block)
        @toggled = options[:toggled] || false
        if @toggled
          @text.text = @options[:checkmark]
        else
          @text.text = ""
        end

        return self
      end

      def toggled=(boolean)
        @toggled = !boolean
        toggle
      end

      def clicked_left_mouse_button(sender, x, y)
        toggle

        @block.call(self) if @block

        return :handled
      end

      def toggle
        if @toggled
          @toggled = false
          @text.text = ""
        else
          @toggled = true
          @text.text = @options[:checkmark]
        end
      end

      def recalculate
        super

        _width = dimensional_size(@style.width, :width)
        _height= dimensional_size(@style.height,:height)
        @width  = _width  ? _width  : @text.textobject.text_width(@options[:checkmark])
        @height = _height ? _height : @text.height
        update_background
      end

      def value
        @toggled
      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/toggle_button.rb