/* * tk3d.h -- * * Declarations of types and functions shared by the 3d border * module. * * Copyright (c) 1996 by Sun Microsystems, Inc. * * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * * SCCS: @(#) tk3d.h 1.1 96/11/04 13:52:59 */ #ifndef _TK3D #define _TK3D #include #ifdef BUILD_tk # undef EXPORT # define EXPORT DLLEXPORT #endif /* * One of the following data structures is allocated for * each 3-D border currently in use. Structures of this * type are indexed by borderTable, so that a single * structure can be shared for several uses. */ typedef struct { Screen *screen; /* Screen on which the border will be used. */ Visual *visual; /* Visual for all windows and pixmaps using * the border. */ int depth; /* Number of bits per pixel of drawables where * the border will be used. */ Colormap colormap; /* Colormap out of which pixels are * allocated. */ int refCount; /* Number of different users of * this border. */ XColor *bgColorPtr; /* Background color (intensity * between lightColorPtr and * darkColorPtr). */ XColor *darkColorPtr; /* Color for darker areas (must free when * deleting structure). NULL means shadows * haven't been allocated yet.*/ XColor *lightColorPtr; /* Color used for lighter areas of border * (must free this when deleting structure). * NULL means shadows haven't been allocated * yet. */ Pixmap shadow; /* Stipple pattern to use for drawing * shadows areas. Used for displays with * <= 64 colors or where colormap has filled * up. */ GC bgGC; /* Used (if necessary) to draw areas in * the background color. */ GC darkGC; /* Used to draw darker parts of the * border. None means the shadow colors * haven't been allocated yet.*/ GC lightGC; /* Used to draw lighter parts of * the border. None means the shadow colors * haven't been allocated yet. */ Tcl_HashEntry *hashPtr; /* Entry in borderTable (needed in * order to delete structure). */ } TkBorder; /* * Maximum intensity for a color: */ #define MAX_INTENSITY 65535 /* * Declarations for platform specific interfaces used by this module. */ EXTERN TkBorder * TkpGetBorder _ANSI_ARGS_((void)); EXTERN void TkpGetShadows _ANSI_ARGS_((TkBorder *borderPtr, Tk_Window tkwin)); EXTERN void TkpFreeBorder _ANSI_ARGS_((TkBorder *borderPtr)); #undef EXPORT #define EXPORT DLLIMPORT #endif /* _TK3D */