## GODoc

GODoc

## Functions

GOImage * | go_doc_add_image ()
void | go_doc_bump_state ()
void | go_doc_end_read ()
gint64 | go_doc_get_dirty_time ()
GOImage * | go_doc_get_image ()
GHashTable * | go_doc_get_images ()
GsfDocMetaData * | go_doc_get_meta_data ()
GDateTime * | go_doc_get_modtime ()
guint64 | go_doc_get_saved_state ()
guint64 | go_doc_get_state ()
char const * | go_doc_get_uri ()
GOImage * | go_doc_image_fetch ()
void | go_doc_init_read ()
void | go_doc_init_write ()
gboolean | go_doc_is_dirty ()
gboolean | go_doc_is_pristine ()
void | go_doc_read ()
void | go_doc_save_image ()
void | go_doc_save_resource ()
void | go_doc_set_dirty ()
void | go_doc_set_dirty_time ()
void | go_doc_set_meta_data ()
void | go_doc_set_modtime ()
void | go_doc_set_pristine ()
void | go_doc_set_saved_state ()
void | go_doc_set_state ()
gboolean | go_doc_set_uri ()
void | go_doc_update_meta_data ()
void | go_doc_write ()

## Types and Values

| GODoc

## Object Hierarchy

        GObject
        ╰── GODoc

## Description

## Functions

### go_doc_add_image ()

    GOImage *
    go_doc_add_image (GODoc *doc,
                      char const *id,
                      GOImage *image);

Adds `image` to the document if no such image already exists. The name of the returned image might be different from `id` , even if given.

#### Parameters

doc | a GODoc |
id | the image name or `NULL` |
image | a GOImage |

#### Returns

either `image` , in which case the document adds a reference on it, or an identical image for which the owner does not own a reference.

[transfer none]

### go_doc_bump_state ()

    void
    go_doc_bump_state (GODoc *doc);

Sets the current state of the document to a fresh id.

#### Parameters

doc | GODoc |

### go_doc_end_read ()

    void
    go_doc_end_read (GODoc *doc);

### go_doc_get_dirty_time ()

    gint64
    go_doc_get_dirty_time (GODoc const *doc);

#### Parameters

doc | GODoc |

#### Returns

the time (as in `g_get_real_time()`) the document was first marked dirty.

### go_doc_get_image ()

    GOImage *
    go_doc_get_image (GODoc *doc,
                      char const *id);

#### Parameters

doc | a GODoc |
id | the image name |

#### Returns

the GOImage is one exist with name `id` . The caller does not own a reference.

[transfer none]

### go_doc_get_images ()

    GHashTable *
    go_doc_get_images (GODoc *doc);

#### Parameters

doc | GODoc |

#### Returns

the images registered inside the document.

[transfer none]

### go_doc_get_meta_data ()

    GsfDocMetaData *
    go_doc_get_meta_data (GODoc const *doc);

#### Parameters

doc | GODoc |

#### Returns

`doc` 's metadata.

[transfer none]

### go_doc_get_modtime ()

    GDateTime *
    go_doc_get_modtime (GODoc const *doc);

#### Parameters

doc | GODoc |

#### Returns

the last known file system time stamp for the document, or `NULL` if unknown.

[transfer none]

### go_doc_get_saved_state ()

    guint64
    go_doc_get_saved_state (GODoc *doc);

#### Parameters

doc | GODoc |

#### Returns

the state at the last time the document was saved.

### go_doc_get_state ()

    guint64
    go_doc_get_state (GODoc *doc);

#### Parameters

doc | GODoc |

#### Returns

the current state of the document.

### go_doc_get_uri ()

    char const	*
    go_doc_get_uri (GODoc const *doc);

### go_doc_image_fetch ()

    GOImage *
    go_doc_image_fetch (GODoc *doc,
                        char const *id,
                        GType type);

Searches for a GOImage with name `id` in the document image buffer and creates one if needed. The caller does not own a reference on the returned GOImage. This function must be called after a call to `go_doc_init_read()`, otherwise it will emit a critical and return NULL.

#### Parameters

doc | a GODoc |
id | the name for the new image. |
type | the type of the GOImage to create if needed. |

#### Returns

the found or created GOImage.

[transfer none]

### go_doc_init_read ()

    void
    go_doc_init_read (GODoc *doc,
                      GsfInput *input);

### go_doc_init_write ()

    void
    go_doc_init_write (GODoc *doc,
                       GsfXMLOut *output);

### go_doc_is_dirty ()

    gboolean
    go_doc_is_dirty (GODoc const *doc);

#### Parameters

doc | GODoc |

#### Returns

`TRUE` if `doc` has been modified.

### go_doc_is_pristine ()

    gboolean
    go_doc_is_pristine (GODoc const *doc);

This checks to see if the doc has ever been used ( approximately )

#### Parameters

doc | GODoc |

#### Returns

`TRUE` if we can discard this doc.

### go_doc_read ()

    void
    go_doc_read (GODoc *doc,
                 GsfXMLIn *xin,
                 xmlChar const **attrs);

### go_doc_save_image ()

    void
    go_doc_save_image (GODoc *doc,
                       char const *id);

Saves the image with the document. Each image will be saved only once.

#### Parameters

doc | a GODoc |
id | the Id of the GOImage to save |

### go_doc_save_resource ()

    void
    go_doc_save_resource (GODoc *doc,
                          GOPersist const *gp);

Saves the resource with the document. Each resource will be saved only once.

#### Parameters

doc | a GODoc |
gp | the GOPersist to save |

### go_doc_set_dirty ()

    void
    go_doc_set_dirty (GODoc *doc,
                      gboolean is_dirty);

Changes the dirty state of `doc` to `is_dirty` and clears the pristine state no matter what.

#### Parameters

doc | GODoc |
is_dirty | bool |

### go_doc_set_dirty_time ()

    void
    go_doc_set_dirty_time (GODoc *doc,
                           gint64 t);

Changes the dirty time, i.e., the time the document was first marked dirty.

#### Parameters

doc | GODoc |
t | a timestamp from g_get_real_time |

### go_doc_set_meta_data ()

    void
    go_doc_set_meta_data (GODoc *doc,
                          GsfDocMetaData *data);

Adds a ref to `data` .

#### Parameters

doc | GODoc |
data | GsfDocMetaData |

### go_doc_set_modtime ()

    void
    go_doc_set_modtime (GODoc *doc,
                        GDateTime *modtime);

Sets the last known file system time stamp for the document, `NULL` if unknown.

#### Parameters

doc | GODoc |
modtime | new file system time stamp. | [allow-none]

### go_doc_set_pristine ()

    void
    go_doc_set_pristine (GODoc *doc,
                         gboolean pristine);

Sets the indication of whether this document is unchanged since it was created. Note: if both "dirty" and "pristine" are being set, set "pristine" last.

#### Parameters

doc | GODoc |
pristine | a gboolean. |

### go_doc_set_saved_state ()

    void
    go_doc_set_saved_state (GODoc *doc,
                            guint64 state);

Sets the state at the last time the document was saved.

#### Parameters

doc | GODoc |
state | state at the time of last save |

### go_doc_set_state ()

    void
    go_doc_set_state (GODoc *doc,
                      guint64 state);

Sets the current state of the document as a serial number that is intended to be incremented for each document change.

Setting the state will set the document's dirty status also, assuming both the state and the saved state are known.

#### Parameters

doc | GODoc |
state | state of document |

### go_doc_set_uri ()

    gboolean
    go_doc_set_uri (GODoc *doc,
                    char const *uri);

#### Parameters

doc | the document to modify |
uri | the uri for this worksheet. |

#### Returns

`TRUE` if the name was set succesfully.

### go_doc_update_meta_data ()

    void
    go_doc_update_meta_data (GODoc *doc);

Signal that `doc` 's metadata should be updated - statistics (sheet count, word count) - content (sheet names, bookmarks) - reloading linked items

#### Parameters

doc | GODoc |

### go_doc_write ()

    void
    go_doc_write (GODoc *doc,
                  GsfXMLOut *output);

## Types and Values

### GODoc

    typedef struct _GODoc GODoc;