Jelajahi Sumber

* Nikolay Nikolov: uses the ctypes unit now

florian 20 tahun lalu
induk
melakukan
ef864ade38
1 mengubah file dengan 102 tambahan dan 112 penghapusan
  1. 102 112
      packages/extra/x11/xutil.pp

+ 102 - 112
packages/extra/x11/xutil.pp

@@ -1,7 +1,7 @@
 unit xutil;
 interface
 uses
-  x,xlib,keysym;
+  ctypes,x,xlib,keysym;
 
 {$define MACROS}
 
@@ -41,28 +41,18 @@ type
 
    PXSizeHints = ^TXSizeHints;
    TXSizeHints = record
-        flags : longint;
-        x : longint;
-        y : longint;
-        width : longint;
-        height : longint;
-        min_width : longint;
-        min_height : longint;
-        max_width : longint;
-        max_height : longint;
-        width_inc : longint;
-        height_inc : longint;
-        min_aspect : record
-             x : longint;
-             y : longint;
+        flags : clong;
+        x, y : cint;
+        width, height : cint;
+        min_width, min_height : cint;
+        max_width, max_height : cint;
+        width_inc, height_inc : cint;
+        min_aspect, max_aspect : record
+             x : cint;
+             y : cint;
           end;
-        max_aspect : record
-             x : longint;
-             y : longint;
-          end;
-        base_width : longint;
-        base_height : longint;
-        win_gravity : longint;
+        base_width, base_height : cint;
+        win_gravity : cint;
      end;
 
 const
@@ -76,18 +66,17 @@ const
    PAspect = 1 shl 7;
    PBaseSize = 1 shl 8;
    PWinGravity = 1 shl 9;
-   PAllHints = ((((PPosition or PSize) or PMinSize) or PMaxSize) or PResizeInc) or PAspect;
+   PAllHints = PPosition or PSize or PMinSize or PMaxSize or PResizeInc or PAspect;
 type
 
    PXWMHints = ^TXWMHints;
    TXWMHints = record
-        flags : longint;
+        flags : clong;
         input : TBool;
-        initial_state : longint;
+        initial_state : cint;
         icon_pixmap : TPixmap;
         icon_window : TWindow;
-        icon_x : longint;
-        icon_y : longint;
+        icon_x, icon_y : cint;
         icon_mask : TPixmap;
         window_group : TXID;
      end;
@@ -100,7 +89,7 @@ const
    IconPositionHint = 1 shl 4;
    IconMaskHint = 1 shl 5;
    WindowGroupHint = 1 shl 6;
-   AllHints = (((((InputHint or StateHint) or IconPixmapHint) or IconWindowHint) or IconPositionHint) or IconMaskHint) or WindowGroupHint;
+   AllHints = InputHint or StateHint or IconPixmapHint or IconWindowHint or IconPositionHint or IconMaskHint or WindowGroupHint;
    XUrgencyHint = 1 shl 8;
    WithdrawnState = 0;
    NormalState = 1;
@@ -112,31 +101,28 @@ type
 
    PXTextProperty = ^TXTextProperty;
    TXTextProperty = record
-        value : Pbyte;
+        value : pcuchar;
         encoding : TAtom;
-        format : longint;
-        nitems : dword;
+        format : cint;
+        nitems : culong;
      end;
 
 const
-   XNoMemory = -(1);
-   XLocaleNotSupported = -(2);
-   XConverterNotFound = -(3);
+   XNoMemory = -1;
+   XLocaleNotSupported = -2;
+   XConverterNotFound = -3;
 type
 
    PXICCEncodingStyle = ^TXICCEncodingStyle;
    TXICCEncodingStyle = (XStringStyle,XCompoundTextStyle,XTextStyle,
-     XStdICCTextStyle);
+     XStdICCTextStyle,XUTF8StringStyle);
 
    PPXIconSize = ^PXIconSize;
    PXIconSize = ^TXIconSize;
    TXIconSize = record
-        min_width : longint;
-        min_height : longint;
-        max_width : longint;
-        max_height : longint;
-        width_inc : longint;
-        height_inc : longint;
+        min_width, min_height : cint;
+        max_width, max_height : cint;
+        width_inc, height_inc : cint;
      end;
 
    PXClassHint = ^TXClassHint;
@@ -150,7 +136,7 @@ type
    PXComposeStatus = ^TXComposeStatus;
    TXComposeStatus = record
         compose_ptr : TXPointer;
-        chars_matched : longint;
+        chars_matched : cint;
      end;
 
 type
@@ -171,14 +157,14 @@ type
    TXVisualInfo = record
         visual : PVisual;
         visualid : TVisualID;
-        screen : longint;
-        depth : longint;
-        _class : longint;
-        red_mask : dword;
-        green_mask : dword;
-        blue_mask : dword;
-        colormap_size : longint;
-        bits_per_rgb : longint;
+        screen : cint;
+        depth : cint;
+        _class : cint;
+        red_mask : culong;
+        green_mask : culong;
+        blue_mask : culong;
+        colormap_size : cint;
+        bits_per_rgb : cint;
      end;
 
 const
@@ -199,13 +185,13 @@ type
    PXStandardColormap = ^TXStandardColormap;
    TXStandardColormap = record
         colormap : TColormap;
-        red_max : dword;
-        red_mult : dword;
-        green_max : dword;
-        green_mult : dword;
-        blue_max : dword;
-        blue_mult : dword;
-        base_pixel : dword;
+        red_max : culong;
+        red_mult : culong;
+        green_max : culong;
+        green_mult : culong;
+        blue_max : culong;
+        blue_mult : culong;
+        base_pixel : culong;
         visualid : TVisualID;
         killid : TXID;
      end;
@@ -222,88 +208,92 @@ const
 
 type
    PXContext = ^TXContext;
-   TXContext = longint;
+   TXContext = cint;
 
 function XAllocClassHint:PXClassHint;cdecl;external libX11;
 function XAllocIconSize:PXIconSize;cdecl;external libX11;
 function XAllocSizeHints:PXSizeHints;cdecl;external libX11;
 function XAllocStandardColormap:PXStandardColormap;cdecl;external libX11;
 function XAllocWMHints:PXWMHints;cdecl;external libX11;
-function XClipBox(para1:TRegion; para2:PXRectangle):longint;cdecl;external libX11;
+function XClipBox(para1:TRegion; para2:PXRectangle):cint;cdecl;external libX11;
 function XCreateRegion:TRegion;cdecl;external libX11;
 function XDefaultString:Pchar;cdecl;external libX11;
-function XDeleteContext(para1:PDisplay; para2:TXID; para3:TXContext):longint;cdecl;external libX11;
-function XDestroyRegion(para1:TRegion):longint;cdecl;external libX11;
-function XEmptyRegion(para1:TRegion):longint;cdecl;external libX11;
-function XEqualRegion(para1:TRegion; para2:TRegion):longint;cdecl;external libX11;
-function XFindContext(para1:PDisplay; para2:TXID; para3:TXContext; para4:PXPointer):longint;cdecl;external libX11;
+function XDeleteContext(para1:PDisplay; para2:TXID; para3:TXContext):cint;cdecl;external libX11;
+function XDestroyRegion(para1:TRegion):cint;cdecl;external libX11;
+function XEmptyRegion(para1:TRegion):cint;cdecl;external libX11;
+function XEqualRegion(para1:TRegion; para2:TRegion):cint;cdecl;external libX11;
+function XFindContext(para1:PDisplay; para2:TXID; para3:TXContext; para4:PXPointer):cint;cdecl;external libX11;
 function XGetClassHint(para1:PDisplay; para2:TWindow; para3:PXClassHint):TStatus;cdecl;external libX11;
-function XGetIconSizes(para1:PDisplay; para2:TWindow; para3:PPXIconSize; para4:Plongint):TStatus;cdecl;external libX11;
+function XGetIconSizes(para1:PDisplay; para2:TWindow; para3:PPXIconSize; para4:Pcint):TStatus;cdecl;external libX11;
 function XGetNormalHints(para1:PDisplay; para2:TWindow; para3:PXSizeHints):TStatus;cdecl;external libX11;
-function XGetRGBColormaps(para1:PDisplay; para2:TWindow; para3:PPXStandardColormap; para4:Plongint; para5:TAtom):TStatus;cdecl;external libX11;
+function XGetRGBColormaps(para1:PDisplay; para2:TWindow; para3:PPXStandardColormap; para4:Pcint; para5:TAtom):TStatus;cdecl;external libX11;
 function XGetSizeHints(para1:PDisplay; para2:TWindow; para3:PXSizeHints; para4:TAtom):TStatus;cdecl;external libX11;
 function XGetStandardColormap(para1:PDisplay; para2:TWindow; para3:PXStandardColormap; para4:TAtom):TStatus;cdecl;external libX11;
 function XGetTextProperty(para1:PDisplay; para2:TWindow; para3:PXTextProperty; para4:TAtom):TStatus;cdecl;external libX11;
-function XGetVisualInfo(para1:PDisplay; para2:longint; para3:PXVisualInfo; para4:Plongint):PXVisualInfo;cdecl;external libX11;
+function XGetVisualInfo(para1:PDisplay; para2:clong; para3:PXVisualInfo; para4:Pcint):PXVisualInfo;cdecl;external libX11;
 function XGetWMClientMachine(para1:PDisplay; para2:TWindow; para3:PXTextProperty):TStatus;cdecl;external libX11;
 function XGetWMHints(para1:PDisplay; para2:TWindow):PXWMHints;cdecl;external libX11;
 function XGetWMIconName(para1:PDisplay; para2:TWindow; para3:PXTextProperty):TStatus;cdecl;external libX11;
 function XGetWMName(para1:PDisplay; para2:TWindow; para3:PXTextProperty):TStatus;cdecl;external libX11;
-function XGetWMNormalHints(para1:PDisplay; para2:TWindow; para3:PXSizeHints; para4:Plongint):TStatus;cdecl;external libX11;
-function XGetWMSizeHints(para1:PDisplay; para2:TWindow; para3:PXSizeHints; para4:Plongint; para5:TAtom):TStatus;cdecl;external libX11;
+function XGetWMNormalHints(para1:PDisplay; para2:TWindow; para3:PXSizeHints; para4:Pclong):TStatus;cdecl;external libX11;
+function XGetWMSizeHints(para1:PDisplay; para2:TWindow; para3:PXSizeHints; para4:Pclong; para5:TAtom):TStatus;cdecl;external libX11;
 function XGetZoomHints(para1:PDisplay; para2:TWindow; para3:PXSizeHints):TStatus;cdecl;external libX11;
-function XIntersectRegion(para1:TRegion; para2:TRegion; para3:TRegion):longint;cdecl;external libX11;
+function XIntersectRegion(para1:TRegion; para2:TRegion; para3:TRegion):cint;cdecl;external libX11;
 procedure XConvertCase(para1:TKeySym; para2:PKeySym; para3:PKeySym);cdecl;external libX11;
-function XLookupString(para1:PXKeyEvent; para2:Pchar; para3:longint; para4:PKeySym; para5:PXComposeStatus):longint;cdecl;external libX11;
-function XMatchVisualInfo(para1:PDisplay; para2:longint; para3:longint; para4:longint; para5:PXVisualInfo):TStatus;cdecl;external libX11;
-function XOffsetRegion(para1:TRegion; para2:longint; para3:longint):longint;cdecl;external libX11;
-function XPointInRegion(para1:TRegion; para2:longint; para3:longint):TBool;cdecl;external libX11;
-function XPolygonRegion(para1:PXPoint; para2:longint; para3:longint):TRegion;cdecl;external libX11;
-function XRectInRegion(para1:TRegion; para2:longint; para3:longint; para4:dword; para5:dword):longint;cdecl;external libX11;
-function XSaveContext(para1:PDisplay; para2:TXID; para3:TXContext; para4:Pchar):longint;cdecl;external libX11;
-function XSetClassHint(para1:PDisplay; para2:TWindow; para3:PXClassHint):longint;cdecl;external libX11;
-function XSetIconSizes(para1:PDisplay; para2:TWindow; para3:PXIconSize; para4:longint):longint;cdecl;external libX11;
-function XSetNormalHints(para1:PDisplay; para2:TWindow; para3:PXSizeHints):longint;cdecl;external libX11;
-procedure XSetRGBColormaps(para1:PDisplay; para2:TWindow; para3:PXStandardColormap; para4:longint; para5:TAtom);cdecl;external libX11;
-function XSetSizeHints(para1:PDisplay; para2:TWindow; para3:PXSizeHints; para4:TAtom):longint;cdecl;external libX11;
+function XLookupString(para1:PXKeyEvent; para2:Pchar; para3:cint; para4:PKeySym; para5:PXComposeStatus):cint;cdecl;external libX11;
+function XMatchVisualInfo(para1:PDisplay; para2:cint; para3:cint; para4:cint; para5:PXVisualInfo):TStatus;cdecl;external libX11;
+function XOffsetRegion(para1:TRegion; para2:cint; para3:cint):cint;cdecl;external libX11;
+function XPointInRegion(para1:TRegion; para2:cint; para3:cint):TBool;cdecl;external libX11;
+function XPolygonRegion(para1:PXPoint; para2:cint; para3:cint):TRegion;cdecl;external libX11;
+function XRectInRegion(para1:TRegion; para2:cint; para3:cint; para4:cuint; para5:cuint):cint;cdecl;external libX11;
+function XSaveContext(para1:PDisplay; para2:TXID; para3:TXContext; para4:Pchar):cint;cdecl;external libX11;
+function XSetClassHint(para1:PDisplay; para2:TWindow; para3:PXClassHint):cint;cdecl;external libX11;
+function XSetIconSizes(para1:PDisplay; para2:TWindow; para3:PXIconSize; para4:cint):cint;cdecl;external libX11;
+function XSetNormalHints(para1:PDisplay; para2:TWindow; para3:PXSizeHints):cint;cdecl;external libX11;
+procedure XSetRGBColormaps(para1:PDisplay; para2:TWindow; para3:PXStandardColormap; para4:cint; para5:TAtom);cdecl;external libX11;
+function XSetSizeHints(para1:PDisplay; para2:TWindow; para3:PXSizeHints; para4:TAtom):cint;cdecl;external libX11;
 function XSetStandardProperties(para1:PDisplay; para2:TWindow; para3:Pchar; para4:Pchar; para5:TPixmap;
-           para6:PPchar; para7:longint; para8:PXSizeHints):longint;cdecl;external libX11;
+           para6:PPchar; para7:cint; para8:PXSizeHints):cint;cdecl;external libX11;
 procedure XSetTextProperty(para1:PDisplay; para2:TWindow; para3:PXTextProperty; para4:TAtom);cdecl;external libX11;
 procedure XSetWMClientMachine(para1:PDisplay; para2:TWindow; para3:PXTextProperty);cdecl;external libX11;
-function XSetWMHints(para1:PDisplay; para2:TWindow; para3:PXWMHints):longint;cdecl;external libX11;
+function XSetWMHints(para1:PDisplay; para2:TWindow; para3:PXWMHints):cint;cdecl;external libX11;
 procedure XSetWMIconName(para1:PDisplay; para2:TWindow; para3:PXTextProperty);cdecl;external libX11;
 procedure XSetWMName(para1:PDisplay; para2:TWindow; para3:PXTextProperty);cdecl;external libX11;
 procedure XSetWMNormalHints(para1:PDisplay; para2:TWindow; para3:PXSizeHints);cdecl;external libX11;
 procedure XSetWMProperties(para1:PDisplay; para2:TWindow; para3:PXTextProperty; para4:PXTextProperty; para5:PPchar;
-            para6:longint; para7:PXSizeHints; para8:PXWMHints; para9:PXClassHint);cdecl;external libX11;
+            para6:cint; para7:PXSizeHints; para8:PXWMHints; para9:PXClassHint);cdecl;external libX11;
 procedure XmbSetWMProperties(para1:PDisplay; para2:TWindow; para3:Pchar; para4:Pchar; para5:PPchar;
-            para6:longint; para7:PXSizeHints; para8:PXWMHints; para9:PXClassHint);cdecl;external libX11;
+            para6:cint; para7:PXSizeHints; para8:PXWMHints; para9:PXClassHint);cdecl;external libX11;
+procedure Xutf8SetWMProperties(para1:PDisplay; para2:TWindow; para3:Pchar; para4:Pchar; para5:PPchar;
+            para6:cint; para7:PXSizeHints; para8:PXWMHints; para9:PXClassHint);cdecl;external libX11;
 procedure XSetWMSizeHints(para1:PDisplay; para2:TWindow; para3:PXSizeHints; para4:TAtom);cdecl;external libX11;
-function XSetRegion(para1:PDisplay; para2:TGC; para3:TRegion):longint;cdecl;external libX11;
+function XSetRegion(para1:PDisplay; para2:TGC; para3:TRegion):cint;cdecl;external libX11;
 procedure XSetStandardColormap(para1:PDisplay; para2:TWindow; para3:PXStandardColormap; para4:TAtom);cdecl;external libX11;
-function XSetZoomHints(para1:PDisplay; para2:TWindow; para3:PXSizeHints):longint;cdecl;external libX11;
-function XShrinkRegion(para1:TRegion; para2:longint; para3:longint):longint;cdecl;external libX11;
-function XStringListToTextProperty(para1:PPchar; para2:longint; para3:PXTextProperty):TStatus;cdecl;external libX11;
-function XSubtractRegion(para1:TRegion; para2:TRegion; para3:TRegion):longint;cdecl;external libX11;
-function XmbTextListToTextProperty(para1:PDisplay; para2:PPchar; para3:longint; para4:TXICCEncodingStyle; para5:PXTextProperty):longint;cdecl;external libX11;
-function XwcTextListToTextProperty(para1:PDisplay; para2:PPWideChar; para3:longint; para4:TXICCEncodingStyle; para5:PXTextProperty):longint;cdecl;external libX11;
+function XSetZoomHints(para1:PDisplay; para2:TWindow; para3:PXSizeHints):cint;cdecl;external libX11;
+function XShrinkRegion(para1:TRegion; para2:cint; para3:cint):cint;cdecl;external libX11;
+function XStringListToTextProperty(para1:PPchar; para2:cint; para3:PXTextProperty):TStatus;cdecl;external libX11;
+function XSubtractRegion(para1:TRegion; para2:TRegion; para3:TRegion):cint;cdecl;external libX11;
+function XmbTextListToTextProperty(para1:PDisplay; para2:PPchar; para3:cint; para4:TXICCEncodingStyle; para5:PXTextProperty):cint;cdecl;external libX11;
+function XwcTextListToTextProperty(para1:PDisplay; para2:PPWideChar; para3:cint; para4:TXICCEncodingStyle; para5:PXTextProperty):cint;cdecl;external libX11;
+function Xutf8TextListToTextProperty(para1:PDisplay; para2:PPchar; para3:cint; para4:TXICCEncodingStyle; para5:PXTextProperty):cint;cdecl;external libX11;
 procedure XwcFreeStringList(para1:PPWideChar);cdecl;external libX11;
-function XTextPropertyToStringList(para1:PXTextProperty; para2:PPPchar; para3:Plongint):TStatus;cdecl;external libX11;
-function XmbTextPropertyToTextList(para1:PDisplay; para2:PXTextProperty; para3:PPPchar; para4:Plongint):longint;cdecl;external libX11;
-function XwcTextPropertyToTextList(para1:PDisplay; para2:PXTextProperty; para3:PPPWideChar; para4:Plongint):longint;cdecl;external libX11;
-function XUnionRectWithRegion(para1:PXRectangle; para2:TRegion; para3:TRegion):longint;cdecl;external libX11;
-function XUnionRegion(para1:TRegion; para2:TRegion; para3:TRegion):longint;cdecl;external libX11;
-function XWMGeometry(para1:PDisplay; para2:longint; para3:Pchar; para4:Pchar; para5:dword;
-           para6:PXSizeHints; para7:Plongint; para8:Plongint; para9:Plongint; para10:Plongint;
-           para11:Plongint):longint;cdecl;external libX11;
-function XXorRegion(para1:TRegion; para2:TRegion; para3:TRegion):longint;cdecl;external libX11;
+function XTextPropertyToStringList(para1:PXTextProperty; para2:PPPchar; para3:Pcint):TStatus;cdecl;external libX11;
+function XmbTextPropertyToTextList(para1:PDisplay; para2:PXTextProperty; para3:PPPchar; para4:Pcint):cint;cdecl;external libX11;
+function XwcTextPropertyToTextList(para1:PDisplay; para2:PXTextProperty; para3:PPPWideChar; para4:Pcint):cint;cdecl;external libX11;
+function Xutf8TextPropertyToTextList(para1:PDisplay; para2:PXTextProperty; para3:PPPchar; para4:Pcint):cint;cdecl;external libX11;
+function XUnionRectWithRegion(para1:PXRectangle; para2:TRegion; para3:TRegion):cint;cdecl;external libX11;
+function XUnionRegion(para1:TRegion; para2:TRegion; para3:TRegion):cint;cdecl;external libX11;
+function XWMGeometry(para1:PDisplay; para2:cint; para3:Pchar; para4:Pchar; para5:cuint;
+           para6:PXSizeHints; para7:Pcint; para8:Pcint; para9:Pcint; para10:Pcint;
+           para11:Pcint):cint;cdecl;external libX11;
+function XXorRegion(para1:TRegion; para2:TRegion; para3:TRegion):cint;cdecl;external libX11;
 
 {$ifdef MACROS}
-function XDestroyImage(ximage : PXImage) : longint;
-function XGetPixel(ximage : PXImage; x, y : longint) : dword;
-function XPutPixel(ximage : PXImage; x, y : longint; pixel : dword) : longint;
-function XSubImage(ximage : PXImage; x, y : longint; width, height : dword) : PXImage;
-function XAddPixel(ximage : PXImage; value : longint) : longint;
+function XDestroyImage(ximage : PXImage) : cint;
+function XGetPixel(ximage : PXImage; x, y : cint) : culong;
+function XPutPixel(ximage : PXImage; x, y : cint; pixel : culong) : cint;
+function XSubImage(ximage : PXImage; x, y : cint; width, height : cuint) : PXImage;
+function XAddPixel(ximage : PXImage; value : clong) : cint;
 function IsKeypadKey(keysym : TKeySym) : Boolean;
 function IsPrivateKeypadKey(keysym : TKeySym) : Boolean;
 function IsCursorKey(keysym : TKeySym) : Boolean;
@@ -319,28 +309,28 @@ implementation
 
 {$ifdef MACROS}
 
-function XDestroyImage(ximage : PXImage) : longint;
+function XDestroyImage(ximage : PXImage) : cint;
 
 begin
   XDestroyImage := ximage^.f.destroy_image(ximage);
 end;
 
-function XGetPixel(ximage : PXImage; x, y : longint) : dword;
+function XGetPixel(ximage : PXImage; x, y : cint) : culong;
 begin
    XGetPixel:=ximage^.f.get_pixel(ximage, x, y);
 end;
 
-function XPutPixel(ximage : PXImage; x, y : longint; pixel : dword) : longint;
+function XPutPixel(ximage : PXImage; x, y : cint; pixel : culong) : cint;
 begin
    XPutPixel:=ximage^.f.put_pixel(ximage, x, y, pixel);
 end;
 
-function XSubImage(ximage : PXImage; x, y : longint; width, height : dword) : PXImage;
+function XSubImage(ximage : PXImage; x, y : cint; width, height : cuint) : PXImage;
 begin
    XSubImage:=ximage^.f.sub_image(ximage, x, y, width, height);
 end;
 
-function XAddPixel(ximage : PXImage; value : longint) : longint;
+function XAddPixel(ximage : PXImage; value : clong) : cint;
 begin
    XAddPixel:=ximage^.f.add_pixel(ximage, value);
 end;