# Programmation GTK/Bloc-notes

* Introduction
* Bien débuter
** « Bonjour tout le monde » en GTK
** Compilation de « Bonjour tout le monde »
** Théorie des signaux et des rappels
** « Bonjour tout le monde » pas à pas
** Types de données
** Compléments sur les gestionnaires de signaux
** Un « Bonjour tout le monde » amélioré
* Placement des widgets
** Théorie des boîtes de placement
** Détails sur les boîtes
** Programme de démonstration des placements
** Placement avec les tables
** Exemple de placement avec table
* Vue d'ensemble des widgets
** Conversions de types
** La hiérarchie des widgets
** Widgets sans fenêtre
* Widgets boutons
** Boutons normaux
** Boutons commutateurs
** Cases à cocher
** Boutons radio
* Widgets divers
** Labels
** Le widget bulle d'aide
** Barres de progression
** Boîtes de dialogue
** Pixmaps
* Widgets containers
** Bloc-notes
** Fenêtres avec barres de défilement
* Widgets listes
** Signaux
** Fonctions
** Exemple
** Widget item de liste
* Widgets de sélections de fichiers
* Widgets Menu
** Création manuelle de menus
** Exemple de menu manuel
** Utilisation de GtkMenuFactory
** Exemple d'usine à menu
* Widgets non documentes
** Entrées de texte
** Sélections de couleurs
** Contrôle d'intervalle
** Règles
** Boîtes de texte
** Prévisualisation
** Courbes
* Widget EventBox
* Configuration des attributs de widget
* Temporisations, fonctions d'E/S et d'attente
** Temporisations
** Surveillance des E/S
** Fonctions d'attente
* Gestion des sélections
** Introduction
** Récupération de la sélection
** Fournir la sélection
* glib
** Définitions
** Listes doublement chaînées
** Listes simplement chaînées
** Gestion de la mémoire
** Timers
** Gestion des chaînes
** Utilitaires et fonctions d'erreurs
* Fichiers rc de GTK
** Fonctions pour les fichiers rc
** Format des fichiers rc de GTK
** Exemple de fichier rc
* Écriture de vos propres widgets
** Vue d'ensemble
** Anatomie d'un widget
** Création d'un widget composé
** Création d'un widget à partir de zéro
** En savoir plus
* Scribble, un programme simple de dessin
** Présentation
** Gestion d'événement
** Le widget DrawingArea et le dessin
** Ajouter le support XInput
* Conseils pour l'écriture d'applications GTK
* Contributions
* Remerciements
* Copyright
* Introduction
* Bien débuter
** « Bonjour tout le monde » en GTK
** Compilation de « Bonjour tout le monde »
** Théorie des signaux et des rappels
** « Bonjour tout le monde » pas à pas
** Types de données
** Compléments sur les gestionnaires de signaux
** Un « Bonjour tout le monde » amélioré
* Placement des widgets
** Théorie des boîtes de placement
** Détails sur les boîtes
** Programme de démonstration des placements
** Placement avec les tables
** Exemple de placement avec table
* Vue d'ensemble des widgets
** Conversions de types
** La hiérarchie des widgets
** Widgets sans fenêtre
* Widgets boutons
** Boutons normaux
** Boutons commutateurs
** Cases à cocher
** Boutons radio
* Widgets divers
** Labels
** Le widget bulle d'aide
** Barres de progression
** Boîtes de dialogue
** Pixmaps
* Widgets containers
** Bloc-notes
** Fenêtres avec barres de défilement
* Widgets listes
** Signaux
** Fonctions
** Exemple
** Widget item de liste
* Widgets de sélections de fichiers
* Widgets Menu
** Création manuelle de menus
** Exemple de menu manuel
** Utilisation de GtkMenuFactory
** Exemple d'usine à menu
* Widgets non documentes
** Entrées de texte
** Sélections de couleurs
** Contrôle d'intervalle
** Règles
** Boîtes de texte
** Prévisualisation
** Courbes
* Widget EventBox
* Configuration des attributs de widget
* Temporisations, fonctions d'E/S et d'attente
** Temporisations
** Surveillance des E/S
** Fonctions d'attente
* Gestion des sélections
** Introduction
** Récupération de la sélection
** Fournir la sélection
* glib
** Définitions
** Listes doublement chaînées
** Listes simplement chaînées
** Gestion de la mémoire
** Timers
** Gestion des chaînes
** Utilitaires et fonctions d'erreurs
* Fichiers rc de GTK
** Fonctions pour les fichiers rc
** Format des fichiers rc de GTK
** Exemple de fichier rc
* Écriture de vos propres widgets
** Vue d'ensemble
** Anatomie d'un widget
** Création d'un widget composé
** Création d'un widget à partir de zéro
** En savoir plus
* Scribble, un programme simple de dessin
** Présentation
** Gestion d'événement
** Le widget DrawingArea et le dessin
** Ajouter le support XInput
* Conseils pour l'écriture d'applications GTK
* Contributions
* Remerciements
* Copyright
[ Modifier le sommaire ]
Le widget bloc-notes est un ensemble de « pages » qui se chevauchent. Chaque page contient des informations différentes. Récemment, ce widget est devenu plus commun dans la programmation des interfaces graphiques et c'est un bon moyen de montrer des blocs d'information similaires qui justifient une séparation de leur affichage.
Le premier appel de fonction que l'on doit connaître est, vous l'aviez deviné, celui qui crée un widget bloc-notes.
Lorsque le bloc-notes a été créé, il y a 12 fonctions permettant de travailler sur les blocs-notes. Étudions-les séparément.
La première permet de positionner les indicateurs de pages. Ceux-ci (désignés par le mot « tab » (signet)), peuvent se trouver en haut, en bas, à gauche ou à droite des pages.
GtkPositionType peut prendre les valeurs suivantes qu'il n'est pas nécessaire d'expliquer :
   * GTK_POS_LEFT
   * GTK_POS_RIGHT
   * GTK_POS_TOP
   * GTK_POS_BOTTOM
GTK_POS_TOP est la valeur par défaut.
La fonction suivante permet d'ajouter des pages à un bloc-notes. Il y a trois façons d'ajouter des pages. Regardons les deux premières qui sont très semblables.
Ces fonctions ajoutent des pages au bloc-notes notebook en les insérant à la fin (append) ou au début (prepend). child est le widget qui est placé dans la page du bloc-notes, et tab_label est le label de la page qui est ajoutée.
La troisième fonction ajoutant une page à un bloc-notes conserve toutes les propriétés des deux précédentes, mais elle nous permet en plus de spécifier la position où l'on désire insérer cette page.
Les paramètres sont les mêmes que _append_ et _prepend_ sauf qu'il y en a un de plus : position. Celui-ci sert à spécifier l'endroit où cette page sera insérée.
Maintenant que nous savons insérer une page, voyons comment en supprimer une.
Cette fonction ôte la page spécifiée par page_num du widget notebook.
Pour connaître la page courante d'un bloc-notes, on dispose de la fonction :
Les deux fonctions suivantes permettent de passer à la page suivante ou précédente d'un bloc-notes. Il suffit de faire l'appel de la fonction adéquate avec le widget sur lequel on veut opérer. Remarque : lorsqu'on est sur la dernière page du bloc-notes et que l'on appelle gtk_notebook_next_page, on revient à la première page. De même, si l'on est sur la première page et que l'on appelle gtk_notebook_prev_page, on se retrouve sur sa dernière page.
La fonction qui suit permet de choisir la page « active ». Si vous voulez ouvrir le bloc-notes à la page 5, par exemple, vous utiliserez cette fonction. Sans elle, le bloc-notes s'ouvre sur sa première page par défaut.
Les deux fonctions suivantes ajoutent ou ôtent les indicateurs de page et le contour du bloc-notes, respectivement.
show_tabs et show_border peuvent valoir TRUE ou FALSE (1 ou 0).
Voyons maintenant un exemple, il est tiré du code de testgtk.c de la distribution GTK et montre l'utilisation des 13 fonctions. Ce petit programme crée une fenêtre contenant un bloc-notes et six boutons. Le bloc-notes contient 11 pages, ajoutées par trois moyens différents : à la fin, au milieu et au début. Les boutons permettent de faire tourner les indicateurs de page, ajouter/ôter les indicateurs et le contour, ôter une page, passer à la page suivante et précédente, et sortir du programme.
En espérant que ceci vous aide à créer des blocs-notes pour vos applications GTK.