InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
IPathEndStroker.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: jargast
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 // Defines the interface for end cap drawing.
24 //
25 //========================================================================================
26 
27 #ifndef __IPathEndStroker__
28 #define __IPathEndStroker__
29 
30 #include "IPMUnknown.h"
31 #include "GraphicsID.h"
32 #include "RequestContext.h"
33 
34 class IGraphicsPort;
35 class PMRect;
36 class PMPoint;
38 class PMMatrix;
39 class PMString;
40 class PMPathPoint;
41 
47 {
48 public:
49  enum { kDefaultIID = IID_IPATHENDSTROKER };
50 
55  {
56  kPathEndAtNeitherEnd = 0,
57  kPathEndAtEnd = 1,
58  kPathEndAtStart = 2,
59  kPathEndAtBothEnds = 3
60  };
61 
76  virtual void StrokeLineToPathEnd
77  (
78  IGraphicStyleDescriptor* styleDescriptor,
79  int32 endLocation,
80  const PMPoint& startPt,
81  const PMPoint& endPt,
82  IGraphicsPort* gPort
83  ) const = 0;
84 
100  virtual bool16 InLineToPathEnd
101  (
102  IGraphicStyleDescriptor* styleDescriptor,
103  int32 endLocation,
104  const PMPoint& startPt,
105  const PMPoint& endPt,
106  const PMRect& r,
107  IGraphicsPort* gPort
108  ) const = 0;
109 
124  (
125  IGraphicStyleDescriptor* styleDescriptor,
126  int32 endLocation,
127  const PMPoint& startPt,
128  const PMPoint& endPt,
129  const PMMatrix& matrix
130  ) const = 0;
131 
148  virtual void StrokeCurveToPathEnd
149  (
150  IGraphicStyleDescriptor* styleDescriptor,
151  int32 endLocation,
152  const PMPoint& P0,
153  const PMPoint& P1,
154  const PMPoint& P2,
155  const PMPoint& P3,
156  IGraphicsPort* gPort
157  ) const = 0;
158 
159 
177  virtual bool16 InCurveToPathEnd
178  (
179  IGraphicStyleDescriptor* styleDescriptor,
180  int32 endLocation,
181  const PMPoint& P0,
182  const PMPoint& P1,
183  const PMPoint& P2,
184  const PMPoint& P3,
185  const PMRect& r,
186  IGraphicsPort* gPort
187  ) const = 0;
188 
205  (
206  IGraphicStyleDescriptor* styleDescriptor,
207  int32 endLocation,
208  const PMPoint& P0,
209  const PMPoint& P1,
210  const PMPoint& P2,
211  const PMPoint& P3,
212  const PMMatrix& matrix
213  ) const = 0;
214 
226  (
227  const PMPathPoint& pt0,
228  const PMPathPoint& pt1,
229  IGraphicStyleDescriptor* styleDescriptor,
230  int32 endLocation
231  ) const = 0;
232 
238  virtual void GetPathEndName
239  (
240  PMString* pathendName
241  ) const = 0;
242 
256  virtual void StrokeLineToPathEndForUI
257  (
258  int32 endLocation,
259  const PMPoint& startPt,
260  const PMPoint& endPt,
261  IGraphicsPort* gPort,
262  const PMReal& strokeWidth,
263  PMReal arrowHeadScale
264  ) const = 0;
265 
278  virtual void CreateLineEndPath
279  (
280  int32 endLocation,
281  const PMPoint& startPt,
282  const PMPoint& endPt,
283  IGraphicsPort* gPort,
284  const PMReal& strokeWidth,
285  PMReal arrowHeadScale
286  ) const = 0;
287 
289  virtual ScriptID GetScriptID( const ScriptInfo::RequestContext& context ) const = 0;
290 };
291 
292 #endif