9 #pragma interface "Xlib.h"
12 /* Move away the typedef in XtoNX.h */
13 #define XFontStruct XFontStruct1
20 typedef GR_PALETTE
* Colormap
;
21 typedef GR_DRAW_ID Drawable
;
23 typedef unsigned long VisualID
;
26 typedef GR_SCANCODE KeySym
;
27 typedef GR_EVENT_KEYSTROKE XKeyEvent
;
33 short lbearing
; /* origin to left edge of raster */
34 short rbearing
; /* origin to right edge of raster */
35 short width
; /* advance to next char's origin */
36 short ascent
; /* baseline to top edge of raster */
37 short descent
; /* baseline to bottom edge of raster */
38 unsigned short attributes
; /* per char flags (not predefined) */
41 /* Configure window value mask bits */
44 #define CWWidth (1<<2)
45 #define CWHeight (1<<3)
46 #define CWBorderWidth (1<<4)
47 #define CWSibling (1<<5)
48 #define CWStackMode (1<<6)
60 /* typedef unsigned long Time; */
63 #define GrabSuccess Success
64 #define GrabNotViewable (Success+1)
68 #define IsUnviewable 1
71 #define PropertyChangeMask GR_EVENT_MASK_SELECTION_CHANGED
72 #define GraphicsExpose GR_EVENT_TYPE_EXPOSURE
73 #define GraphicsExposeMask GR_EVENT_MASK_EXPOSURE
74 #define ColormapChangeMask 0
77 #define LineOnOffDash 0
80 #define CapProjecting 0
85 #define IncludeInferiors 0
86 #define ClipByChildren 0
90 #define NoEventMask GR_EVENT_MASK_NONE
91 #define RevertToParent 0
93 #define GrabModeAsync 0
95 #define GXcopy GR_MODE_COPY
96 #define GXclear GR_MODE_CLEAR
98 #define GXxor GR_MODE_OR
100 #define GXinvert GR_MODE_INVERT
101 #define GXorReverse GR_MODE_ORREVERSE
102 #define GXandReverse GR_MODE_ANDREVERSE
103 #define GXand GR_MODE_AND
104 #define GXor GR_MODE_OR
105 #define GXandInverted GR_MODE_ANDINVERTED
106 #define GXnoop GR_MODE_NOOP
107 #define GXnor GR_MODE_NOR
108 #define GXequiv GR_MODE_EQUIV
109 #define GXcopyInverted GR_MODE_COPYINVERTED
110 #define GXorInverted GR_MODE_ORINVERTED
111 #define GXnand GR_MODE_NAND
112 #define GXset GR_MODE_SET
114 #define XSynchronize(display,sync)
115 #define XDefaultRootWindow(d) GR_ROOT_WINDOW_ID
116 #define RootWindowOfScreen(s) GR_ROOT_WINDOW_ID
117 #define XFreePixmap(d, p) GrDestroyWindow(p)
118 #define XFreeCursor(d, c) GrDestroyCursor(c)
119 #define XFreeGC(d, gc) GrDestroyGC(gc)
120 #define XSetBackground(d, gc, c) GrSetGCBackground(gc, c)
121 #define DefaultVisual(d, s) ((Visual*) NULL)
122 #define DefaultColormap(d, s) DefaultColormapOfScreen((Screen*) NULL)
123 #define DefaultScreenOfDisplay(d) 0
124 #define XSetFillStyle(d, gc, s) wxNoop()
125 #define XSetLineAttributes(d, gc, a, b, c, e) wxNoop()
126 #define XSetClipMask(d, gc, m) wxNoop()
127 #define XSetTSOrigin(d, gc, x, y) wxNoop()
128 #define XFillArc(d, w, gc, x, y, rx, ry, a1, a2) GrArcAngle(w, gc, x, y, rx, ry, a1, a2, GR_PIE)
129 #define XDrawArc(d, w, gc, x, y, rx, ry, a1, a2) GrArcAngle(w, gc, x, y, rx, ry, a1, a2, GR_ARC)
130 #define XDrawPoint(d, w, gc, x, y) GrPoint(w, gc, x, y)
131 #define XFillPolygon(d, w, gc, p, n, s, m) GrFillPoly(w, gc, n, p)
132 #define XDrawRectangle(d, w, gc, x, y, width, height) GrRect(w, gc, x, y, width, height)
133 #define XSetClipOrigin(d, gc, x, y) GrSetGCClipOrigin(gc, x, y)
134 #define XSetRegion(d, gc, r) GrSetGCRegion(gc, r)
135 #define XSetTile(d, gc, p) wxNoop()
136 #define XSetStipple(d, gc, p) wxNoop()
137 #define XSetSubwindowMode(d, gc, mode) wxNoop()
138 #define XFreeColormap(d, cmap) wxNoop()
139 #define XSetTransientForHint(d, w, p) wxNoop()
140 #define XUnionRegion(sr1,sr2,r) GrUnionRegion(r,sr1,sr2)
141 #define XIntersectRegion(sr1,sr2,r) GrIntersectRegion(r,sr1,sr2)
142 #define XEqualRegion(r1, r2) GrEqualRegion(r1, r2)
143 #define XEmptyRegion(r) GrEmptyRegion(r)
144 #define XOffsetRegion(r, x, y) GrOffsetRegion(r, x, y)
145 #define XClipBox(r, rect) GrGetRegionBox(r, rect)
146 #define XPointInRegion(r, x, y) GrPointInRegion(r, x, y)
147 #define XXorRegion(sr1, sr2, r) GrXorRegion(r, sr1, sr2)
148 /* TODO: Cannot find equivalent for this. */
149 #define XIconifyWindow(d, w, s) 0
150 #define XCreateWindowWithColor(d,p,x,y,w,h,bw,depth,cl,vis,backColor,foreColor) \
151 GrNewWindow(p,x,y,w,h,bw,backColor,foreColor)
152 #define XLookupString(event, buf, len, sym, status) (*sym = (event)->scancode)
153 #define XBell(a, b) GrBell()
154 #define DisplayWidthMM(d, s) 100
155 #define DisplayHeightMM(d, s) 100
157 /* These defines are wrongly defined in XtoNX.h, IMHO,
158 * since they reference a static global.
159 * Redefined as functions, below.
167 * Data structure used by color operations
171 unsigned short red
, green
, blue
;
172 char flags
; /* do_red, do_green, do_blue */
178 Display
*display
; /* Display the event was read from */
179 XID resourceid
; /* resource id */
180 unsigned long serial
; /* serial number of failed request */
181 unsigned char error_code
; /* error code of failed request */
182 unsigned char request_code
; /* Major op-code of failed request */
183 unsigned char minor_code
; /* Minor op-code of failed request */
187 * Visual structure; contains information about colormapping possible.
190 void *ext_data
; /* hook for extension to hang data */
191 VisualID visualid
; /* visual id of this visual */
192 #if defined(__cplusplus) || defined(c_plusplus)
193 int c_class
; /* C++ class of screen (monochrome, etc.) */
195 int class; /* class of screen (monochrome, etc.) */
197 unsigned long red_mask
, green_mask
, blue_mask
; /* mask values */
198 int bits_per_rgb
; /* log base 2 of distinct color values */
199 int map_entries
; /* color map entries */
203 * Depth structure; contains information for each possible depth.
206 int depth
; /* this depth (Z) of the depth */
207 int nvisuals
; /* number of Visual types at this depth */
208 Visual
*visuals
; /* list of visuals possible at this depth */
212 * Information about the screen. The contents of this structure are
213 * implementation dependent. A Screen should be treated as opaque
214 * by application code.
217 struct _XDisplay
; /* Forward declare before use for C++ */
220 void *ext_data
; /* hook for extension to hang data */
221 struct _XDisplay
*display
;/* back pointer to display structure */
222 Window root
; /* Root window id. */
223 int width
, height
; /* width and height of screen */
224 int mwidth
, mheight
; /* width and height of in millimeters */
225 int ndepths
; /* number of depths possible */
226 Depth
*depths
; /* list of allowable depths on the screen */
227 int root_depth
; /* bits per pixel */
228 Visual
*root_visual
; /* root visual */
229 GC default_gc
; /* GC for the root root visual */
230 Colormap cmap
; /* default color map */
231 unsigned long white_pixel
;
232 unsigned long black_pixel
; /* White and Black pixel values */
233 int max_maps
, min_maps
; /* max and min color maps */
234 int backing_store
; /* Never, WhenMapped, Always */
236 long root_input_mask
; /* initial root input mask */
241 int x
, y
; /* location of window */
242 int width
, height
; /* width and height of window */
243 int border_width
; /* border width of window */
244 int depth
; /* depth of window */
245 Visual
*visual
; /* the associated visual structure */
246 Window root
; /* root of screen containing window */
247 int _class
; /* InputOutput, InputOnly*/
248 int bit_gravity
; /* one of the bit gravity values */
249 int win_gravity
; /* one of the window gravity values */
250 int backing_store
; /* NotUseful, WhenMapped, Always */
251 unsigned long backing_planes
;/* planes to be preserved if possible */
252 unsigned long backing_pixel
;/* value to be used when restoring planes */
253 Bool save_under
; /* boolean, should bits under be saved? */
254 Colormap colormap
; /* color map to be associated with window */
255 Bool map_installed
; /* boolean, is color map currently installed*/
256 int map_state
; /* IsUnmapped, IsUnviewable, IsViewable */
257 long all_event_masks
; /* set of events all people have interest in*/
258 long your_event_mask
; /* my event mask */
259 long do_not_propagate_mask
;/* set of events that should not propagate */
260 Bool override_redirect
; /* boolean value for override-redirect */
261 Screen
*screen
; /* back pointer to correct screen */
264 typedef int (*XErrorHandler
) ( /* WARNING, this type not in Xlib spec */
265 Display
* /* display */,
266 XErrorEvent
* /* error_event */
271 /* What should this be? */
273 #ifndef ResizeRequest
274 #define ResizeRequest ??
279 #define MotionNotify GR_EVENT_TYPE_MOUSE_POSITION
280 #define PointerMotionMask GR_EVENT_MASK_MOUSE_POSITION
283 #define ButtonMotionMask GR_EVENT_MASK_MOUSE_POSITION
284 #define KeymapStateMask 0
285 #define StructureNotifyMask GR_EVENT_MASK_UPDATE
287 #ifdef ConfigureNotify
288 /* XtoNX.h gets it wrong */
289 #undef ConfigureNotify
291 #define ConfigureNotify GR_EVENT_TYPE_UPDATE
294 #define FocusIn GR_EVENT_TYPE_FOCUS_IN
295 #define FocusOut GR_EVENT_TYPE_FOCUS_OUT
296 #define FocusChangeMask GR_EVENT_MASK_FOCUS_IN|GR_EVENT_MASK_FOCUS_OUT
305 Display
*XOpenDisplay(char *name
);
306 Colormap
DefaultColormapOfScreen(Screen
* /* screen */) ;
307 int XSetGraphicsExposures( Display
* /* display */, GC
/* gc */, Bool
/* graphics_exposures */) ;
308 int XWarpPointer( Display
* /* display */, Window
/* srcW */, Window
/* destW */,
309 int /* srcX */, int /* srcY */,
310 unsigned int /* srcWidth */,
311 unsigned int /* srcHeight */,
312 int destX
, int destY
);
313 int XSetInputFocus(Display
* /* display */, Window focus
, int /* revert_to */, Time
/* time */) ;
314 int XGetInputFocus(Display
* /* display */, Window
* /* focus_return */, int* /* revert_to_return */) ;
315 int XGrabPointer(Display
* /* display */, Window
/* grab_window */,
316 Bool
/* owner_events */, unsigned int /* event_mask */,
317 int /* pointer_mode */, int /* keyboard_mode */,
318 Window
/* confine_to */, Cursor
/* cursor */, Time
/* time */) ;
319 int XUngrabPointer(Display
* /* display */, Time
/* time */) ;
320 int XCopyArea(Display
* /* display */, Drawable src
, Drawable dest
, GC gc
,
321 int src_x
, int src_y
, unsigned int width
, unsigned int height
,
322 int dest_x
, int dest_y
) ;
323 int XCopyPlane(Display
* /* display */, Drawable src
, Drawable dest
, GC gc
,
324 int src_x
, int src_y
, unsigned int width
, unsigned int height
,
325 int dest_x
, int dest_y
, unsigned long /* plane */) ;
327 XErrorHandler
XSetErrorHandler (XErrorHandler
/* handler */);
328 Screen
*XScreenOfDisplay(Display
* /* display */,
329 int /* screen_number */);
330 int DisplayWidth(Display
* /* display */, int /* screen */);
331 int DisplayHeight(Display
* /* display */, int /* screen */);
332 int DefaultDepth(Display
* /* display */, int /* screen */);
333 int XAllocColor(Display
* /* display */, Colormap
/* cmap */,
335 int XParseColor(Display
* display
, Colormap cmap
,
336 const char* cname
, XColor
* color
);
337 int XDrawLine(Display
* display
, Window win
, GC gc
,
338 int x1
, int y1
, int x2
, int y2
);
339 int XTextExtents( XFontStruct
* font
, char* s
, int len
, int* direction
,
340 int* ascent
, int* descent2
, XCharStruct
* overall
);
341 int XPending(Display
*d
);
342 XFontStruct
* XLoadQueryFont(Display
* display
, const char* fontSpec
);
343 int XFreeFont(Display
* display
, XFontStruct
* fontStruct
);
344 int XQueryColor(Display
* display
, Colormap cmap
, XColor
* color
);
345 Status
XGetWindowAttributes(Display
* display
, Window w
,
346 XWindowAttributes
* window_attributes
);
348 int XConfigureWindow(Display
* display
, Window w
, int mask
, XWindowChanges
* changes
);
349 int XTranslateCoordinates(Display
* display
, Window srcWindow
, Window destWindow
, int srcX
, int srcY
, int* destX
, int* destY
, Window
* childReturn
);
357 #define XMaxRequestSize(display) 16384