From c3e3138488e6f46fa632ec0f6b9f4e7c2d5a6d2e Mon Sep 17 00:00:00 2001 From: Martin Kretzschmar Date: Thu, 17 Jul 2003 18:06:14 +0000 Subject: Add gpdf-persist-file.cc. * po/POTFILES.in: Add gpdf-persist-file.cc. * xpdf/gpdf-persist-file.cc (gpdf_persist_file_class_init) (impl_bonobo_persist_file_load): emit (new) loading-failed signal if something goes wrong during load. * xpdf/gpdf-persist-file.h: add slot for loading-failed. * xpdf/gpdf-marshal.list: add VOID:STRING. * xpdf/gpdf-links-canvas-layer.cc: fix include (thanks Remi). * xpdf/gpdf-control.cc (gpdf_control_setup_persist) (gpdf_control_destroy): on loading-failed signal, display error alert. * xpdf/eog-hig-dialog.h, xpdf/eog-hig-dialog.c: copied from eog; HIG conforming alert dialog. * xpdf/Makefile.am (libgpdf_a_SOURCES): build eog-hig-dialog * NEWS: updated. --- (limited to 'pdf/xpdf/eog-hig-dialog.c') diff --git a/pdf/xpdf/eog-hig-dialog.c b/pdf/xpdf/eog-hig-dialog.c new file mode 100644 index 0000000..121e844 --- /dev/null +++ b/pdf/xpdf/eog-hig-dialog.c @@ -0,0 +1,89 @@ +#include +#include +#include +#include "eog-hig-dialog.h" + + +GNOME_CLASS_BOILERPLATE (EogHigDialog, + eog_hig_dialog, + GtkDialog, + GTK_TYPE_DIALOG); + +void +eog_hig_dialog_class_init (EogHigDialogClass *klass) +{ +} + +void +eog_hig_dialog_instance_init (EogHigDialog *dlg) +{ +} + + +GtkWidget* +eog_hig_dialog_new (const char *stock_id, const char *header, const char *body, gboolean modal) +{ + GtkWidget *dlg; + GtkWidget *hbox; + GtkWidget *image; + GtkWidget *label; + int header_len; + int body_len; + int message_len; + char *message; + + g_return_val_if_fail (stock_id != NULL, NULL); + g_return_val_if_fail (header != NULL, NULL); + + dlg = gtk_widget_new (EOG_TYPE_HIG_DIALOG, + "border-width", 6, + "resizable", FALSE, + "has-separator", FALSE, + "modal", modal, + "title", "", + NULL); + + hbox = gtk_widget_new (GTK_TYPE_HBOX, + "homogeneous", FALSE, + "spacing", 12, + "border-width", 6, + NULL); + + image = gtk_widget_new (GTK_TYPE_IMAGE, + "stock", stock_id, + "icon-size", GTK_ICON_SIZE_DIALOG, + "yalign", 0.0, + NULL); + gtk_container_add (GTK_CONTAINER (hbox), image); + + + header_len = strlen (header); + body_len = body ? strlen (body) : 0; + message_len = header_len + body_len + 64; + + message = g_new0 (char, message_len); + + if (body != NULL) { + g_snprintf (message, message_len, + "%s\n\n%s\n", header, body); + } + else { + g_snprintf (message, message_len, + "%s\n", header); + } + + label = gtk_label_new (message); + g_object_set (G_OBJECT (label), + "use-markup", TRUE, + "wrap", TRUE, + "yalign", 0.0, + NULL); + + gtk_container_add (GTK_CONTAINER (hbox), label); + gtk_widget_show_all (hbox); + + gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dlg)->vbox), hbox); + g_object_set (G_OBJECT (GTK_DIALOG (dlg)->vbox), "spacing", 12); + + return dlg; +} -- cgit v0.9.1