Guiliani  Version 2.6 revision 7293 (documentation build 12)
GUIAnimation.h
1/*
2* Copyright (C) TES Electronic Solutions GmbH,
3* All Rights Reserved.
4* Contact: info@guiliani.de
5*
6* This file is part of the Guiliani HMI framework
7* for the development of graphical user interfaces on embedded systems.
8*/
9
10#if !defined GUIANIMATION__H_
11#define GUIANIMATION__H_
12
13#include "GUIObject.h"
14#include "GUIStreamableObject.h"
15
16#include "GUIAnimatedAttribute.h"
17
20class CGUIObject;
21
22// @guiliani_doxygen toplevel_module Animations
39// @endguiliani_doxygen
75{
76 friend class CGUIAnimationHandler;
77
78public:
83 {
89 };
90
91public:
96 virtual void DoAnimate(const eC_Value& vTimes = eC_FromInt(1));
97
104 virtual void ApplyAnimation(eC_UInt uiElapsedTime) = 0;
105
111
116 virtual void InitAttributes() {}
117
122
127
132
137 eC_Bool IsPaused() const
138 {
139 return (m_uiExpiredTime != 0);
140 }
141
146 void SetAnimatedObject(CGUIObject* pkObject) { m_pkAnimatedObject = pkObject; }
147
152 void SetAnimatedObjectID(const ObjectHandle_t& eObject) { m_eAnimatedObject = eObject; }
153
157 CGUIObject* GetAnimatedObject() const { return m_pkAnimatedObject; }
158
162 ObjectHandle_t GetAnimatedObjectID() const { return m_eAnimatedObject; }
163
168 eC_UInt GetDuration() const;
169
174 void SetDuration(eC_UInt uiDuration);
175
179 eC_UInt GetStepTime() const { return m_uiStepTime; }
180
184 eC_UInt GetID() const { return m_uiID; }
185
191 eC_Bool IsDeletedAfterFinish() const { return m_bDeletedAfterFinish; }
192
199 void SetDeletedAfterFinish(const eC_Bool bDeletedAfterFinish)
200 {
201 m_bDeletedAfterFinish = bDeletedAfterFinish;
202 }
203
211 {
212 m_kAnimationObserver.RemoveAll();
213 m_kAnimationObserver.AddAtEnd(pkObserver);
214 }
215
222 {
223 m_kAnimationObserver.AddUnique(pkObserver);
224 }
225
231 {
232 m_kAnimationObserver.Remove(pkObserver);
233 }
234
240 {
242 }
243
244#if defined(GUILIANI_STREAM_GUI) || defined(GUILIANI_WRITE_GUI)
246 static const eC_Char XMLTAG_ANIMATIONCLASSID[];
247
249 static const eC_Char XMLTAG_ANIMATIONID[];
250
252 static const eC_Char XMLTAG_ANIMATIONSTARTTAG[];
253
255 static const eC_Char XMLTAG_ANIMATIONENDTAG[];
256#endif
257
258#ifdef GUILIANI_STREAM_GUI
260#endif
261
262#ifdef GUILIANI_WRITE_GUI
263 void WriteToStream(const eC_Bool bWriteClassID = false);
264#endif
265
269 virtual ~CGUIAnimation();
270
275
276protected:
283
293 CGUIObject* pkAnimatedObject,
294 eC_UInt uiDuration,
295 eC_UInt uiStepTime = 25,
296 eC_Bool bDeletedAfterFinish = false);
297
305 virtual void OnStatusChanged(AnimationStatus_t eStatus);
306
312
317
322 CGUIAnimatedAttribute& GetAnimatedAttribute(const eC_UInt& uiAttributeIndex) const;
323
325
326private:
327 void Init();
328
329 void SetID(const eC_UInt& uiID);
330
331private:
332 eC_UInt m_uiID;
333 eC_UInt m_uiDuration;
334 eC_UInt m_uiStepTime;
335 eC_UInt m_uiStartTime;
336 eC_UInt m_uiExpiredTime;
337
338 ObjectHandle_t m_eAnimatedObject;
339 CGUIObject* m_pkAnimatedObject;
340
342
343 eC_Bool m_bDeletedAfterFinish;
344};
345
346#endif
ObjectHandle_t
List of object resource ids.
Definition: GUIObjectHandleResource.h:55
Base interface for animation callbacks.
Definition: GUIAnimatable.h:51
This class defines a generic interface for attribute which are modified by animations.
Definition: GUIAnimatedAttribute.h:20
The AnimationHandler is the management class for animations.
Definition: GUIAnimationHandler.h:70
void SetID(CGUIAnimation *pkAnimation, const eC_UInt &uiID)
Base class for modular Guiliani animations.
Definition: GUIAnimation.h:75
ObjectHandle_t GetAnimatedObjectID() const
Definition: GUIAnimation.h:162
virtual void InitAttributes()
Definition: GUIAnimation.h:116
eC_UInt GetStepTime() const
Definition: GUIAnimation.h:179
eC_TListDoubleLinked< CGUIAnimatedAttribute > * GetAnimatedAttributes()
Definition: GUIAnimation.h:239
void ReadFromStream()
eC_Bool IsDeletedAfterFinish() const
Definition: GUIAnimation.h:191
void SetAnimationObserver(CGUIAnimationObserver *pkObserver)
Definition: GUIAnimation.h:210
void WriteToStream(const eC_Bool bWriteClassID=false)
void SetDuration(eC_UInt uiDuration)
void RemoveAnimationObserver(CGUIAnimationObserver *pkObserver)
Definition: GUIAnimation.h:230
void UpdateAnimatedObjectPointer()
CGUIAnimation(CGUIObject *pkAnimatedObject, eC_UInt uiDuration, eC_UInt uiStepTime=25, eC_Bool bDeletedAfterFinish=false)
static const eC_Char XMLTAG_ANIMATIONID[]
XML tag to be used when writing a animation ID into a stream.
Definition: GUIAnimation.h:249
virtual void DoAnimate(const eC_Value &vTimes=eC_FromInt(1))
void RemoveAnimatedAttributes()
CGUIAnimatedAttribute & GetAnimatedAttribute(const eC_UInt &uiAttributeIndex) const
void SetDeletedAfterFinish(const eC_Bool bDeletedAfterFinish)
Definition: GUIAnimation.h:199
AnimationStatus_t
Definition: GUIAnimation.h:83
@ ANIMATION_RUNNING
The animation has just started running.
Definition: GUIAnimation.h:84
@ ANIMATION_PAUSED
The animation has just been paused.
Definition: GUIAnimation.h:85
@ ANIMATION_STOPPED
The animation has stopped. Either forcefully, or because it has ended.
Definition: GUIAnimation.h:86
@ ANIMATION_FINISHED
The animation has reached its end, and does therefore finish animating.
Definition: GUIAnimation.h:87
@ ANIMATION_DELETED
The animation has been deleted.
Definition: GUIAnimation.h:88
void SetAnimatedObjectID(const ObjectHandle_t &eObject)
Definition: GUIAnimation.h:152
eC_TListDoubleLinked< CGUIAnimatedAttribute > * m_pkAnimatedAttributes
available animated attributes
Definition: GUIAnimation.h:324
void StopAnimation()
virtual ~CGUIAnimation()
void AddAnimatedAttribute(CGUIAnimatedAttribute kAnimatedAttribute)
static const eC_Char XMLTAG_ANIMATIONSTARTTAG[]
XML tag to be used when start writing CGUIAnimation information into the stream.
Definition: GUIAnimation.h:252
eC_Bool IsPaused() const
Definition: GUIAnimation.h:137
static const eC_Char XMLTAG_ANIMATIONENDTAG[]
XML tag to be used when finish writing CGUIAnimation information into the stream.
Definition: GUIAnimation.h:255
void StartAnimation()
eC_UInt GetID() const
Definition: GUIAnimation.h:184
void SetAnimatedObject(CGUIObject *pkObject)
Definition: GUIAnimation.h:146
virtual void ApplyAnimation(eC_UInt uiElapsedTime)=0
void AddAnimationObserver(CGUIAnimationObserver *pkObserver)
Definition: GUIAnimation.h:221
void PauseAnimation()
void ContinueAnimation()
virtual void OnStatusChanged(AnimationStatus_t eStatus)
static const eC_Char XMLTAG_ANIMATIONCLASSID[]
XML tag to be used when writing a animation class ID into a stream.
Definition: GUIAnimation.h:246
CGUIObject * GetAnimatedObject() const
Definition: GUIAnimation.h:157
eC_UInt GetDuration() const
This interface is used to observe the status of an animation.
Definition: GUIAnimationObserver.h:28
This is the Guiliani base class all controls are derived from.
Definition: GUIObject.h:81
Base class for streamable objects.
Definition: GUIStreamableObject.h:46
eC_Bool Remove(SafeIterator &kIter)
Definition: eC_TList_doubleLinked.h:868
eC_Bool AddUnique(const T &tValue)
Definition: eC_TList_doubleLinked.h:767
void RemoveAll()
Definition: eC_TList_doubleLinked.h:1033
void AddAtEnd(const T &tValue)
Definition: eC_TList_doubleLinked.h:670