Accueil
Accueil Le Club Delphi Kylix C C++ Java J2EE DotNET & C# Visual Basic Access Pascal Dev Web PHP ASP XML UML SQLSGBD Windows Linux Autres

GTK+ par l'exemple

Date de publication : 28 juin 2006




XI. Les barres de défilement
XI-A. Aperçu
XI-B. Ajouter des barres de défilement
XI-C. Code source


XI. Les barres de défilement


XI-A. Aperçu

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
    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
    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 widget qui supporte 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




 

Les sources présentés sur cette pages sont libre de droits, et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright ©2006 Nicolas Joseph. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérets. Cette page est déposée à la SACD.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com