From dbe438c1e95c6d2901c282a0c0e204c94114fb75 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Sat, 04 Jun 2005 16:47:07 +0000 Subject: Implement fonts list. Defined out for now, since it depends on a not yet 2005-06-04 Marco Pesenti Gritti * 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. --- (limited to 'shell') 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 #include @@ -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 +#include 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); -- cgit v0.9.1