metadata

## metadata metadata — |

## Synopsis

                GsfDocMetaData;
                GsfDocProp;
    GsfDocMetaData* gsf_doc_meta_data_new       (void);
    void        gsf_doc_meta_data_foreach       (GsfDocMetaData const *meta,
                                                 GHFunc func,
                                                 gpointer user_data);
    gsize       gsf_doc_meta_data_size          (GsfDocMetaData const *meta);
    GQuark      gsf_doc_meta_data_error         (void);
    void        gsf_doc_meta_data_remove_prop   (GsfDocMetaData *meta,
                                                 char const	*name);
    void        gsf_doc_meta_data_set_prop      (GsfDocMetaData *meta,
                                                 char const	*name,
                                                 GValue const	*value);

    #define     GSF_META_NAME_TITLE
    #define     GSF_META_NAME_DESCRIPTION
    #define     GSF_META_NAME_SUBJECT
    #define     GSF_META_NAME_DATE_MODIFIED
    #define     GSF_META_NAME_DATE_CREATED
    #define     GSF_META_NAME_KEYWORDS
    #define     GSF_META_NAME_LANGUAGE
    #define     GSF_META_NAME_REVISION_COUNT
    #define     GSF_META_NAME_EDITING_DURATION
    #define     GSF_META_NAME_TABLE_COUNT
    #define     GSF_META_NAME_IMAGE_COUNT
    #define     GSF_META_NAME_OBJECT_COUNT
    #define     GSF_META_NAME_PAGE_COUNT
    #define     GSF_META_NAME_PARAGRAPH_COUNT
    #define     GSF_META_NAME_WORD_COUNT
    #define     GSF_META_NAME_CHARACTER_COUNT
    #define     GSF_META_NAME_CELL_COUNT
    #define     GSF_META_NAME_SPREADSHEET_COUNT
    #define     GSF_META_NAME_CREATOR
    #define     GSF_META_NAME_TEMPLATE
    #define     GSF_META_NAME_LAST_SAVED_BY
    #define     GSF_META_NAME_LAST_PRINTED
    #define     GSF_META_NAME_SECURITY
    #define     GSF_META_NAME_CATEGORY
    #define     GSF_META_NAME_PRESENTATION_FORMAT
    #define     GSF_META_NAME_THUMBNAIL
    #define     GSF_META_NAME_GENERATOR
    #define     GSF_META_NAME_LINE_COUNT
    #define     GSF_META_NAME_SLIDE_COUNT
    #define     GSF_META_NAME_NOTE_COUNT
    #define     GSF_META_NAME_HIDDEN_SLIDE_COUNT
    #define     GSF_META_NAME_MM_CLIP_COUNT
    #define     GSF_META_NAME_BYTE_COUNT
    #define     GSF_META_NAME_SCALE
    #define     GSF_META_NAME_HEADING_PAIRS
    #define     GSF_META_NAME_DOCUMENT_PARTS
    #define     GSF_META_NAME_MANAGER
    #define     GSF_META_NAME_COMPANY
    #define     GSF_META_NAME_LINKS_DIRTY
    #define     GSF_META_NAME_USER_DEFINED_1
    #define     GSF_META_NAME_USER_DEFINED_2
    #define     GSF_META_NAME_USER_DEFINED_3
    #define     GSF_META_NAME_USER_DEFINED_4
    #define     GSF_META_NAME_USER_DEFINED_5
    #define     GSF_META_NAME_USER_DEFINED_6
    #define     GSF_META_NAME_USER_DEFINED_7
    #define     GSF_META_NAME_DICTIONARY
    #define     GSF_META_NAME_LOCALE_SYSTEM_DEFAULT
    #define     GSF_META_NAME_CASE_SENSITIVE

## Description

## Details

### GsfDocMetaData

    typedef struct _GsfDocMetaData GsfDocMetaData;

### GsfDocProp

    typedef struct {
    	char const *name;
    	GValue *val;
    	char const *linked_to; /* optionally NULL */
    } GsfDocProp;

### gsf_doc_meta_data_new ()

    GsfDocMetaData* gsf_doc_meta_data_new       (void);

Returns : | a new metadata property collection

### gsf_doc_meta_data_foreach ()

    void        gsf_doc_meta_data_foreach       (GsfDocMetaData const *meta,
                                                 GHFunc func,
                                                 gpointer user_data);

Iterate through each (key, value) pair in this collection

`meta` : | the collection
`func` : | the function called once for each element in the collection
`user_data` : | any supplied user data or NULL

### gsf_doc_meta_data_size ()

    gsize       gsf_doc_meta_data_size          (GsfDocMetaData const *meta);

`meta` : | the collection
Returns : | the number of items in this collection

### gsf_doc_meta_data_error ()

    GQuark      gsf_doc_meta_data_error         (void);

Returns : |

### gsf_doc_meta_data_remove_prop ()

    void        gsf_doc_meta_data_remove_prop   (GsfDocMetaData *meta,
                                                 char const	*name);

If `name` does not exist in the collection, do nothing. If `name` does exist, remove it and its value from the collection

`meta` : | the collection
`name` : | the non-null string name of the property

### gsf_doc_meta_data_set_prop ()

    void        gsf_doc_meta_data_set_prop      (GsfDocMetaData *meta,
                                                 char const	*name,
                                                 GValue const	*value);

If `name` does not exist in the collection, add it to the collection. If `name` does exist in the collection, replace the old value with this new one

`meta` : | the collection
`name` : | the non-null string name of the property.
`value` : | the non-null value associated with `name`

### GSF_META_NAME_TITLE

    #define GSF_META_NAME_TITLE                 "dc:title"

### GSF_META_NAME_DESCRIPTION

    #define GSF_META_NAME_DESCRIPTION           "dc:description"

### GSF_META_NAME_SUBJECT

    #define GSF_META_NAME_SUBJECT               "dc:subject"

### GSF_META_NAME_DATE_MODIFIED

    #define GSF_META_NAME_DATE_MODIFIED         "dc:date-modified"

### GSF_META_NAME_DATE_CREATED

    #define GSF_META_NAME_DATE_CREATED          "gsf:date-created"

### GSF_META_NAME_KEYWORDS

    #define GSF_META_NAME_KEYWORDS              "dc:keywords"

### GSF_META_NAME_LANGUAGE

    #define GSF_META_NAME_LANGUAGE              "dc:language"

### GSF_META_NAME_REVISION_COUNT

    #define GSF_META_NAME_REVISION_COUNT        "gsf:revision-count"

### GSF_META_NAME_EDITING_DURATION

    #define GSF_META_NAME_EDITING_DURATION      "gsf:editing-duration"

### GSF_META_NAME_TABLE_COUNT

    #define GSF_META_NAME_TABLE_COUNT           "gsf:table-count"

### GSF_META_NAME_IMAGE_COUNT

    #define GSF_META_NAME_IMAGE_COUNT           "gsf:image-count"

### GSF_META_NAME_OBJECT_COUNT

    #define GSF_META_NAME_OBJECT_COUNT          "gsf:object-count"

### GSF_META_NAME_PAGE_COUNT

    #define GSF_META_NAME_PAGE_COUNT            "gsf:page-count"

### GSF_META_NAME_PARAGRAPH_COUNT

    #define GSF_META_NAME_PARAGRAPH_COUNT       "gsf:paragraph-count"

### GSF_META_NAME_WORD_COUNT

    #define GSF_META_NAME_WORD_COUNT            "gsf:word-count"

### GSF_META_NAME_CHARACTER_COUNT

    #define GSF_META_NAME_CHARACTER_COUNT       "gsf:character-count"

### GSF_META_NAME_CELL_COUNT

    #define GSF_META_NAME_CELL_COUNT            "gsf:cell-count"

### GSF_META_NAME_SPREADSHEET_COUNT

    #define GSF_META_NAME_SPREADSHEET_COUNT     "gsf:spreadsheet-count"

### GSF_META_NAME_CREATOR

    #define GSF_META_NAME_CREATOR               "gsf:creator"

### GSF_META_NAME_TEMPLATE

    #define GSF_META_NAME_TEMPLATE              "gsf:template"

### GSF_META_NAME_LAST_SAVED_BY

    #define GSF_META_NAME_LAST_SAVED_BY         "gsf:last-saved-by"

### GSF_META_NAME_LAST_PRINTED

    #define GSF_META_NAME_LAST_PRINTED          "gsf:last-printed"

### GSF_META_NAME_SECURITY

    #define GSF_META_NAME_SECURITY              "gsf:security"

### GSF_META_NAME_CATEGORY

    #define GSF_META_NAME_CATEGORY              "gsf:category"

### GSF_META_NAME_PRESENTATION_FORMAT

    #define GSF_META_NAME_PRESENTATION_FORMAT   "gsf:presentation-format"

### GSF_META_NAME_THUMBNAIL

    #define GSF_META_NAME_THUMBNAIL             "gsf:thumbnail"

### GSF_META_NAME_GENERATOR

    #define GSF_META_NAME_GENERATOR             "gsf:generator"

### GSF_META_NAME_LINE_COUNT

    #define GSF_META_NAME_LINE_COUNT            "gsf:line-count"

### GSF_META_NAME_SLIDE_COUNT

    #define GSF_META_NAME_SLIDE_COUNT           "gsf:slide-count"

### GSF_META_NAME_NOTE_COUNT

    #define GSF_META_NAME_NOTE_COUNT            "gsf:note-count"

### GSF_META_NAME_HIDDEN_SLIDE_COUNT

    #define GSF_META_NAME_HIDDEN_SLIDE_COUNT    "gsf:hidden-slide-count"

### GSF_META_NAME_MM_CLIP_COUNT

    #define GSF_META_NAME_MM_CLIP_COUNT         "gsf:MM-clip-count"

### GSF_META_NAME_BYTE_COUNT

    #define GSF_META_NAME_BYTE_COUNT            "gsf:byte-count"

### GSF_META_NAME_SCALE

    #define GSF_META_NAME_SCALE                 "gsf:scale"

### GSF_META_NAME_HEADING_PAIRS

    #define GSF_META_NAME_HEADING_PAIRS         "gsf:heading-pairs"

### GSF_META_NAME_DOCUMENT_PARTS

    #define GSF_META_NAME_DOCUMENT_PARTS        "gsf:document-parts"

### GSF_META_NAME_MANAGER

    #define GSF_META_NAME_MANAGER               "gsf:manager"

### GSF_META_NAME_COMPANY

    #define GSF_META_NAME_COMPANY               "gsf:company"

### GSF_META_NAME_LINKS_DIRTY

    #define GSF_META_NAME_LINKS_DIRTY           "gsf:links-dirty"

### GSF_META_NAME_USER_DEFINED_1

    #define GSF_META_NAME_USER_DEFINED_1        "gsf:user-defined-1"

### GSF_META_NAME_USER_DEFINED_2

    #define GSF_META_NAME_USER_DEFINED_2        "gsf:user-defined-2"

### GSF_META_NAME_USER_DEFINED_3

    #define GSF_META_NAME_USER_DEFINED_3        "gsf:user-defined-3"

### GSF_META_NAME_USER_DEFINED_4

    #define GSF_META_NAME_USER_DEFINED_4        "gsf:user-defined-4"

### GSF_META_NAME_USER_DEFINED_5

    #define GSF_META_NAME_USER_DEFINED_5        "gsf:user-defined-5"

### GSF_META_NAME_USER_DEFINED_6

    #define GSF_META_NAME_USER_DEFINED_6        "gsf:user-defined-6"

### GSF_META_NAME_USER_DEFINED_7

    #define GSF_META_NAME_USER_DEFINED_7        "gsf:user-defined-7"

### GSF_META_NAME_DICTIONARY

    #define GSF_META_NAME_DICTIONARY            "gsf:dictionary"

### GSF_META_NAME_LOCALE_SYSTEM_DEFAULT

    #define GSF_META_NAME_LOCALE_SYSTEM_DEFAULT "gsf:default-locale"

### GSF_META_NAME_CASE_SENSITIVE

    #define GSF_META_NAME_CASE_SENSITIVE        "gsf:case-sensitivity"