1 /*
2  * bltTile.h --
3  *
4  * Copyright 1995-1998 Lucent Technologies, Inc.
5  *
6  * Permission to use, copy, modify, and distribute this software and
7  * its documentation for any purpose and without fee is hereby
8  * granted, provided that the above copyright notice appear in all
9  * copies and that both that the copyright notice and warranty
10  * disclaimer appear in supporting documentation, and that the names
11  * of Lucent Technologies any of their entities not be used in
12  * advertising or publicity pertaining to distribution of the software
13  * without specific, written prior permission.
14  *
15  * Lucent Technologies disclaims all warranties with regard to this
16  * software, including all implied warranties of merchantability and
17  * fitness.  In no event shall Lucent Technologies be liable for any
18  * special, indirect or consequential damages or any damages
19  * whatsoever resulting from loss of use, data or profits, whether in
20  * an action of contract, negligence or other tortuous action, arising
21  * out of or in connection with the use or performance of this
22  * software.
23  */
24 
25 #ifndef BLT_TILE_H
26 #define BLT_TILE_H
27 
28 #define TILE_THREAD_KEY	"BLT Tile Data"
29 #define TILE_MAGIC ((unsigned int) 0x46170277)
30 
31 typedef struct Blt_TileClientStruct *Blt_Tile; /* Opaque type for tiles */
32 
33 typedef void (Blt_TileChangedProc) _ANSI_ARGS_((ClientData clientData,
34 	Blt_Tile tile));
35 
36 extern int Blt_GetTile _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin,
37 	char *imageName, Blt_Tile *tilePtr));
38 
39 extern int Blt_TileFlags _ANSI_ARGS_((Blt_Tile tile));
40 
41 extern void Blt_FreeTile _ANSI_ARGS_((Blt_Tile tile));
42 extern void Blt_FixedTile _ANSI_ARGS_((Blt_Tile tile));
43 
44 extern char *Blt_NameOfTile _ANSI_ARGS_((Blt_Tile tile));
45 
46 extern void Blt_SetTileChangedProc _ANSI_ARGS_((Blt_Tile tile,
47 	Blt_TileChangedProc *changeProc, ClientData clientData));
48 
49 extern void Blt_TileRectangle _ANSI_ARGS_((Tk_Window tkwin, Drawable drawable,
50 	Blt_Tile tile, int x, int y, unsigned int width, unsigned int height));
51 extern void Blt_TileRectangles _ANSI_ARGS_((Tk_Window tkwin, Drawable drawable,
52 	Blt_Tile tile, XRectangle *rectArr, int nRects));
53 extern void Blt_TilePolygon _ANSI_ARGS_((Tk_Window tkwin, Drawable drawable,
54 	Blt_Tile tile, XPoint *pointArr, int nPoints));
55 extern Pixmap Blt_PixmapOfTile _ANSI_ARGS_((Blt_Tile tile));
56 
57 extern int Blt_HasTile _ANSI_ARGS_((Blt_Tile tile));
58 
59 extern void Blt_SizeOfTile _ANSI_ARGS_((Blt_Tile tile, int *widthPtr,
60 	int *heightPtr));
61 
62 extern void Blt_SetTileOrigin _ANSI_ARGS_((Tk_Window tkwin, Blt_Tile tile,
63 	int x, int y));
64 
65 extern void Blt_SetTSOrigin _ANSI_ARGS_((Tk_Window tkwin, Blt_Tile tile,
66 	int x, int y));
67 
68 extern void Blt_Fill3DRectangleTile _ANSI_ARGS_((Tk_Window tkwin,
69         Drawable drawable, Tk_3DBorder border, int x, int y, int width, int height,
70 	int borderWidth, int relief, Blt_Tile tile, int scrollTile, int flags));
71 
72 #endif /* BLT_TILE_H */
73