X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpsppire-dialog.c;h=84f9e5de489459a86c702c912a32d7c882a3fc17;hb=b96c526de9a5b0ee767e058cefc42fae9e9b0dc5;hp=25af04c9ae110d9759f2478136f428e2906d1f76;hpb=0bd0098aec2ee31d9460c8d4c1263d0b5ccc4324;p=pspp diff --git a/src/ui/gui/psppire-dialog.c b/src/ui/gui/psppire-dialog.c index 25af04c9ae..84f9e5de48 100644 --- a/src/ui/gui/psppire-dialog.c +++ b/src/ui/gui/psppire-dialog.c @@ -19,9 +19,11 @@ #include #include +#include #include "psppire-dialog.h" #include "psppire-buttonbox.h" #include "psppire-selector.h" +#include static void psppire_dialog_class_init (PsppireDialogClass *); static void psppire_dialog_init (PsppireDialog *); @@ -34,6 +36,9 @@ enum {DIALOG_REFRESH, static guint signals [n_SIGNALS]; +static void psppire_dialog_buildable_init (GtkBuildableIface *iface); + + GType psppire_dialog_get_type (void) { @@ -54,8 +59,20 @@ psppire_dialog_get_type (void) (GInstanceInitFunc) psppire_dialog_init, }; + static const GInterfaceInfo buildable_info = + { + (GInterfaceInitFunc) psppire_dialog_buildable_init, + NULL, + NULL + }; + dialog_type = g_type_register_static (GTK_TYPE_WINDOW, "PsppireDialog", &dialog_info, 0); + + g_type_add_interface_static (dialog_type, + GTK_TYPE_BUILDABLE, + &buildable_info); + } return dialog_type; @@ -428,6 +445,8 @@ psppire_dialog_run (PsppireDialog *dialog) g_main_loop_run (dialog->loop); + g_main_loop_unref (dialog->loop); + return dialog->response; } @@ -473,3 +492,26 @@ psppire_dialog_set_valid_predicate (PsppireDialog *dialog, } + + + +static GObject * +get_internal_child (GtkBuildable *buildable, + GtkBuilder *builder, + const gchar *childname) +{ + PsppireDialog *dialog = PSPPIRE_DIALOG (buildable); + + if ( 0 == strcmp (childname, "hbox")) + return G_OBJECT (dialog->box); + + return NULL; +} + + + +static void +psppire_dialog_buildable_init (GtkBuildableIface *iface) +{ + iface->get_internal_child = get_internal_child; +}