Avant d’aller trop loin, voyons le tout petit programme GTK.
Notion d’héritage en langage C? N’est ce pas que l’héritage n’existe qu’en POO ?
Eh doucement ! Calmez-vous. C’est vrai que je vous ai dit que le langage C est un langage non
orienté objet. Et je vous ai dit aussi que l’héritage est l’une des notions les plus importantes en
POO.
Cependant le concept de POO existe belle bien en C. Si on connait très bien le C, on peut bien
organiser son code de telle sorte qu’il suit le principe de POO. Le langage C est sans doute le
langage par excellence. Cependant il reste un langage très compliqué, c’est pour ça que beaucoup de
programmeurs ne l’aiment pas.
Le GTK+ suit le principe de la POO. Dieu merci, nous avons déjà vu ce principe en C++.
Avant d’attaquer la dernière partie de ce cours qui consiste à créer notre première fenêtre, il faut
savoir que les objets graphiques du GTK+ sont appelés widgets et que les
widgets sont organisés suivant une hiérarchie (héritage).
Le widget permettant d’afficher une fenêtre est appelé GtkWindow. Voici son arbre généalogique :
Et comme le montre le concept de la POO, GtkWindow a l’avantage d’être l’heureux héritier de son parent GtkBin et de ses arrières parents Gtkcontainer, GtkWidget ,GtkObject et GObject
Pour créer notre fenêtre, nous allons commencer par déclarer un pointeur. Bien que le
widget concernant les fenêtres est GtkWindow, nous allons déclarer un objet GtkWidget.
Dans ce cas, notre bout de code sera :
Maintenant que l’objet mafenetre est créé, nous allons l’initialiser. Et puis
nous allons créer un widget GtkWindow qui aura comme type GTK_WINDOW_TOPLEVEL
ou GTK_WINDOW_POPUP.
GTK_WINDOW_TOPLEVEL permet de créer une fenêtre normale tandis que
GTK_WINDOW_POPUP permet de créer une popup. Pour la création du widget, nous allons opter
pour GTK_WINDOW_TOPLEVEL. Notre ligne de code sera donc :
Maintenant notre fenêtre est déjà créée. Il ne reste qu’à l’afficher. Pour l’affichage nous allons
faire ceci :
Et au final nous allons ajouter ceci :
gtk_main permet à l’application d’attendre à ce que les événements se produisent. Si nous l’omettons, la fenêtre sera fermée après son affichage et nous n’aurons pas le temps de la voir.
Voici le code au complet :
Résultat :
Voila votre première fenêtre.