#include "StateFactory.hpp" #include "MenuState.hpp" #include "EventState.hpp" #include "FocusState.hpp" #include "KeyState.hpp" #include "MouseClickState.hpp" #include "MouseEnterState.hpp" #include "MouseMoveState.hpp" #include "TextEnterState.hpp" #include "WindowModificationState.hpp" std::shared_ptr StateFactory::Get(EventStatus state) { return s_states[state]; } std::shared_ptr StateFactory::Get(unsigned int state) { NazaraAssert(state < s_states.size(), "State out of range"); auto it = s_states.begin(); std::advance(it, state); return it->second; } bool StateFactory::Initialize(StateContext& context) { s_states.emplace(std::make_pair(EventStatus::Menu, std::make_shared(context))); s_states.emplace(std::make_pair(EventStatus::Event, std::make_shared(context))); s_states.emplace(std::make_pair(EventStatus::Focus, std::make_shared(context))); s_states.emplace(std::make_pair(EventStatus::Key, std::make_shared(context))); s_states.emplace(std::make_pair(EventStatus::MouseClick, std::make_shared(context))); s_states.emplace(std::make_pair(EventStatus::MouseEnter, std::make_shared(context))); s_states.emplace(std::make_pair(EventStatus::MouseMove, std::make_shared(context))); s_states.emplace(std::make_pair(EventStatus::TextEnter, std::make_shared(context))); s_states.emplace(std::make_pair(EventStatus::WindowModification, std::make_shared(context))); return true; } void StateFactory::Uninitialize() { s_states.clear(); } std::map> StateFactory::s_states;