Thu, 15 Jan 2015 15:55:04 +0100
Back out 97036ab72558 which inappropriately compared turds to third parties.
2 /*
3 * Copyright 2006 The Android Open Source Project
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 */
10 #ifndef SkDisplayable_DEFINED
11 #define SkDisplayable_DEFINED
13 #include "SkOperand.h"
14 #ifdef SK_DEBUG
15 #include "SkString.h"
16 #endif
17 #include "SkIntArray.h"
18 #include "SkRect.h"
19 #include "SkTDArray.h"
21 class SkAnimateMaker;
22 class SkApply;
23 class SkEvents;
24 struct SkMemberInfo;
25 struct SkScriptValue;
26 class SkOpArray; // compiled scripting experiment
27 union SkOperand2; // compiled scripting experiment
29 class SkDisplayable {
30 public:
31 #ifdef SK_DEBUG
32 SkDisplayable();
33 #endif
34 virtual ~SkDisplayable();
35 virtual bool addChild(SkAnimateMaker& , SkDisplayable* child);
36 virtual bool canContainDependents() const;
37 virtual bool childrenNeedDisposing() const;
38 virtual void clearBounder();
39 virtual bool contains(SkDisplayable* );
40 virtual SkDisplayable* contains(const SkString& );
41 virtual SkDisplayable* deepCopy(SkAnimateMaker* );
42 virtual void dirty();
43 #ifdef SK_DUMP_ENABLED
44 virtual void dump(SkAnimateMaker* );
45 void dumpAttrs(SkAnimateMaker* );
46 void dumpBase(SkAnimateMaker* );
47 void dumpChildren(SkAnimateMaker* maker, bool closedAngle = false );
48 void dumpEnd(SkAnimateMaker* );
49 virtual void dumpEvents();
50 #endif
51 virtual bool enable( SkAnimateMaker& );
52 virtual void enableBounder();
53 virtual void executeFunction(SkDisplayable* , int functionIndex,
54 SkTDArray<SkScriptValue>& , SkDisplayTypes , SkScriptValue* );
55 void executeFunction(SkDisplayable* , const SkMemberInfo* ,
56 SkTypedArray* , SkScriptValue* );
57 virtual void executeFunction2(SkDisplayable* , int functionIndex,
58 SkOpArray* params , SkDisplayTypes , SkOperand2* ); // compiled scripting experiment
59 virtual void getBounds(SkRect* );
60 virtual const SkFunctionParamType* getFunctionsParameters();
61 virtual const SkMemberInfo* getMember(int index);
62 virtual const SkMemberInfo* getMember(const char name[]);
63 const SkFunctionParamType* getParameters(const SkMemberInfo* info,
64 int* paramCount);
65 virtual SkDisplayable* getParent() const;
66 virtual bool getProperty(int index, SkScriptValue* value) const;
67 virtual bool getProperty2(int index, SkOperand2* value) const; // compiled scripting experiment
68 virtual SkDisplayTypes getType() const;
69 virtual bool hasEnable() const;
70 bool isAnimate() const {
71 SkDisplayTypes type = getType();
72 return type == SkType_Animate || type == SkType_Set; }
73 bool isApply() const { return getType() == SkType_Apply; }
74 bool isColor() const { return getType() == SkType_Color; }
75 virtual bool isDrawable() const;
76 bool isGroup() const { return getType() == SkType_Group ||
77 getType() == SkType_Save || getType() == SkType_DrawTo ||
78 getType() == SkType_SaveLayer; }
79 bool isMatrix() const { return getType() == SkType_Matrix; }
80 virtual bool isPaint() const { return getType() == SkType_Paint; }
81 virtual bool isPath() const { return false; }
82 bool isPost() const { return getType() == SkType_Post; }
83 virtual void onEndElement(SkAnimateMaker& );
84 virtual const SkMemberInfo* preferredChild(SkDisplayTypes type);
85 virtual bool resolveIDs(SkAnimateMaker& maker, SkDisplayable* original, SkApply* );
86 virtual void setChildHasID();
87 virtual bool setParent(SkDisplayable* );
88 virtual bool setProperty(int index, SkScriptValue& );
89 void setReference(const SkMemberInfo* info, SkDisplayable* ref);
90 #ifdef SK_DEBUG
91 bool isDataInput() const { return getType() == SkType_DataInput; };
92 bool isEvent() const { return getType() == SkType_Event; }
93 virtual bool isMatrixPart() const { return false; }
94 bool isPatch() const { return getType() == SkType_3D_Patch; }
95 virtual bool isPaintPart() const { return false; }
96 virtual bool isPathPart() const { return false; }
97 virtual void validate();
98 SkString _id;
99 const char* id;
100 // static int fAllocationCount;
101 static SkTDDisplayableArray fAllocations;
102 #else
103 void validate() {}
104 #endif
105 #ifdef SK_DUMP_ENABLED
106 private:
107 void dumpValues(const SkMemberInfo* info, SkDisplayTypes type, SkOperand op, SkOperand blankOp,
108 SkOperand op2, SkOperand blankOp2);
109 #endif
110 };
112 #endif // SkDisplayable_DEFINED