tk3d.h
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:3k
源码类别:

通讯编程

开发平台:

Visual C++

  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. #ifndef _TK3D
  15. #define _TK3D
  16. #include <tkInt.h>
  17. #ifdef BUILD_tk
  18. # undef TCL_STORAGE_CLASS
  19. # define TCL_STORAGE_CLASS DLLEXPORT
  20. #endif
  21. /*
  22.  * One of the following data structures is allocated for each 3-D border
  23.  * currently in use.  Structures of this type are indexed by
  24.  * borderTable, so that a single structure can be shared for several
  25.  * uses.
  26.  */
  27. typedef struct TkBorder {
  28.     Screen *screen; /* Screen on which the border will be used. */
  29.     Visual *visual; /* Visual for all windows and pixmaps using
  30.  * the border. */
  31.     int depth; /* Number of bits per pixel of drawables where
  32.  * the border will be used. */
  33.     Colormap colormap; /* Colormap out of which pixels are
  34.  * allocated. */
  35.     int resourceRefCount; /* Number of active uses of this color (each
  36.  * active use corresponds to a call to
  37.  * Tk_Alloc3DBorderFromObj or Tk_Get3DBorder).
  38.  * If this count is 0, then this structure
  39.  * is no longer valid and it isn't present
  40.  * in borderTable: it is being kept around
  41.  * only because there are objects referring
  42.  * to it.  The structure is freed when
  43.  * resourceRefCount and objRefCount are
  44.  * both 0. */
  45.     int objRefCount; /* The number of Tcl objects that reference
  46.  * this structure. */
  47.     XColor *bgColorPtr; /* Background color (intensity
  48.  * between lightColorPtr and
  49.  * darkColorPtr). */
  50.     XColor *darkColorPtr; /* Color for darker areas (must free when
  51.  * deleting structure). NULL means shadows
  52.  * haven't been allocated yet.*/
  53.     XColor *lightColorPtr; /* Color used for lighter areas of border
  54.  * (must free this when deleting structure).
  55.  * NULL means shadows haven't been allocated
  56.  * yet. */
  57.     Pixmap shadow; /* Stipple pattern to use for drawing
  58.  * shadows areas.  Used for displays with
  59.  * <= 64 colors or where colormap has filled
  60.  * up. */
  61.     GC bgGC; /* Used (if necessary) to draw areas in
  62.  * the background color. */
  63.     GC darkGC; /* Used to draw darker parts of the
  64.  * border. None means the shadow colors
  65.  * haven't been allocated yet.*/
  66.     GC lightGC; /* Used to draw lighter parts of
  67.  * the border. None means the shadow colors
  68.  * haven't been allocated yet. */
  69.     Tcl_HashEntry *hashPtr; /* Entry in borderTable (needed in
  70.  * order to delete structure). */
  71.     struct TkBorder *nextPtr; /* Points to the next TkBorder structure with
  72.  * the same color name.  Borders with the
  73.  * same name but different screens or
  74.  * colormaps are chained together off a
  75.  * single entry in borderTable. */
  76. } TkBorder;
  77. /*
  78.  * Maximum intensity for a color:
  79.  */
  80. #define MAX_INTENSITY 65535
  81. /*
  82.  * Declarations for platform specific interfaces used by this module.
  83.  */
  84. EXTERN TkBorder * TkpGetBorder _ANSI_ARGS_((void));
  85. EXTERN void TkpGetShadows _ANSI_ARGS_((TkBorder *borderPtr,
  86.     Tk_Window tkwin));
  87. EXTERN void TkpFreeBorder _ANSI_ARGS_((TkBorder *borderPtr));
  88. # undef TCL_STORAGE_CLASS
  89. # define TCL_STORAGE_CLASS DLLIMPORT
  90. #endif /* _TK3D */