gui/gui_object_renderer.rb
#
# GuiObjectRenderer is base class for "renderers", ie rendering an object (usually a UserObject) without reparenting it
#
class GuiObjectRenderer < GuiObject
callback :clicked
callback :double_clicked
easy_accessor :foreground_image
attr_reader :object
def initialize(object)
@object = object
end
def ==(object) # useful for being found in lists, etc.
super || (@object == object)
end
#pipe :gui_tick, :object
#
# rendering
#
def gui_render
return if hidden?
gui_render_background
@object.gui_render # TODO: send a symbol for customizable render method (ie simple curves)
if foreground_image
foreground_image.using {
unit_square
}
end
end
#
# pointer
#
def click(pointer)
parent.set_selection(self) if parent
clicked_notify(pointer)
end
def double_click(pointer)
double_clicked_notify(pointer)
end
end