Guiliani  Version 2.5 revision 7293 (documentation build 13)
GUIAnimationHandler.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#ifndef GUIANIMATIONHANDLER__H_
11#define GUIANIMATIONHANDLER__H_
12
13#include "GUIComponentManager.h"
14
15#define GETANIMATIONHDL CGUIComponentManager::GetInstance().GetAnimationHandler()
16
17#include "eC_Types.h"
18
19#ifdef GUILIANI_ANIMATION_ACTIVE
20
22#include "GUIAnimation.h"
23#include "eC_TList_doubleLinked.h"
24
25class CGUIObject;
28
30const eC_Int ANIMATIONS_FILE_VERSION = 1;
31
70{
71 friend class CGUIAnimation;
72 friend class CGUIAnimationChain;
73 friend class CGUILoadAnimationsCmd;
74 friend class CGUIComponentManager;
75
76public:
80 {
83 };
84
87
90
91public:
94 static void CreateInstance();
95
98 static void DeleteInstance();
99
103 void DeInit();
104
110 void NotifyOfDestruction(CGUIObject* pkDeletedObject);
111
117
123
130
136 CGUIAnimation* GetAnimation(eC_UInt uiID) const;
137
144
151
158
164 eC_Bool ObjHasAnimations(const CGUIObject* pkObjToCheck) const;
165
171 AnimationPtrList GetAnimations(const CGUIObject* pkObjToCheck) const;
172
177 void StartAnimationChain(const eC_UInt& uiID);
178
183
188 void StopAnimationChain(const eC_UInt& uiID);
189
194
199 void StopAllAnimations(CGUIObject* pkAnimatedObject);
200
205
210 void SetDeletionPolicy(const DeletionPolicy_t& eDeletionPolicy);
211
217
222 void SetDefaultSteptime(const eC_UInt& uiDefaultStepTime);
223
228 eC_UInt GetDefaultStepTime() const;
229
234 void AssignNewId(CGUIAnimation* pkAnimation);
235
240 void AssignNewId(CGUIAnimationChain* pkAnimationChain);
241
247 void SetID(CGUIAnimation* pkAnimation, const eC_UInt& uiID);
248
254 void SetID(CGUIAnimationChain* pkAnimationChain, const eC_UInt& uiID);
255
261 eC_Bool RemoveAnimation(const AnimationHandle_t& eAnimation);
262
263#ifdef GUILIANI_STREAM_GUI
269 eC_Bool ReadAnimationsFromFile(const eC_String& rkPath);
270
273#endif
274
275#ifdef GUILIANI_WRITE_GUI
281 eC_Bool WriteAnimationsToFile(const eC_String& rkPath);
282
285#endif
286
287private:
292
297
306 eC_UInt AddAnimation(CGUIAnimation* pkNewAnimation);
307
312 eC_UInt GenerateAnimationId();
313
318 eC_UInt GenerateAnimationChainId();
319
324 void AddAnimationInternal(CGUIAnimation* pkNewAnimation);
325
335 eC_UInt AddAnimationChain(CGUIAnimationChain* pkAnimationChain);
336
342 void AddAnimationChainInternal(CGUIAnimationChain* pkAnimationChain);
343
350 eC_Bool RemoveAnimation(CGUIAnimation* pkAnimationToRemove);
351
358 eC_Bool RemoveAnimationChain(CGUIAnimationChain* pkAnimationChainToRemove);
359
364 void RemoveAllAnimations(CGUIObject* pkAnimatedObject);
365
369 void RemoveAllAnimations();
370
374 void RemoveAllAnimationChains();
375
376private:
377 AnimationPtrList m_kAnimations;
378 AnimationChainPtrList m_kAnimationChains;
379 DeletionPolicy_t m_eDeletionPolicy;
380 eC_UInt m_uiDefaultStepTime;
381};
382
383#else
384
385class CGUIObject;
386class CGUIAnimation;
389
390// minimum implementation
392{
393public:
396 static void CreateInstance();
397
400 static void DeleteInstance();
401
402 void DeInit() {}
403
404 void NotifyOfDestruction(CGUIObject* pkDeletedObject) {}
405 void NotifyOfDestruction(CGUIAnimation* pkAnimation) {}
406 void NotifyOfDestruction(CGUIAnimationChain* pkAnimationChain) {}
407 void NotifyOfDestruction(CGUIAnimationObserver* pkObserver) {}
408
409 void StartAnimationChain(const eC_UInt& uiID) {}
411 void StopAnimationChain(const eC_UInt& uiID) {}
412 void StopAllAnimationChains() {}
413 void StopAllAnimations(CGUIObject* pkAnimatedObject) {}
414 void StopAllAnimations() {}
415
416private:
418};
419#endif
420
421#endif
Helper Macros in Guiliani
AnimationHandle_t
List of animation resource ids.
Definition: GUIAnimationResource.h:49
An AnimationChain is a combination of several independent animations.
Definition: GUIAnimationChain.h:66
The AnimationHandler is the management class for animations.
Definition: GUIAnimationHandler.h:70
eC_Bool RemoveAnimation(const AnimationHandle_t &eAnimation)
void NotifyOfDestruction(CGUIObject *pkDeletedObject)
eC_Bool WriteAnimationsToFile(const eC_String &rkPath)
void NotifyOfDestruction(CGUIAnimation *pkAnimation)
void SetID(CGUIAnimation *pkAnimation, const eC_UInt &uiID)
void AssignNewId(CGUIAnimationChain *pkAnimationChain)
DeletionPolicy_t GetDeletionPolicy() const
void NotifyOfDestruction(CGUIAnimationChain *pkAnimationChain)
void StartAnimationChain(const eC_UInt &uiID)
CGUIAnimationChain * GetAnimationChain(eC_UInt uiID) const
static void DeleteInstance()
void SetID(CGUIAnimationChain *pkAnimationChain, const eC_UInt &uiID)
static void CreateInstance()
void SetDefaultSteptime(const eC_UInt &uiDefaultStepTime)
CGUIAnimation * GetAnimation(eC_UInt uiID) const
AnimationPtrList GetAnimationsOfObject(const CGUIObject *pkObject)
void StopAllAnimations(CGUIObject *pkAnimatedObject)
AnimationPtrList GetAnimations(const CGUIObject *pkObjToCheck) const
void NotifyOfDestruction(CGUIAnimationObserver *pkObserver)
void SetDeletionPolicy(const DeletionPolicy_t &eDeletionPolicy)
DeletionPolicy_t
Definition: GUIAnimationHandler.h:80
@ DP_STOP
stop the animation
Definition: GUIAnimationHandler.h:81
@ DP_REMOVE
remove the animation
Definition: GUIAnimationHandler.h:82
eC_TListDoubleLinked< CGUIAnimation * > AnimationPtrList
The animation pointer list is a double-linked list of animation pointers.
Definition: GUIAnimationHandler.h:86
eC_UInt GetDefaultStepTime() const
void StartAllAnimationChains()
const AnimationChainPtrList * GetAnimationChains(void) const
void AssignNewId(CGUIAnimation *pkAnimation)
eC_TListDoubleLinked< CGUIAnimationChain * > AnimationChainPtrList
The animation chain pointer list is a double-linked list of animation chain pointers.
Definition: GUIAnimationHandler.h:89
eC_Bool ReadAnimationsFromFile(const eC_String &rkPath)
void StopAnimationChain(const eC_UInt &uiID)
eC_Bool ObjHasAnimations(const CGUIObject *pkObjToCheck) const
Base class for modular Guiliani animations.
Definition: GUIAnimation.h:75
This interface is used to observe the status of an animation.
Definition: GUIAnimationObserver.h:28
central component-manager
Definition: GUIComponentManager.h:62
Loads animations and animation chains from a file and deletes all existing ones.
Definition: GUILoadAnimationsCmd.h:30
This is the Guiliani base class all controls are derived from.
Definition: GUIObject.h:79