#include "Menu.h"
#include "Basic.h"
#include "Alpha.h"
#include "Default.h"


namespace gaming { namespace menu {


	gge::utils::Collection<Menu::Factory::OrganizerCreator> Menu::Factory::Organizers;
	gge::utils::Collection<Menu::Factory::HiderCreator>		Menu::Factory::Hiders;
	gge::utils::Collection<Menu::Factory::MinimizerCreator> Menu::Factory::Minimizers;


	void Initialize() {
		Menu::Factory::Organizers.Add(new Menu::Factory::OrganizerCreator("default", DefaultOrganizer::Create));
		Menu::Factory::Organizers.Add(new Menu::Factory::OrganizerCreator("basic", BasicOrganizer::Create));
		Menu::Factory::Minimizers.Add(new Menu::Factory::MinimizerCreator("null",    NullMinimizer::Create));
		Menu::Factory::Minimizers.Add(new Menu::Factory::MinimizerCreator("default", DefaultMinimizer::Create));
		Menu::Factory::Hiders    .Add(new Menu::Factory::HiderCreator    ("default", DefaultHider::Create));
		Menu::Factory::Hiders    .Add(new Menu::Factory::HiderCreator    ("alpha", AlphaHider::Create));
		Menu::Factory::Minimizers.Add(new Menu::Factory::MinimizerCreator("alpha", AlphaMinimizer::Create));
	}

} }
