InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
CScriptRunner.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 __CScriptRunner__
25 #define __CScriptRunner__
26 
27 #include "CPMUnknown.h"
28 #include "IScriptRunner.h"
29 
30 #include "AcquireModalCursor.h"
31 
32 class IScriptCoreFunctor ;
33 
34 
38 class CScriptRunner : public CPMUnknown<IScriptRunner>
39 {
40 public:
42  virtual ~CScriptRunner() {}
43 
44  //edge implementations
45  virtual bool16 CanHandleFile(const IDFile& idFile) const = 0;
46  virtual ErrorCode RunFile(const IDFile& idFile, const RunScriptParams& params ) = 0;
47  virtual ErrorCode RunScript(const PMString& scriptText, const RunScriptParams& params ) = 0;
48  virtual ErrorCode InvokeFunction( const IScriptCoreFunctor* scriptFunction, const RunScriptParams& params ) = 0 ;
49  virtual PMString GetScriptDescription(const IDFile& idFile) const = 0;
50  virtual PMRsrcID GetFileIcon(const IDFile& idFile) const = 0;
51  virtual ErrorCode CancelScriptExecution() const = 0;
60  virtual ErrorCode DefineGlobal( void* scriptContext, const PMString& name, const ScriptData& value ) = 0 ;
61 
62  //platform implementations
63  virtual ErrorCode EditFile(const IDFile& idFile) const ;
64  virtual ErrorCode ShowFile(const IDFile& idFile) const ;
65  virtual bool16 CheckForUserCancel() const ;
66  virtual ErrorCode HandleIdleTasks() const ;
67 
68  //core implementations
69  virtual ErrorCode ProcessScheduledCmds() const ;
70  virtual bool16 ScriptHasDescription( const IDFile& idFile ) const ;
71  virtual void SetScriptRunning( bool16 scriptRunning, const IDFile& runningScript )
72  { fScriptRunning = scriptRunning ; fRunningScript = runningScript ; }
73  virtual bool16 IsScriptRunning() const { return fScriptRunning ; }
74  virtual ErrorCode GetRunningScriptFile(IDFile& idFile) const ;
75 
76  virtual ErrorCode DisplayErrorMessage( ErrorCode errorNumber, //must != kSuccess
77  const PMString& errorString, //must != ""
78  int32 lineNumber, //1-based index (ignored if == 0)
79  const PMString& sourceCode, //ignored if == ""
80  const PMString& offendingText, //ignored if == ""
81  const IDFile& scriptFile //ignored if empty
82  ) const ;
83 
84 protected:
85  virtual ErrorCode AddArguments( void* scriptContext, IScriptRequestData* data ) ;
86 
87 private:
88  bool16 fScriptRunning;
89  IDFile fRunningScript;
90 };
91 
92 //Stack-based class to SetScriptRunning at beginning and end of running a script
94 {
95 public:
96  ScriptRunning( CScriptRunner* scriptRunner, const RunScriptParams& params, const IDFile& scriptFile );
97  ScriptRunning( CScriptRunner* scriptRunner, const RunScriptParams& params, const PMString& scriptText );
98  ScriptRunning( CScriptRunner* scriptRunner, const RunScriptParams& params, const IScriptCoreFunctor* scriptFunc );
99  ~ScriptRunning();
100 
101 private:
102  void InitScriptRunning( const RunScriptParams& params, const IDFile& runningScript ) ;
103 
104 private:
105  CScriptRunner* fScriptRunner ;
106  bool16 fPreviousRunning ;
107  IDFile fPreviousFile ;
108  ScriptVersion fPreviousVersion ;
109  bool16 fRunningAsSingleUndoStep ;
110  AcquireDelayedBusyCursor fWaitCursor ;
111 } ;
112 
113 
114 #endif