## GdlDockLayout GdlDockLayout — save and restore dock widgets. |

## Stability Level

Unstable, unless otherwise indicated

## Synopsis

    struct              GdlDockLayout;
    GdlDockLayout *     gdl_dock_layout_new                 (GObject *master);
    void                gdl_dock_layout_attach              (GdlDockLayout *layout,
                                                             GdlDockMaster *master);
    void                gdl_dock_layout_delete_layout       (GdlDockLayout *layout,
                                                             const gchar *name);
    GList *             gdl_dock_layout_get_layouts         (GdlDockLayout *layout,
                                                             gboolean include_default);
    gboolean            gdl_dock_layout_is_dirty            (GdlDockLayout *layout);
    gboolean            gdl_dock_layout_load_layout         (GdlDockLayout *layout,
                                                             const gchar *name);
    gboolean            gdl_dock_layout_load_from_file      (GdlDockLayout *layout,
                                                             const gchar *filename);
    void                gdl_dock_layout_save_layout         (GdlDockLayout *layout,
                                                             const gchar *name);
    gboolean            gdl_dock_layout_save_to_file        (GdlDockLayout *layout,
                                                             const gchar *filename);

## Object Hierarchy

      GObject
       +----GdlDockLayout

## Properties

      "dirty"                    gboolean              : Read
      "master"                   GObject*              : Read / Write

## Description

The layout of all docking widgets can be saved using this GdlDockLayout object. It automatically monitors the layout_changed signal of the dock master and stores the position of all widgets in memory after each change.

The layout "dirty" property is set to `TRUE` when the widget position in memory is updated. To keep an external file in sync with the dock, monitor this "dirty" property and call gdl_dock_layout_save_to_file when this changes to `TRUE`. Informations are stored in XML format.

## Details

### struct GdlDockLayout

    struct GdlDockLayout;

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

### gdl_dock_layout_new ()

    GdlDockLayout *     gdl_dock_layout_new                 (GObject *master);

Creates a new GdlDockLayout. Instead of setting `master` directly with a master object, it is possible to use a GdlDockObject, in this case the layout will be attached to the same master than the dock object.

`master` : | A master or a dock object to which the layout will be attached.
Returns : | New GdlDockLayout item.

### gdl_dock_layout_attach ()

    void                gdl_dock_layout_attach              (GdlDockLayout *layout,
                                                             GdlDockMaster *master);

### Warning

`gdl_dock_layout_attach` is deprecated and should not be used in newly-written code.

Attach the `layout` to the `master` and delete the reference to the master that the layout attached previously.

Deprecated 3.6: Use `gdl_dock_layout_set_master()` instead.

`layout` : | The layout object
`master` : | The master object to which the layout will be attached

### gdl_dock_layout_delete_layout ()

    void                gdl_dock_layout_delete_layout       (GdlDockLayout *layout,
                                                             const gchar *name);

Deletes the layout with the given name from the memory. This will set "dirty" to `TRUE`.

`layout` : | The dock item.
`name` : | The name of the layout to delete.

### gdl_dock_layout_get_layouts ()

    GList *             gdl_dock_layout_get_layouts         (GdlDockLayout *layout,
                                                             gboolean include_default);

Get the list of layout names including or not the default layout.

`layout` : | The layout item.
`include_default` : | `TRUE` to include the default layout.
Returns : | a GList list holding the layout names. You must first free each element in the list with `g_free()`, then free the list itself with `g_list_free()`. [element-type utf8][transfer full]

### gdl_dock_layout_is_dirty ()

    gboolean            gdl_dock_layout_is_dirty            (GdlDockLayout *layout);

Checks whether the XML tree in memory is different from the file where the layout was saved.

`layout` : | The layout item.
Returns : | `TRUE` is the layout in the memory is different from the file, else `FALSE`.

### gdl_dock_layout_load_layout ()

    gboolean            gdl_dock_layout_load_layout         (GdlDockLayout *layout,
                                                             const gchar *name);

Loads the layout with the given name from the memory. This will set "dirty" to `TRUE`.

See also `gdl_dock_layout_load_from_file()`

`layout` : | The dock item.
`name` : | The name of the layout to load or `NULL` for a default layout name. [allow-none]
Returns : | `TRUE` if layout successfully loaded else `FALSE`

### gdl_dock_layout_load_from_file ()

    gboolean            gdl_dock_layout_load_from_file      (GdlDockLayout *layout,
                                                             const gchar *filename);

Loads the layout from file with the given `filename`. This will set "dirty" to `FALSE`.

`layout` : | The layout item.
`filename` : | The name of the file to load.
Returns : | `TRUE` if `layout` successfully loaded else `FALSE`

### gdl_dock_layout_save_layout ()

    void                gdl_dock_layout_save_layout         (GdlDockLayout *layout,
                                                             const gchar *name);

Saves the `layout` with the given name to the memory. This will set "dirty" to `TRUE`.

See also `gdl_dock_layout_save_to_file()`.

`layout` : | The dock item.
`name` : | The name of the layout to save or `NULL` for a default layout name. [allow-none]

### gdl_dock_layout_save_to_file ()

    gboolean            gdl_dock_layout_save_to_file        (GdlDockLayout *layout,
                                                             const gchar *filename);

This function saves the current layout in XML format to the file with the given `filename`.

`layout` : | The layout item.
`filename` : | Name of the file we want to save in layout
Returns : | `TRUE` if `layout` successfuly save to the file, otherwise `FALSE`.

## Property Details

### The `"dirty"` property

      "dirty"                    gboolean              : Read

True if the layouts have changed and need to be saved to a file.

Default value: FALSE

### The `"master"` property

      "master"                   GObject*              : Read / Write

GdlDockMaster or GdlDockObject object which the layout object is attached to.