![]() |
Ember
|
Container for managing multiple scenes. More...
#include <SceneContainer.h>
Classes | |
| struct | SceneInfo |
Public Types | |
| enum class | SceneState { Active , Inactive , Loading , Error , Suspended } |
| enum class | TransitionType { Immediate , Fade , Slide , Custom } |
| using | SceneActivatedCallback = std::function<void(IScene *scene, const wxString &sceneName)> |
| using | SceneDeactivatedCallback = std::function<void(IScene *scene, const wxString &sceneName)> |
| using | SceneCreatedCallback = std::function<void(IScene *scene, const wxString &sceneName)> |
| using | SceneDestroyedCallback = std::function<void(IScene *scene, const wxString &sceneName)> |
Public Member Functions | |
| SceneContainer (wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxTAB_TRAVERSAL) | |
| virtual | ~SceneContainer () |
| bool | AddScene (std::unique_ptr< IScene > scene, const wxString &name, const wxString &description=wxEmptyString) |
| bool | RemoveScene (const wxString &name) |
| void | RemoveAllScenes () |
| IScene * | GetScene (const wxString &name) const |
| IScene * | GetActiveScene () const |
| wxString | GetActiveSceneName () const |
| std::vector< wxString > | GetSceneNames () const |
| int | GetSceneCount () const |
| void | SetSceneDescription (const wxString &name, const wxString &description) |
| wxString | GetSceneDescription (const wxString &name) const |
| void | SetSceneState (const wxString &name, SceneState state) |
| SceneState | GetSceneState (const wxString &name) const |
| void | SetScenePersistent (const wxString &name, bool persistent) |
| bool | IsScenePersistent (const wxString &name) const |
| bool | SwitchToScene (const wxString &name, TransitionType transition=TransitionType::Immediate) |
| bool | SwitchToScene (IScene *scene, TransitionType transition=TransitionType::Immediate) |
| bool | HasScene (const wxString &name) const |
| void | RefreshScene (const wxString &name) |
| void | RefreshActiveScene () |
| void | RefreshAllScenes () |
| bool | CanSwitchScene (const wxString &name) |
| void | SetSceneActivatedCallback (SceneActivatedCallback callback) |
| void | SetSceneDeactivatedCallback (SceneDeactivatedCallback callback) |
| void | SetSceneCreatedCallback (SceneCreatedCallback callback) |
| void | SetSceneDestroyedCallback (SceneDestroyedCallback callback) |
| void | SetSceneUserData (const wxString &name, void *userData) |
| void * | GetSceneUserData (const wxString &name) const |
| void | SetSceneSize (const wxString &name, const wxSize &size) |
| wxSize | GetSceneSize (const wxString &name) const |
| void | FitSceneToContainer (const wxString &name) |
| void | FitActiveSceneToContainer () |
| bool | SerializeState (wxString &data) const |
| bool | DeserializeState (const wxString &data) |
| void | SuspendInactiveScenes () |
| void | ResumeAllScenes () |
| void | SetMaxInactiveScenes (int maxScenes) |
| int | GetMaxInactiveScenes () const |
Protected Member Functions | |
| void | OnSize (wxSizeEvent &event) |
| void | OnPaint (wxPaintEvent &event) |
| void | UpdateSceneLayout () |
| void | ShowScene (const wxString &name) |
| void | HideScene (const wxString &name) |
| bool | ValidateSceneName (const wxString &name) const |
| void | NotifySceneActivated (const wxString &name) |
| void | NotifySceneDeactivated (const wxString &name) |
| void | NotifySceneCreated (const wxString &name) |
| void | NotifySceneDestroyed (const wxString &name) |
| void | PerformTransition (const wxString &fromScene, const wxString &toScene, TransitionType transition) |
| void | FadeTransition (const wxString &fromScene, const wxString &toScene) |
| void | SlideTransition (const wxString &fromScene, const wxString &toScene) |
Private Attributes | |
| std::unordered_map< wxString, SceneInfo > | m_scenes |
| SceneActivatedCallback | m_sceneActivatedCallback |
| SceneDeactivatedCallback | m_sceneDeactivatedCallback |
| SceneCreatedCallback | m_sceneCreatedCallback |
| SceneDestroyedCallback | m_sceneDestroyedCallback |
| wxString | m_activeSceneName |
| int | m_maxInactiveScenes |
| bool | m_enableTransitions |
| wxBoxSizer * | m_sizer |
Container for managing multiple scenes.
SceneContainer manages a collection of IScene instances, providing:
Only one scene can be active at a time. Inactive scenes can be suspended to reduce resource usage.
Definition at line 44 of file SceneContainer.h.
| using EmberForge::ui::SceneContainer::SceneActivatedCallback = std::function<void(IScene *scene, const wxString &sceneName)> |
Definition at line 47 of file SceneContainer.h.
| using EmberForge::ui::SceneContainer::SceneCreatedCallback = std::function<void(IScene *scene, const wxString &sceneName)> |
Definition at line 49 of file SceneContainer.h.
| using EmberForge::ui::SceneContainer::SceneDeactivatedCallback = std::function<void(IScene *scene, const wxString &sceneName)> |
Definition at line 48 of file SceneContainer.h.
| using EmberForge::ui::SceneContainer::SceneDestroyedCallback = std::function<void(IScene *scene, const wxString &sceneName)> |
Definition at line 50 of file SceneContainer.h.
|
strong |
| Enumerator | |
|---|---|
| Active | |
| Inactive | |
| Loading | |
| Error | |
| Suspended | |
Definition at line 53 of file SceneContainer.h.
|
strong |
| Enumerator | |
|---|---|
| Immediate | |
| Fade | |
| Slide | |
| Custom | |
Definition at line 56 of file SceneContainer.h.
| EmberForge::ui::SceneContainer::SceneContainer | ( | wxWindow * | parent, |
| wxWindowID | id = wxID_ANY, | ||
| const wxPoint & | pos = wxDefaultPosition, | ||
| const wxSize & | size = wxDefaultSize, | ||
| long | style = wxTAB_TRAVERSAL ) |
|
virtual |
Definition at line 19 of file SceneContainer.cpp.
| bool EmberForge::ui::SceneContainer::AddScene | ( | std::unique_ptr< IScene > | scene, |
| const wxString & | name, | ||
| const wxString & | description = wxEmptyString ) |
Definition at line 21 of file SceneContainer.cpp.
| bool EmberForge::ui::SceneContainer::CanSwitchScene | ( | const wxString & | name | ) |
Definition at line 236 of file SceneContainer.cpp.
| bool EmberForge::ui::SceneContainer::DeserializeState | ( | const wxString & | data | ) |
Definition at line 314 of file SceneContainer.cpp.
|
protected |
Definition at line 436 of file SceneContainer.cpp.
| void EmberForge::ui::SceneContainer::FitActiveSceneToContainer | ( | ) |
Definition at line 302 of file SceneContainer.cpp.
| void EmberForge::ui::SceneContainer::FitSceneToContainer | ( | const wxString & | name | ) |
Definition at line 292 of file SceneContainer.cpp.
| IScene * EmberForge::ui::SceneContainer::GetActiveScene | ( | ) | const |
Definition at line 101 of file SceneContainer.cpp.
| wxString EmberForge::ui::SceneContainer::GetActiveSceneName | ( | ) | const |
Definition at line 108 of file SceneContainer.cpp.
| int EmberForge::ui::SceneContainer::GetMaxInactiveScenes | ( | ) | const |
Definition at line 339 of file SceneContainer.cpp.
| IScene * EmberForge::ui::SceneContainer::GetScene | ( | const wxString & | name | ) | const |
Definition at line 93 of file SceneContainer.cpp.
| int EmberForge::ui::SceneContainer::GetSceneCount | ( | ) | const |
Definition at line 118 of file SceneContainer.cpp.
| wxString EmberForge::ui::SceneContainer::GetSceneDescription | ( | const wxString & | name | ) | const |
Definition at line 127 of file SceneContainer.cpp.
| std::vector< wxString > EmberForge::ui::SceneContainer::GetSceneNames | ( | ) | const |
Definition at line 110 of file SceneContainer.cpp.
| wxSize EmberForge::ui::SceneContainer::GetSceneSize | ( | const wxString & | name | ) | const |
Definition at line 281 of file SceneContainer.cpp.
| SceneContainer::SceneState EmberForge::ui::SceneContainer::GetSceneState | ( | const wxString & | name | ) | const |
Definition at line 142 of file SceneContainer.cpp.
| void * EmberForge::ui::SceneContainer::GetSceneUserData | ( | const wxString & | name | ) | const |
Definition at line 263 of file SceneContainer.cpp.
| bool EmberForge::ui::SceneContainer::HasScene | ( | const wxString & | name | ) | const |
Definition at line 213 of file SceneContainer.cpp.
|
protected |
Definition at line 368 of file SceneContainer.cpp.
| bool EmberForge::ui::SceneContainer::IsScenePersistent | ( | const wxString & | name | ) | const |
Definition at line 157 of file SceneContainer.cpp.
|
protected |
Definition at line 382 of file SceneContainer.cpp.
|
protected |
Definition at line 400 of file SceneContainer.cpp.
|
protected |
Definition at line 391 of file SceneContainer.cpp.
|
protected |
Definition at line 409 of file SceneContainer.cpp.
|
protected |
Definition at line 347 of file SceneContainer.cpp.
|
protected |
Definition at line 342 of file SceneContainer.cpp.
|
protected |
Definition at line 418 of file SceneContainer.cpp.
| void EmberForge::ui::SceneContainer::RefreshActiveScene | ( | ) |
Definition at line 222 of file SceneContainer.cpp.
| void EmberForge::ui::SceneContainer::RefreshAllScenes | ( | ) |
Definition at line 228 of file SceneContainer.cpp.
| void EmberForge::ui::SceneContainer::RefreshScene | ( | const wxString & | name | ) |
Definition at line 215 of file SceneContainer.cpp.
| void EmberForge::ui::SceneContainer::RemoveAllScenes | ( | ) |
Definition at line 80 of file SceneContainer.cpp.
| bool EmberForge::ui::SceneContainer::RemoveScene | ( | const wxString & | name | ) |
Definition at line 49 of file SceneContainer.cpp.
| void EmberForge::ui::SceneContainer::ResumeAllScenes | ( | ) |
Definition at line 328 of file SceneContainer.cpp.
| bool EmberForge::ui::SceneContainer::SerializeState | ( | wxString & | data | ) | const |
Definition at line 308 of file SceneContainer.cpp.
| void EmberForge::ui::SceneContainer::SetMaxInactiveScenes | ( | int | maxScenes | ) |
Definition at line 337 of file SceneContainer.cpp.
| void EmberForge::ui::SceneContainer::SetSceneActivatedCallback | ( | SceneActivatedCallback | callback | ) |
Definition at line 246 of file SceneContainer.cpp.
| void EmberForge::ui::SceneContainer::SetSceneCreatedCallback | ( | SceneCreatedCallback | callback | ) |
Definition at line 252 of file SceneContainer.cpp.
| void EmberForge::ui::SceneContainer::SetSceneDeactivatedCallback | ( | SceneDeactivatedCallback | callback | ) |
Definition at line 248 of file SceneContainer.cpp.
| void EmberForge::ui::SceneContainer::SetSceneDescription | ( | const wxString & | name, |
| const wxString & | description ) |
Definition at line 120 of file SceneContainer.cpp.
| void EmberForge::ui::SceneContainer::SetSceneDestroyedCallback | ( | SceneDestroyedCallback | callback | ) |
Definition at line 254 of file SceneContainer.cpp.
| void EmberForge::ui::SceneContainer::SetScenePersistent | ( | const wxString & | name, |
| bool | persistent ) |
Definition at line 150 of file SceneContainer.cpp.
| void EmberForge::ui::SceneContainer::SetSceneSize | ( | const wxString & | name, |
| const wxSize & | size ) |
Definition at line 271 of file SceneContainer.cpp.
| void EmberForge::ui::SceneContainer::SetSceneState | ( | const wxString & | name, |
| SceneState | state ) |
Definition at line 135 of file SceneContainer.cpp.
| void EmberForge::ui::SceneContainer::SetSceneUserData | ( | const wxString & | name, |
| void * | userData ) |
Definition at line 256 of file SceneContainer.cpp.
|
protected |
Definition at line 358 of file SceneContainer.cpp.
|
protected |
Definition at line 441 of file SceneContainer.cpp.
| void EmberForge::ui::SceneContainer::SuspendInactiveScenes | ( | ) |
Definition at line 319 of file SceneContainer.cpp.
| bool EmberForge::ui::SceneContainer::SwitchToScene | ( | const wxString & | name, |
| TransitionType | transition = TransitionType::Immediate ) |
Definition at line 165 of file SceneContainer.cpp.
| bool EmberForge::ui::SceneContainer::SwitchToScene | ( | IScene * | scene, |
| TransitionType | transition = TransitionType::Immediate ) |
Definition at line 204 of file SceneContainer.cpp.
|
protected |
Definition at line 353 of file SceneContainer.cpp.
|
protected |
Definition at line 378 of file SceneContainer.cpp.
|
private |
Definition at line 163 of file SceneContainer.h.
|
private |
Definition at line 165 of file SceneContainer.h.
|
private |
Definition at line 164 of file SceneContainer.h.
|
private |
Definition at line 157 of file SceneContainer.h.
|
private |
Definition at line 159 of file SceneContainer.h.
|
private |
Definition at line 158 of file SceneContainer.h.
|
private |
Definition at line 160 of file SceneContainer.h.
|
private |
Definition at line 154 of file SceneContainer.h.
|
private |
Definition at line 168 of file SceneContainer.h.