InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
IDrawOptionOverrides Class Referenceabstract

#include <IDrawOptionOverrides.h>

Inheritance diagram for IDrawOptionOverrides:
IPMUnknown

Public Types

enum  { kDefaultIID = IID_IDRAWOPTIONOVERRIDE }
 
enum  OverrideLocation { kUseDisplayPreferences = 0, kUsePersistedSetting, kUseInMemorySetting }
 

Public Member Functions

virtual void SetDrawOptionGroup (uint32 displayOption, OverrideLocation location=kUseDisplayPreferences)=0
 
virtual uint32 GetDrawOptionGroup (OverrideLocation location=kUseDisplayPreferences) const =0
 
virtual DrawOptionsSet GetDrawOptions (OverrideLocation location=kUseDisplayPreferences) const =0
 
- Public Member Functions inherited from IPMUnknown
virtual IPMUnknownQueryInterface (PMIID interfaceID) const =0
 
virtual void AddRef () const =0
 
virtual void Release () const =0
 

Detailed Description

IDrawOptionOverrides If the IDrawOptions::GetIgnoreOverrides for the session returns kTrue, then this interface is completely ignored. If GetIgnoreOverrides returns kFalse, then this interface is used to apply a drawing preference to a page item and persist that setting. In most cases, this behavior is undesirable because it can lead to extremely bad performance in unexpected situations. For example, image placing a very complex PDF with mixed content and transparency and then applying an override to draw the PDF in High Quality mode regardless of the view setting. Then, you save and close the document and either re-open at a later date or give the document to someone else. As soon as the document is opened and the placed PDF is scrolled into view (it may already be in view), you will have to wait for InDesign to read the PDF from disk into memory, parse it into a display list which our graphics engine can use, and then RIP the display list to render it to screen. All of this reading, parsing and rendering must occur before the document is drawn for the first time. As a result, the user sits wondering what in the world is happening during Open that is taking so long. This behavior used to occur by default before InDesign CS. However, the behavior of local display overrides was changed in CS to not be persisted by default. To persist the overrides, the IDrawOptions::SetIgnoreOverrides must be called with a kFalse argument.

See Also
IDrawOptions

Member Enumeration Documentation

anonymous enum

default IID for this interface

Enumerator
kUsePersistedSetting 

The display preference determines the location of local overrides.

See Also
IDrawOptions
kUseInMemorySetting 

Local overrides saved in the document. Local overrides in memory that get lost on doc close.

Member Function Documentation

virtual uint32 IDrawOptionOverrides::GetDrawOptionGroup (OverrideLocation location = kUseDisplayPreferences) const
pure virtual

Returns the current override setting. Valid return values include.

  1. IDrawOptions::kFastGroup
  2. IDrawOptions::kTypicalGroup
  3. IDrawOptions::kHighQualityGroup
  4. IDrawOptions::kUseDefault - Indicates no override. Page item uses current view setting.
    Parameters
    location- IN: Where to get the override.
virtual DrawOptionsSet IDrawOptionOverrides::GetDrawOptions (OverrideLocation location = kUseDisplayPreferences) const
pure virtual

Returns the actual DrawOptionsSet instead of its ID.

Parameters
location- IN: Where to get the override.
virtual void IDrawOptionOverrides::SetDrawOptionGroup (uint32 displayOption,
OverrideLocation location = kUseDisplayPreferences 
)
pure virtual

Set which display option group to use as an override.

Parameters
displayOption- IN: The override. Valid values include:
  1. IDrawOptions::kFastGroup
  2. IDrawOptions::kTypicalGroup
  3. IDrawOptions::kHighQualityGroup
  4. IDrawOptions::kUseDefault - removes the override and uses the current view setting instead.
location- IN: Where to set the override.