Sha256: 904c03f45592aa68d9c59758c04e5c7bcbee4746f3dcb718541169d9f7bd0cbd
Contents?: true
Size: 1.54 KB
Versions: 2
Compression:
Stored size: 1.54 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][:TextBlock][:text_size] super(get_image(options.dig(:theme, :ToggleButton, :checkmark_image)), options, block) else super(options[:checkmark], options, block) end @value = options[:checked] || false if @value @raw_text = @options[:checkmark] else @raw_text = "" end end def clicked_left_mouse_button(_sender, _x, _y) self.value = !@value @block.call(self) if @block :handled end def render if @image draw_image if @value else draw_text end 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 @raw_text = @options[:checkmark] else @raw_text = "" end recalculate publish(:changed, @value) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
cyberarm_engine-0.24.4 | lib/cyberarm_engine/ui/elements/toggle_button.rb |
cyberarm_engine-0.24.3 | lib/cyberarm_engine/ui/elements/toggle_button.rb |