]> www.fi.muni.cz Git - evince.git/commitdiff
Reused eog HIG dialog in GPdf.
authorRemi Cohen-Scali <rcoscali@cvs.gnome.org>
Tue, 13 Jan 2004 00:23:29 +0000 (00:23 +0000)
committerRémi Cohen-Scali <rcoscali@src.gnome.org>
Tue, 13 Jan 2004 00:23:29 +0000 (00:23 +0000)
2004-01-13  Remi Cohen-Scali  <rcoscali@cvs.gnome.org>

* xpdf/gpdf-hig-dialog.c:
* xpdf/gpdf-hig-dialog.h: Reused eog HIG dialog
in GPdf.

pdf/xpdf/gpdf-hig-dialog.c [new file with mode: 0644]
pdf/xpdf/gpdf-hig-dialog.h [new file with mode: 0644]

diff --git a/pdf/xpdf/gpdf-hig-dialog.c b/pdf/xpdf/gpdf-hig-dialog.c
new file mode 100644 (file)
index 0000000..663fde0
--- /dev/null
@@ -0,0 +1,89 @@
+#include <string.h>
+#include <gtk/gtk.h>
+#include <libgnome/gnome-macros.h>
+#include "gpdf-hig-dialog.h"
+
+
+GNOME_CLASS_BOILERPLATE (GpdfHigDialog, 
+                        gpdf_hig_dialog,
+                        GtkDialog,
+                        GTK_TYPE_DIALOG);
+
+void
+gpdf_hig_dialog_class_init (GpdfHigDialogClass *klass)
+{
+}
+
+void 
+gpdf_hig_dialog_instance_init (GpdfHigDialog *dlg)
+{
+}
+
+
+GtkWidget*  
+gpdf_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 (GPDF_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,
+                           "<span weight=\"bold\" size=\"larger\">%s</span>\n\n%s", header, body);
+       }
+       else {
+               g_snprintf (message, message_len,
+                           "<span weight=\"bold\" size=\"larger\">%s</span>\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, NULL);
+
+       return dlg;
+}
diff --git a/pdf/xpdf/gpdf-hig-dialog.h b/pdf/xpdf/gpdf-hig-dialog.h
new file mode 100644 (file)
index 0000000..5696be0
--- /dev/null
@@ -0,0 +1,34 @@
+#ifndef _GPDF_HIG_DIALOG_H_
+#define _GPDF_HIG_DIALOG_H_
+
+#include <gtk/gtkdialog.h>
+
+G_BEGIN_DECLS
+
+#define GPDF_TYPE_HIG_DIALOG              (gpdf_hig_dialog_get_type ())
+#define GPDF_HIG_DIALOG(obj)              (G_TYPE_CHECK_INSTANCE_CAST ((obj), GPDF_TYPE_HIG_DIALOG, GpdfHigDialog))
+#define GPDF_HIG_DIALOG_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), GPDF_TYPE_HIG_DIALOG, GpdfHigDialogClass))
+#define GPDF_IS_HIG_DIALOG(obj)           (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GPDF_TYPE_HIG_DIALOG))
+#define GPDF_IS_HIG_DIALOG_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GPDF_TYPE_HIG_DIALOG))
+
+typedef struct _GpdfHigDialog GpdfHigDialog;
+typedef struct _GpdfHigDialogClass GpdfHigDialogClass;
+typedef struct _GpdfHigDialogPrivate GpdfHigDialogPrivate;
+
+
+struct _GpdfHigDialog {
+       GtkDialog dialog;
+};
+
+struct _GpdfHigDialogClass {
+       GtkDialogClass parent_class;
+};
+
+
+GType       gpdf_hig_dialog_get_type         (void);
+GtkWidget*  gpdf_hig_dialog_new              (const char *stock_id, const char *header, const char *body, gboolean modal);
+
+
+G_END_DECLS
+
+#endif /* _GPDF_HIG_DIALOG_H_ */