## ev-document-info

ev-document-info

## Synopsis

    struct              EvDocumentInfo;
    struct              EvDocumentLicense;
    enum                EvDocumentLayout;
    enum                EvDocumentMode;
    enum                EvDocumentUIHints;
    enum                EvDocumentPermissions;
    enum                EvDocumentInfoFields;
    EvDocumentInfo *    ev_document_info_copy               (EvDocumentInfo *info);
    void                ev_document_info_free               (EvDocumentInfo *info);
    EvDocumentLicense * ev_document_license_new             (void);
    EvDocumentLicense * ev_document_license_copy            (EvDocumentLicense *license);
    void                ev_document_license_free            (EvDocumentLicense *license);
    const gchar *       ev_document_license_get_text        (EvDocumentLicense *license);
    const gchar *       ev_document_license_get_uri         (EvDocumentLicense *license);
    const gchar *       ev_document_license_get_web_statement
                                                            (EvDocumentLicense *license);
    GType               ev_document_error_get_type          (void);

## Object Hierarchy

      GBoxed
       +----EvDocumentInfo

      GBoxed
       +----EvDocumentLicense

      GEnum
       +----EvDocumentLayout

      GEnum
       +----EvDocumentMode

      GFlags
       +----EvDocumentUIHints

      GFlags
       +----EvDocumentPermissions

      GFlags
       +----EvDocumentInfoFields

## Description

## Details

### struct EvDocumentInfo

    struct EvDocumentInfo {
    	char *title;
    	char *format; /* eg, "pdf-1.5" */
    	char *author;
    	char *subject;
    	char *keywords;
    	char *creator;
    	char *producer;
    	char *linearized;
            char *security;
    	GTime creation_date;
    	GTime modified_date;
    	EvDocumentLayout layout;
    	EvDocumentMode mode;
    	guint ui_hints;
    	guint permissions;
    	int   n_pages;
    	double paper_height;
    	double paper_width;
    	EvDocumentLicense *license;

    	/* Mask of all the valid fields */
    	guint fields_mask;
    };

### struct EvDocumentLicense

    struct EvDocumentLicense {
    	gchar *text;
    	gchar *uri;
    	gchar *web_statement;
    };

### enum EvDocumentLayout

    typedef enum {
    	EV_DOCUMENT_LAYOUT_SINGLE_PAGE,
    	EV_DOCUMENT_LAYOUT_ONE_COLUMN,
    	EV_DOCUMENT_LAYOUT_TWO_COLUMN_LEFT,
    	EV_DOCUMENT_LAYOUT_TWO_COLUMN_RIGHT,
    	EV_DOCUMENT_LAYOUT_TWO_PAGE_LEFT,
    	EV_DOCUMENT_LAYOUT_TWO_PAGE_RIGHT
    } EvDocumentLayout;

`EV_DOCUMENT_LAYOUT_SINGLE_PAGE` |
`EV_DOCUMENT_LAYOUT_ONE_COLUMN` |
`EV_DOCUMENT_LAYOUT_TWO_COLUMN_LEFT` |
`EV_DOCUMENT_LAYOUT_TWO_COLUMN_RIGHT` |
`EV_DOCUMENT_LAYOUT_TWO_PAGE_LEFT` |
`EV_DOCUMENT_LAYOUT_TWO_PAGE_RIGHT` |

### enum EvDocumentMode

    typedef enum {
    	EV_DOCUMENT_MODE_NONE,
    	EV_DOCUMENT_MODE_USE_OC,
    	EV_DOCUMENT_MODE_USE_THUMBS,
    	EV_DOCUMENT_MODE_FULL_SCREEN,
    	EV_DOCUMENT_MODE_USE_ATTACHMENTS,
    	EV_DOCUMENT_MODE_PRESENTATION = EV_DOCUMENT_MODE_FULL_SCREEN /* Will these be different? */
    } EvDocumentMode;

`EV_DOCUMENT_MODE_NONE` |
`EV_DOCUMENT_MODE_USE_OC` |
`EV_DOCUMENT_MODE_USE_THUMBS` |
`EV_DOCUMENT_MODE_FULL_SCREEN` |
`EV_DOCUMENT_MODE_USE_ATTACHMENTS` |
`EV_DOCUMENT_MODE_PRESENTATION` |

### enum EvDocumentUIHints

    typedef enum {
    	EV_DOCUMENT_UI_HINT_HIDE_TOOLBAR = 1 << 0,
    	EV_DOCUMENT_UI_HINT_HIDE_MENUBAR = 1 << 1,
    	EV_DOCUMENT_UI_HINT_HIDE_WINDOWUI = 1 << 2,
    	EV_DOCUMENT_UI_HINT_FIT_WINDOW = 1 << 3,
    	EV_DOCUMENT_UI_HINT_CENTER_WINDOW = 1 << 4,
    	EV_DOCUMENT_UI_HINT_DISPLAY_DOC_TITLE = 1 << 5,
    	EV_DOCUMENT_UI_HINT_DIRECTION_RTL = 1 << 6
    } EvDocumentUIHints;

`EV_DOCUMENT_UI_HINT_HIDE_TOOLBAR` |
`EV_DOCUMENT_UI_HINT_HIDE_MENUBAR` |
`EV_DOCUMENT_UI_HINT_HIDE_WINDOWUI` |
`EV_DOCUMENT_UI_HINT_FIT_WINDOW` |
`EV_DOCUMENT_UI_HINT_CENTER_WINDOW` |
`EV_DOCUMENT_UI_HINT_DISPLAY_DOC_TITLE` |
`EV_DOCUMENT_UI_HINT_DIRECTION_RTL` |

### enum EvDocumentPermissions

    typedef enum {
    	EV_DOCUMENT_PERMISSIONS_OK_TO_PRINT = 1 << 0,
    	EV_DOCUMENT_PERMISSIONS_OK_TO_MODIFY = 1 << 1,
    	EV_DOCUMENT_PERMISSIONS_OK_TO_COPY = 1 << 2,
    	EV_DOCUMENT_PERMISSIONS_OK_TO_ADD_NOTES = 1 << 3,
    	EV_DOCUMENT_PERMISSIONS_FULL = _PERMISSIONS_FULL
    } EvDocumentPermissions;

`EV_DOCUMENT_PERMISSIONS_OK_TO_PRINT` |
`EV_DOCUMENT_PERMISSIONS_OK_TO_MODIFY` |
`EV_DOCUMENT_PERMISSIONS_OK_TO_COPY` |
`EV_DOCUMENT_PERMISSIONS_OK_TO_ADD_NOTES` |
`EV_DOCUMENT_PERMISSIONS_FULL` |

### enum EvDocumentInfoFields

    typedef enum {
    	EV_DOCUMENT_INFO_TITLE = 1 << 0,
    	EV_DOCUMENT_INFO_FORMAT = 1 << 1,
    	EV_DOCUMENT_INFO_AUTHOR = 1 << 2,
    	EV_DOCUMENT_INFO_SUBJECT = 1 << 3,
    	EV_DOCUMENT_INFO_KEYWORDS = 1 << 4,
    	EV_DOCUMENT_INFO_LAYOUT = 1 << 5,
    	EV_DOCUMENT_INFO_CREATOR = 1 << 6,
    	EV_DOCUMENT_INFO_PRODUCER = 1 << 7,
    	EV_DOCUMENT_INFO_CREATION_DATE = 1 << 8,
    	EV_DOCUMENT_INFO_MOD_DATE = 1 << 9,
    	EV_DOCUMENT_INFO_LINEARIZED = 1 << 10,
    	EV_DOCUMENT_INFO_START_MODE = 1 << 11,
    	EV_DOCUMENT_INFO_UI_HINTS = 1 << 12,
    	EV_DOCUMENT_INFO_PERMISSIONS = 1 << 13,
    	EV_DOCUMENT_INFO_N_PAGES = 1 << 14,
    	EV_DOCUMENT_INFO_SECURITY = 1 << 15,
    	EV_DOCUMENT_INFO_PAPER_SIZE = 1 << 16,
    	EV_DOCUMENT_INFO_LICENSE = 1 << 17,
    } EvDocumentInfoFields;

`EV_DOCUMENT_INFO_TITLE` |
`EV_DOCUMENT_INFO_FORMAT` |
`EV_DOCUMENT_INFO_AUTHOR` |
`EV_DOCUMENT_INFO_SUBJECT` |
`EV_DOCUMENT_INFO_KEYWORDS` |
`EV_DOCUMENT_INFO_LAYOUT` |
`EV_DOCUMENT_INFO_CREATOR` |
`EV_DOCUMENT_INFO_PRODUCER` |
`EV_DOCUMENT_INFO_CREATION_DATE` |
`EV_DOCUMENT_INFO_MOD_DATE` |
`EV_DOCUMENT_INFO_LINEARIZED` |
`EV_DOCUMENT_INFO_START_MODE` |
`EV_DOCUMENT_INFO_UI_HINTS` |
`EV_DOCUMENT_INFO_PERMISSIONS` |
`EV_DOCUMENT_INFO_N_PAGES` |
`EV_DOCUMENT_INFO_SECURITY` |
`EV_DOCUMENT_INFO_PAPER_SIZE` |
`EV_DOCUMENT_INFO_LICENSE` |

### ev_document_info_copy ()

    EvDocumentInfo *    ev_document_info_copy               (EvDocumentInfo *info);

### ev_document_info_free ()

    void                ev_document_info_free               (EvDocumentInfo *info);

### ev_document_license_new ()

    EvDocumentLicense * ev_document_license_new             (void);

### ev_document_license_copy ()

    EvDocumentLicense * ev_document_license_copy            (EvDocumentLicense *license);

### ev_document_license_free ()

    void                ev_document_license_free            (EvDocumentLicense *license);

### ev_document_license_get_text ()

    const gchar *       ev_document_license_get_text        (EvDocumentLicense *license);

### ev_document_license_get_uri ()

    const gchar *       ev_document_license_get_uri         (EvDocumentLicense *license);

### ev_document_license_get_web_statement ()

    const gchar *       ev_document_license_get_web_statement
                                                            (EvDocumentLicense *license);

### ev_document_error_get_type ()

    GType               ev_document_error_get_type          (void);