1 2 /* 3 * bltWin.h -- 4 * 5 * Copyright 1993-1998 Lucent Technologies, Inc. 6 * 7 * Permission to use, copy, modify, and distribute this software and 8 * its documentation for any purpose and without fee is hereby 9 * granted, provided that the above copyright notice appear in all 10 * copies and that both that the copyright notice and warranty 11 * disclaimer appear in supporting documentation, and that the names 12 * of Lucent Technologies any of their entities not be used in 13 * advertising or publicity pertaining to distribution of the software 14 * without specific, written prior permission. 15 * 16 * Lucent Technologies disclaims all warranties with regard to this 17 * software, including all implied warranties of merchantability and 18 * fitness. In no event shall Lucent Technologies be liable for any 19 * special, indirect or consequential damages or any damages 20 * whatsoever resulting from loss of use, data or profits, whether in 21 * an action of contract, negligence or other tortuous action, arising 22 * out of or in connection with the use or performance of this 23 * software. 24 */ 25 26 #ifndef _BLT_WIN_H 27 #define _BLT_WIN_H 28 29 #define STRICT 30 #define WIN32_LEAN_AND_MEAN 31 #include <windows.h> 32 #undef STRICT 33 #undef WIN32_LEAN_AND_MEAN 34 #include <windowsx.h> 35 36 37 #undef STD_NORMAL_BACKGROUND 38 #undef STD_NORMAL_FOREGROUND 39 #undef STD_SELECT_BACKGROUND 40 #undef STD_SELECT_FOREGROUND 41 #undef STD_TEXT_FOREGROUND 42 #undef STD_FONT 43 #undef STD_FONT_LARGE 44 #undef STD_FONT_SMALL 45 46 #define STD_NORMAL_BACKGROUND "SystemButtonFace" 47 #define STD_NORMAL_FOREGROUND "SystemButtonText" 48 #define STD_SELECT_BACKGROUND "SystemHighlight" 49 #define STD_SELECT_FOREGROUND "SystemHighlightText" 50 #define STD_TEXT_FOREGROUND "SystemWindowText" 51 #define STD_FONT "Arial 8" 52 #define STD_FONT_LARGE "Arial 12" 53 #define STD_FONT_SMALL "Arial 6" 54 55 #ifdef CHECK_UNICODE_CALLS 56 #define _UNICODE 57 #define UNICODE 58 #define __TCHAR_DEFINED 59 typedef float *_TCHAR; 60 #define _TCHAR_DEFINED 61 typedef float *TCHAR; 62 #endif /* CHECK_UNICODE_CALLS */ 63 64 /* DOS Encapsulated PostScript File Header */ 65 #pragma pack(2) 66 typedef struct { 67 BYTE magic[4]; /* Magic number for a DOS EPS file 68 * C5,D0,D3,C6 */ 69 DWORD psStart; /* Offset of PostScript section. */ 70 DWORD psLength; /* Length of the PostScript section. */ 71 DWORD wmfStart; /* Offset of Windows Meta File section. */ 72 DWORD wmfLength; /* Length of Meta file section. */ 73 DWORD tiffStart; /* Offset of TIFF section. */ 74 DWORD tiffLength; /* Length of TIFF section. */ 75 WORD checksum; /* Checksum of header. If FFFF, ignore. */ 76 } DOSEPSHEADER; 77 #pragma pack() 78 79 /* Aldus Portable Metafile Header */ 80 #pragma pack(2) 81 typedef struct { 82 DWORD key; /* Type of metafile */ 83 WORD hmf; /* Unused. Must be NULL. */ 84 SMALL_RECT bbox; /* Bounding rectangle */ 85 WORD inch; /* Units per inch. */ 86 DWORD reserved; /* Unused. */ 87 WORD checksum; /* XOR of previous fields (10 32-bit words). */ 88 } APMHEADER; 89 #pragma pack() 90 91 extern double hypot(double x, double y); 92 extern int Blt_AsyncRead(int fd, char *buffer, unsigned int size); 93 extern int Blt_AsyncWrite(int fd, char *buffer, unsigned int size); 94 extern void Blt_CreateFileHandler(int fd, int flags, Tcl_FileProc * proc, 95 ClientData clientData); 96 extern void Blt_DeleteFileHandler(int fd); 97 extern int Blt_GetPlatformId(void); 98 extern char *Blt_LastError(void); 99 extern int Blt_GetOpenPrinter(Tcl_Interp *interp, const char *id, 100 Drawable *drawablePtr); 101 extern int Blt_PrintDialog(Tcl_Interp *interp, Drawable *drawablePtr); 102 extern int Blt_OpenPrinterDoc(Tcl_Interp *interp, const char *id); 103 extern int Blt_ClosePrinterDoc(Tcl_Interp *interp, const char *id); 104 extern void Blt_GetPrinterScale(HDC dc, double *xRatio, double *yRatio); 105 extern int Blt_StartPrintJob(Tcl_Interp *interp, Drawable drawable); 106 extern int Blt_EndPrintJob(Tcl_Interp *interp, Drawable drawable); 107 108 #undef EXPORT 109 #define EXPORT __declspec(dllexport) 110 111 #ifdef _MSC_VER 112 #define strncasecmp(s1,s2,n) _strnicmp(s1,s2,n) 113 #define strcasecmp(s1,s2) _stricmp(s1,s2) 114 #define isnan(x) _isnan(x) 115 #endif /* _MSC_VER */ 116 117 #ifdef __BORLANDC__ 118 #define isnan(x) _isnan(x) 119 #endif 120 121 #if defined(__BORLANDC__) || defined(_MSC_VER) 122 #ifdef FINITE 123 #undef FINITE 124 #define FINITE(x) _finite(x) 125 #endif 126 #endif /* __BORLANDC__ || _MSC_VER */ 127 128 #ifdef __GNUC__ 129 #include <wingdi.h> 130 #include <windowsx.h> 131 #undef Status 132 #include <winspool.h> 133 #define Status int 134 /* 135 * Add definitions missing from windgi.h, windowsx.h, and winspool.h 136 */ 137 #include <missing.h> 138 #endif /* __GNUC__ */ 139 140 #define XCopyArea Blt_EmulateXCopyArea 141 #define XCopyPlane Blt_EmulateXCopyPlane 142 #define XDrawArcs Blt_EmulateXDrawArcs 143 #define XDrawLine Blt_EmulateXDrawLine 144 #define XDrawLines Blt_EmulateXDrawLines 145 #define XDrawPoints Blt_EmulateXDrawPoints 146 #define XDrawRectangle Blt_EmulateXDrawRectangle 147 #define XDrawRectangles Blt_EmulateXDrawRectangles 148 #define XDrawSegments Blt_EmulateXDrawSegments 149 #define XDrawString Blt_EmulateXDrawString 150 #define XFillArcs Blt_EmulateXFillArcs 151 #define XFillPolygon Blt_EmulateXFillPolygon 152 #define XFillRectangle Blt_EmulateXFillRectangle 153 #define XFillRectangles Blt_EmulateXFillRectangles 154 #define XFree Blt_EmulateXFree 155 #define XGetWindowAttributes Blt_EmulateXGetWindowAttributes 156 #define XLowerWindow Blt_EmulateXLowerWindow 157 #define XMaxRequestSize Blt_EmulateXMaxRequestSize 158 #define XRaiseWindow Blt_EmulateXRaiseWindow 159 #define XReparentWindow Blt_EmulateXReparentWindow 160 #define XSetDashes Blt_EmulateXSetDashes 161 #define XUnmapWindow Blt_EmulateXUnmapWindow 162 #define XWarpPointer Blt_EmulateXWarpPointer 163 164 EXTERN GC Blt_EmulateXCreateGC(Display *display, Drawable drawable, 165 unsigned long mask, XGCValues *valuesPtr); 166 EXTERN void Blt_EmulateXCopyArea(Display *display, Drawable src, Drawable dest, 167 GC gc, int src_x, int src_y, unsigned int width, unsigned int height, 168 int dest_x, int dest_y); 169 EXTERN void Blt_EmulateXCopyPlane(Display *display, Drawable src, 170 Drawable dest, GC gc, int src_x, int src_y, unsigned int width, 171 unsigned int height, int dest_x, int dest_y, unsigned long plane); 172 EXTERN void Blt_EmulateXDrawArcs(Display *display, Drawable drawable, GC gc, 173 XArc *arcArr, int nArcs); 174 EXTERN void Blt_EmulateXDrawLine(Display *display, Drawable drawable, GC gc, 175 int x1, int y1, int x2, int y2); 176 EXTERN void Blt_EmulateXDrawLines(Display *display, Drawable drawable, GC gc, 177 XPoint *pointArr, int nPoints, int mode); 178 EXTERN void Blt_EmulateXDrawPoints(Display *display, Drawable drawable, GC gc, 179 XPoint *pointArr, int nPoints, int mode); 180 EXTERN void Blt_EmulateXDrawRectangle(Display *display, Drawable drawable, 181 GC gc, int x, int y, unsigned int width, unsigned int height); 182 EXTERN void Blt_EmulateXDrawRectangles(Display *display, Drawable drawable, 183 GC gc, XRectangle *rectArr, int nRects); 184 EXTERN void Blt_EmulateXDrawSegments(Display *display, Drawable drawable, 185 GC gc, XSegment *segArr, int nSegments); 186 EXTERN void Blt_EmulateXDrawSegments(Display *display, Drawable drawable, 187 GC gc, XSegment *segArr, int nSegments); 188 EXTERN void Blt_EmulateXDrawString(Display *display, Drawable drawable, GC gc, 189 int x, int y, _Xconst char *string, int length); 190 EXTERN void Blt_EmulateXFillArcs(Display *display, Drawable drawable, GC gc, 191 XArc *arcArr, int nArcs); 192 EXTERN void Blt_EmulateXFillPolygon(Display *display, Drawable drawable, 193 GC gc, XPoint *points, int nPoints, int shape, int mode); 194 EXTERN void Blt_EmulateXFillRectangle(Display *display, Drawable drawable, 195 GC gc, int x, int y, unsigned int width, unsigned int height); 196 EXTERN void Blt_EmulateXFillRectangles(Display *display, Drawable drawable, 197 GC gc, XRectangle *rectArr, int nRects); 198 EXTERN void Blt_EmulateXFree(void *ptr); 199 EXTERN int Blt_EmulateXGetWindowAttributes(Display *display, Window window, 200 XWindowAttributes * attrsPtr); 201 EXTERN void Blt_EmulateXLowerWindow(Display *display, Window window); 202 EXTERN void Blt_EmulateXMapWindow(Display *display, Window window); 203 EXTERN long Blt_EmulateXMaxRequestSize(Display *display); 204 EXTERN void Blt_EmulateXRaiseWindow(Display *display, Window window); 205 EXTERN void Blt_EmulateXReparentWindow(Display *display, Window window, 206 Window parent, int x, int y); 207 EXTERN void Blt_EmulateXSetDashes(Display *display, GC gc, int dashOffset, 208 _Xconst char *dashList, int n); 209 EXTERN void Blt_EmulateXUnmapWindow(Display *display, Window window); 210 EXTERN void Blt_EmulateXWarpPointer(Display *display, Window srcWindow, 211 Window destWindow, int srcX, int srcY, unsigned int srcWidth, 212 unsigned int srcHeight, int destX, int destY); 213 214 EXTERN void Blt_DrawLine2D(Display *display, Drawable drawable, GC gc, 215 POINT *screenPts, int nScreenPts); 216 217 extern unsigned char *Blt_GetBitmapData _ANSI_ARGS_((Display *display, 218 Pixmap bitmap, int width, int height, int *pitchPtr)); 219 220 extern HFONT Blt_CreateRotatedFont _ANSI_ARGS_((Tk_Window tkwin, 221 unsigned long font, double theta)); 222 223 extern HPALETTE Blt_GetSystemPalette _ANSI_ARGS_((void)); 224 225 extern HPEN Blt_GCToPen _ANSI_ARGS_((HDC dc, GC gc)); 226 227 #endif /*_BLT_WIN_H*/ 228