2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
5 // Licensed under the Flora License, Version 1.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://floralicense.org/license/
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an AS IS BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
19 * @file FUiAnim_AnimationManager.h
20 * @brief This is the header file for the _AnimationManager class.
22 * This header file contains the declarations of the _AnimationManager class.
25 #ifndef _FUI_ANIM_INTERNAL_ANIMATION_MANAGER_H_
26 #define _FUI_ANIM_INTERNAL_ANIMATION_MANAGER_H_
28 #include <FOspConfig.h>
29 #include <FBaseErrorDefine.h>
30 #include <FBaseColArrayListT.h>
32 #include <FUiAnimVisualElement.h>
35 namespace Tizen { namespace Ui { namespace Animations
38 class IAnimationTransactionEventListener;
39 class IVisualElementAnimationTimingFunction;
40 class IVisualElementAnimationValueInterpolator;
41 class VisualElementAnimation;
42 class VisualElementAnimationGroup;
43 class _RootVisualElement;
44 class _TransactionNode;
46 class _AnimationManager
49 static _AnimationManager* GetInstance(void);
50 static result CreateInstance(void);
51 static void ReleaseInstance(void);
54 result AddAnimation(VisualElement& target, const Tizen::Base::String* pKeyName, VisualElementAnimation& animation);
55 result RemoveAnimation(VisualElement& target, const Tizen::Base::String& keyName);
56 void RemoveAnimationForProperty(VisualElement& target, const Tizen::Base::String& property);
57 void RemoveAllAnimations(VisualElement& target);
58 bool DoesAnimationExist(VisualElement& target, const Tizen::Base::String& keyName) const;
59 bool DoesAnimationExistForProperty(VisualElement& target, const Tizen::Base::String& keyName) const;
60 VisualElementAnimation* GetAnimationN(VisualElement& target, const Tizen::Base::String& keyName) const;
61 VisualElementAnimation* GetAnimationForPropertyN(VisualElement& target, const Tizen::Base::String& property) const;
64 int BeginTransaction(void);
65 int BeginGroupTransaction(VisualElement& target, const Tizen::Base::String* pKeyName, VisualElementAnimation& animation);
66 result CommitTransaction(void);
67 result DiscardTransaction(void);
68 result StopTransaction(int transactionId);
69 result CancelTransaction(int transactionId);
70 bool IsTransactionRunning(int transactionId) const;
71 bool IsImplicitAnimationEnabled(void) const; // OnCurrentTransaction
72 _TransactionNode* GetCurrentTransaction(bool withGroup = true) const;
73 void SetTransactionEventListener(const IAnimationTransactionEventListener* pListener);
75 void ProcessAnimationTick(void);
76 bool IsAnimating(void) const
82 _AnimationManager(void);
83 ~_AnimationManager(void);
85 _AnimationManager(const _AnimationManager&);
86 _AnimationManager& operator =(const _AnimationManager&);
88 result Construct(void);
91 void SetAnimatorEnabled(bool animating);
94 static _AnimationManager* __pInstance;
97 bool __isInAnimationTick;
99 _TransactionNode* __pRootTransaction;
100 _TransactionNode* __pCurrentTransaction;
101 _TransactionNode* __pCurrentTransactionExceptGroup;
103 IAnimationTransactionEventListener* __pDefaultTransactionEventListener;
104 const IVisualElementAnimationTimingFunction* __pDefaultTimingFunction;
105 const IVisualElementAnimationValueInterpolator* __pDefaultInterpolator;
107 friend class _DisplayManager;
108 }; // _AnimationManager
110 }}} // Tizen::Ui::Animations
112 #endif //_FUI_ANIM_INTERNAL_ANIMATION_MANAGER_H_