

# The zori UI consists of several "pages" or screens of UI.
# Only one page can be active at the same time, and the size fo a page is 
# that of the screen.
# The page named :default is normally active and is supposed to be used 
# for the in-engine UI and HUD elements, dialogs, etc.
# Other pages are for screens such as the start screen, save screen,
# main menu, inventory, etc.
# 
module Zori
  class Page
    include Zori::Widget
    
    
    attr_reader :name

    # Creates a new UI page with the given name.
    def initialize(params={}, &block)
      super(params, &block)
      @name     = params[:name].to_sym
    end
    
    # Called when this page is activated.
    def on_enter(data = {})
      self.show
      on_event(:enter)
    end
    
    # Called when this page is deactivated.
    def on_leave(name=nil)
      self.hide
      on_event(:leave, name)
    end
    
    # Override this in pages to do special case handling
    def handle_event(*data)
      return false
    end
    
    
    
    
  end
end

