summaryrefslogtreecommitdiff
path: root/src/gtkext/gtkdockstation.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gtkext/gtkdockstation.c')
-rw-r--r--src/gtkext/gtkdockstation.c40
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);
+
+}
+
/******************************************************************************
* *