diff options
Diffstat (limited to 'src/gtkext/gtkdockable.c')
-rw-r--r-- | src/gtkext/gtkdockable.c | 49 |
1 files changed, 40 insertions, 9 deletions
diff --git a/src/gtkext/gtkdockable.c b/src/gtkext/gtkdockable.c index c4291b7..26feb95 100644 --- a/src/gtkext/gtkdockable.c +++ b/src/gtkext/gtkdockable.c @@ -44,6 +44,9 @@ /* Procède à l'initialisation de l'interface de rassemblement. */ static void gtk_dockable_default_init(GtkDockableInterface *); +/* Applique un nouveau filtre sur un composant intégré. */ +static void gtk_dockable_update_filter(GtkDockable *, const char *); + /* ------------------------ FONCTIONS DE RECHERCHE INTEGREES ------------------------ */ @@ -151,13 +154,16 @@ static void gtk_dockable_default_init(GtkDockableInterface *iface) * * ******************************************************************************/ -const char *gtk_dockable_get_name(const GtkDockable *dockable) +char *gtk_dockable_get_name(const GtkDockable *dockable) { + char *result; /* Désignation à retourner */ GtkDockableIface *iface; /* Interface utilisée */ iface = GTK_DOCKABLE_GET_IFACE(dockable); - return iface->get_name(dockable); + result = iface->get_name(dockable); + + return result; } @@ -174,13 +180,16 @@ const char *gtk_dockable_get_name(const GtkDockable *dockable) * * ******************************************************************************/ -const char *gtk_dockable_get_desc(const GtkDockable *dockable) +char *gtk_dockable_get_desc(const GtkDockable *dockable) { + char *result; /* Description à retourner */ GtkDockableIface *iface; /* Interface utilisée */ iface = GTK_DOCKABLE_GET_IFACE(dockable); - return iface->get_desc(dockable); + result = iface->get_desc(dockable); + + return result; } @@ -191,7 +200,7 @@ const char *gtk_dockable_get_desc(const GtkDockable *dockable) * * * Description : Indique si le composant représenté à du contenu à fouiller. * * * -* Retour : - * +* Retour : Etat de la capacité. * * * * Remarques : - * * * @@ -234,7 +243,6 @@ GtkWidget *gtk_dockable_build_widget(GtkDockable *dockable) iface = GTK_DOCKABLE_GET_IFACE(dockable); widget = iface->get_widget(dockable); - g_object_ref(G_OBJECT(widget)); /* Encapsulation avec un panneau coulissant ? */ @@ -267,6 +275,30 @@ GtkWidget *gtk_dockable_build_widget(GtkDockable *dockable) /****************************************************************************** * * +* Paramètres : dockable = instance GTK dont l'interface est à manipuler. * +* filter = nouveau filtre à appliquer. * +* * +* Description : Applique un nouveau filtre sur un composant intégré. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +static void gtk_dockable_update_filter(GtkDockable *dockable, const char *filter) +{ + GtkDockableIface *iface; /* Interface utilisée */ + + iface = GTK_DOCKABLE_GET_IFACE(dockable); + + iface->update_filtered(dockable, filter); + +} + + +/****************************************************************************** +* * * Paramètres : dockable = instance GTK dont l'interface est à consulter. * * support = composant à partir duquel décrocher ou NULL. [OUT]* * * @@ -392,15 +424,14 @@ static GtkWidget *build_search_area(GtkDockable *dockable, GtkWidget **search) static void on_dockable_search_changed(GtkSearchEntry *entry, GtkDockable *dockable) { char *filter; /* Nouveau filtre à considérer */ - GtkDockableIface *iface; /* Interface utilisée */ filter = NULL; update_regex_on_search_entry_changed(entry, &filter); - iface = GTK_DOCKABLE_GET_IFACE(dockable); + gtk_dockable_update_filter(dockable, filter); - iface->update_filtered(dockable, filter); + free(filter); } |