InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
CScript.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: Jonathan W. Brown
6 //
7 // $Author$
8 //
9 // $DateTime$
10 //
11 // $Revision$
12 //
13 // $Change$
14 //
15 // Copyright 1997-2010 Adobe Systems Incorporated. All rights reserved.
16 //
17 // NOTICE: Adobe permits you to use, modify, and distribute this file in accordance
18 // with the terms of the Adobe license agreement accompanying it. If you have received
19 // this file from a source other than Adobe, then your use, modification, or
20 // distribution of it requires the prior written permission of Adobe.
21 //
22 //========================================================================================
23 
24 #ifndef __CScript__
25 #define __CScript__
26 
27 #include "IScript.h"
28 
29 class CScript : public CPMUnknown<IScript>
30 {
31 public:
32  CScript( IPMUnknown* boss ) ;
33  ~CScript();
34 
36  virtual ScriptID GetObjectType( const RequestContext& context ) const = 0 ;
37 
39  virtual bool16 IsObjectType( const ScriptID& type, const RequestContext& context ) const ;
40  virtual bool16 IsObjectType( const ScriptElementID& type, const RequestContext& context ) const ;
41 
43  virtual const ObjectScriptElement* GetObjectInfo( const RequestContext& context ) const ;
44 
51  virtual void SetObjectType( const ScriptID& type, const RequestContext& context ) ;
52 
56  virtual IDataBase* GetDataBase( const RequestContext& context ) const ;
57 
59  virtual ScriptObject GetScriptObject( const RequestContext& context ) const ;
60 
62  virtual IPMUnknown* QueryParent( const PMIID& iid, const RequestContext& context ) const = 0 ;
63 
65  virtual bool16 HasBeenDeleted( const RequestContext& context ) ;
66 
68  virtual bool16 IsEqual( const IScript* script, const RequestContext& context ) const;
69 
75  virtual void RegisterClientObject( ScriptClientObject* clientObject ) ;
82  virtual void UnregisterClientObject( ScriptClientObject* clientObject ) ;
86  virtual void NotifyClientObjectsToReleaseMe() ;
87 
91  virtual void SetTag( const ScriptLabelValue& string ) ;
93  virtual ScriptLabelValue GetTag() const ;
94 
99  virtual void SetTag( const ScriptLabelKey& key, const ScriptLabelValue& value ) ;
104  virtual ScriptLabelValue GetTag( const ScriptLabelKey& key ) const ;
105 
107  virtual void SetTags( const ScriptLabelKeyValueList& labels ) ;
109  virtual ScriptLabelKeyValueList GetTags() const ;
110 
112  virtual void ClearTags() ;
113 
115  virtual void ReadWrite(IPMStream *s, ImplementationID prop);
116 
117 private:
118  ScriptLabelKeyValueList fLabels;
119  K2Vector<ScriptClientObject*> fClientObjects ; //not persisted
120 
121 #ifdef DEBUG
122  bool16 fBDidConversion;
123 #endif
124 };
125 
126 inline void K2Write(IPMStream* stream, const CScript::ScriptLabelKeyValuePair& kvp)
127 {
128  PMString& keyStr = const_cast<PMString&>(kvp.Key());
129  keyStr.ReadWrite(stream);
130  PMString& valStr = const_cast<PMString&>(kvp.Value());
131  valStr.ReadWrite(stream);
132 }
133 
134 inline void K2Read(IPMStream* stream, CScript::ScriptLabelKeyValuePair& kvp)
135 {
136  kvp.Key().ReadWrite(stream);
137  kvp.Value().ReadWrite(stream);
138 }
139 
140 
141 
142 #endif