xutil.pp 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396
  1. unit xutil;
  2. interface
  3. uses
  4. x,xlib,keysym;
  5. {$define MACROS}
  6. {$ifndef os2}
  7. {$LinkLib c}
  8. {$LinkLib X11}
  9. const
  10. libX11='X11';
  11. {$else}
  12. const
  13. libX11='X11';
  14. {$endif}
  15. {
  16. Automatically converted by H2Pas 0.99.15 from xutil.h
  17. The following command line parameters were used:
  18. -p
  19. -T
  20. -S
  21. -d
  22. -c
  23. xutil.h
  24. }
  25. {$PACKRECORDS C}
  26. const
  27. NoValue = $0000;
  28. XValue = $0001;
  29. YValue = $0002;
  30. WidthValue = $0004;
  31. HeightValue = $0008;
  32. AllValues = $000F;
  33. XNegative = $0010;
  34. YNegative = $0020;
  35. type
  36. PXSizeHints = ^TXSizeHints;
  37. TXSizeHints = record
  38. flags : longint;
  39. x : longint;
  40. y : longint;
  41. width : longint;
  42. height : longint;
  43. min_width : longint;
  44. min_height : longint;
  45. max_width : longint;
  46. max_height : longint;
  47. width_inc : longint;
  48. height_inc : longint;
  49. min_aspect : record
  50. x : longint;
  51. y : longint;
  52. end;
  53. max_aspect : record
  54. x : longint;
  55. y : longint;
  56. end;
  57. base_width : longint;
  58. base_height : longint;
  59. win_gravity : longint;
  60. end;
  61. const
  62. USPosition = 1 shl 0;
  63. USSize = 1 shl 1;
  64. PPosition = 1 shl 2;
  65. PSize = 1 shl 3;
  66. PMinSize = 1 shl 4;
  67. PMaxSize = 1 shl 5;
  68. PResizeInc = 1 shl 6;
  69. PAspect = 1 shl 7;
  70. PBaseSize = 1 shl 8;
  71. PWinGravity = 1 shl 9;
  72. PAllHints = ((((PPosition or PSize) or PMinSize) or PMaxSize) or PResizeInc) or PAspect;
  73. type
  74. PXWMHints = ^TXWMHints;
  75. TXWMHints = record
  76. flags : longint;
  77. input : TBool;
  78. initial_state : longint;
  79. icon_pixmap : TPixmap;
  80. icon_window : TWindow;
  81. icon_x : longint;
  82. icon_y : longint;
  83. icon_mask : TPixmap;
  84. window_group : TXID;
  85. end;
  86. const
  87. InputHint = 1 shl 0;
  88. StateHint = 1 shl 1;
  89. IconPixmapHint = 1 shl 2;
  90. IconWindowHint = 1 shl 3;
  91. IconPositionHint = 1 shl 4;
  92. IconMaskHint = 1 shl 5;
  93. WindowGroupHint = 1 shl 6;
  94. AllHints = (((((InputHint or StateHint) or IconPixmapHint) or IconWindowHint) or IconPositionHint) or IconMaskHint) or WindowGroupHint;
  95. XUrgencyHint = 1 shl 8;
  96. WithdrawnState = 0;
  97. NormalState = 1;
  98. IconicState = 3;
  99. DontCareState = 0;
  100. ZoomState = 2;
  101. InactiveState = 4;
  102. type
  103. PXTextProperty = ^TXTextProperty;
  104. TXTextProperty = record
  105. value : Pbyte;
  106. encoding : TAtom;
  107. format : longint;
  108. nitems : dword;
  109. end;
  110. const
  111. XNoMemory = -(1);
  112. XLocaleNotSupported = -(2);
  113. XConverterNotFound = -(3);
  114. type
  115. PXICCEncodingStyle = ^TXICCEncodingStyle;
  116. TXICCEncodingStyle = (XStringStyle,XCompoundTextStyle,XTextStyle,
  117. XStdICCTextStyle);
  118. PPXIconSize = ^PXIconSize;
  119. PXIconSize = ^TXIconSize;
  120. TXIconSize = record
  121. min_width : longint;
  122. min_height : longint;
  123. max_width : longint;
  124. max_height : longint;
  125. width_inc : longint;
  126. height_inc : longint;
  127. end;
  128. PXClassHint = ^TXClassHint;
  129. TXClassHint = record
  130. res_name : Pchar;
  131. res_class : Pchar;
  132. end;
  133. type
  134. PXComposeStatus = ^TXComposeStatus;
  135. TXComposeStatus = record
  136. compose_ptr : TXPointer;
  137. chars_matched : longint;
  138. end;
  139. type
  140. PXRegion = ^TXRegion;
  141. TXRegion = record
  142. end;
  143. TRegion = PXRegion;
  144. PRegion = ^TRegion;
  145. const
  146. RectangleOut = 0;
  147. RectangleIn = 1;
  148. RectanglePart = 2;
  149. type
  150. PXVisualInfo = ^TXVisualInfo;
  151. TXVisualInfo = record
  152. visual : PVisual;
  153. visualid : TVisualID;
  154. screen : longint;
  155. depth : longint;
  156. _class : longint;
  157. red_mask : dword;
  158. green_mask : dword;
  159. blue_mask : dword;
  160. colormap_size : longint;
  161. bits_per_rgb : longint;
  162. end;
  163. const
  164. VisualNoMask = $0;
  165. VisualIDMask = $1;
  166. VisualScreenMask = $2;
  167. VisualDepthMask = $4;
  168. VisualClassMask = $8;
  169. VisualRedMaskMask = $10;
  170. VisualGreenMaskMask = $20;
  171. VisualBlueMaskMask = $40;
  172. VisualColormapSizeMask = $80;
  173. VisualBitsPerRGBMask = $100;
  174. VisualAllMask = $1FF;
  175. type
  176. PPXStandardColormap = ^PXStandardColormap;
  177. PXStandardColormap = ^TXStandardColormap;
  178. TXStandardColormap = record
  179. colormap : TColormap;
  180. red_max : dword;
  181. red_mult : dword;
  182. green_max : dword;
  183. green_mult : dword;
  184. blue_max : dword;
  185. blue_mult : dword;
  186. base_pixel : dword;
  187. visualid : TVisualID;
  188. killid : TXID;
  189. end;
  190. const
  191. BitmapSuccess = 0;
  192. BitmapOpenFailed = 1;
  193. BitmapFileInvalid = 2;
  194. BitmapNoMemory = 3;
  195. XCSUCCESS = 0;
  196. XCNOMEM = 1;
  197. XCNOENT = 2;
  198. ReleaseByFreeingColormap : TXID = TXID(1);
  199. type
  200. PXContext = ^TXContext;
  201. TXContext = longint;
  202. function XAllocClassHint:PXClassHint;cdecl;external libX11;
  203. function XAllocIconSize:PXIconSize;cdecl;external libX11;
  204. function XAllocSizeHints:PXSizeHints;cdecl;external libX11;
  205. function XAllocStandardColormap:PXStandardColormap;cdecl;external libX11;
  206. function XAllocWMHints:PXWMHints;cdecl;external libX11;
  207. function XClipBox(para1:TRegion; para2:PXRectangle):longint;cdecl;external libX11;
  208. function XCreateRegion:TRegion;cdecl;external libX11;
  209. function XDefaultString:Pchar;cdecl;external libX11;
  210. function XDeleteContext(para1:PDisplay; para2:TXID; para3:TXContext):longint;cdecl;external libX11;
  211. function XDestroyRegion(para1:TRegion):longint;cdecl;external libX11;
  212. function XEmptyRegion(para1:TRegion):longint;cdecl;external libX11;
  213. function XEqualRegion(para1:TRegion; para2:TRegion):longint;cdecl;external libX11;
  214. function XFindContext(para1:PDisplay; para2:TXID; para3:TXContext; para4:PXPointer):longint;cdecl;external libX11;
  215. function XGetClassHint(para1:PDisplay; para2:TWindow; para3:PXClassHint):TStatus;cdecl;external libX11;
  216. function XGetIconSizes(para1:PDisplay; para2:TWindow; para3:PPXIconSize; para4:Plongint):TStatus;cdecl;external libX11;
  217. function XGetNormalHints(para1:PDisplay; para2:TWindow; para3:PXSizeHints):TStatus;cdecl;external libX11;
  218. function XGetRGBColormaps(para1:PDisplay; para2:TWindow; para3:PPXStandardColormap; para4:Plongint; para5:TAtom):TStatus;cdecl;external libX11;
  219. function XGetSizeHints(para1:PDisplay; para2:TWindow; para3:PXSizeHints; para4:TAtom):TStatus;cdecl;external libX11;
  220. function XGetStandardColormap(para1:PDisplay; para2:TWindow; para3:PXStandardColormap; para4:TAtom):TStatus;cdecl;external libX11;
  221. function XGetTextProperty(para1:PDisplay; para2:TWindow; para3:PXTextProperty; para4:TAtom):TStatus;cdecl;external libX11;
  222. function XGetVisualInfo(para1:PDisplay; para2:longint; para3:PXVisualInfo; para4:Plongint):PXVisualInfo;cdecl;external libX11;
  223. function XGetWMClientMachine(para1:PDisplay; para2:TWindow; para3:PXTextProperty):TStatus;cdecl;external libX11;
  224. function XGetWMHints(para1:PDisplay; para2:TWindow):PXWMHints;cdecl;external libX11;
  225. function XGetWMIconName(para1:PDisplay; para2:TWindow; para3:PXTextProperty):TStatus;cdecl;external libX11;
  226. function XGetWMName(para1:PDisplay; para2:TWindow; para3:PXTextProperty):TStatus;cdecl;external libX11;
  227. function XGetWMNormalHints(para1:PDisplay; para2:TWindow; para3:PXSizeHints; para4:Plongint):TStatus;cdecl;external libX11;
  228. function XGetWMSizeHints(para1:PDisplay; para2:TWindow; para3:PXSizeHints; para4:Plongint; para5:TAtom):TStatus;cdecl;external libX11;
  229. function XGetZoomHints(para1:PDisplay; para2:TWindow; para3:PXSizeHints):TStatus;cdecl;external libX11;
  230. function XIntersectRegion(para1:TRegion; para2:TRegion; para3:TRegion):longint;cdecl;external libX11;
  231. procedure XConvertCase(para1:TKeySym; para2:PKeySym; para3:PKeySym);cdecl;external libX11;
  232. function XLookupString(para1:PXKeyEvent; para2:Pchar; para3:longint; para4:PKeySym; para5:PXComposeStatus):longint;cdecl;external libX11;
  233. function XMatchVisualInfo(para1:PDisplay; para2:longint; para3:longint; para4:longint; para5:PXVisualInfo):TStatus;cdecl;external libX11;
  234. function XOffsetRegion(para1:TRegion; para2:longint; para3:longint):longint;cdecl;external libX11;
  235. function XPointInRegion(para1:TRegion; para2:longint; para3:longint):TBool;cdecl;external libX11;
  236. function XPolygonRegion(para1:PXPoint; para2:longint; para3:longint):TRegion;cdecl;external libX11;
  237. function XRectInRegion(para1:TRegion; para2:longint; para3:longint; para4:dword; para5:dword):longint;cdecl;external libX11;
  238. function XSaveContext(para1:PDisplay; para2:TXID; para3:TXContext; para4:Pchar):longint;cdecl;external libX11;
  239. function XSetClassHint(para1:PDisplay; para2:TWindow; para3:PXClassHint):longint;cdecl;external libX11;
  240. function XSetIconSizes(para1:PDisplay; para2:TWindow; para3:PXIconSize; para4:longint):longint;cdecl;external libX11;
  241. function XSetNormalHints(para1:PDisplay; para2:TWindow; para3:PXSizeHints):longint;cdecl;external libX11;
  242. procedure XSetRGBColormaps(para1:PDisplay; para2:TWindow; para3:PXStandardColormap; para4:longint; para5:TAtom);cdecl;external libX11;
  243. function XSetSizeHints(para1:PDisplay; para2:TWindow; para3:PXSizeHints; para4:TAtom):longint;cdecl;external libX11;
  244. function XSetStandardProperties(para1:PDisplay; para2:TWindow; para3:Pchar; para4:Pchar; para5:TPixmap;
  245. para6:PPchar; para7:longint; para8:PXSizeHints):longint;cdecl;external libX11;
  246. procedure XSetTextProperty(para1:PDisplay; para2:TWindow; para3:PXTextProperty; para4:TAtom);cdecl;external libX11;
  247. procedure XSetWMClientMachine(para1:PDisplay; para2:TWindow; para3:PXTextProperty);cdecl;external libX11;
  248. function XSetWMHints(para1:PDisplay; para2:TWindow; para3:PXWMHints):longint;cdecl;external libX11;
  249. procedure XSetWMIconName(para1:PDisplay; para2:TWindow; para3:PXTextProperty);cdecl;external libX11;
  250. procedure XSetWMName(para1:PDisplay; para2:TWindow; para3:PXTextProperty);cdecl;external libX11;
  251. procedure XSetWMNormalHints(para1:PDisplay; para2:TWindow; para3:PXSizeHints);cdecl;external libX11;
  252. procedure XSetWMProperties(para1:PDisplay; para2:TWindow; para3:PXTextProperty; para4:PXTextProperty; para5:PPchar;
  253. para6:longint; para7:PXSizeHints; para8:PXWMHints; para9:PXClassHint);cdecl;external libX11;
  254. procedure XmbSetWMProperties(para1:PDisplay; para2:TWindow; para3:Pchar; para4:Pchar; para5:PPchar;
  255. para6:longint; para7:PXSizeHints; para8:PXWMHints; para9:PXClassHint);cdecl;external libX11;
  256. procedure XSetWMSizeHints(para1:PDisplay; para2:TWindow; para3:PXSizeHints; para4:TAtom);cdecl;external libX11;
  257. function XSetRegion(para1:PDisplay; para2:TGC; para3:TRegion):longint;cdecl;external libX11;
  258. procedure XSetStandardColormap(para1:PDisplay; para2:TWindow; para3:PXStandardColormap; para4:TAtom);cdecl;external libX11;
  259. function XSetZoomHints(para1:PDisplay; para2:TWindow; para3:PXSizeHints):longint;cdecl;external libX11;
  260. function XShrinkRegion(para1:TRegion; para2:longint; para3:longint):longint;cdecl;external libX11;
  261. function XStringListToTextProperty(para1:PPchar; para2:longint; para3:PXTextProperty):TStatus;cdecl;external libX11;
  262. function XSubtractRegion(para1:TRegion; para2:TRegion; para3:TRegion):longint;cdecl;external libX11;
  263. function XmbTextListToTextProperty(para1:PDisplay; para2:PPchar; para3:longint; para4:TXICCEncodingStyle; para5:PXTextProperty):longint;cdecl;external libX11;
  264. function XwcTextListToTextProperty(para1:PDisplay; para2:PPWideChar; para3:longint; para4:TXICCEncodingStyle; para5:PXTextProperty):longint;cdecl;external libX11;
  265. procedure XwcFreeStringList(para1:PPWideChar);cdecl;external libX11;
  266. function XTextPropertyToStringList(para1:PXTextProperty; para2:PPPchar; para3:Plongint):TStatus;cdecl;external libX11;
  267. function XmbTextPropertyToTextList(para1:PDisplay; para2:PXTextProperty; para3:PPPchar; para4:Plongint):longint;cdecl;external libX11;
  268. function XwcTextPropertyToTextList(para1:PDisplay; para2:PXTextProperty; para3:PPPWideChar; para4:Plongint):longint;cdecl;external libX11;
  269. function XUnionRectWithRegion(para1:PXRectangle; para2:TRegion; para3:TRegion):longint;cdecl;external libX11;
  270. function XUnionRegion(para1:TRegion; para2:TRegion; para3:TRegion):longint;cdecl;external libX11;
  271. function XWMGeometry(para1:PDisplay; para2:longint; para3:Pchar; para4:Pchar; para5:dword;
  272. para6:PXSizeHints; para7:Plongint; para8:Plongint; para9:Plongint; para10:Plongint;
  273. para11:Plongint):longint;cdecl;external libX11;
  274. function XXorRegion(para1:TRegion; para2:TRegion; para3:TRegion):longint;cdecl;external libX11;
  275. {$ifdef MACROS}
  276. function XDestroyImage(ximage : PXImage) : longint;
  277. function XGetPixel(ximage : PXImage; x, y : longint) : dword;
  278. function XPutPixel(ximage : PXImage; x, y : longint; pixel : dword) : longint;
  279. function XSubImage(ximage : PXImage; x, y : longint; width, height : dword) : PXImage;
  280. function XAddPixel(ximage : PXImage; value : longint) : longint;
  281. function IsKeypadKey(keysym : TKeySym) : Boolean;
  282. function IsPrivateKeypadKey(keysym : TKeySym) : Boolean;
  283. function IsCursorKey(keysym : TKeySym) : Boolean;
  284. function IsPFKey(keysym : TKeySym) : Boolean;
  285. function IsFunctionKey(keysym : TKeySym) : Boolean;
  286. function IsMiscFunctionKey(keysym : TKeySym) : Boolean;
  287. function IsModifierKey(keysym : TKeySym) : Boolean;
  288. {function XUniqueContext : TXContext;
  289. function XStringToContext(_string : Pchar) : TXContext;}
  290. {$endif MACROS}
  291. implementation
  292. {$ifdef MACROS}
  293. function XDestroyImage(ximage : PXImage) : longint;
  294. begin
  295. XDestroyImage := ximage^.f.destroy_image(ximage);
  296. end;
  297. function XGetPixel(ximage : PXImage; x, y : longint) : dword;
  298. begin
  299. XGetPixel:=ximage^.f.get_pixel(ximage, x, y);
  300. end;
  301. function XPutPixel(ximage : PXImage; x, y : longint; pixel : dword) : longint;
  302. begin
  303. XPutPixel:=ximage^.f.put_pixel(ximage, x, y, pixel);
  304. end;
  305. function XSubImage(ximage : PXImage; x, y : longint; width, height : dword) : PXImage;
  306. begin
  307. XSubImage:=ximage^.f.sub_image(ximage, x, y, width, height);
  308. end;
  309. function XAddPixel(ximage : PXImage; value : longint) : longint;
  310. begin
  311. XAddPixel:=ximage^.f.add_pixel(ximage, value);
  312. end;
  313. function IsKeypadKey(keysym : TKeySym) : Boolean;
  314. begin
  315. IsKeypadKey:=(keysym >= XK_KP_Space) and (keysym <= XK_KP_Equal);
  316. end;
  317. function IsPrivateKeypadKey(keysym : TKeySym) : Boolean;
  318. begin
  319. IsPrivateKeypadKey:=(keysym >= $11000000) and (keysym <= $1100FFFF);
  320. end;
  321. function IsCursorKey(keysym : TKeySym) : Boolean;
  322. begin
  323. IsCursorKey:=(keysym >= XK_Home) and (keysym < XK_Select);
  324. end;
  325. function IsPFKey(keysym : TKeySym) : Boolean;
  326. begin
  327. IsPFKey:=(keysym >= XK_KP_F1) and (keysym <= XK_KP_F4);
  328. end;
  329. function IsFunctionKey(keysym : TKeySym) : Boolean;
  330. begin
  331. IsFunctionKey:=(keysym >= XK_F1) and (keysym <= XK_F35);
  332. end;
  333. function IsMiscFunctionKey(keysym : TKeySym) : Boolean;
  334. begin
  335. IsMiscFunctionKey:=(keysym >= XK_Select) and (keysym <= XK_Break);
  336. end;
  337. function IsModifierKey(keysym : TKeySym) : Boolean;
  338. begin
  339. IsModifierKey := ((keysym >= XK_Shift_L) And (keysym <= XK_Hyper_R)) Or
  340. (keysym = XK_Mode_switch) Or (keysym = XK_Num_Lock);
  341. end;
  342. {...needs xresource
  343. function XUniqueContext : TXContext;
  344. begin
  345. XUniqueContext:=TXContext(XrmUniqueQuark);
  346. end;
  347. function XStringToContext(_string : Pchar) : TXContext;
  348. begin
  349. XStringToContext:=TXContext(XrmStringToQuark(_string));
  350. end;}
  351. {$endif MACROS}
  352. end.