mirror of https://github.com/GNOME/gimp.git
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:
parent
bfb8a94e19
commit
0279daed28
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue