## IAnjutaDocumentManager IAnjutaDocumentManager — Interface for plugin that manages all the editors |

## Stability Level

Unstable, unless otherwise indicated

## Functions

GQuark | ianjuta_document_manager_error_quark ()
void | ianjuta_document_manager_add_bookmark ()
IAnjutaEditor * | ianjuta_document_manager_add_buffer ()
void | ianjuta_document_manager_add_document ()
IAnjutaDocument * | ianjuta_document_manager_find_document_with_file ()
IAnjutaDocument * | ianjuta_document_manager_get_current_document ()
GList * | ianjuta_document_manager_get_doc_widgets ()
GFile * | ianjuta_document_manager_get_file ()
IAnjutaEditor * | ianjuta_document_manager_goto_file_line ()
IAnjutaEditor * | ianjuta_document_manager_goto_file_line_mark ()
gboolean | ianjuta_document_manager_remove_document ()
void | ianjuta_document_manager_set_current_document ()

## Signals

void | document-added | Run Last
void | document-removed | Run Last

## Types and Values

#define | IANJUTA_DOCUMENT_MANAGER_CURRENT_DOCUMENT

## Object Hierarchy

        GEnum
        ╰── IAnjutaDocumentManagerError
        GInterface
        ╰── IAnjutaDocumentManager

## Includes

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

## Description

## Functions

### ianjuta_document_manager_error_quark ()

    GQuark
    ianjuta_document_manager_error_quark (void);

#### Returns

### ianjuta_document_manager_add_bookmark ()

    void
    ianjuta_document_manager_add_bookmark (IAnjutaDocumentManager *obj,
                                           GFile *file,
                                           gint line,
                                           GError **err);

### ianjuta_document_manager_add_buffer ()

    IAnjutaEditor *
    ianjuta_document_manager_add_buffer (IAnjutaDocumentManager *obj,
                                         const gchar *name,
                                         const gchar *content,
                                         GError **err);

Creates a new editor buffer of the given name and sets the given content as its initial content.

#### Parameters

obj | Self |
name | Name of the editor buffer. |
content | Initial content of the buffer. |
err | Error propagation and reporting. |

#### Returns

the IAnjutaEditor instance that has been added.

[transfer full]

### ianjuta_document_manager_add_document ()

    void
    ianjuta_document_manager_add_document (IAnjutaDocumentManager *obj,
                                           IAnjutaDocument *document,
                                           GError **err);

Adds a document to the document manager. This will open a new Notebook tab and show the document there

#### Parameters

obj | Self |
document | the document to add |
err | Error propagation and reporting. |

### ianjuta_document_manager_find_document_with_file ()

    IAnjutaDocument *
    ianjuta_document_manager_find_document_with_file
                                   (IAnjutaDocumentManager *obj,
                                    GFile *file,
                                    GError **err);

Finds the document that has the file loaded. Only the editor that matches the file will be searched.

#### Parameters

obj | Self |
file | The file to find. |
err | Error propagation and reporting. |

#### Returns

the document that corresponds to given file. NULL if there is no editor loaded with this file.

[transfer none]

### ianjuta_document_manager_get_current_document ()

    IAnjutaDocument *
    ianjuta_document_manager_get_current_document
                                   (IAnjutaDocumentManager *obj,
                                    GError **err);

Gets the current document.

#### Parameters

obj | Self |
err | Error propagation and reporting. |

#### Returns

the currently active document. NULL if none is there.

[transfer none]

### ianjuta_document_manager_get_doc_widgets ()

    GList *
    ianjuta_document_manager_get_doc_widgets
                                   (IAnjutaDocumentManager *obj,
                                    GError **err);

Gets a list of widgets for open documents. Each widget is a GTK_WIDGET(IAnjutaDocument*)

#### Parameters

obj | Self |
err | Error propagation and reporting. |

#### Returns

a list of widgets for all open documents. The returned list (but not the data in the list) must be freed after use.

[element-type GtkWidget][transfer container]

### ianjuta_document_manager_get_file ()

    GFile *
    ianjuta_document_manager_get_file (IAnjutaDocumentManager *obj,
                                       const gchar *filename,
                                       GError **err);

Given the short filename, finds the file of the filename, if the editor that has it loaded is found. If there is no editor that has this file opened, returns NULL.

#### Parameters

obj | Self |
filename | short filename |
err | Error propagation and reporting. |

#### Returns

the GFile for the given short filename.

[transfer full]

### ianjuta_document_manager_goto_file_line ()

    IAnjutaEditor *
    ianjuta_document_manager_goto_file_line
                                   (IAnjutaDocumentManager *obj,
                                    GFile *file,
                                    gint lineno,
                                    GError **err);

Loads the given file if not loaded yet, set its editor as current editor and moves cursor to the given line in the editor.

#### Parameters

obj | Self |
file | file to go to. |
lineno | the line number in the file to go to. |
err | Error propagation and reporting. |

#### Returns

the editor where the mark has been put. NULL if none.

[transfer none]

### ianjuta_document_manager_goto_file_line_mark ()

    IAnjutaEditor *
    ianjuta_document_manager_goto_file_line_mark
                                   (IAnjutaDocumentManager *obj,
                                    GFile *file,
                                    gint lineno,
                                    gboolean mark,
                                    GError **err);

Loads the given file if not loaded yet, set its editor as current editor and moves cursor to the given line in the editor. Optionally also marks the line with line marker if `mark` is given TRUE.

#### Parameters

obj | Self |
file | file to go to. |
lineno | the line number in the file to go to. |
mark | TRUE if the line should be marked with a marker. |
err | Error propagation and reporting |

#### Returns

the editor where the mark has been put. NULL if none.

[transfer none]

### ianjuta_document_manager_remove_document ()

    gboolean
    ianjuta_document_manager_remove_document
                                   (IAnjutaDocumentManager *obj,
                                    IAnjutaDocument *document,
                                    gboolean save_before,
                                    GError **err);

Closes and removes the given document. If `save_before` is TRUE, also saves the document before closing.

#### Parameters

obj | Self |
document | Document to close. |
save_before | If true, saves the document before closing. |
err | Error propagation and reporting. |

#### Returns

TRUE if the document was removed, else FALSE.

### ianjuta_document_manager_set_current_document ()

    void
    ianjuta_document_manager_set_current_document
                                   (IAnjutaDocumentManager *obj,
                                    IAnjutaDocument *document,
                                    GError **err);

Sets the given document as current document.

#### Parameters

obj | Self |
document | the document to set as current. |
err | Error propagation and reporting. |

## Types and Values

### IANJUTA_DOCUMENT_MANAGER_CURRENT_DOCUMENT

    #define IANJUTA_DOCUMENT_MANAGER_CURRENT_DOCUMENT "document_manager_current_document"

Anjuta shell value set by document manager to the current document

## Signal Details

### The `“document-added”` signal

    void
    user_function (IAnjutaDocumentManager *obj,
                   IAnjutaDocument        *doc,
                   gpointer                user_data)

Flags: Run Last

### The `“document-removed”` signal

    void
    user_function (IAnjutaDocumentManager *obj,
                   IAnjutaDocument        *doc,
                   gpointer                user_data)

Flags: Run Last