InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
PrefsScriptProvider.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 _H_PrefsScriptProvider
25 #define _H_PrefsScriptProvider
26 
27 #include "CScriptProvider.h"
28 #include "KeyValuePair.h"
29 
35 {
36 protected:
41 
50 
54  virtual void GetObject( IScriptRequestData* data, IScript* parent ) ;
55 
59  virtual int32 GetNumObjects( const IScriptRequestData* data, IScript* parent ) ;
60 
64  virtual ErrorCode AppendNthObject( const IScriptRequestData* data, IScript* parent, int32 n, ScriptList& objectList ) ; //0-based index
65 
69  virtual ErrorCode AccessProperty( ScriptID propID, IScriptRequestData* data, IScript* script ) ;
70 
77  void DefineSingleton( const ScriptID& objectID, const ScriptID& propID, const ClassID& bossID ) ;
78 
85  virtual ErrorCode AccessSingleton( ScriptID propID, IScriptRequestData* data, IScript* parent ) ;
91  virtual bool16 CanAccessSingleton( ScriptID propID, IScript* parent ) const ;
92 
98  virtual IScript* QuerySingleton( const IScriptRequestData* data, IScript* parent, const ScriptID& propID ) ;
99 
100 private:
101  struct SingletonData
102  {
103  ScriptID fObjectID ;
104  ClassID fBossID ;
105 
106  SingletonData( ScriptID objectID, ClassID bossID ) :
107  fObjectID( objectID ), fBossID( bossID ) {}
108  bool16 operator==( const SingletonData& other ) const
109  { return ( fObjectID == other.fObjectID && fBossID == other.fBossID ) ; }
110  } ;
111  typedef K2Vector< KeyValuePair<ScriptID, SingletonData> > SingletonIDs ;
112 
113  SingletonIDs fSingletonIDs ;
114 };
115 
116 DECLARE_BASE_TYPE( SingletonScriptProvider::SingletonData ) ;
117 
123 {
124 public:
129 
137  virtual ~PrefsScriptProvider() {}
138 
139 protected:
143  virtual int32 GetNumObjects( const IScriptRequestData* data, IScript* parent ) ;
144 
148  virtual ErrorCode AppendNthObject( const IScriptRequestData* data, IScript* parent, int32 n, ScriptList& objectList ) ; //0-based index
149 
153  virtual ErrorCode AppendAllObjects( const IScriptRequestData* data, IScript* parent, ScriptList& objectList ) ;
154 
158  virtual ErrorCode AccessProperty( ScriptID propID, IScriptRequestData* data, IScript* script ) ;
159 
166  void DefinePreference( const ScriptID& objectID, const ScriptID& propID, const ClassID& bossID = kBasePrefsScriptObjectBoss ) ;
167 
174  virtual ErrorCode AccessPreference( ScriptID propID, IScriptRequestData* data, IScript* parent ) ;
180  virtual bool16 CanAccessPreference( ScriptID propID, IScript* parent ) const ;
181 
187  virtual IScript* QueryPrefScript( const IScriptRequestData* data, IScript* parent, const ScriptID& propID ) ;
188 
192  static IPMUnknown* QueryPreferences( const IScriptRequestData* data, const IScript* prefsScript, const PMIID& prefInterfaceID ) ;
193 };
194 
195 #endif /* _H_PrefsScriptProvider */