summaryrefslogtreecommitdiff
path: root/src/gtkext/gtkdockpanel.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gtkext/gtkdockpanel.c')
-rw-r--r--src/gtkext/gtkdockpanel.c62
1 files changed, 34 insertions, 28 deletions
diff --git a/src/gtkext/gtkdockpanel.c b/src/gtkext/gtkdockpanel.c
index 1d9548f..3b74fbb 100644
--- a/src/gtkext/gtkdockpanel.c
+++ b/src/gtkext/gtkdockpanel.c
@@ -58,13 +58,13 @@ static void gtk_dock_panel_drag_end_cb(GtkDockPanel *, GdkDragContext *, gpointe
//static void gtk_dock_panel_drag_data_delete_cb(GtkDockPanel *, GdkDragContext *, gpointer);
/* Ajoute un paquet d'informations à la station dockable. */
-static void _gtk_dock_panel_add_item(GtkDockPanel *, GtkDockItem *, gint);
+static void _gtk_dock_panel_add_item(GtkDockPanel *, GDockItem *, gint);
/* Remplace le panneau d'un membre actuellement affiché. */
-static void on_dock_item_content_changed(GtkDockItem *, GtkWidget *, GtkWidget *, GtkDockPanel *);
+static void on_dock_item_content_changed(GDockItem *, GtkWidget *, GtkWidget *, GtkDockPanel *);
/* Supprime un paquet d'informations à la station dockable. */
-static void _gtk_dock_panel_remove_item(GtkDockPanel *, GtkDockItem *, GtkWidget *);
+static void _gtk_dock_panel_remove_item(GtkDockPanel *, GDockItem *, GtkWidget *);
/* Met à jour le titre du support de panneaux dockables. */
static gboolean gtk_dock_panel_update_title(GtkNotebook *, GtkNotebookPage *, guint, gpointer);
@@ -130,7 +130,7 @@ static void gtk_dock_panel_class_init(GtkDockPanelClass *class)
G_STRUCT_OFFSET(GtkDockPanelClass, switch_item),
NULL, NULL,
g_cclosure_user_marshal_VOID__OBJECT,
- G_TYPE_NONE, 1, GTK_TYPE_DOCK_ITEM);
+ G_TYPE_NONE, 1, G_TYPE_DOCK_ITEM);
}
@@ -338,7 +338,7 @@ static gboolean gtk_dock_panel_drag_drop_cb(GtkDockPanel *dpanel, GdkDragContext
static void gtk_dock_panel_drag_data_received_cb(GtkDockPanel *dpanel, GdkDragContext *context, gint x, gint y, GtkSelectionData *selection, guint target, guint time, gpointer data)
{
- GtkDockItem *ditem; /* Elément transféré */
+ GDockItem *ditem; /* Elément transféré */
gboolean success; /* Bilan de l'opération */
success = FALSE;
@@ -347,7 +347,7 @@ static void gtk_dock_panel_drag_data_received_cb(GtkDockPanel *dpanel, GdkDragCo
switch (target)
{
case TARGET_DOCKITEM:
- success = (selection->length == sizeof(GtkDockItem *));
+ success = (selection->length == sizeof(GDockItem *));
printf(" ## DRAG DATA RCV ## %p\n", dpanel);
@@ -356,9 +356,9 @@ static void gtk_dock_panel_drag_data_received_cb(GtkDockPanel *dpanel, GdkDragCo
if (success)
{
- ditem = GTK_DOCK_ITEM(*((GtkDockItem **)selection->data));
+ ditem = G_DOCK_ITEM(*((GDockItem **)selection->data));
- printf(" :: get ? %p - %d\n", ditem, GTK_IS_DOCK_ITEM(ditem));
+ printf(" :: get ? %p - %d\n", ditem, G_IS_DOCK_ITEM(ditem));
gtk_dock_panel_remove_item(gtk_drag_get_source_widget(context), ditem);
gtk_dock_panel_add_item(dpanel, ditem);
@@ -480,7 +480,7 @@ static void gtk_dock_panel_drag_begin_cb(GtkDockPanel *dpanel, GdkDragContext *c
static void gtk_dock_panel_drag_data_get_cb(GtkDockPanel *dpanel, GdkDragContext *context, GtkSelectionData *selection, guint target, guint time, gpointer data)
{
gint current; /* Indice de l'onglet courant */
- GtkDockItem *ditem; /* Elément à transférer */
+ GDockItem *ditem; /* Elément à transférer */
switch (target)
{
@@ -490,14 +490,14 @@ static void gtk_dock_panel_drag_data_get_cb(GtkDockPanel *dpanel, GdkDragContext
current = gtk_notebook_get_current_page(dpanel->notebook);
- ditem = GTK_DOCK_ITEM(g_list_nth_data(dpanel->ditems, current));
+ ditem = G_DOCK_ITEM(g_list_nth_data(dpanel->ditems, current));
printf(" %d nth item is %p\n", current, ditem);
- printf(" :: set ? %p - %d\n", ditem, GTK_IS_DOCK_ITEM(ditem));
+ printf(" :: set ? %p - %d\n", ditem, G_IS_DOCK_ITEM(ditem));
gtk_selection_data_set(selection, selection->target,
- 32, (guchar *)&ditem, sizeof(GtkDockItem *));
+ 32, (guchar *)&ditem, sizeof(GDockItem *));
break;
@@ -540,9 +540,9 @@ static void gtk_dock_panel_drag_end_cb(GtkDockPanel *dpanel, GdkDragContext *con
* *
******************************************************************************/
-GtkDockItem *gtk_dock_panel_item_from_name(GtkDockPanel *dpanel, const char *name)
+GDockItem *gtk_dock_panel_item_from_name(GtkDockPanel *dpanel, const char *name)
{
- GtkDockItem *result; /* Trouvaille à remonter */
+ GDockItem *result; /* Trouvaille à remonter */
GList *iter; /* Boucle de parcours */
const char *tmp; /* Autre nom à consulter */
@@ -550,10 +550,10 @@ GtkDockItem *gtk_dock_panel_item_from_name(GtkDockPanel *dpanel, const char *nam
for (iter = dpanel->ditems; iter != NULL && result == NULL; iter = g_list_next(iter))
{
- tmp = gtk_dock_item_get_name(GTK_DOCK_ITEM(iter->data));
+ tmp = g_dock_item_get_name(G_DOCK_ITEM(iter->data));
if (strcmp(name, tmp) == 0)
- result = GTK_DOCK_ITEM(iter->data);
+ result = G_DOCK_ITEM(iter->data);
}
@@ -575,7 +575,7 @@ GtkDockItem *gtk_dock_panel_item_from_name(GtkDockPanel *dpanel, const char *nam
* *
******************************************************************************/
-void gtk_dock_panel_add_item(GtkDockPanel *dpanel, GtkDockItem *ditem)
+void gtk_dock_panel_add_item(GtkDockPanel *dpanel, GDockItem *ditem)
{
_gtk_dock_panel_add_item(dpanel, ditem, -1);
@@ -596,7 +596,7 @@ void gtk_dock_panel_add_item(GtkDockPanel *dpanel, GtkDockItem *ditem)
* *
******************************************************************************/
-static void _gtk_dock_panel_add_item(GtkDockPanel *dpanel, GtkDockItem *ditem, gint position)
+static void _gtk_dock_panel_add_item(GtkDockPanel *dpanel, GDockItem *ditem, gint position)
{
GtkWidget *label; /* Etiquette d'onglet */
@@ -604,10 +604,10 @@ static void _gtk_dock_panel_add_item(GtkDockPanel *dpanel, GtkDockItem *ditem, g
printf("[add %p to %p] list len :: %u\n", ditem, dpanel, g_list_length(dpanel->ditems));
- label = gtk_label_new(gtk_dock_item_get_name(ditem));
+ label = gtk_label_new(g_dock_item_get_name(ditem));
gtk_widget_show(label);
- gtk_notebook_insert_page(dpanel->notebook, gtk_dock_item_get_panel(ditem), label, position);
+ gtk_notebook_insert_page(dpanel->notebook, g_dock_item_get_panel(ditem), label, position);
gtk_notebook_set_show_tabs(dpanel->notebook, g_list_length(dpanel->ditems) > 1);
@@ -631,7 +631,7 @@ static void _gtk_dock_panel_add_item(GtkDockPanel *dpanel, GtkDockItem *ditem, g
* *
******************************************************************************/
-static void on_dock_item_content_changed(GtkDockItem *ditem, GtkWidget *old, GtkWidget *new, GtkDockPanel *dpanel)
+static void on_dock_item_content_changed(GDockItem *ditem, GtkWidget *old, GtkWidget *new, GtkDockPanel *dpanel)
{
gint position; /* Position de l'onglet à maj */
@@ -639,9 +639,13 @@ static void on_dock_item_content_changed(GtkDockItem *ditem, GtkWidget *old, Gtk
g_signal_handlers_disconnect_by_func(dpanel->notebook, G_CALLBACK(gtk_dock_panel_update_title), dpanel);
+ //g_object_ref(G_OBJECT(ditem));
+
_gtk_dock_panel_remove_item(dpanel, ditem, old);
_gtk_dock_panel_add_item(dpanel, ditem, position);
+ //g_object_unref(G_OBJECT(ditem));
+
gtk_notebook_set_current_page(dpanel->notebook, position);
g_signal_connect(dpanel->notebook, "switch-page", G_CALLBACK(gtk_dock_panel_update_title), dpanel);
@@ -663,7 +667,7 @@ static void on_dock_item_content_changed(GtkDockItem *ditem, GtkWidget *old, Gtk
* *
******************************************************************************/
-void gtk_dock_panel_remove_item(GtkDockPanel *dpanel, GtkDockItem *ditem)
+void gtk_dock_panel_remove_item(GtkDockPanel *dpanel, GDockItem *ditem)
{
gint pos; /* Position de l'élément visé */
@@ -675,11 +679,13 @@ void gtk_dock_panel_remove_item(GtkDockPanel *dpanel, GtkDockItem *ditem)
printf("[rem %p from %p] list len :: %u\n", ditem, dpanel, g_list_length(dpanel->ditems));
- gtk_widget_ref(gtk_dock_item_get_panel(ditem));
- gtk_container_remove(GTK_CONTAINER(dpanel->notebook), gtk_dock_item_get_panel(ditem));
+ gtk_widget_ref(g_dock_item_get_panel(ditem));
+ gtk_container_remove(GTK_CONTAINER(dpanel->notebook), g_dock_item_get_panel(ditem));
//gtk_notebook_remove_page(dpanel->notebook, pos);
+ g_object_unref(G_OBJECT(ditem));
+
gtk_notebook_set_show_tabs(dpanel->notebook, g_list_length(dpanel->ditems) > 1);
}
@@ -699,7 +705,7 @@ void gtk_dock_panel_remove_item(GtkDockPanel *dpanel, GtkDockItem *ditem)
* *
******************************************************************************/
-static void _gtk_dock_panel_remove_item(GtkDockPanel *dpanel, GtkDockItem *ditem, GtkWidget *panel)
+static void _gtk_dock_panel_remove_item(GtkDockPanel *dpanel, GDockItem *ditem, GtkWidget *panel)
{
gint pos; /* Position de l'élément visé */
@@ -738,7 +744,7 @@ static void _gtk_dock_panel_remove_item(GtkDockPanel *dpanel, GtkDockItem *ditem
static gboolean gtk_dock_panel_update_title(GtkNotebook *notebook, GtkNotebookPage *page, guint index, gpointer data)
{
- GtkDockItem *ditem; /* Elément nouvellement actif */
+ GDockItem *ditem; /* Elément nouvellement actif */
const gchar *desc; /* Description à afficher */
char *str; /* Valeur finale reconstituée */
@@ -751,9 +757,9 @@ static gboolean gtk_dock_panel_update_title(GtkNotebook *notebook, GtkNotebookPa
//printf(" >> index :: %u vs %d\n", index, gtk_notebook_get_current_page(GTK_DOCK_PANEL(data)->notebook));
- ditem = GTK_DOCK_ITEM(g_list_nth_data(GTK_DOCK_PANEL(data)->ditems, index));
+ ditem = G_DOCK_ITEM(g_list_nth_data(GTK_DOCK_PANEL(data)->ditems, index));
- desc = gtk_dock_item_get_desc(ditem);
+ desc = g_dock_item_get_desc(ditem);
str = calloc(strlen("<b>") + strlen(desc) + strlen("</b>") + 1, sizeof(char));