[C/GTK+] changer de child dans un container

Résolu/Fermé
gachneux Messages postés 10 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 5 juin 2007 - 24 mai 2007 à 16:14
gachneux Messages postés 10 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 5 juin 2007 - 25 mai 2007 à 01:35
Bien le bonjour!

Alors voilà je programme un logiciel de messagerie internet en c avec GTK, mais ça fait quelques jours que je butte sur un problème tout con!
Je m'explique:

Dans ce logiciel se trouve dans la partie gauche une liste des comptes utilisateurs (sous forme de gtk_tree_store) qui s'affiche en fonction de ce que contient un fichier de configuration extérieur.
Donc, quand un nouveau compte est créé, il faut mettre à jour cette liste, ce que j'essaye de faire ainsi:

/*...Le contenant de l'arbre utilisé dans d'autres fichiers...*/
extern GtkWidget *TreeBox

/*...La fonction appelée pour créer et integrer l'arbre...*/
void Make_Tree_Accounts_View()
{
    /*...La vue statique permettant de revenir utiliser cette variable...*/
   static GtkWidget TreeView = NULL;

   /*...Autres variables...*/

    /*...Si on est déjà passé créer le TreeView (donc pour le changer)...*/
   if (TreeView != NULL)
    {
        /*...On enlève la vue précédente...*/
        gtk_container_remove(GTK_CONTAINER(TreeBox), TreeView);
    }

    /*...On crée un nouveau contenant dans la variable globale...*/
    TreeBox = gtk_vbox_new(TRUE, 0);

        /*...Création du nouveau TreeView (je vous épargne les détails!)...*/

    /*...et pour finir: ...*/
    gtk_container_add(GTK_CONTAINER(TreeBox), TreeView);
}


Comme vous vous en doutez, cette fonction est appellée une première fois pour l'affichage du programme (et ça marche à merveille), mais lorsque je la relance, l'affichage de l'arbre disparait (ce qui est normal), mais ne réapparait pas (ce qui est ennuyeux).

D'autant que la compilation réussit sans problème et qu'il n'y a même pas de messages d'erreur sur la console...

Pouvez vous m'aidez, s'il vous plait? Je suis dépassé!
A voir également:

1 réponse

gachneux Messages postés 10 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 5 juin 2007
25 mai 2007 à 01:35
J'ai trouvé!
Il suffit de mettre le TreeBox en variable locale statique et puis de rajoutter un pointeur vers ce widget en return.
Si jamais ça peut servir à quelqu'un.
Merci quand même pour... heu... ben rien. Mais merci quand même!
0