InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
IFlattenerSettings.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: Greg St. Pierre
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 __IFlattenerSettings__
25 #define __IFlattenerSettings__
26 
27 #include "IPMUnknown.h"
28 #include "XPID.h"
29 #include "IGenericSettings.h"
30 
31 const PMReal kMinFlattenerLevel (0.0);
32 const PMReal kMaxFlattenerLevel (1.0);
33 
35 {
36 public:
37  enum { kDefaultIID = IID_IXPFLATTENERSETTINGS };
38 
39  // Flattener overrides (only applies on a spread)
40  enum
41  {
42  kOverrideEnable = (1L<<0),
43  kOverrideLevel = (1L<<1),
44  kOverrideInternalDPI = (1L<<2),
45  kOverrideExternalDPI = (1L<<3),
46  kOverrideMapDPI = (1L<<4),
47  kOverridePathDPI = (1L<<5)
48  };
49  // Get/Set field overrides (kOverride*)
50  virtual uint32 GetFlattenerOverrides() const = 0;
51  virtual void SetFlattenerOverrides(uint32 overrides) = 0;
52  // Get/Set flag overrides (kFlOpt*)
53  virtual uint32 GetFlagOverrides() const = 0;
54  virtual void SetFlagOverrides(uint32 overrides) = 0;
55 
56  // Defeats flattener altogether
57  virtual bool32 IsFlattenerEnabled() const = 0;
58  virtual void SetFlattenerEnabled(bool32 enabled) = 0;
59 
60  // Range: 1 (rasterize everything) to 5 (rasterize minimally). Default is 3.
61  enum FlattenerLevel
62  {
63  kLow = 1,
64  kMedLow,
65  kMedium,
66  kMedHigh,
67  kHigh
68  };
69 
70  virtual PMReal GetFlattenerLevel() const = 0;
71  virtual void SetFlattenerLevel(PMReal level) = 0;
72 
73  // This is the new, preferred method for obtaining flattener level. It uses
74  // a UI scale of 0 to 100, though the actual stored number here is 0 to 1.
75  virtual FlattenerLevel GetOldFlattenerLevel() const = 0;
76  virtual void SetOldFlattenerLevel(FlattenerLevel level) = 0;
77 
78  enum
79  {
80  kFlOptUseTextOutlines = (1L<<0),
81  kFlOptkAllowShadingOutput = (1L<<1),
82  kFlOptkAllowLevel3ShadingOutput = (1L<<2),
83  kFlOptkUseTransparentBackground = (1L<<3),
84  kFlOptkConvertStrokeToFill = (1L<<4),
85  kFlOptkPlanarizeOpaqueRegions = (1L<<5),
86  kFlOptkInterleavedFlattening = (1L<<6),
87  kFlOptkClipComplexRegions = (1L<<7)
88  };
89 
90  virtual int32 GetFlattenerFlags() const = 0;
91  virtual void SetFlattenerFlags(int32 flags) = 0;
92 
93  // Flattener rasterizing resolutions: These determine the DPI used within
94  // the flattener when rasterizing. Note: a value of 0 for any of the following
95  // DPIs means "auto." This means that either the default or a value based on
96  // the resolution and line screen of the device is used, assuming it's known.
97  //
98  // - Internal DPI: Used for smoothshades. Default is 150.
99  virtual PMReal GetFlattenerInternalDPI() const = 0;
100  virtual void SetFlattenerInternalDPI(PMReal dpi) = 0;
101  // - External DPI: Used for edges. Default is 300.
102  virtual PMReal GetFlattenerExternalDPI() const = 0;
103  virtual void SetFlattenerExternalDPI(PMReal dpi) = 0;
104  // - Map DPI: Used for the hash map of the page. Default is 2 dpi.
105  virtual PMReal GetFlattenerMapDPI() const = 0;
106  virtual void SetFlattenerMapDPI(PMReal dpi) = 0;
107  // - Path DPI: Used for rasterizing paths? Default is 800.
108  virtual PMReal GetFlattenerPathDPI() const = 0;
109  virtual void SetFlattenerPathDPI(PMReal dpi) = 0;
110 
111  // Convenience method
112  virtual void Copy(IFlattenerSettings const *other) = 0;
113 
114  // retrieve a generalized form of the settings.
115  virtual IGenericSettings* GetSettings() const = 0;
116 
117  // is it equal
118  virtual bool16 Equals(IFlattenerSettings const* pOther) = 0;
119 };
120 
121 
122 // settings for defaults. Used in both new ws responder and in ui for spread overrides.
123 #define XPDefaultFlatStyle_ExternalLow 288.0
124 #define XPDefaultFlatStyle_InternalLow 144.0
125 #define XPDefaultFlatStyle_OldLevelLow IFlattenerSettings::kMedHigh
126 #define XPDefaultFlatStyle_LevelLow 0.75
127 #define XPDefaultFlatStyle_FlagsLow IFlattenerSettings::kFlOptkConvertStrokeToFill
128 
129 #define XPDefaultFlatStyle_ExternalMed 300.0
130 #define XPDefaultFlatStyle_InternalMed 150.0
131 #define XPDefaultFlatStyle_OldLevelMed IFlattenerSettings::kMedHigh
132 #define XPDefaultFlatStyle_LevelMed 0.75
133 #define XPDefaultFlatStyle_FlagsMed ( IFlattenerSettings::kFlOptkConvertStrokeToFill | IFlattenerSettings::kFlOptkClipComplexRegions )
134 
135 #define XPDefaultFlatStyle_ExternalHigh 1200.0
136 #define XPDefaultFlatStyle_InternalHigh 300.0
137 #define XPDefaultFlatStyle_OldLevelHigh IFlattenerSettings::kHigh
138 #define XPDefaultFlatStyle_LevelHigh 1.0
139 #define XPDefaultFlatStyle_FlagsHigh IFlattenerSettings::kFlOptkClipComplexRegions
140 
141 #define XPDefaultFlatStyle_ExternalLowJp 300.0
142 #define XPDefaultFlatStyle_InternalLowJp 150.0
143 #define XPDefaultFlatStyle_ExternalMedJp 400.0
144 #define XPDefaultFlatStyle_InternalMedJp 200.0
145 #define XPDefaultFlatStyle_ExternalHighJp 1200.0
146 #define XPDefaultFlatStyle_InternalHighJp 400.0
147 
148 #endif