]> git.saurik.com Git - wxWidgets.git/blame - include/wx/x11/nanox/X11/Xlib.h
don't use annoying and unneeded in C++ casts of NULL to "T *"
[wxWidgets.git] / include / wx / x11 / nanox / X11 / Xlib.h
CommitLineData
6ec507fd
JS
1/*
2 * Xlib compatibility
3 */
4
c79a329d
JS
5#ifndef _DUMMY_XLIBH_
6#define _DUMMY_XLIBH_
7
788519c6
JS
8/* Move away the typedef in XtoNX.h */
9#define XFontStruct XFontStruct1
c79a329d 10#include <XtoNX.h>
788519c6
JS
11#undef XFontStruct
12#undef XCharStruct
256d631a
JS
13
14/* Data types */
15
c79a329d 16typedef GR_PALETTE* Colormap;
e941874b
JS
17typedef GR_DRAW_ID Drawable ;
18typedef int Status;
c79a329d
JS
19typedef unsigned long VisualID;
20typedef int Bool;
21typedef long XID;
461e93f9
JS
22typedef GR_SCANCODE KeySym;
23typedef GR_EVENT_KEYSTROKE XKeyEvent;
788519c6
JS
24typedef struct {
25 GR_FONT_INFO info;
26 GR_FONT_ID fid;
27} XFontStruct;
28typedef struct {
29 short lbearing; /* origin to left edge of raster */
30 short rbearing; /* origin to right edge of raster */
31 short width; /* advance to next char's origin */
32 short ascent; /* baseline to top edge of raster */
33 short descent; /* baseline to bottom edge of raster */
34 unsigned short attributes; /* per char flags (not predefined) */
35} XCharStruct;
36
461e93f9
JS
37/* Configure window value mask bits */
38#define CWX (1<<0)
39#define CWY (1<<1)
40#define CWWidth (1<<2)
41#define CWHeight (1<<3)
42#define CWBorderWidth (1<<4)
43#define CWSibling (1<<5)
44#define CWStackMode (1<<6)
45
46/* Values */
47
48typedef struct {
49 int x, y;
50 int width, height;
51 int border_width;
52 Window sibling;
53 int stack_mode;
54} XWindowChanges;
788519c6 55
c79a329d 56/* typedef unsigned long Time; */
e941874b
JS
57
58#define Success 0
59#define GrabSuccess Success
60#define GrabNotViewable (Success+1)
61#define InputOutput 1
62#define InputOnly 2
63#define IsUnmapped 0
64#define IsUnviewable 1
65#define IsViewable 2
c79a329d
JS
66/* Is this right? */
67#define PropertyChangeMask GR_EVENT_MASK_SELECTION_CHANGED
68#define GraphicsExpose GR_EVENT_TYPE_EXPOSURE
69#define GraphicsExposeMask GR_EVENT_MASK_EXPOSURE
788519c6
JS
70#define ColormapChangeMask 0
71#define FillSolid 0
72#define LineSolid 0
73#define LineOnOffDash 0
74#define CapNotLast 0
75#define CapRound 0
76#define CapProjecting 0
77#define CapButt 0
78#define JoinRound 0
79#define JoinBevel 0
80#define JoinMiter 0
81#define IncludeInferiors 0
82#define ClipByChildren 0
83#define DoRed 0
84#define DoGreen 0
85#define DoBlue 0
461e93f9
JS
86#define NoEventMask GR_EVENT_MASK_NONE
87#define RevertToParent 0
88#define CurrentTime 0
89#define GrabModeAsync 0
788519c6
JS
90
91#define GXcopy GR_MODE_COPY
92#define GXclear GR_MODE_CLEAR
93#ifndef GXxor
94#define GXxor GR_MODE_OR
95#endif
96#define GXinvert GR_MODE_INVERT
97#define GXorReverse GR_MODE_ORREVERSE
98#define GXandReverse GR_MODE_ANDREVERSE
99#define GXand GR_MODE_AND
100#define GXor GR_MODE_OR
101#define GXandInverted GR_MODE_ANDINVERTED
102#define GXnoop GR_MODE_NOOP
103#define GXnor GR_MODE_NOR
104#define GXequiv GR_MODE_EQUIV
105#define GXcopyInverted GR_MODE_COPYINVERTED
106#define GXorInverted GR_MODE_ORINVERTED
107#define GXnand GR_MODE_NAND
108#define GXset GR_MODE_SET
109
c79a329d
JS
110#define XSynchronize(display,sync)
111#define XDefaultRootWindow(d) GR_ROOT_WINDOW_ID
461e93f9 112#define RootWindowOfScreen(s) GR_ROOT_WINDOW_ID
c79a329d
JS
113#define XFreePixmap(d, p) GrDestroyWindow(p)
114#define XFreeCursor(d, c) GrDestroyCursor(c)
788519c6
JS
115#define XFreeGC(d, gc) GrDestroyGC(gc)
116#define XSetBackground(d, gc, c) GrSetGCBackground(gc, c)
c79a329d 117#define DefaultVisual(d, s) ((Visual*) NULL)
788519c6 118#define DefaultColormap(d, s) DefaultColormapOfScreen((Screen*) NULL)
461e93f9 119#define DefaultScreenOfDisplay(d) 0
788519c6
JS
120#define XSetFillStyle(d, gc, s) wxNoop()
121#define XSetLineAttributes(d, gc, a, b, c, e) wxNoop()
122#define XSetClipMask(d, gc, m) wxNoop()
123#define XSetTSOrigin(d, gc, x, y) wxNoop()
124#define XFillArc(d, w, gc, x, y, rx, ry, a1, a2) GrArcAngle(w, gc, x, y, rx, ry, a1, a2, GR_PIE)
125#define XDrawArc(d, w, gc, x, y, rx, ry, a1, a2) GrArcAngle(w, gc, x, y, rx, ry, a1, a2, GR_ARC)
126#define XDrawPoint(d, w, gc, x, y) GrPoint(w, gc, x, y)
127#define XFillPolygon(d, w, gc, p, n, s, m) GrFillPoly(w, gc, n, p)
128#define XDrawRectangle(d, w, gc, x, y, width, height) GrRect(w, gc, x, y, width, height)
129#define XSetClipOrigin(d, gc, x, y) GrSetGCClipOrigin(gc, x, y)
130#define XSetRegion(d, gc, r) GrSetGCRegion(gc, r)
131#define XSetTile(d, gc, p) wxNoop()
132#define XSetStipple(d, gc, p) wxNoop()
133#define XSetSubwindowMode(d, gc, mode) wxNoop()
134#define XFreeColormap(d, cmap) wxNoop()
135#define XSetTransientForHint(d, w, p) wxNoop()
136#define XUnionRegion(sr1,sr2,r) GrUnionRegion(r,sr1,sr2)
137#define XIntersectRegion(sr1,sr2,r) GrIntersectRegion(r,sr1,sr2)
138#define XEqualRegion(r1, r2) GrEqualRegion(r1, r2)
139#define XEmptyRegion(r) GrEmptyRegion(r)
140#define XOffsetRegion(r, x, y) GrOffsetRegion(r, x, y)
141#define XClipBox(r, rect) GrGetRegionBox(r, rect)
142#define XPointInRegion(r, x, y) GrPointInRegion(r, x, y)
143#define XXorRegion(sr1, sr2, r) GrXorRegion(r, sr1, sr2)
461e93f9
JS
144/* TODO: Cannot find equivalent for this. */
145#define XIconifyWindow(d, w, s) 0
146#define XCreateWindowWithColor(d,p,x,y,w,h,bw,depth,cl,vis,backColor,foreColor) \
147 GrNewWindow(p,x,y,w,h,bw,backColor,foreColor)
148#define XLookupString(event, buf, len, sym, status) (*sym = (event)->scancode)
149#define XBell(a, b) GrBell()
150#define DisplayWidthMM(d, s) 100
151#define DisplayHeightMM(d, s) 100
c79a329d
JS
152
153/* These defines are wrongly defined in XtoNX.h, IMHO,
154 * since they reference a static global.
155 * Redefined as functions, below.
156 */
157
158#undef DisplayWidth
159#undef DisplayHeight
160#undef DefaultDepth
161
162/*
163 * Data structure used by color operations
164 */
165typedef struct {
166 unsigned long pixel;
167 unsigned short red, green, blue;
168 char flags; /* do_red, do_green, do_blue */
169 char pad;
170} XColor;
171
172typedef struct {
173 int type;
174 Display *display; /* Display the event was read from */
175 XID resourceid; /* resource id */
176 unsigned long serial; /* serial number of failed request */
177 unsigned char error_code; /* error code of failed request */
178 unsigned char request_code; /* Major op-code of failed request */
179 unsigned char minor_code; /* Minor op-code of failed request */
180} XErrorEvent;
181
182/*
183 * Visual structure; contains information about colormapping possible.
184 */
185typedef struct {
186 void *ext_data; /* hook for extension to hang data */
187 VisualID visualid; /* visual id of this visual */
188#if defined(__cplusplus) || defined(c_plusplus)
189 int c_class; /* C++ class of screen (monochrome, etc.) */
190#else
191 int class; /* class of screen (monochrome, etc.) */
192#endif
193 unsigned long red_mask, green_mask, blue_mask; /* mask values */
194 int bits_per_rgb; /* log base 2 of distinct color values */
195 int map_entries; /* color map entries */
196} Visual;
197
198/*
199 * Depth structure; contains information for each possible depth.
200 */
201typedef struct {
202 int depth; /* this depth (Z) of the depth */
203 int nvisuals; /* number of Visual types at this depth */
204 Visual *visuals; /* list of visuals possible at this depth */
205} Depth;
206
207/*
208 * Information about the screen. The contents of this structure are
209 * implementation dependent. A Screen should be treated as opaque
210 * by application code.
211 */
212
213struct _XDisplay; /* Forward declare before use for C++ */
214
215typedef struct {
216 void *ext_data; /* hook for extension to hang data */
217 struct _XDisplay *display;/* back pointer to display structure */
218 Window root; /* Root window id. */
219 int width, height; /* width and height of screen */
220 int mwidth, mheight; /* width and height of in millimeters */
221 int ndepths; /* number of depths possible */
222 Depth *depths; /* list of allowable depths on the screen */
223 int root_depth; /* bits per pixel */
224 Visual *root_visual; /* root visual */
225 GC default_gc; /* GC for the root root visual */
226 Colormap cmap; /* default color map */
227 unsigned long white_pixel;
228 unsigned long black_pixel; /* White and Black pixel values */
229 int max_maps, min_maps; /* max and min color maps */
230 int backing_store; /* Never, WhenMapped, Always */
231 Bool save_unders;
232 long root_input_mask; /* initial root input mask */
233} Screen;
234
e941874b
JS
235
236typedef struct {
237 int x, y; /* location of window */
238 int width, height; /* width and height of window */
239 int border_width; /* border width of window */
240 int depth; /* depth of window */
241 Visual *visual; /* the associated visual structure */
242 Window root; /* root of screen containing window */
c79a329d 243 int _class; /* InputOutput, InputOnly*/
e941874b
JS
244 int bit_gravity; /* one of the bit gravity values */
245 int win_gravity; /* one of the window gravity values */
246 int backing_store; /* NotUseful, WhenMapped, Always */
247 unsigned long backing_planes;/* planes to be preserved if possible */
248 unsigned long backing_pixel;/* value to be used when restoring planes */
249 Bool save_under; /* boolean, should bits under be saved? */
250 Colormap colormap; /* color map to be associated with window */
251 Bool map_installed; /* boolean, is color map currently installed*/
252 int map_state; /* IsUnmapped, IsUnviewable, IsViewable */
253 long all_event_masks; /* set of events all people have interest in*/
254 long your_event_mask; /* my event mask */
255 long do_not_propagate_mask;/* set of events that should not propagate */
256 Bool override_redirect; /* boolean value for override-redirect */
257 Screen *screen; /* back pointer to correct screen */
258} XWindowAttributes;
256d631a 259
c79a329d
JS
260typedef int (*XErrorHandler) ( /* WARNING, this type not in Xlib spec */
261 Display* /* display */,
262 XErrorEvent* /* error_event */
263);
264
256d631a
JS
265/* events*/
266
267/* What should this be? */
268#if 0
269#ifndef ResizeRequest
270#define ResizeRequest ??
271#endif
272#endif
273
274#ifndef MotionNotify
275#define MotionNotify GR_EVENT_TYPE_MOUSE_POSITION
276#define PointerMotionMask GR_EVENT_MASK_MOUSE_POSITION
277#endif
278
788519c6
JS
279#define ButtonMotionMask GR_EVENT_MASK_MOUSE_POSITION
280#define KeymapStateMask 0
281#define StructureNotifyMask GR_EVENT_MASK_UPDATE
282
c2ff68d3
JS
283#ifdef ConfigureNotify
284/* XtoNX.h gets it wrong */
285#undef ConfigureNotify
286#endif
287#define ConfigureNotify GR_EVENT_TYPE_UPDATE
288
256d631a
JS
289#ifndef FocusIn
290#define FocusIn GR_EVENT_TYPE_FOCUS_IN
291#define FocusOut GR_EVENT_TYPE_FOCUS_OUT
292#define FocusChangeMask GR_EVENT_MASK_FOCUS_IN|GR_EVENT_MASK_FOCUS_OUT
293#endif
294
295/* Fuunctions */
296
461e93f9 297#ifdef __cplusplus
256d631a
JS
298extern "C" {
299#endif
300
461e93f9 301Display *XOpenDisplay(char *name);
c79a329d 302Colormap DefaultColormapOfScreen(Screen* /* screen */) ;
e941874b 303int XSetGraphicsExposures( Display* /* display */, GC /* gc */, Bool /* graphics_exposures */) ;
788519c6 304int XWarpPointer( Display* /* display */, Window /* srcW */, Window /* destW */,
e941874b
JS
305 int /* srcX */, int /* srcY */,
306 unsigned int /* srcWidth */,
307 unsigned int /* srcHeight */,
308 int destX, int destY);
309int XSetInputFocus(Display* /* display */, Window focus, int /* revert_to */, Time /* time */) ;
310int XGetInputFocus(Display* /* display */, Window* /* focus_return */, int* /* revert_to_return */) ;
311int XGrabPointer(Display* /* display */, Window /* grab_window */,
312 Bool /* owner_events */, unsigned int /* event_mask */,
313 int /* pointer_mode */, int /* keyboard_mode */,
314 Window /* confine_to */, Cursor /* cursor */, Time /* time */) ;
461e93f9 315int XUngrabPointer(Display* /* display */, Time /* time */) ;
e941874b
JS
316int XCopyArea(Display* /* display */, Drawable src, Drawable dest, GC gc,
317 int src_x, int src_y, unsigned int width, unsigned int height,
318 int dest_x, int dest_y) ;
319int XCopyPlane(Display* /* display */, Drawable src, Drawable dest, GC gc,
320 int src_x, int src_y, unsigned int width, unsigned int height,
321 int dest_x, int dest_y, unsigned long /* plane */) ;
256d631a 322
c79a329d 323XErrorHandler XSetErrorHandler (XErrorHandler /* handler */);
c79a329d
JS
324Screen *XScreenOfDisplay(Display* /* display */,
325 int /* screen_number */);
326int DisplayWidth(Display* /* display */, int /* screen */);
327int DisplayHeight(Display* /* display */, int /* screen */);
328int DefaultDepth(Display* /* display */, int /* screen */);
329int XAllocColor(Display* /* display */, Colormap /* cmap */,
330 XColor* color);
331int XParseColor(Display* display, Colormap cmap,
332 const char* cname, XColor* color);
788519c6
JS
333int XDrawLine(Display* display, Window win, GC gc,
334 int x1, int y1, int x2, int y2);
335int XTextExtents( XFontStruct* font, char* s, int len, int* direction,
336 int* ascent, int* descent2, XCharStruct* overall);
337int XPending(Display *d);
338XFontStruct* XLoadQueryFont(Display* display, const char* fontSpec);
339int XFreeFont(Display* display, XFontStruct* fontStruct);
340int XQueryColor(Display* display, Colormap cmap, XColor* color);
461e93f9
JS
341Status XGetWindowAttributes(Display* display, Window w,
342 XWindowAttributes* window_attributes);
343
344int XConfigureWindow(Display* display, Window w, int mask, XWindowChanges* changes);
345int XTranslateCoordinates(Display* display, Window srcWindow, Window destWindow, int srcX, int srcY, int* destX, int* destY, Window* childReturn);
c79a329d 346
0b5c0e1a
JS
347void wxNoop();
348
461e93f9 349#ifdef __cplusplus
256d631a
JS
350}
351#endif
352
c79a329d 353#define XMaxRequestSize(display) 16384
256d631a 354
c79a329d
JS
355#endif
356 /* _DUMMY_XLIBH_ */