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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GTK+ avec C & C++ Discussion :

Récupération de l'état d'une scrollbar


Sujet :

GTK+ avec C & C++

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 8
    Par défaut Récupération de l'état d'une scrollbar
    Je cherche à faire un scrolling automatique d'une ScrollWindow qui contient un TextView lorsque je rajoute du texte dans cette dernière. Mais je veux aussi que ça ne le fasse uniquement lorsque la scrollbar est complètement en bas. C'est à dire que si je monte manuellement la scrollbar, je ne veux que ça le fasse automatiquement que si je la redescend complètement en bas comme de nombreux logiciels le font si bien (terminaux graphiques).

    Je sais comment forcer la scrollbar à descendre au bas du texte (grâce à un poste de ce forum d'ailleurs) mais je ne vois pas comment savoir si la scrollbar est en totalement en bas.

    J'ai essayé avec gtk_scrolled_window_get_vadjustment() mais cette fonction me retourne un Adjustment dont la valeur n'atteint jamais (manuellement du moins) la valeur maximale qu'elle peut contenir (upper). Donc je suis un peu perdu.

    Voilà donc si vous avez des suggestions, je vous écoute

  2. #2
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Bonjour,

    Il semblerai que ce soit la bonne méthode

    Par contre la plage de valeur va jusqu'à adjustment->upper - adjustment->page_size :
    Citation Envoyé par [url=http://library.gnome.org/devel/gtk/unstable/GtkAdjustment.html#gtk-adjustment-set-value]gtk_adjustment_set_value[/url]
    Note that for adjustments which are used in a GtkScrollbar, the effective range of allowed values goes from adjustment->lower to adjustment->upper - adjustment->page_size.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 8
    Par défaut
    Merci pour la rapidité de la réponse avec laquelle j'ai pu résoudre mon problème !

    Voici donc mon implémentation du problème pour ceux qui auraient le même problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        gtk_text_buffer_get_end_iter(buffer, &end);
        unsigned char autoscroll = (adj->value == adj->upper - adj->page_size);
        gtk_text_buffer_insert(buffer, &end, txt, -1);
        if(autoscroll){ // Autoscroll tel que présenté dans la FAQ
            p_text_mark = gtk_text_buffer_create_mark (buffer, NULL, &end, FALSE);
            gtk_text_view_scroll_to_mark (view, p_text_mark, 0, FALSE, 0, 0);
        }
    Elle contient peut-être des erreurs syntaxiques parce que je l'ai modifié lors de la composition du message pour le simplifier.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/06/2012, 14h30
  2. Réponses: 7
    Dernier message: 30/03/2012, 15h35
  3. [PHP 5.2] récupération de l'état d'une checkbox avec un formulaire ?
    Par [ZiP] dans le forum Langage
    Réponses: 2
    Dernier message: 16/01/2009, 10h21
  4. Réponses: 1
    Dernier message: 31/05/2008, 16h57
  5. Réponses: 15
    Dernier message: 26/03/2004, 17h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo