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

## Stability Level

Unstable, unless otherwise indicated

## Functions

GdlDockLayout * | gdl_dock_layout_new ()
void | gdl_dock_layout_attach ()
void | gdl_dock_layout_delete_layout ()
GList * | gdl_dock_layout_get_layouts ()
gboolean | gdl_dock_layout_is_dirty ()
gboolean | gdl_dock_layout_load_layout ()
gboolean | gdl_dock_layout_load_from_file ()
void | gdl_dock_layout_save_layout ()
gboolean | gdl_dock_layout_save_to_file ()

## Properties

gboolean | dirty | Read
GObject * | master | Read / Write

## Types and Values

struct | GdlDockLayout

## Object Hierarchy

        GObject
        ╰── GdlDockLayout

## 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.

## Functions

### 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.

#### Parameters

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);

`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.

#### Parameters

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`.

#### Parameters

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.

#### Parameters

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.

#### Parameters

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()`

#### Parameters

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`.

#### Parameters

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()`.

#### Parameters

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` .

#### Parameters

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`.

## Types and Values

### struct GdlDockLayout

    struct GdlDockLayout;

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

## Property Details

### The `“dirty”` property

      “dirty”                    gboolean

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

Owner: GdlDockLayout

Flags: Read

Default value: FALSE

### The `“master”` property

      “master”                   GObject *

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

Owner: GdlDockLayout

Flags: Read / Write