X11
From Lazarus wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
The X11 package contains some units which contain the translations of the X header files.
List of units
The most basic units are:
- X basic X routines.
- xcms Some color management.
- xlib Xlib toolkit.
- xrender X Render extension.
- xresource X resource management.
- xshm X shared memory extension.
- xutil X util lib.
Newer units:
- cursorfont
- xinerama
- xrandr
- keysym
- xf86dga.pp
- xkb
- xv
- xf86vmode
- xkblib
- xvlib
- xatom
- xi
All these units link to the various X libraries. These units interface to the documented client libraries, and are thus largely immune to the X11<->Xorg changes.
Examples
A window with a message
This is a very simple application which show a window with a written message.
<delphi> program xshowwindow;
{$mode objfpc}{$H+}
uses
xlib, x, ctypes;
procedure ModalShowX11Window(AMsg: string); var
d: PDisplay; w: TWindow; e: TXEvent; msg: PChar; s: cint;
begin
msg := PChar(AMsg);
{ open connection with the server } d := XOpenDisplay(nil); if (d = nil) then begin WriteLn('[ModalShowX11Window] Cannot open display'); exit; end;
s := DefaultScreen(d);
{ create window } w := XCreateSimpleWindow(d, RootWindow(d, s), 10, 10, 200, 200, 1, BlackPixel(d, s), WhitePixel(d, s));
{ select kind of events we are interested in } XSelectInput(d, w, ExposureMask or KeyPressMask);
{ map (show) the window } XMapWindow(d, w);
{ event loop } while (True) do begin XNextEvent(d, @e); { draw or redraw the window } if (e._type = Expose) then begin XFillRectangle(d, w, DefaultGC(d, s), 20, 20, 10, 10); XDrawString(d, w, DefaultGC(d, s), 50, 50, msg, strlen(msg)); end; { exit on key press } if (e._type = KeyPress) then Break; end;
{ close connection to server } XCloseDisplay(d);
end;
begin
ModalShowX11Window('My message');
end. </delphi>
See Also
Go back to Packages List