6#include <unordered_map>
72 SceneContainer(wxWindow *parent, wxWindowID
id = wxID_ANY,
const wxPoint &pos = wxDefaultPosition,
73 const wxSize &size = wxDefaultSize,
long style = wxTAB_TRAVERSAL);
77 bool AddScene(std::unique_ptr<IScene> scene,
const wxString &name,
const wxString &description = wxEmptyString);
99 bool HasScene(
const wxString &name)
const;
118 void SetSceneSize(
const wxString &name,
const wxSize &size);
135 void OnSize(wxSizeEvent &event);
136 void OnPaint(wxPaintEvent &event);
150 void FadeTransition(
const wxString &fromScene,
const wxString &toScene);
151 void SlideTransition(
const wxString &fromScene,
const wxString &toScene);
170 DECLARE_EVENT_TABLE()
std::function< void(IScene *scene, const wxString &sceneName)> SceneCreatedCallback
void HideScene(const wxString &name)
void OnPaint(wxPaintEvent &event)
wxSize GetSceneSize(const wxString &name) const
void * GetSceneUserData(const wxString &name) const
SceneCreatedCallback m_sceneCreatedCallback
std::function< void(IScene *scene, const wxString &sceneName)> SceneDestroyedCallback
void RefreshActiveScene()
void SetSceneDeactivatedCallback(SceneDeactivatedCallback callback)
int GetMaxInactiveScenes() const
void NotifySceneDestroyed(const wxString &name)
void FitSceneToContainer(const wxString &name)
void SetSceneState(const wxString &name, SceneState state)
IScene * GetActiveScene() const
bool SerializeState(wxString &data) const
SceneContainer(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxTAB_TRAVERSAL)
void SetMaxInactiveScenes(int maxScenes)
void SetSceneSize(const wxString &name, const wxSize &size)
SceneDeactivatedCallback m_sceneDeactivatedCallback
void OnSize(wxSizeEvent &event)
void NotifySceneCreated(const wxString &name)
void ShowScene(const wxString &name)
void SetSceneUserData(const wxString &name, void *userData)
SceneDestroyedCallback m_sceneDestroyedCallback
virtual ~SceneContainer()
int GetSceneCount() const
bool SwitchToScene(const wxString &name, TransitionType transition=TransitionType::Immediate)
void SetSceneActivatedCallback(SceneActivatedCallback callback)
void SuspendInactiveScenes()
bool DeserializeState(const wxString &data)
SceneState GetSceneState(const wxString &name) const
bool HasScene(const wxString &name) const
IScene * GetScene(const wxString &name) const
wxString GetActiveSceneName() const
void SlideTransition(const wxString &fromScene, const wxString &toScene)
bool RemoveScene(const wxString &name)
void FadeTransition(const wxString &fromScene, const wxString &toScene)
wxString GetSceneDescription(const wxString &name) const
bool CanSwitchScene(const wxString &name)
std::unordered_map< wxString, SceneInfo > m_scenes
void NotifySceneDeactivated(const wxString &name)
void FitActiveSceneToContainer()
std::function< void(IScene *scene, const wxString &sceneName)> SceneActivatedCallback
void SetSceneDestroyedCallback(SceneDestroyedCallback callback)
void SetSceneDescription(const wxString &name, const wxString &description)
SceneActivatedCallback m_sceneActivatedCallback
void PerformTransition(const wxString &fromScene, const wxString &toScene, TransitionType transition)
void RefreshScene(const wxString &name)
void SetScenePersistent(const wxString &name, bool persistent)
bool ValidateSceneName(const wxString &name) const
wxString m_activeSceneName
void SetSceneCreatedCallback(SceneCreatedCallback callback)
bool AddScene(std::unique_ptr< IScene > scene, const wxString &name, const wxString &description=wxEmptyString)
bool IsScenePersistent(const wxString &name) const
std::function< void(IScene *scene, const wxString &sceneName)> SceneDeactivatedCallback
std::vector< wxString > GetSceneNames() const
void NotifySceneActivated(const wxString &name)
Interface for scene-based UI components (e.g., views or screens).
SceneInfo(std::unique_ptr< IScene > s, const wxString &name)
std::unique_ptr< IScene > scene