gui/gui_actor_class_flyout.rb
#
# GuiActorClassFlyout lets user choose an Actor type
#
class GuiActorClassFlyout < GuiWindow
callback :actor_class_selected
def initialize
super
create!
end
def create!
# Background
self << (@background=GuiObject.new.set(:background_image => $engine.load_image('images/actor-class-flyout-background.png')))
self << (@list = GuiGrid.new.set(:scale_x => 0.98, :scale_y => 0.98, :offset_y => 0.0, :min_columns => 3))
# New Actor buttons
[ActorStarFlower, ActorStar, ActorPolygon, ActorLine, ActorRectangle, ActorRoundedRectangle, ActorOffscreenCanvas].each { |klass|
@list << (new_actor_button = GuiActorClassButton.new(klass).set(:scale_x => 0.75, :scale_y => 0.95))
new_actor_button.on_clicked { |pointer|
actor_class_selected_notify(pointer, klass)
}
}
end
def on_key_press(key)
case key
when 'up'
@list.select_previous!
when 'down'
@list.select_next!
when 'return'
if (class_button = @list.selection.first)
actor_class_selected_notify(pointer=nil, class_button.klass)
end
else
super
end
end
end