X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpsppire-dialog.c;h=854380036d6faf41fac477e1c12b6e9fea9a68b4;hb=df63b7b8aec3bd284ba2c4e62f1fc30924fe2c5b;hp=84f9e5de489459a86c702c912a32d7c882a3fc17;hpb=deb4fd96c0c171fc8eb64f7f1e7f5c2af4931416;p=pspp diff --git a/src/ui/gui/psppire-dialog.c b/src/ui/gui/psppire-dialog.c index 84f9e5de48..854380036d 100644 --- a/src/ui/gui/psppire-dialog.c +++ b/src/ui/gui/psppire-dialog.c @@ -23,6 +23,7 @@ #include "psppire-dialog.h" #include "psppire-buttonbox.h" #include "psppire-selector.h" +#include "psppire-conf.h" #include static void psppire_dialog_class_init (PsppireDialogClass *); @@ -264,6 +265,39 @@ delete_event_callback (GtkWidget *w, GdkEvent *e, gpointer data) } +static gboolean +configure_event_callback (GtkDialog *dialog, + GdkEventConfigure *event, gpointer data) +{ + gchar *base = NULL; + + PsppireConf *conf = psppire_conf_new (); + + if ( ! GTK_WIDGET_MAPPED (dialog)) + return FALSE; + + g_object_get (dialog, "name", &base, NULL); + + psppire_conf_save_window_geometry (conf, base, event); + + return FALSE; +} + + +static void +on_realize (GtkWindow *dialog, gpointer data) +{ + PsppireConf *conf = psppire_conf_new (); + + const gchar *base = NULL; + + g_object_get (dialog, "name", &base, NULL); + + psppire_conf_set_window_geometry (conf, base, dialog); +} + + + static void psppire_dialog_init (PsppireDialog *dialog) { @@ -282,13 +316,24 @@ psppire_dialog_init (PsppireDialog *dialog) g_value_unset (&value); - g_signal_connect (G_OBJECT (dialog), "delete-event", + g_signal_connect (dialog, "delete-event", G_CALLBACK (delete_event_callback), dialog); + g_signal_connect (dialog, "configure-event", + G_CALLBACK (configure_event_callback), + dialog); + + g_signal_connect (dialog, "realize", + G_CALLBACK (on_realize), + dialog); + + gtk_window_set_type_hint (GTK_WINDOW (dialog), GDK_WINDOW_TYPE_HINT_DIALOG); + g_object_set (dialog, "icon-name", "psppicon", NULL); + gtk_widget_show_all (dialog->box); } @@ -298,7 +343,8 @@ psppire_dialog_new (void) { PsppireDialog *dialog ; - dialog = g_object_new (psppire_dialog_get_type (), NULL); + dialog = g_object_new (psppire_dialog_get_type (), + NULL); return GTK_WIDGET (dialog) ; }