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