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

通讯编程

开发平台:

Visual C++

  1. /*
  2.  * tkMacPort.h --
  3.  *
  4.  * This file is included by all of the Tk C files.  It contains
  5.  * information that may be configuration-dependent, such as
  6.  * #includes for system include files and a few other things.
  7.  *
  8.  * Copyright (c) 1994-1996 Sun Microsystems, Inc.
  9.  *
  10.  * See the file "license.terms" for information on usage and redistribution
  11.  * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  12.  *
  13.  * RCS: @(#) $Id: tkMacPort.h,v 1.11 2001/11/23 02:06:14 das Exp $
  14.  */
  15. #ifndef _TKMACPORT
  16. #define _TKMACPORT
  17. /*
  18.  * Macro to use instead of "void" for arguments that must have
  19.  * type "void *" in ANSI C;  maps them to type "char *" in
  20.  * non-ANSI systems.  This macro may be used in some of the include
  21.  * files below, which is why it is defined here.
  22.  */
  23. #ifndef VOID
  24. #   ifdef __STDC__
  25. #       define VOID void
  26. #   else
  27. #       define VOID char
  28. #   endif
  29. #endif
  30. #ifndef _TCL
  31. #   include <tcl.h>
  32. #endif
  33. #include <time.h>
  34. #include <stdlib.h>
  35. #include <string.h>
  36. #include "tclMath.h"
  37. #include <ctype.h>
  38. #include <limits.h>
  39. #include <Xlib.h>
  40. #include <cursorfont.h>
  41. #include <keysym.h>
  42. #include <Xatom.h>
  43. #include <Xfuncproto.h>
  44. #include <Xutil.h>
  45. #include "tkIntXlibDecls.h"
  46. /*
  47.  * Not all systems declare the errno variable in errno.h. so this
  48.  * file does it explicitly.
  49.  */
  50. extern int errno;
  51. /*
  52.  * Define "NBBY" (number of bits per byte) if it's not already defined.
  53.  */
  54. #ifndef NBBY
  55. #   define NBBY 8
  56. #endif
  57. /*
  58.  * Declarations for various library procedures that may not be declared
  59.  * in any other header file.
  60.  */
  61. #ifndef panic /* In a stubs-aware setting, this could confuse the #define */
  62. EXTERN void  panic  _ANSI_ARGS_(TCL_VARARGS(char *, string));
  63. #endif
  64. #ifndef strcasecmp
  65. EXTERN int strcasecmp _ANSI_ARGS_((CONST char *s1,
  66.     CONST char *s2));
  67. #endif
  68. #ifndef strncasecmp     
  69. EXTERN int strncasecmp _ANSI_ARGS_((CONST char *s1,
  70.     CONST char *s2, size_t n));
  71. #endif
  72. /*
  73.  * Defines for X functions that are used by Tk but are treated as
  74.  * no-op functions on the Macintosh.
  75.  */
  76. #define XFlush(display)
  77. #define XFree(data) {if ((data) != NULL) ckfree((char *) (data));}
  78. #define XGrabServer(display)
  79. #define XNoOp(display) {display->request++;}
  80. #define XUngrabServer(display)
  81. #define XSynchronize(display, bool) {display->request++;}
  82. #define XSync(display, bool) {display->request++;}
  83. #define XVisualIDFromVisual(visual) (visual->visualid)
  84. /*
  85.  * The following functions are not used on the Mac, so we stub them out.
  86.  */
  87. #define TkFreeWindowId(dispPtr,w)
  88. #define TkInitXId(dispPtr)
  89. #define TkpButtonSetDefaults(specPtr) {}
  90. #define TkpCmapStressed(tkwin,colormap) (0)
  91. #define TkpFreeColor(tkColPtr)
  92. #define TkSetPixmapColormap(p,c) {}
  93. #define TkpSync(display)
  94. /*
  95.  * The following macro returns the pixel value that corresponds to the
  96.  * RGB values in the given XColor structure.
  97.  */
  98. #define PIXEL_MAGIC ((unsigned char) 0x69)
  99. #define TkpGetPixel(p) ((((((PIXEL_MAGIC << 8) 
  100. | (((p)->red >> 8) & 0xff)) << 8) 
  101. | (((p)->green >> 8) & 0xff)) << 8) 
  102. | (((p)->blue >> 8) & 0xff))
  103. /*
  104.  * This macro stores a representation of the window handle in a string.
  105.  * This should perhaps use the real size of an XID.
  106.  */
  107. #define TkpPrintWindowId(buf,w) 
  108. sprintf((buf), "0x%x", (unsigned int) (w))
  109. /*
  110.  * TkpScanWindowId is just an alias for Tcl_GetInt on Unix.
  111.  */
  112. #define TkpScanWindowId(i,s,wp) 
  113. Tcl_GetInt((i),(s),(int *)(wp))
  114. /*
  115.  * Magic pixel values for dynamic (or active) colors.
  116.  */
  117. #define HIGHLIGHT_PIXEL 31
  118. #define HIGHLIGHT_TEXT_PIXEL 33
  119. #define CONTROL_TEXT_PIXEL 35
  120. #define CONTROL_BODY_PIXEL 37
  121. #define CONTROL_FRAME_PIXEL 39
  122. #define WINDOW_BODY_PIXEL 41
  123. #define MENU_ACTIVE_PIXEL 43
  124. #define MENU_ACTIVE_TEXT_PIXEL 45
  125. #define MENU_BACKGROUND_PIXEL 47
  126. #define MENU_DISABLED_PIXEL 49
  127. #define MENU_TEXT_PIXEL 51
  128. #define APPEARANCE_PIXEL 52
  129. /*
  130.  * The following declaration is used to get access to a private Tcl interface
  131.  * that is needed for portability reasons.
  132.  */
  133. #ifndef _TCLINT
  134. #include <tclInt.h>
  135. #endif
  136. #endif /* _TKMACPORT */