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;
struct              GdlDockRequest;
struct              GdlDockObject;
struct              GdlDockObjectClass;
#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

  GFlags
   +----GdlDockParamFlags
  GFlags
   +----GdlDockObjectFlags
  GEnum
   +----GdlDockPlacement
  GObject
   +----GInitiallyUnowned
         +----GtkWidget
               +----GtkContainer
                     +----GdlDockObject
                           +----GdlDock
                           +----GdlDockItem
                           +----GdlDockPlaceholder

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
  "stock-id"                 gchar*                : Read / Write / Construct

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;


struct GdlDockRequest

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


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


GDL_DOCK_OBJECT_FLAGS()

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


GDL_DOCK_OBJECT_AUTOMATIC()

#define             GDL_DOCK_OBJECT_AUTOMATIC(obj)


GDL_DOCK_OBJECT_ATTACHED()

#define             GDL_DOCK_OBJECT_ATTACHED(obj)


GDL_DOCK_OBJECT_IN_REFLOW()

#define             GDL_DOCK_OBJECT_IN_REFLOW(obj)


GDL_DOCK_OBJECT_IN_DETACH()

#define             GDL_DOCK_OBJECT_IN_DETACH(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_DOCK_OBJECT_FROZEN()

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


gdl_dock_object_is_compound ()

gboolean            gdl_dock_object_is_compound         (GdlDockObject *object);


gdl_dock_object_detach ()

void                gdl_dock_object_detach              (GdlDockObject *object,
                                                         gboolean recursive);


gdl_dock_object_get_parent_object ()

GdlDockObject *     gdl_dock_object_get_parent_object   (GdlDockObject *object);


gdl_dock_object_freeze ()

void                gdl_dock_object_freeze              (GdlDockObject *object);


gdl_dock_object_thaw ()

void                gdl_dock_object_thaw                (GdlDockObject *object);


gdl_dock_object_reduce ()

void                gdl_dock_object_reduce              (GdlDockObject *object);


gdl_dock_object_dock_request ()

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


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

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


gdl_dock_object_unbind ()

void                gdl_dock_object_unbind              (GdlDockObject *object);


gdl_dock_object_is_bound ()

gboolean            gdl_dock_object_is_bound            (GdlDockObject *object);


gdl_dock_object_reorder ()

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


gdl_dock_object_present ()

void                gdl_dock_object_present             (GdlDockObject *object,
                                                         GdlDockObject *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);


gdl_dock_object_nick_from_type ()

const gchar *       gdl_dock_object_nick_from_type      (GType type);


gdl_dock_object_type_from_nick ()

GType               gdl_dock_object_type_from_nick      (const gchar *nick);


gdl_dock_object_set_type_for_nick ()

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


GDL_TRACE_OBJECT()

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

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