xutil.pp 20 KB

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