New function to obtain a list of toplevel widgets constructed by the ui

Fri Jan  9 00:34:57 2004  Matthias Clasen  <maclas@gmx.de>

	* gtk/gtkuimanager.h:
	* gtk/gtkuimanager.c (gtk_ui_manager_get_toplevels): New function to
	obtain a list of toplevel widgets constructed by the ui manager.

	* gtk/gtkuimanager.h (GtkUIManagerItemType): Change to flags, so that
	the values can be combined for gtk_ui_manager_get_toplevels().

	* tests/testmerge.c: Add a "Dump toplevels" button to test
	gtk_ui_manager_get_toplevels().
This commit is contained in:
Matthias Clasen
2004-01-08 23:37:34 +00:00
committed by Matthias Clasen
parent ecceb20a8b
commit f2bb20cc15
10 changed files with 168 additions and 11 deletions

View File

@ -34,6 +34,27 @@ dump_accels (void)
gtk_accel_map_save_fd (STDOUT_FILENO);
}
static void
print_toplevel (GtkWidget *widget, gpointer user_data)
{
g_print ("%s\n", G_OBJECT_TYPE_NAME (widget));
}
static void
dump_toplevels (GtkWidget *button,
GtkUIManager *merge)
{
GSList *toplevels;
toplevels = gtk_ui_manager_get_toplevels (merge,
GTK_UI_MANAGER_MENUBAR |
GTK_UI_MANAGER_TOOLBAR |
GTK_UI_MANAGER_POPUP);
g_slist_foreach (toplevels, print_toplevel, NULL);
g_slist_free (toplevels);
}
static void
toggle_tearoffs (GtkWidget *button,
GtkUIManager *merge)
@ -652,6 +673,10 @@ main (int argc, char **argv)
g_signal_connect (button, "clicked", G_CALLBACK (dump_tree), merge);
gtk_box_pack_end (GTK_BOX (vbox), button, FALSE, FALSE, 0);
button = gtk_button_new_with_label ("Dump Toplevels");
g_signal_connect (button, "clicked", G_CALLBACK (dump_toplevels), merge);
gtk_box_pack_end (GTK_BOX (vbox), button, FALSE, FALSE, 0);
button = gtk_button_new_with_label ("Dump Accels");
g_signal_connect (button, "clicked", G_CALLBACK (dump_accels), NULL);
gtk_box_pack_end (GTK_BOX (vbox), button, FALSE, FALSE, 0);