[GTK/C]Monter un élément de gtk_list_store
Résolu/Fermé
drazx974
Messages postés
48
Date d'inscription
mardi 16 décembre 2008
Statut
Membre
Dernière intervention
13 octobre 2009
-
23 févr. 2009 à 08:27
drazx974 Messages postés 48 Date d'inscription mardi 16 décembre 2008 Statut Membre Dernière intervention 13 octobre 2009 - 6 mars 2009 à 11:48
drazx974 Messages postés 48 Date d'inscription mardi 16 décembre 2008 Statut Membre Dernière intervention 13 octobre 2009 - 6 mars 2009 à 11:48
A voir également:
- [GTK/C]Monter un élément de gtk_list_store
- Monter une image iso - Guide
- Element introuvable il n'existe plus dans l'ordinateur - Guide
- Gtk for net - Forum Programmation
- Open element - Télécharger - HTML
- Jason a réalisé un photo-montage pour tromper et amuser ses camarades. il a modifié un élément sur une photo de neil armstrong marchant sur la lune. lequel ? - Forum Jeux vidéo
3 réponses
drazx974
Messages postés
48
Date d'inscription
mardi 16 décembre 2008
Statut
Membre
Dernière intervention
13 octobre 2009
8
25 févr. 2009 à 13:06
25 févr. 2009 à 13:06
up please
drazx974
Messages postés
48
Date d'inscription
mardi 16 décembre 2008
Statut
Membre
Dernière intervention
13 octobre 2009
8
27 févr. 2009 à 07:41
27 févr. 2009 à 07:41
personne ne sais faire monter des éléments en GTK ? :'(
drazx974
Messages postés
48
Date d'inscription
mardi 16 décembre 2008
Statut
Membre
Dernière intervention
13 octobre 2009
8
6 mars 2009 à 11:48
6 mars 2009 à 11:48
J'ai trouvé la solution mais ce n'est pas aussi simple que pour le bouton descendre.
le principe c'est d'avoir 2 iterateurs un qui va se déplacer pour compter et l'autre pour comparer et descendre jusqu'à sa nouvelle place (pMove, pOrig).
on met pMove en haut de liste puis on le descend jusqu'a trouver celui d'origine en incrémentant un compteur à chaque boucle.
ensuite on déplace pOrig en haut de liste et si l'itérateur d'origine est en seconde place on le laisse en haut de liste sinon on le descend autant de fois qu'à donné le compteur en comparant avec un second compteur pour savoir ou on en est.
le code :
le principe c'est d'avoir 2 iterateurs un qui va se déplacer pour compter et l'autre pour comparer et descendre jusqu'à sa nouvelle place (pMove, pOrig).
on met pMove en haut de liste puis on le descend jusqu'a trouver celui d'origine en incrémentant un compteur à chaque boucle.
ensuite on déplace pOrig en haut de liste et si l'itérateur d'origine est en seconde place on le laisse en haut de liste sinon on le descend autant de fois qu'à donné le compteur en comparant avec un second compteur pour savoir ou on en est.
le code :
GtkTreeSelection* selection; GtkTreeIter position; GtkTreeIter pMove; GtkTreeIter pOrig; GtkTreeModel *treeView; int compteur; int compteurbis; selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(n->tree)); //recupère la selection, n est un struct de mon programme gtk_tree_selection_set_mode(selection, GTK_SELECTION_SINGLE); //mode de selection treeView = GTK_TREE_MODEL(n->tree); if(gtk_tree_selection_get_selected (selection, &treeView, &pOrig)) //si il y a une selection { gtk_tree_model_get_iter_first(GTK_TREE_MODEL(n->store), &pMove); //placer l'iterateur déplaceant en haut de liste compteur = 0; while(pMove.user_data != pOrig.user_data) { gtk_tree_model_iter_next(treeView, &pMove); compteur++; } gtk_list_store_move_after(n->store, &pOrig, NULL); //placer l'iterateur original en haut de liste position = pOrig; compteurbis = 0; if(compteur > 1) //si l'original n'est pas en seconde position { while(compteurbis < compteur) //le faire descendre autant de fois que compteur - 1 { compteurbis++; gtk_tree_model_iter_next(treeView, &position); gtk_list_store_move_before(n->store, &pOrig, &position); } } }