## GdlDockObject GdlDockObject |

## Synopsis

    enum                GdlDockParamFlags;
    #define             GDL_DOCK_NAME_PROPERTY
    #define             GDL_DOCK_MASTER_PROPERTY
    enum                GdlDockObjectFlags;
    #define             GDL_DOCK_OBJECT_FLAGS_SHIFT
    enum                GdlDockPlacement;
                        GdlDockRequest;
                        GdlDockObject;
    #define             GDL_DOCK_OBJECT_FLAGS               (obj)
    #define             GDL_DOCK_OBJECT_AUTOMATIC           (obj)
    #define             GDL_DOCK_OBJECT_ATTACHED            (obj)
    #define             GDL_DOCK_OBJECT_IN_REFLOW           (obj)
    #define             GDL_DOCK_OBJECT_IN_DETACH           (obj)
    #define             GDL_DOCK_OBJECT_SET_FLAGS           (obj,flag)
    #define             GDL_DOCK_OBJECT_UNSET_FLAGS         (obj,flag)
    #define             GDL_DOCK_OBJECT_FROZEN              (obj)
    gboolean            gdl_dock_object_is_compound         (GdlDockObject *object);
    void                gdl_dock_object_detach              (GdlDockObject *object,
                                                             gboolean recursive);
    GdlDockObject *     gdl_dock_object_get_parent_object   (GdlDockObject *object);
    void                gdl_dock_object_freeze              (GdlDockObject *object);
    void                gdl_dock_object_thaw                (GdlDockObject *object);
    void                gdl_dock_object_reduce              (GdlDockObject *object);
    gboolean            gdl_dock_object_dock_request        (GdlDockObject *object,
                                                             gint x,
                                                             gint y,
                                                             GdlDockRequest *request);
    void                gdl_dock_object_dock                (GdlDockObject *object,
                                                             GdlDockObject *requestor,
                                                             GdlDockPlacement position,
                                                             GValue *other_data);
    void                gdl_dock_object_bind                (GdlDockObject *object,
                                                             GObject *master);
    void                gdl_dock_object_unbind              (GdlDockObject *object);
    gboolean            gdl_dock_object_is_bound            (GdlDockObject *object);
    gboolean            gdl_dock_object_reorder             (GdlDockObject *object,
                                                             GdlDockObject *child,
                                                             GdlDockPlacement new_position,
                                                             GValue *other_data);
    void                gdl_dock_object_present             (GdlDockObject *object,
                                                             GdlDockObject *child);
    gboolean            gdl_dock_object_child_placement     (GdlDockObject *object,
                                                             GdlDockObject *child,
                                                             GdlDockPlacement *placement);
    #define             GDL_TYPE_DOCK_PARAM
    GType               gdl_dock_param_get_type             (void);
    const gchar *       gdl_dock_object_nick_from_type      (GType type);
    GType               gdl_dock_object_type_from_nick      (const gchar *nick);
    GType               gdl_dock_object_set_type_for_nick   (const gchar *nick,
                                                             GType type);
    #define             GDL_TRACE_OBJECT                    (object, format, args...)

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----GtkObject
                   +----GtkWidget
                         +----GtkContainer
                               +----GdlDockObject
                                     +----GdlDockItem
                                     +----GdlDock
                                     +----GdlDockPlaceholder

## Implemented Interfaces

GdlDockObject implements GtkBuildable and AtkImplementorIface.

## Properties

      "long-name"                gchar*                : Read / Write
      "master"                   GdlDockMaster*        : Read / Write / Construct
      "name"                     gchar*                : Read / Write / Construct Only
      "stock-id"                 gchar*                : Read / Write

## Signals

      "detach"                                         : Run Last
      "dock"                                           : Run First

## Description

## Details

### enum GdlDockParamFlags

    typedef enum {
        /* the parameter is to be exported for later layout rebuilding */
        GDL_DOCK_PARAM_EXPORT = 1 << G_PARAM_USER_SHIFT,
        /* the parameter must be set after adding the children objects */
        GDL_DOCK_PARAM_AFTER  = 1 << (G_PARAM_USER_SHIFT + 1)
    } GdlDockParamFlags;

### GDL_DOCK_NAME_PROPERTY

    #define GDL_DOCK_NAME_PROPERTY    "name"

### GDL_DOCK_MASTER_PROPERTY

    #define GDL_DOCK_MASTER_PROPERTY  "master"

### enum GdlDockObjectFlags

    typedef enum {
        GDL_DOCK_AUTOMATIC  = 1 << 0,
        GDL_DOCK_ATTACHED   = 1 << 1,
        GDL_DOCK_IN_REFLOW  = 1 << 2,
        GDL_DOCK_IN_DETACH  = 1 << 3
    } GdlDockObjectFlags;

### GDL_DOCK_OBJECT_FLAGS_SHIFT

    #define GDL_DOCK_OBJECT_FLAGS_SHIFT 8

### enum GdlDockPlacement

    typedef enum {
        GDL_DOCK_NONE = 0,
        GDL_DOCK_TOP,
        GDL_DOCK_BOTTOM,
        GDL_DOCK_RIGHT,
        GDL_DOCK_LEFT,
        GDL_DOCK_CENTER,
        GDL_DOCK_FLOATING
    } GdlDockPlacement;

### GdlDockRequest

    typedef struct {
        GdlDockObject    *applicant;
        GdlDockObject    *target;
        GdlDockPlacement  position;
        GdkRectangle      rect;
        GValue            extra;
    } GdlDockRequest;

### GdlDockObject

    typedef struct _GdlDockObject GdlDockObject;

### GDL_DOCK_OBJECT_FLAGS()

    #define GDL_DOCK_OBJECT_FLAGS(obj)  (GDL_DOCK_OBJECT (obj)->flags)

`obj` : |

### GDL_DOCK_OBJECT_AUTOMATIC()

    #define             GDL_DOCK_OBJECT_AUTOMATIC(obj)

`obj` : |

### GDL_DOCK_OBJECT_ATTACHED()

    #define             GDL_DOCK_OBJECT_ATTACHED(obj)

`obj` : |

### GDL_DOCK_OBJECT_IN_REFLOW()

    #define             GDL_DOCK_OBJECT_IN_REFLOW(obj)

`obj` : |

### GDL_DOCK_OBJECT_IN_DETACH()

    #define             GDL_DOCK_OBJECT_IN_DETACH(obj)

`obj` : |

### GDL_DOCK_OBJECT_SET_FLAGS()

    #define             GDL_DOCK_OBJECT_SET_FLAGS(obj,flag)

`obj` : |
`flag` : |

### GDL_DOCK_OBJECT_UNSET_FLAGS()

    #define             GDL_DOCK_OBJECT_UNSET_FLAGS(obj,flag)

`obj` : |
`flag` : |

### GDL_DOCK_OBJECT_FROZEN()

    #define GDL_DOCK_OBJECT_FROZEN(obj) (GDL_DOCK_OBJECT (obj)->freeze_count > 0)

`obj` : |

### gdl_dock_object_is_compound ()

    gboolean            gdl_dock_object_is_compound         (GdlDockObject *object);

`object` : |
Returns : |

### gdl_dock_object_detach ()

    void                gdl_dock_object_detach              (GdlDockObject *object,
                                                             gboolean recursive);

`object` : |
`recursive` : |

### gdl_dock_object_get_parent_object ()

    GdlDockObject *     gdl_dock_object_get_parent_object   (GdlDockObject *object);

`object` : |
Returns : |

### gdl_dock_object_freeze ()

    void                gdl_dock_object_freeze              (GdlDockObject *object);

`object` : |

### gdl_dock_object_thaw ()

    void                gdl_dock_object_thaw                (GdlDockObject *object);

`object` : |

### gdl_dock_object_reduce ()

    void                gdl_dock_object_reduce              (GdlDockObject *object);

`object` : |

### gdl_dock_object_dock_request ()

    gboolean            gdl_dock_object_dock_request        (GdlDockObject *object,
                                                             gint x,
                                                             gint y,
                                                             GdlDockRequest *request);

`object` : |
`x` : |
`y` : |
`request` : |
Returns : |

### gdl_dock_object_dock ()

    void                gdl_dock_object_dock                (GdlDockObject *object,
                                                             GdlDockObject *requestor,
                                                             GdlDockPlacement position,
                                                             GValue *other_data);

`object` : |
`requestor` : |
`position` : |
`other_data` : |

### gdl_dock_object_bind ()

    void                gdl_dock_object_bind                (GdlDockObject *object,
                                                             GObject *master);

`object` : |
`master` : |

### gdl_dock_object_unbind ()

    void                gdl_dock_object_unbind              (GdlDockObject *object);

`object` : |

### gdl_dock_object_is_bound ()

    gboolean            gdl_dock_object_is_bound            (GdlDockObject *object);

`object` : |
Returns : |

### gdl_dock_object_reorder ()

    gboolean            gdl_dock_object_reorder             (GdlDockObject *object,
                                                             GdlDockObject *child,
                                                             GdlDockPlacement new_position,
                                                             GValue *other_data);

`object` : |
`child` : |
`new_position` : |
`other_data` : |
Returns : |

### gdl_dock_object_present ()

    void                gdl_dock_object_present             (GdlDockObject *object,
                                                             GdlDockObject *child);

`object` : |
`child` : |

### gdl_dock_object_child_placement ()

    gboolean            gdl_dock_object_child_placement     (GdlDockObject *object,
                                                             GdlDockObject *child,
                                                             GdlDockPlacement *placement);

This function returns information about placement of a child dock object inside another dock object. The function returns `TRUE` if `child` is effectively a child of `object`. `placement` should normally be initially setup to `GDL_DOCK_NONE`. If it's set to some other value, this function will not touch the stored value if the specified placement is "compatible" with the actual placement of the child.

`placement` can be `NULL`, in which case the function simply tells if `child` is attached to `object`.

`object` : | the dock object we are asking for child placement
`child` : | the child of the `object` we want the placement for
`placement` : | where to return the placement information
Returns : | `TRUE` if `child` is a child of `object`.

### GDL_TYPE_DOCK_PARAM

    #define GDL_TYPE_DOCK_PARAM   (gdl_dock_param_get_type ())

### gdl_dock_param_get_type ()

    GType               gdl_dock_param_get_type             (void);

Returns : |

### gdl_dock_object_nick_from_type ()

    const gchar *       gdl_dock_object_nick_from_type      (GType type);

`type` : |
Returns : |

### gdl_dock_object_type_from_nick ()

    GType               gdl_dock_object_type_from_nick      (const gchar *nick);

`nick` : |
Returns : |

### gdl_dock_object_set_type_for_nick ()

    GType               gdl_dock_object_set_type_for_nick   (const gchar *nick,
                                                             GType type);

`nick` : |
`type` : |
Returns : |

### GDL_TRACE_OBJECT()

    #define             GDL_TRACE_OBJECT(object, format, args...)

`object` : |
`format` : |
`args...` : |

## Property Details

### The `"long-name"` property

      "long-name"                gchar*                : Read / Write

Human readable name for the dock object.

Default value: NULL

### The `"master"` property

      "master"                   GdlDockMaster*        : Read / Write / Construct

Dock master this dock object is bound to.

### The `"name"` property

      "name"                     gchar*                : Read / Write / Construct Only

Unique name for identifying the dock object.

Default value: NULL

### The `"stock-id"` property

      "stock-id"                 gchar*                : Read / Write

Stock icon for the dock object.

Default value: NULL

## Signal Details

### The `"detach"` signal

    void                user_function                      (GdlDockObject *gdldockobject,
                                                            gboolean       arg1,
                                                            gpointer       user_data)          : Run Last

`gdldockobject` : | the object which received the signal.
`arg1` : |
`user_data` : | user data set when the signal handler was connected.

### The `"dock"` signal

    void                user_function                      (GdlDockObject   *gdldockobject,
                                                            GdlDockObject   *arg1,
                                                            GdlDockPlacement arg2,
                                                            GValue          *arg3,
                                                            gpointer         user_data)          : Run First

`gdldockobject` : | the object which received the signal.
`arg1` : |
`arg2` : |
`arg3` : |
`user_data` : | user data set when the signal handler was connected.