InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
IScriptUtils.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 __IScriptUtils__
25 #define __IScriptUtils__
26 
27 #include "IPMUnknown.h"
28 #include "IScriptLabel.h"
29 #include "IScriptPreferences.h"
30 #include "IScriptRunner.h"
31 
32 #include "ScriptInfo.h"
33 #include "Utils.h"
34 
35 class ICommand ;
36 class IDocument ;
37 class IScript ;
38 class IScriptEvent ;
39 class IScriptManager ;
40 class IScriptRequestData ;
41 class IScriptInfoManager ;
43 class ScriptObject ;
44 
49 #define keyStringPrefix "$ID/"
50 // The wide char version
51 #define keyStringPrefixW L"$ID/"
52 
54 
55 namespace ScriptInfo
56 {
57 class ObjectScriptElement ;
58 }
59 
60 using namespace ScriptInfo ;
61 
62 
63 class IScriptUtils : public IPMUnknown
64 {
65 public:
66  enum { kDefaultIID = IID_ISCRIPTUTILS };
67 
71  virtual IScript* QueryApplicationScript() const = 0;
72 
76  virtual IScriptInfoManager* QueryScriptInfoManager( const RequestContext& context ) const = 0 ;
77 
81  virtual IScriptRequestHandler* QueryScriptRequestHandler( const RequestContext& context ) const = 0 ;
82 
86  virtual void GetScriptManagers( ScriptManagerList& mgrs ) const = 0 ;
87 
91  virtual IScriptManager* QueryScriptManager( ClassID boss ) const = 0 ;
92 
97  virtual IScriptRunner* QueryScriptRunner( const IDFile& ) const = 0 ;
98 
102  virtual bool16 IsScriptActive() = 0 ;
103 
107  virtual bool16 IsINX( const RequestContext& context ) = 0 ;
108  virtual bool16 IsINX() = 0 ;
109 
113  virtual bool16 IsINXTraditional( const RequestContext& context ) = 0 ;
114 
118  virtual bool16 IsINXExpanded( const RequestContext& context ) = 0 ;
119 
123  virtual bool16 IsINXExport( const RequestContext& context ) = 0 ;
124 
128  virtual PMString GetScriptID( const ScriptID& scriptID ) = 0;
129 
133  virtual IScript* CreateProxyScriptObject( const RequestContext& context, const ClassID& classID, const ScriptID& objectID, const IPMUnknown* parent, int32 index = 0 ) = 0 ;
134 
138  virtual void ReleaseAllObjectsInDatabase( IDataBase* db ) const = 0;
139 
146  virtual IWorkspace* QueryWorkspaceFromScript( const IScript* script, const RequestContext& context ) = 0 ;
147 
154  virtual IDocument* QueryDocumentFromScript( const IScript* script, const RequestContext& context ) = 0 ;
155 
175  virtual ErrorCode ExtractInsertionLocation( IScript* inScript, IScriptRequestData* inData, const ScriptID& objectType, ScriptID& outLocation, InterfacePtr<IScript>& outScript ) = 0 ;
176 
182  virtual ErrorCode GetMoveLocation( const IScriptRequestData* inData, ScriptID& outLocation, InterfacePtr<IScript>& outScript ) = 0 ;
183 
187  virtual bool16 IsNothing( const ScriptData& scriptData ) = 0 ;
188 
197  virtual ErrorCode GenerateSpecifier( const EngineContext& context, const IScript* object, PMString& specifier, SpecifierForm form = kFormDefault ) = 0 ;
198 
208  virtual ErrorCode GenerateSpecifier( const EngineContext& context, const IScript* object, PMString& workSpaceSpecifier, PMString& objectSpecifier, SpecifierForm form = kFormDefault ) = 0 ;
209 
218  virtual ErrorCode GenerateListSpecifier( const EngineContext& context, const ScriptList& objects, PMString& specifier, SpecifierForm form = kFormDefault ) = 0 ;
219 
228  virtual ErrorCode GenerateRangeSpecifier( const EngineContext& context, const PMString& fromSpecifier, const PMString& toSpecifier, PMString& specifier ) = 0 ;
229 
237  virtual ErrorCode AppendSpecifier( const EngineContext& context, const ScriptInfo::ObjectScriptElement* objectScriptElement, const ScriptObject& scriptObject, PMString& specifier ) = 0 ;
238 
245  virtual ErrorCode ResolveSpecifier( const EngineContext& context, const PMString& specifier, ScriptList& resolvedObjects ) = 0 ;
246 
254  virtual ErrorCode ResolveSpecifier( const EngineContext& context, const PMString& workSpaceSpecifier, const PMString& objectSpecifier, ScriptList& resolvedObjects ) = 0 ;
255 
256  /*
257  Find a common base object for two types of objects.
258  @param si1 is the first type of object
259  @param si2 is the second type of object
260  @return the object info for their common base object or nil if there isn't one
261  */
262  virtual const ObjectScriptElement* GetCommonBaseInfo( const ObjectScriptElement* si1, const ObjectScriptElement* si2 ) const = 0 ;
263 
269  virtual ErrorCode GetScriptingSupportFolder( const RequestContext& context, IDFile& outFolder ) const = 0 ;
270 
275  virtual void AppendDirectoryForDOMVersion( const RequestContext& context, IDFile& sysFile ) const = 0 ;
276 
284  virtual ErrorCode SetScriptingTag( const ScriptList& scriptList, const EngineContext& context,
285  const IScriptLabel::ScriptLabelValue& label,
296  virtual ErrorCode SetScriptingTags( const ScriptList& scriptList, const EngineContext& context,
298  bool16 replaceExistingLabels = kFalse ) const = 0 ;
299 
309  virtual ErrorCode GetScriptsFolder( IDFile& scriptsFolder, bool16 resolveAlias ) const = 0 ;
310 
317  virtual ErrorCode ExtractVersion( IScriptRequestData* data, ScriptVersion& internalVersion ) const = 0 ;
318 
336  virtual ErrorCode DispatchScriptRunner( IScriptRunner* scriptRunner, const ScriptData& script,
337  const ScriptRecordData& arguments, ScriptData& result,
338  PMString& errorString, const bool16 showErrorAlert,
339  const bool16 invokeDebugger = kFalse,
341  const PMString& undoName = PMString(),
342  const ScriptVersion& domVersion = ScriptVersion() ) const = 0 ;
343 
349  virtual void ClearScriptProviders() const = 0 ;
350 
355  virtual ErrorCode SetAppScriptPrefs( bool16 redraw ) const = 0 ;
356 
363  virtual bool16 TranslateKeyStringFromScriptClient( PMString& s ) const = 0 ;
364 
371  virtual void DisableIdleProcessingDuringScripts() = 0 ;
372 
376  virtual void EnableIdleProcessingDuringScripts() = 0 ;
377 
382  virtual bool16 IsIdleProcessingEnabledDuringScripts() const = 0 ;
383 
403  virtual ErrorCode DispatchScriptRunner( IScriptRunner* scriptRunner, const ScriptData& script, bool16 evalStringAsFilePath,
404  const ScriptRecordData& arguments, ScriptData& result,
405  PMString& errorString, const bool16 showErrorAlert,
406  const bool16 invokeDebugger = kFalse,
408  const PMString& undoName = PMString(),
409  const ScriptVersion& domVersion = ScriptVersion() ) const = 0 ;
410 };
411 
420 {
421 public:
423  {
425  }
427  {
428  Utils<IScriptUtils>()->EnableIdleProcessingDuringScripts() ;
429  }
430 } ;
431 
432 #endif // __IScriptUtils__