InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ICommand.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: Roey Horns
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 // Reviewed: 10/06/98
24 //
25 //========================================================================================
26 
27 #ifndef __ICOMMAND__
28 #define __ICOMMAND__
29 
30 #include "IPMUnknown.h"
31 #include "CommandID.h"
32 
33 class PMString;
34 class UIDList;
35 
62 class ICommand : public IPMUnknown
63 {
64 public:
65  enum { kDefaultIID = IID_ICOMMAND };
66 
67  //====================================================================================
68  // methods and typedefs for clients and implementors of commands
69  //====================================================================================
70 
76  virtual void GetName(PMString *name) const = 0;
77 
81  virtual void SetName(const PMString& newName) = 0;
82 
90  virtual bool16 IsNameRequired() const = 0;
91 
97  virtual const UIDList* GetItemList() const = 0;
98 
103  virtual const UIDList& GetItemListReference() const = 0;
104 
109  virtual void SetItemList(const UIDList &newItemList) = 0;
110 
116  typedef enum
117  {
124  } CommandState;
125 
126 
131  virtual CommandState GetCommandState() const = 0;
132 
137  virtual bool16 IsDone() const = 0;
138 
145  typedef enum
146  {
151 
156 
157  } Undoability;
158 
162  virtual Undoability GetUndoability() const = 0;
163 
173  virtual void SetUndoability(Undoability newUndoability) = 0;
174 
177  enum {
179  kUniqueCreatorID = ~(int32)0,
183  };
189  virtual void SetCreatorID(int32 creatorID) = 0;
190 
194  virtual int32 GetCreatorID() const = 0;
195 
207 
208  //====================================================================================
209  // methods and typedefs for implementors of commands only
210  // (see also the base class Command.h)
211  //====================================================================================
212 
218  virtual bool16 CanJoin( const ICommand *pNewCmd ) const= 0;
219 
223  virtual bool16 LowMemIsOK() const = 0;
224 
225  //====================================================================================
226  // for internal use only
227  //======================================n=============================================
228  // Not exposing these to Doc++ since they're for internal use only
229  //====================================================================================
230  typedef UIDRef Target;
231 
232  virtual const Target &GetTarget() const = 0;
233  virtual void DoImmediate(bool16 isDynamic = kFalse) = 0;
234  virtual void LWDoImmediate() = 0;
235  virtual void SetActive(bool16 isActive) = 0;
236  virtual bool16 IsActive() const = 0;
237  virtual bool8 IsLWProcessed() const = 0;
238 };
239 
240 #endif // __ICOMMAND__
241