El manejo de colores y de fuentes en Xlib puede ser algo confuso o complejo para algunos que recien comienzan a programar unsando las librerias base del Xserver las Xlib.
En este ejemplo se muestra como crear una ventana y luego en ella colocar texto con un tamaño y color determinado.
/**********x11_1.c*************/
#include < X11/Xlib.h >
#include < X11/Xutil.h >
#include < stdio.h >
#include < string.h >
/*
Retorna el color mas proximo del mapa de colores
*/
unsigned long Buscar_color_nombre( Display *display, char *Nombre )
{
  XColor color, temp;
  XAllocNamedColor( display,DefaultColormap(display,DefaultScreen(display)),Nombre, &color, &temp );
  return color.pixel;
}
int main()
{
  Display *display;
  Window window;
  GC gc;
  Font fuente;
  char *Texto1 = "Test: Fuentes en Xlib";
  char *Texto2 = "Color Rojo";
  char *Texto3 = "Color Verde";  
  
  display = XOpenDisplay( NULL );
  window = XCreateSimpleWindow( display,DefaultRootWindow( display ),100, 100, 300, 200, 1, 0, 1 );
  XMapWindow( display, window );
  gc = XCreateGC( display, window, 0, NULL );
  fuente = XLoadFont( display, "9x15" );
  XSetForeground(display, gc, Buscar_color_nombre(display, "white"));
  XSetFont( display, gc, fuente );
  XDrawString( display, window, gc, 10, 50, Texto1, strlen(Texto1) );
  XSetForeground(display, gc, Buscar_color_nombre(display, "red"));
  XDrawString( display, window, gc, 10, 80, Texto2, strlen(Texto2) );
  XSetForeground(display, gc, Buscar_color_nombre(display, "green"));
  XDrawString( display, window, gc, 10, 110, Texto3, strlen(Texto3) );
  XFlush( display );
  getchar();
}
/******************************/
Compilacion:
gcc -o x11_1 x11_1.c -lX11
 
No hay comentarios:
Publicar un comentario