1 #ifndef __XCWIN32_H__ 2 #define __XCWIN32_H__ 3 4 #include <windows.h> 5 #include <commctrl.h> 6 7 typedef int Boolean; 8 typedef Boolean Bool; 9 #define True 1 10 #define False 0 11 typedef void* XtPointer; 12 typedef short Dimension; 13 typedef short Position; 14 typedef HBITMAP Pixmap; 15 typedef struct __WinWidget *Widget; 16 typedef Widget *WidgetList; 17 typedef HWND Window; 18 typedef int Pixel; 19 typedef struct { 20 int pixel; 21 int red, green, blue; 22 int flags; 23 } XColor; 24 #define DoRed 0x1 25 #define DoGreen 0x2 26 #define DoBlue 0x4 27 typedef struct __GC *GC; 28 typedef void Display; 29 typedef void* Colormap; 30 typedef int XtIntervalId; 31 typedef HCURSOR Cursor; 32 typedef void* caddr_t; 33 typedef void(*XtCallbackProc)(); 34 typedef void(*XtEventHandler)(); 35 typedef void(*XtTimerCallbackProc)(); 36 typedef void* XtAppContext; 37 typedef struct __XrmValue *XrmValuePtr; 38 typedef struct { 39 short x, y; 40 } XPoint; 41 typedef struct { 42 short width, height; 43 char *data; 44 int bits_per_pixel; 45 int bytes_per_line; 46 HBITMAP handle; 47 } XImage; 48 typedef struct { 49 int ascent, descent; 50 HFONT fid; 51 } XFontStruct; 52 typedef struct { 53 int type; 54 int x, y; 55 int button; 56 int state; 57 } XButtonEvent; 58 typedef struct { 59 int type; 60 int x, y; 61 int keycode; 62 int state; 63 } XKeyEvent; 64 typedef struct { 65 int type; 66 int x, y; 67 } XMotionEvent, XPointerMovedEvent; 68 typedef void* XCrossingEvent; 69 typedef struct { 70 int type; 71 int message_type; 72 Display* display; 73 int format; 74 HWND window; 75 union { 76 long l[5]; 77 } data; 78 } XClientMessageEvent; 79 typedef union { 80 int type; 81 XButtonEvent button; 82 XKeyEvent key; 83 XMotionEvent motion; 84 XPointerMovedEvent pointer_moved; 85 XCrossingEvent crossing; 86 XClientMessageEvent xclient; 87 } XEvent; 88 typedef unsigned int KeySym; 89 typedef struct { 90 int type; 91 void *data; 92 } Arg; 93 typedef struct __CharStruct *XCharStruct; 94 95 struct __GC { 96 /* colors */ 97 int foreground, background; 98 int function; 99 /* fill */ 100 int fill_style; 101 HBITMAP fill_stipple; 102 /* line */ 103 int line_width; 104 int line_style; 105 int line_cap; 106 int line_join; 107 int line_dash_len; 108 char *line_dash; 109 /* font */ 110 HFONT font; 111 /* misc */ 112 Boolean graphics_exposures; 113 HBITMAP clipMask; 114 }; 115 typedef struct __GC XGCValues; 116 typedef ATOM Atom; 117 typedef void XWMHints; 118 119 typedef unsigned int Cardinal; 120 #define XtOffset(p_type,field) \ 121 ((Cardinal) (((char *) (&(((p_type)NULL)->field))) - ((char *) NULL))) 122 123 #define GCForeground 0x01 124 #define GCBackground 0x02 125 #define GCFont 0x04 126 #define GCFunction 0x08 127 #define GCGraphicsExposures 0x10 128 129 #define GXcopy R2_COPYPEN 130 #define GXxor R2_XORPEN 131 132 /* TODO */ 133 #define PointerMotionMask 0x0001 134 #define ButtonMotionMask 0x0002 135 #define Button1MotionMask 0x0004 136 #define Button2MotionMask 0x0008 137 #define EnterWindowMask 0x0010 138 #define LeaveWindowMask 0x0020 139 #define ButtonPressMask 0x0040 140 #define KeyPressMask 0x0080 141 #define NoEventMask 0x0000 142 143 #define ButtonPress 0x01 144 #define ButtonRelease 0x02 145 #define KeyPress 0x03 146 #define KeyRelease 0x04 147 #define ClientMessage 0x05 148 #define MotionNotify 0x06 149 150 #define None 0 151 #define Nonconvex 0 152 #define CoordModeOrigin 0 153 #define NoSymbol 0 154 155 #define Mod1Mask 0x0001 156 #define Mod2Mask 0x0002 157 #define LockMask 0x0004 158 #define ShiftMask 0x0008 159 #define ControlMask 0x0010 160 #define Mod5Mask 0x0080 161 #define Button1 0x0100 162 #define Button2 0x0200 163 #define Button3 0x0800 164 #define Button4 0x1000 165 #define Button5 0x2000 166 #define Button1Mask Button1 167 #define Button2Mask Button2 168 #define Button3Mask Button3 169 #define Button4Mask Button4 170 #define Button5Mask Button5 171 172 #define LineSolid PS_SOLID 173 #define LineOnOffDash PS_DASH 174 #define CapRound PS_ENDCAP_ROUND 175 #define CapButt PS_ENDCAP_FLAT 176 #define CapProjecting PS_ENDCAP_SQUARE 177 #define JoinBevel PS_JOIN_BEVEL 178 #define JoinMiter PS_JOIN_MITER 179 #define FillSolid 0 180 #define FillStippled 1 181 #define FillOpaqueStippled 2 182 183 #define XtNwidth 0 184 #define XtNheight 1 185 #define XtNx 2 186 #define XtNy 3 187 #define XtNfont 4 188 #define XtNexpose 5 189 #define XtNset 6 190 #define XtNsquare 7 191 #define XtNlabelLocation 8 192 #define XtNborderWidth 9 193 #define XtNselect 10 194 #define XtNrelease 11 195 #define XtNlabel 12 196 #define XtNxResizable 13 197 #define XtNyResizable 14 198 #define XtNxRefWidget 15 199 #define XtNyRefWidget 16 200 #define XtNyAddHeight 17 201 #define XtNyAttachBottom 18 202 #define XtNxAttachRight 19 203 #define XtNyAddHeight 17 204 #define XtNyAttachBottom 18 205 #define XtNxAttachRight 19 206 #define XtNyAddHeight 17 207 #define XtNyAttachBottom 18 208 #define XtNxAttachRight 19 209 #define XtNxAddWidth 20 210 #define XtNforeground 21 211 #define XtNstring 22 212 #define XtNsetMark 23 213 #define XtNbackground 24 214 #define XtNborderColor 25 215 #define XtNrectColor 26 216 #define XtNresize 27 217 #define XtNlabelType 28 218 #define XtNrectStipple 29 219 #define XtNattachTo 30 220 #define XtNsensitive 31 221 #define XtNxOffset 32 222 #define XtNyOffset 33 223 #define XtNlayout 34 224 #define XtNinsertPosition 35 225 #define XtNgravity 36 226 #define XtNscroll 37 227 #define XtNwrap 38 228 #define XtNexecute 39 229 #define XtNkeyUp 40 230 #define XtNkeyDown 41 231 #define XtNcolormap 42 232 #define XtNstrip 43 233 234 #define XwLEFT 0 235 #define XwRECT 1 236 #define XwIMAGE 2 237 #define XwIGNORE 3 238 239 #define WestGravity 0 240 #define XwWrapOff 0 241 #define XwAutoScrollHorizontal 0 242 243 #define XwworkSpaceWidgetClass 0x01 244 #define XwtoggleWidgetClass 0x02 245 #define XwmenubuttonWidgetClass 0x03 246 #define XwformWidgetClass 0x04 247 #define XwmenuButtonWidgetClass 0x05 248 #define XwbulletinWidgetClass 0x06 249 #define XwcascadeWidgetClass 0x07 250 #define XwpopupmgrWidgetClass 0x08 251 #define XwstaticTextWidgetClass 0x09 252 #define XwpushButtonWidgetClass 0x0A 253 #define XwtextEditWidgetClass 0x0B 254 255 #define XC_xterm IDC_IBEAM 256 #define XC_watch IDC_WAIT 257 258 #define XtWindow(x) WinWindow(x) 259 #define XtAppAddTimeOut(app,delay,proc,data) WinAddTimeOut(delay,proc,data) 260 #define XtRemoveTimeOut(ID) WinRemoveTimeOut(ID) 261 #define XWarpPointer(dpy,flag,win,x1,y1,x2,y2,x3,y3) WinWarpPointer(win,x3,y3) 262 /*#define XCheckWindowEvent(dpy,win,mask,evt) WinCheckWindowEvent(win,mask,evt)*/ 263 #define XCheckWindowEvent(dpy,win,mask,evt) False 264 #define XtDispatchEvent(evt) 265 #define XtSetArg(arg,t,d) (arg.type = t, arg.data = (void*)(d)) 266 #define XtGetValues(win,args,n) WinGetValues(win,args,n) 267 #define XtSetValues(win,args,n) WinSetValues(win,args,n) 268 #define XCreatePixmap(dpy,win,w,h,depth) WinCreatePixmap(win,w,h) 269 #define XFreePixmap(dpy,w) WinFreePixmap(w) 270 #define XCreateImage(dpy,visual,depth,flag,offset,data,w,h,pad,bpl) WinCreateImage(w,h) 271 #define XDestroyImage(img) WinDestroyImage(img) 272 #define XSetLineAttributes(dpy,gc,w,style,cap,join) WinSetLineAttributes(gc,w,style,cap,join) 273 #define XCreateGC(dpy,win,mask,gc) WinCreateGC(win,mask,gc) 274 #define XFreeGC(gc) WinFreeGC(gc) 275 #define XtParent(w) WinParent(w) 276 #define XtNameToWidget(parent,name) WinNameToWindow(parent,name) 277 #define XtCreateManagedWidget(name,cls,parent,args,n) WinCreateWidget(name,cls,parent,args,n,1) 278 #define XtCreateWidget(name,cls,parent,args,n) WinCreateWidget(name,cls,parent,args,n,0) 279 #define DefaultRootWindow(dpy) GetDesktopWindow() 280 #define DefaultColormap(dpy,screen) NULL 281 #define DefaultScreen(dpy) 0 282 #define XFreeColormap(dpy,cmap) 283 #define XtDisplay(x) GetDesktopWindow() 284 #define XtCreatePopupShell(name,cls,btn,args,n) WinCreatePopup(name,args,n) 285 #define XtPopup(w,flag) WinPopup(w) 286 #define XKeysymToString(ks) WinKeyToString(ks) 287 #define XChangeProperty(dpy,win,prop,type,format,mode,data,len) 288 #define XCreateBitmapFromData(dpy,win,bits,w,h) WinCreateBitmapFromData(win,bits,w,h) 289 #define XCreatePixmapCursor(dpy,src,mask,fg,bg,xhot,yhot) WinCreateCursor(src,mask,xhot,yhot) 290 #define XCreateFontCursor(dpy,type) WinCreateStandardCursor(type) 291 #define XtOpenApplication(app,name,dummy,n,Argc,Argv,argfb,cls,arglist,narg) WinCreateTopLevel(name,Argc,Argv) 292 #define XDefineCursor(dpy,w,cur) WinSetCursor(w,cur) 293 #define XtMalloc malloc 294 #define BlackPixel(dpy,screen) RGB(0,0,0) 295 #define WhitePixel(dpy,screen) RGB(255,255,255) 296 #define XBell(dpy,len) MessageBeep(-1) 297 #define XSync(dpy,flag) WinDebug("Should sync\n") 298 #define XFlush(dpy) WinDebug("Should flush\n") 299 #define XSendEvent(dpy,win,prop,mask,evt) WinDebug("Should send an event\n") 300 #define DisplayWidth(dpy,screen) WinDesktopWidth() 301 #define DisplayHeight(dpy,screen) WinDesktopHeight() 302 #define XGetPixel(img,x,y) WinGetPixel(img,x,y) 303 #define XPutPixel(img,x,y,c) WinPutPixel(img,x,y,c) 304 #define XDrawArc(dpy,win,gc,x,y,w,h,a1,a2) WinDrawArc(win,gc,x,y,w,h,a1,a2) 305 #define XDrawLine(dpy,win,gc,x1,y1,x2,y2) WinDrawLine(win,gc,x1,y1,x2,y2) 306 #define XDrawLines(dpy,win,gc,pl,n,dummy) WinDrawLines(win,gc,pl,n) 307 #define XFillPolygon(dpy,win,gc,pl,n,x1,x2) WinFillPolygon(win,gc,pl,n) 308 #define XClearArea(dpy,win,x,y,w,h,dummy) WinClearArea(win,x,y,w,h) 309 #define XFillRectangle(dpy,win,gc,x,y,w,h) WinFillRectangle(win,gc,x,y,w,h) 310 /*#define XSetLineAttributes(dpy,gc,w,s,c,j) WinSetLineAttributes(gc,w,s,c,j)*/ 311 #define XDrawPoint(dpy,win,gc,x,y) WinDrawPoint(win,gc,x,y) 312 #define XSetForeground(dpy,gc,c) WinSetForeground(gc,c) 313 #define XSetFunction(dpy,gc,z) WinSetFunction(gc,z) 314 #define XSetBackground(dpy,gc,c) WinSetBackground(gc,c) 315 #define XCopyArea(dpy,win1,win2,gc,x,y,w,h,offx,offy) WinCopyArea(win1,win2,gc,x,y,w,h,offx,offy) 316 #define XTextWidth(font,str,len) WinTextWidth(font,str,len) 317 #define XtNumber(arr) ((int) (sizeof(arr) / sizeof(arr[0]))) 318 #define XSetFillStyle(dpy,gc,fs) WinSetFillStyle(gc,fs) 319 #define XSetDashes(dpy,gc,offset,dash,n) WinSetDashes(gc,offset,dash,n) 320 #define XSetStipple(dpy,gc,stipple) WinSetStipple(gc,stipple) 321 #define XQueryPointer(dpy,win,rr,cr,rx,ry,x,y,m) WinQueryPointer(win,x,y) 322 #define XDrawRectangle(dpy,win,gc,x,y,w,h) WinDrawRectangle(win,gc,x,y,w,h) 323 #define XtManageChild(win) WinManageChild(win) 324 #define XtUnmanageChild(win) WinUnmanageChild(win) 325 #define XRecolorCursor(dpy,cur,fg,bg) 326 #define XDrawString(dpy,win,gc,x,y,str,len) WinDrawString(win,gc,x,y,str,len) 327 #define XTextExtents(font,str,len,dum1,w,h,dum2) WinTextExtents(font,str,len,w,h) 328 #define XDisplayString(dpy) "unknown:0.0" 329 #define XQueryColors(dpy,cmap,cl,n) WinQueryColors(cl,n) 330 #define XLookupColor(dpy,cmap,cname,exact,color) WinLookupColor(cname,color) 331 #define XtAppMainLoop(app) WinAppMainLoop() 332 #define XtIsRealized(w) True 333 #define XPutImage(dpy,win,gc,img,srcx,srcy,destx,desty,w,h) WinPutImage(win,gc,img,srcx,srcy,destx,desty,w,h) 334 #define XFreeColorMap(dpy,cmap) 335 #define XtDestroyWidget(w) DeleteObject(w) 336 #define XtTranslateCoords(win,x,y,rx,ry) WinTranslateCoords(win,x,y,rx,ry) 337 #define XStringToKeysym(str) WinStringToKey(str) 338 #define XInternAtom(dpy,str,flag) AddAtom(str) 339 #define XSetClipMask(dpy,gc,pix) WinSetClipMask(gc,pix) 340 #define XSetClipOrigin(dpy,gc,x,y) 341 #define XtAddEventHandler(win,mask,flag,proc,data) WinAddEventHandler(win,mask,proc,data) 342 #define XtRemoveEventHandler(win,mask,flag,proc,data) WinRemoveEventHandler(win,mask,proc,data) 343 #define XtAddCallback(win,mask,proc,data) WinAddCallback(win,mask,proc,data) 344 #define XtRemoveCallback(win,mask,proc,data) WinRemoveCallback(win,mask,proc,data) 345 #define XtRemoveAllCallbacks(win,event) 346 #define XwTextCopyBuffer(win) WinGetText(win) 347 #define XwTextClearBuffer(win) WinClearText(win) 348 #define XLookupString(event,str,size,keyptr,flag) WinLookupString(event,keyptr) 349 #define XwPostPopup(shell,menu,button,dx,dy) WinPostPopup(menu,button,dx,dy) 350 #define XtOverrideTranslations(win,table,def) 351 352 void WinWarpPointer(HWND w, int x, int y); 353 int WinAddTimeOut(int delay, void(*proc)(), void* data); 354 void WinRemoveTimeOut(int ID); 355 int WinCheckWindowEvent(HWND w, int mask, XEvent *event); 356 void WinGetValues(Widget win, Arg *args, int n); 357 void WinSetValues(Widget win, Arg *args, int n); 358 HBITMAP WinCreatePixmap(HWND w, int width, int height); 359 XImage* WinCreateImage(int width, int height); 360 void WinSetLineAttributes(GC gc, int width, int style, int cap, int join); 361 GC WinCreateGC(HWND w, int mask, XGCValues *values); 362 void WinFreeGC(GC gc); 363 Widget WinParent(Widget w); 364 Widget WinNameToWindow(Widget parent, const char *name); 365 Widget WinCreateWidget(const char *name, int cls, Widget parent, Arg *args, int n, int show); 366 Widget WinCreatePopup(const char *name, Arg *args, int n); 367 void WinPopup(Widget w); 368 char* WinKeyToString(int ks); 369 HCURSOR WinCreateCursor(HBITMAP src, HBITMAP mask, int xhot, int yhot); 370 HBITMAP WinCreateBitmapFromData(HWND w, char *data, int width, int height); 371 HCURSOR WinCreateStandardCursor(char *type); 372 HWND WinCreateTopLevel(const char *name, int *argc, char **argv); 373 void WinSetCursor(HWND w, HCURSOR cur); 374 void WinFreePixmap(Pixmap w); 375 int WinDesktopWidth(void); 376 int WinDesktopHeight(void); 377 int WinGetPixel(XImage *img, int x, int y); 378 void WinPutPixel(XImage *img, int x, int y, int c); 379 void WinDrawArc(HWND win, GC gc, int x, int y, int w, int h, int a1, int a2); 380 void WinDrawLines(HWND win, GC gc, XPoint* pathlist, int number); 381 void WinFillPolygon(HWND win, GC gc, XPoint* pathlist, int number); 382 void WinClearArea(HWND win, int x, int y, int w, int h); 383 void WinFillRectangle(HWND win, GC gc, int x, int y, int w, int h); 384 void WinSetForeground(GC gc, int rgb); 385 int WinTextWidth(XFontStruct *f, char *s, int len); 386 void WinSetFillStyle(GC gc, int style); 387 void WinSetStipple(GC gc, Pixmap pattern); 388 void WinSetFunction(GC gc, int op); 389 void WinDrawLine(HWND win, GC gc, int x1, int y1, int x2, int y2); 390 void WinDrawPoint(HWND win, GC gc, int x, int y); 391 void WinSetBackground(GC gc, int rgb); 392 void WinCopyArea(Pixmap buf, HWND win, GC gc, int x, int y, int w, int h, int offx, int offy); 393 void WinSetDashes(GC gc, int offset, char *dash, int n); 394 void WinQueryPointer(HWND w, int *x, int *y); 395 void WinDrawRectangle(HWND w, GC gc, int x, int y, int width, int height); 396 void WinDrawString(HWND win, GC gc, int x, int y, const char *str, int len); 397 void WinTextExtents(XFontStruct *fs, char *str, int len, int *width, int *height); 398 void WinQueryColors(XColor *cl, int n); 399 void WinAppMainLoop(void); 400 void WinPutImage(HWND win, GC gc, XImage *img, int srcx, int srcy, int destx, int desty, int width, int height); 401 void WinTranslateCoords(Widget win, short x, short y, short *rx, short *ry); 402 int WinStringToKey(const char *str); 403 void WinAddEventHandler(Widget win, int event, void(*proc)(), void *data); 404 void WinRemoveEventHandler(Widget win, int event, void(*proc)(), void *data); 405 void WinAddCallback(Widget win, int event, void(*proc)(), void *data); 406 int WinFindCallback(Widget win, int event, void(**proc)(), void **data); 407 void WinRemoveCallback(Widget win, int event, void(*proc)(), void *data); 408 void WinRemoveAllCallbacks(Widget win, int event); 409 char* WinGetText(Widget win); 410 void WinClearText(Widget win); 411 int WinNamedColor(const char *cname); 412 int WinLookupColor(const char *cname, XColor *color); 413 char* WinColorName(int c); 414 HWND WinWindow(Widget w); 415 void WinManageChild(Widget w); 416 void WinUnmanageChild(Widget w); 417 void WinLookupString(XKeyEvent *event, KeySym *key); 418 void WinPostPopup(Widget menu, Widget button, int dx, int dy); 419 const char* WinBuiltinsDir(void); 420 Widget WinGetMenu(const char *name); 421 const char* WinName(Widget w); 422 int WinIsPopupMenu(Widget w); 423 424 #define KPMOD 0x1000 425 #define VKMOD 0x2000 426 427 #define XK_Control_L (VKMOD|VK_CONTROL) 428 #define XK_Control_R (VKMOD|VK_CONTROL) 429 #define XK_Alt_L (VKMOD|VK_MENU) 430 #define XK_Alt_R (VKMOD|VK_MENU) 431 #define XK_Shift_L (VKMOD|VK_SHIFT) 432 #define XK_Shift_R (VKMOD|VK_SHIFT) 433 #define XK_Caps_Lock (VKMOD|VK_CAPITAL) 434 #define XK_Num_Lock (VKMOD|VK_NUMLOCK) 435 436 #define XK_a 'a' 437 #define XK_b 'b' 438 #define XK_c 'c' 439 #define XK_d 'd' 440 #define XK_e 'e' 441 #define XK_f 'f' 442 #define XK_g 'g' 443 #define XK_h 'h' 444 #define XK_i 'i' 445 #define XK_j 'j' 446 #define XK_k 'k' 447 #define XK_l 'l' 448 #define XK_m 'm' 449 #define XK_n 'n' 450 #define XK_o 'o' 451 #define XK_p 'p' 452 #define XK_q 'q' 453 #define XK_r 'r' 454 #define XK_s 's' 455 #define XK_t 't' 456 #define XK_u 'u' 457 #define XK_v 'v' 458 #define XK_w 'w' 459 #define XK_x 'x' 460 #define XK_y 'y' 461 #define XK_z 'z' 462 #define XK_A 'A' 463 #define XK_B 'B' 464 #define XK_C 'C' 465 #define XK_D 'D' 466 #define XK_E 'E' 467 #define XK_F 'F' 468 #define XK_G 'G' 469 #define XK_H 'H' 470 #define XK_I 'I' 471 #define XK_J 'J' 472 #define XK_K 'K' 473 #define XK_L 'L' 474 #define XK_M 'M' 475 #define XK_N 'N' 476 #define XK_O 'O' 477 #define XK_P 'P' 478 #define XK_Q 'Q' 479 #define XK_R 'R' 480 #define XK_S 'S' 481 #define XK_T 'T' 482 #define XK_U 'U' 483 #define XK_V 'V' 484 #define XK_W 'W' 485 #define XK_X 'X' 486 #define XK_Y 'Y' 487 #define XK_Z 'Z' 488 #define XK_Home (VKMOD|VK_HOME) 489 #define XK_Delete (VKMOD|VK_DELETE) 490 #define XK_Escape (VKMOD|VK_ESCAPE) 491 #define XK_F19 (VKMOD|VK_F19) 492 #define XK_Right (VKMOD|VK_RIGHT) 493 #define XK_Left (VKMOD|VK_LEFT) 494 #define XK_Down (VKMOD|VK_DOWN) 495 #define XK_Up (VKMOD|VK_UP) 496 #define XK_Insert (VKMOD|VK_INSERT) 497 #define XK_End (VKMOD|VK_END) 498 #define XK_Return (VKMOD|VK_RETURN) 499 #define XK_BackSpace (VKMOD|VK_BACK) 500 #define XK_Undo (VKMOD|VK_F6) 501 #define XK_Redo (VKMOD|VK_F7) 502 #define XK_Tab (VKMOD|VK_TAB) 503 #define XK_percent '%' 504 #define XK_period '.' 505 #define XK_bar '|' 506 #define XK_greater '>' 507 #define XK_less '<' 508 #define XK_question '?' 509 #define XK_colon ':' 510 #define XK_underscore '_' 511 #define XK_space ' ' 512 #define XK_plus '+' 513 #define XK_minus '-' 514 #define XK_slash '/' 515 #define XK_backslash '\\' 516 #define XK_1 '1' 517 #define XK_2 '2' 518 #define XK_3 '3' 519 #define XK_4 '4' 520 #define XK_5 '5' 521 #define XK_6 '6' 522 #define XK_7 '7' 523 #define XK_8 '8' 524 #define XK_9 '9' 525 #define XK_0 '0' 526 #define XK_KP_1 (KPMOD|XK_1) 527 #define XK_KP_2 (KPMOD|XK_2) 528 #define XK_KP_3 (KPMOD|XK_3) 529 #define XK_KP_4 (KPMOD|XK_4) 530 #define XK_KP_5 (KPMOD|XK_5) 531 #define XK_KP_6 (KPMOD|XK_6) 532 #define XK_KP_7 (KPMOD|XK_7) 533 #define XK_KP_8 (KPMOD|XK_8) 534 #define XK_KP_9 (KPMOD|XK_9) 535 #define XK_KP_0 (KPMOD|XK_0) 536 #define XK_KP_Enter (KPMOD|VKMOD|VK_RETURN) 537 #define XK_KP_Add (KPMOD|XK_plus) 538 #define XK_KP_Subtract (KPMOD|XK_minus) 539 #define XK_KP_End (KPMOD|VKMOD|VK_END) 540 #define XK_KP_Home (KPMOD|VKMOD|VK_HOME) 541 #define XK_KP_Up (KPMOD|VKMOD|VK_UP) 542 #define XK_KP_Down (KPMOD|VKMOD|VK_DOWN) 543 #define XK_KP_Right (KPMOD|VKMOD|VK_RIGHT) 544 #define XK_KP_Left (KPMOD|VKMOD|VK_LEFT) 545 #define XK_KP_Next (KPMOD|VKMOD|VK_NEXT) 546 #define XK_KP_Prior (KPMOD|VKMOD|VK_PRIOR) 547 #define XK_KP_Begin (KPMOD|VKMOD|VK_CLEAR) 548 549 struct direct { 550 char *d_name; 551 }; 552 typedef struct { 553 HANDLE hnd; 554 WIN32_FIND_DATA fd; 555 int dirty; 556 struct direct d; 557 } DIR; 558 DIR* opendir(const char*); 559 struct direct* readdir(DIR*); 560 void closedir(DIR*); 561 562 #define snprintf _snprintf 563 #define vsnprintf _vsnprintf 564 #define va_copy(a,b) a=b 565 #define pipe _pipe 566 #define strdup _strdup 567 #define unlink _unlink 568 #define putenv _putenv 569 #define fdopen _fdopen 570 571 #define usleep(x) if (x < 1000) WinDebug("Cannot sleep less than 1us\n"); else Sleep(x/1000); 572 573 #ifdef USE_WIN32_COM 574 extern void win32_comscript(); 575 #ifdef USE_WIN32_DOTNET 576 extern void win32_comdotnet(); 577 #endif 578 enum win32_events { 579 ModifiedChanged, 580 ZoomChanged 581 }; 582 extern void win32_fire_event(int event_type); 583 #endif 584 585 extern void win32_new_window(Widget, void*, void*); 586 587 #endif 588