/* 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
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.
Est-ce que la fenêtre est en (0,0) ?
Bougez la fenêtre, re-dimensionnez la, iconisez la, masquez
la, ... .
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 |