| 1 |  | 
|---|
| 2 | /*********************************************************** | 
|---|
| 3 |  | 
|---|
| 4 | Copyright 1987, 1998  The Open Group | 
|---|
| 5 |  | 
|---|
| 6 | Permission to use, copy, modify, distribute, and sell this software and its | 
|---|
| 7 | documentation for any purpose is hereby granted without fee, provided that | 
|---|
| 8 | the above copyright notice appear in all copies and that both that | 
|---|
| 9 | copyright notice and this permission notice appear in supporting | 
|---|
| 10 | documentation. | 
|---|
| 11 |  | 
|---|
| 12 | The above copyright notice and this permission notice shall be included in | 
|---|
| 13 | all copies or substantial portions of the Software. | 
|---|
| 14 |  | 
|---|
| 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | 
|---|
| 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | 
|---|
| 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE | 
|---|
| 18 | OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN | 
|---|
| 19 | AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | 
|---|
| 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | 
|---|
| 21 |  | 
|---|
| 22 | Except as contained in this notice, the name of The Open Group shall not be | 
|---|
| 23 | used in advertising or otherwise to promote the sale, use or other dealings | 
|---|
| 24 | in this Software without prior written authorization from The Open Group. | 
|---|
| 25 |  | 
|---|
| 26 |  | 
|---|
| 27 | Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. | 
|---|
| 28 |  | 
|---|
| 29 | All Rights Reserved | 
|---|
| 30 |  | 
|---|
| 31 | Permission to use, copy, modify, and distribute this software and its | 
|---|
| 32 | documentation for any purpose and without fee is hereby granted, | 
|---|
| 33 | provided that the above copyright notice appear in all copies and that | 
|---|
| 34 | both that copyright notice and this permission notice appear in | 
|---|
| 35 | supporting documentation, and that the name of Digital not be | 
|---|
| 36 | used in advertising or publicity pertaining to distribution of the | 
|---|
| 37 | software without specific, written prior permission. | 
|---|
| 38 |  | 
|---|
| 39 | DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING | 
|---|
| 40 | ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL | 
|---|
| 41 | DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR | 
|---|
| 42 | ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, | 
|---|
| 43 | WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, | 
|---|
| 44 | ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS | 
|---|
| 45 | SOFTWARE. | 
|---|
| 46 |  | 
|---|
| 47 | ******************************************************************/ | 
|---|
| 48 |  | 
|---|
| 49 | #ifndef _X11_XUTIL_H_ | 
|---|
| 50 | #define _X11_XUTIL_H_ | 
|---|
| 51 |  | 
|---|
| 52 | /* You must include <X11/Xlib.h> before including this file */ | 
|---|
| 53 | #include <X11/Xlib.h> | 
|---|
| 54 | #include <X11/keysym.h> | 
|---|
| 55 |  | 
|---|
| 56 | /* The Xlib structs are full of implicit padding to properly align members. | 
|---|
| 57 | We can't clean that up without breaking ABI, so tell clang not to bother | 
|---|
| 58 | complaining about it. */ | 
|---|
| 59 | #ifdef __clang__ | 
|---|
| 60 | #pragma clang diagnostic push | 
|---|
| 61 | #pragma clang diagnostic ignored "-Wpadded" | 
|---|
| 62 | #endif | 
|---|
| 63 |  | 
|---|
| 64 | /* | 
|---|
| 65 | * Bitmask returned by XParseGeometry().  Each bit tells if the corresponding | 
|---|
| 66 | * value (x, y, width, height) was found in the parsed string. | 
|---|
| 67 | */ | 
|---|
| 68 | #define NoValue		0x0000 | 
|---|
| 69 | #define XValue  	0x0001 | 
|---|
| 70 | #define YValue		0x0002 | 
|---|
| 71 | #define WidthValue  	0x0004 | 
|---|
| 72 | #define HeightValue  	0x0008 | 
|---|
| 73 | #define AllValues 	0x000F | 
|---|
| 74 | #define XNegative 	0x0010 | 
|---|
| 75 | #define YNegative 	0x0020 | 
|---|
| 76 |  | 
|---|
| 77 | /* | 
|---|
| 78 | * new version containing base_width, base_height, and win_gravity fields; | 
|---|
| 79 | * used with WM_NORMAL_HINTS. | 
|---|
| 80 | */ | 
|---|
| 81 | typedef struct { | 
|---|
| 82 | long flags;	/* marks which fields in this structure are defined */ | 
|---|
| 83 | int x, y;		/* obsolete for new window mgrs, but clients */ | 
|---|
| 84 | int width, height;	/* should set so old wm's don't mess up */ | 
|---|
| 85 | int min_width, min_height; | 
|---|
| 86 | int max_width, max_height; | 
|---|
| 87 | int width_inc, height_inc; | 
|---|
| 88 | struct { | 
|---|
| 89 | int x;	/* numerator */ | 
|---|
| 90 | int y;	/* denominator */ | 
|---|
| 91 | } min_aspect, max_aspect; | 
|---|
| 92 | int base_width, base_height;		/* added by ICCCM version 1 */ | 
|---|
| 93 | int win_gravity;			/* added by ICCCM version 1 */ | 
|---|
| 94 | } XSizeHints; | 
|---|
| 95 |  | 
|---|
| 96 | /* | 
|---|
| 97 | * The next block of definitions are for window manager properties that | 
|---|
| 98 | * clients and applications use for communication. | 
|---|
| 99 | */ | 
|---|
| 100 |  | 
|---|
| 101 | /* flags argument in size hints */ | 
|---|
| 102 | #define USPosition	(1L << 0) /* user specified x, y */ | 
|---|
| 103 | #define USSize		(1L << 1) /* user specified width, height */ | 
|---|
| 104 |  | 
|---|
| 105 | #define PPosition	(1L << 2) /* program specified position */ | 
|---|
| 106 | #define PSize		(1L << 3) /* program specified size */ | 
|---|
| 107 | #define PMinSize	(1L << 4) /* program specified minimum size */ | 
|---|
| 108 | #define PMaxSize	(1L << 5) /* program specified maximum size */ | 
|---|
| 109 | #define PResizeInc	(1L << 6) /* program specified resize increments */ | 
|---|
| 110 | #define PAspect		(1L << 7) /* program specified min and max aspect ratios */ | 
|---|
| 111 | #define PBaseSize	(1L << 8) /* program specified base for incrementing */ | 
|---|
| 112 | #define PWinGravity	(1L << 9) /* program specified window gravity */ | 
|---|
| 113 |  | 
|---|
| 114 | /* obsolete */ | 
|---|
| 115 | #define PAllHints (PPosition|PSize|PMinSize|PMaxSize|PResizeInc|PAspect) | 
|---|
| 116 |  | 
|---|
| 117 |  | 
|---|
| 118 |  | 
|---|
| 119 | typedef struct { | 
|---|
| 120 | long flags;	/* marks which fields in this structure are defined */ | 
|---|
| 121 | Bool input;	/* does this application rely on the window manager to | 
|---|
| 122 | get keyboard input? */ | 
|---|
| 123 | int initial_state;	/* see below */ | 
|---|
| 124 | Pixmap icon_pixmap;	/* pixmap to be used as icon */ | 
|---|
| 125 | Window icon_window; 	/* window to be used as icon */ | 
|---|
| 126 | int icon_x, icon_y; 	/* initial position of icon */ | 
|---|
| 127 | Pixmap icon_mask;	/* icon mask bitmap */ | 
|---|
| 128 | XID window_group;	/* id of related window group */ | 
|---|
| 129 | /* this structure may be extended in the future */ | 
|---|
| 130 | } XWMHints; | 
|---|
| 131 |  | 
|---|
| 132 | /* definition for flags of XWMHints */ | 
|---|
| 133 |  | 
|---|
| 134 | #define InputHint 		(1L << 0) | 
|---|
| 135 | #define StateHint 		(1L << 1) | 
|---|
| 136 | #define IconPixmapHint		(1L << 2) | 
|---|
| 137 | #define IconWindowHint		(1L << 3) | 
|---|
| 138 | #define IconPositionHint 	(1L << 4) | 
|---|
| 139 | #define IconMaskHint		(1L << 5) | 
|---|
| 140 | #define WindowGroupHint		(1L << 6) | 
|---|
| 141 | #define AllHints (InputHint|StateHint|IconPixmapHint|IconWindowHint| \ | 
|---|
| 142 | IconPositionHint|IconMaskHint|WindowGroupHint) | 
|---|
| 143 | #define XUrgencyHint		(1L << 8) | 
|---|
| 144 |  | 
|---|
| 145 | /* definitions for initial window state */ | 
|---|
| 146 | #define WithdrawnState 0	/* for windows that are not mapped */ | 
|---|
| 147 | #define NormalState 1	/* most applications want to start this way */ | 
|---|
| 148 | #define IconicState 3	/* application wants to start as an icon */ | 
|---|
| 149 |  | 
|---|
| 150 | /* | 
|---|
| 151 | * Obsolete states no longer defined by ICCCM | 
|---|
| 152 | */ | 
|---|
| 153 | #define DontCareState 0	/* don't know or care */ | 
|---|
| 154 | #define ZoomState 2	/* application wants to start zoomed */ | 
|---|
| 155 | #define InactiveState 4	/* application believes it is seldom used; */ | 
|---|
| 156 | /* some wm's may put it on inactive menu */ | 
|---|
| 157 |  | 
|---|
| 158 |  | 
|---|
| 159 | /* | 
|---|
| 160 | * new structure for manipulating TEXT properties; used with WM_NAME, | 
|---|
| 161 | * WM_ICON_NAME, WM_CLIENT_MACHINE, and WM_COMMAND. | 
|---|
| 162 | */ | 
|---|
| 163 | typedef struct { | 
|---|
| 164 | unsigned char *value;		/* same as Property routines */ | 
|---|
| 165 | Atom encoding;			/* prop type */ | 
|---|
| 166 | int format;				/* prop data format: 8, 16, or 32 */ | 
|---|
| 167 | unsigned long nitems;		/* number of data items in value */ | 
|---|
| 168 | } XTextProperty; | 
|---|
| 169 |  | 
|---|
| 170 | #define XNoMemory -1 | 
|---|
| 171 | #define XLocaleNotSupported -2 | 
|---|
| 172 | #define XConverterNotFound -3 | 
|---|
| 173 |  | 
|---|
| 174 | typedef enum { | 
|---|
| 175 | XStringStyle,		/* STRING */ | 
|---|
| 176 | XCompoundTextStyle,		/* COMPOUND_TEXT */ | 
|---|
| 177 | XTextStyle,			/* text in owner's encoding (current locale)*/ | 
|---|
| 178 | XStdICCTextStyle,		/* STRING, else COMPOUND_TEXT */ | 
|---|
| 179 | /* The following is an XFree86 extension, introduced in November 2000 */ | 
|---|
| 180 | XUTF8StringStyle		/* UTF8_STRING */ | 
|---|
| 181 | } XICCEncodingStyle; | 
|---|
| 182 |  | 
|---|
| 183 | typedef struct { | 
|---|
| 184 | int min_width, min_height; | 
|---|
| 185 | int max_width, max_height; | 
|---|
| 186 | int width_inc, height_inc; | 
|---|
| 187 | } XIconSize; | 
|---|
| 188 |  | 
|---|
| 189 | typedef struct { | 
|---|
| 190 | char *res_name; | 
|---|
| 191 | char *res_class; | 
|---|
| 192 | } XClassHint; | 
|---|
| 193 |  | 
|---|
| 194 | #ifdef XUTIL_DEFINE_FUNCTIONS | 
|---|
| 195 | extern int XDestroyImage( | 
|---|
| 196 | XImage *ximage); | 
|---|
| 197 | extern unsigned long XGetPixel( | 
|---|
| 198 | XImage *ximage, | 
|---|
| 199 | int x, int y); | 
|---|
| 200 | extern int XPutPixel( | 
|---|
| 201 | XImage *ximage, | 
|---|
| 202 | int x, int y, | 
|---|
| 203 | unsigned long pixel); | 
|---|
| 204 | extern XImage *XSubImage( | 
|---|
| 205 | XImage *ximage, | 
|---|
| 206 | int x, int y, | 
|---|
| 207 | unsigned int width, unsigned int height); | 
|---|
| 208 | extern int XAddPixel( | 
|---|
| 209 | XImage *ximage, | 
|---|
| 210 | long value); | 
|---|
| 211 | #else | 
|---|
| 212 | /* | 
|---|
| 213 | * These macros are used to give some sugar to the image routines so that | 
|---|
| 214 | * naive people are more comfortable with them. | 
|---|
| 215 | */ | 
|---|
| 216 | #define XDestroyImage(ximage) \ | 
|---|
| 217 | ((*((ximage)->f.destroy_image))((ximage))) | 
|---|
| 218 | #define XGetPixel(ximage, x, y) \ | 
|---|
| 219 | ((*((ximage)->f.get_pixel))((ximage), (x), (y))) | 
|---|
| 220 | #define XPutPixel(ximage, x, y, pixel) \ | 
|---|
| 221 | ((*((ximage)->f.put_pixel))((ximage), (x), (y), (pixel))) | 
|---|
| 222 | #define XSubImage(ximage, x, y, width, height)  \ | 
|---|
| 223 | ((*((ximage)->f.sub_image))((ximage), (x), (y), (width), (height))) | 
|---|
| 224 | #define XAddPixel(ximage, value) \ | 
|---|
| 225 | ((*((ximage)->f.add_pixel))((ximage), (value))) | 
|---|
| 226 | #endif | 
|---|
| 227 |  | 
|---|
| 228 | /* | 
|---|
| 229 | * Compose sequence status structure, used in calling XLookupString. | 
|---|
| 230 | */ | 
|---|
| 231 | typedef struct _XComposeStatus { | 
|---|
| 232 | XPointer compose_ptr;	/* state table pointer */ | 
|---|
| 233 | int chars_matched;		/* match state */ | 
|---|
| 234 | } XComposeStatus; | 
|---|
| 235 |  | 
|---|
| 236 | /* | 
|---|
| 237 | * Keysym macros, used on Keysyms to test for classes of symbols | 
|---|
| 238 | */ | 
|---|
| 239 | #define IsKeypadKey(keysym) \ | 
|---|
| 240 | (((KeySym)(keysym) >= XK_KP_Space) && ((KeySym)(keysym) <= XK_KP_Equal)) | 
|---|
| 241 |  | 
|---|
| 242 | #define IsPrivateKeypadKey(keysym) \ | 
|---|
| 243 | (((KeySym)(keysym) >= 0x11000000) && ((KeySym)(keysym) <= 0x1100FFFF)) | 
|---|
| 244 |  | 
|---|
| 245 | #define IsCursorKey(keysym) \ | 
|---|
| 246 | (((KeySym)(keysym) >= XK_Home)     && ((KeySym)(keysym) <  XK_Select)) | 
|---|
| 247 |  | 
|---|
| 248 | #define IsPFKey(keysym) \ | 
|---|
| 249 | (((KeySym)(keysym) >= XK_KP_F1)     && ((KeySym)(keysym) <= XK_KP_F4)) | 
|---|
| 250 |  | 
|---|
| 251 | #define IsFunctionKey(keysym) \ | 
|---|
| 252 | (((KeySym)(keysym) >= XK_F1)       && ((KeySym)(keysym) <= XK_F35)) | 
|---|
| 253 |  | 
|---|
| 254 | #define IsMiscFunctionKey(keysym) \ | 
|---|
| 255 | (((KeySym)(keysym) >= XK_Select)   && ((KeySym)(keysym) <= XK_Break)) | 
|---|
| 256 |  | 
|---|
| 257 | #ifdef XK_XKB_KEYS | 
|---|
| 258 | #define IsModifierKey(keysym) \ | 
|---|
| 259 | ((((KeySym)(keysym) >= XK_Shift_L) && ((KeySym)(keysym) <= XK_Hyper_R)) \ | 
|---|
| 260 | || (((KeySym)(keysym) >= XK_ISO_Lock) && \ | 
|---|
| 261 | ((KeySym)(keysym) <= XK_ISO_Level5_Lock)) \ | 
|---|
| 262 | || ((KeySym)(keysym) == XK_Mode_switch) \ | 
|---|
| 263 | || ((KeySym)(keysym) == XK_Num_Lock)) | 
|---|
| 264 | #else | 
|---|
| 265 | #define IsModifierKey(keysym) \ | 
|---|
| 266 | ((((KeySym)(keysym) >= XK_Shift_L) && ((KeySym)(keysym) <= XK_Hyper_R)) \ | 
|---|
| 267 | || ((KeySym)(keysym) == XK_Mode_switch) \ | 
|---|
| 268 | || ((KeySym)(keysym) == XK_Num_Lock)) | 
|---|
| 269 | #endif | 
|---|
| 270 | /* | 
|---|
| 271 | * opaque reference to Region data type | 
|---|
| 272 | */ | 
|---|
| 273 | typedef struct _XRegion *Region; | 
|---|
| 274 |  | 
|---|
| 275 | /* Return values from XRectInRegion() */ | 
|---|
| 276 |  | 
|---|
| 277 | #define RectangleOut 0 | 
|---|
| 278 | #define RectangleIn  1 | 
|---|
| 279 | #define RectanglePart 2 | 
|---|
| 280 |  | 
|---|
| 281 |  | 
|---|
| 282 | /* | 
|---|
| 283 | * Information used by the visual utility routines to find desired visual | 
|---|
| 284 | * type from the many visuals a display may support. | 
|---|
| 285 | */ | 
|---|
| 286 |  | 
|---|
| 287 | typedef struct { | 
|---|
| 288 | Visual *visual; | 
|---|
| 289 | VisualID visualid; | 
|---|
| 290 | int screen; | 
|---|
| 291 | int depth; | 
|---|
| 292 | #if defined(__cplusplus) || defined(c_plusplus) | 
|---|
| 293 | int c_class;					/* C++ */ | 
|---|
| 294 | #else | 
|---|
| 295 | int class; | 
|---|
| 296 | #endif | 
|---|
| 297 | unsigned long red_mask; | 
|---|
| 298 | unsigned long green_mask; | 
|---|
| 299 | unsigned long blue_mask; | 
|---|
| 300 | int colormap_size; | 
|---|
| 301 | int bits_per_rgb; | 
|---|
| 302 | } XVisualInfo; | 
|---|
| 303 |  | 
|---|
| 304 | #define VisualNoMask		0x0 | 
|---|
| 305 | #define VisualIDMask 		0x1 | 
|---|
| 306 | #define VisualScreenMask	0x2 | 
|---|
| 307 | #define VisualDepthMask		0x4 | 
|---|
| 308 | #define VisualClassMask		0x8 | 
|---|
| 309 | #define VisualRedMaskMask	0x10 | 
|---|
| 310 | #define VisualGreenMaskMask	0x20 | 
|---|
| 311 | #define VisualBlueMaskMask	0x40 | 
|---|
| 312 | #define VisualColormapSizeMask	0x80 | 
|---|
| 313 | #define VisualBitsPerRGBMask	0x100 | 
|---|
| 314 | #define VisualAllMask		0x1FF | 
|---|
| 315 |  | 
|---|
| 316 | /* | 
|---|
| 317 | * This defines a window manager property that clients may use to | 
|---|
| 318 | * share standard color maps of type RGB_COLOR_MAP: | 
|---|
| 319 | */ | 
|---|
| 320 | typedef struct { | 
|---|
| 321 | Colormap colormap; | 
|---|
| 322 | unsigned long red_max; | 
|---|
| 323 | unsigned long red_mult; | 
|---|
| 324 | unsigned long green_max; | 
|---|
| 325 | unsigned long green_mult; | 
|---|
| 326 | unsigned long blue_max; | 
|---|
| 327 | unsigned long blue_mult; | 
|---|
| 328 | unsigned long base_pixel; | 
|---|
| 329 | VisualID visualid;		/* added by ICCCM version 1 */ | 
|---|
| 330 | XID killid;			/* added by ICCCM version 1 */ | 
|---|
| 331 | } XStandardColormap; | 
|---|
| 332 |  | 
|---|
| 333 | #define ReleaseByFreeingColormap ((XID) 1L)  /* for killid field above */ | 
|---|
| 334 |  | 
|---|
| 335 |  | 
|---|
| 336 | /* | 
|---|
| 337 | * return codes for XReadBitmapFile and XWriteBitmapFile | 
|---|
| 338 | */ | 
|---|
| 339 | #define BitmapSuccess		0 | 
|---|
| 340 | #define BitmapOpenFailed 	1 | 
|---|
| 341 | #define BitmapFileInvalid 	2 | 
|---|
| 342 | #define BitmapNoMemory		3 | 
|---|
| 343 |  | 
|---|
| 344 | /**************************************************************** | 
|---|
| 345 | * | 
|---|
| 346 | * Context Management | 
|---|
| 347 | * | 
|---|
| 348 | ****************************************************************/ | 
|---|
| 349 |  | 
|---|
| 350 |  | 
|---|
| 351 | /* Associative lookup table return codes */ | 
|---|
| 352 |  | 
|---|
| 353 | #define XCSUCCESS 0	/* No error. */ | 
|---|
| 354 | #define XCNOMEM   1    /* Out of memory */ | 
|---|
| 355 | #define XCNOENT   2    /* No entry in table */ | 
|---|
| 356 |  | 
|---|
| 357 | typedef int XContext; | 
|---|
| 358 |  | 
|---|
| 359 | #define XUniqueContext()       ((XContext) XrmUniqueQuark()) | 
|---|
| 360 | #define XStringToContext(string)   ((XContext) XrmStringToQuark(string)) | 
|---|
| 361 |  | 
|---|
| 362 | _XFUNCPROTOBEGIN | 
|---|
| 363 |  | 
|---|
| 364 | /* The following declarations are alphabetized. */ | 
|---|
| 365 |  | 
|---|
| 366 | extern XClassHint *XAllocClassHint ( | 
|---|
| 367 | void | 
|---|
| 368 | ); | 
|---|
| 369 |  | 
|---|
| 370 | extern XIconSize *XAllocIconSize ( | 
|---|
| 371 | void | 
|---|
| 372 | ); | 
|---|
| 373 |  | 
|---|
| 374 | extern XSizeHints *XAllocSizeHints ( | 
|---|
| 375 | void | 
|---|
| 376 | ); | 
|---|
| 377 |  | 
|---|
| 378 | extern XStandardColormap *XAllocStandardColormap ( | 
|---|
| 379 | void | 
|---|
| 380 | ); | 
|---|
| 381 |  | 
|---|
| 382 | extern XWMHints *XAllocWMHints ( | 
|---|
| 383 | void | 
|---|
| 384 | ); | 
|---|
| 385 |  | 
|---|
| 386 | extern int XClipBox( | 
|---|
| 387 | Region		/* r */, | 
|---|
| 388 | XRectangle*		/* rect_return */ | 
|---|
| 389 | ); | 
|---|
| 390 |  | 
|---|
| 391 | extern Region XCreateRegion( | 
|---|
| 392 | void | 
|---|
| 393 | ); | 
|---|
| 394 |  | 
|---|
| 395 | extern const char *XDefaultString (void); | 
|---|
| 396 |  | 
|---|
| 397 | extern int XDeleteContext( | 
|---|
| 398 | Display*		/* display */, | 
|---|
| 399 | XID			/* rid */, | 
|---|
| 400 | XContext		/* context */ | 
|---|
| 401 | ); | 
|---|
| 402 |  | 
|---|
| 403 | extern int XDestroyRegion( | 
|---|
| 404 | Region		/* r */ | 
|---|
| 405 | ); | 
|---|
| 406 |  | 
|---|
| 407 | extern int XEmptyRegion( | 
|---|
| 408 | Region		/* r */ | 
|---|
| 409 | ); | 
|---|
| 410 |  | 
|---|
| 411 | extern int XEqualRegion( | 
|---|
| 412 | Region		/* r1 */, | 
|---|
| 413 | Region		/* r2 */ | 
|---|
| 414 | ); | 
|---|
| 415 |  | 
|---|
| 416 | extern int XFindContext( | 
|---|
| 417 | Display*		/* display */, | 
|---|
| 418 | XID			/* rid */, | 
|---|
| 419 | XContext		/* context */, | 
|---|
| 420 | XPointer*		/* data_return */ | 
|---|
| 421 | ); | 
|---|
| 422 |  | 
|---|
| 423 | extern Status XGetClassHint( | 
|---|
| 424 | Display*		/* display */, | 
|---|
| 425 | Window		/* w */, | 
|---|
| 426 | XClassHint*		/* class_hints_return */ | 
|---|
| 427 | ); | 
|---|
| 428 |  | 
|---|
| 429 | extern Status XGetIconSizes( | 
|---|
| 430 | Display*		/* display */, | 
|---|
| 431 | Window		/* w */, | 
|---|
| 432 | XIconSize**		/* size_list_return */, | 
|---|
| 433 | int*		/* count_return */ | 
|---|
| 434 | ); | 
|---|
| 435 |  | 
|---|
| 436 | extern Status XGetNormalHints( | 
|---|
| 437 | Display*		/* display */, | 
|---|
| 438 | Window		/* w */, | 
|---|
| 439 | XSizeHints*		/* hints_return */ | 
|---|
| 440 | ); | 
|---|
| 441 |  | 
|---|
| 442 | extern Status XGetRGBColormaps( | 
|---|
| 443 | Display*		/* display */, | 
|---|
| 444 | Window		/* w */, | 
|---|
| 445 | XStandardColormap** /* stdcmap_return */, | 
|---|
| 446 | int*		/* count_return */, | 
|---|
| 447 | Atom		/* property */ | 
|---|
| 448 | ); | 
|---|
| 449 |  | 
|---|
| 450 | extern Status XGetSizeHints( | 
|---|
| 451 | Display*		/* display */, | 
|---|
| 452 | Window		/* w */, | 
|---|
| 453 | XSizeHints*		/* hints_return */, | 
|---|
| 454 | Atom		/* property */ | 
|---|
| 455 | ); | 
|---|
| 456 |  | 
|---|
| 457 | extern Status XGetStandardColormap( | 
|---|
| 458 | Display*		/* display */, | 
|---|
| 459 | Window		/* w */, | 
|---|
| 460 | XStandardColormap*	/* colormap_return */, | 
|---|
| 461 | Atom		/* property */ | 
|---|
| 462 | ); | 
|---|
| 463 |  | 
|---|
| 464 | extern Status XGetTextProperty( | 
|---|
| 465 | Display*		/* display */, | 
|---|
| 466 | Window		/* window */, | 
|---|
| 467 | XTextProperty*	/* text_prop_return */, | 
|---|
| 468 | Atom		/* property */ | 
|---|
| 469 | ); | 
|---|
| 470 |  | 
|---|
| 471 | extern XVisualInfo *XGetVisualInfo( | 
|---|
| 472 | Display*		/* display */, | 
|---|
| 473 | long		/* vinfo_mask */, | 
|---|
| 474 | XVisualInfo*	/* vinfo_template */, | 
|---|
| 475 | int*		/* nitems_return */ | 
|---|
| 476 | ); | 
|---|
| 477 |  | 
|---|
| 478 | extern Status XGetWMClientMachine( | 
|---|
| 479 | Display*		/* display */, | 
|---|
| 480 | Window		/* w */, | 
|---|
| 481 | XTextProperty*	/* text_prop_return */ | 
|---|
| 482 | ); | 
|---|
| 483 |  | 
|---|
| 484 | extern XWMHints *XGetWMHints( | 
|---|
| 485 | Display*		/* display */, | 
|---|
| 486 | Window		/* w */ | 
|---|
| 487 | ); | 
|---|
| 488 |  | 
|---|
| 489 | extern Status XGetWMIconName( | 
|---|
| 490 | Display*		/* display */, | 
|---|
| 491 | Window		/* w */, | 
|---|
| 492 | XTextProperty*	/* text_prop_return */ | 
|---|
| 493 | ); | 
|---|
| 494 |  | 
|---|
| 495 | extern Status XGetWMName( | 
|---|
| 496 | Display*		/* display */, | 
|---|
| 497 | Window		/* w */, | 
|---|
| 498 | XTextProperty*	/* text_prop_return */ | 
|---|
| 499 | ); | 
|---|
| 500 |  | 
|---|
| 501 | extern Status XGetWMNormalHints( | 
|---|
| 502 | Display*		/* display */, | 
|---|
| 503 | Window		/* w */, | 
|---|
| 504 | XSizeHints*		/* hints_return */, | 
|---|
| 505 | long*		/* supplied_return */ | 
|---|
| 506 | ); | 
|---|
| 507 |  | 
|---|
| 508 | extern Status XGetWMSizeHints( | 
|---|
| 509 | Display*		/* display */, | 
|---|
| 510 | Window		/* w */, | 
|---|
| 511 | XSizeHints*		/* hints_return */, | 
|---|
| 512 | long*		/* supplied_return */, | 
|---|
| 513 | Atom		/* property */ | 
|---|
| 514 | ); | 
|---|
| 515 |  | 
|---|
| 516 | extern Status XGetZoomHints( | 
|---|
| 517 | Display*		/* display */, | 
|---|
| 518 | Window		/* w */, | 
|---|
| 519 | XSizeHints*		/* zhints_return */ | 
|---|
| 520 | ); | 
|---|
| 521 |  | 
|---|
| 522 | extern int XIntersectRegion( | 
|---|
| 523 | Region		/* sra */, | 
|---|
| 524 | Region		/* srb */, | 
|---|
| 525 | Region		/* dr_return */ | 
|---|
| 526 | ); | 
|---|
| 527 |  | 
|---|
| 528 | extern void XConvertCase( | 
|---|
| 529 | KeySym		/* sym */, | 
|---|
| 530 | KeySym*		/* lower */, | 
|---|
| 531 | KeySym*		/* upper */ | 
|---|
| 532 | ); | 
|---|
| 533 |  | 
|---|
| 534 | extern int XLookupString( | 
|---|
| 535 | XKeyEvent*		/* event_struct */, | 
|---|
| 536 | char*		/* buffer_return */, | 
|---|
| 537 | int			/* bytes_buffer */, | 
|---|
| 538 | KeySym*		/* keysym_return */, | 
|---|
| 539 | XComposeStatus*	/* status_in_out */ | 
|---|
| 540 | ); | 
|---|
| 541 |  | 
|---|
| 542 | extern Status XMatchVisualInfo( | 
|---|
| 543 | Display*		/* display */, | 
|---|
| 544 | int			/* screen */, | 
|---|
| 545 | int			/* depth */, | 
|---|
| 546 | int			/* class */, | 
|---|
| 547 | XVisualInfo*	/* vinfo_return */ | 
|---|
| 548 | ); | 
|---|
| 549 |  | 
|---|
| 550 | extern int XOffsetRegion( | 
|---|
| 551 | Region		/* r */, | 
|---|
| 552 | int			/* dx */, | 
|---|
| 553 | int			/* dy */ | 
|---|
| 554 | ); | 
|---|
| 555 |  | 
|---|
| 556 | extern Bool XPointInRegion( | 
|---|
| 557 | Region		/* r */, | 
|---|
| 558 | int			/* x */, | 
|---|
| 559 | int			/* y */ | 
|---|
| 560 | ); | 
|---|
| 561 |  | 
|---|
| 562 | extern Region XPolygonRegion( | 
|---|
| 563 | XPoint*		/* points */, | 
|---|
| 564 | int			/* n */, | 
|---|
| 565 | int			/* fill_rule */ | 
|---|
| 566 | ); | 
|---|
| 567 |  | 
|---|
| 568 | extern int XRectInRegion( | 
|---|
| 569 | Region		/* r */, | 
|---|
| 570 | int			/* x */, | 
|---|
| 571 | int			/* y */, | 
|---|
| 572 | unsigned int	/* width */, | 
|---|
| 573 | unsigned int	/* height */ | 
|---|
| 574 | ); | 
|---|
| 575 |  | 
|---|
| 576 | extern int XSaveContext( | 
|---|
| 577 | Display*		/* display */, | 
|---|
| 578 | XID			/* rid */, | 
|---|
| 579 | XContext		/* context */, | 
|---|
| 580 | _Xconst char*	/* data */ | 
|---|
| 581 | ); | 
|---|
| 582 |  | 
|---|
| 583 | extern int XSetClassHint( | 
|---|
| 584 | Display*		/* display */, | 
|---|
| 585 | Window		/* w */, | 
|---|
| 586 | XClassHint*		/* class_hints */ | 
|---|
| 587 | ); | 
|---|
| 588 |  | 
|---|
| 589 | extern int XSetIconSizes( | 
|---|
| 590 | Display*		/* display */, | 
|---|
| 591 | Window		/* w */, | 
|---|
| 592 | XIconSize*		/* size_list */, | 
|---|
| 593 | int			/* count */ | 
|---|
| 594 | ); | 
|---|
| 595 |  | 
|---|
| 596 | extern int XSetNormalHints( | 
|---|
| 597 | Display*		/* display */, | 
|---|
| 598 | Window		/* w */, | 
|---|
| 599 | XSizeHints*		/* hints */ | 
|---|
| 600 | ); | 
|---|
| 601 |  | 
|---|
| 602 | extern void XSetRGBColormaps( | 
|---|
| 603 | Display*		/* display */, | 
|---|
| 604 | Window		/* w */, | 
|---|
| 605 | XStandardColormap*	/* stdcmaps */, | 
|---|
| 606 | int			/* count */, | 
|---|
| 607 | Atom		/* property */ | 
|---|
| 608 | ); | 
|---|
| 609 |  | 
|---|
| 610 | extern int XSetSizeHints( | 
|---|
| 611 | Display*		/* display */, | 
|---|
| 612 | Window		/* w */, | 
|---|
| 613 | XSizeHints*		/* hints */, | 
|---|
| 614 | Atom		/* property */ | 
|---|
| 615 | ); | 
|---|
| 616 |  | 
|---|
| 617 | extern int XSetStandardProperties( | 
|---|
| 618 | Display*		/* display */, | 
|---|
| 619 | Window		/* w */, | 
|---|
| 620 | _Xconst char*	/* window_name */, | 
|---|
| 621 | _Xconst char*	/* icon_name */, | 
|---|
| 622 | Pixmap		/* icon_pixmap */, | 
|---|
| 623 | char**		/* argv */, | 
|---|
| 624 | int			/* argc */, | 
|---|
| 625 | XSizeHints*		/* hints */ | 
|---|
| 626 | ); | 
|---|
| 627 |  | 
|---|
| 628 | extern void XSetTextProperty( | 
|---|
| 629 | Display*		/* display */, | 
|---|
| 630 | Window		/* w */, | 
|---|
| 631 | XTextProperty*	/* text_prop */, | 
|---|
| 632 | Atom		/* property */ | 
|---|
| 633 | ); | 
|---|
| 634 |  | 
|---|
| 635 | extern void XSetWMClientMachine( | 
|---|
| 636 | Display*		/* display */, | 
|---|
| 637 | Window		/* w */, | 
|---|
| 638 | XTextProperty*	/* text_prop */ | 
|---|
| 639 | ); | 
|---|
| 640 |  | 
|---|
| 641 | extern int XSetWMHints( | 
|---|
| 642 | Display*		/* display */, | 
|---|
| 643 | Window		/* w */, | 
|---|
| 644 | XWMHints*		/* wm_hints */ | 
|---|
| 645 | ); | 
|---|
| 646 |  | 
|---|
| 647 | extern void XSetWMIconName( | 
|---|
| 648 | Display*		/* display */, | 
|---|
| 649 | Window		/* w */, | 
|---|
| 650 | XTextProperty*	/* text_prop */ | 
|---|
| 651 | ); | 
|---|
| 652 |  | 
|---|
| 653 | extern void XSetWMName( | 
|---|
| 654 | Display*		/* display */, | 
|---|
| 655 | Window		/* w */, | 
|---|
| 656 | XTextProperty*	/* text_prop */ | 
|---|
| 657 | ); | 
|---|
| 658 |  | 
|---|
| 659 | extern void XSetWMNormalHints( | 
|---|
| 660 | Display*		/* display */, | 
|---|
| 661 | Window		/* w */, | 
|---|
| 662 | XSizeHints*		/* hints */ | 
|---|
| 663 | ); | 
|---|
| 664 |  | 
|---|
| 665 | extern void XSetWMProperties( | 
|---|
| 666 | Display*		/* display */, | 
|---|
| 667 | Window		/* w */, | 
|---|
| 668 | XTextProperty*	/* window_name */, | 
|---|
| 669 | XTextProperty*	/* icon_name */, | 
|---|
| 670 | char**		/* argv */, | 
|---|
| 671 | int			/* argc */, | 
|---|
| 672 | XSizeHints*		/* normal_hints */, | 
|---|
| 673 | XWMHints*		/* wm_hints */, | 
|---|
| 674 | XClassHint*		/* class_hints */ | 
|---|
| 675 | ); | 
|---|
| 676 |  | 
|---|
| 677 | extern void XmbSetWMProperties( | 
|---|
| 678 | Display*		/* display */, | 
|---|
| 679 | Window		/* w */, | 
|---|
| 680 | _Xconst char*	/* window_name */, | 
|---|
| 681 | _Xconst char*	/* icon_name */, | 
|---|
| 682 | char**		/* argv */, | 
|---|
| 683 | int			/* argc */, | 
|---|
| 684 | XSizeHints*		/* normal_hints */, | 
|---|
| 685 | XWMHints*		/* wm_hints */, | 
|---|
| 686 | XClassHint*		/* class_hints */ | 
|---|
| 687 | ); | 
|---|
| 688 |  | 
|---|
| 689 | extern void Xutf8SetWMProperties( | 
|---|
| 690 | Display*		/* display */, | 
|---|
| 691 | Window		/* w */, | 
|---|
| 692 | _Xconst char*	/* window_name */, | 
|---|
| 693 | _Xconst char*	/* icon_name */, | 
|---|
| 694 | char**		/* argv */, | 
|---|
| 695 | int			/* argc */, | 
|---|
| 696 | XSizeHints*		/* normal_hints */, | 
|---|
| 697 | XWMHints*		/* wm_hints */, | 
|---|
| 698 | XClassHint*		/* class_hints */ | 
|---|
| 699 | ); | 
|---|
| 700 |  | 
|---|
| 701 | extern void XSetWMSizeHints( | 
|---|
| 702 | Display*		/* display */, | 
|---|
| 703 | Window		/* w */, | 
|---|
| 704 | XSizeHints*		/* hints */, | 
|---|
| 705 | Atom		/* property */ | 
|---|
| 706 | ); | 
|---|
| 707 |  | 
|---|
| 708 | extern int XSetRegion( | 
|---|
| 709 | Display*		/* display */, | 
|---|
| 710 | GC			/* gc */, | 
|---|
| 711 | Region		/* r */ | 
|---|
| 712 | ); | 
|---|
| 713 |  | 
|---|
| 714 | extern void XSetStandardColormap( | 
|---|
| 715 | Display*		/* display */, | 
|---|
| 716 | Window		/* w */, | 
|---|
| 717 | XStandardColormap*	/* colormap */, | 
|---|
| 718 | Atom		/* property */ | 
|---|
| 719 | ); | 
|---|
| 720 |  | 
|---|
| 721 | extern int XSetZoomHints( | 
|---|
| 722 | Display*		/* display */, | 
|---|
| 723 | Window		/* w */, | 
|---|
| 724 | XSizeHints*		/* zhints */ | 
|---|
| 725 | ); | 
|---|
| 726 |  | 
|---|
| 727 | extern int XShrinkRegion( | 
|---|
| 728 | Region		/* r */, | 
|---|
| 729 | int			/* dx */, | 
|---|
| 730 | int			/* dy */ | 
|---|
| 731 | ); | 
|---|
| 732 |  | 
|---|
| 733 | extern Status XStringListToTextProperty( | 
|---|
| 734 | char**		/* list */, | 
|---|
| 735 | int			/* count */, | 
|---|
| 736 | XTextProperty*	/* text_prop_return */ | 
|---|
| 737 | ); | 
|---|
| 738 |  | 
|---|
| 739 | extern int XSubtractRegion( | 
|---|
| 740 | Region		/* sra */, | 
|---|
| 741 | Region		/* srb */, | 
|---|
| 742 | Region		/* dr_return */ | 
|---|
| 743 | ); | 
|---|
| 744 |  | 
|---|
| 745 | extern int XmbTextListToTextProperty( | 
|---|
| 746 | Display*		display, | 
|---|
| 747 | char**		list, | 
|---|
| 748 | int			count, | 
|---|
| 749 | XICCEncodingStyle	style, | 
|---|
| 750 | XTextProperty*	text_prop_return | 
|---|
| 751 | ); | 
|---|
| 752 |  | 
|---|
| 753 | extern int XwcTextListToTextProperty( | 
|---|
| 754 | Display*		display, | 
|---|
| 755 | wchar_t**		list, | 
|---|
| 756 | int			count, | 
|---|
| 757 | XICCEncodingStyle	style, | 
|---|
| 758 | XTextProperty*	text_prop_return | 
|---|
| 759 | ); | 
|---|
| 760 |  | 
|---|
| 761 | extern int Xutf8TextListToTextProperty( | 
|---|
| 762 | Display*		display, | 
|---|
| 763 | char**		list, | 
|---|
| 764 | int			count, | 
|---|
| 765 | XICCEncodingStyle	style, | 
|---|
| 766 | XTextProperty*	text_prop_return | 
|---|
| 767 | ); | 
|---|
| 768 |  | 
|---|
| 769 | extern void XwcFreeStringList( | 
|---|
| 770 | wchar_t**		list | 
|---|
| 771 | ); | 
|---|
| 772 |  | 
|---|
| 773 | extern Status XTextPropertyToStringList( | 
|---|
| 774 | XTextProperty*	/* text_prop */, | 
|---|
| 775 | char***		/* list_return */, | 
|---|
| 776 | int*		/* count_return */ | 
|---|
| 777 | ); | 
|---|
| 778 |  | 
|---|
| 779 | extern int XmbTextPropertyToTextList( | 
|---|
| 780 | Display*		display, | 
|---|
| 781 | const XTextProperty* text_prop, | 
|---|
| 782 | char***		list_return, | 
|---|
| 783 | int*		count_return | 
|---|
| 784 | ); | 
|---|
| 785 |  | 
|---|
| 786 | extern int XwcTextPropertyToTextList( | 
|---|
| 787 | Display*		display, | 
|---|
| 788 | const XTextProperty* text_prop, | 
|---|
| 789 | wchar_t***		list_return, | 
|---|
| 790 | int*		count_return | 
|---|
| 791 | ); | 
|---|
| 792 |  | 
|---|
| 793 | extern int Xutf8TextPropertyToTextList( | 
|---|
| 794 | Display*		display, | 
|---|
| 795 | const XTextProperty* text_prop, | 
|---|
| 796 | char***		list_return, | 
|---|
| 797 | int*		count_return | 
|---|
| 798 | ); | 
|---|
| 799 |  | 
|---|
| 800 | extern int XUnionRectWithRegion( | 
|---|
| 801 | XRectangle*		/* rectangle */, | 
|---|
| 802 | Region		/* src_region */, | 
|---|
| 803 | Region		/* dest_region_return */ | 
|---|
| 804 | ); | 
|---|
| 805 |  | 
|---|
| 806 | extern int XUnionRegion( | 
|---|
| 807 | Region		/* sra */, | 
|---|
| 808 | Region		/* srb */, | 
|---|
| 809 | Region		/* dr_return */ | 
|---|
| 810 | ); | 
|---|
| 811 |  | 
|---|
| 812 | extern int XWMGeometry( | 
|---|
| 813 | Display*		/* display */, | 
|---|
| 814 | int			/* screen_number */, | 
|---|
| 815 | _Xconst char*	/* user_geometry */, | 
|---|
| 816 | _Xconst char*	/* default_geometry */, | 
|---|
| 817 | unsigned int	/* border_width */, | 
|---|
| 818 | XSizeHints*		/* hints */, | 
|---|
| 819 | int*		/* x_return */, | 
|---|
| 820 | int*		/* y_return */, | 
|---|
| 821 | int*		/* width_return */, | 
|---|
| 822 | int*		/* height_return */, | 
|---|
| 823 | int*		/* gravity_return */ | 
|---|
| 824 | ); | 
|---|
| 825 |  | 
|---|
| 826 | extern int XXorRegion( | 
|---|
| 827 | Region		/* sra */, | 
|---|
| 828 | Region		/* srb */, | 
|---|
| 829 | Region		/* dr_return */ | 
|---|
| 830 | ); | 
|---|
| 831 |  | 
|---|
| 832 | #ifdef __clang__ | 
|---|
| 833 | #pragma clang diagnostic pop | 
|---|
| 834 | #endif | 
|---|
| 835 |  | 
|---|
| 836 | _XFUNCPROTOEND | 
|---|
| 837 |  | 
|---|
| 838 | #endif /* _X11_XUTIL_H_ */ | 
|---|
| 839 |  | 
|---|