Macros.c revision b4ee4795
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#ifdef WORD64
141    WORD64ALIGN
142    return dpy->request + 1;
143#else
144    return (NextRequest(dpy));
145#endif
146}
147
148unsigned long XLastKnownRequestProcessed(Display *dpy)
149{
150    return (LastKnownRequestProcessed(dpy));
151}
152
153/* screen oriented macros (toolkit) */
154Screen *XScreenOfDisplay(Display *dpy, int scr)
155{
156    return (ScreenOfDisplay(dpy, scr));
157}
158
159Screen *XDefaultScreenOfDisplay(Display *dpy)
160{
161    return (DefaultScreenOfDisplay(dpy));
162}
163
164Display *XDisplayOfScreen(Screen *s) { return (DisplayOfScreen(s)); }
165
166Window XRootWindowOfScreen(Screen *s) { return (RootWindowOfScreen(s)); }
167
168unsigned long XBlackPixelOfScreen(Screen *s)
169{
170    return (BlackPixelOfScreen(s));
171}
172
173unsigned long XWhitePixelOfScreen(Screen *s)
174{
175    return (WhitePixelOfScreen(s));
176}
177
178Colormap XDefaultColormapOfScreen(Screen *s)
179{
180    return (DefaultColormapOfScreen(s));
181}
182
183int XDefaultDepthOfScreen(Screen *s)
184{
185    return (DefaultDepthOfScreen(s));
186}
187
188GC XDefaultGCOfScreen(Screen *s)
189{
190    return (DefaultGCOfScreen(s));
191}
192
193Visual *XDefaultVisualOfScreen(Screen *s)
194{
195    return (DefaultVisualOfScreen(s));
196}
197
198int XWidthOfScreen(Screen *s) { return (WidthOfScreen(s)); }
199
200int XHeightOfScreen(Screen *s) { return (HeightOfScreen(s)); }
201
202int XWidthMMOfScreen(Screen *s) { return (WidthMMOfScreen(s)); }
203
204int XHeightMMOfScreen(Screen *s) { return (HeightMMOfScreen(s)); }
205
206int XPlanesOfScreen(Screen *s) { return (PlanesOfScreen(s)); }
207
208int XCellsOfScreen(Screen *s) { return (CellsOfScreen(s)); }
209
210int XMinCmapsOfScreen(Screen *s) { return (MinCmapsOfScreen(s)); }
211
212int XMaxCmapsOfScreen(Screen *s) { return (MaxCmapsOfScreen(s)); }
213
214Bool XDoesSaveUnders(Screen *s) { return (DoesSaveUnders(s)); }
215
216int XDoesBackingStore(Screen *s) { return (DoesBackingStore(s)); }
217
218long XEventMaskOfScreen(Screen *s) { return (EventMaskOfScreen(s)); }
219
220int XScreenNumberOfScreen (register Screen *scr)
221{
222    register Display *dpy = scr->display;
223    register Screen *dpyscr = dpy->screens;
224    register int i;
225
226    for (i = 0; i < dpy->nscreens; i++, dpyscr++) {
227	if (scr == dpyscr) return i;
228    }
229    return -1;
230}
231
232/*
233 * These macros are used to give some sugar to the image routines so that
234 * naive people are more comfortable with them.
235 */
236#undef XDestroyImage
237int
238XDestroyImage(
239	XImage *ximage)
240{
241	return((*((ximage)->f.destroy_image))((ximage)));
242}
243#undef XGetPixel
244unsigned long XGetPixel(
245	XImage *ximage,
246	int x, int y)
247{
248	return ((*((ximage)->f.get_pixel))((ximage), (x), (y)));
249}
250#undef XPutPixel
251int XPutPixel(
252	XImage *ximage,
253	int x, int y,
254	unsigned long pixel)
255{
256	return((*((ximage)->f.put_pixel))((ximage), (x), (y), (pixel)));
257}
258#undef XSubImage
259XImage *XSubImage(
260	XImage *ximage,
261	int x, int y,
262	unsigned int width, unsigned int height)
263{
264	return((*((ximage)->f.sub_image))((ximage), (x),
265		(y), (width), (height)));
266}
267#undef XAddPixel
268int XAddPixel(
269	XImage *ximage,
270	long value)
271{
272	return((*((ximage)->f.add_pixel))((ximage), (value)));
273}
274
275
276int
277XNoOp (register Display *dpy)
278{
279    register xReq *req;
280
281    LockDisplay(dpy);
282    GetEmptyReq(NoOperation, req);
283
284    UnlockDisplay(dpy);
285    SyncHandle();
286    return 1;
287}
288