InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ISplineUtils.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 __ISplineUtils__
25 #define __ISplineUtils__
26 
27 #include "SplineID.h"
28 #include "IPMUnknown.h"
29 #include "Utils.h"
30 
31 #include "IShape.h"
32 #include "PMPathPoint.h"
33 #include "PMRect.h"
34 #include "HitTestDragConstants.h"
35 
36 class ICommand;
37 class IControlView;
38 class IPathGeometry;
39 class IGraphicFrameData;
40 class ITextModel;
41 class UIDList;
42 
45 #define kInvalidParameter -1.0
46 
47 
51 class ISplineUtils : public IPMUnknown
52 {
53 public:
54  enum { kDefaultIID = IID_ISPLINEUTILS };
55 
60  virtual void FilterMakeCompoundPathList( UIDList& selectedItems ) = 0;
61 
66  virtual void FilterReleaseCompoundPathList( UIDList& selectedItems ) = 0;
67 
68 
75  virtual void StripTOPSpline( const UIDList &itemList, UIDList *pNewItemList, bool16 bReplaceByMainIfNeeded = kFalse ) = 0;
76 
82  virtual ICommand* CreateCopySubPathPipelineCmd( const UIDRef& pathItem, int32 pathIndex ) = 0;
83 
95  virtual PMRect ComputeInnerContentBBox( const IGraphicFrameData* gfd ) = 0;
96 
97 
107  virtual void GetInnerContentBoundsData( const IGraphicFrameData* gfd,
108  PMRect* pTextInset,
109  PMReal* pStrokeWeight,
110  int32* pStrokeAlignment,
111  PMReal* pEffectiveStrokeWeight = nil ) = 0;
112 
127  virtual void ComputeMinimumInnerDimensionsFor(PMReal leftTextInset,
128  PMReal topTextInset,
129  PMReal rightTextInset,
130  PMReal bottomTextInset,
131  PMReal strokeWeight,
132  int32 strokeAlignment,
133  PMReal* pSplineLeftWidth,
134  PMReal* pSplineTopHeight,
135  PMReal* pSplineRightWidth,
136  PMReal* pSplineBottomHeight) = 0;
137 
138 
160  virtual bool16 ComputeInnerContentBounds(const PMRect& splinePathBBox,
161  PMReal leftTextInset,
162  PMReal topTextInset,
163  PMReal rightTextInset,
164  PMReal bottomTextInset,
165  PMReal strokeWeight,
166  int32 strokeAlignment,
167  PMReal* pInnerPathLeft,
168  PMReal* pInnerPathTop,
169  PMReal* pInnerPathRight,
170  PMReal* pInnerPathBottom) = 0;
171 
172 
173 };
174 
175 
176 #endif // __ISplineUtils__
177