📄 win32_x11.h
字号:
#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__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -