Difference between revisions of "X11"

From Lazarus wiki
(See Also)
(See Also)
Line 95: Line 95:
==See Also==
==See Also==
* http://en.wikipedia.org/wiki/Xlib#Example
* http://en.wikipedia.org/wiki/Xlib
Go back to [[Package_List|Packages List]]
Go back to [[Package_List|Packages List]]

Revision as of 09:01, 16 August 2011

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.


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+}


 xlib, x, ctypes;

procedure ModalShowX11Window(AMsg: string); var

 d: PDisplay;
 w: TWindow;
 e: TXEvent;
 msg: PChar;
 s: cint;


 msg := PChar(AMsg);
 { open connection with the server }
 d := XOpenDisplay(nil);
 if (d = nil) then
   WriteLn('[ModalShowX11Window] Cannot open display');
 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
   XNextEvent(d, @e);
   { draw or redraw the window }
   if (e._type = Expose) then
     XFillRectangle(d, w, DefaultGC(d, s), 20, 20, 10, 10);
     XDrawString(d, w, DefaultGC(d, s), 50, 50, msg, strlen(msg));
   { exit on key press }
   if (e._type = KeyPress) then Break;
 { close connection to server }



 ModalShowX11Window('My message');

end. </delphi>

See Also

Go back to Packages List