You.i Engine
YiViewController.h
Go to the documentation of this file.
1 // © You i Labs Inc. 2000-2017. All rights reserved.
2 #ifndef _YI_VIEW_CONTROLLER_H_
3 #define _YI_VIEW_CONTROLLER_H_
4 
5 #include "animation/YiTimeline.h"
6 #include "view/YiSceneView.h"
9 
10 class CYISceneManager;
11 
16 
23 {
24 public:
30  CYIViewController(CYISceneManager *pSceneManager);
31 
37  CYIViewController(CYISceneManager *pSceneManager, CYISceneView *pView);
38  virtual ~CYIViewController();
39 
46  virtual void Init();
52  virtual void UpdateView();
53 
58  virtual void Begin();
59 
65  virtual void End();
66 
72  void SetViewLoaded(bool bIsLoaded);
73 
77  virtual bool IsViewLoaded() const;
78 
84  void SetClearFocus(bool bClearFocus);
85 
89  bool ShouldClearFocus() const;
90 
95  virtual CYISceneNode* GetSceneRoot() const;
96 
102  virtual void OnBeginAnimationComplete();
103 
109  virtual void OnEndAnimationComplete();
110 
111 protected:
112 
117  {
118  public:
123  {
126  };
127 
128  TimelineHelper();
129  virtual ~TimelineHelper();
130 
136  void SetAnimation(CYIAbstractTimeline *pAnimation, ANIMATION_DIRECTION eDirection);
137 
143  void Start();
144 
145  public:
152 
153  private:
154  void OnAnimationEnd();
155 
156  CYIAbstractTimeline *m_pAnimation;
157  ANIMATION_DIRECTION m_eAnimationDirection;
158  };
159 
163  virtual void BuildTimelines();
164 
171 
178 
183 
184 private:
192  virtual CYISceneView *BuildView() = 0;
193 
194  TimelineHelper m_BeginAnimation;
195  TimelineHelper m_EndAnimation;
196 
197  bool m_bClearFocus;
198  bool m_bIsViewLoaded;
199 };
200 
203 #endif // _YI_VIEW_CONTROLLER_H_
The base class for the timeline framework.
Definition: YiAbstractTimeline.h:29
CYIAbstractTimeline * m_pAnimationOut
Definition: YiViewController.h:182
void SetViewLoaded(bool bIsLoaded)
Scene trees composed of CYISceneNode objects are registered with the scene manager in order for them ...
Definition: YiSceneManager.h:73
The base class for all view types. Views are containers of renderable elements that often define inte...
Definition: YiSceneView.h:47
void SetClearFocus(bool bClearFocus)
virtual ~CYIViewController()
virtual void OnEndAnimationComplete()
Definition: YiViewController.h:125
The base class for an object accessible from script source code.
Definition: YiScriptableObject.h:28
CYISignal AnimationCompleted
Definition: YiViewController.h:151
void SetEndAnimation(CYIAbstractTimeline *pAnimation, TimelineHelper::ANIMATION_DIRECTION eDirection)
The base class for a view controller, responsible for displaying a view.
Definition: YiViewController.h:22
CYIViewController(CYISceneManager *pSceneManager)
void SetAnimation(CYIAbstractTimeline *pAnimation, ANIMATION_DIRECTION eDirection)
CYIAbstractTimeline * m_pAnimationIn
Definition: YiViewController.h:181
virtual void UpdateView()
CYISceneView * m_pView
Definition: YiViewController.h:180
A scene node is the base type for all nodes which are used by the scene manager; it is an integral pa...
Definition: YiSceneNode.h:114
Helper class used to start the begin and end animations of the CYIViewController. ...
Definition: YiViewController.h:116
bool ShouldClearFocus() const
virtual void BuildTimelines()
virtual void Init()
virtual void End()
Definition: YiSignalHandler.h:174
CYISceneManager * m_pSceneManager
Definition: YiViewController.h:179
virtual CYISceneNode * GetSceneRoot() const
ANIMATION_DIRECTION
Definition: YiViewController.h:122
Definition: YiViewController.h:124
virtual void Begin()
Signals and slots are a thread-safe and flexible communication framework that will allow various obje...
Definition: YiSignal.h:164
void SetBeginAnimation(CYIAbstractTimeline *pAnimation, TimelineHelper::ANIMATION_DIRECTION eDirection)
virtual void OnBeginAnimationComplete()
virtual bool IsViewLoaded() const