Macros.c revision eb411b4b
1/*
2
3Copyright 1987, 1998  The Open Group
4
5Permission to use, copy, modify, distribute, and sell this software and its
6documentation for any purpose is hereby granted without fee, provided that
7the above copyright notice appear in all copies and that both that
8copyright notice and this permission notice appear in supporting
9documentation.
10
11The above copyright notice and this permission notice shall be included in
12all copies or substantial portions of the Software.
13
14THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
17OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
18AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
21Except as contained in this notice, the name of The Open Group shall not be
22used in advertising or otherwise to promote the sale, use or other dealings
23in this Software without prior written authorization from The Open Group.
24
25*/
26
27#ifdef HAVE_CONFIG_H
28#include <config.h>
29#endif
30#include "Xlibint.h"
31#define XUTIL_DEFINE_FUNCTIONS
32#include "Xutil.h"
33
34/*
35 * This file makes full definitions of routines for each macro.
36 * We do not expect C programs to use these, but other languages may
37 * need them.
38 */
39
40int XConnectionNumber(Display *dpy) { return (ConnectionNumber(dpy)); }
41
42Window XRootWindow (Display *dpy, int scr)
43{
44    return (RootWindow(dpy,scr));
45}
46
47int XDefaultScreen(Display *dpy) { return (DefaultScreen(dpy)); }
48
49Window XDefaultRootWindow (Display *dpy)
50{
51    return (RootWindow(dpy,DefaultScreen(dpy)));
52}
53
54Visual *XDefaultVisual(Display *dpy, int scr)
55{
56    return (DefaultVisual(dpy, scr));
57}
58
59GC XDefaultGC(Display *dpy, int scr)
60{
61    return (DefaultGC(dpy,scr));
62}
63
64unsigned long XBlackPixel(Display *dpy, int scr)
65{
66    return (BlackPixel(dpy, scr));
67}
68
69unsigned long XWhitePixel(Display *dpy, int scr)
70{
71    return (WhitePixel(dpy,scr));
72}
73
74unsigned long XAllPlanes(void) { return AllPlanes; }
75
76int XQLength(Display *dpy) { return (QLength(dpy)); }
77
78int XDisplayWidth(Display *dpy, int scr)
79{
80    return (DisplayWidth(dpy,scr));
81}
82
83int XDisplayHeight(Display *dpy, int scr)
84{
85    return (DisplayHeight(dpy, scr));
86}
87
88int XDisplayWidthMM(Display *dpy, int scr)
89{
90    return (DisplayWidthMM(dpy, scr));
91}
92
93int XDisplayHeightMM(Display *dpy, int scr)
94{
95    return (DisplayHeightMM(dpy, scr));
96}
97
98int XDisplayPlanes(Display *dpy, int scr)
99{
100    return (DisplayPlanes(dpy, scr));
101}
102
103int XDisplayCells(Display *dpy, int scr)
104{
105    return (DisplayCells (dpy, scr));
106}
107
108int XScreenCount(Display *dpy) { return (ScreenCount(dpy)); }
109
110char *XServerVendor(Display *dpy) { return (ServerVendor(dpy)); }
111
112int XProtocolVersion(Display *dpy) { return (ProtocolVersion(dpy)); }
113
114int XProtocolRevision(Display *dpy) { return (ProtocolRevision(dpy));}
115
116int XVendorRelease(Display *dpy) { return (VendorRelease(dpy)); }
117
118char *XDisplayString(Display *dpy) { return (DisplayString(dpy)); }
119
120int XDefaultDepth(Display *dpy, int scr)
121{
122    return(DefaultDepth(dpy, scr));
123}
124
125Colormap XDefaultColormap(Display *dpy, int scr)
126{
127    return (DefaultColormap(dpy, scr));
128}
129
130int XBitmapUnit(Display *dpy) { return (BitmapUnit(dpy)); }
131
132int XBitmapBitOrder(Display *dpy) { return (BitmapBitOrder(dpy)); }
133
134int XBitmapPad(Display *dpy) { return (BitmapPad(dpy)); }
135
136int XImageByteOrder(Display *dpy) { return (ImageByteOrder(dpy)); }
137
138unsigned long XNextRequest(Display *dpy)
139{
140    return (NextRequest(dpy));
141}
142
143unsigned long XLastKnownRequestProcessed(Display *dpy)
144{
145    return (LastKnownRequestProcessed(dpy));
146}
147
148/* screen oriented macros (toolkit) */
149Screen *XScreenOfDisplay(Display *dpy, int scr)
150{
151    return (ScreenOfDisplay(dpy, scr));
152}
153
154Screen *XDefaultScreenOfDisplay(Display *dpy)
155{
156    return (DefaultScreenOfDisplay(dpy));
157}
158
159Display *XDisplayOfScreen(Screen *s) { return (DisplayOfScreen(s)); }
160
161Window XRootWindowOfScreen(Screen *s) { return (RootWindowOfScreen(s)); }
162
163unsigned long XBlackPixelOfScreen(Screen *s)
164{
165    return (BlackPixelOfScreen(s));
166}
167
168unsigned long XWhitePixelOfScreen(Screen *s)
169{
170    return (WhitePixelOfScreen(s));
171}
172
173Colormap XDefaultColormapOfScreen(Screen *s)
174{
175    return (DefaultColormapOfScreen(s));
176}
177
178int XDefaultDepthOfScreen(Screen *s)
179{
180    return (DefaultDepthOfScreen(s));
181}
182
183GC XDefaultGCOfScreen(Screen *s)
184{
185    return (DefaultGCOfScreen(s));
186}
187
188Visual *XDefaultVisualOfScreen(Screen *s)
189{
190    return (DefaultVisualOfScreen(s));
191}
192
193int XWidthOfScreen(Screen *s) { return (WidthOfScreen(s)); }
194
195int XHeightOfScreen(Screen *s) { return (HeightOfScreen(s)); }
196
197int XWidthMMOfScreen(Screen *s) { return (WidthMMOfScreen(s)); }
198
199int XHeightMMOfScreen(Screen *s) { return (HeightMMOfScreen(s)); }
200
201int XPlanesOfScreen(Screen *s) { return (PlanesOfScreen(s)); }
202
203int XCellsOfScreen(Screen *s) { return (CellsOfScreen(s)); }
204
205int XMinCmapsOfScreen(Screen *s) { return (MinCmapsOfScreen(s)); }
206
207int XMaxCmapsOfScreen(Screen *s) { return (MaxCmapsOfScreen(s)); }
208
209Bool XDoesSaveUnders(Screen *s) { return (DoesSaveUnders(s)); }
210
211int XDoesBackingStore(Screen *s) { return (DoesBackingStore(s)); }
212
213long XEventMaskOfScreen(Screen *s) { return (EventMaskOfScreen(s)); }
214
215int XScreenNumberOfScreen (register Screen *scr)
216{
217    register Display *dpy = scr->display;
218    register Screen *dpyscr = dpy->screens;
219    register int i;
220
221    for (i = 0; i < dpy->nscreens; i++, dpyscr++) {
222	if (scr == dpyscr) return i;
223    }
224    return -1;
225}
226
227/*
228 * These macros are used to give some sugar to the image routines so that
229 * naive people are more comfortable with them.
230 */
231#undef XDestroyImage
232int
233XDestroyImage(
234	XImage *ximage)
235{
236	return((*((ximage)->f.destroy_image))((ximage)));
237}
238#undef XGetPixel
239unsigned long XGetPixel(
240	XImage *ximage,
241	int x, int y)
242{
243	return ((*((ximage)->f.get_pixel))((ximage), (x), (y)));
244}
245#undef XPutPixel
246int XPutPixel(
247	XImage *ximage,
248	int x, int y,
249	unsigned long pixel)
250{
251	return((*((ximage)->f.put_pixel))((ximage), (x), (y), (pixel)));
252}
253#undef XSubImage
254XImage *XSubImage(
255	XImage *ximage,
256	int x, int y,
257	unsigned int width, unsigned int height)
258{
259	return((*((ximage)->f.sub_image))((ximage), (x),
260		(y), (width), (height)));
261}
262#undef XAddPixel
263int XAddPixel(
264	XImage *ximage,
265	long value)
266{
267	return((*((ximage)->f.add_pixel))((ximage), (value)));
268}
269
270
271int
272XNoOp (register Display *dpy)
273{
274    register xReq *req;
275
276    LockDisplay(dpy);
277    GetEmptyReq(NoOperation, req);
278
279    UnlockDisplay(dpy);
280    SyncHandle();
281    return 1;
282}
283