OLD | NEW |
| (Empty) |
1 /* libs/graphics/animator/SkDisplayable.h | |
2 ** | |
3 ** Copyright 2006, The Android Open Source Project | |
4 ** | |
5 ** Licensed under the Apache License, Version 2.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 | |
8 ** | |
9 ** http://www.apache.org/licenses/LICENSE-2.0 | |
10 ** | |
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. | |
16 */ | |
17 | |
18 #ifndef SkDisplayable_DEFINED | |
19 #define SkDisplayable_DEFINED | |
20 | |
21 #include "SkOperand.h" | |
22 #ifdef SK_DEBUG | |
23 #include "SkString.h" | |
24 #endif | |
25 #include "SkIntArray.h" | |
26 #include "SkRect.h" | |
27 #include "SkTDArray.h" | |
28 | |
29 class SkAnimateMaker; | |
30 class SkApply; | |
31 class SkEvents; | |
32 struct SkMemberInfo; | |
33 struct SkScriptValue; | |
34 class SkOpArray; // compiled scripting experiment | |
35 union SkOperand2; // compiled scripting experiment | |
36 | |
37 class SkDisplayable { | |
38 public: | |
39 #ifdef SK_DEBUG | |
40 SkDisplayable(); | |
41 #endif | |
42 virtual ~SkDisplayable(); | |
43 virtual bool add(SkAnimateMaker& , SkDisplayable* child); | |
44 virtual bool canContainDependents() const; | |
45 virtual bool childrenNeedDisposing() const; | |
46 virtual void clearBounder(); | |
47 virtual bool contains(SkDisplayable* ); | |
48 virtual SkDisplayable* contains(const SkString& ); | |
49 virtual SkDisplayable* deepCopy(SkAnimateMaker* ); | |
50 virtual void dirty(); | |
51 #ifdef SK_DUMP_ENABLED | |
52 virtual void dump(SkAnimateMaker* ); | |
53 void dumpAttrs(SkAnimateMaker* ); | |
54 void dumpBase(SkAnimateMaker* ); | |
55 void dumpChildren(SkAnimateMaker* maker, bool closedAngle = false ); | |
56 void dumpEnd(SkAnimateMaker* ); | |
57 virtual void dumpEvents(); | |
58 #endif | |
59 virtual bool enable( SkAnimateMaker& ); | |
60 virtual void enableBounder(); | |
61 virtual void executeFunction(SkDisplayable* , int functionIndex, | |
62 SkTDArray<SkScriptValue>& , SkDisplayTypes , SkScriptValue* ); | |
63 void executeFunction(SkDisplayable* , const SkMemberInfo* , | |
64 SkTypedArray* , SkScriptValue* ); | |
65 virtual void executeFunction2(SkDisplayable* , int functionIndex, | |
66 SkOpArray* params , SkDisplayTypes , SkOperand2* ); // compiled scriptin
g experiment | |
67 virtual void getBounds(SkRect* ); | |
68 virtual const SkFunctionParamType* getFunctionsParameters(); | |
69 virtual const SkMemberInfo* getMember(int index); | |
70 virtual const SkMemberInfo* getMember(const char name[]); | |
71 const SkFunctionParamType* getParameters(const SkMemberInfo* info, | |
72 int* paramCount); | |
73 virtual SkDisplayable* getParent() const; | |
74 virtual bool getProperty(int index, SkScriptValue* value) const; | |
75 virtual bool getProperty2(int index, SkOperand2* value) const; // compile
d scripting experiment | |
76 virtual SkDisplayTypes getType() const; | |
77 virtual bool hasEnable() const; | |
78 bool isAnimate() const { | |
79 SkDisplayTypes type = getType(); | |
80 return type == SkType_Animate || type == SkType_Set; } | |
81 bool isApply() const { return getType() == SkType_Apply; } | |
82 bool isColor() const { return getType() == SkType_Color; } | |
83 virtual bool isDrawable() const; | |
84 bool isGroup() const { return getType() == SkType_Group || | |
85 getType() == SkType_Save || getType() == SkType_DrawTo || | |
86 getType() == SkType_SaveLayer; } | |
87 bool isMatrix() const { return getType() == SkType_Matrix; } | |
88 virtual bool isPaint() const { return getType() == SkType_Paint; } | |
89 virtual bool isPath() const { return false; } | |
90 bool isPost() const { return getType() == SkType_Post; } | |
91 virtual void onEndElement(SkAnimateMaker& ); | |
92 virtual const SkMemberInfo* preferredChild(SkDisplayTypes type); | |
93 virtual bool resolveIDs(SkAnimateMaker& maker, SkDisplayable* original, SkAp
ply* ); | |
94 virtual void setChildHasID(); | |
95 virtual bool setParent(SkDisplayable* ); | |
96 virtual bool setProperty(int index, SkScriptValue& ); | |
97 void setReference(const SkMemberInfo* info, SkDisplayable* ref); | |
98 #ifdef SK_DEBUG | |
99 bool isData() const { return getType() == SkType_Data; }; | |
100 bool isEvent() const { return getType() == SkType_Event; } | |
101 virtual bool isMatrixPart() const { return false; } | |
102 bool isPatch() const { return getType() == SkType_3D_Patch; } | |
103 virtual bool isPaintPart() const { return false; } | |
104 virtual bool isPathPart() const { return false; } | |
105 virtual void validate(); | |
106 SkString _id; | |
107 const char* id; | |
108 // static int fAllocationCount; | |
109 static SkTDDisplayableArray fAllocations; | |
110 #else | |
111 void validate() {} | |
112 #endif | |
113 #ifdef SK_DUMP_ENABLED | |
114 private: | |
115 void dumpValues(const SkMemberInfo* info, SkDisplayTypes type, SkOperand op,
SkOperand blankOp, | |
116 SkOperand op2, SkOperand blankOp2); | |
117 #endif | |
118 }; | |
119 | |
120 #endif // SkDisplayable_DEFINED | |
OLD | NEW |