X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6ec507fd25a277b8b5d79f26928c48173161ee5c..ecd20d4a916884895dcd8873a9f1156e34f4ac89:/include/wx/x11/nanox/X11/Xlib.h diff --git a/include/wx/x11/nanox/X11/Xlib.h b/include/wx/x11/nanox/X11/Xlib.h index a43c74f56a..01ebd461b2 100644 --- a/include/wx/x11/nanox/X11/Xlib.h +++ b/include/wx/x11/nanox/X11/Xlib.h @@ -2,4 +2,359 @@ * Xlib compatibility */ -#include "XtoNX.h" +#ifndef _DUMMY_XLIBH_ +#define _DUMMY_XLIBH_ + +#ifdef __GNUG__ + #pragma interface "Xlib.h" +#endif + +/* Move away the typedef in XtoNX.h */ +#define XFontStruct XFontStruct1 +#include +#undef XFontStruct +#undef XCharStruct + +/* Data types */ + +typedef GR_PALETTE* Colormap; +typedef GR_DRAW_ID Drawable ; +typedef int Status; +typedef unsigned long VisualID; +typedef int Bool; +typedef long XID; +typedef GR_SCANCODE KeySym; +typedef GR_EVENT_KEYSTROKE XKeyEvent; +typedef struct { + GR_FONT_INFO info; + GR_FONT_ID fid; +} XFontStruct; +typedef struct { + short lbearing; /* origin to left edge of raster */ + short rbearing; /* origin to right edge of raster */ + short width; /* advance to next char's origin */ + short ascent; /* baseline to top edge of raster */ + short descent; /* baseline to bottom edge of raster */ + unsigned short attributes; /* per char flags (not predefined) */ +} XCharStruct; + +/* Configure window value mask bits */ +#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) + +/* Values */ + +typedef struct { + int x, y; + int width, height; + int border_width; + Window sibling; + int stack_mode; +} XWindowChanges; + +/* typedef unsigned long Time; */ + +#define Success 0 +#define GrabSuccess Success +#define GrabNotViewable (Success+1) +#define InputOutput 1 +#define InputOnly 2 +#define IsUnmapped 0 +#define IsUnviewable 1 +#define IsViewable 2 +/* Is this right? */ +#define PropertyChangeMask GR_EVENT_MASK_SELECTION_CHANGED +#define GraphicsExpose GR_EVENT_TYPE_EXPOSURE +#define GraphicsExposeMask GR_EVENT_MASK_EXPOSURE +#define ColormapChangeMask 0 +#define FillSolid 0 +#define LineSolid 0 +#define LineOnOffDash 0 +#define CapNotLast 0 +#define CapRound 0 +#define CapProjecting 0 +#define CapButt 0 +#define JoinRound 0 +#define JoinBevel 0 +#define JoinMiter 0 +#define IncludeInferiors 0 +#define ClipByChildren 0 +#define DoRed 0 +#define DoGreen 0 +#define DoBlue 0 +#define NoEventMask GR_EVENT_MASK_NONE +#define RevertToParent 0 +#define CurrentTime 0 +#define GrabModeAsync 0 + +#define GXcopy GR_MODE_COPY +#define GXclear GR_MODE_CLEAR +#ifndef GXxor +#define GXxor GR_MODE_OR +#endif +#define GXinvert GR_MODE_INVERT +#define GXorReverse GR_MODE_ORREVERSE +#define GXandReverse GR_MODE_ANDREVERSE +#define GXand GR_MODE_AND +#define GXor GR_MODE_OR +#define GXandInverted GR_MODE_ANDINVERTED +#define GXnoop GR_MODE_NOOP +#define GXnor GR_MODE_NOR +#define GXequiv GR_MODE_EQUIV +#define GXcopyInverted GR_MODE_COPYINVERTED +#define GXorInverted GR_MODE_ORINVERTED +#define GXnand GR_MODE_NAND +#define GXset GR_MODE_SET + +#define XSynchronize(display,sync) +#define XDefaultRootWindow(d) GR_ROOT_WINDOW_ID +#define RootWindowOfScreen(s) GR_ROOT_WINDOW_ID +#define XFreePixmap(d, p) GrDestroyWindow(p) +#define XFreeCursor(d, c) GrDestroyCursor(c) +#define XFreeGC(d, gc) GrDestroyGC(gc) +#define XSetBackground(d, gc, c) GrSetGCBackground(gc, c) +#define DefaultVisual(d, s) ((Visual*) NULL) +#define DefaultColormap(d, s) DefaultColormapOfScreen((Screen*) NULL) +#define DefaultScreenOfDisplay(d) 0 +#define XSetFillStyle(d, gc, s) wxNoop() +#define XSetLineAttributes(d, gc, a, b, c, e) wxNoop() +#define XSetClipMask(d, gc, m) wxNoop() +#define XSetTSOrigin(d, gc, x, y) wxNoop() +#define XFillArc(d, w, gc, x, y, rx, ry, a1, a2) GrArcAngle(w, gc, x, y, rx, ry, a1, a2, GR_PIE) +#define XDrawArc(d, w, gc, x, y, rx, ry, a1, a2) GrArcAngle(w, gc, x, y, rx, ry, a1, a2, GR_ARC) +#define XDrawPoint(d, w, gc, x, y) GrPoint(w, gc, x, y) +#define XFillPolygon(d, w, gc, p, n, s, m) GrFillPoly(w, gc, n, p) +#define XDrawRectangle(d, w, gc, x, y, width, height) GrRect(w, gc, x, y, width, height) +#define XSetClipOrigin(d, gc, x, y) GrSetGCClipOrigin(gc, x, y) +#define XSetRegion(d, gc, r) GrSetGCRegion(gc, r) +#define XSetTile(d, gc, p) wxNoop() +#define XSetStipple(d, gc, p) wxNoop() +#define XSetSubwindowMode(d, gc, mode) wxNoop() +#define XFreeColormap(d, cmap) wxNoop() +#define XSetTransientForHint(d, w, p) wxNoop() +#define XUnionRegion(sr1,sr2,r) GrUnionRegion(r,sr1,sr2) +#define XIntersectRegion(sr1,sr2,r) GrIntersectRegion(r,sr1,sr2) +#define XEqualRegion(r1, r2) GrEqualRegion(r1, r2) +#define XEmptyRegion(r) GrEmptyRegion(r) +#define XOffsetRegion(r, x, y) GrOffsetRegion(r, x, y) +#define XClipBox(r, rect) GrGetRegionBox(r, rect) +#define XPointInRegion(r, x, y) GrPointInRegion(r, x, y) +#define XXorRegion(sr1, sr2, r) GrXorRegion(r, sr1, sr2) +/* TODO: Cannot find equivalent for this. */ +#define XIconifyWindow(d, w, s) 0 +#define XCreateWindowWithColor(d,p,x,y,w,h,bw,depth,cl,vis,backColor,foreColor) \ + GrNewWindow(p,x,y,w,h,bw,backColor,foreColor) +#define XLookupString(event, buf, len, sym, status) (*sym = (event)->scancode) +#define XBell(a, b) GrBell() +#define DisplayWidthMM(d, s) 100 +#define DisplayHeightMM(d, s) 100 + +/* These defines are wrongly defined in XtoNX.h, IMHO, + * since they reference a static global. + * Redefined as functions, below. + */ + +#undef DisplayWidth +#undef DisplayHeight +#undef DefaultDepth + +/* + * Data structure used by color operations + */ +typedef struct { + unsigned long pixel; + unsigned short red, green, blue; + char flags; /* do_red, do_green, do_blue */ + char pad; +} XColor; + +typedef struct { + int type; + Display *display; /* Display the event was read from */ + XID resourceid; /* resource id */ + unsigned long serial; /* serial number of failed request */ + unsigned char error_code; /* error code of failed request */ + unsigned char request_code; /* Major op-code of failed request */ + unsigned char minor_code; /* Minor op-code of failed request */ +} XErrorEvent; + +/* + * Visual structure; contains information about colormapping possible. + */ +typedef struct { + void *ext_data; /* hook for extension to hang data */ + VisualID visualid; /* visual id of this visual */ +#if defined(__cplusplus) || defined(c_plusplus) + int c_class; /* C++ class of screen (monochrome, etc.) */ +#else + int class; /* class of screen (monochrome, etc.) */ +#endif + unsigned long red_mask, green_mask, blue_mask; /* mask values */ + int bits_per_rgb; /* log base 2 of distinct color values */ + int map_entries; /* color map entries */ +} Visual; + +/* + * Depth structure; contains information for each possible depth. + */ +typedef struct { + int depth; /* this depth (Z) of the depth */ + int nvisuals; /* number of Visual types at this depth */ + Visual *visuals; /* list of visuals possible at this depth */ +} Depth; + +/* + * Information about the screen. The contents of this structure are + * implementation dependent. A Screen should be treated as opaque + * by application code. + */ + +struct _XDisplay; /* Forward declare before use for C++ */ + +typedef struct { + void *ext_data; /* hook for extension to hang data */ + struct _XDisplay *display;/* back pointer to display structure */ + Window root; /* Root window id. */ + int width, height; /* width and height of screen */ + int mwidth, mheight; /* width and height of in millimeters */ + int ndepths; /* number of depths possible */ + Depth *depths; /* list of allowable depths on the screen */ + int root_depth; /* bits per pixel */ + Visual *root_visual; /* root visual */ + GC default_gc; /* GC for the root root visual */ + Colormap cmap; /* default color map */ + unsigned long white_pixel; + unsigned long black_pixel; /* White and Black pixel values */ + int max_maps, min_maps; /* max and min color maps */ + int backing_store; /* Never, WhenMapped, Always */ + Bool save_unders; + long root_input_mask; /* initial root input mask */ +} Screen; + + +typedef struct { + int x, y; /* location of window */ + int width, height; /* width and height of window */ + int border_width; /* border width of window */ + int depth; /* depth of window */ + Visual *visual; /* the associated visual structure */ + Window root; /* root of screen containing window */ + int _class; /* InputOutput, InputOnly*/ + int bit_gravity; /* one of the bit gravity values */ + int win_gravity; /* one of the window gravity values */ + int backing_store; /* NotUseful, WhenMapped, Always */ + unsigned long backing_planes;/* planes to be preserved if possible */ + unsigned long backing_pixel;/* value to be used when restoring planes */ + Bool save_under; /* boolean, should bits under be saved? */ + Colormap colormap; /* color map to be associated with window */ + Bool map_installed; /* boolean, is color map currently installed*/ + int map_state; /* IsUnmapped, IsUnviewable, IsViewable */ + long all_event_masks; /* set of events all people have interest in*/ + long your_event_mask; /* my event mask */ + long do_not_propagate_mask;/* set of events that should not propagate */ + Bool override_redirect; /* boolean value for override-redirect */ + Screen *screen; /* back pointer to correct screen */ +} XWindowAttributes; + +typedef int (*XErrorHandler) ( /* WARNING, this type not in Xlib spec */ + Display* /* display */, + XErrorEvent* /* error_event */ +); + +/* events*/ + +/* What should this be? */ +#if 0 +#ifndef ResizeRequest +#define ResizeRequest ?? +#endif +#endif + +#ifndef MotionNotify +#define MotionNotify GR_EVENT_TYPE_MOUSE_POSITION +#define PointerMotionMask GR_EVENT_MASK_MOUSE_POSITION +#endif + +#define ButtonMotionMask GR_EVENT_MASK_MOUSE_POSITION +#define KeymapStateMask 0 +#define StructureNotifyMask GR_EVENT_MASK_UPDATE + +#ifdef ConfigureNotify +/* XtoNX.h gets it wrong */ +#undef ConfigureNotify +#endif +#define ConfigureNotify GR_EVENT_TYPE_UPDATE + +#ifndef FocusIn +#define FocusIn GR_EVENT_TYPE_FOCUS_IN +#define FocusOut GR_EVENT_TYPE_FOCUS_OUT +#define FocusChangeMask GR_EVENT_MASK_FOCUS_IN|GR_EVENT_MASK_FOCUS_OUT +#endif + +/* Fuunctions */ + +#ifdef __cplusplus +extern "C" { +#endif + +Display *XOpenDisplay(char *name); +Colormap DefaultColormapOfScreen(Screen* /* screen */) ; +int XSetGraphicsExposures( Display* /* display */, GC /* gc */, Bool /* graphics_exposures */) ; +int XWarpPointer( Display* /* display */, Window /* srcW */, Window /* destW */, + int /* srcX */, int /* srcY */, + unsigned int /* srcWidth */, + unsigned int /* srcHeight */, + int destX, int destY); +int XSetInputFocus(Display* /* display */, Window focus, int /* revert_to */, Time /* time */) ; +int XGetInputFocus(Display* /* display */, Window* /* focus_return */, int* /* revert_to_return */) ; +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 */) ; +int XUngrabPointer(Display* /* display */, Time /* time */) ; +int XCopyArea(Display* /* display */, Drawable src, Drawable dest, GC gc, + int src_x, int src_y, unsigned int width, unsigned int height, + int dest_x, int dest_y) ; +int XCopyPlane(Display* /* display */, Drawable src, Drawable dest, GC gc, + int src_x, int src_y, unsigned int width, unsigned int height, + int dest_x, int dest_y, unsigned long /* plane */) ; + +XErrorHandler XSetErrorHandler (XErrorHandler /* handler */); +Screen *XScreenOfDisplay(Display* /* display */, + int /* screen_number */); +int DisplayWidth(Display* /* display */, int /* screen */); +int DisplayHeight(Display* /* display */, int /* screen */); +int DefaultDepth(Display* /* display */, int /* screen */); +int XAllocColor(Display* /* display */, Colormap /* cmap */, + XColor* color); +int XParseColor(Display* display, Colormap cmap, + const char* cname, XColor* color); +int XDrawLine(Display* display, Window win, GC gc, + int x1, int y1, int x2, int y2); +int XTextExtents( XFontStruct* font, char* s, int len, int* direction, + int* ascent, int* descent2, XCharStruct* overall); +int XPending(Display *d); +XFontStruct* XLoadQueryFont(Display* display, const char* fontSpec); +int XFreeFont(Display* display, XFontStruct* fontStruct); +int XQueryColor(Display* display, Colormap cmap, XColor* color); +Status XGetWindowAttributes(Display* display, Window w, + XWindowAttributes* window_attributes); + +int XConfigureWindow(Display* display, Window w, int mask, XWindowChanges* changes); +int XTranslateCoordinates(Display* display, Window srcWindow, Window destWindow, int srcX, int srcY, int* destX, int* destY, Window* childReturn); + +void wxNoop(); + +#ifdef __cplusplus +} +#endif + +#define XMaxRequestSize(display) 16384 + +#endif + /* _DUMMY_XLIBH_ */