1/* 2 * Author: William Chia-Wei Cheng (bill.cheng@acm.org) 3 * 4 * Copyright (C) 2001-2009, William Chia-Wei Cheng. 5 * 6 * This file may be distributed under the terms of the Q Public License 7 * as defined by Trolltech AS of Norway and appearing in the file 8 * LICENSE.QPL included in the packaging of this file. 9 * 10 * THIS FILE IS PROVIDED AS IS WITH NO WARRANTY OF ANY KIND, INCLUDING 11 * THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR 12 * PURPOSE. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, 13 * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING 14 * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, 15 * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION 16 * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17 * 18 * @(#)$Header: /mm2/home/cvs/bc-src/tgif/arc.e,v 1.6 2011/05/16 16:21:56 william Exp $ 19 */ 20 21#ifndef _ARC_E_ 22#define _ARC_E_ 23 24extern int arcDrawn; 25 26#ifdef _INCLUDE_FROM_ARC_C_ 27#undef extern 28#define extern 29#endif /*_INCLUDE_FROM_ARC_C_*/ 30 31extern void PointsToArc ARGS_DECL((int xc, int yc, int x1, int y1, 32 int x2, int y2, int dir, int int_degree, 33 int *ltx, int *lty, int *w, int *h, 34 int *angle1, int *angle2)); 35extern void ArcRealX2Y2 ARGS_DECL((struct ArcRec *, int *X2, int *Y2)); 36extern void GetArcArrowInfo ARGS_DECL((struct ObjRec *, 37 IntPoint *tipvs1, IntPoint *tailvs1, 38 IntPoint *vs1, int *a_angle1, 39 IntPoint *tipvs2, IntPoint *tailvs2, 40 IntPoint *vs2, int *a_angle2)); 41extern void CalcArcOBBox ARGS_DECL((struct ObjRec *)); 42extern void CalcArcBBox ARGS_DECL((struct ObjRec *, struct BBRec obbox, 43 struct BBRec *bbox)); 44extern void DumpArcObj ARGS_DECL((FILE *, struct ObjRec *)); 45extern int NeedsToCacheArcObj ARGS_DECL((struct ObjRec *)); 46extern void DrawArcObj ARGS_DECL((Window, int X, int Y, struct ObjRec *)); 47extern struct ObjRec *CreateArcObj ARGS_DECL((int xc, int yc, int x1, int y1, 48 int x2, int y2, int dir, 49 int ltx, int lty, int w, int h, 50 int angle1, int angle2, 51 int CreateAbsolute)); 52extern void DrawArc ARGS_DECL((XEvent *)); 53extern void SaveArcObj ARGS_DECL((FILE *, struct ObjRec *)); 54extern void ReadArcObj ARGS_DECL((FILE *, char *, struct ObjRec **)); 55extern void SetArcPropMask ARGS_DECL((struct ObjRec *, long *plMask, 56 long *plSkip, 57 struct PropertiesRec *pProp)); 58extern void FreeArcObj ARGS_DECL((struct ObjRec *)); 59extern void MakePreciseArc ARGS_DECL((void)); 60extern void PreciseRotateAnArc ARGS_DECL((void)); 61 62#ifdef _INCLUDE_FROM_ARC_C_ 63#undef extern 64#ifndef _NO_RECURSIVE_EXTERN 65#define extern extern 66#endif /* ~_NO_RECURSIVE_EXTERN */ 67#endif /*_INCLUDE_FROM_ARC_C_*/ 68 69#endif /*_ARC_E_*/ 70