xutil.pp 19 KB

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