home *** CD-ROM | disk | FTP | other *** search
/ Australian Personal Computer 2004 July / APC0407D2.iso / workshop / apache / files / ActivePerl-5.6.1.638-MSWin32-x86.msi / _2d8004bc4b84560474ee7ad8680dfa4e < prev    next >
Encoding:
Text File  |  2004-04-13  |  2.7 KB  |  88 lines

  1. /*
  2.  * tk3d.h --
  3.  *
  4.  *    Declarations of types and functions shared by the 3d border
  5.  *    module.
  6.  *
  7.  * Copyright (c) 1996 by Sun Microsystems, Inc.
  8.  *
  9.  * See the file "license.terms" for information on usage and redistribution
  10.  * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  11.  *
  12.  * RCS: @(#) $Id: tk3d.h,v 1.4 1998/09/14 18:23:03 stanton Exp $
  13.  */
  14.  
  15. #ifndef _TK3D
  16. #define _TK3D
  17.  
  18. #include "tkInt.h"
  19.  
  20. #ifdef BUILD_tk
  21. # undef TCL_STORAGE_CLASS
  22. # define TCL_STORAGE_CLASS DLLEXPORT
  23. #endif
  24.  
  25. /*
  26.  * One of the following data structures is allocated for
  27.  * each 3-D border currently in use.  Structures of this
  28.  * type are indexed by borderTable, so that a single
  29.  * structure can be shared for several uses.
  30.  */
  31.  
  32. typedef struct {
  33.     Screen *screen;        /* Screen on which the border will be used. */
  34.     Visual *visual;        /* Visual for all windows and pixmaps using
  35.                  * the border. */
  36.     int depth;            /* Number of bits per pixel of drawables where
  37.                  * the border will be used. */
  38.     Colormap colormap;        /* Colormap out of which pixels are
  39.                  * allocated. */
  40.     int refCount;        /* Number of different users of
  41.                  * this border.  */
  42.     XColor *bgColorPtr;        /* Background color (intensity
  43.                  * between lightColorPtr and
  44.                  * darkColorPtr). */
  45.     XColor *darkColorPtr;    /* Color for darker areas (must free when
  46.                  * deleting structure). NULL means shadows
  47.                  * haven't been allocated yet.*/
  48.     XColor *lightColorPtr;    /* Color used for lighter areas of border
  49.                  * (must free this when deleting structure).
  50.                  * NULL means shadows haven't been allocated
  51.                  * yet. */
  52.     Pixmap shadow;        /* Stipple pattern to use for drawing
  53.                  * shadows areas.  Used for displays with
  54.                  * <= 64 colors or where colormap has filled
  55.                  * up. */
  56.     GC bgGC;            /* Used (if necessary) to draw areas in
  57.                  * the background color. */
  58.     GC darkGC;            /* Used to draw darker parts of the
  59.                  * border. None means the shadow colors
  60.                  * haven't been allocated yet.*/
  61.     GC lightGC;            /* Used to draw lighter parts of
  62.                  * the border. None means the shadow colors
  63.                  * haven't been allocated yet. */
  64.     Tcl_HashEntry *hashPtr;    /* Entry in borderTable (needed in
  65.                  * order to delete structure). */
  66. } TkBorder;
  67.  
  68.  
  69. /*
  70.  * Maximum intensity for a color:
  71.  */
  72.  
  73. #define MAX_INTENSITY 65535
  74.  
  75. /*
  76.  * Declarations for platform specific interfaces used by this module.
  77.  */
  78.  
  79. EXTERN TkBorder *    TkpGetBorder _ANSI_ARGS_((void));
  80. EXTERN void        TkpGetShadows _ANSI_ARGS_((TkBorder *borderPtr,
  81.                 Tk_Window tkwin));
  82. EXTERN void        TkpFreeBorder _ANSI_ARGS_((TkBorder *borderPtr));
  83.  
  84. # undef TCL_STORAGE_CLASS
  85. # define TCL_STORAGE_CLASS DLLIMPORT
  86.  
  87. #endif /* _TK3D */
  88.