InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
IGraphicStateAccessor.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: Michael_Martz
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 _IGraphicStateAccessor_
25 #define _IGraphicStateAccessor_
26 //========================================================================================
27 //________________________________________________________________________________________
28 // INCLUDES
29 //________________________________________________________________________________________
30  #include "IPMUnknown.h"
31  #include "GraphicStylesID.h"
32 //========================================================================================
33 //________________________________________________________________________________________
34 // CLASS DECLARATION
35 //
36 // NOTE:
37 // There are two implementations of this interface. One is added to the
38 // workspace (session and document) to make the workspace's graphic state object
39 // persistent. The second is created by the graphic state context observer and
40 // is added to the active context. This is a session based object (database = nil),
41 // and therefore is non-persistent.
42 //
43 // Originally, there was just the workspace based accessor which was also
44 // added to the active context. Unfortunately, this forced the workspace object
45 // to be held in memory, which prevented the purging of unneeded plugins.
46 //________________________________________________________________________________________
47 
51  {
52  //____________________________________________________________________________________
53  // Data Types
54  //____________________________________________________________________________________
55  public:
56  enum { kDefaultIID = IID_IGRAPHICSTATE_ACCESSOR};
57 
58  //____________________________________________________________________________________
59  // Accessor memeber functions
60  //____________________________________________________________________________________
61  public:
62 
65  virtual UID GetGraphicStateUID (void) = 0;
69  virtual void SetGraphicStateUID (UID gfxStateUID) = 0;
70 
73  virtual UIDRef GetOwningWorkspace (void) = 0;
74 
78  virtual void SetOwningWorkspace (const UIDRef& workspaceRef) = 0;
79 
84  virtual IPMUnknown* QueryGraphicStateInterface (const PMIID& interfaceIID) = 0;
85  };
86 
87 #endif // _IGraphicStateAccessor_