## IAnjutaDocument IAnjutaDocument — Interface for all kind of editable resources that will be managed by IAnjutaDocumentManager |

## Stability Level

Unstable, unless otherwise indicated

## Synopsis

    #include <libanjuta/interfaces/ianjuta-document.h>

    #define             IANJUTA_DOCUMENT_ERROR
    struct              IAnjutaDocumentIface;
    void                ianjuta_document_begin_undo_action  (IAnjutaDocument *obj,
                                                             GError **err);
    gboolean            ianjuta_document_can_redo           (IAnjutaDocument *obj,
                                                             GError **err);
    gboolean            ianjuta_document_can_undo           (IAnjutaDocument *obj,
                                                             GError **err);
    void                ianjuta_document_clear              (IAnjutaDocument *obj,
                                                             GError **err);
    void                ianjuta_document_copy               (IAnjutaDocument *obj,
                                                             GError **err);
    void                ianjuta_document_cut                (IAnjutaDocument *obj,
                                                             GError **err);
    void                ianjuta_document_end_undo_action    (IAnjutaDocument *obj,
                                                             GError **err);
    GQuark              ianjuta_document_error_quark        (void);
    const gchar *       ianjuta_document_get_filename       (IAnjutaDocument *obj,
                                                             GError **err);
    void                ianjuta_document_grab_focus         (IAnjutaDocument *obj,
                                                             GError **err);
    void                ianjuta_document_paste              (IAnjutaDocument *obj,
                                                             GError **err);
    void                ianjuta_document_redo               (IAnjutaDocument *obj,
                                                             GError **err);
    void                ianjuta_document_undo               (IAnjutaDocument *obj,
                                                             GError **err);

## Description

## Details

### IANJUTA_DOCUMENT_ERROR

    #define IANJUTA_DOCUMENT_ERROR ianjuta_document_error_quark()

### struct IAnjutaDocumentIface

    struct IAnjutaDocumentIface {
    	GTypeInterface g_iface;

    	/* Signal */
    	void (*update_ui) (IAnjutaDocument *obj);

    	void (*begin_undo_action) (IAnjutaDocument *obj, GError **err);
    	gboolean (*can_redo) (IAnjutaDocument *obj, GError **err);
    	gboolean (*can_undo) (IAnjutaDocument *obj, GError **err);
    	void (*clear) (IAnjutaDocument *obj, GError **err);
    	void (*copy) (IAnjutaDocument *obj, GError **err);
    	void (*cut) (IAnjutaDocument *obj, GError **err);
    	void (*end_undo_action) (IAnjutaDocument *obj, GError **err);
    	const gchar* (*get_filename) (IAnjutaDocument *obj, GError **err);
    	void (*grab_focus) (IAnjutaDocument *obj, GError **err);
    	void (*paste) (IAnjutaDocument *obj, GError **err);
    	void (*redo) (IAnjutaDocument *obj, GError **err);
    	void (*undo) (IAnjutaDocument *obj, GError **err);
    };

### ianjuta_document_begin_undo_action ()

    void                ianjuta_document_begin_undo_action  (IAnjutaDocument *obj,
                                                             GError **err);

Begins the mark of undoable action. Calls to this are stacked and each must be ended with `ianjuta_document_end_action()`.

`obj` : | Self
`err` : | Error propagation and reporting

### ianjuta_document_can_redo ()

    gboolean            ianjuta_document_can_redo           (IAnjutaDocument *obj,
                                                             GError **err);

Can the editor redo the last operation?

`obj` : | Self
`err` : | Error propagation and reporting
Returns : | TRUE if editor can redo, else FALSE

### ianjuta_document_can_undo ()

    gboolean            ianjuta_document_can_undo           (IAnjutaDocument *obj,
                                                             GError **err);

Can the editor undo the last operation?

`obj` : | Self
`err` : | Error propagation and reporting
Returns : | TRUE if editor can undo, else FALSE

### ianjuta_document_clear ()

    void                ianjuta_document_clear              (IAnjutaDocument *obj,
                                                             GError **err);

Clear selection

`obj` : | Self
`err` : | Error propagation and reporting

### ianjuta_document_copy ()

    void                ianjuta_document_copy               (IAnjutaDocument *obj,
                                                             GError **err);

Copy selection to clipboard.

`obj` : | Self
`err` : | Error propagation and reporting

### ianjuta_document_cut ()

    void                ianjuta_document_cut                (IAnjutaDocument *obj,
                                                             GError **err);

Cut selection to clipboard.

`obj` : | Self
`err` : | Error propagation and reporting

### ianjuta_document_end_undo_action ()

    void                ianjuta_document_end_undo_action    (IAnjutaDocument *obj,
                                                             GError **err);

Ends the mark of undoable action.

`obj` : | Self
`err` : | Error propagation and reporting

### ianjuta_document_error_quark ()

    GQuark              ianjuta_document_error_quark        (void);

### ianjuta_document_get_filename ()

    const gchar *       ianjuta_document_get_filename       (IAnjutaDocument *obj,
                                                             GError **err);

Allows obtaining of the filename the editor was loaded from.

`obj` : | Self
`err` : | Error propagation and reporting
Returns : | The name of the file. Not to be freed by caller.

### ianjuta_document_grab_focus ()

    void                ianjuta_document_grab_focus         (IAnjutaDocument *obj,
                                                             GError **err);

Grabs the focus.

`obj` : | Self
`err` : | Error propagation and reporting

### ianjuta_document_paste ()

    void                ianjuta_document_paste              (IAnjutaDocument *obj,
                                                             GError **err);

Paste clipboard at current position.

`obj` : | Self
`err` : | Error propagation and reporting

### ianjuta_document_redo ()

    void                ianjuta_document_redo               (IAnjutaDocument *obj,
                                                             GError **err);

Redo last undo operation

`obj` : | Self
`err` : | Error propagation and reporting

### ianjuta_document_undo ()

    void                ianjuta_document_undo               (IAnjutaDocument *obj,
                                                             GError **err);

Undo last operation

`obj` : | Self
`err` : | Error propagation and reporting