class CyberarmEngine::Element::ListBox
Attributes
choose[R]
items[RW]
Public Class Methods
new(options = {}, block = nil)
click to toggle source
Calls superclass method
CyberarmEngine::Element::Button::new
# File lib/cyberarm_engine/ui/elements/list_box.rb, line 7 def initialize(options = {}, block = nil) @items = options[:items] || [] @choose = options[:choose] || @items.first super(@choose, options, block) @style.background_canvas.background = default(:background) # TODO: "Clean Up" into own class? @menu = Stack.new(parent: parent, width: @options[:width], theme: @options[:theme]) @menu.define_singleton_method(:recalculate_menu) do @x = @__list_box.x @y = @__list_box.y + @__list_box.height end @menu.instance_variable_set(:"@__list_box", self) def @menu.recalculate super recalculate_menu end self.choose = @choose end
Public Instance Methods
choose=(item)
click to toggle source
# File lib/cyberarm_engine/ui/elements/list_box.rb, line 32 def choose=(item) valid = @items.detect { |i| i == item } raise "Invalid value '#{item}' for choose, valid options were: #{@items.map { |i| "#{i.inspect}" }.join(", ")}" unless valid @choose = item self.value = item.to_s recalculate end
recalculate()
click to toggle source
Calls superclass method
CyberarmEngine::Element::Button#recalculate
# File lib/cyberarm_engine/ui/elements/list_box.rb, line 75 def recalculate super @menu.recalculate end