mirror of
https://github.com/vishapoberon/compiler.git
synced 2026-04-06 00:32:24 +00:00
x11 modules moved to separate directory and won't be compiled by
default.
x11 test cases updated.
-- noch
Former-commit-id: 797ea84f14
548 lines
16 KiB
Modula-2
548 lines
16 KiB
Modula-2
MODULE oocXutil (*[INTERFACE "C"]*);
|
|
|
|
IMPORT
|
|
C := oocC, X := oocX11, SYSTEM;
|
|
|
|
|
|
(*
|
|
* Bitmask returned by XParseGeometry(). Each bit tells if the corresponding
|
|
* value (x, y, width, height) was found in the parsed string.
|
|
*)
|
|
CONST
|
|
NoValue* = 00000H;
|
|
XValue* = 00001H;
|
|
YValue* = 00002H;
|
|
WidthValue* = 00004H;
|
|
HeightValue* = 00008H;
|
|
AllValues* = 0000FH;
|
|
XNegative* = 00010H;
|
|
YNegative* = 00020H;
|
|
|
|
(*
|
|
* new version containing basewidth, baseheight, and wingravity fields;
|
|
* used with WMNORMALHINTS.
|
|
*)
|
|
TYPE
|
|
XSizeHintsPtr* = POINTER TO XSizeHints;
|
|
XSizeHints* = RECORD
|
|
flags*: X.ulongmask; (* marks which fields in this structure are defined *)
|
|
x*, y*: C.int; (* obsolete for new window mgrs, but clients *)
|
|
width*, height*: C.int; (* should set so old wm's don't mess up *)
|
|
minwidth*, minheight*: C.int;
|
|
maxwidth*, maxheight*: C.int;
|
|
widthinc*, heightinc*: C.int;
|
|
minaspect*, maxaspect*: RECORD
|
|
x*: C.int; (* numerator *)
|
|
y*: C.int; (* denominator *)
|
|
END;
|
|
basewidth*, baseheight*: C.int;(* added by ICCCM version 1 *)
|
|
wingravity*: C.int; (* added by ICCCM version 1 *)
|
|
END;
|
|
|
|
(*
|
|
* The next block of definitions are for window manager properties that
|
|
* clients and applications use for communication.
|
|
*)
|
|
CONST
|
|
(* flags argument in size hints *)
|
|
USPosition* = {0}; (* user specified x, y *)
|
|
USSize* = {1}; (* user specified width, height *)
|
|
PPosition* = {2}; (* program specified position *)
|
|
PSize* = {3}; (* program specified size *)
|
|
PMinSize* = {4}; (* program specified minimum size *)
|
|
PMaxSize* = {5}; (* program specified maximum size *)
|
|
PResizeInc* = {6}; (* program specified resize increments *)
|
|
PAspect* = {7}; (* program specified min and max aspect ratios *)
|
|
PBaseSize* = {8}; (* program specified base for incrementing *)
|
|
PWinGravity* = {9}; (* program specified window gravity *)
|
|
(* obsolete *)
|
|
PAllHints* = PPosition+PSize+PMinSize+PMaxSize+PResizeInc+PAspect;
|
|
|
|
TYPE
|
|
XWMHintsPtr* = POINTER TO XWMHints;
|
|
XWMHints* = RECORD
|
|
flags*: X.ulongmask;(* marks which fields in this structure are defined *)
|
|
input*: X.Bool; (* does this application rely on the window manager to
|
|
get keyboard input? *)
|
|
initialstate*: C.int; (* see below *)
|
|
iconpixmap*: X.Pixmap; (* pixmap to be used as icon *)
|
|
iconwindow*: X.Window; (* window to be used as icon *)
|
|
iconx*, icony*: C.int; (* initial position of icon *)
|
|
iconmask*: X.Pixmap; (* icon mask bitmap *)
|
|
windowgroup*: X.XID; (* id of related window group *)
|
|
END;
|
|
|
|
CONST
|
|
(* definition for flags of XWMHints *)
|
|
InputHint* = {0};
|
|
StateHint* = {1};
|
|
IconPixmapHint* = {2};
|
|
IconWindowHint* = {3};
|
|
IconPositionHint* = {4};
|
|
IconMaskHint* = {5};
|
|
WindowGroupHint* = {6};
|
|
AllHints* = InputHint+StateHint+IconPixmapHint+IconWindowHint+IconPositionHint+IconMaskHint+WindowGroupHint;
|
|
XUrgencyHint* = {8};
|
|
(* definitions for initial window state *)
|
|
WithdrawnState* = 0; (* for windows that are not mapped *)
|
|
NormalState* = 1; (* most applications want to start this way *)
|
|
IconicState* = 3; (* application wants to start as an icon *)
|
|
|
|
(*
|
|
* Obsolete states no longer defined by ICCCM
|
|
*)
|
|
CONST
|
|
DontCareState* = 0; (* don't know or care *)
|
|
ZoomState* = 2; (* application wants to start zoomed *)
|
|
InactiveState* = 4; (* application believes it is seldom used; *)
|
|
(* some wm's may put it on inactive menu *)
|
|
(*
|
|
* new structure for manipulating TEXT properties; used with WMNAME,
|
|
* WMICONNAME, WMCLIENTMACHINE, and WMCOMMAND.
|
|
*)
|
|
TYPE
|
|
XTextPropertyPtr* = POINTER TO XTextProperty;
|
|
XTextProperty* = RECORD
|
|
value*: C.charPtr1d; (* same as Property routines *)
|
|
encoding*: X.Atom; (* prop type *)
|
|
format*: C.int; (* prop data format: 8, 16, or 32 *)
|
|
nitems*: C.longint; (* number of data items in value *)
|
|
END;
|
|
|
|
CONST
|
|
XNoMemory* = 1;
|
|
XLocaleNotSupported* = 2;
|
|
XConverterNotFound* = 3;
|
|
|
|
CONST (* enum XICCEncodingStyle *)
|
|
XStringStyle* = 0;
|
|
XCompoundTextStyle* = 1;
|
|
XTextStyle* = 2;
|
|
XStdICCTextStyle* = 3;
|
|
|
|
TYPE
|
|
XICCEncodingStyle* = C.enum1;
|
|
XIconSizePtr* = POINTER TO XIconSize;
|
|
XIconSize* = RECORD
|
|
minwidth*, minheight*: C.int;
|
|
maxwidth*, maxheight*: C.int;
|
|
widthinc*, heightinc*: C.int;
|
|
END;
|
|
XClassHintPtr* = POINTER TO XClassHint;
|
|
XClassHint* = RECORD
|
|
resname*: C.charPtr1d;
|
|
resclass*: C.charPtr1d;
|
|
END;
|
|
|
|
(*
|
|
* These macros are used to give some sugar to the image routines so that
|
|
* naive people are more comfortable with them.
|
|
*)
|
|
(* can't define any macros here *)
|
|
|
|
(*
|
|
* Compose sequence status structure, used in calling XLookupString.
|
|
*)
|
|
TYPE
|
|
XComposeStatusPtr* = POINTER TO XComposeStatus;
|
|
XComposeStatus* = RECORD
|
|
composeptr*: X.XPointer; (* state table pointer *)
|
|
charsmatched*: C.int; (* match state *)
|
|
END;
|
|
|
|
(*
|
|
* Keysym macros, used on Keysyms to test for classes of symbols
|
|
*)
|
|
(* can't define any macros here *)
|
|
|
|
(*
|
|
* opaque reference to Region data type
|
|
*)
|
|
TYPE
|
|
XRegion* = RECORD END;
|
|
Region* = POINTER TO XRegion;
|
|
|
|
(* Return values from XRectInRegion() *)
|
|
CONST
|
|
RectangleOut* = 0;
|
|
RectangleIn* = 1;
|
|
RectanglePart* = 2;
|
|
|
|
(*
|
|
* Information used by the visual utility routines to find desired visual
|
|
* type from the many visuals a display may support.
|
|
*)
|
|
TYPE
|
|
XVisualInfoPtr* = POINTER TO XVisualInfo;
|
|
XVisualInfo* = RECORD
|
|
visual*: X.VisualPtr;
|
|
visualid*: X.VisualID;
|
|
screen*: C.int;
|
|
depth*: C.int;
|
|
class*: C.int;
|
|
redmask*: X.ulongmask;
|
|
greenmask*: X.ulongmask;
|
|
bluemask*: X.ulongmask;
|
|
colormapsize*: C.int;
|
|
bitsperrgb*: C.int;
|
|
END;
|
|
|
|
CONST
|
|
VisualNoMask* = 00H;
|
|
VisualIDMask* = 01H;
|
|
VisualScreenMask* = 02H;
|
|
VisualDepthMask* = 04H;
|
|
VisualClassMask* = 08H;
|
|
VisualRedMaskMask* = 010H;
|
|
VisualGreenMaskMask* = 020H;
|
|
VisualBlueMaskMask* = 040H;
|
|
VisualColormapSizeMask* = 080H;
|
|
VisualBitsPerRGBMask* = 0100H;
|
|
VisualAllMask* = 01FFH;
|
|
|
|
(*
|
|
* This defines a window manager property that clients may use to
|
|
* share standard color maps of type RGBCOLORMAP:
|
|
*)
|
|
TYPE
|
|
XStandardColormapPtr* = POINTER TO XStandardColormap;
|
|
XStandardColormap* = RECORD
|
|
colormap*: X.Colormap;
|
|
redmax*: C.longint;
|
|
redmult*: C.longint;
|
|
greenmax*: C.longint;
|
|
greenmult*: C.longint;
|
|
bluemax*: C.longint;
|
|
bluemult*: C.longint;
|
|
basepixel*: C.longint;
|
|
visualid*: X.VisualID; (* added by ICCCM version 1 *)
|
|
killid*: X.XID; (* added by ICCCM version 1 *)
|
|
END;
|
|
|
|
CONST
|
|
ReleaseByFreeingColormap* = 1;(* for killid field above *)
|
|
|
|
(*
|
|
* return codes for XReadBitmapFile and XWriteBitmapFile
|
|
*)
|
|
CONST
|
|
BitmapSuccess* = 0;
|
|
BitmapOpenFailed* = 1;
|
|
BitmapFileInvalid* = 2;
|
|
BitmapNoMemory* = 3;
|
|
|
|
|
|
(****************************************************************
|
|
*
|
|
* Context Management
|
|
*
|
|
****************************************************************)
|
|
(* Associative lookup table return codes *)
|
|
CONST
|
|
XCSUCCESS* = 0; (* No error. *)
|
|
XCNOMEM* = 1; (* Out of memory *)
|
|
XCNOENT* = 2; (* No entry in table *)
|
|
|
|
TYPE
|
|
XContext* = C.int;
|
|
|
|
|
|
(* The following declarations are alphabetized. *)
|
|
(*
|
|
PROCEDURE XAllocClassHint* (): XClassHintPtr;
|
|
PROCEDURE XAllocIconSize* (): XIconSizePtr;
|
|
PROCEDURE XAllocSizeHints* (): XSizeHintsPtr;
|
|
PROCEDURE XAllocStandardColormap* (): XStandardColormapPtr;
|
|
PROCEDURE XAllocWMHints* (): XWMHintsPtr;
|
|
PROCEDURE XClipBox* (
|
|
r: Region;
|
|
VAR rectreturn: X.XRectangle);
|
|
PROCEDURE XCreateRegion* (): Region;
|
|
PROCEDURE XDefaultString* (): C.charPtr1d;
|
|
PROCEDURE XDeleteContext* (
|
|
display: X.DisplayPtr;
|
|
rid: X.XID;
|
|
context: XContext): C.int;
|
|
PROCEDURE XDestroyRegion* (
|
|
r: Region);
|
|
PROCEDURE XEmptyRegion* (
|
|
r: Region);
|
|
PROCEDURE XEqualRegion* (
|
|
r1: Region;
|
|
r2: Region);
|
|
PROCEDURE XFindContext* (
|
|
display: X.DisplayPtr;
|
|
rid: X.XID;
|
|
context: XContext;
|
|
VAR datareturn: X.XPointer): C.int;
|
|
PROCEDURE XGetClassHint* (
|
|
display: X.DisplayPtr;
|
|
w: X.Window;
|
|
VAR classhintsreturn: XClassHint): X.Status;
|
|
PROCEDURE XGetIconSizes* (
|
|
display: X.DisplayPtr;
|
|
w: X.Window;
|
|
VAR sizelistreturn: XIconSize;
|
|
VAR countreturn: C.int): X.Status;
|
|
PROCEDURE XGetNormalHints* (
|
|
display: X.DisplayPtr;
|
|
w: X.Window;
|
|
VAR hintsreturn: XSizeHints): X.Status;
|
|
PROCEDURE XGetRGBColormaps* (
|
|
display: X.DisplayPtr;
|
|
w: X.Window;
|
|
VAR stdcmapreturn: XStandardColormap;
|
|
VAR countreturn: C.int;
|
|
property: X.Atom): X.Status;
|
|
PROCEDURE XGetSizeHints* (
|
|
display: X.DisplayPtr;
|
|
w: X.Window;
|
|
VAR hintsreturn: XSizeHints;
|
|
property: X.Atom): X.Status;
|
|
PROCEDURE XGetStandardColormap* (
|
|
display: X.DisplayPtr;
|
|
w: X.Window;
|
|
VAR colormapreturn: XStandardColormap;
|
|
property: X.Atom): X.Status;
|
|
PROCEDURE XGetTextProperty* (
|
|
display: X.DisplayPtr;
|
|
window: X.Window;
|
|
VAR textpropreturn: XTextProperty;
|
|
property: X.Atom): X.Status;
|
|
PROCEDURE XGetVisualInfo* (
|
|
display: X.DisplayPtr;
|
|
vinfomask: X.ulongmask;
|
|
vinfotemplate: XVisualInfoPtr;
|
|
VAR nitemsreturn: C.int): XVisualInfoPtr;
|
|
PROCEDURE XGetWMClientMachine* (
|
|
display: X.DisplayPtr;
|
|
w: X.Window;
|
|
VAR textpropreturn: XTextProperty): X.Status;
|
|
PROCEDURE XGetWMHints* (
|
|
display: X.DisplayPtr;
|
|
w: X.Window): XWMHintsPtr;
|
|
PROCEDURE XGetWMIconName* (
|
|
display: X.DisplayPtr;
|
|
w: X.Window;
|
|
VAR textpropreturn: XTextProperty): X.Status;
|
|
PROCEDURE XGetWMName* (
|
|
display: X.DisplayPtr;
|
|
w: X.Window;
|
|
VAR textpropreturn: XTextProperty): X.Status;
|
|
PROCEDURE XGetWMNormalHints* (
|
|
display: X.DisplayPtr;
|
|
w: X.Window;
|
|
VAR hintsreturn: XSizeHints;
|
|
VAR suppliedreturn: C.longint): X.Status;
|
|
PROCEDURE XGetWMSizeHints* (
|
|
display: X.DisplayPtr;
|
|
w: X.Window;
|
|
VAR hintsreturn: XSizeHints;
|
|
VAR suppliedreturn: C.longint;
|
|
property: X.Atom): X.Status;
|
|
PROCEDURE XGetZoomHints* (
|
|
display: X.DisplayPtr;
|
|
w: X.Window;
|
|
VAR zhintsreturn: XSizeHints): X.Status;
|
|
PROCEDURE XIntersectRegion* (
|
|
sra, srb, drreturn: Region); (* ??? *)
|
|
PROCEDURE XConvertCase* (
|
|
sym: X.KeySym;
|
|
VAR lower: X.KeySym;
|
|
VAR upper: X.KeySym);
|
|
*)
|
|
PROCEDURE -XLookupString* (
|
|
(*VAR eventStruct: X.XKeyEvent;*)
|
|
VAR eventStruct: X.XEvent;
|
|
VAR bufferReturn: ARRAY OF C.char;
|
|
bytesBuffer: C.int;
|
|
VAR keysymReturn: X.KeySym;
|
|
(*VAR statusInOut(*[NILCOMPAT]*): XComposeStatus): C.int*)
|
|
VAR statusInOut(*[NILCOMPAT]*): C.longint): C.int
|
|
"(int)XLookupString(eventStruct, bufferReturn, bytesBuffer, keysymReturn, statusInOut)";
|
|
(*
|
|
PROCEDURE XMatchVisualInfo* (
|
|
display: X.DisplayPtr;
|
|
screen: C.int;
|
|
depth: C.int;
|
|
class: C.int;
|
|
VAR vinforeturn: XVisualInfo): X.Status;
|
|
PROCEDURE XOffsetRegion* (
|
|
r: Region;
|
|
dx: C.int;
|
|
dy: C.int);
|
|
PROCEDURE XPointInRegion* (
|
|
r: Region;
|
|
x: C.int;
|
|
y: C.int): X.Bool;
|
|
PROCEDURE XPolygonRegion* (
|
|
points: ARRAY OF X.XPoint;
|
|
n: C.int;
|
|
fillrule: C.int): Region;
|
|
PROCEDURE XRectInRegion* (
|
|
r: Region;
|
|
x: C.int;
|
|
y: C.int;
|
|
width: C.int;
|
|
height: C.int): C.int;
|
|
PROCEDURE XSaveContext* (
|
|
display: X.DisplayPtr;
|
|
rid: X.XID;
|
|
context: XContext;
|
|
data: ARRAY OF C.char): C.int;
|
|
PROCEDURE XSetClassHint* (
|
|
display: X.DisplayPtr;
|
|
w: X.Window;
|
|
classhints: XClassHintPtr);
|
|
PROCEDURE XSetIconSizes* (
|
|
display: X.DisplayPtr;
|
|
w: X.Window;
|
|
sizelist: XIconSizePtr;
|
|
count: C.int);
|
|
PROCEDURE XSetNormalHints* (
|
|
display: X.DisplayPtr;
|
|
w: X.Window;
|
|
hints: XSizeHintsPtr);
|
|
PROCEDURE XSetRGBColormaps* (
|
|
display: X.DisplayPtr;
|
|
w: X.Window;
|
|
stdcmaps: XStandardColormapPtr;
|
|
count: C.int;
|
|
property: X.Atom);
|
|
PROCEDURE XSetSizeHints* (
|
|
display: X.DisplayPtr;
|
|
w: X.Window;
|
|
hints: XSizeHintsPtr;
|
|
property: X.Atom);
|
|
PROCEDURE XSetStandardProperties* (
|
|
display: X.DisplayPtr;
|
|
w: X.Window;
|
|
windowname: ARRAY OF C.char;
|
|
iconname: ARRAY OF C.char;
|
|
iconpixmap: X.Pixmap;
|
|
argv: C.charPtr2d;
|
|
argc: C.int;
|
|
hints: XSizeHintsPtr);
|
|
PROCEDURE XSetTextProperty* (
|
|
display: X.DisplayPtr;
|
|
w: X.Window;
|
|
textprop: XTextPropertyPtr;
|
|
property: X.Atom);
|
|
PROCEDURE XSetWMClientMachine* (
|
|
display: X.DisplayPtr;
|
|
w: X.Window;
|
|
textprop: XTextPropertyPtr);
|
|
PROCEDURE XSetWMHints* (
|
|
display: X.DisplayPtr;
|
|
w: X.Window;
|
|
wmhints: XWMHintsPtr);
|
|
PROCEDURE XSetWMIconName* (
|
|
display: X.DisplayPtr;
|
|
w: X.Window;
|
|
textprop: XTextPropertyPtr);
|
|
PROCEDURE XSetWMName* (
|
|
display: X.DisplayPtr;
|
|
w: X.Window;
|
|
textprop: XTextPropertyPtr);
|
|
PROCEDURE XSetWMNormalHints* (
|
|
display: X.DisplayPtr;
|
|
w: X.Window;
|
|
hints: XSizeHintsPtr);
|
|
PROCEDURE XSetWMProperties* (
|
|
display: X.DisplayPtr;
|
|
w: X.Window;
|
|
windowname: XTextPropertyPtr;
|
|
iconname: XTextPropertyPtr;
|
|
argv: C.charPtr2d;
|
|
argc: C.int;
|
|
normalhints: XSizeHintsPtr;
|
|
wmhints: XWMHintsPtr;
|
|
classhints: XClassHintPtr);
|
|
PROCEDURE XmbSetWMProperties* (
|
|
display: X.DisplayPtr;
|
|
w: X.Window;
|
|
windowname: ARRAY OF C.char;
|
|
iconname: ARRAY OF C.char;
|
|
argv: C.charPtr2d;
|
|
argc: C.int;
|
|
normalhints: XSizeHintsPtr;
|
|
wmhints: XWMHintsPtr;
|
|
classhints: XClassHintPtr);
|
|
PROCEDURE XSetWMSizeHints* (
|
|
display: X.DisplayPtr;
|
|
w: X.Window;
|
|
hints: XSizeHintsPtr;
|
|
property: X.Atom);
|
|
PROCEDURE XSetRegion* (
|
|
display: X.DisplayPtr;
|
|
gc: X.GC;
|
|
r: Region);
|
|
PROCEDURE XSetStandardColormap* (
|
|
display: X.DisplayPtr;
|
|
w: X.Window;
|
|
colormap: XStandardColormapPtr;
|
|
property: X.Atom);
|
|
PROCEDURE XSetZoomHints* (
|
|
display: X.DisplayPtr;
|
|
w: X.Window;
|
|
zhints: XSizeHintsPtr);
|
|
PROCEDURE XShrinkRegion* (
|
|
r: Region;
|
|
dx: C.int;
|
|
dy: C.int);
|
|
PROCEDURE XStringListToTextProperty* (
|
|
list: C.charPtr2d;
|
|
count: C.int;
|
|
VAR textpropreturn: XTextProperty): X.Status;
|
|
PROCEDURE XSubtractRegion* (
|
|
sra, srb, drreturn: Region); (* ??? *)
|
|
PROCEDURE XmbTextListToTextProperty* (
|
|
display: X.DisplayPtr;
|
|
list: C.charPtr2d;
|
|
count: C.int;
|
|
style: XICCEncodingStyle;
|
|
VAR textpropreturn: XTextProperty): C.int;
|
|
PROCEDURE XwcTextListToTextProperty* (
|
|
display: X.DisplayPtr;
|
|
list: ARRAY OF X.wchart;
|
|
count: C.int;
|
|
style: XICCEncodingStyle;
|
|
VAR textpropreturn: XTextProperty): C.int;
|
|
PROCEDURE XwcFreeStringList* (
|
|
list: X.wcharPtr2d);
|
|
PROCEDURE XTextPropertyToStringList* (
|
|
textprop: XTextPropertyPtr;
|
|
VAR listreturn: C.charPtr2d;
|
|
VAR countreturn: C.int): X.Status;
|
|
PROCEDURE XTextPropertyToTextList* (
|
|
display: X.DisplayPtr;
|
|
textprop: XTextPropertyPtr;
|
|
VAR listreturn: C.charPtr2d;
|
|
VAR countreturn: C.int): X.Status;
|
|
PROCEDURE XwcTextPropertyToTextList* (
|
|
display: X.DisplayPtr;
|
|
textprop: XTextPropertyPtr;
|
|
VAR listreturn: X.wcharPtr2d;
|
|
VAR countreturn: C.int): X.Status;
|
|
PROCEDURE XUnionRectWithRegion* (
|
|
rectangle: X.XRectanglePtr;
|
|
srcregion: Region;
|
|
destregionreturn: Region); (* ??? *)
|
|
PROCEDURE XUnionRegion* (
|
|
sra, srb, drreturn: Region); (* ??? *)
|
|
PROCEDURE XWMGeometry* (
|
|
display: X.DisplayPtr;
|
|
screennumber: C.int;
|
|
usergeometry: ARRAY OF C.char;
|
|
defaultgeometry: ARRAY OF C.char;
|
|
borderwidth: C.int;
|
|
hints: XSizeHintsPtr;
|
|
VAR xreturn: C.int;
|
|
VAR yreturn: C.int;
|
|
VAR widthreturn: C.int;
|
|
VAR heightreturn: C.int;
|
|
VAR gravityreturn: C.int): C.int;
|
|
PROCEDURE XXorRegion* (
|
|
sra, srb, drreturn: Region); (* ??? *)
|
|
*)
|
|
END oocXutil.
|