1 /************************************************************************/
2 /*									*/
3 /*  Declarations for shapes.						*/
4 /*									*/
5 /*  Distances are in EMU's.						*/
6 /*  12700 EMU/Point.							*/
7 /*  635 EMU/Twip.							*/
8 /*  914400 EMU/Inch.							*/
9 /*  360000 EMU/cm.							*/
10 /*									*/
11 /*  With the exception of 'shplid', the ShapeProperties that come from	*/
12 /*  regular rtf only apply for the top level 'shp' or shpgrp'.		*/
13 /*									*/
14 /************************************************************************/
15 
16 #   ifndef	DOC_SHAPE_DRAWING_H
17 #   define	DOC_SHAPE_DRAWING_H
18 
19 #   include	<utilColor.h>
20 #   include	<geo2DInteger.h>
21 
22 #   define	EMUtoTWIPS(e)	((e+317)/635)
23 #   define	TWIPStoEMU(t)	(635*(t))
24 
25 typedef struct ShapePath
26     {
27     const char *	spName;
28     short int		spXSize;
29     short int		spYSize;
30     short int		spClosed;
31     short int		spVertexCount;
32     Point2DI *	spVertices;
33     } ShapePath;
34 
35 /************************************************************************/
36 /*									*/
37 /*  A shape arrow description as it appears in the shape description.	*/
38 /*									*/
39 /************************************************************************/
40 
41 typedef struct ShapeArrow
42     {
43     unsigned char	saArrowHead;
44 #				define	DSarrowNONE			0
45 #				define	DSarrowARROW			1
46 #				define	DSarrowSTEALTH_ARROW		2
47 #				define	DSarrowDIAMOND			3
48 #				define	DSarrowOVAL			4
49 #				define	DSarrowOPEN_ARROW		5
50 #				define	DSarrowCHEVRON_ARROW		7
51 #				define	DSarrow2CHEVRON_ARROW		8
52     unsigned char	saArrowWidth;
53 #				define	DSarrowNARROW			0
54 #				define	DSarrowMEDIUM			1
55 #				define	DSarrowWIDE			2
56     unsigned char	saArrowLength;
57 #				define	DSarrowSHORT			0
58 /*				define	DSarrowMEDIUM			1 */
59 #				define	DSarrowLONG			2
60     } ShapeArrow;
61 
62 typedef struct ShapeDrawing
63     {
64 			/************************************************/
65 			/*  Position.					*/
66 			/************************************************/
67     unsigned char	sdXPosition;
68     unsigned char	sdXReference;
69     unsigned char	sdYPosition;
70     unsigned char	sdYReference;
71 
72     unsigned char	sd_fUseShapeAnchor;
73     unsigned char	sd_fLayoutInCell;
74     unsigned char	sd_fAllowOverlap;
75     unsigned char	sd_fChangePage;
76 
77 			/************************************************/
78 			/*  Object Type					*/
79 			/************************************************/
80     int			sdShapeType;
81     int			sdRotation;
82 
83     int			sdWrapDistLeftEmu;
84     int			sdWrapDistTopEmu;
85     int			sdWrapDistRightEmu;
86     int			sdWrapDistBottomEmu;
87 
88     long		sdMasterShape;
89     long		sdNextShape;
90 
91     int			sdXLimo;
92     int			sdYLimo;
93 
94     unsigned int	sd_fIsBullet:1;
95     unsigned int	sd_fFlipH:1;
96     unsigned int	sd_fFlipV:1;
97     unsigned int	sd_fBehindDocument:1;
98     unsigned int	sd_fIsButton:1;
99     unsigned int	sd_fHidden:1;
100     unsigned int	sd_fReallyHidden:1;
101     unsigned int	sd_fArrowheadsOK:1;
102     unsigned int	sd_fBackground:1;
103     unsigned int	sd_fDeleteAttachedObject:1;
104     unsigned int	sd_fEditedWrap:1;
105     unsigned int	sd_fHitTestFill:1;
106     unsigned int	sd_fHitTestLine:1;
107     unsigned int	sd_fInitiator:1;
108     unsigned int	sd_fNoFillHitTest:1;
109     unsigned int	sd_fNoHitTestPicture:1;
110     unsigned int	sd_fNoLineDrawDash:1;
111     unsigned int	sd_fOleIcon:1;
112     unsigned int	sd_fOnDblClickNotify:1;
113     unsigned int	sd_fOneD:1;
114     unsigned int	sd_fPreferRelativeSize:1;
115     unsigned int	sd_fPrint:1;
116 
117     unsigned int	sd_fPseudoInline:1;
118 
119 			/************************************************/
120 			/*  Text box.					*/
121 			/************************************************/
122     int			sd_dxTextLeft;
123     int			sd_dyTextTop;
124     int			sd_dxTextRight;
125     int			sd_dyTextBottom;
126 
127     int			sd_scaleText;
128     int			sd_lTxid;
129 
130 			/**
131 			 *  Text wrapping:
132 			 */
133 #			define	SHAPEtextWRAP_SQUARE		0
134 #			define	SHAPEtextWRAP_TIGHT		1
135 #			define	SHAPEtextWRAP_NONE		2
136 #			define	SHAPEtextWRAP_TOP_BOTTOM	3
137 #			define	SHAPEtextWRAP_THROUGH		4
138     unsigned char	sd_WrapText;
139     unsigned char	sd_anchorText;
140     unsigned char	sd_txflTextFlow;
141     unsigned char	sd_cdirFont;
142 
143     unsigned int	sd_fAutoTextMargin:1;
144     unsigned int	sd_fRotateText:1;
145     unsigned int	sd_fSelectText:1;
146     unsigned int	sd_fFitShapeToText:1;
147     unsigned int	sd_fFitTextToShape:1;
148 
149 			/************************************************/
150 			/*  Lock.					*/
151 			/************************************************/
152     unsigned int	sd_fLockRotation:1;
153     unsigned int	sd_fLockAspectRatio:1;
154     unsigned int	sd_fLockAgainstSelect:1;
155     unsigned int	sd_fLockCropping:1;
156     unsigned int	sd_fLockVerticies:1;
157     unsigned int	sd_fLockText:1;
158     unsigned int	sd_fLockAdjustHandles:1;
159     unsigned int	sd_fLockAgainstGrouping:1;
160     unsigned int	sd_fLockShapeType:1;
161 
162     unsigned int	sd_fLockPosition:1;
163 
164 			/************************************************/
165 			/*  Grouped Shapes				*/
166 			/*						*/
167 			/*  Relative position of children.		*/
168 			/*						*/
169 			/*  Position of groups. Actually the positions	*/
170 			/*  are given by shpleft,shpright,		*/
171 			/*  shptop,shpbottom in a root shape.		*/
172 			/************************************************/
173     DocumentRectangle	sdRelRect;
174 
175     int			sdRelRotation;
176     long		sdRegroupID;
177 
178     DocumentRectangle	sdGroupRect;
179 
180     unsigned int	sd_fRelChangePage:1;
181     unsigned int	sd_fRelFlipH:1;
182     unsigned int	sd_fRelFlipV:1;
183 
184 			    /********************************************/
185 			    /*  Geometry				*/
186 			    /********************************************/
187     DocumentRectangle	sdGeoRect;
188     long		sdAdjustValue;
189     long		sdAdjust2Value;
190     long		sdAdjust3Value;
191     long		sdAdjust4Value;
192     long		sdAdjust5Value;
193     long		sdAdjust6Value;
194     long		sdAdjust7Value;
195     long		sdAdjust8Value;
196     long		sdAdjust9Value;
197     long		sdAdjust10Value;
198 
199     Point2DI *	sdVertices;
200     int			sdVertexCount;
201     Point2DI *	sdWrapPolygonVertices;
202     int			sdWrapPolygonVertexCount;
203     int *		sdSegmentInfos;
204     int			sdSegmentInfoCount;
205 
206     /*
207     DSHPprop_pFragments,
208     DSHPprop_pGuides,
209     DSHPprop_pInscribe,
210     DSHPprop_pAdjustHandles,
211     */
212 
213 			/************************************************/
214 			/*  Fill.					*/
215 			/************************************************/
216     unsigned char	sdFillType;
217 #				define	DSfillSOLID			0
218 #				define	DSfillPATTERN			1
219 #				define	DSfillTEXTURE			2
220 #				define	DSfillCENTERED_PICTURE		3
221 #				define	DSfillSHADE_START_TO_END	4
222 #				define	DSfillSHADE_BOUNDS_TO_END	5
223 #				define	DSfillSHADE_OUTLINE_TO_END	6
224 #				define	DSfillSHADE_ANGLE		7
225     unsigned char	sdFillblipflags;
226     unsigned char	sdFillFocus;
227     unsigned char	sdFillDztype;
228     unsigned char	sdFillShadeType;
229 
230     int			sdFillOpacity;
231     int			sdFillBackOpacity;
232 
233     int			sdFillWidthEmu;
234     int			sdFillHeightEmu;
235     int			sdFillAngle;
236 
237     int			sdFillToLeft;
238     int			sdFillToTop;
239     int			sdFillToRight;
240     int			sdFillToBottom;
241 
242     int			sdFillOriginX;
243     int			sdFillOriginY;
244     int			sdFillShapeOriginX;
245     int			sdFillShapeOriginY;
246 
247     int			sdFillRectLeftEmu;
248     int			sdFillRectTopEmu;
249     int			sdFillRectRightEmu;
250     int			sdFillRectBottomEmu;
251 
252     long		sdFillShadePreset;
253 
254     RGB8Color		sdFillColor;
255     RGB8Color		sdFillBackColor;
256     RGB8Color		sdFillCrModColor;
257 
258     unsigned int	sd_fFilled:1;
259     unsigned int	sd_fillShape:1;
260     unsigned int	sd_fillUseRect:1;
261     unsigned int	sd_fFillOK:1;
262     unsigned int	sd_fFillShadeShapeOK:1;
263 
264 			    /********************************************/
265 			    /*  Number/Flag: Line.			*/
266 			    /********************************************/
267     unsigned char	sdLineType;
268 #				define	DSlineSOLID			0
269 #				define	DSlinePATTERN			1
270 #				define	DSlineTEXTURE			2
271 #				define	DSlinePICTURE			3
272 
273     unsigned char	sdLineFillBlipFlags;
274 
275     int			sdLineFillWidthEmu;
276     int			sdLineFillHeightEmu;
277     int			sdLineWidthEmu;
278 
279     unsigned char	sdLineStyle;
280     unsigned char	sdLineDashing;
281 #				define	DSdashSOLID			0
282 #				define	DSdashDASHED			1
283 #				define	DSdashDOT			2
284 #				define	DSdashDASHDOT			3
285 #				define	DSdashDASHDOTDOT		4
286 #				define	DSdashDOT_X			6
287 #				define	DSdashDASHED_X			7
288 #				define	DSdashDASHED_L			8
289 #				define	DSdashDASHDOT_X			9
290 #				define	DSdashDASHDOT_L			10
291 #				define	DSdashDASHDOTDOT_L		11
292 #				define	DSdashHOLLOW			12/*do*/
293     ShapeArrow		sdLineHeadArrow;
294     ShapeArrow		sdLineTailArrow;
295     unsigned char	sdLineEndCapStyle;
296     unsigned char	sdLineFillDztype;
297     unsigned char	sdLineJoinStyle;
298 
299     int			sdLineMiterLimit;
300 
301     RGB8Color		sdLineColor;
302     RGB8Color		sdLineBackColor;
303     RGB8Color		sdLineCrModColor;
304 
305     unsigned int	sd_fLine:1;
306     unsigned int	sd_fLineOK:1;
307 
308     unsigned int	sd_fLineUseShapeAnchor:1;
309     unsigned int	sd_fColumnLineOK:1;
310     unsigned int	sd_fColumnLine:1;
311     unsigned int	sd_fLeftLine:1;
312     unsigned int	sd_fTopLine:1;
313     unsigned int	sd_fRightLine:1;
314     unsigned int	sd_fBottomLine:1;
315 
316     unsigned int	sd_fColumnHitTestLine:1;
317     unsigned int	sd_fLeftHitTestLine:1;
318     unsigned int	sd_fTopHitTestLine:1;
319     unsigned int	sd_fRightHitTestLine:1;
320     unsigned int	sd_fBottomHitTestLine:1;
321 
322     unsigned int	sd_lineFillShape:1;
323     unsigned int	sd_lineColumnFillShape:1;
324     unsigned int	sd_lineLeftFillShape:1;
325     unsigned int	sd_lineTopFillShape:1;
326     unsigned int	sd_lineRightFillShape:1;
327     unsigned int	sd_lineBottomFillShape:1;
328 
329     unsigned int	sd_fInsetPen:1;
330     unsigned int	sd_fLeftInsetPen:1;
331     unsigned int	sd_fTopInsetPen:1;
332     unsigned int	sd_fRightInsetPen:1;
333     unsigned int	sd_fBottomInsetPen:1;
334 
335 			/************************************************/
336 			/*  Shadow.					*/
337 			/************************************************/
338     unsigned char	sdShadowType;
339     int			sdShadowOpacity;
340     int			sdShadowOffsetXEmu;
341     int			sdShadowOffsetYEmu;
342     int			sdShadowOffset2XEmu;
343     int			sdShadowOffset2YEmu;
344     int			sdShadowScaleXToX;
345     int			sdShadowScaleYToX;
346     int			sdShadowScaleXToY;
347     int			sdShadowScaleYToY;
348     int			sdShadowPerspectiveX;
349     int			sdShadowPerspectiveY;
350     int			sdShadowWeight;
351     int			sdShadowOriginX;
352     int			sdShadowOriginY;
353 
354     unsigned int	sd_fShadow:1;
355     unsigned int	sd_fshadowObscured:1;
356     unsigned int	sd_fshadowOK:1;
357 
358     RGB8Color		sdShadowColor;
359     RGB8Color		sdShadowHighlightColor;
360     RGB8Color		sdShadowCrModColor;
361     RGB8Color		sdShadowc3DExtrusionColor;
362     RGB8Color		sdShadowc3DCrModColor;
363 			/************************************************/
364 			/*  Connectors.					*/
365 			/************************************************/
366     unsigned char	sdConnectionSite;
367     unsigned char	sdConnectionStyle;
368 
369 				/****************************************/
370 
371     int			sd_shapePath;
372 
373     int			sd_cropFromLeft;
374     int			sd_cropFromRight;
375     int			sd_cropFromTop;
376     int			sd_cropFromBottom;
377     } ShapeDrawing;
378 
379 /************************************************************************/
380 /*									*/
381 /*  Kinds of shape.							*/
382 /*									*/
383 /************************************************************************/
384 
385 typedef enum ShapeType
386     {
387     SHPtyFREE= -1,
388 
389     SHPtyFREEFORM_OR_NON_AUTOSHAPE= 0,
390     SHPtyRECTANGLE= 1,
391     SHPtyROUND_RECTANGLE= 2,
392     SHPtyELLIPSE= 3,
393     SHPtyDIAMOND= 4,
394     SHPtyISOSCELES_TRIANGLE= 5,
395     SHPtyRIGHT_TRIANGLE= 6,
396     SHPtyPARALLELOGRAM= 7,
397     SHPtyTRAPEZOID= 8,
398     SHPtyHEXAGON= 9,
399     SHPtyOCTAGON= 10,
400     SHPtyPLUS_SIGN= 11,
401     SHPtySTAR= 12,
402     SHPtyARROW= 13,
403     SHPtyTHICK_ARROW= 14,
404     SHPtyHOME_PLATE= 15,
405     SHPtyCUBE= 16,
406     SHPtyBALLOON= 17,
407     SHPtySEAL= 18,
408     SHPtyARC= 19,
409     SHPtyLINE= 20,
410     SHPtyPLAQUE= 21,
411     SHPtyCAN= 22,
412     SHPtyDONUT= 23,
413     SHPtyTEXT_SIMPLE= 24,
414     SHPtyTEXT_OCTAGON= 25,
415     SHPtyTEXT_HEXAGON= 26,
416     SHPtyTEXT_CURVE= 27,
417     SHPtyTEXT_WAVE= 28,
418     SHPtyTEXT_RING= 29,
419     SHPtyTEXT_ON_CURVE= 30,
420     SHPtyTEXT_ON_RING= 31,
421     SHPtyCALLOUT_1= 41,
422     SHPtyCALLOUT_2= 42,
423     SHPtyCALLOUT_3= 43,
424     SHPtyACCENT_CALLOUT_1= 44,
425     SHPtyACCENT_CALLOUT_2= 45,
426     SHPtyACCENT_CALLOUT_3= 46,
427     SHPtyBORDER_CALLOUT_1= 47,
428     SHPtyBORDER_CALLOUT_2= 48,
429     SHPtyBORDER_CALLOUT_3= 49,
430     SHPtyACCENT_BORDER_CALLOUT_1= 50,
431     SHPtyACCENT_BORDER_CALLOUT_2= 51,
432     SHPtyACCENT_BORDER_CALLOUT_3= 52,
433     SHPtyRIBBON= 53,
434     SHPtyRIBBON2= 54,
435     SHPtyCHEVRON= 55,
436     SHPtyPENTAGON= 56,
437     SHPtyNO_SMOKING= 57,
438     SHPtySEAL8= 58,
439     SHPtySEAL16= 59,
440     SHPtySEAL32= 60,
441     SHPtyWEDGE_RECT_CALLOUT= 61,
442     SHPtyWEDGE_RRECT_CALLOUT= 62,
443     SHPtyWEDGE_ELLIPSE_CALLOUT= 63,
444     SHPtyWAVE= 64,
445     SHPtyFOLDED_CORNER= 65,
446     SHPtyLEFT_ARROW= 66,
447     SHPtyDOWN_ARROW= 67,
448     SHPtyUP_ARROW= 68,
449     SHPtyLEFT_RIGHT_ARROW= 69,
450     SHPtyUP_DOWN_ARROW= 70,
451     SHPtyIRREGULARSEAL1= 71,
452     SHPtyIRREGULARSEAL2= 72,
453     SHPtyLIGHTNING_BOLT= 73,
454     SHPtyHEART= 74,
455     SHPtyPICTURE_FRAME= 75,
456     SHPtyQUAD_ARROW= 76,
457     SHPtyLEFT_ARROW_CALLOUT= 77,
458     SHPtyRIGHT_ARROW_CALLOUT= 78,
459     SHPtyUP_ARROW_CALLOUT= 79,
460     SHPtyDOWN_ARROW_CALLOUT= 80,
461     SHPtyLEFT_RIGHT_ARROW_CALLOUT= 81,
462     SHPtyUP_DOWN_ARROW_CALLOUT= 82,
463     SHPtyQUAD_ARROW_CALLOUT= 83,
464     SHPtyBEVEL= 84,
465     SHPtyLEFT_BRACKET= 85,
466     SHPtyRIGHT_BRACKET= 86,
467     SHPtyLEFT_BRACE= 87,
468     SHPtyRIGHT_BRACE= 88,
469     SHPtyLEFT_UP_ARROW= 89,
470     SHPtyBENT_UP_ARROW= 90,
471     SHPtyBENT_ARROW= 91,
472     SHPtySEAL24= 92,
473     SHPtySTRIPED_RIGHT_ARROW= 93,
474     SHPtyNOTCHED_RIGHT_ARROW= 94,
475     SHPtyBLOCK_ARC= 95,
476     SHPtySMILEY_FACE= 96,
477     SHPtyVERTICAL_SCROLL= 97,
478     SHPtyHORIZONTAL_SCROLL= 98,
479     SHPtyCIRCULAR_ARROW= 99,
480     SHPtyNOTCHED_CIRCULAR_ARROW= 100,
481     SHPtyUTURN_ARROW= 101,
482     SHPtyCURVED_RIGHT_ARROW= 102,
483     SHPtyCURVED_LEFT_ARROW= 103,
484     SHPtyCURVED_UP_ARROW= 104,
485     SHPtyCURVED_DOWN_ARROW= 105,
486     SHPtyCLOUD_CALLOUT= 106,
487     SHPtyELLIPSE_RIBBON= 107,
488     SHPtyELLIPSE_RIBBON_2= 108,
489     SHPtyFLOW_CHART_PROCESS= 109,
490     SHPtyFLOW_CHART_DECISION= 110,
491     SHPtyFLOW_CHART_INPUT_OUTPUT= 111,
492     SHPtyFLOW_CHART_PREDEFINED_PROCESS= 112,
493     SHPtyFLOW_CHART_INTERNAL_STORAGE= 113,
494     SHPtyFLOW_CHART_DOCUMENT= 114,
495     SHPtyFLOW_CHART_MULTIDOCUMENT= 115,
496     SHPtyFLOW_CHART_TERMINATOR= 116,
497     SHPtyFLOW_CHART_PREPARATION= 117,
498     SHPtyFLOW_CHART_MANUAL_INPUT= 118,
499     SHPtyFLOW_CHART_MANUAL_OPERATION= 119,
500     SHPtyFLOW_CHART_CONNECTOR= 120,
501     SHPtyFLOW_CHART_PUNCHED_CARD= 121,
502     SHPtyFLOW_CHART_PUNCHED_TAPE= 122,
503     SHPtyFLOW_CHART_SUMMING_JUNCTION= 123,
504     SHPtyFLOW_CHART_OR= 124,
505     SHPtyFLOW_CHART_COLLATE= 125,
506     SHPtyFLOW_CHART_SORT= 126,
507     SHPtyFLOW_CHART_EXTRACT= 127,
508     SHPtyFLOW_CHART_MERGE= 128,
509     SHPtyFLOW_CHART_OFFLINE_STORAGE= 129,
510     SHPtyFLOW_CHART_ONLINE_STORAGE= 130,
511     SHPtyFLOW_CHART_MAGNETIC_TAPE= 131,
512     SHPtyFLOW_CHART_MAGNETIC_DISK= 132,
513     SHPtyFLOW_CHART_MAGNETIC_DRUM= 133,
514     SHPtyFLOW_CHART_DISPLAY= 134,
515     SHPtyFLOW_CHART_DELAY= 135,
516     SHPtyTEXT_PLAIN_TEXT= 136,
517     SHPtyTEXT_STOP= 137,
518     SHPtyTEXT_TRIANGLE= 138,
519     SHPtyTEXT_TRIANGLE_INVERTED= 139,
520     SHPtyTEXT_CHEVRON= 140,
521     SHPtyTEXT_CHEVRON_INVERTED= 141,
522     SHPtyTEXT_RING_INSIDE= 142,
523     SHPtyTEXT_RING_OUTSIDE= 143,
524     SHPtyTEXT_ARCH_UP_CURVE= 144,
525     SHPtyTEXT_ARCH_DOWN_CURVE= 145,
526     SHPtyTEXT_CIRCLE_CURVE= 146,
527     SHPtyTEXT_BUTTON_CURVE= 147,
528     SHPtyTEXT_ARCH_UP_POUR= 148,
529     SHPtyTEXT_ARCH_DOWN_POUR= 149,
530     SHPtyTEXT_CIRCLE_POUR= 150,
531     SHPtyTEXT_BUTTON_POUR= 151,
532     SHPtyTEXT_CURVE_UP= 152,
533     SHPtyTEXT_CURVE_DOWN= 153,
534     SHPtyTEXT_CASCADE_UP= 154,
535     SHPtyTEXT_CASCADE_DOWN= 155,
536     SHPtyTEXT_WAVE1= 156,
537     SHPtyTEXT_WAVE2= 157,
538     SHPtyTEXT_WAVE3= 158,
539     SHPtyTEXT_WAVE4= 159,
540     SHPtyTEXT_INFLATE= 160,
541     SHPtyTEXT_DEFLATE= 161,
542     SHPtyTEXT_INFLATE_BOTTOM= 162,
543     SHPtyTEXT_DEFLATE_BOTTOM= 163,
544     SHPtyTEXT_INFLATE_TOP= 164,
545     SHPtyTEXT_DEFLATE_TOP= 165,
546     SHPtyTEXT_DEFLATE_INFLATE= 166,
547     SHPtyTEXT_DEFLATE_INFLATE_DEFLATE= 167,
548     SHPtyTEXT_FADE_RIGHT= 168,
549     SHPtyTEXT_FADE_LEFT= 169,
550     SHPtyTEXT_FADE_UP= 170,
551     SHPtyTEXT_FADE_DOWN= 171,
552     SHPtyTEXT_SLANT_UP= 172,
553     SHPtyTEXT_SLANT_DOWN= 173,
554     SHPtyTEXT_CAN_UP= 174,
555     SHPtyTEXT_CAN_DOWN= 175,
556     SHPtyFLOW_CHART_ALTERNATE_PROCESS= 176,
557     SHPtyFLOW_CHART_OFF_PAGE_CONNECTOR= 177,
558     SHPtyCALLOUT_90= 178,
559     SHPtyACCENT_CALLOUT_90= 179,
560     SHPtyBORDER_CALLOUT_90= 180,
561     SHPtyACCENT_BORDER_CALLOUT_90= 181,
562     SHPtyLEFT_RIGHT_UP_ARROW= 182,
563     SHPtySUN= 183,
564     SHPtyMOON= 184,
565     SHPtyBRACKET_PAIR= 185,
566     SHPtyBRACE_PAIR= 186,
567     SHPtySEAL4= 187,
568     SHPtyDOUBLE_WAVE= 188,
569     SHPtyHOST_CONTROL= 201,
570     SHPtyTEXT_BOX= 202,
571 
572     SHPtyUNKNOWN,
573     SHPtyGROUP,
574     SHPtyPICPROP,
575 
576     SHPty_COUNT
577     } ShapeType;
578 
579 /************************************************************************/
580 /*									*/
581 /*  Descriptions of shapes.						*/
582 /*									*/
583 /************************************************************************/
584 
585 extern const ShapePath	SP_33;
586 extern const ShapePath	SP_34;
587 extern const ShapePath	SP_LINE;
588 extern const ShapePath	SP_RECTANGLE;
589 extern const ShapePath	SP_DIAMOND;
590 extern const ShapePath	SP_ISOSCELES_TRIANGLE;
591 extern const ShapePath	SP_RIGHT_TRIANGLE;
592 extern const ShapePath	SP_PARALLELOGRAM;
593 extern const ShapePath	SP_TRAPEZOID;
594 extern const ShapePath	SP_HEXAGON;
595 extern const ShapePath	SP_OCTAGON;
596 extern const ShapePath	SP_PLUS_SIGN;
597 extern const ShapePath	SP_ARROW;
598 extern const ShapePath	SP_NOTCHED_RIGHT_ARROW;
599 extern const ShapePath	SP_HOME_PLATE;
600 extern const ShapePath	SP_CHEVRON;
601 extern const ShapePath	SP_LEFT_ARROW;
602 extern const ShapePath	SP_RIGHT_ARROW_CALLOUT;
603 extern const ShapePath	SP_LEFT_ARROW_CALLOUT;
604 extern const ShapePath	SP_UP_ARROW_CALLOUT;
605 extern const ShapePath	SP_LEFT_RIGHT_ARROW_CALLOUT;
606 extern const ShapePath	SP_UP_DOWN_ARROW_CALLOUT;
607 extern const ShapePath	SP_DOWN_ARROW_CALLOUT;
608 extern const ShapePath	SP_QUAD_ARROW_CALLOUT;
609 extern const ShapePath	SP_LEFT_RIGHT_ARROW;
610 extern const ShapePath	SP_UP_ARROW;
611 extern const ShapePath	SP_DOWN_ARROW;
612 extern const ShapePath	SP_UP_DOWN_ARROW;
613 extern const ShapePath	SP_QUAD_ARROW;
614 extern const ShapePath	SP_LEFT_RIGHT_UP_ARROW;
615 extern const ShapePath	SP_LEFT_UP_ARROW;
616 extern const ShapePath	SP_BENT_UP_ARROW;
617 extern const ShapePath	SP_PENTAGON;
618 extern const ShapePath	SP_FLOW_CHART_PUNCHED_CARD;
619 extern const ShapePath	SP_FLOW_CHART_MANUAL_INPUT;
620 extern const ShapePath	SP_FLOW_CHART_OFF_PAGE_CONNECTOR;
621 extern const ShapePath	SP_WEDGE_RECT_CALLOUT;
622 extern const ShapePath	SP_STAR;
623 extern const ShapePath	SP_SEAL4;
624 extern const ShapePath	SP_FLOW_CHART_MERGE;
625 
626 /************************************************************************/
627 /*									*/
628 /*  Routine declarations.						*/
629 /*									*/
630 /************************************************************************/
631 
632 extern void docInitShapeArrow(		ShapeArrow *		sa );
633 
634 extern void docInitShapeDrawing(	ShapeDrawing *		sd );
635 
636 extern const char * docShapeTypeString(	int	shapeType );
637 
638 extern void docInitShapeDrawingAllocated(	ShapeDrawing *	sd );
639 
640 extern int docCopyShapeDrawing(	ShapeDrawing *			to,
641 				const ShapeDrawing *		from );
642 
643 extern void docCleanShapeDrawing(	ShapeDrawing *		sd );
644 
645 extern int docSetShapeDrawingProperty(	ShapeDrawing *		sd,
646 					int			prop,
647 					long			arg );
648 
649 #   endif	/*  DOC_SHAPE_DRAWING_H	*/
650