Sha256: f2d9b2f528d90dea9a4bb496923131fe4bcc0a19692bbc75ac3b29b449cdebe6

Contents?: true

Size: 885 Bytes

Versions: 2

Compression:

Stored size: 885 Bytes

Contents

module CyberarmEngine
  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
    end

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

    def recalculate
      super

      @style.width = @text.textobject.text_width(@options[:checkmark])
      update_background
    end

    def value
      @toggled
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
cyberarm_engine-0.8.1 lib/cyberarm_engine/ui/toggle_button.rb
cyberarm_engine-0.8.0 lib/cyberarm_engine/ui/toggle_button.rb