00001 /* 00002 Copyright (C) 2005-2006 Feeling Software Inc. 00003 MIT License: http://www.opensource.org/licenses/mit-license.php 00004 */ 00005 00011 #ifndef _FCD_EFFECT_CODE_H_ 00012 #define _FCD_EFFECT_CODE_H_ 00013 00014 #include "FCDocument/FCDObject.h" 00015 00016 class FCDocument; 00017 00031 class FCDEffectCode : public FCDObject 00032 { 00033 public: 00035 enum Type 00036 { 00037 INCLUDE, 00038 CODE 00039 }; 00040 00041 private: 00042 DeclareObjectType; 00043 00044 Type type; 00045 string sid; 00046 fstring code; 00047 fstring filename; 00048 00049 public: 00054 FCDEffectCode(FCDocument* document); 00055 00059 ~FCDEffectCode(); 00060 00063 inline Type GetType() const { return type; } 00064 00069 inline void SetType(Type _type) { type = _type; } 00070 00074 const string& GetSid() const { return sid; } 00075 00079 void SetSid(const string& _sid) { sid = _sid; } 00080 00085 const fstring& GetCode() const { return code; } 00086 00090 void SetCode(const fstring& _code) { code = _code; type = CODE; } 00091 00096 const fstring& GetFilename() const { return filename; } 00097 00101 void SetFilename(const fstring& _filename) { filename = _filename; type = INCLUDE; } 00102 00105 FCDEffectCode* Clone() const; 00106 00112 FUStatus LoadFromXML(xmlNode* codeNode); 00113 00117 xmlNode* WriteToXML(xmlNode* parentNode) const; 00118 }; 00119 00120 #endif // _FCD_EFFECT_CODE_H_