24 #ifndef __ICMSMANAGER__ 25 #define __ICMSMANAGER__ 30 #include "IPMUnknown.h" 31 #include "ICMSProfile.h" 33 #include "ColorMgmtID.h" 34 #include "BravoForwardDecl.h" 40 const int32 kCMSMgrHonorProfileSpace = (1L<<0);
41 const int32 kCMSMgrHonorProfileClass = (1L<<1);
42 const int32 kCMSMgrHonorProfileCategory = (1L<<2);
44 const int32 kCMSMgrIncludeStandard = (1L << 0L);
45 const int32 kCMSMgrIncludeOther = (1L << 1L);
46 const int32 kCMSMgrIncludeInternal = (1L << 2L);
47 const int32 kCMSMgrIncludeAll = (kCMSMgrIncludeStandard | kCMSMgrIncludeOther | kCMSMgrIncludeInternal);
56 fIncludeFlags(kCMSMgrIncludeAll),
57 fProfileSpace(ICMSProfile::kSpaceUnknown),
58 fProfileClass(ICMSProfile::kClassUnknown),
59 fProfileCategory(ICMSProfile::kOther) {};
62 fHonorFlags(kCMSMgrHonorProfileSpace),
63 fIncludeFlags(kCMSMgrIncludeAll),
64 fProfileSpace(theSpace),
65 fProfileClass(ICMSProfile::kClassUnknown),
66 fProfileCategory(ICMSProfile::kOther) {};
69 fHonorFlags(kCMSMgrHonorProfileClass),
70 fIncludeFlags(kCMSMgrIncludeAll),
71 fProfileSpace(ICMSProfile::kSpaceUnknown),
72 fProfileClass(theClass),
73 fProfileCategory(ICMSProfile::kOther) {};
75 CMSMgrProfileFilter(ICMSProfile::profileSpace theSpace, ICMSProfile::profileClass theClass):
76 fHonorFlags(kCMSMgrHonorProfileSpace | kCMSMgrHonorProfileClass),
77 fIncludeFlags(kCMSMgrIncludeAll),
78 fProfileSpace(theSpace),
79 fProfileClass(theClass),
80 fProfileCategory(ICMSProfile::kOther) {};
83 fHonorFlags(kCMSMgrHonorProfileCategory),
84 fIncludeFlags(kCMSMgrIncludeAll),
85 fProfileSpace(ICMSProfile::kSpaceUnknown),
86 fProfileClass(ICMSProfile::kClassUnknown),
87 fProfileCategory(theCategory) {};
90 return (fHonorFlags == x.fHonorFlags
91 && (!(fHonorFlags & kCMSMgrHonorProfileSpace) || fProfileSpace == x.fProfileSpace)
92 && (!(fHonorFlags & kCMSMgrHonorProfileClass) || fProfileClass == x.fProfileClass)
93 && (!(fHonorFlags & kCMSMgrHonorProfileCategory) || fProfileCategory == x.fProfileCategory)
94 && fIncludeFlags == x.fIncludeFlags
101 ICMSProfile::profileSpace fProfileSpace;
102 ICMSProfile::profileClass fProfileClass;
103 ICMSProfile::profileCategory fProfileCategory;
153 enum { kDefaultIID = IID_ICMSMANAGER };
157 kCMSStatusShutDown = 0,
160 kCMSStatusInitializationErrorBase = 100,
161 kCMSStatusFailedToInitializeEngine,
162 kCMSStatusFailedToInitializeCMMs,
163 kCMSStatusFailedToInitializeProfiles,
166 kCMSStatusInitializingBase = 200,
167 kCMSStatusInitializedEngine,
168 kCMSStatusInitializedCMMs,
169 kCMSStatusInitializedProfiles,
173 kCMSStatusRunning = 300
178 kCMSPolicyOff =
'off ',
179 kCMSPolicyPreserve =
'pres',
180 kCMSPolicyConvert =
'conv',
181 kCMSPolicyPDIL =
'pdil',
183 kCMSPolicyUndefined =
'undf',
185 kCMSPolicyMaxEnum = 0xFFFFFFFFL
192 virtual void Startup() = 0;
193 virtual void Shutdown() = 0;
196 virtual void AppResume() = 0;
199 virtual CMSStatus GetStatus() = 0;
201 virtual bool32 IsShutDown() = 0;
203 virtual bool32 IsInitializing() = 0;
205 virtual bool32 IsRunning() = 0;
210 virtual uint32 GetNumOfCMMs() = 0;
212 virtual bool32 GetNthCMMName(int32 index,
PMString& theName) = 0;
214 virtual bool32 UseNthCMM(int32 index) = 0;
216 virtual int32 GetActiveCMMIndex() = 0;
218 virtual bool16 GetEngineInfo(uint32 engineIndex,
PMString *engineName = nil, uint32 *engineCMS = nil, uint32 *engineCMM = nil) = 0;
219 virtual bool16 GetEngineInfo(
const PMString &engineName, uint32 *engineIndex = nil, uint32 *engineCMS = nil, uint32 *engineCMM = nil) = 0;
220 virtual bool16 GetEngineInfo(uint32 engineCMS, uint32 engineCMM, uint32 *engineIndex = nil,
PMString *engineName = nil) = 0;
235 virtual void ResetProfileListCache(int32 whichCMM = -1) = 0;
241 virtual bool32 GetSystemProfileName(
PMString& theName) = 0;
243 virtual bool16 GetDefaultProfileName(ICMSProfile::profileCategory category,
PMString &name) = 0;
258 virtual UIDRef ItemUseExternalProfile(
261 const void *pProfileData = nil,
262 const int32 profileDataSize = 0) = 0;
272 virtual UIDRef ItemUseEmbeddedProfile(
274 void *pProfileData = nil,
281 virtual bool32 ItemUseDocDefaultProfile(
const UIDRef& owningItem) = 0;
288 virtual UIDRef DocUseProfile(
290 ICMSProfile::profileCategory which,
292 const void *pProfileData = nil,
293 const int32 profileDataSize = 0) = 0;
294 virtual UIDRef DocUseProfile(
296 ICMSProfile::profileCategory which,
298 const void *pProfileData = nil,
299 const int32 profileDataSize = 0) = 0;
302 virtual ICMSProfile *QueryUsedProfile(ICMSProfile::profileCategory which,
IDocument *doc, bool32 forceSystemDefaultIfNone = kTrue) = 0;
307 virtual int32 NumUsedProfiles(
IDocument *doc) = 0;
314 virtual bool16 InstallDefaultProfile(ICMSProfile::profileCategory which,
IDocument *doc) = 0;
325 virtual bool16 VerifyDirectories() = 0;
338 virtual bool32 BeginLibraryDraw(
const UIDRef &pageItem, AGMColorProfile *pDestinationProfile = nil) = 0;
339 virtual bool32 EndLibraryDraw() = 0;
346 kInvalidSelector = 0,
353 virtual bool32 SetGlobalParameter(CMSSelector selector, int32 value) = 0;
355 virtual int32 GetGlobalParameter(CMSSelector selector) = 0;
359 virtual void DumpToDebugWindow(
IDocument* document) = 0;
363 #endif // __ICMSMANAGER__