IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

GTK+ par l'exemple


précédentsommairesuivant

XI. Les barres de défilement

XI-A. Aperçu

Image non disponible
Cliquez pour agrandir

XI-B. Ajouter des barres de défilement

Après le dernier chapitre, quelque peu laborieux, voici une partie plus simple, mais qui va rendre notre application plus pratique. En effet, si vous avez essayé d'ouvrir un fichier de grande taille, vous avez pu remarquer que pour pouvoir lire la fin du fichier, il fallait utiliser les touches du clavier : pas très convivial.
Pour rendre la navigation plus aisée, on utilise des barres de défilement :

main.c
Sélectionnez
    GtkWidget *p_scrolled_window = NULL;

    p_scrolled_window = gtk_scrolled_window_new (NULL, NULL);
    gtk_box_pack_start (GTK_BOX (p_main_box), p_scrolled_window, TRUE, TRUE, 0);

    /* Creation de la zone de texte */
    /* ... */
    gtk_container_add (GTK_CONTAINER (p_scrolled_window), p_text_view);

Le constructeur de notre GtkScrolledWindow prend en argument deux GtkAdjustment qui permettent de définir différentes propriétés de la barre de défilement (taille d'une page, la position de départ…), nous laissons GTK+ faire en passant NULL.
C'est un bon début, mais esthétiquement on peut faire mieux : même s'il n'est pas utile d'avoir une barre de défilement, elle est quand même affichée. On peut demander à GTK+ de les afficher que si cela est nécessaire :

main.c
Sélectionnez
    gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (p_scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);

En fait nous avons de la chance, car la classe GtkTextView fait partie des widgets qui supportent de façon native les barres de défilement. Comment le savoir ? Ce genre de widget possède une ou deux propriétés de type GtkAdjustment (une pour la barre verticale, l'autre pour la barre horizontale). Actuellement seulement trois classes en sont capables : les GtkTextView, les GtkTreeView et les GtkLayout.
Comment faire pour les autres widgets ? Il faut passer par une classe adaptateur GtkViewport afin de créer les GtkAdjustment.

XI-C. Code source


précédentsommairesuivant

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2006-2008 Nicolas Joseph. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.