## GOEditor

GOEditor

## Synopsis

                        GOEditor;
                        GOEditorPage;
    GOEditor *          go_editor_new                       (void);
    void                go_editor_free                      (GOEditor *editor);
    void                go_editor_add_page                  (GOEditor *editor,
                                                             gpointer widget,
                                                             char const *label);
    void                go_editor_set_store_page            (GOEditor *editor,
                                                             unsigned *store_page);
    GtkWidget *         go_editor_get_notebook              (GOEditor *editor);
    GtkWidget *         go_editor_get_registered_widget     (GOEditor *editor,
                                                             char const *name);
    void                go_editor_register_widget           (GOEditor *editor,
                                                             GtkWidget *widget);

## Description

## Details

### GOEditor

    typedef struct {
    	unsigned *store_page;		/* pointer to a place for storing last edited page */
    	GSList		*pages;			/* GOEditorPage */
    	GData		*registered_widgets;
    } GOEditor;

### GOEditorPage

    typedef struct {
    	char const *label;		/* label for notebook page */
    	gpointer 	 widget; /* GtkWidget* */
    } GOEditorPage;

### go_editor_new ()

    GOEditor *          go_editor_new                       (void);

Returns : | a new GOEditor object, which is used to store a collection of property edition widgets (pages). The returned object must be freed using `go_editor_free`.

### go_editor_free ()

    void                go_editor_free                      (GOEditor *editor);

Frees a GOEditor object.

`editor` : | a GOEditor

### go_editor_add_page ()

    void                go_editor_add_page                  (GOEditor *editor,
                                                             gpointer widget,
                                                             char const *label);

Adds a page to `editor`.

`editor` : | a GOEditor
`widget` : | property edition widget
`label` : | a label identifying the widget

### go_editor_set_store_page ()

    void                go_editor_set_store_page            (GOEditor *editor,
                                                             unsigned *store_page);

Sets a placeholder for storing the last active editor page.

`editor` : | a GOEditor
`store_page` : | placeholder for the last selected page

### go_editor_get_notebook ()

    GtkWidget *         go_editor_get_notebook              (GOEditor *editor);

`editor` : | a GOEditor
Returns : | a GtkNotebook from the widget collection stored in `editor`.

### go_editor_get_registered_widget ()

    GtkWidget *         go_editor_get_registered_widget     (GOEditor *editor,
                                                             char const *name);

`editor` : | a GOEditor
`name` : | the name of the registered widget
Returns : | a widget previously registered using `go_editor_register_widget`.

### go_editor_register_widget ()

    void                go_editor_register_widget           (GOEditor *editor,
                                                             GtkWidget *widget);

Registers a widget that then can be retrieved later using `go_editor_get_registered_widget`. The main use of this function is to provide the ability to extend a page.

`editor` : | a GOEditor
`widget` : | a GtkWidget