InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
IPageItemScriptUtils.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: Bernd Paradies
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 __IPageItemScriptUtils__
25 #define __IPageItemScriptUtils__
26 
27 #include "GenericID.h"
28 #include "IPMUnknown.h"
29 #include "TransformTypes.h"
30 #include "Utils.h"
31 
32 #include "PMPathPoint.h"
33 #include "ScriptData.h"
34 #include "IReferencePointData.h"
35 
36 class IHierarchy;
37 class IScriptRequestData;
38 class ITextModel ;
39 class DOMAttributeValue;
40 class PMMatrix;
41 
43 
49 {
50 public:
51  enum { kDefaultIID = IID_IPAGEITEMSCRIPTUTILS };
52 
53  typedef enum
54  {
55  kParentOnly = 0, // Always include the parents only
56  kChildrenOnly, // Always include the children only
57  kParentAndChildren, // Always include both the parents and the children
58  kChildrenIfNotParent // If the parent supports it, just get the parent. If not, look into the children
59  } MatchingPIOption;
60 
62  virtual ScriptID GetPageItemType( const IScript* script ) const = 0;
63 
65  virtual int32 CountPageItemChildren( IScript* parent, const IScriptRequestData* data ) const = 0;
67  virtual UID GetNthPageItemChild( int32 piIndex, IScript* parent, const IScriptRequestData* data ) const = 0; //0-based index
69  virtual UIDList GetEveryPageItemChild( IScript* parent, const IScriptRequestData* data, bool16 allChildren = kFalse) const = 0;
71  virtual ErrorCode GetNthPageItemChild( int32 piIndex, IScript* parent, const IScriptRequestData* data, ScriptList& objectList ) const = 0; //0-based index
73  virtual ErrorCode GetEveryPageItemChild( IScript* parent, const IScriptRequestData* data, ScriptList& objectList, bool16 allChildren = kFalse ) const = 0;
74 
76  virtual void GetListOfInlines( ITextModel* model, TextIndex start, TextIndex end, UIDList* itemList, const IScriptRequestData* data, bool16 checkLastCharacter = kTrue, bool16 allChildren = kFalse) const = 0;
77 
78  typedef ErrorCode (*CreatePageItemFunc)( IScriptRequestData* data, IScript* script, IPMUnknown* parent, const PMPointList& bounds, UIDRef& pageItem, const Transform::CoordinateSpace& boundsSpace ) ;
79  virtual ErrorCode DoCreatePageItem( IScriptRequestData* data, IScript* script, CreatePageItemFunc callbackFunction ) const = 0 ;
80  virtual ErrorCode PreparePageItemParent( IScriptRequestData* data, IPMUnknown* parent, UIDRef& parentRef ) const = 0;
81 
82  virtual UID GetComposedLayerUID(IHierarchy* pageItem, const RequestContext& context, bool16 useLastFrameIfOverset = kFalse) const = 0 ;
83  virtual UID GetComposedSpreadUID(IHierarchy* pageItem, const RequestContext& context, bool16 useLastFrameIfOverset = kFalse) const = 0 ;
84 
85  virtual ErrorCode GetReferencePoint( IScript* pageItem, PMPoint* refPoint, IScriptRequestData* data = nil) const = 0;
86 
93  virtual ErrorCode GetSpreadOffsetPoint(IScript* pageItem, const RequestContext& context, PMPoint& offset) const = 0;
94 
102  virtual ErrorCode GetOffsetPoint(IScript* script, IScriptRequestData* data, PMPoint& offset) const = 0;
103 
109  virtual ErrorCode GetMeasurementPoint(ScriptListData& list, IScript* script, IScriptRequestData* data, PMPoint& point) const = 0;
111  virtual ErrorCode GetCoordinates( const ScriptData& scriptData, PMPoint& coordinates, IScript* script, const EngineContext& context ) const = 0 ;
112 
114  virtual bool16 IsEditable( IPMUnknown* pageItem ) const = 0;
115  virtual int32 FilterByGraphicAttribute( UIDList& piList, ClassID attr ) const = 0;
116 
117  virtual IScript* QueryPageItemParent( const IScript* script, const RequestContext& context ) const = 0;
118 
122  virtual ErrorCode GetMatchingPageItems(const RequestContext& context, ScriptList* inPageItems, ScriptList* outPageItems, PMIID iidToLookFor, MatchingPIOption whatToInclude) const = 0;
123 
124  virtual ErrorCode GetDefaultReferencePosition(const UIDList& itemList, IReferencePointData::ReferencePointPosition& refPosition) const = 0;
125  virtual ErrorCode GetDefaultReferenceLocation(const UIDList& itemList, ReferencePointLocation& refLocation) const = 0;
126 
136  virtual ErrorCode AccessItemGeometry(IScriptRequestData* data, IScript* script, bool32 applyToTextWrap) = 0;
137 
148  virtual ErrorCode AccessPathGeometry(ScriptID propID, IScriptRequestData* data, IScript* script, bool32 applyToTextWrap) = 0;
149 
157  virtual ErrorCode AccessBoundingBox(ScriptID propID, IScriptRequestData* data, IScript* script) = 0;
158 
166  virtual ErrorCode AccessGraphicBounds(ScriptID propID, IScriptRequestData* data, IScript* script) = 0;
167 
173  virtual ErrorCode GetItemLayerMatrix(IPMUnknown *item, PMMatrix &m) const = 0;
174 
180  virtual ErrorCode SetItemGeometryMatrix(const PMMatrix &m, DOMAttributeValue &g) const = 0;
181 
190  virtual ErrorCode AccessItemTransform(IScriptRequestData* data, IScript* script, bool32 applyToTextWrap) = 0;
191 };
192 
193 #endif // __IPageItemScriptUtils__