GdlDockObject

## GdlDockObject GdlDockObject |

## Synopsis

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

## Object Hierarchy

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

      GFlags
       +----GdlDockObjectFlags

      GFlags
       +----GdlDockParamFlags

      GEnum
       +----GdlDockPlacement

## Implemented Interfaces

GdlDockObject implements AtkImplementorIface and GtkBuildable.

## Properties

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

## Signals

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

## Description

## Details

### GDL_DOCK_MASTER_PROPERTY

    #define GDL_DOCK_MASTER_PROPERTY  "master"

### GDL_DOCK_NAME_PROPERTY

    #define GDL_DOCK_NAME_PROPERTY    "name"

### GDL_DOCK_OBJECT_ATTACHED()

    #define             GDL_DOCK_OBJECT_ATTACHED(obj)

### GDL_DOCK_OBJECT_AUTOMATIC()

    #define             GDL_DOCK_OBJECT_AUTOMATIC(obj)

### GDL_DOCK_OBJECT_FLAGS()

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

### GDL_DOCK_OBJECT_FLAGS_SHIFT

    #define GDL_DOCK_OBJECT_FLAGS_SHIFT 8

### GDL_DOCK_OBJECT_FROZEN()

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

### GDL_DOCK_OBJECT_IN_DETACH()

    #define             GDL_DOCK_OBJECT_IN_DETACH(obj)

### GDL_DOCK_OBJECT_IN_REFLOW()

    #define             GDL_DOCK_OBJECT_IN_REFLOW(obj)

### GDL_DOCK_OBJECT_SET_FLAGS()

    #define             GDL_DOCK_OBJECT_SET_FLAGS(obj,flag)

### GDL_DOCK_OBJECT_UNSET_FLAGS()

    #define             GDL_DOCK_OBJECT_UNSET_FLAGS(obj,flag)

### GDL_TRACE_OBJECT()

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

### struct GdlDockObject

    struct GdlDockObject;

### struct GdlDockObjectClass

    struct GdlDockObjectClass {
        GtkContainerClass parent_class;

        gboolean          is_compound;

        void     (* detach)          (GdlDockObject    *object,
                                      gboolean          recursive);
        void     (* reduce)          (GdlDockObject    *object);

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

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

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

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

        gboolean (* child_placement) (GdlDockObject    *object,
                                      GdlDockObject    *child,
                                      GdlDockPlacement *placement);
    };

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

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

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

### struct GdlDockRequest

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

### gdl_dock_object_bind ()

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

### 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_dock_object_detach ()

    void                gdl_dock_object_detach              (GdlDockObject *object,
                                                             gboolean recursive);

### gdl_dock_object_dock ()

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

`other_data` : | . [allow-none]

### gdl_dock_object_dock_request ()

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

### gdl_dock_object_freeze ()

    void                gdl_dock_object_freeze              (GdlDockObject *object);

### gdl_dock_object_get_parent_object ()

    GdlDockObject *     gdl_dock_object_get_parent_object   (GdlDockObject *object);

### gdl_dock_object_is_bound ()

    gboolean            gdl_dock_object_is_bound            (GdlDockObject *object);

### gdl_dock_object_is_compound ()

    gboolean            gdl_dock_object_is_compound         (GdlDockObject *object);

### gdl_dock_object_nick_from_type ()

    const gchar *       gdl_dock_object_nick_from_type      (GType type);

Finds the nickname for a given type

`type` : | The type for which to find the nickname
Returns : | If the object has a nickname, then it is returned. Otherwise, the type name.

### gdl_dock_object_present ()

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

### gdl_dock_object_reduce ()

    void                gdl_dock_object_reduce              (GdlDockObject *object);

### gdl_dock_object_reorder ()

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

### gdl_dock_object_set_type_for_nick ()

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

Assigns an object type to a given nickname. If the nickname already exists, then it reassigns it to a new object type.

`nick` : | The nickname for the object type
`type` : | The object type
Returns : | If the nick was previously assigned, the old type is returned. Otherwise, `G_TYPE_NONE`.

### gdl_dock_object_thaw ()

    void                gdl_dock_object_thaw                (GdlDockObject *object);

### gdl_dock_object_type_from_nick ()

    GType               gdl_dock_object_type_from_nick      (const gchar *nick);

Finds the object type assigned to a given nickname.

`nick` : | The nickname for the object type
Returns : | If the nickname has previously been assigned, then the corresponding object type is returned. Otherwise, `G_TYPE_NONE`.

### gdl_dock_object_unbind ()

    void                gdl_dock_object_unbind              (GdlDockObject *object);

## Property Details

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

      "long-name"                gchar*                : Read / Write / Construct

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 `"pixbuf-icon"` property

      "pixbuf-icon"              gpointer              : Read / Write

A GdkPixbuf to use for the icon of the dock object.

Since 3.3.2

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

      "stock-id"                 gchar*                : Read / Write / Construct

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.
`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.
`user_data` : | user data set when the signal handler was connected.