| GXPS Reference Manual | ||||
|---|---|---|---|---|
| Top | Description | ||||
#include <libgxps/gxps.h> struct GXPSDocumentStructure; struct GXPSOutlineIter; gboolean gxps_document_structure_has_outline (GXPSDocumentStructure *structure); gboolean gxps_document_structure_outline_iter_init (GXPSOutlineIter *iter,GXPSDocumentStructure *structure); gboolean gxps_outline_iter_next (GXPSOutlineIter *iter); gboolean gxps_outline_iter_children (GXPSOutlineIter *iter,GXPSOutlineIter *parent); const gchar * gxps_outline_iter_get_description (GXPSOutlineIter *iter); GXPSLinkTarget * gxps_outline_iter_get_target (GXPSOutlineIter *iter);
GXPSDocumentStructure represents the structural organization of a XPS document. A GXPSDocumentStructure can contain the document outline, similar to a table of contents, containing hyperlinks. To iterate over the outline items you can use GXPSOutlineIter.
GXPSDocumentStructure objects can not be created directly, they
are retrieved from a GXPSDocument with gxps_document_get_structure().
struct GXPSDocumentStructure {
GObject parent;
};
The GXPSDocumentStructure struct contains only private fields and should not be directly accessed.
struct GXPSOutlineIter {
};
GXPSOutlineIter represents an iterator that can be used to iterate over the items of an outline contained in a GXPSDocumentStructure
gboolean gxps_document_structure_has_outline (GXPSDocumentStructure *structure);
Whether structure has an outline or not.
|
a GXPSDocumentStructure |
Returns : |
TRUE if structure has an outline, FALSE otherwise. |
gboolean gxps_document_structure_outline_iter_init (GXPSOutlineIter *iter,GXPSDocumentStructure *structure);
Initializes iter to the root item of the outline contained by structure
and a associates it with structure.
Here is a simple example of some code that walks the full outline:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
static void walk_outline (GXPSOutlineIter *iter) { do { GXPSOutlineIter child_iter; const gchar *description = gxps_outline_iter_get_description (iter); GXPSLinkTarget *target = gxps_outline_iter_get_target (iter); /* Do something with description and taregt */ if (gxps_outline_iter_children (&child_iter, iter)) walk_outline (&child_iter); } while (gxps_outline_iter_next (iter)); } ... { GXPSOutlineIter iter; if (gxps_document_structure_outline_iter_init (&iter, structure)) walk_outline (&iter); } |
|
an uninitialized GXPSOutlineIter |
|
a GXPSDocumentStructure |
Returns : |
TRUE if iter was successfully initialized to the root item,
FALSE if it failed or structure does not have an outline. |
gboolean gxps_outline_iter_next (GXPSOutlineIter *iter);
Advances iter to the next item at the current level.
See gxps_document_structure_outline_iter_init() for
more details.
|
an initialized GXPSOutlineIter |
Returns : |
TRUE if iter was set to the next item,
FALSE if the end of the current level has been reached |
gboolean gxps_outline_iter_children (GXPSOutlineIter *iter,GXPSOutlineIter *parent);
Initializes iter to the first child item of parent.
See gxps_document_structure_outline_iter_init() for
more details.
|
an uninitialized GXPSOutlineIter |
|
an initialized GXPSOutlineIter |
Returns : |
TRUE if iter was set to the first child of parent,
FALSE if parent does not have children. |
const gchar * gxps_outline_iter_get_description (GXPSOutlineIter *iter);
Gets the description of the outline item associated with iter.
See gxps_document_structure_outline_iter_init() for
more details.
|
an initialized GXPSOutlineIter |
Returns : |
the description of the outline item |
GXPSLinkTarget * gxps_outline_iter_get_target (GXPSOutlineIter *iter);
Gets the GXPSLinkTarget of the outline item associated with iter.
See gxps_document_structure_outline_iter_init() for
more details.
|
an initialized GXPSOutlineIter |
Returns : |
a new allocated GXPSLinkTarget.
Free the returned object with gxps_link_target_free(). |