## GODoc

GODoc

## Functions

GOImage * | go_doc_add_image ()
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 ()
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_pristine ()
gboolean | go_doc_set_uri ()
void | go_doc_update_meta_data ()
void | go_doc_write ()

## Properties

gboolean | dirty | Read / Write
gint64 | dirty-time | Read / Write
gboolean | pristine | Read / Write
gchar * | uri | Read / Write

## Signals

void | metadata-changed | Run Last
void | metadata-update | Run Last

## 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_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_uri ()

    char const	*
    go_doc_get_uri (GODoc const *doc);

#### Returns

### 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_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_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;

## Property Details

### The `“dirty”` property

      “dirty”                    gboolean

Whether the document has been changed.

Flags: Read / Write

Default value: FALSE

### The `“dirty-time”` property

      “dirty-time”               gint64

When the document was first changed.

Flags: Read / Write

Default value: 0

### The `“pristine”` property

      “pristine”                 gboolean

Whether the document is unchanged since it was created.

Flags: Read / Write

Default value: FALSE

### The `“uri”` property

      “uri”                      gchar *

The URI associated with this document.

Flags: Read / Write

Default value: NULL

## Signal Details

### The `“metadata-changed”` signal

    void
    user_function (GODoc   *godoc,
                   gpointer user_data)

#### Parameters

godoc | the object which received the signal. |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“metadata-update”` signal

    void
    user_function (GODoc   *godoc,
                   gpointer user_data)

#### Parameters

godoc | the object which received the signal. |
user_data | user data set when the signal handler was connected. |

Flags: Run Last