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