*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
klass->get_page = ev_document_impl_get_page;
klass->get_info = ev_document_impl_get_info;
+ klass->get_backend_info = NULL;
g_object_class->finalize = ev_document_finalize;
}
*/
priv->uri = g_strdup (uri);
priv->n_pages = _ev_document_get_n_pages (document);
- priv->info = _ev_document_get_info (document);
for (i = 0; i < priv->n_pages; i++) {
EvPage *page = ev_document_get_page (document, i);
page_label = _ev_document_get_page_label (document, page);
if (page_label) {
- if (priv->page_labels) {
- priv->page_labels[i] = page_label;
- } else {
- gchar *numeric_label;
-
- numeric_label = g_strdup_printf ("%d", i + 1);
- if (strcmp (numeric_label, page_label) != 0) {
- priv->page_labels = g_new0 (gchar *, priv->n_pages);
- priv->page_labels[i] = page_label;
- }
- g_free (numeric_label);
- }
+ if (!priv->page_labels)
+ priv->page_labels = g_new0 (gchar *, priv->n_pages);
+
+ priv->page_labels[i] = page_label;
priv->max_label = MAX (priv->max_label,
g_utf8_strlen (page_label, 256));
}
g_object_unref (page);
}
+
+ priv->info = _ev_document_get_info (document);
}
return retval;
return document->priv->info;
}
+gboolean
+ev_document_get_backend_info (EvDocument *document, EvDocumentBackendInfo *info)
+{
+ g_return_val_if_fail (EV_IS_DOCUMENT (document), FALSE);
+
+ EvDocumentClass *klass = EV_DOCUMENT_GET_CLASS (document);
+ if (klass->get_backend_info == NULL)
+ return FALSE;
+
+ return klass->get_backend_info (document, info);
+}
+
cairo_surface_t *
ev_document_render (EvDocument *document,
EvRenderContext *rc)