#ifndef __STATEFACTORY_HPP__ #define __STATEFACTORY_HPP__ #include #include #include class StateContext; enum class EventStatus { Min = 0, Menu, Event, Focus, Key, MouseClick, MouseEnter, MouseMove, TextEnter, WindowModification, Max = WindowModification }; class StateFactory { public: static std::shared_ptr Get(EventStatus state); static std::shared_ptr Get(unsigned int state); static bool Initialize(StateContext& stateContext); static void Uninitialize(); private: static std::map> s_states; }; #endif // __STATEFACTORY_HPP__