1 /* 2 * shape.h -- 3 * 4 * The public platform-independent C interface to the 5 * non-rectangular window extension. 6 * 7 * Copyright (c) 1997-2000 by Donal K. Fellows 8 * 9 * See "license.txt" for details of the license this file is made 10 * available under. 11 * 12 * $Id$ 13 */ 14 15 #ifndef SHAPE_SHAPE_H 16 #define SHAPE_SHAPE_H 17 18 #include <tcl.h> 19 #include <tk.h> 20 #include <X11/Xutil.h> /* For Region declaration. */ 21 22 #define SHAPE_VERSION_MAJOR 0 23 #define SHAPE_VERSION_MINOR 4 24 #define SHAPE_VERSION_PATCH 4 25 #define SHAPE_VERSION STRINGIFY(SHAPE_VERSION_MAJOR) "." STRINGIFY(SHAPE_VERSION_MINOR) 26 #define SHAPE_PATCHLEVEL SHAPE_VERSION "." STRINGIFY(SHAPE_VERSION_PATCH) 27 28 #define SHAPE_KIND_BOUNDING (1<<0) 29 #define SHAPE_KIND_CLIP (1<<1) 30 #define SHAPE_KIND_BOTH (SHAPE_KIND_BOUNDING | SHAPE_KIND_CLIP) 31 #define SHAPE_KIND_TOPLEVEL (1<<8) 32 #define SHAPE_KIND_ALL (SHAPE_KIND_BOTH | SHAPE_KIND_TOPLEVEL) 33 #define SHAPE_BOUND_MASK (SHAPE_KIND_BOUNDING | SHAPE_KIND_TOPLEVEL) 34 #define SHAPE_CLIP_MASK (SHAPE_KIND_CLIP | SHAPE_KIND_TOPLEVEL) 35 36 #ifndef ShapeSet 37 /* Taken from /usr/include/X11/extensions/shape.h */ 38 #define ShapeSet 0 39 #define ShapeUnion 1 40 #define ShapeIntersect 2 41 #define ShapeSubtract 3 42 #define ShapeInvert 4 43 #endif /* ShapeSet */ 44 45 #define SHAPE_OP_SET ShapeSet 46 #define SHAPE_OP_UNION ShapeUnion 47 #define SHAPE_OP_INTERSECT ShapeIntersect 48 #define SHAPE_OP_SUBTRACT ShapeSubtract 49 #define SHAPE_OP_INVERT ShapeInvert 50 51 EXTERN int 52 Shape_GetBbox _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin, int getClip, 53 int *valid, int *x1, int *y1, int *x2, int *y2)); 54 EXTERN int 55 Shape_GetShapeRectanglesObj _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin, 56 int getClip)); 57 EXTERN int 58 Shape_MoveShape _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin, 59 int kind, int x, int y)); 60 EXTERN int 61 Shape_CombineBitmap _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin, 62 int kind, int op, int x, int y, 63 Pixmap bitmap)); 64 EXTERN int 65 Shape_CombineRectangles _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin, 66 int kind, int op, 67 int rectc, XRectangle *rectv)); 68 EXTERN int 69 Shape_CombineRectanglesOrdered _ANSI_ARGS_((Tcl_Interp *interp,Tk_Window tkwin, 70 int kind, int op, 71 int rectc, XRectangle *rectv)); 72 EXTERN int 73 Shape_CombineWindow _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin, 74 int kind, int op, int x, int y, 75 Tk_Window srcwin)); 76 EXTERN int 77 Shape_CombineRegion _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin, 78 int kind, int op, int x, int y, 79 Region region)); 80 EXTERN int 81 Shape_Reset _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin, int kind)); 82 EXTERN int 83 Shape_QueryVersion _ANSI_ARGS_((Tk_Window tkwin, 84 int *majorPtr, int *minorPtr)); 85 EXTERN int 86 Shape_ExtensionPresent _ANSI_ARGS_((Tk_Window tkwin)); 87 88 #endif /* SHAPE_SHAPE_H */ 89