xenocara/app/xlockmore/win32/Xapi.h
2006-11-26 11:07:42 +00:00

972 lines
28 KiB
C

#ifndef __XLOCK_XAPI_H__
#define __XLOCK_XAPI_H__
/*-
* @(#)Xapi.h 4.00 98/04/16 xlockmore
*
* Xapi.h - X API interface for WIN32 (windows 95/NT) platforms
*
* Copyright (c) 1998 by Petey Leinonen.
*
* See xlock.c for copying information.
*
* Revision History:
*
* 16-Apr-98: Initially written. Based off code written by myself for
* an older version of xlockmore for win95/NT
*
*/
#ifdef WIN32
#define WIN32_LEAN_AND_MEAN
/*-
* includes
*/
#include <windows.h>
extern HWND hwnd; /* window handle */
extern HDC hdc; /* device context */
extern int cred, cgreen, cblue; /* color reference of the pen */
extern unsigned char *red, *green, *blue; /* holds a list of colors */
extern int colorcount; /* number of colors used */
unsigned int randommode; /* number of mode to index */
extern RECT rc; /* coords of the screen */
/*-
* defines
*/
/* -------------------------------------------------------------------- */
/*****************************************************************
* ERROR CODES
*****************************************************************/
#define Success 0 /* everything's okay */
#define BadRequest 1 /* bad request code */
#define BadValue 2 /* int parameter out of range */
#define BadWindow 3 /* parameter not a Window */
#define BadPixmap 4 /* parameter not a Pixmap */
#define BadAtom 5 /* parameter not an Atom */
#define BadCursor 6 /* parameter not a Cursor */
#define BadFont 7 /* parameter not a Font */
#define BadMatch 8 /* parameter mismatch */
#define BadDrawable 9 /* parameter not a Pixmap or Window */
#define BadAccess 10 /* depending on context:
- key/button already grabbed
- attempt to free an illegal
cmap entry
- attempt to store into a read-only
color map entry.
- attempt to modify the access control
list from other than the local host.
*/
#define BadAlloc 11 /* insufficient resources */
#define BadColor 12 /* no such colormap */
#define BadGC 13 /* parameter not a GC */
#define BadIDChoice 14 /* choice not in range or already used */
#define BadName 15 /* font or color name doesn't exist */
#define BadLength 16 /* Request length incorrect */
#define BadImplementation 17 /* server is defective */
/* window attributes */
#define InputOutput 1
#define InputOnly 2
#define IsUnmapped 0
#define IsUnviewable 1
#define IsViewable 2
/* redefined functions */
#define XWhitePixelOfScreen WhitePixelOfScreen
/* define False/True */
#define False (0)
#define True (!False)
#define None (0L)
#define CurrentTime (0L)
#define DoRed (0x1)
#define DoGreen (0x2)
#define DoBlue (0x4)
#define XYBitmap (0x01)
#define XYPixmap (0x02)
#define ZPixmap (0x04)
#define LSBFirst (0x00)
#define MSBFirst (0x01)
#define AllocNone (0x00)
#define AllocAll (0x01)
#define BitmapSuccess (0)
#define BitmapOpenFailed (1)
#define BitmapFileInvalid (2)
#define BitmapNoMemory (3)
#define StaticGray (0)
#define GrayScale (1)
#define StaticColor (2)
#define PseudoColor (3)
#define TrueColor (4)
#define DirectColor (5)
/* 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)
/* button masks. Used in same manner as Key masks above. Not to be confused
with button names below. */
#define Button1Mask (1<<8)
#define Button2Mask (1<<9)
#define Button3Mask (1<<10)
#define Button4Mask (1<<11)
#define Button5Mask (1<<12)
#define VisualNoMask (0x0)
#define VisualIDMask (0x1)
#define VisualScreenMask (0x2)
#define VisualDepthMask (0x4)
#define VisualClassMask (0x8)
#define VisualRedMaskMask (0x10)
#define VisualGreenMaskMask (0x20)
#define VisualBlueMaskMask (0x40)
#define VisualColormapMaskMask (0x80)
#define VisualBitsPerRGBMask (0x100)
#define VisualAllMask (0x1FF)
#define GrabModeSync (0)
#define GrabModeAsync (1)
#define GrabSuccess (0)
#define AlreadyGrabbed (1)
#define GrabInvalidTime (2)
#define GrabNotViewable (3)
#define GrabFrozen (4)
#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)
#define KeyPress 2
#define KeyRelease 3
#define ButtonPress 4
#define ButtonRelease 5
#define MotionNotify 6
#define EnterNotify 7
#define LeaveNotify 8
#define FocusIn 9
#define FocusOut 10
#define KeymapNotify 11
#define Expose 12
#define GraphicsExpose 13
#define NoExpose 14
#define VisibilityNotify 15
#define CreateNotify 16
#define DestroyNotify 17
#define UnmapNotify 18
#define MapNotify 19
#define MapRequest 20
#define ReparentNotify 21
#define ConfigureNotify 22
#define ConfigureRequest 23
#define GravityNotify 24
#define ResizeRequest 25
#define CirculateNotify 26
#define CirculateRequest 27
#define PropertyNotify 28
#define SelectionClear 29
#define SelectionRequest 30
#define SelectionNotify 31
#define ColormapNotify 32
#define ClientMessage 33
#define MappingNotify 34
#define LASTEvent 35
#define VisibilityUnobscured (0)
#define VisibilityPartiallyObscured (1)
#define VisibilityFullyObscured (2)
#define XC_left_ptr (68)
#define Button1 (1)
#define Button2 (2)
#define Button3 (3)
#define Button4 (4)
#define Button5 (5)
#define SIGHUP (0)
#define SIGQUIT (1)
#define SIGBUS (2)
#define CoordModeOrigin (0)
#define CoordModePrevious (1)
#define Complex (0)
#define Nonconvex (1)
#define Convex (2)
#define LineSolid (0)
#define LineOnOffDash (1)
#define LineDoubleDash (2)
#define CapNotLast (0)
#define CapButt (1)
#define CapRound (2)
#define CapProjecting (3)
#define JoinMiter (0)
#define JoinRound (1)
#define JoinBevel (2)
#define GCFunction (1L<<0)
#define GCPlaneMask (1L<<1)
#define GCForeground (1L<<2)
#define GCBackground (1L<<3)
#define GCLineWidth (1L<<4)
#define GCLineStyle (1L<<5)
#define GCCapStyle (1L<<6)
#define GCJoinStyle (1L<<7)
#define GCFillStyle (1L<<8)
#define GCFillRule (1L<<9)
#define GCTile (1L<<10)
#define GCStipple (1L<<11)
#define GCTileStipXOrigin (1L<<12)
#define GCTileStipYOrigin (1L<<13)
#define GCFont (1L<<14)
#define GCSubwindowMode (1L<<15)
#define GCGraphicsExposures (1L<<16)
#define GCClipXOrigin (1L<<17)
#define GCClipYOrigin (1L<<18)
#define GCClipMask (1L<<19)
#define GCDashOffset (1L<<20)
#define GCDashList (1L<<21)
#define GCArcMode (1L<<22)
#define FillSolid (0)
#define FillTiled (1)
#define FillStippled (2)
#define FillOpaqueStippled (3)
#define GXclear (0x0)
#define GXand (0x1)
#define GXandReverse (0x2)
#define GXcopy (0x3)
#define GXandInverted (0x4)
#define GXnoop (0x5)
#define GXxor (0x6)
#define GXor (0x7)
#define GXnor (0x8)
#define GXequiv (0x9)
#define GXinvert (0xa)
#define GXorReverse (0xb)
#define GXcopyInverted (0xc)
#define GXorInverted (0xd)
#define GXnand (0xe)
#define GXset (0xf)
/* fillRule */
#define EvenOddRule 0
#define WindingRule 1
/*-
* types
*/
/* -------------------------------------------------------------------- */
/* simple */
/* XPointer type: not needed for WIN32 */
typedef void* XPointer;
/* XID type */
typedef unsigned long XID;
/* Atom type: not needed for WIN32*/
typedef unsigned long Atom;
/* Bool type */
typedef int Bool;
/* Colormap type: not needed for WIN32 */
typedef XID Colormap;
/* Cursor type: not needed for WIN32 */
typedef XID Cursor;
/* Display type: not needed for WIN32 */
typedef int Display;
/* Drawable type, can be bitmap or window */
typedef int Drawable;
/* Font type: not needed for WIN32 */
typedef XID Font;
/* GC type: really a HDC */
typedef int GC;
/* GContext type: not needed for WIN32 */
typedef XID GContext;
/* Keysym type: not needed for WIN32 */
typedef XID KeySym;
/* Pixel type, from <X11/Intrinsic.h> */
typedef unsigned long Pixel;
/* Pixmap type, implemented a bitmap handler for WIN32 */
typedef int Pixmap;
/* Screen type: not needed for WIN32 */
typedef int Screen;
/* Status type: not needed for WIN32 */
typedef int Status;
/* Time type: not needed for WIN32 */
typedef unsigned long Time;
/* VisualID type: not needed for WIN32 */
typedef unsigned long VisualID;
/* Window type: really a HWND but typecasting to int,
* this is because a Window is also a Drawable.
* We don't use this anyway */
typedef int Window;
/* XExtData type: used below */
typedef char XExtData;
/* XrmQuark, XrmQuarkList: not needed */
typedef int XrmQuark, *XrmQuarkList;
/* complex */
/* Visual type: not needed for WIN32 */
typedef struct {
XExtData *ext_data;
VisualID visualid;
#if defined(__cplusplus) || defined(c_plusplus)
int c_class;
#else
int class;
#endif
unsigned long red_mask;
unsigned long green_mask;
unsigned long blue_mask;
int bits_per_rgb;
int map_entries;
} Visual;
/* XAnyEvent type: not needed for WIN32 */
typedef struct {
int type;
unsigned long serial;
Bool send_event;
Display *display;
Window window;
} XAnyEvent;
/* XArc */
typedef struct {
short x,y;
unsigned short width, height;
short angle1, angle2;
} XArc;
/* XCharStruct type: not needed for WIN32 */
typedef struct {
short lbearing;
short rbearing;
short width;
short ascent;
short descent;
unsigned short attributes;
} XCharStruct;
/* XClassHint type: not needed for WIN32 */
typedef struct {
char *res_name;
char *res_class;
} XClassHint;
/* XComposeStatus type: not needed for WIN32 */
typedef struct {
XPointer compose_ptr;
int chars_matched;
} XComposeStatus;
/* XKeyEvent type: */
typedef struct {
int type;
unsigned long serial;
Bool send_event;
Display *display;
Window window;
Window root;
Window subwindow;
Time time;
int x, y;
int x_root, y_root;
unsigned int state;
unsigned int keycode;
Bool same_screen;
} XKeyEvent;
/* XButtonEvent type: */
typedef struct {
int type;
unsigned long serial;
Bool send_event;
Display *display;
Window window;
Window root;
Window subwindow;
Time time;
int x, y;
int x_root, y_root;
unsigned int state;
unsigned int button;
Bool same_screen;
} XButtonEvent;
/* XMotionEvent type */
typedef struct {
int type;
unsigned long serial;
Bool send_event;
Display *display;
Window window;
Window root;
Window subwindow;
Time time;
int x, y;
int x_root, y_root;
unsigned int state;
char is_hint;
Bool same_screen;
} XMotionEvent;
/* XExposeEvent */
typedef struct {
int type;
unsigned long serial;
Bool send_event;
Display *display;
Window window;
int x, y;
int width, height;
int count;
} XExposeEvent;
/* XVisibilityEvent type */
typedef struct {
int type;
unsigned long serial;
Bool send_event;
Display *display;
Window window;
int state;
} XVisibilityEvent;
/* XConfigureEvent type */
typedef struct {
int type;
unsigned long serial;
Bool send_event;
Display *display;
Window event;
Window window;
int x, y;
int width, height;
int border_width;
Window above;
Bool override_redirect;
} XConfigureEvent;
/* XEvent type: not needed for WIN32 */
typedef union _XEvent {
int type;
XAnyEvent xany;
XKeyEvent xkey;
XButtonEvent xbutton;
XMotionEvent xmotion;
// XCrossingEvent xcrossing;
// XFocusChangeEvent xfocus;
XExposeEvent xexpose;
// XGraphicsExposeEvent xgraphicsexpose;
// XNoExposeEvent xnoexpose;
XVisibilityEvent xvisibility;
// XCreateWindowEvent xcreatewindow;
// XDestroyWindowEvent xdestroywindow;
// XUnmapEvent xunmap;
// XMapEvent xmap;
// XMapRequestEvent xmaprequest;
// XReparentEvent xreparent;
XConfigureEvent xconfigure;
// XGravityEvent xgravity;
// XResizeRequestEvent xresizerequest;
// XConfigureRequestEvent xconfigurerequest;
// XCirculateEvent xcirculate;
// XCirculateRequestEvent xcirculaterequest;
// XPropertyEvent xproperty;
// XSelectionClearEvent xselectionclear;
// XSelectionRequestEvent xselectionrequest;
// XSelectionEvent xselection;
// XColormapEvent xcolormap;
// XClientMessageEvent xclient;
// XMappingEvent xmapping;
// XErrorEvent xerror;
// XKeymapEvent xkeymap;
long pad[24];
} XEvent;
/* XFontProp type: not needed for WIN32 */
typedef struct {
Atom name;
unsigned long card32;
} XFontProp;
/* XFontStruct type: not needed for WIN32 */
typedef struct {
XExtData *ext_data;
Font fid;
unsigned direction;
unsigned min_char_or_byte2;
unsigned max_char_or_byte2;
unsigned min_byte1;
unsigned max_byte1;
Bool all_chars_exist;
unsigned default_char;
int n_properties;
XFontProp *properties;
XCharStruct min_bounds;
XCharStruct max_bounds;
XCharStruct *per_char;
int ascent;
int descent;
} XFontStruct;
/* XColor type */
typedef struct {
unsigned long pixel;
unsigned short red, green, blue;
char flags;
char pad;
} XColor;
/* XGCValues type */
typedef struct {
int function;
unsigned long plane_mask;
unsigned long foreground;
unsigned long background;
int line_width;
int line_style;
int cap_style;
int join_style;
int fill_style;
int fill_rule;
int arc_mode;
Pixmap tile;
Pixmap stipple;
int ts_x_origin;
int ts_y_origin;
Font font;
int subwindow_mode;
Bool graphics_exposures;
int clip_x_origin;
int clip_y_origin;
Pixmap clip_mask;
int dash_offset;
char dashes;
} XGCValues;
/* XHostAddress type: not needed for WIN32 */
typedef struct {
int family;
int length;
char *address;
} XHostAddress;
/* XImage type */
typedef struct {
int width, height;
int xoffset;
int format;
char *data;
int byte_order;
int bitmap_unit;
int bitmap_bit_order;
int bitmap_pad;
int depth;
int bytes_per_line;
} XImage;
/* XPoint type */
typedef struct {
int x, y;
} XPoint;
/* XRectangle type */
typedef struct {
short x,y;
unsigned short width, height;
} XRectangle;
/* XrmBinding & XrmBindingList types: not needed for WIN32 */
typedef enum {
XrmBindTightly,
XrmBindLoosely
} XrmBinding, *XrmBindingList;
/* XrmDatabase type: not needed for WIN32 */
typedef char** XrmDatabase;
/* XrmOptionKind type: used by XrmOptionDescRec */
typedef enum {
XrmoptionNoArg,
XrmoptionIsArg,
XrmoptionStickyArg,
XrmoptionSepArg,
XrmoptionResArg,
XrmoptionSkipArg,
XrmoptionSkipLine,
XrmoptionSkipNArgs
} XrmOptionKind;
/* XrmOptionDescRec type: not needed for WIN32 */
typedef struct {
char *option;
char *specifier;
XrmOptionKind argKind;
XPointer value;
} XrmOptionDescRec, *XrmOptionDescList;
/* XrmValue type: not needed for WIN32 */
typedef struct {
unsigned int size;
XPointer addr;
} XrmValue, *XrmValuePtr;
/* XSegment type */
typedef struct {
short x1, y1, x2, y2;
} XSegment;
/* XTextProperty type: not needed for WIN32 */
typedef struct {
unsigned char *value;
Atom encoding;
int format;
unsigned long nitems;
} XTextProperty;
/* XVisualInfo type: not needed for WIN32 */
typedef struct {
Visual *visual;
VisualID visualid;
int screen;
int depth;
#if defined(__cplusplus) || defined(c_plusplus)
int c_class;
#else
int class;
#endif
unsigned long red_mask;
unsigned long green_mask;
unsigned long blue_mask;
int colormap_size;
int bits_per_rgb;
} XVisualInfo;
/* XWindowAttributes type: not needed for WIN32 */
typedef struct {
int x, y;
int width, height;
int border_width;
int depth;
Visual *visual;
Window root;
int class;
int bit_gravity;
int win_gravity;
int backing_store;
unsigned long backing_planes;
unsigned long backing_pixels;
Bool save_under;
Colormap colormap;
Bool map_installed;
int map_state;
long all_events_masks;
long your_event_mask;
long do_not_propogate_mask;
Bool override_redirect;
Screen *screen;
} XWindowAttributes;
/* XWindowChanges type: not needed for WIN32 */
typedef struct {
int x, y;
int width, height;
int border_width;
Window sibling;
int stack_mode;
} XWindowChanges;
/* caddr_t type: char address type */
typedef char *caddr_t;
/* -------------------------------------------------------------------- */
/*-
* prototypes
*/
int nice(int level);
void sleep(int sec);
int sigmask(int signum);
unsigned long BlackPixel(Display *display, int screen_number);
int BlackPixelOfScreen(Screen *screen);
int CellsOfScreen(Screen *screen);
Colormap DefaultColormap(Display *display, int screen_number);
Colormap DefaultColormapOfScreen(Screen *screen);
Visual *DefaultVisual(Display *display, int screen_number);
int DisplayPlanes(Display *display, int screen_number);
char *DisplayString(Display *display);
Window RootWindow(Display *display, int screen_number);
int ScreenCount(Display *display);
Screen *ScreenOfDisplay(Display *display, int screen_number);
unsigned long WhitePixel(Display *display, int screen_number);
int WhitePixelOfScreen(Screen *screen);
void XAddHosts(Display *display, XHostAddress *hosts, int num_hosts);
Status XAllocColor(Display *display, Colormap colormap,
XColor *screen_in_out);
Status XAllocColorCells(Display *display, Colormap colormap,
Bool contig, unsigned long plane_masks_return[],
unsigned int nplanes, unsigned long pixels_return[],
unsigned int npixels);
Status XAllocNamedColor(Display *display, Colormap colormap,
char *color_name, XColor *screen_def_return,
XColor *exact_def_return);
void XBell(Display *display, int percent);
void XChangeGC(Display *display, GC gc, unsigned long valuemask,
XGCValues *values);
Bool XCheckMaskEvent(Display *display, long event_mask,
XEvent *event_return);
void XClearArea(Display *display, Window w, int x, int y,
unsigned int width, unsigned int height, Bool exposures);
void XClearWindow(Display *display, Window w);
void XCloseDisplay(Display *display);
void XConfigureWindow(Display *display, Window w,
unsigned int value_mask,
XWindowChanges *values);
int XCopyArea(Display *display, Drawable src, Drawable dest, GC gc,
int src_x, int src_y, unsigned int width, unsigned height,
int dest_x, int dest_y);
int XCopyPlane(Display *display, Drawable src, Drawable dest, GC gc,
int src_x, int src_y, unsigned width, int height, int dest_x,
int dest_y, unsigned long plane);
Colormap XCopyColormapAndFree(Display *display, Colormap colormap);
Pixmap XCreateBitmapFromData(Display *display, Drawable drawable,
char *data, unsigned int width,
unsigned int height);
Colormap XCreateColormap(Display *display, Window w,
Visual *visual, int alloc);
Cursor XCreateFontCursor(Display *display, unsigned int shape);
GC XCreateGC(Display *display, Drawable drawable,
unsigned long valuemask, XGCValues *values);
XImage *XCreateImage(Display *display, Visual *visual,
unsigned int depth, int format, int offset,
char *data, unsigned int width,
unsigned int height, int bitmap_pad,
int bytes_per_line);
Pixmap XCreatePixmap(Display *display, Drawable d, unsigned int width,
unsigned int height, unsigned int depth);
Cursor XCreatePixmapCursor(Display *display,
Pixmap source, Pixmap mask,
XColor *foreground_color, XColor *background_color,
unsigned int x_hot, unsigned int y_hot);
Pixmap XCreatePixmapFromBitmapData(Display *display, Drawable drawable,
char *data, unsigned int width, unsigned int height,
unsigned long fg, unsigned long bg, unsigned int depth);
void XDefineCursor(Display *display, Window window, Cursor cursor);
void XDestroyImage(XImage *ximage);
void XDisableAccessControl(Display *display);
void XDrawArc(Display *display, Drawable d, GC gc, int x, int y,
unsigned int width, unsigned int height,
int angle1, int angle2);
void XDrawImageString(Display *display, Drawable d, GC gc,
int x, int y, char *string, int length);
void XDrawLine(Display *display, Drawable d, GC gc,
int x1, int y1, int x2, int y2);
void XDrawLines(Display *display, Drawable d, GC gc,
XPoint *points, int npoints, int mode);
void XDrawPoint(Display *display, Drawable d, GC gc, int x, int y);
void XDrawPoints(Display *display, Drawable d, GC gc,
XPoint *pts, int numpts, int mode);
void XDrawRectangle(Display *display, Drawable d, GC gc, int x, int y,
unsigned int width, unsigned int height);
void XDrawSegments(Display *display, Drawable d, GC gc,
XSegment *segs, int numsegs);
void XDrawString(Display *display, Drawable d, GC gc, int x, int y,
char *string, int length);
void XEnableAccessControl(Display *display);
void XFillArc(Display *display, Drawable d, GC gc, int x, int y,
unsigned int width, unsigned int height,
int angle1, int angle2);
void XFillArcs(Display *display, Drawable d, GC gc,
XArc *arcs, int narcs);
void XFillPolygon(Display *display, Drawable d, GC gc, XPoint *points,
int npoints, int shape, int mode);
void XFillRectangle(Display *display, Drawable d, GC gc, int x, int y,
unsigned int width, unsigned int height);
void XFillRectangles(Display *display, Drawable d, GC gc,
XRectangle *rectangles, int nrectangles);
void XFlush(Display *display);
void XFree(void *data);
void XFreeColormap(Display *display, Colormap colormap);
void XFreeColors(Display *display, Colormap colormap,
unsigned long pixels[], int npixels,
unsigned long planes);
void XFreeCursor(Display *display, Cursor cursor);
int XFreeFont(Display *display, XFontStruct *font_struct);
int XFreeFontInfo(char** names, XFontStruct* free_info, int actual_count);
void XFreeGC(Display *display, GC gc);
void XFreePixmap(Display *display, Pixmap pixmap);
GContext XGContextFromGC(GC gc);
XVisualInfo *XGetVisualInfo(Display *display, long vinfo_mask,
XVisualInfo *vinfo_template,
int *nitems_return);
Status XGetWindowAttributes(Display *display, Window w,
XWindowAttributes *window_attr_return);
int XGrabKeyboard(Display *display, Window grab_window,
Bool owner_events, int pointer_mode,
int keyboard_mode, Time time);
int XGrabPointer(Display *display, Window grab_window, Bool owner_events,
unsigned int event_mask, int pointer_mode,
int keyboard_mode, Window confine_to, Cursor cursor,
Time time);
void XGrabServer(Display *display);
void XInstallColormap(Display *display, Colormap colormap);
XHostAddress *XListHosts(Display *display, int *nhosts_return,
Bool *state_return);
XFontStruct *XLoadQueryFont(Display *display, char *name);
int XLookupString(XKeyEvent *event_struct, char *buffer_return,
int bytes_buffer, KeySym *keysym_return,
XComposeStatus *status_in_out);
void XMapWindow(Display *display, Window w);
void XNextEvent(Display *display, XEvent *event_return);
Display *XOpenDisplay(char *display_name);
Status XParseColor(Display *display, Colormap colormap,
char *spec, XColor *exact_def_return);
int XPending(Display *display);
void XPutBackEvent(Display *display, XEvent *event);
void XPutImage(Display *display, Drawable d, GC gc, XImage *image, int src_x,
int src_y, int dest_x, int dest_y, unsigned int width,
unsigned int height);
int XPutPixel(XImage *ximage, int x, int y, unsigned long pixel);
void XQueryColor(Display *display, Colormap colormap, XColor *def_in_out);
XFontStruct *XQueryFont(Display* display, XID font_ID);
Bool XQueryPointer(Display *display, Window w, Window *root_return,
Window *child_return, int *root_x_return, int *root_y_return,
int *win_x_return, int *win_y_return,
unsigned int *mask_return);
Status XQueryTree(Display *display, Window w, Window *root_return,
Window *parent_return, Window **children_return,
unsigned int *nchildren_return);
void XRaiseWindow(Display *display, Window w);
int XReadBitmapFile(Display *display, Drawable d, char *filename,
unsigned int *width_return, unsigned int *height_return,
Pixmap *bitmap_return, int *x_hot_return, int *y_hot_return);
void XRemoveHosts(Display *display, XHostAddress *hosts, int num_hosts);
char *XResourceManagerString(Display *display);
void XrmDestroyDatabase(XrmDatabase database);
XrmDatabase XrmGetFileDatabase(char *filename);
Bool XrmGetResource(XrmDatabase database, char *str_name,
char *str_class, char **str_type_return,
XrmValue *value_return);
XrmDatabase XrmGetStringDatabase(char *data);
void XrmInitialize(void);
void XrmMergeDatabases(XrmDatabase source_db, XrmDatabase *target_db);
void XrmParseCommand(XrmDatabase *database, XrmOptionDescList table,
int table_count, char *name, int *argc_in_out,
char **argv_in_out);
void XSetBackground(Display *display, GC gc, unsigned long background);
void XSetFillRule(Display *display, GC gc, int fill_rule);
void XSetFillStyle(Display *display, GC gc, int fill_style);
void XSetFont(Display *display, GC gc, Font font);
void XSetForeground(Display *display, GC gc, unsigned long foreground);
void XSetFunction(Display *display, GC gc, int function);
int XSetGraphicsExposures(Display *display, GC gc, Bool graphics_exposures);
void XSetLineAttributes(Display *display, GC gc,
unsigned int line_width, int line_style,
int cap_style, int join_style);
void XSetScreenSaver(Display *display, int timeout, int interval,
int prefer_blanking, int allow_exposures);
void XSetStipple(Display *display, GC gc, Pixmap stipple);
void XSetTSOrigin(Display *display, GC gc, int ts_x_origin, int ts_y_origin);
void XSetWindowColormap(Display *display, Window w, Colormap colormap);
void XSetWMName(Display *display, Window w, XTextProperty *text_prop);
Status XStringListToTextProperty(char **list, int count,
XTextProperty *text_prop_return);
void XStoreColors(Display *display, Colormap colormap, XColor color[],
int ncolors);
void XSync(Display *display, Bool discard);
int XTextWidth(XFontStruct *font_struct, char *string, int count);
Bool XTranslateCoordinates(Display* display, Window src_w, Window dest_w,
int src_x, int src_y,
int* dest_x_return, int* dest_y_return,
Window* child_return);
void XUngrabKeyboard(Display *display, Time time);
void XUngrabPointer(Display *display, Time time);
void XUngrabServer(Display *display);
void XUnmapWindow(Display *display, Window w);
/* -------------------------------------------------------------------- */
#endif /* WIN32 */
#endif /* __XLOCK_XAPI_H__ */