GtkTreeSelection
GtkTreeSelection — Objet de sélection pour
GtkTreeView
|
|
Synopsis
#include <gtk/gtk.h>
GtkTreeSelection; gboolean (*GtkTreeSelectionFunc) (GtkTreeSelection *selection, GtkTreeModel *model, GtkTreePath *path, gboolean path_currently_selected, gpointer data); void (*GtkTreeSelectionForeachFunc) (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data); void gtk_tree_selection_set_mode (GtkTreeSelection *selection, GtkSelectionMode type); GtkSelectionMode gtk_tree_selection_get_mode (GtkTreeSelection *selection); void gtk_tree_selection_set_select_function (GtkTreeSelection *selection, GtkTreeSelectionFunc func, gpointer data, GtkDestroyNotify destroy); gpointer gtk_tree_selection_get_user_data (GtkTreeSelection *selection); GtkTreeView* gtk_tree_selection_get_tree_view (GtkTreeSelection *selection); gboolean gtk_tree_selection_get_selected (GtkTreeSelection *selection, GtkTreeModel **model, GtkTreeIter *iter); void gtk_tree_selection_selected_foreach (GtkTreeSelection *selection, GtkTreeSelectionForeachFunc func, gpointer data); GList* gtk_tree_selection_get_selected_rows (GtkTreeSelection *selection, GtkTreeModel **model); gint gtk_tree_selection_count_selected_rows (GtkTreeSelection *selection); void gtk_tree_selection_select_path (GtkTreeSelection *selection, GtkTreePath *path); void gtk_tree_selection_unselect_path (GtkTreeSelection *selection, GtkTreePath *path); gboolean gtk_tree_selection_path_is_selected (GtkTreeSelection *selection, GtkTreePath *path); void gtk_tree_selection_select_iter (GtkTreeSelection *selection, GtkTreeIter *iter); void gtk_tree_selection_unselect_iter (GtkTreeSelection *selection, GtkTreeIter *iter); gboolean gtk_tree_selection_iter_is_selected (GtkTreeSelection *selection, GtkTreeIter *iter); void gtk_tree_selection_select_all (GtkTreeSelection *selection); void gtk_tree_selection_unselect_all (GtkTreeSelection *selection); void gtk_tree_selection_select_range (GtkTreeSelection *selection, GtkTreePath *start_path, GtkTreePath *end_path); void gtk_tree_selection_unselect_range (GtkTreeSelection *selection, GtkTreePath *start_path, GtkTreePath *end_path);
|
Description
L'objet GtkTreeSelection est utilisé pour gérer la sélection dans un widget GtkTreeView. L'objet GtkTreeSelection est automatiquement créé en même temps qu'un nouveau widget GtkTreeView,
et il ne peut pas exister indépendemment de ce widget. La
propreté du code et de l'Api est la raison principale de
l'éxistance des l'objets GtkTreeSelection. Ainsi, il n'y a pas de raison conceptuelle pour que toutes ces fonctions ne soient pas des méthodes du widget GtkTreeView au lieu d'être des fonctions séparées.
L'objet GtkTreeSelection est obtenu à parir d' un GtkTreeView
en appelant gtk_tree_view_get_selection()
.
Il peut être manipulé pour contrôler les status de
sélection d'un arbre, aussi bien pour sélectionner ou
désélectionner des lignes. La sélection
dépend entièrement de la partie visualiseur. Par
conséquent, des visualisateurs multiples peuvent afficher une
sélections totalement différente pour le même
magasin.
En revanche, vous ne pourrez pas changer la sélection d'une
rangée d'un magasin qui n'est pas affichée par un
visualisateur sans d'abord déployer ses parents.
Une chose importante à se rappeler quand on gère une sélection de visualisateur est que le signal "changed"
est plutôt une "marque". En effet, le signal peut être
émis quand la rangée sélectionnée change,
mais "::changed" peut également être émis quand
rien ne se passe (la plupart du temps, c'est le résultat d'un
appel de select_row par les programmateurs sur une rangée
déjà sélectionnée).
Détails
GtkTreeSelection
typedef struct _GtkTreeSelection GtkTreeSelection;
|
GtkTreeSelectionFunc
()
Fonction utilisée par gtk_tree_selection_set_select_function()
pour déterminer si
oui ou non une rangée peut être
sélectionnée. Elle est appelée chaque fois que
l'état d'une rangée doit changer. Si TRUE
est retournée cela indique à la selection
que la voie est libre pour changer la sélection.
selection : |
Une GtkTreeSelection
|
model : |
Un GtkTreeModel sui sera visualisé.
|
path : |
The GtkTreePath of the row
in question
|
path_currently_selected : |
TRUE , si le chemin est la sélection courante.
|
data : |
données utilisateur |
Retourne : |
TRUE , si l'état de la sélection de la rangé peut être basculé.
|
GtkTreeSelectionForeachFunc
()
Fonction utilisée par gtk_tree_selection_selected_foreach()
pour
répertorier toutes les rangées
sélectionnées. Elle peut être appelée sur
toutes les rangées sélectionnées dans le
visualiseur.
gtk_tree_selection_set_mode
()
Définit le mode de sélection. Si le type précédent était
GTK_SELECTION_MULTIPLE,
alors l'ancre ?(anchor) reste sélectionnée si elle est déjà sélectionnée.
gtk_tree_selection_set_select_function
()
Définit la fonction de sélection. Si elle est
définie, cette fonction est appelée avant toute
sélection ou désélection d'embranchement
et permettant ainsi un contrôle des embranchement choisis.
La focntion de sélection doit retourner TRUE
si l'état de l'embranchement peut être basculé et FALSE
si cet état doit rester inchangé.
selection : |
Une GtkTreeSelection.
|
func : |
La fonction de sélection. |
data : |
Données de la fonction de sélection.
|
destroy : |
Fonction de déstruction pour les données utilisateur. Peut être NULL.
|
gtk_tree_selection_get_user_data
()
Retourne les données utilisateur de la fonction de sélection.
gtk_tree_selection_get_tree_view
()
Retourne le visualisateur de l'arbre associé à selection
.
gtk_tree_selection_get_selected
()
Définit l' iter
de l'embranchement courant sélectionné si selection
est défini à
GTK_SELECTION_SINGLE ou GTK_SELECTION_BROWSE. iter
peut être NULL si vous voulez seulement tester si selection
comprends des embranchement sélectionnés. model
est
complété avec le magasin courant comme il se doit.
Cette fnction ne fonctionne pas si vous utilisez selection
défini à GTK_SELECTION_MULTIPLE.
gtk_tree_selection_selected_foreach
()
Appelle un fonction pour chaque embranchement
sélectionné. Notez que vous ne pouvez pas modifier
l'arbre ou une de ses sélections à partir de cette
fonction. Pour cela
gtk_tree_selection_get_selected_rows()
peut être plus utile.
selection : |
Une GtkTreeSelection.
|
func : |
Fonction à appeler pour chaque embranchement sélectionné.
|
data : |
Données utilisateur passées à la fonction.
|
gtk_tree_selection_get_selected_rows
()
Crée la liste des chemins de chaque rangée
sélectionnée. De plus, si vous avez plannifié de
modifier le magasin après l'appelle de cette fonction, vous
désirerez peut être convertir la liste retournée en
liste de GtkTreeRowReferences. Vous pourrez faire cela en utilisant gtk_tree_row_reference_new()
.
Pour libérer la valeur retournée utilisez :
g_list_foreach (list, gtk_tree_path_free, NULL); g_list_free (list);
|
Depuis 2.2
gtk_tree_selection_count_selected_rows
()
Retourne le nombre de rangées qui sont sélectionnées dans l'arbre tree
.
Depuis 2.2
gtk_tree_selection_select_path
()
Sélectionne la rangée du chemin path
.
gtk_tree_selection_unselect_path
()
Déséelctionne la rangée du chemin path
.
gtk_tree_selection_path_is_selected
()
Retourne TRUE
si la rangée désignée par le chemin path
est sélectionnée. Si path
ne pointe pas sur une localisation valide alors FALSE
sera retourné.
gtk_tree_selection_select_iter
()
Sélectionne un itérateur précis.
gtk_tree_selection_unselect_iter
()
Désélectionne un itérateur précis.
gtk_tree_selection_iter_is_selected
()
Retourne TRUE
si la rangée de iter
est sélectionnée.
gtk_tree_selection_select_all
()
Sélectionne tous les embranchements. selection
doit être défini au mode GTK_SELECTION_MULTIPLE.
gtk_tree_selection_unselect_all
()
Désélectionne tous les ambranchements.
gtk_tree_selection_select_range
()
Sélectionne l'ensemble des embranchements inclus entre un chemin de début start_path
et un chemin de fin inclusif end_path
.
selection
doit être défini au mode GTK_SELECTION_MULTIPLE.
selection : |
Une GtkTreeSelection.
|
start_path : |
Embranchement initial de la rangée.
|
end_path : |
Embranchement final de la rangée.
|
gtk_tree_selection_unselect_range
()
Désélectionne l'ensemble des embranchements inclus entre un chemin de début start_path
et un chemin de fin inclusif end_path
.
selection : |
Une GtkTreeSelection.
|
start_path : |
Embranchement initial de la rangée.
|
end_path : |
Embranchement final de la rangée.
|
Depuis 2.2
Détails des signaux
Le signal
"changed"
Est émis chaque fois que la sélection a
(potentiellement) changée. Notez que ce signal est plus une
"marque". Il est émis quand un ensemble de rangées
est sélectionné ùais peut être
occasionnellement émis quand rien ne s'est passé.
treeselection : |
Objet qui reçoit le signal
|
user_data : |
données utilisateur définies quand le gestionnaire de signal est connecté. |
Voir Aussi
GtkTreeView, GtkTreeViewColumn, GtkTreeDnd, GtkTreeMode,
GtkTreeSortable, GtkTreeModelSort, GtkListStore, GtkTreeStore, GtkCellRenderer, GtkCellEditable, GtkCellRendererPixbuf, GtkCellRendererText, GtkCellRendererToggle