Mercurial > cropper
diff interface.c @ 15:7dbf3879939a
removed support.*
author | meillo@marmaro.de |
---|---|
date | Thu, 04 Mar 2010 19:16:10 +0100 |
parents | da18f2d4f92f |
children | 88b8856fccf5 |
line wrap: on
line diff
--- a/interface.c Thu Mar 04 18:31:28 2010 +0100 +++ b/interface.c Thu Mar 04 19:16:10 2010 +0100 @@ -10,7 +10,6 @@ #include "main.h" #include "callbacks.h" -#include "support.h" #define GLADE_HOOKUP_OBJECT(component,widget,name) \ g_object_set_data_full(G_OBJECT(component), name, \ @@ -19,6 +18,43 @@ #define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \ g_object_set_data(G_OBJECT(component), name, widget) + +/* + * This function returns a widget in a component created by Glade. + * Call it with the toplevel widget in the component (i.e. a window/dialog), + * or alternatively any widget in the component, and the name of the widget + * you want returned. + */ +GtkWidget* +lookup_widget(GtkWidget* widget, const gchar* widget_name) +{ + GtkWidget* parent; + GtkWidget* found_widget; + + for (;;) { + if (GTK_IS_MENU(widget)) { + parent = gtk_menu_get_attach_widget(GTK_MENU(widget)); + } else { + parent = widget->parent; + } + if (!parent) { + parent = (GtkWidget*) g_object_get_data(G_OBJECT(widget), "GladeParentKey"); + } + if (parent == NULL) { + break; + } + widget = parent; + } + + found_widget = (GtkWidget*) g_object_get_data(G_OBJECT(widget), widget_name); + if (!found_widget) { + g_warning("Widget not found: %s", widget_name); + } + return found_widget; +} + + + GtkWidget* create_cropper_window(void) {