You.i Engine
YiScreenTransition.h
Go to the documentation of this file.
1 // © You i Labs Inc. 2000-2017. All rights reserved.
2 #ifndef _YI_SCREEN_TRANSITION_H_
3 #define _YI_SCREEN_TRANSITION_H_
4 
6 #include "framework/YiPredef.h"
8 #include "signal/YiSignal.h"
9 #include "utility/YiTime.h"
10 
12 class CYISceneManager;
14 
19 
35 {
36 public:
42  CYIScreenTransition(CYIActivityIndicatorViewController *pActivityIndicator, int32_t nMinActivityIndicatorMs);
43  virtual ~CYIScreenTransition();
44 
58 
65  void Stop();
66 
74 
82  virtual bool AreUserEventsEnabled();
83 
91  void EnableUserEvents();
92 
100  void DisableUserEvents();
101 
102  virtual bool OnFrameTimeUpdated(std::chrono::microseconds nFrameTime) override;
103  virtual bool GetDisablesInput() override;
104 
111 
116 
121 
126 
127 protected:
128 
132  virtual void OnScreenTransitionStarted() {}
133 
137  virtual void OnScreenTransitionEnded() {}
138 
144  virtual void OnUnloadAnimationComplete();
145 
150 
155 
156 private:
157  enum STATE
158  {
159  TRANSITION_STARTED,
160  TRANSITION_UNBLOCKED,
161  TRANSITION_LOADING_ANIMATION_STARTED,
162  TRANSITION_STOPPED,
163  TRANSITION_IDLE
164  };
165 
166  void StartUnloadAnimation();
167  void StartLoadAnimation();
168 
169  void OnForwardLoadAnimationComplete();
170  void OnReverseLoadAnimationComplete();
171  void End();
172 
173  void OnActivityIndicatorMinimumTimeComplete();
174  void OnActivityIndicatorEndAnimationComplete();
175  void ConfigureForCurrentState();
176 
177  CYIActivityIndicatorViewController *m_pActivityIndicatorViewController;
178  CYIAbstractScreenViewController *m_pFromController;
179  CYIAbstractScreenViewController *m_pToController;
180 
181  bool m_bUserEventsEnabled;
182  bool m_bActivityIndicatorStarted;
183  int32_t m_nMinActivityIndicatorMs;
184  STATE m_eCurrentStatus;
185 };
186 
189 #endif // _YI_SCREEN_TRANSITION_H_
virtual bool OnFrameTimeUpdated(std::chrono::microseconds nFrameTime) override
CYIAbstractScreenViewController * GetFromScreen() const
The CYIAbstractScreenViewController serves as the base to create application screen view controllers...
Definition: YiAbstractScreenViewController.h:38
CYISignal ScreenTransitionCompleted
Definition: YiScreenTransition.h:120
Scene trees composed of CYISceneNode objects are registered with the scene manager in order for them ...
Definition: YiSceneManager.h:73
void Start(CYIAbstractScreenViewController *pFromScreen, CYIAbstractScreenViewController *pToScreen)
CYISignal ScreenTransitionStopped
Definition: YiScreenTransition.h:125
virtual ~CYIScreenTransition()
The base class for an object accessible from script source code.
Definition: YiScriptableObject.h:28
CYIScreenTransition(CYIActivityIndicatorViewController *pActivityIndicator, int32_t nMinActivityIndicatorMs)
virtual bool AreUserEventsEnabled()
Definition: YiTime.h:31
void UnblockLoadingAnimation()
Performs animated transitions from one application screen to another.
Definition: YiScreenTransition.h:34
A view controller that controls a CYIActivityIndicatorView.
Definition: YiActivityIndicatorViewController.h:26
CYISignal LoadAnimationStarted
Definition: YiScreenTransition.h:115
Definition: YiSignalHandler.h:174
CYISignal UnloadAnimationCompleted
Definition: YiScreenTransition.h:110
virtual bool GetDisablesInput() override
virtual void OnScreenTransitionStarted()
Definition: YiScreenTransition.h:132
CYIAbstractScreenViewController * GetToScreen() const
virtual void OnScreenTransitionEnded()
Definition: YiScreenTransition.h:137
Signals and slots are a thread-safe and flexible communication framework that will allow various obje...
Definition: YiSignal.h:164
virtual void OnUnloadAnimationComplete()