summaryrefslogtreecommitdiff
path: root/src/gtkext/easygtk.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gtkext/easygtk.c')
-rw-r--r--src/gtkext/easygtk.c80
1 files changed, 80 insertions, 0 deletions
diff --git a/src/gtkext/easygtk.c b/src/gtkext/easygtk.c
index e97b2fd..7021b87 100644
--- a/src/gtkext/easygtk.c
+++ b/src/gtkext/easygtk.c
@@ -801,6 +801,86 @@ GtkWidget *qck_create_menu_separator(void)
+
+/******************************************************************************
+* *
+* Paramètres : container = composant GTK contenant d'autres composants. *
+* child = composant GTK à retrouver. *
+* *
+* Description : Détermine l'indice d'un composant dans un conteneur GTK. *
+* *
+* Retour : Indice du composant dans le conteneur ou -1 si non trouvé. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+gint find_contained_child_index(GtkContainer *container, GtkWidget *child)
+{
+ gint result; /* Indice à retourner */
+ GList *list; /* Liste de composants contenus*/
+ gint counter; /* Décompte progressif */
+ GList *iter; /* Boucle de parcours */
+
+ result = -1;
+
+ list = gtk_container_get_children(container);
+
+ counter = 0;
+
+ for (iter = g_list_first(list); iter != NULL; iter = g_list_next(iter))
+ {
+ if (iter->data == child)
+ {
+ result = counter;
+ break;
+ }
+
+ counter++;
+
+ }
+
+ g_list_free(list);
+
+ return result;
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : container = composant GTK contenant d'autres composants. *
+* n = indice du composant à retrouver. *
+* *
+* Description : Récupère le nième composant d'un conteneur GTK. *
+* *
+* Retour : Composant à la position donnée ou NULL en cas d'absence. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+GtkWidget *get_nth_contained_child(GtkContainer *container, guint n)
+{
+ GtkWidget *result; /* Résultat à retourner */
+ GList *list; /* Liste de composants contenus*/
+
+ result = NULL;
+
+ list = gtk_container_get_children(container);
+
+ result = g_list_nth_data(list, n);
+
+ if (result != NULL)
+ g_object_ref(G_OBJECT(result));
+
+ g_list_free(list);
+
+ return result;
+
+}
+
+
/******************************************************************************
* *
* Paramètres : parent = fenêtre parente pour la modalité d'affichage. *