home *** CD-ROM | disk | FTP | other *** search
/ Netrunner 2004 October / NETRUNNER0410.ISO / regular / ActivePerl-5.8.4.810-MSWin32-x86.msi / _2d8004bc4b84560474ee7ad8680dfa4e < prev    next >
Encoding:
Text File  |  2004-06-01  |  3.4 KB  |  103 lines

  1. /*
  2.  * tk3d.h --
  3.  *
  4.  *    Declarations of types and functions shared by the 3d border
  5.  *    module.
  6.  *
  7.  * Copyright (c) 1996-1997 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.5 1999/04/16 01:51:10 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 each 3-D border
  27.  * currently in use.  Structures of this type are indexed by
  28.  * borderTable, so that a single structure can be shared for several
  29.  * uses.
  30.  */
  31.  
  32. typedef struct TkBorder {
  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 resourceRefCount;    /* Number of active uses of this color (each
  41.                  * active use corresponds to a call to
  42.                  * Tk_Alloc3DBorderFromObj or Tk_Get3DBorder).
  43.                  * If this count is 0, then this structure
  44.                  * is no longer valid and it isn't present
  45.                  * in borderTable: it is being kept around
  46.                  * only because there are objects referring
  47.                  * to it.  The structure is freed when
  48.                  * resourceRefCount and objRefCount are
  49.                  * both 0. */
  50.     int objRefCount;        /* The number of Tcl objects that reference
  51.                  * this structure. */
  52.     XColor *bgColorPtr;        /* Background color (intensity
  53.                  * between lightColorPtr and
  54.                  * darkColorPtr). */
  55.     XColor *darkColorPtr;    /* Color for darker areas (must free when
  56.                  * deleting structure). NULL means shadows
  57.                  * haven't been allocated yet.*/
  58.     XColor *lightColorPtr;    /* Color used for lighter areas of border
  59.                  * (must free this when deleting structure).
  60.                  * NULL means shadows haven't been allocated
  61.                  * yet. */
  62.     Pixmap shadow;        /* Stipple pattern to use for drawing
  63.                  * shadows areas.  Used for displays with
  64.                  * <= 64 colors or where colormap has filled
  65.                  * up. */
  66.     GC bgGC;            /* Used (if necessary) to draw areas in
  67.                  * the background color. */
  68.     GC darkGC;            /* Used to draw darker parts of the
  69.                  * border. None means the shadow colors
  70.                  * haven't been allocated yet.*/
  71.     GC lightGC;            /* Used to draw lighter parts of
  72.                  * the border. None means the shadow colors
  73.                  * haven't been allocated yet. */
  74.     Tcl_HashEntry *hashPtr;    /* Entry in borderTable (needed in
  75.                  * order to delete structure). */
  76.     struct TkBorder *nextPtr;    /* Points to the next TkBorder structure with
  77.                  * the same color name.  Borders with the
  78.                  * same name but different screens or
  79.                  * colormaps are chained together off a
  80.                  * single entry in borderTable. */
  81. } TkBorder;
  82.  
  83.  
  84. /*
  85.  * Maximum intensity for a color:
  86.  */
  87.  
  88. #define MAX_INTENSITY 65535
  89.  
  90. /*
  91.  * Declarations for platform specific interfaces used by this module.
  92.  */
  93.  
  94. EXTERN TkBorder *    TkpGetBorder _ANSI_ARGS_((void));
  95. EXTERN void        TkpGetShadows _ANSI_ARGS_((TkBorder *borderPtr,
  96.                 Tk_Window tkwin));
  97. EXTERN void        TkpFreeBorder _ANSI_ARGS_((TkBorder *borderPtr));
  98.  
  99. # undef TCL_STORAGE_CLASS
  100. # define TCL_STORAGE_CLASS DLLIMPORT
  101.  
  102. #endif /* _TK3D */
  103.