diff options
Diffstat (limited to 'src/gtkext/gtkdockstation.c')
-rw-r--r-- | src/gtkext/gtkdockstation.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/gtkext/gtkdockstation.c b/src/gtkext/gtkdockstation.c index 4b837bc..3e33f2b 100644 --- a/src/gtkext/gtkdockstation.c +++ b/src/gtkext/gtkdockstation.c @@ -228,6 +228,46 @@ void gtk_dock_panel_add_widget(GtkDockStation *station, GtkWidget *widget, const } +/****************************************************************************** +* * +* Paramètres : station = plateforme GTK à compléter. * +* widget = nouvel élément à intégrer. * +* * +* Description : Change le contenu de l'onglet courant uniquement. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +void gtk_dock_panel_change_active_widget(GtkDockStation *station, GtkWidget *widget) +{ + gint index; /* Indice de l'onglet actif */ + GtkWidget *old; /* Ancien composant */ + GtkWidget *label; /* Etiquette d'onglet */ + + index = gtk_notebook_get_current_page(station->notebook); + + g_signal_handlers_disconnect_by_func(station->notebook, + G_CALLBACK(gtk_dock_station_switch_panel), station); + + old = gtk_notebook_get_nth_page(station->notebook, index); + label = gtk_notebook_get_tab_label(station->notebook, old); + + gtk_widget_ref(old); + gtk_widget_ref(label); + + gtk_notebook_remove_page(station->notebook, index); + gtk_notebook_insert_page(station->notebook, widget, label, index); + + gtk_widget_unref(label); + + g_signal_connect(station->notebook, "switch-page", + G_CALLBACK(gtk_dock_station_switch_panel), station); + +} + /****************************************************************************** * * |