- virtual void EnterState(Application &ctrl, SDL_Surface *screen) = 0;
- virtual void ExitState() = 0;
+ virtual void OnEnterState(Application &ctrl, SDL_Surface *screen) = 0;
+ /// Do some cleanup.
+ /// Called when the state is popped from the stack.
+ virtual void OnExitState(Application &ctrl, SDL_Surface *screen) = 0;
+ /// Called when the state becomes the active one.
+ virtual void OnResumeState(Application &ctrl, SDL_Surface *screen) = 0;
+ /// Called when the state becomes inactive.
+ virtual void OnPauseState(Application &ctrl, SDL_Surface *screen) = 0;
+
+ /// Adapt the state's graphics to given dimensions.
+ /// NOTE: currently, this is only called for the stack top and not
+ /// propagated on stack changes.
+ /// Will be fixed soom ;).
+ virtual void Resize(int width, int height) = 0;