xutil.pp 14 KB

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