Difference between revisions of "X11/es"

From Free Pascal wiki
Jump to navigationJump to search
Line 69: Line 69:
  
 
   { Crear la ventana }
 
   { Crear la ventana }
   w := XCreateSimpleWindow(d, RootWindow(d, s), 10, 10, 200, 200, 1,
+
   w := XCreateSimpleWindow(d, RootWindow(d, s), 10, 10, 400, 400, 1,
 
                           BlackPixel(d, s), WhitePixel(d, s));
 
                           BlackPixel(d, s), WhitePixel(d, s));
  
Line 85: Line 85:
 
     if (e._type = Expose) then
 
     if (e._type = Expose) then
 
     begin
 
     begin
       XFillRectangle(d, w, DefaultGC(d, s), 20, 20, 10, 10);
+
       XFillRectangle(d, w, DefaultGC(d, s), 30, 40, 10, 10);
 
       XDrawString(d, w, DefaultGC(d, s), 50, 50, msg, strlen(msg));
 
       XDrawString(d, w, DefaultGC(d, s), 50, 50, msg, strlen(msg));
 
     end;
 
     end;
Line 97: Line 97:
  
 
begin
 
begin
   ModalShowX11Window('Hola, ¿ves el mensaje de texto en esta ventana? :)');
+
   ModalShowX11Window('Hola, Esto es un mensaje de texto en la ventana :)');
 
end.
 
end.
 
</syntaxhighlight>
 
</syntaxhighlight>

Revision as of 14:39, 7 August 2017

Deutsch (de) English (en) español (es)


El paquete X11 contiene algunas unidades con las traducciones de los ficheros de cabecera X.

Listado de unidades

Las unidades más elementales son:

  • X rutinas básicas de X.
  • xcms Algunas gestiones de color.
  • xlib Xlib toolkit.
  • xrender Extensión de renderizado de X.
  • xresource Gestión de recursos de X.
  • xshm Extensión de memoria compartida de X.
  • xutil X util lib.

Unidades más nuevas:

  • cursorfont
  • xinerama
  • xrandr
  • keysym
  • xf86dga.pp
  • xkb
  • xv
  • xf86vmode
  • xkblib
  • xvlib
  • xatom
  • xi

Todas estas unidades enlazan a varias librerias X. Estas unidades hacen de interface a las librerías cliente documentadas y son por tanto ampliamente inmunes a los cambios en X11<->Xorg.


Ejemplos

A Una ventana mostrando un mensaje

Esta es una aplicación muy sencilla que muestra una ventana con un mensaje escrito.

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);

  { Abre la conexión con el servidor }
  d := XOpenDisplay(nil);
  if (d = nil) then
  begin
    WriteLn('[ModalShowX11Window] NO puedo abrir el Display');
    exit;
  end;

  s := DefaultScreen(d);

  { Crear la ventana }
  w := XCreateSimpleWindow(d, RootWindow(d, s), 10, 10, 400, 400, 1,
                           BlackPixel(d, s), WhitePixel(d, s));

  { Seleccionar el tipo de eventos en los que estamos interesados }
  XSelectInput(d, w, ExposureMask or KeyPressMask);

  { Mapear (mostrar) la ventana }
  XMapWindow(d, w);

  { bucle de eventos }
  while (True) do
  begin
    XNextEvent(d, @e);
    { draw or redraw the window }
    if (e._type = Expose) then
    begin
      XFillRectangle(d, w, DefaultGC(d, s), 30, 40, 10, 10);
      XDrawString(d, w, DefaultGC(d, s), 50, 50, msg, strlen(msg));
    end;
    { Salir al presionar una tecla }
    if (e._type = KeyPress) then Break;
  end;

  { Cerrar la conexión con el servidor }
  XCloseDisplay(d);
end;

begin
  ModalShowX11Window('Hola, Esto es un mensaje de texto en la ventana :)');
end.

See Also

Go back to Packages List