## ExoToolbarsEditor

ExoToolbarsEditor — Widget to edit toolbars

## Synopsis

    #include <exo/exo.h>

                        ExoToolbarsEditor;
    GtkWidget *         exo_toolbars_editor_new             (GtkUIManager *ui_manager);
    GtkWidget *         exo_toolbars_editor_new_with_model  (GtkUIManager *ui_manager,
                                                             ExoToolbarsModel *model);
    ExoToolbarsModel *  exo_toolbars_editor_get_model       (ExoToolbarsEditor *editor);
    void                exo_toolbars_editor_set_model       (ExoToolbarsEditor *editor,
                                                             ExoToolbarsModel *model);
    GtkUIManager *      exo_toolbars_editor_get_ui_manager  (ExoToolbarsEditor *editor);
    void                exo_toolbars_editor_set_ui_manager  (ExoToolbarsEditor *editor,
                                                             GtkUIManager *ui_manager);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----GtkObject
                   +----GtkWidget
                         +----GtkContainer
                               +----GtkBox
                                     +----GtkVBox
                                           +----ExoToolbarsEditor

## Implemented Interfaces

ExoToolbarsEditor implements AtkImplementorIface, GtkBuildable and GtkOrientable.

## Properties

      "model"                    ExoToolbarsModel*     : Read / Write
      "ui-manager"               GtkUIManager*         : Read / Write

## Description

ExoToolbarsEditor is a widget that allows the user to edit toolbars used within your application by simply dragging and dropping toolbar items between the editor widget and the toolbar widgets.

Most applications should simply use the ExoToolbarsEditorDialog class, which includes an ExoToolbarsEditor as main widget.

## Details

### ExoToolbarsEditor

    typedef struct _ExoToolbarsEditor ExoToolbarsEditor;

The ExoToolbarsEditor struct contains only private fields and should not be directly accessed.

### exo_toolbars_editor_new ()

    GtkWidget *         exo_toolbars_editor_new             (GtkUIManager *ui_manager);

Creates a new ExoToolbarsEditor that will be associated with `ui_manager`. `ui_manager` must be a valid GtkUIManager, `NULL` is not allowed at this point.

The newly created ExoToolbarsEditor will not be usable until you associate an ExoToolbarsModel with it, using the function `exo_toolbars_editor_set_model()`. You should probably use `exo_toolbars_editor_new_with_model()` instead.

`ui_manager` : | A GtkUIManager.
Returns : | A new ExoToolbarsEditor.

### exo_toolbars_editor_new_with_model ()

    GtkWidget *         exo_toolbars_editor_new_with_model  (GtkUIManager *ui_manager,
                                                             ExoToolbarsModel *model);

Creates a new ExoToolbarsEditor that will be associated with `model` and `ui_manager`. You must supply a valid GtkUIManager and a valid ExoToolbarsModel here or the function will fail.

`ui_manager` : | A GtkUIManager.
`model` : | An ExoToolbarsModel.
Returns : | A new ExoToolbarsEditor.

### exo_toolbars_editor_get_model ()

    ExoToolbarsModel *  exo_toolbars_editor_get_model       (ExoToolbarsEditor *editor);

Returns the ExoToolbarsModel currently associated with `editor` or `NULL` if no ExoToolbarsModel is currently associated with `editor`.

`editor` : | An ExoToolbarsEditor.
Returns : | An ExoToolbarsModel or `NULL`.

### exo_toolbars_editor_set_model ()

    void                exo_toolbars_editor_set_model       (ExoToolbarsEditor *editor,
                                                             ExoToolbarsModel *model);

Sets the model to edit by this `editor`. If you specify `NULL` for `model`, the editor widget will be disabled. Else the editor widget will load the toolbars from `model` and reinitialize its user interface according to `model`.

`editor` : | An ExoToolbarsEditor.
`model` : | An ExoToolbarsModel or `NULL`.

### exo_toolbars_editor_get_ui_manager ()

    GtkUIManager *      exo_toolbars_editor_get_ui_manager  (ExoToolbarsEditor *editor);

Returns the GtkUIManager associated with `editor` or `NULL` if no user interface manager is associated with `editor` currently.

`editor` : | An ExoToolbarsEditor.
Returns : | A GtkUIManager or `NULL`.

### exo_toolbars_editor_set_ui_manager ()

    void                exo_toolbars_editor_set_ui_manager  (ExoToolbarsEditor *editor,
                                                             GtkUIManager *ui_manager);

Sets the GtkUIManager to use by this ExoToolbarsEditor. If you specify `NULL` for `ui_manager`, the editor widget will be disabled. Else the editor will load the available actions from `ui_manager` and reinitialize the user interface.

`editor` : | An ExoToolbarsEditor.
`ui_manager` : | A GtkUIManager or `NULL`.

## Property Details

### The `"model"` property

      "model"                    ExoToolbarsModel*     : Read / Write

The ExoToolbarsModel that should be edited from within this toolbars editor. If you set this property to `NULL`, the editor widget will be disabled, else the editor widget will load the toolbars from the given ExoToolbarsModel and initialize its user interface according to the model.

### The `"ui-manager"` property

      "ui-manager"               GtkUIManager*         : Read / Write

The GtkUIManager used by this editor. If this property is `NULL`, the editor widget will be disabled, else if you specify a valid GtkUIManager, the editor widget will load the available actions from the given user interface manager and initialize its user interface according to the specified GtkUIManager.

The given `ui`-manager needs to support all actions that were specified for the model, used by the editor, with the `exo_toolbars_model_set_actions()` method.