app: Make Toolbox dock title complete

Make the Toolbox dock title complete, i.e. if the toolbox dock
contains Tool Options, the title will be "Toolbox - Tool Options".
This commit is contained in:
Martin Nordholts 2010-03-05 08:26:24 +01:00
parent bfb8a94e19
commit 0279daed28
3 changed files with 51 additions and 40 deletions

View File

@ -72,6 +72,7 @@ struct _GimpDockPrivate
static void gimp_dock_style_set (GtkWidget *widget,
GtkStyle *prev_style);
static void gimp_dock_destroy (GtkObject *object);
static gchar * gimp_dock_real_get_title (GimpDock *dock);
static void gimp_dock_real_book_added (GimpDock *dock,
GimpDockbook *dockbook);
static void gimp_dock_real_book_removed (GimpDock *dock,
@ -137,6 +138,7 @@ gimp_dock_class_init (GimpDockClass *klass)
widget_class->style_set = gimp_dock_style_set;
klass->get_title = gimp_dock_real_get_title;
klass->set_host_geometry_hints = NULL;
klass->book_added = gimp_dock_real_book_added;
klass->book_removed = gimp_dock_real_book_removed;
@ -241,6 +243,43 @@ gimp_dock_destroy (GtkObject *object)
GTK_OBJECT_CLASS (parent_class)->destroy (object);
}
static gchar *
gimp_dock_real_get_title (GimpDock *dock)
{
GString *title;
GList *list;
title = g_string_new (NULL);
for (list = gimp_dock_get_dockbooks (dock);
list;
list = g_list_next (list))
{
GimpDockbook *dockbook = list->data;
GList *children;
GList *child;
children = gtk_container_get_children (GTK_CONTAINER (dockbook));
for (child = children; child; child = g_list_next (child))
{
GimpDockable *dockable = child->data;
g_string_append (title, gimp_dockable_get_name (dockable));
if (g_list_next (child))
g_string_append (title, ", ");
}
g_list_free (children);
if (g_list_next (list))
g_string_append (title, " - ");
}
return g_string_free (title, FALSE);
}
static void
gimp_dock_real_book_added (GimpDock *dock,
GimpDockbook *dockbook)

View File

@ -54,7 +54,6 @@ struct _GimpMenuDockPrivate
static void gimp_menu_dock_style_set (GtkWidget *widget,
GtkStyle *prev_style);
static gchar *gimp_menu_dock_get_title (GimpDock *dock);
static void gimp_menu_dock_book_added (GimpDock *dock,
GimpDockbook *dockbook);
static void gimp_menu_dock_book_removed (GimpDock *dock,
@ -79,7 +78,6 @@ gimp_menu_dock_class_init (GimpMenuDockClass *klass)
widget_class->style_set = gimp_menu_dock_style_set;
dock_class->get_title = gimp_menu_dock_get_title;
dock_class->book_added = gimp_menu_dock_book_added;
dock_class->book_removed = gimp_menu_dock_book_removed;
@ -160,40 +158,3 @@ gimp_menu_dock_dockbook_changed (GimpDockbook *dockbook,
gimp_dock_invalidate_title (GIMP_DOCK (dock));
}
static gchar *
gimp_menu_dock_get_title (GimpDock *dock)
{
GString *title;
GList *list;
title = g_string_new (NULL);
for (list = gimp_dock_get_dockbooks (dock);
list;
list = g_list_next (list))
{
GimpDockbook *dockbook = list->data;
GList *children;
GList *child;
children = gtk_container_get_children (GTK_CONTAINER (dockbook));
for (child = children; child; child = g_list_next (child))
{
GimpDockable *dockable = child->data;
g_string_append (title, gimp_dockable_get_name (dockable));
if (g_list_next (child))
g_string_append (title, ", ");
}
g_list_free (children);
if (g_list_next (list))
g_string_append (title, " - ");
}
return g_string_free (title, FALSE);
}

View File

@ -769,7 +769,18 @@ gimp_toolbox_drag_drop (GtkWidget *widget,
static gchar *
gimp_toolbox_get_title (GimpDock *dock)
{
return g_strdup (_("Toolbox"));
GString *title = g_string_new (_("Toolbox"));
gchar *dock_title = GIMP_DOCK_CLASS (parent_class)->get_title (dock);
if (dock_title && strlen (dock_title) > 0)
{
g_string_append (title, " - ");
g_string_append (title, dock_title);
}
g_free (dock_title);
return g_string_free (title, FALSE /*free_segment*/);
}
static void