Sha256: 10a35acb559f4be532523e4fef51d7f66195746eb1687e44cf85cabe68c61343

Contents?: true

Size: 879 Bytes

Versions: 7

Compression:

Stored size: 879 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

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

    def value
      @toggled
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
cyberarm_engine-0.6.0 lib/cyberarm_engine/ui/toggle_button.rb
cyberarm_engine-0.5.1 lib/cyberarm_engine/ui/toggle_button.rb
cyberarm_engine-0.5.0 lib/cyberarm_engine/ui/toggle_button.rb
cyberarm_engine-0.4.0 lib/cyberarm_engine/ui/toggle_button.rb
cyberarm_engine-0.3.0 lib/cyberarm_engine/ui/toggle_button.rb
cyberarm_engine-0.2.0 lib/cyberarm_engine/ui/toggle_button.rb
cyberarm_engine-0.1.0 lib/cyberarm_engine/ui/toggle_button.rb