State.cpp 869 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #include "State.hpp"
  2. #include "StateStack.hpp"
  3. namespace FreeShop {
  4. State::Context::Context(cpp3ds::String& text, std::vector<char*>& data)
  5. : text(text)
  6. , data(data)
  7. {
  8. //
  9. }
  10. State::State(StateStack& stack, Context& context, StateCallback callback)
  11. : m_stack(&stack)
  12. , m_context(context)
  13. , m_callback(callback)
  14. {
  15. }
  16. State::~State()
  17. {
  18. }
  19. void State::requestStackPush(States::ID stateID, bool renderAlone, StateCallback callback)
  20. {
  21. m_stack->pushState(stateID, renderAlone, callback);
  22. }
  23. void State::requestStackPop()
  24. {
  25. m_stack->popState();
  26. }
  27. void State::requestStackClear()
  28. {
  29. m_stack->clearStates();
  30. }
  31. void State::requestStackClearUnder()
  32. {
  33. m_stack->clearStatesUnder();
  34. }
  35. bool State::runCallback(void *data)
  36. {
  37. if (m_callback)
  38. return m_callback(data);
  39. return false;
  40. }
  41. State::Context State::getContext() const
  42. {
  43. return m_context;
  44. }
  45. } // namespace FreeShop