diff options
author | Jamey Sharp <jamey@minilop.net> | 2002-04-08 15:16:16 +0000 |
---|---|---|
committer | Jamey Sharp <jamey@minilop.net> | 2002-04-08 15:16:16 +0000 |
commit | 1fd66b56c278aaf1e08cd6dcc166f5bee64c81b0 (patch) | |
tree | 635903fea902566d42ee8b79debd6b5a9f18cb05 /xcl | |
parent | 58e52a174265cd400537c72ca0b10e2e6c370593 (diff) |
Began replacing core protocol implementations with m4-generated code.
Implemented a bunch of new core protocol wrapper functions at once.
Diffstat (limited to 'xcl')
-rw-r--r-- | xcl/src/proto.m4 | 85 | ||||
-rw-r--r-- | xcl/src/xcbwrap.m4 | 115 |
2 files changed, 200 insertions, 0 deletions
diff --git a/xcl/src/proto.m4 b/xcl/src/proto.m4 new file mode 100644 index 0000000..7bbe564 --- /dev/null +++ b/xcl/src/proto.m4 @@ -0,0 +1,85 @@ +XCLREQ(AllowEvents, XCLPARAMS(int mode, Time time)) + +XCLREQ(Bell, XCLPARAMS(int percent)) + +XCLREQ(SetAccessControl, XCLPARAMS(int mode)) + +XCLREQ(ChangeActivePointerGrab, XCLPARAMS(unsigned int event_mask, Cursor cursor, Time time)) + +XCLREQ(SetCloseDownMode, XCLPARAMS(int mode)) + +XCLREQ(ChangePointerControl, XCLPARAMS(Bool do_acceleration, Bool do_threshold, int acceleration_numerator, int acceleration_denominator, int threshold)) + +XCLREQ(ChangeSaveSet, XCLPARAMS(Window window, int mode)) + +XCLREQ(ClearArea, XCLPARAMS(Window window, int x, int y, unsigned int width, unsigned int height, Bool exposures)) + +XCLREQ(ConvertSelection, XCLPARAMS(Atom selection, Atom target, Atom property, Window requestor, Time time)) + +XCLREQ(CopyArea, XCLGC(gc), XCLPARAMS(Drawable src_drawable, Drawable dst_drawable, GC gc, int src_x, int src_y, unsigned int width, unsigned int height, int dst_x, int dst_y)) + +XCLREQ(CopyColormapAndFree, XCLALLOC(Colormap, mid), XCLPARAMS(Colormap src_cmap)) + +XCLREQ(CopyPlane, XCLGC(gc), XCLPARAMS(Drawable src_drawable, Drawable dst_drawable, GC gc, int src_x, int src_y, unsigned int width, unsigned int height, int dst_x, int dst_y, unsigned long bit_plane)) + +XCLREQ(CreateColormap, XCLALLOC(Colormap, mid), XCLPARAMS(Window window, Visual *visual, int alloc)) + +XCLREQ(CreatePixmap, XCLALLOC(Pixmap, pid), XCLPARAMS(Drawable drawable, unsigned int width, unsigned int height, unsigned int depth)) + +XCLREQ(DeleteProperty, XCLPARAMS(Window window, Atom property)) + +XCLREQ(DestroySubwindows, XCLPARAMS(Window window)) + +XCLREQ(DestroyWindow, XCLPARAMS(Window window)) + +XCLREQ(ForceScreenSaver, XCLPARAMS(int mode)) + +XCLREQ(FreeColormap, XCLPARAMS(Colormap cmap)) + +XCLREQ(FreeColors, XCLPARAMS(Colormap cmap, unsigned long *pixels, int pixels_len, unsigned long plane_mask)) + +XCLREQ(FreeCursor, XCLPARAMS(Cursor cursor)) + +XCLREQ(FreePixmap, XCLPARAMS(Pixmap pixmap)) + +XCLREQ(GrabButton, XCLPARAMS(unsigned int modifiers, unsigned int button, Window grab_window, Bool owner_events, unsigned int event_mask, int pointer_mode, int keyboard_mode, Window confine_to, Cursor cursor)) + +XCLREQ(GrabKey, XCLPARAMS(int key, unsigned int modifiers, Window grab_window, Bool owner_events, int pointer_mode, int keyboard_mode)) + +XCLREQ(GrabServer) + +XCLREQ(InstallColormap, XCLPARAMS(Colormap cmap)) + +XCLREQ(KillClient, XCLPARAMS(XID resource)) + +XCLREQ(MapSubwindows, XCLPARAMS(Window window)) + +XCLREQ(MapWindow, XCLPARAMS(Window window)) + +XCLREQ(ReparentWindow, XCLPARAMS(Window window, Window parent, int x, int y)) + +XCLREQ(SetInputFocus, XCLPARAMS(Window focus, int revert_to, Time time)) + +XCLREQ(ChangeKeyboardMapping, XCLPARAMS(int first_keycode, int keysyms_per_keycode, KeySym *keysyms, int keycode_count)) + +XCLREQ(SetSelectionOwner, XCLPARAMS(Atom selection, Window owner, Time time)) + +XCLREQ(SetScreenSaver, XCLPARAMS(int timeout, int interval, int prefer_blanking, int allow_exposures)) + +XCLREQ(UngrabButton, XCLPARAMS(unsigned int button, unsigned int modifiers, Window grab_window)) + +XCLREQ(UngrabKeyboard, XCLPARAMS(Time time)) + +XCLREQ(UngrabKey, XCLPARAMS(int key, unsigned int modifiers, Window grab_window)) + +XCLREQ(UngrabPointer, XCLPARAMS(Time time)) + +XCLREQ(UngrabServer) + +XCLREQ(UninstallColormap, XCLPARAMS(Colormap cmap)) + +XCLREQ(UnmapSubwindows, XCLPARAMS(Window window)) + +XCLREQ(UnmapWindow, XCLPARAMS(Window window)) + +XCLREQ(WarpPointer, XCLPARAMS(Window src_window, Window dst_window, int src_x, int src_y, unsigned int src_width, unsigned int src_height, int dst_x, int dst_y)) diff --git a/xcl/src/xcbwrap.m4 b/xcl/src/xcbwrap.m4 new file mode 100644 index 0000000..961371b --- /dev/null +++ b/xcl/src/xcbwrap.m4 @@ -0,0 +1,115 @@ +dnl Copyright (C) 2001-2002 Bart Massey and Jamey Sharp. +dnl All Rights Reserved. See the file COPYING for licensing information. +/* + * This file automatically generated by xcbwrap.m4. + * Edit at your peril. + */ + +#include "xclint.h" +divert(-1) dnl kill output until the next diversion + +dnl default values +define(`DEFRETTYPE', `int') +define(`DEFRETVAL', `1') +define(`DEFPARAMS', `') +define(`DEFFLUSHGC', `') +define(`DEFALLOC', `') + +dnl init to defaults +define(`RETTYPE', DEFRETTYPE) +define(`RETVAL', DEFRETVAL) +define(`PARAMS', DEFPARAMS) +define(`FLUSHGC', DEFFLUSHGC) +define(`ALLOC', DEFALLOC) + +dnl XCLREQ(name, specs ...) +define(`XCLREQ', ` +dnl evaluate anything that the caller passed in +shift($@) + +dnl save values into their per-request storage +define(`$1'`RETTYPE', RETTYPE) +define(`$1'`RETVAL', RETVAL) +define(`$1'`PARAMS', defn(`PARAMS')) +define(`$1'`FLUSHGC', FLUSHGC) +define(`$1'`ALLOC', ALLOC) + +dnl restore defaults for next round +define(`RETTYPE', DEFRETTYPE) +define(`RETVAL', DEFRETVAL) +define(`PARAMS', DEFPARAMS) +define(`FLUSHGC', DEFFLUSHGC) +define(`ALLOC', DEFALLOC) +') + +define(`XCLRETTYPE', `define(`RETTYPE', `$1')') +define(`XCLRETVAL', `define(`RETVAL', `$1')') +define(`XCLPARAMS', `define(`PARAMS', `,$@')') +define(`XCLGC', `define(`FLUSHGC', `$1')') + +define(`XCLALLOC', `define(`ALLOC', ` + $1 $2 = XCB`'dnl +ifelse($1, `Window', `WINDOW', +ifelse($1, `Pixmap', `PIXMAP', +ifelse($1, `Cursor', `CURSOR', +ifelse($1, `Font', `FONT', +ifelse($1, `GContext', `GCONTEXT', +ifelse($1, `Colormap', `COLORMAP', +ifelse($1, `Atom', `ATOM')))))))`'dnl +New(c).xid;') +define(`RETTYPE', `$1') +define(`RETVAL', `$2') +') + + +dnl Implementations of XCB request description macros + +define(`VOIDREQUEST', `divert(0)ifdef(`$1'`RETTYPE', ` +$1RETTYPE X`'$1(Display *dpy`'$1PARAMS) +{ + register XCBConnection *c = XCBConnectionOfDisplay(dpy);dnl +$1ALLOC +ifelse($1FLUSHGC, , , `dnl + LockDisplay(dpy); + FlushGC(dpy, $1FLUSHGC); +')dnl + XCB$1(c`'divert(-1) + $2 + divert(0)); +ifelse($1FLUSHGC, , , `dnl + UnlockDisplay(dpy); +')dnl + return $1RETVAL; +} +')divert(-1)') + +define(`PARAM', `divert(0), dnl +ifelse($1, `WINDOW', `XCLWINDOW($2)', +ifelse($1, `PIXMAP', `XCLPIXMAP($2)', +ifelse($1, `CURSOR', `XCLCURSOR($2)', +ifelse($1, `FONT', `XCLFONT($2)', +ifelse($1, `GCONTEXT', `XCLGCONTEXT($2->gid)', +ifelse($1, `COLORMAP', `XCLCOLORMAP($2)', +ifelse($1, `ATOM', `XCLATOM($2)', +ifelse($1, `DRAWABLE', `XCLDRAWABLE($2)', +ifelse($1, `FONTABLE', `XCLFONTABLE($2)', +ifelse($1, `VISUALID', `XCLVISUALID($2 == CopyFromParent ? CopyFromParent : $2->visualid)', +ifelse($1, `TIMESTAMP', `XCLTIMESTAMP($2)', +ifelse($1, `KEYSYM', `XCLKEYSYM($2)', +ifelse($1, `KEYCODE', `XCLKEYCODE($2)', +ifelse($1, `BUTTON', `XCLBUTTON($2)', +`$2'))))))))))))))`'dnl +divert(-1)') + +define(`LOCALPARAM', ` +PARAM($1, $2) +') + +define(`LISTPARAM', `divert(0), dnl +($1 *) $2`'dnl +divert(-1)') + +define(`VALUEPARAM', ` +PARAM($1, $2) +LISTPARAM(CARD32, $3) +') |