Macros.c 7.08 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
/*

Copyright 1987, 1998  The Open Group

Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Except as contained in this notice, the name of The Open Group shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.

*/

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include "Xlibint.h"
#define XUTIL_DEFINE_FUNCTIONS
#include "Xutil.h"
33 34 35
#if USE_XCB
#include "Xxcbint.h"
#endif
36 37 38 39 40 41 42

/*
 * This file makes full definitions of routines for each macro.
 * We do not expect C programs to use these, but other languages may
 * need them.
 */

43
int XConnectionNumber(Display *dpy) { return (ConnectionNumber(dpy)); }
44

45 46 47 48
Window XRootWindow (Display *dpy, int scr)
{
    return (RootWindow(dpy,scr));
}
49

50
int XDefaultScreen(Display *dpy) { return (DefaultScreen(dpy)); }
51

52 53 54 55
Window XDefaultRootWindow (Display *dpy)
{
    return (RootWindow(dpy,DefaultScreen(dpy)));
}
56

57 58 59 60
Visual *XDefaultVisual(Display *dpy, int scr)
{
    return (DefaultVisual(dpy, scr));
}
61

62 63 64 65
GC XDefaultGC(Display *dpy, int scr)
{
    return (DefaultGC(dpy,scr));
}
66

67 68 69 70
unsigned long XBlackPixel(Display *dpy, int scr)
{
    return (BlackPixel(dpy, scr));
}
71

72 73 74 75
unsigned long XWhitePixel(Display *dpy, int scr)
{
    return (WhitePixel(dpy,scr));
}
76

77
unsigned long XAllPlanes(void) { return AllPlanes; }
78

79
int XQLength(Display *dpy) { return (QLength(dpy)); }
80

81 82 83 84
int XDisplayWidth(Display *dpy, int scr)
{
    return (DisplayWidth(dpy,scr));
}
85

86 87 88 89
int XDisplayHeight(Display *dpy, int scr)
{
    return (DisplayHeight(dpy, scr));
}
90

91 92 93 94
int XDisplayWidthMM(Display *dpy, int scr)
{
    return (DisplayWidthMM(dpy, scr));
}
95

96 97 98 99
int XDisplayHeightMM(Display *dpy, int scr)
{
    return (DisplayHeightMM(dpy, scr));
}
100

101 102 103 104
int XDisplayPlanes(Display *dpy, int scr)
{
    return (DisplayPlanes(dpy, scr));
}
105

106 107 108 109
int XDisplayCells(Display *dpy, int scr)
{
    return (DisplayCells (dpy, scr));
}
110

111
int XScreenCount(Display *dpy) { return (ScreenCount(dpy)); }
112

113
char *XServerVendor(Display *dpy) { return (ServerVendor(dpy)); }
114

115
int XProtocolVersion(Display *dpy) { return (ProtocolVersion(dpy)); }
116

117
int XProtocolRevision(Display *dpy) { return (ProtocolRevision(dpy));}
118

119
int XVendorRelease(Display *dpy) { return (VendorRelease(dpy)); }
120

121
char *XDisplayString(Display *dpy) { return (DisplayString(dpy)); }
122

123 124 125 126
int XDefaultDepth(Display *dpy, int scr)
{
    return(DefaultDepth(dpy, scr));
}
127

128 129 130 131
Colormap XDefaultColormap(Display *dpy, int scr)
{
    return (DefaultColormap(dpy, scr));
}
132

133
int XBitmapUnit(Display *dpy) { return (BitmapUnit(dpy)); }
134

135
int XBitmapBitOrder(Display *dpy) { return (BitmapBitOrder(dpy)); }
136

137
int XBitmapPad(Display *dpy) { return (BitmapPad(dpy)); }
138

139
int XImageByteOrder(Display *dpy) { return (ImageByteOrder(dpy)); }
140

141
#if !USE_XCB
142 143 144 145
unsigned long XNextRequest(Display *dpy)
{
    return (NextRequest(dpy));
}
146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
#else
/* XNextRequest() differs from the rest of the functions here because it is
 * no longer a macro wrapper - when libX11 is being used mixed together
 * with direct use of xcb, the next request field of the Display structure will
 * not be updated. We can't fix the NextRequest() macro in any easy way,
 * but we can at least make XNextRequest() do the right thing.
 */
unsigned long XNextRequest(Display *dpy)
{
    unsigned long next_request;
    LockDisplay(dpy);
    next_request = _XNextRequest(dpy);
    UnlockDisplay(dpy);

    return next_request;
}
#endif
163

164 165 166 167
unsigned long XLastKnownRequestProcessed(Display *dpy)
{
    return (LastKnownRequestProcessed(dpy));
}
168 169

/* screen oriented macros (toolkit) */
170 171 172 173
Screen *XScreenOfDisplay(Display *dpy, int scr)
{
    return (ScreenOfDisplay(dpy, scr));
}
174

175 176 177 178
Screen *XDefaultScreenOfDisplay(Display *dpy)
{
    return (DefaultScreenOfDisplay(dpy));
}
179

180
Display *XDisplayOfScreen(Screen *s) { return (DisplayOfScreen(s)); }
181

182
Window XRootWindowOfScreen(Screen *s) { return (RootWindowOfScreen(s)); }
183

184 185 186 187
unsigned long XBlackPixelOfScreen(Screen *s)
{
    return (BlackPixelOfScreen(s));
}
188

189 190 191 192
unsigned long XWhitePixelOfScreen(Screen *s)
{
    return (WhitePixelOfScreen(s));
}
193

194 195 196 197
Colormap XDefaultColormapOfScreen(Screen *s)
{
    return (DefaultColormapOfScreen(s));
}
198

199 200 201 202
int XDefaultDepthOfScreen(Screen *s)
{
    return (DefaultDepthOfScreen(s));
}
203

204 205 206 207
GC XDefaultGCOfScreen(Screen *s)
{
    return (DefaultGCOfScreen(s));
}
208

209 210 211 212
Visual *XDefaultVisualOfScreen(Screen *s)
{
    return (DefaultVisualOfScreen(s));
}
213

214
int XWidthOfScreen(Screen *s) { return (WidthOfScreen(s)); }
215

216
int XHeightOfScreen(Screen *s) { return (HeightOfScreen(s)); }
217

218
int XWidthMMOfScreen(Screen *s) { return (WidthMMOfScreen(s)); }
219

220
int XHeightMMOfScreen(Screen *s) { return (HeightMMOfScreen(s)); }
221

222
int XPlanesOfScreen(Screen *s) { return (PlanesOfScreen(s)); }
223

224
int XCellsOfScreen(Screen *s) { return (CellsOfScreen(s)); }
225

226
int XMinCmapsOfScreen(Screen *s) { return (MinCmapsOfScreen(s)); }
227

228
int XMaxCmapsOfScreen(Screen *s) { return (MaxCmapsOfScreen(s)); }
229

230
Bool XDoesSaveUnders(Screen *s) { return (DoesSaveUnders(s)); }
231

232
int XDoesBackingStore(Screen *s) { return (DoesBackingStore(s)); }
233

234
long XEventMaskOfScreen(Screen *s) { return (EventMaskOfScreen(s)); }
235

236
int XScreenNumberOfScreen (register Screen *scr)
237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292
{
    register Display *dpy = scr->display;
    register Screen *dpyscr = dpy->screens;
    register int i;

    for (i = 0; i < dpy->nscreens; i++, dpyscr++) {
	if (scr == dpyscr) return i;
    }
    return -1;
}

/*
 * These macros are used to give some sugar to the image routines so that
 * naive people are more comfortable with them.
 */
#undef XDestroyImage
int
XDestroyImage(
	XImage *ximage)
{
	return((*((ximage)->f.destroy_image))((ximage)));
}
#undef XGetPixel
unsigned long XGetPixel(
	XImage *ximage,
	int x, int y)
{
	return ((*((ximage)->f.get_pixel))((ximage), (x), (y)));
}
#undef XPutPixel
int XPutPixel(
	XImage *ximage,
	int x, int y,
	unsigned long pixel)
{
	return((*((ximage)->f.put_pixel))((ximage), (x), (y), (pixel)));
}
#undef XSubImage
XImage *XSubImage(
	XImage *ximage,
	int x, int y,
	unsigned int width, unsigned int height)
{
	return((*((ximage)->f.sub_image))((ximage), (x),
		(y), (width), (height)));
}
#undef XAddPixel
int XAddPixel(
	XImage *ximage,
	long value)
{
	return((*((ximage)->f.add_pixel))((ximage), (value)));
}


int
293
XNoOp (register Display *dpy)
294
{
295
    _X_UNUSED register xReq *req;
296 297 298 299 300 301 302 303

    LockDisplay(dpy);
    GetEmptyReq(NoOperation, req);

    UnlockDisplay(dpy);
    SyncHandle();
    return 1;
}