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

通讯编程

开发平台:

Visual C++

  1. /*
  2.  * tkWinPort.h --
  3.  *
  4.  * This header file handles porting issues that occur because of
  5.  * differences between Windows and Unix. It should be the only
  6.  * file that contains #ifdefs to handle different flavors of OS.
  7.  *
  8.  * Copyright (c) 1995-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: tkWinPort.h,v 1.9 2002/10/19 02:10:20 hobbs Exp $
  14.  */
  15. #ifndef _WINPORT
  16. #define _WINPORT
  17. #include <X11/Xlib.h>
  18. #include <X11/cursorfont.h>
  19. #include <X11/keysym.h>
  20. #include <X11/Xatom.h>
  21. #include <X11/Xutil.h>
  22. #include <malloc.h>
  23. #include <errno.h>
  24. #include <ctype.h>
  25. #include <math.h>
  26. #include <stdlib.h>
  27. #include <string.h>
  28. #include <limits.h>
  29. #include <fcntl.h>
  30. #include <io.h>
  31. /*
  32.  * Need to block out this include for building extensions with MetroWerks
  33.  * compiler for Win32.
  34.  */
  35. #ifndef __MWERKS__
  36. #include <sys/stat.h>
  37. #endif
  38. #include <time.h>
  39. #ifdef __CYGWIN__
  40. #    define _T(x) L##x
  41. #else
  42. #    include <tchar.h>
  43. #endif
  44. #ifdef _MSC_VER
  45. #    define hypot _hypot
  46. #endif /* _MSC_VER */
  47. #ifndef __GNUC__
  48. #    define strncasecmp strnicmp
  49. #    define strcasecmp stricmp
  50. #endif
  51. #define NBBY 8
  52. #ifndef OPEN_MAX
  53. #define OPEN_MAX 32
  54. #endif
  55. /*
  56.  * The following define causes Tk to use its internal keysym hash table
  57.  */
  58. #define REDO_KEYSYM_LOOKUP
  59. /*
  60.  * The following macro checks to see whether there is buffered
  61.  * input data available for a stdio FILE.
  62.  */
  63. #ifdef _MSC_VER
  64. #    define TK_READ_DATA_PENDING(f) ((f)->_cnt > 0)
  65. #else /* _MSC_VER */
  66. #    define TK_READ_DATA_PENDING(f) ((f)->level > 0)
  67. #endif /* _MSC_VER */
  68. /*
  69.  * The following stubs implement various calls that don't do anything
  70.  * under Windows.
  71.  */
  72. #define TkFreeWindowId(dispPtr,w)
  73. #define TkInitXId(dispPtr)
  74. #define TkpCmapStressed(tkwin,colormap) (0)
  75. #define XFlush(display)
  76. #define XGrabServer(display)
  77. #define XUngrabServer(display)
  78. #define TkpSync(display)
  79. /*
  80.  * The following functions are implemented as macros under Windows.
  81.  */
  82. #define XFree(data) {if ((data) != NULL) ckfree((char *) (data));}
  83. #define XNoOp(display) {display->request++;}
  84. #define XSynchronize(display, bool) {display->request++;}
  85. #define XSync(display, bool) {display->request++;}
  86. #define XVisualIDFromVisual(visual) (visual->visualid)
  87. /*
  88.  * The following Tk functions are implemented as macros under Windows.
  89.  */
  90. #define TkpGetPixel(p) (((((p)->red >> 8) & 0xff) 
  91. | ((p)->green & 0xff00) | (((p)->blue << 8) & 0xff0000)) | 0x20000000)
  92. /*
  93.  * These calls implement native bitmaps which are not currently 
  94.  * supported under Windows.  The macros eliminate the calls.
  95.  */
  96. #define TkpDefineNativeBitmaps()
  97. #define TkpCreateNativeBitmap(display, source) None
  98. #define TkpGetNativeAppBitmap(display, name, w, h) None
  99. /*
  100.  * Define timezone for gettimeofday.
  101.  */
  102. struct timezone {
  103.     int tz_minuteswest;
  104.     int tz_dsttime;
  105. };
  106. #ifndef _TCLINT
  107. #include <tclInt.h>
  108. #endif
  109. #endif /* _WINPORT */