123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326 |
- #ifndef __win32_x11_h__
- #define __win32_x11_h__
-
- /* Copyright (c) Nate Robins, 1997. */
-
- /* This program is freely distributable without licensing fees
- and is provided without guarantee or warrantee expressed or
- implied. This program is -not- in the public domain. */
-
- #include <stdlib.h>
- #include <windows.h>
-
- /* These definitions are missing from windows.h */
- WINGDIAPI int WINAPI wglChoosePixelFormat(HDC, PIXELFORMATDESCRIPTOR *);
- WINGDIAPI int WINAPI wglDescribePixelFormat(HDC, int, UINT, LPPIXELFORMATDESCRIPTOR);
- WINGDIAPI int WINAPI wglGetPixelFormat(HDC);
- WINGDIAPI BOOL WINAPI wglSetPixelFormat(HDC, int, PIXELFORMATDESCRIPTOR *);
- WINGDIAPI BOOL WINAPI wglSwapBuffers(HDC);
-
- /* Type definitions (conversions) */
- typedef int Visual; /* Win32 equivalent of X11 type */
- typedef HWND Window;
- typedef HPALETTE Colormap;
- typedef PIXELFORMATDESCRIPTOR XVisualInfo;
- typedef BOOL Bool;
- typedef MSG XEvent;
- typedef HDC Display;
- typedef HCURSOR Cursor;
-
- typedef int Atom; /* dummies */
- typedef int XDevice;
- typedef int Status;
-
- #define True TRUE /* Win32 equivalents of X11 booleans */
- #define False FALSE
-
- #define None 0L /* universal null resource or null atom */
-
- /* Input Event Masks. Used as event-mask window attribute and as arguments
- to Grab requests. Not to be confused with event names. */
-
- #define NoEventMask 0L
- #define KeyPressMask (1L<<0)
- #define KeyReleaseMask (1L<<1)
- #define ButtonPressMask (1L<<2)
- #define ButtonReleaseMask (1L<<3)
- #define EnterWindowMask (1L<<4)
- #define LeaveWindowMask (1L<<5)
- #define PointerMotionMask (1L<<6)
- #define PointerMotionHintMask (1L<<7)
- #define Button1MotionMask (1L<<8)
- #define Button2MotionMask (1L<<9)
- #define Button3MotionMask (1L<<10)
- #define Button4MotionMask (1L<<11)
- #define Button5MotionMask (1L<<12)
- #define ButtonMotionMask (1L<<13)
- #define KeymapStateMask (1L<<14)
- #define ExposureMask (1L<<15)
- #define VisibilityChangeMask (1L<<16)
- #define StructureNotifyMask (1L<<17)
- #define ResizeRedirectMask (1L<<18)
- #define SubstructureNotifyMask (1L<<19)
- #define SubstructureRedirectMask (1L<<20)
- #define FocusChangeMask (1L<<21)
- #define PropertyChangeMask (1L<<22)
- #define ColormapChangeMask (1L<<23)
- #define OwnerGrabButtonMask (1L<<24)
-
- /* Key masks. Used as modifiers to GrabButton and GrabKey, results of
- QueryPointer, state in various key-, mouse-, and button-related
- events. */
-
- #define ShiftMask (1<<0)
- #define LockMask (1<<1)
- #define ControlMask (1<<2)
- #define Mod1Mask (1<<3)
- #define Mod2Mask (1<<4)
- #define Mod3Mask (1<<5)
- #define Mod4Mask (1<<6)
- #define Mod5Mask (1<<7)
-
- /* Window classes used by CreateWindow */
- /* Note that CopyFromParent is already defined as 0 above */
-
- #define InputOutput 1
- #define InputOnly 2
-
- /* Window attributes for CreateWindow and ChangeWindowAttributes */
-
- #define CWBackPixmap (1L<<0)
- #define CWBackPixel (1L<<1)
- #define CWBorderPixmap (1L<<2)
- #define CWBorderPixel (1L<<3)
- #define CWBitGravity (1L<<4)
- #define CWWinGravity (1L<<5)
- #define CWBackingStore (1L<<6)
- #define CWBackingPlanes (1L<<7)
- #define CWBackingPixel (1L<<8)
- #define CWOverrideRedirect (1L<<9)
- #define CWSaveUnder (1L<<10)
- #define CWEventMask (1L<<11)
- #define CWDontPropagate (1L<<12)
- #define CWColormap (1L<<13)
- #define CWCursor (1L<<14)
-
- /* ConfigureWindow structure */
-
- #define CWX (1<<0)
- #define CWY (1<<1)
- #define CWWidth (1<<2)
- #define CWHeight (1<<3)
- #define CWBorderWidth (1<<4)
- #define CWSibling (1<<5)
- #define CWStackMode (1<<6)
-
-
- /* Used in GetWindowAttributes reply */
-
- #define IsUnmapped 0
- #define IsUnviewable 1
- #define IsViewable 2
-
- /* Window stacking method (in configureWindow) */
-
- #define Above 0
- #define Below 1
- #define TopIf 2
- #define BottomIf 3
- #define Opposite 4
-
- /* For CreateColormap */
-
- #define AllocNone 0 /* create map with no entries */
- #define AllocAll 1 /* allocate entire map writeable */
-
-
- /* Flags used in StoreNamedColor, StoreColors */
-
- #define DoRed (1<<0)
- #define DoGreen (1<<1)
- #define DoBlue (1<<2)
-
- /*
- * Bitmask returned by XParseGeometry(). Each bit tells if the corresponding
- * value (x, y, width, height) was found in the parsed string.
- */
- #define NoValue 0x0000
- #define XValue 0x0001
- #define YValue 0x0002
- #define WidthValue 0x0004
- #define HeightValue 0x0008
- #define AllValues 0x000F
- #define XNegative 0x0010
- #define YNegative 0x0020
-
- /* flags argument in size hints */
- #define USPosition (1L << 0) /* user specified x, y */
- #define USSize (1L << 1) /* user specified width, height */
-
- /* definitions for initial window state */
- #define WithdrawnState 0 /* for windows that are not mapped */
- #define NormalState 1 /* most applications want to start this way */
- #define IconicState 3 /* application wants to start as an icon */
- #define GameModeState 4 /* Win32 GLUT only (not in Xlib!). */
-
- /* Type definitions */
-
- typedef struct {
- unsigned int background_pixmap; /* background pixmap */
- unsigned long background_pixel; /* background pixel */
- unsigned long border_pixel; /* border pixel value */
- long event_mask; /* set of events that should be saved */
- long do_not_propagate_mask; /* set of events that should not propagate */
- Bool override_redirect; /* boolean value for override-redirect */
- Colormap colormap; /* color map to be associated with window */
- } XSetWindowAttributes;
-
- typedef struct {
- unsigned long pixel;
- unsigned short red, green, blue;
- char flags; /* do_red, do_green, do_blue */
- } XColor;
-
- typedef struct {
- unsigned char *value; /* same as Property routines */
- Atom encoding; /* prop type */
- int format; /* prop data format: 8, 16, or 32 */
- unsigned long nitems; /* number of data items in value */
- } XTextProperty;
-
- typedef struct {
- long flags; /* marks which fields in this structure are defined */
- int x, y; /* obsolete for new window mgrs, but clients */
- int width, height; /* should set so old wm's don't mess up */
- } XSizeHints;
-
- /* Functions emulated by macros. */
-
- #define XFreeColormap(display, colormap) \
- DeleteObject(colormap)
-
- #define XCreateFontCursor(display, shape) \
- LoadCursor(NULL, shape)
-
- #define XDefineCursor(display, window, cursor) \
- SetCursor(cursor)
-
- #define XFlush(display) \
- /* Nothing. */
-
- #define DisplayWidth(display, screen) \
- GetSystemMetrics(SM_CXSCREEN)
-
- #define DisplayHeight(display, screen) \
- GetSystemMetrics(SM_CYSCREEN)
-
- #define XMapWindow(display, window) \
- ShowWindow(window, SW_SHOWNORMAL)
-
- #define XUnmapWindow(display, window) \
- ShowWindow(window, SW_HIDE)
-
- #define XIconifyWindow(display, window, screen) \
- ShowWindow(window, SW_MINIMIZE)
-
- #define XWithdrawWindow(display, window, screen) \
- ShowWindow(window, SW_HIDE)
-
- #define XLowerWindow(display, window) \
- SetWindowPos(window, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE)
-
- #define XSetWMName(display, window, tp) \
- SetWindowText(window, (tp)->value)
-
- /* There really isn't a way to set the icon name separate from the
- windows name in Win32, so, just set the windows name. */
- #define XSetWMIconName(display, window, tp) \
- XSetWMName(display, window, tp)
-
- #define XDestroyWindow(display, window) \
- DestroyWindow(window)
-
- /* Anything that needs to be freed was allocated with malloc in our
- fake X windows library for Win32, so free it with plain old
- free(). */
- #define XFree(data) \
- free(data)
-
- /* Nothing to be done for this...the pointer is always 'ungrabbed'
- in Win32. */
- #define XUngrabPointer(display, time) \
- /* Nothing. */
-
- /* Function prototypes. */
-
- extern XVisualInfo* XGetVisualInfo(
- Display* display,
- long mask,
- XVisualInfo* ttemplate, /* Avoid class with C++ keyword. */
- int*nitems);
-
- extern Colormap XCreateColormap(
- Display* display,
- Window root,
- Visual* visual,
- int alloc);
-
- extern void XAllocColorCells(
- Display* display,
- Colormap colormap,
- Bool contig,
- unsigned long plane_masks_return[],
- unsigned int nplanes,
- unsigned long pixels_return[],
- unsigned int npixels);
-
- extern void XStoreColor(
- Display* display,
- Colormap colormap,
- XColor* color);
-
- extern void XSetWindowColormap(
- Display* display,
- Window window,
- Colormap colormap);
-
- extern Bool XTranslateCoordinates(
- Display *display,
- Window src, Window dst,
- int src_x, int src_y,
- int* dest_x_return, int* dest_y_return,
- Window* child_return);
-
- extern Status XGetGeometry(
- Display* display,
- Window window,
- Window* root_return,
- int* x_return, int* y_return,
- unsigned int* width_return, unsigned int* height_return,
- unsigned int *border_width_return,
- unsigned int* depth_return);
-
- extern int DisplayWidthMM(
- Display* display,
- int screen);
-
- extern int DisplayHeightMM(
- Display* display,
- int screen);
-
- extern void XWarpPointer(
- Display* display,
- Window src, Window dst,
- int src_x, int src_y,
- int src_width, int src_height,
- int dst_x, int dst_y);
-
- extern int XParseGeometry(
- char* string,
- int* x, int* y,
- unsigned int* width, unsigned int* height);
-
- extern int XPending(
- Display* display);
-
- #endif /* __win32_x11_h__ */
|