Sha256: 71f0fcedadf1ed5454184af6bf314d07c82392f4735767b9568136c8fcf30825

Contents?: true

Size: 880 Bytes

Versions: 18

Compression:

Stored size: 880 Bytes

Contents

module Gosuplus
  module GUI
    class Toggleable < Button
      attr_reader :state
      def initialize(position, image, checkbox, checkmark, input_handler, key_id)
        super(position, image, input_handler, key_id)

        @checkbox = Icon.new(checkbox, position)
        @checkmark = Icon.new(checkmark, position)
        @checkbox.center(@icon)
        @checkmark.center(@icon)
        @state = :checked
      end

      def draw
        super
        ButtonRenderer.draw(@checkbox)
        ButtonRenderer.draw(@checkmark) if @state == :checked
      end

      def update(x, y)
        super(x, y)
        next_state if @active
      end

      def next_state; @state = @state == :checked ? :unchecked : :checked; end
      def set_checkbox(image); @checkbox = image; end
      def set_checker(image); @checker = image; end
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
Gosuplus-1.0.261 lib/Gosuplus/gui/toggleable.rb
Gosuplus-1.0.26 lib/Gosuplus/gui/toggleable.rb
Gosuplus-1.0.25 lib/Gosuplus/gui/toggleable.rb
Gosuplus-1.0.24 lib/Gosuplus/gui/toggleable.rb
Gosuplus-1.0.23 lib/Gosuplus/gui/toggleable.rb
Gosuplus-1.0.22 lib/Gosuplus/gui/toggleable.rb
Gosuplus-1.0.21 lib/Gosuplus/gui/toggleable.rb
Gosuplus-1.0.20 lib/Gosuplus/gui/toggleable.rb
Gosuplus-1.0.19 lib/Gosuplus/gui/toggleable.rb
Gosuplus-1.0.18 lib/Gosuplus/gui/toggleable.rb
Gosuplus-1.0.17 lib/Gosuplus/gui/toggleable.rb
Gosuplus-1.0.16 lib/Gosuplus/gui/toggleable.rb
Gosuplus-1.0.15 lib/Gosuplus/gui/toggleable.rb
Gosuplus-1.0.14 lib/Gosuplus/gui/toggleable.rb
Gosuplus-1.0.13 lib/Gosuplus/gui/toggleable.rb
Gosuplus-1.0.12 lib/Gosuplus/gui/toggleable.rb
Gosuplus-1.0.11 lib/Gosuplus/gui/toggleable.rb
Gosuplus-1.0.1 lib/Gosuplus/gui/toggleable.rb