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

通讯编程

开发平台:

Visual C++

  1. /*
  2.  * tkColor.h --
  3.  *
  4.  * Declarations of data types and functions used by the
  5.  * Tk color 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: tkColor.h,v 1.6 1999/11/19 22:00:03 hobbs Exp $
  13.  */
  14. #ifndef _TKCOLOR
  15. #define _TKCOLOR
  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 used to keep track of
  23.  * each color that is being used by the application; typically there
  24.  * is a colormap entry allocated for each of these colors.
  25.  */
  26. #define TK_COLOR_BY_NAME 1
  27. #define TK_COLOR_BY_VALUE 2
  28. #define COLOR_MAGIC ((unsigned int) 0x46140277)
  29. typedef struct TkColor {
  30.     XColor color; /* Information about this color. */
  31.     unsigned int magic; /* Used for quick integrity check on this
  32.  * structure.   Must always have the
  33.  * value COLOR_MAGIC. */
  34.     GC gc; /* Simple gc with this color as foreground
  35.  * color and all other fields defaulted.
  36.  * May be None. */
  37.     Screen *screen; /* Screen where this color is valid.  Used
  38.  * to delete it, and to find its display. */
  39.     Colormap colormap; /* Colormap from which this entry was
  40.  * allocated. */
  41.     Visual *visual;             /* Visual associated with colormap. */
  42.     int resourceRefCount; /* Number of active uses of this color (each
  43.  * active use corresponds to a call to
  44.  * Tk_AllocColorFromObj or Tk_GetColor).
  45.  * If this count is 0, then this TkColor
  46.  * structure is no longer valid and it isn't
  47.  * present in a hash table: it is being
  48.  * kept around only because there are objects
  49.  * referring to it.  The structure is freed
  50.  * when resourceRefCount and objRefCount
  51.  * are both 0. */
  52.     int objRefCount; /* The number of Tcl objects that reference
  53.  * this structure. */
  54.     int type; /* TK_COLOR_BY_NAME or TK_COLOR_BY_VALUE */
  55.     Tcl_HashEntry *hashPtr; /* Pointer to hash table entry for this
  56.  * structure. (for use in deleting entry). */
  57.     struct TkColor *nextPtr; /* Points to the next TkColor structure with
  58.  * the same color name.  Colors with the
  59.  * same name but different screens or
  60.  * colormaps are chained together off a
  61.  * single entry in nameTable.  For colors in
  62.  * valueTable (those allocated by
  63.  * Tk_GetColorByValue) this field is always
  64.  * NULL. */
  65. } TkColor;
  66. /*
  67.  * Common APIs exported from all platform-specific implementations.
  68.  */
  69. #ifndef TkpFreeColor
  70. EXTERN void TkpFreeColor _ANSI_ARGS_((TkColor *tkColPtr));
  71. #endif
  72. EXTERN TkColor * TkpGetColor _ANSI_ARGS_((Tk_Window tkwin,
  73.     Tk_Uid name));
  74. EXTERN TkColor * TkpGetColorByValue _ANSI_ARGS_((Tk_Window tkwin,
  75.     XColor *colorPtr));
  76. # undef TCL_STORAGE_CLASS
  77. # define TCL_STORAGE_CLASS DLLIMPORT
  78. #endif /* _TKCOLOR */