summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlperl/lib/Tk/pTk/tkWinPort.h
diff options
context:
space:
mode:
Diffstat (limited to 'Master/tlpkg/tlperl/lib/Tk/pTk/tkWinPort.h')
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkWinPort.h156
1 files changed, 156 insertions, 0 deletions
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkWinPort.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkWinPort.h
new file mode 100644
index 00000000000..3c95b5d5d10
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Tk/pTk/tkWinPort.h
@@ -0,0 +1,156 @@
+/*
+ * tkWinPort.h --
+ *
+ * This header file handles porting issues that occur because of
+ * differences between Windows and Unix. It should be the only
+ * file that contains #ifdefs to handle different flavors of OS.
+ *
+ * Copyright (c) 1995-1996 Sun Microsystems, Inc.
+ *
+ * See the file "license.terms" for information on usage and redistribution
+ * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+ *
+ * RCS: @(#) $Id: tkWinPort.h,v 1.9 2002/10/19 02:10:20 hobbs Exp $
+ */
+
+#ifndef _WINPORT
+#define _WINPORT
+#define NEED_REAL_STDIO
+#include <X11/Xlib.h>
+#include <X11/cursorfont.h>
+#include <X11/keysym.h>
+#include <X11/Xatom.h>
+#include <X11/Xutil.h>
+
+#include <errno.h>
+#include <ctype.h>
+#include <math.h>
+#include <stdlib.h>
+#include <string.h>
+#include <limits.h>
+#include <fcntl.h>
+#include <io.h>
+#ifdef __EMX__
+# include <sys/types.h>
+#endif
+
+/*
+ * Need to block out this include for building extensions with MetroWerks
+ * compiler for Win32.
+ */
+
+#ifndef __MWERKS__
+#include <sys/stat.h>
+#endif
+
+#include <time.h>
+#ifdef __CYGWIN__
+# define _T(x) L##x
+#else
+# include <tchar.h>
+#endif
+
+#ifdef _MSC_VER
+# define hypot _hypot
+#else /* _MSC_VER */
+# ifdef __EMX__
+# define strncasecmp strnicmp
+# endif
+#endif /* _MSC_VER */
+
+#ifndef __GNUC__
+# define strncasecmp strnicmp
+# define strcasecmp stricmp
+#endif
+
+#define NBBY 8
+
+#ifndef OPEN_MAX
+#define OPEN_MAX 32
+#endif
+
+/*
+ * The following define causes Tk to use its internal keysym hash table
+ */
+
+#define REDO_KEYSYM_LOOKUP
+
+/*
+ * The following macro checks to see whether there is buffered
+ * input data available for a stdio FILE.
+ */
+
+#ifdef _MSC_VER
+# define TK_READ_DATA_PENDING(f) ((f)->_cnt > 0)
+#else /* _MSC_VER */
+# define TK_READ_DATA_PENDING(f) ((f)->level > 0)
+#endif /* _MSC_VER */
+
+/*
+ * The following stubs implement various calls that don't do anything
+ * under Windows.
+ */
+
+#define TkFreeWindowId(dispPtr,w)
+#define TkInitXId(dispPtr)
+#define TkpCmapStressed(tkwin,colormap) (0)
+#define XFlush(display)
+#define XGrabServer(display)
+#define XUngrabServer(display)
+#define TkpSync(display)
+
+/*
+ * The following functions are implemented as macros under Windows.
+ */
+
+#define XFree(data) {if ((data) != NULL) ckfree((char *) (data));}
+#define XNoOp(display) {display->request++;}
+#define XSynchronize(display, bool) {display->request++;}
+#define XSync(display, bool) {display->request++;}
+#define XVisualIDFromVisual(visual) (visual->visualid)
+
+/* Additional translations needed for Tk extensions (Pixmap). */
+
+#define XPutImage(display, dr, gc, i, a, b, c, d, e, f) \
+ TkPutImage(NULL, 0, display, dr, gc, i, a, b, c, d, e, f)
+#define XDefaultVisual(display, screen) ((screen)->root_visual)
+#define XDefaultScreen(display) ((display)->screens)
+#define XDefaultColormap(display, screen) ((screen)->cmap)
+#define XDefaultDepth(display, screen) ((screen)->root_depth)
+
+/*
+ * The following Tk functions are implemented as macros under Windows.
+ */
+
+#define TkpGetPixel(p) (((((p)->red >> 8) & 0xff) \
+ | ((p)->green & 0xff00) | (((p)->blue << 8) & 0xff0000)) | 0x20000000)
+
+/*
+ * These calls implement native bitmaps which are not currently
+ * supported under Windows. The macros eliminate the calls.
+ */
+
+#define TkpDefineNativeBitmaps()
+#define TkpCreateNativeBitmap(display, source) None
+#define TkpGetNativeAppBitmap(display, name, w, h) None
+
+/*
+ * Define timezone for gettimeofday.
+ */
+#if 0
+struct timezone {
+ int tz_minuteswest;
+ int tz_dsttime;
+};
+#else
+#undef timezone
+struct timezone;
+struct timeval;
+#endif
+
+#ifndef _TCLINT
+#include <tclInt.h>
+#endif
+
+
+#endif /* _WINPORT */