Généralité sur la programmation sous X
Structure d'un programme
Il faudra avoir une partie:
- Initialisation
. Se connecter au serveur
. Demande d'allocation de ressources (par création de fenêtres, polices de caractères, ...)
. Indiquer le type d'informations (retournées par évènement) que l'on désire recevoir.
. Affichage de la fenêtre
- Boucle sur les évènements
. La boucle s'arrêtant lorsque l'utilisateur demandera à mettre fin au programme.
- Fin du programme
. Destruction de la fenêtre et demande de libération des ressources.
(Impératif car tous les serveurs ne savent pas forcément libérer automatiquement les ressources !)
Remarque importante sur les fonctions envoyées au serveur
Les fonctions
pour communiquer avec le serveur X:
Il est important de savoir que l'appel à une fonction X n'entraîne pas obligatoire l'envoi d'une requête au serveur. En effet, Dans un soucis d'optimisation, la fonction appelée placera la requète dans un buffer.
Le contenu du buffer n'étant transmis que sous certaines conditions:
- L'application le demande explicitement.
- L'application rentrer dans sa boucle de gestion des évènements.
- La requète nécessite une réponse immédiate.
Les fenêtres
Une fenêtre est une zone rectangulaire affectée de certaines propriétés:
- Unité d'entrée/sortie: Elle affiche des informations à l'attention de l'utilisateur, et en retour reçoit des évènements. Un évènement est donc toujours associé à une fenêtre.
- Toutes fenêtres font parties d'une arborescence. Une fenêtre est toujours fille d'une autre. Elle peut aussi posséder une ou plusieurs fenêtres filles. Une notion de clipping apparaît alors: La fenêtre s'affichera uniquement à l'intérieur de sa fenêtre mêre.
Une fenêtre particulière : La fenêtre racine, il s'agit de la toute première fenêtre (racine ou root) qui occupe toute la surface de votre écran.