InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
IXPPageItemDrawSetup.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: Matt Phillips
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 // Description:
24 // A page item may implement this interface, in which case the interface will be
25 // responsible for setting up the transparency attributes (opacity, blend mode, knockout
26 // group, isolation group).
27 //
28 //========================================================================================
29 
30 #ifndef __IXPPageItemDrawSetup__
31 #define __IXPPageItemDrawSetup__
32 
33 #include "IPMUnknown.h"
34 #include "XPID.h"
35 #include "BravoForwardDecl.h"
36 
37 class GraphicsData;
38 
40 {
41 public:
42  enum { kDefaultIID = IID_IXPPAGEITEMDRAWSETUP };
43 
44  // BeginObject()
45  // EndObject()
46  // -------------
47  // These allow you full control over the setup and teardown of the xp
48  // attributes. Return true to indicate that you've done the setup, false
49  // to have the default setup applied (in which case you'll be called for
50  // the isolation space, below). Note: these are called even when the
51  // display preferences are for transparency "off". So be sure to check
52  // for that case if you want to follow the existing conventions.
53  virtual bool32 BeginObject(GraphicsData* gd, int32 flags) = 0;
54  virtual bool32 EndObject(GraphicsData* gd, int32 flags) = 0;
55 
56  // GetIsolationSpace()
57  // ReleaseIsolationSpace()
58  // -----------------------
59  // For an isolation group, these are called to get the iso blend space.
60  // Return nil to GetIsolationSpace to use the document blending space.
61  virtual AGMColorSpace* GetIsolationSpace() = 0;
62  virtual void ReleaseIsolationSpace(AGMColorSpace*) = 0;
63 };
64 
65 
66 #endif