diff options
Diffstat (limited to 'src/cairo-pdf-surface-private.h')
-rw-r--r-- | src/cairo-pdf-surface-private.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/cairo-pdf-surface-private.h b/src/cairo-pdf-surface-private.h index cbe4599a1..010b127de 100644 --- a/src/cairo-pdf-surface-private.h +++ b/src/cairo-pdf-surface-private.h @@ -193,6 +193,19 @@ typedef struct _cairo_pdf_named_dest { cairo_bool_t referenced; } cairo_pdf_named_dest_t; +typedef struct _cairo_pdf_outline_entry { + char *name; + char *dest; + cairo_pdf_outline_flags_t flags; + cairo_pdf_resource_t res; + struct _cairo_pdf_outline_entry *parent; + struct _cairo_pdf_outline_entry *first_child; + struct _cairo_pdf_outline_entry *last_child; + struct _cairo_pdf_outline_entry *next; + struct _cairo_pdf_outline_entry *prev; + int count; +} cairo_pdf_outline_entry_t; + typedef struct _cairo_pdf_interchange { cairo_tag_stack_t analysis_tag_stack; cairo_tag_stack_t render_tag_stack; @@ -211,6 +224,7 @@ typedef struct _cairo_pdf_interchange { cairo_pdf_named_dest_t **sorted_dests; cairo_pdf_resource_t dests_res; int annot_page; + cairo_array_t outline; /* array of pointers to cairo_pdf_outline_entry_t; */ } cairo_pdf_interchange_t; @@ -298,6 +312,7 @@ struct _cairo_pdf_surface { int page_parent_tree; /* -1 if not used */ cairo_array_t page_annots; cairo_bool_t tagged; + cairo_pdf_resource_t outlines_dict_res; cairo_pdf_resource_t names_dict_res; cairo_surface_t *paginated_surface; @@ -344,5 +359,12 @@ _cairo_pdf_interchange_write_page_objects (cairo_pdf_surface_t *surface); cairo_private cairo_int_status_t _cairo_pdf_interchange_write_document_objects (cairo_pdf_surface_t *surface); +cairo_private cairo_int_status_t +_cairo_pdf_interchange_add_outline (cairo_pdf_surface_t *surface, + int parent_id, + const char *name, + const char *dest, + cairo_pdf_outline_flags_t flags, + int *id); #endif /* CAIRO_PDF_SURFACE_PRIVATE_H */ |