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