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

通讯编程

开发平台:

Visual C++

  1. /*
  2.  * Copyright (c) 1997 Regents of the University of California.
  3.  * All rights reserved.
  4.  *
  5.  * Redistribution and use in source and binary forms, with or without
  6.  * modification, are permitted provided that the following conditions
  7.  * are met:
  8.  * 1. Redistributions of source code must retain the above copyright
  9.  *    notice, this list of conditions and the following disclaimer.
  10.  * 2. Redistributions in binary form must reproduce the above copyright
  11.  *    notice, this list of conditions and the following disclaimer in the
  12.  *    documentation and/or other materials provided with the distribution.
  13.  * 3. All advertising materials mentioning features or use of this software
  14.  *    must display the following acknowledgement:
  15.  *       This product includes software developed by the Computer Systems
  16.  *       Engineering Group at Lawrence Berkeley Laboratory.
  17.  * 4. Neither the name of the University nor of the Laboratory may be used
  18.  *    to endorse or promote products derived from this software without
  19.  *    specific prior written permission.
  20.  *
  21.  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  22.  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  23.  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  24.  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  25.  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  26.  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  27.  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  28.  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  29.  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  30.  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  31.  * SUCH DAMAGE.
  32.  *
  33.  * ------------
  34.  *
  35.  * Filename: tkcompat.h
  36.  *   -- created on Thu Oct 02 1997 
  37.  *  
  38.  *  @(#) $Header: /cvsroot/nsnam/nam-1/tkcompat.h,v 1.2 2003/10/11 22:56:51 xuanc Exp $
  39.  *
  40.  * Contents: Tk4.2 / 8.0 compatibility declarations
  41.  */
  42. #ifndef MASH_TKCOMPAT_H
  43. #define MASH_TKCOMPAT_H
  44. #ifndef TK_MAJOR_VERSION
  45. #error "you need to include tk.h first"
  46. #endif
  47. /*
  48.  * Tk4.2 / 8.0 compatibility code
  49.  *
  50.  *  Note that they are not fool-proof implementations, but just enough
  51.  *  to get by
  52.  */
  53. #if TK_MAJOR_VERSION < 8
  54. #include <X11/Xlib.h>
  55. #ifdef __cplusplus
  56. extern "C" {
  57. #endif
  58. typedef XFontStruct* Tk_Font;
  59. #define Tk_FontId(pXFontStruct) (pXFontStruct->fid)
  60. #define Tk_TextWidth(pf, str, len) XTextWidth(pf, str, len)
  61. /*
  62.  * The following structure is used by Tk_GetFontMetrics() to return
  63.  * information about the properties of a Tk_Font.  
  64.  */
  65. typedef struct Tk_FontMetrics {
  66.     int ascent; /* The amount in pixels that the tallest
  67.  * letter sticks up above the baseline, plus
  68.  * any extra blank space added by the designer
  69.  * of the font. */
  70.     int descent; /* The largest amount in pixels that any
  71.  * letter sticks below the baseline, plus any
  72.  * extra blank space added by the designer of
  73.  * the font. */
  74.     int linespace; /* The sum of the ascent and descent.  How
  75.  * far apart two lines of text in the same
  76.  * font should be placed so that none of the
  77.  * characters in one line overlap any of the
  78.  * characters in the other line. */
  79. } Tk_FontMetrics;
  80. extern void Tk_GetFontMetrics(Tk_Font font, Tk_FontMetrics *fmPtr);
  81. #define Tk_DrawChars(display, drawable, gc, tkfont, string, length, x, y) 
  82. XDrawString(display, drawable, gc, x, y, string, length)
  83. #define Tk_GetFont Tk_GetFontStruct
  84. #define Tk_FreeFont Tk_FreeFontStruct
  85. #define Tk_NameOfFont Tk_NameOfFontStruct
  86. #define Tk_GetHINSTANCE TkWinGetAppInstance
  87. #ifdef __cplusplus
  88. };
  89. #endif
  90. #endif /* TK_MAJOR_VERSION < 8 */
  91. /* compatible char definition for versions < 8.4 */
  92. /* NOTE: tcl8.3.2 defines CONST, but used it in other places...? */
  93. #if TCL_MAJOR_VERSION < 8 || TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION < 4
  94.   #define CONST84
  95.   #define CONST84_RETURN
  96. #endif /* */
  97.     
  98. #endif /* #ifdef TKCOMPAT_H */