You.i Engine
YiAbstractScreenViewController.h
Go to the documentation of this file.
1 // © You i Labs Inc. 2000-2017. All rights reserved.
2 #ifndef _YI_ABSTRACT_SCREEN_VIEW_CONTROLLER_H_
3 #define _YI_ABSTRACT_SCREEN_VIEW_CONTROLLER_H_
4 
7 #include "framework/YiApp.h"
8 #include "utility/YiBundle.h"
9 #include "view/YiViewProperty.h"
10 
15 
39 {
40 public:
41 
43  {
44  ALL,
45  LAST,
47  };
48 
57 
66  CYIAbstractScreenViewController(CYISceneManager *pSceneManager, CYIApp *pApplication);
67 
71  void SetTitle(const CYIString &title);
72 
78  CYIString GetTitle() const;
79 
95  virtual void Init() override;
96 
104  void PreloadValidate(CYIBundle bundle);
105 
116  void Preload(CYIBundle bundle, const CYIPersistentStore &StateData);
117 
129  void Load(const CYIPersistentStore &StateData);
130 
137  void StartLoadAnimations();
138 
145  void StartUnloadAnimations();
146 
156  void Unload(CYIPersistentStore &StateData);
157 
166  bool IsLoaded() const;
167 
176  bool IsInitialized() const;
177 
184  void SetBackNavigationEnabled(bool bEnabled);
185 
191  bool IsBackNavigationEnabled() const;
192 
202  void SetInboundActivityIndicatorEnabled(bool bEnabled);
203 
208 
221 
226 
233 
238 
245  void SetClearNavigationHistory(bool bClear);
246 
250  bool ShouldClearNavigationHistory() const;
251 
263 
268 
280 
285 
294 
303 
312 
320 
329 
338 
339 protected:
347  void SetScreenLoaded(bool bIsLoaded);
348 
358  void SetInitialized(bool bIsInitialized);
359 
366  virtual void OnInitScreen() {}
367 
380  virtual void OnPreloadValidateScreen(CYIBundle bundle)
381  {
382  YI_UNUSED(bundle);
383  PreloadValidateSucceeded.Emit(this);
384  }
385 
396  virtual void OnPreloadScreen(CYIBundle bundle, const CYIPersistentStore &StateData)
397  {
398  YI_UNUSED(bundle);
399  YI_UNUSED(StateData);
400  PreloadFinished.Emit(this);
401  }
402 
412  virtual void OnLoadScreen(const CYIPersistentStore &StateData) { YI_UNUSED(StateData); }
413 
423  virtual void OnUnloadScreen(CYIPersistentStore &StateData) { YI_UNUSED(StateData); }
424 
439  virtual void OnStageScreen() = 0;
440 
453  virtual void OnUnstageScreen() = 0;
454 
455 private:
456  virtual void OnBeginAnimationComplete() override;
457  virtual void OnEndAnimationComplete() override;
458 
459  CYIString m_Title;
460  bool m_bIsBackNavigationEnabled;
461  bool m_bIsInboundActivityIndicatorEnabled;
462  bool m_bIsLoaded;
463  YIViewProperty::Orientation m_eScreenOrientation;
464  NAVIGATION_HISTORY_RULE m_eNavigationHistoryRule;
465  bool m_bShouldClearNavigationHistory;
466  YIViewProperty::StatusBar m_eStatusBarVisibility;
467  YIViewProperty::NavigationBar m_eNavigationBarVisibility;
468  bool m_bIsInitialized;
469 };
470 
473 #endif // _YI_ABSTRACT_SCREEN_VIEW_CONTROLLER_H_
The CYIAbstractScreenViewController serves as the base to create application screen view controllers...
Definition: YiAbstractScreenViewController.h:38
Definition: YiPersistentStore.h:60
Scene trees composed of CYISceneNode objects are registered with the scene manager in order for them ...
Definition: YiSceneManager.h:73
void SetClearNavigationHistory(bool bClear)
void SetInboundActivityIndicatorEnabled(bool bEnabled)
Container class for Unicode strings. Conceptually, a CYIString object is a sequence of Unicode charac...
Definition: YiString.h:35
void SetInitialized(bool bIsInitialized)
YIViewProperty::StatusBar GetStatusBarVisibility() const
Definition: YiAbstractScreenViewController.h:46
void Preload(CYIBundle bundle, const CYIPersistentStore &StateData)
void SetOrientation(YIViewProperty::Orientation orientation)
virtual void OnUnloadScreen(CYIPersistentStore &StateData)
Definition: YiAbstractScreenViewController.h:423
CYISignal< CYIAbstractScreenViewController * > UnloadingAnimationCompleted
Definition: YiAbstractScreenViewController.h:302
void SetNavigationHistoryRule(NAVIGATION_HISTORY_RULE eRule)
CYIBundle represents a collection of key-value pairs.
Definition: YiBundle.h:45
void SetBackNavigationEnabled(bool bEnabled)
Definition: YiAbstractScreenViewController.h:45
virtual void OnLoadScreen(const CYIPersistentStore &StateData)
Definition: YiAbstractScreenViewController.h:412
void PreloadValidate(CYIBundle bundle)
void SetNavigationBarVisibility(YIViewProperty::NavigationBar eVisibility)
StatusBar
Definition: YiViewProperty.h:23
NAVIGATION_HISTORY_RULE GetNavigationHistoryRule() const
void Emit(const typename std::decay< SignalTypes >::type &...params) const
The base class for a view controller, responsible for displaying a view.
Definition: YiViewController.h:22
NavigationBar
Definition: YiViewProperty.h:29
void Unload(CYIPersistentStore &StateData)
CYISignal< CYIAbstractScreenViewController * > LoadingAnimationCompleted
Definition: YiAbstractScreenViewController.h:293
virtual void OnUnstageScreen()=0
virtual void Init() override
YIViewProperty::NavigationBar GetNavigationBarVisibility() const
void SetScreenLoaded(bool bIsLoaded)
#define YI_UNUSED(param)
Definition: YiPredef.h:85
bool IsInboundActivityIndicatorEnabled() const
virtual void OnInitScreen()
Definition: YiAbstractScreenViewController.h:366
void SetStatusBarVisibility(YIViewProperty::StatusBar eVisibility)
void Load(const CYIPersistentStore &StateData)
NAVIGATION_HISTORY_RULE
Definition: YiAbstractScreenViewController.h:42
virtual void OnPreloadScreen(CYIBundle bundle, const CYIPersistentStore &StateData)
Definition: YiAbstractScreenViewController.h:396
CYISignal< CYIAbstractScreenViewController * > PreloadFinished
Definition: YiAbstractScreenViewController.h:319
YIViewProperty::Orientation GetOrientation() const
bool ShouldClearNavigationHistory() const
CYISignal< CYIAbstractScreenViewController *, CYIBundle > PreloadValidateFailed
Definition: YiAbstractScreenViewController.h:337
CYISignal< CYIAbstractScreenViewController * > PreloadValidateSucceeded
Definition: YiAbstractScreenViewController.h:328
void SetTitle(const CYIString &title)
Definition: YiAbstractScreenViewController.h:44
virtual void OnPreloadValidateScreen(CYIBundle bundle)
Definition: YiAbstractScreenViewController.h:380
Orientation
Definition: YiViewProperty.h:12
The base class for all applications.
Definition: YiApp.h:43
CYISignal< CYIAbstractScreenViewController * > UnloadCompleted
Definition: YiAbstractScreenViewController.h:311