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