27
27
#include "actions-types.h"
29
#include "core/gimpobject.h"
29
#include "core/gimp.h"
30
#include "core/gimpcontext.h"
31
32
#include "widgets/gimpmenufactory.h"
32
33
#include "widgets/gimpuimanager.h"
34
35
#include "menus/menus.h"
36
38
#include "debug-commands.h"
41
43
/* local function prototypes */
43
static void debug_dump_menus_recurse_menu (GtkWidget *menu,
45
static void debug_dump_menus_recurse_menu (GtkWidget *menu,
48
static void debug_print_qdata (GimpObject *object);
49
static void debug_print_qdata_foreach (GQuark key_id,
48
54
/* public functions */
51
57
debug_mem_profile_cmd_callback (GtkAction *action,
54
extern gboolean gimp_debug_memsize;
60
extern gboolean gimp_debug_memsize;
62
return_if_no_gimp (gimp, data);
56
64
gimp_debug_memsize = TRUE;
58
gimp_object_get_memsize (GIMP_OBJECT (data), NULL);
66
gimp_object_get_memsize (GIMP_OBJECT (gimp), NULL);
60
68
gimp_debug_memsize = FALSE;
71
79
list = g_list_next (list))
75
81
GimpMenuFactoryEntry *entry = list->data;
76
GimpItemFactory *item_factory;
78
item_factory = gimp_item_factory_from_path (entry->identifier);
84
managers = gimp_ui_managers_from_name (entry->identifier);
84
g_print ("%s\n", entry->identifier);
86
menu_item = gtk_item_factory_get_item (GTK_ITEM_FACTORY (item_factory),
87
entry->entries[0].entry.path);
91
GTK_IS_MENU (menu_item->parent))
92
debug_dump_menus_recurse_menu (menu_item->parent, 1,
88
GimpUIManager *manager = managers->data;
91
for (list = manager->registered_uis; list; list = g_list_next (list))
93
GimpUIManagerUIEntry *ui_entry = list->data;
95
if (GTK_IS_MENU_SHELL (ui_entry->widget))
97
g_print ("\n\n========================================\n"
99
"========================================\n\n",
100
entry->identifier, ui_entry->ui_path);
102
debug_dump_menus_recurse_menu (ui_entry->widget, 1,
139
debug_dump_attached_data_cmd_callback (GtkAction *action,
142
Gimp *gimp = action_data_get_gimp (data);
143
GimpContext *user_context = gimp_get_user_context (gimp);
145
debug_print_qdata (GIMP_OBJECT (gimp));
146
debug_print_qdata (GIMP_OBJECT (user_context));
129
150
/* private functions */
137
GtkItemFactory *item_factory;
138
GtkWidget *menu_item;
157
GtkWidget *menu_item;
145
164
for (list = GTK_MENU_SHELL (menu)->children; list; list = g_list_next (list))
147
166
menu_item = GTK_WIDGET (list->data);
149
168
if (GTK_IS_LABEL (GTK_BIN (menu_item)->child))
151
label = gtk_label_get_text (GTK_LABEL (GTK_BIN (menu_item)->child));
152
full_path = g_strconcat (path, "/", label, NULL);
154
item_factory = GTK_ITEM_FACTORY (gimp_item_factory_from_path (path));
155
help_page = g_object_get_data (G_OBJECT (menu_item),
170
label = gtk_label_get_text (GTK_LABEL (GTK_BIN (menu_item)->child));
171
full_path = g_strconcat (path, "/", label, NULL);
173
help_page = g_object_get_data (G_OBJECT (menu_item), "gimp-help-id");
158
174
help_page = g_strdup (help_page);
160
format_str = g_strdup_printf ("%%%ds%%%ds %%-20s %%s\n",
161
depth * 2, depth * 2 - 40);
163
"", label, "", help_page ? help_page : "");
176
format_str = g_strdup_printf ("%%%ds%%%ds %%-20s %%s\n",
177
depth * 2, depth * 2 - 40);
179
"", label, "", help_page ? help_page : "");
167
if (GTK_MENU_ITEM (menu_item)->submenu)
168
debug_dump_menus_recurse_menu (GTK_MENU_ITEM (menu_item)->submenu,
183
if (GTK_MENU_ITEM (menu_item)->submenu)
184
debug_dump_menus_recurse_menu (GTK_MENU_ITEM (menu_item)->submenu,
169
185
depth + 1, full_path);
193
debug_print_qdata (GimpObject *object)
195
g_print ("\nData attached to '%s':\n\n", gimp_object_get_name (object));
196
g_datalist_foreach (&G_OBJECT (object)->qdata,
197
debug_print_qdata_foreach,
203
debug_print_qdata_foreach (GQuark key_id,
207
g_print ("%s: %p\n", g_quark_to_string (key_id), data);
177
210
#endif /* ENABLE_DEBUG_MENU */