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