Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <mpg@redhat.com>2005-06-04 16:47:07 (GMT)
committer Marco Pesenti Gritti <marco@src.gnome.org>2005-06-04 16:47:07 (GMT)
commitdbe438c1e95c6d2901c282a0c0e204c94114fb75 (patch)
tree0f8a758697c8997888c1be916f48def44a47b488 /shell
parent1e52e37fcdfa46c0cc6e1ac9958cdde28ff7a629 (diff)
Implement fonts list. Defined out for now, since it depends on a not yet
2005-06-04 Marco Pesenti Gritti <mpg@redhat.com> * backend/Makefile.am: * backend/ev-document-fonts.c: (ev_document_fonts_get_type), (ev_document_fonts_get_fonts_model): * backend/ev-document-fonts.h: * data/evince-properties.glade: * pdf/ev-poppler.cc: * shell/ev-properties.c: (setup_fonts_view), (ev_properties_new): * shell/ev-properties.h: * shell/ev-window.c: (ev_window_cmd_file_properties): Implement fonts list. Defined out for now, since it depends on a not yet committed poppler patch.
Diffstat (limited to 'shell')
-rw-r--r--shell/ev-properties.c28
-rw-r--r--shell/ev-properties.h5
-rw-r--r--shell/ev-window.c13
3 files changed, 41 insertions, 5 deletions
diff --git a/shell/ev-properties.c b/shell/ev-properties.c
index 78c2f14..a8c5a1e 100644
--- a/shell/ev-properties.c
+++ b/shell/ev-properties.c
@@ -23,6 +23,7 @@
#endif
#include "ev-properties.h"
+#include "ev-document-fonts.h"
#include <glib/gi18n.h>
#include <gtk/gtk.h>
@@ -96,8 +97,29 @@ set_property (GladeXML *xml, Property property, const char *text)
gtk_label_set_text (GTK_LABEL (widget), text ? text : "");
}
+static void
+setup_fonts_view (GladeXML *xml, GtkTreeModel *fonts)
+{
+ GtkWidget *widget;
+ GtkCellRenderer *renderer;
+ GtkTreeViewColumn *column;
+
+ widget = glade_xml_get_widget (xml, "fonts_treeview");
+ gtk_tree_view_set_model (GTK_TREE_VIEW (widget), fonts);
+
+ column = gtk_tree_view_column_new ();
+ gtk_tree_view_column_set_expand (GTK_TREE_VIEW_COLUMN (column), TRUE);
+ gtk_tree_view_append_column (GTK_TREE_VIEW (widget), column);
+
+ renderer = gtk_cell_renderer_text_new ();
+ gtk_tree_view_column_pack_start (GTK_TREE_VIEW_COLUMN (column), renderer, FALSE);
+ gtk_tree_view_column_set_attributes (GTK_TREE_VIEW_COLUMN (column), renderer,
+ "text", EV_DOCUMENT_FONTS_COLUMN_NAME,
+ NULL);
+}
+
GtkDialog *
-ev_properties_new (EvDocumentInfo *info)
+ev_properties_new (EvDocumentInfo *info, GtkTreeModel *fonts)
{
GladeXML *xml;
GtkWidget *dialog;
@@ -159,5 +181,9 @@ ev_properties_new (EvDocumentInfo *info)
set_property (xml, SECURITY_PROPERTY, info->security);
}
+ if (fonts) {
+ setup_fonts_view (xml, fonts);
+ }
+
return GTK_DIALOG (dialog);
}
diff --git a/shell/ev-properties.h b/shell/ev-properties.h
index 1accd2f..03cd4e3 100644
--- a/shell/ev-properties.h
+++ b/shell/ev-properties.h
@@ -22,13 +22,14 @@
#define __EV_PROPERTIES_H__
#include "ev-document.h"
-#include "ev-window.h"
#include <gtk/gtkdialog.h>
+#include <gtk/gtktreemodel.h>
G_BEGIN_DECLS
-GtkDialog *ev_properties_new (EvDocumentInfo *info);
+GtkDialog *ev_properties_new (EvDocumentInfo *info,
+ GtkTreeModel *fonts);
G_END_DECLS
diff --git a/shell/ev-window.c b/shell/ev-window.c
index 034fa1b..2404001 100644
--- a/shell/ev-window.c
+++ b/shell/ev-window.c
@@ -40,6 +40,7 @@
#include "ev-properties.h"
#include "ev-document-thumbnails.h"
#include "ev-document-links.h"
+#include "ev-document-fonts.h"
#include "ev-document-types.h"
#include "ev-document-find.h"
#include "ev-document-security.h"
@@ -1188,11 +1189,19 @@ ev_window_cmd_file_print (GtkAction *action, EvWindow *ev_window)
static void
ev_window_cmd_file_properties (GtkAction *action, EvWindow *ev_window)
{
+ EvDocument *document = ev_window->priv->document;
EvDocumentInfo *info;
GtkDialog *dialog;
+ GtkTreeModel *fonts;
- info = ev_document_get_info (ev_window->priv->document);
- dialog = ev_properties_new (info);
+ if (EV_IS_DOCUMENT_FONTS (document)) {
+ fonts = ev_document_fonts_get_fonts_model (EV_DOCUMENT_FONTS (document));
+ } else {
+ fonts = NULL;
+ }
+
+ info = ev_document_get_info (document);
+ dialog = ev_properties_new (info, fonts);
gtk_dialog_run (dialog);
gtk_widget_destroy (GTK_WIDGET (dialog));
ev_document_info_free (info);