Sha256: 5558f4198dfe6a26a86ba32a07e37384c8fd0d4dfe3a0d70546cdea609d8d621
Contents?: true
Size: 1.56 KB
Versions: 3
Compression:
Stored size: 1.56 KB
Contents
module CyberarmEngine class Element class ToggleButton < Button attr_reader :toggled, :value def initialize(options, block = nil) if options.dig(:theme, :ToggleButton, :checkmark_image) options[:theme][:ToggleButton][:image_width] ||= options[:theme][:Label][:text_size] super(get_image(options.dig(:theme, :ToggleButton, :checkmark_image)), options, block) @_image = @image else super(options[:checkmark], options, block) end @value = options[:checked] || false if @value @image = @_image if @_image @raw_text = @options[:checkmark] else @image = nil @raw_text = "" end end def clicked_left_mouse_button(_sender, _x, _y) self.value = !@value @block.call(self) if @block :handled end def recalculate super return if @image _width = dimensional_size(@style.width, :width) _height = dimensional_size(@style.height, :height) @width = _width || @text.textobject.text_width(@options[:checkmark]) @height = _height || @text.height update_background end def value=(boolean) @value = boolean if boolean @image = @_image if @_image @raw_text = @options[:checkmark] else @image = nil @raw_text = "" end recalculate publish(:changed, @value) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems