PREMIER PROGRAMME
utilisant la XLib

/* premier.c */

/* fenetre avec message */

#include <stdio.h>
#include <X11/Xlib.h>

GC      gc; 
Display *display; 
int     screen; 
Window  win, root; 
unsigned long white_pixel, black_pixel;  
 
main() { 
  if ((display = XOpenDisplay ("")) == NULL) { 
    fprintf (stderr, "Can't open Display\n"); 
    exit (1); 
  } 
  gc = DefaultGC (display, screen); 
  screen = DefaultScreen (display); 
  root = RootWindow (display, screen); 
  white_pixel = WhitePixel (display, screen); 
  black_pixel = BlackPixel (display, screen); 
  win = XCreateSimpleWindow (display, root,  
			     0, 0, 100, 90, 2, black_pixel, white_pixel); 
  XSelectInput (display, win, ExposureMask); 
  XStoreName (display, win, "premier"); 
  XMapWindow (display, win); 
      
  for (;;) { 
    XEvent ev; 
    XNextEvent (display, &ev); 
    switch (ev.type) { 
    case Expose : 
      XDrawString (display, win, gc, 10, 30, "premier programme", 17);    
      XDrawString (display, win, gc, 10, 50, "reussi sous X !", 15);    
      break; 
    default : 
      break;            
    } 
  } 
}

Fonctionnement de ce programme

Généralités sur X-Window et la XLib

Compilation et Exécution :

Dans une fenêtre Xterm, compilez le programme par la ligne de commande : cx premier
Executez le programme en tapant la ligne de commande premier
Pour arrêter le programme, utilisez le bouton "stop" en haut à gauche de sa fenêtre principale d'exécution.

Execution :

Est-ce que la fenêtre est en (0,0) ?
Bougez la fenêtre, re-dimensionnez la, iconisez la, masquez la, ... .

Petits exercices :

Le Window Manager intervient sur vos fenêtres. Essayez :
a. Modifiez ce programme pour une autre taille de fenêtre, idem pour l'épaisseur de bordure.
b. inversez la couleur de fond et celle de bordure.
c Que se passe-t'il en enlevant :
1. XDrawString
2. XStoreName
3. XSelectInput
4. XMapWindow

 

programme suivant index général fonctions de la XLib événements types dans XLib