[gdl] Add access function for all members of GdlDockObject
- From: Sebastien Granjoux <sgranjoux src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gdl] Add access function for all members of GdlDockObject
- Date: Fri, 3 Aug 2012 17:15:08 +0000 (UTC)
commit 3d570629c1ecfb43c0a1a5b14f077d7551c5809a
Author: SÃbastien Granjoux <seb sfo free fr>
Date: Fri Aug 3 19:04:08 2012 +0200
Add access function for all members of GdlDockObject
gdl/gdl-dock-bar.c | 4 +-
gdl/gdl-dock-item.c | 26 ++----
gdl/gdl-dock-layout.c | 2 +-
gdl/gdl-dock-master.c | 21 +++--
gdl/gdl-dock-notebook.c | 6 +-
gdl/gdl-dock-object.c | 217 ++++++++++++++++++++++++++++++++++++++++++--
gdl/gdl-dock-object.h | 18 ++++
gdl/gdl-dock-paned.c | 3 +-
gdl/gdl-dock-placeholder.c | 4 +-
gdl/gdl-dock.c | 42 +++++----
10 files changed, 278 insertions(+), 65 deletions(-)
---
diff --git a/gdl/gdl-dock-bar.c b/gdl/gdl-dock-bar.c
index cda5758..6a6f61b 100644
--- a/gdl/gdl-dock-bar.c
+++ b/gdl/gdl-dock-bar.c
@@ -265,7 +265,7 @@ gdl_dock_bar_item_clicked (GtkWidget *button,
g_assert (dockbar != NULL);
g_object_set_data (G_OBJECT (item), "GdlDockBar", NULL);
- controller = gdl_dock_master_get_controller (GDL_DOCK_OBJECT_GET_MASTER (item));
+ controller = gdl_dock_object_get_controller (GDL_DOCK_OBJECT (item));
GDL_DOCK_OBJECT_UNSET_FLAGS (item, GDL_DOCK_ICONIFIED);
gdl_dock_item_show_item (item);
@@ -448,7 +448,7 @@ gdl_dock_bar_new (GdlDock *dock)
/* get the master of the given dock */
if (dock)
- master = GDL_DOCK_OBJECT_GET_MASTER (dock);
+ master = GDL_DOCK_MASTER (gdl_dock_object_get_master (GDL_DOCK_OBJECT (dock)));
return g_object_new (GDL_TYPE_DOCK_BAR,
"master", master, NULL);
diff --git a/gdl/gdl-dock-item.c b/gdl/gdl-dock-item.c
index b17253a..90ef1e1 100644
--- a/gdl/gdl-dock-item.c
+++ b/gdl/gdl-dock-item.c
@@ -693,9 +693,7 @@ gdl_dock_item_set_property (GObject *g_object,
item->behavior = g_value_get_flags (value);
if ((old_beh ^ item->behavior) & GDL_DOCK_ITEM_BEH_LOCKED) {
- if (GDL_DOCK_OBJECT_GET_MASTER (item))
- g_signal_emit_by_name (GDL_DOCK_OBJECT_GET_MASTER (item),
- "layout-changed");
+ gdl_dock_object_layout_changed_notify (GDL_DOCK_OBJECT (item));
g_object_notify (g_object, "locked");
gdl_dock_item_showhide_grip (item);
}
@@ -715,9 +713,7 @@ gdl_dock_item_set_property (GObject *g_object,
gdl_dock_item_showhide_grip (item);
g_object_notify (g_object, "behavior");
- if (GDL_DOCK_OBJECT_GET_MASTER (item))
- g_signal_emit_by_name (GDL_DOCK_OBJECT_GET_MASTER (item),
- "layout-changed");
+ gdl_dock_object_layout_changed_notify (GDL_DOCK_OBJECT (item));
}
break;
}
@@ -1598,7 +1594,7 @@ gdl_dock_item_dock (GdlDockObject *object,
gdl_dock_object_freeze (new_parent);
/* bind the new parent to our master, so the following adds work */
- gdl_dock_object_bind (new_parent, G_OBJECT (GDL_DOCK_OBJECT_GET_MASTER (object)));
+ gdl_dock_object_bind (new_parent, gdl_dock_object_get_master (GDL_DOCK_OBJECT (object)));
/* add the objects */
if (add_ourselves_first) {
@@ -1810,11 +1806,8 @@ static void
gdl_dock_item_hide_cb (GtkWidget *widget,
GdlDockItem *item)
{
- GdlDockMaster *master;
-
g_return_if_fail (item != NULL);
- master = GDL_DOCK_OBJECT_GET_MASTER (item);
gdl_dock_item_hide_item (item);
}
@@ -1998,7 +1991,7 @@ gdl_dock_item_dock_to (GdlDockItem *item,
return;
}
- controller = gdl_dock_master_get_controller (GDL_DOCK_OBJECT_GET_MASTER (item));
+ controller = gdl_dock_object_get_controller (GDL_DOCK_OBJECT (item));
/* FIXME: save previous docking position for later
re-docking... does this make sense now? */
@@ -2196,7 +2189,7 @@ gdl_dock_item_bind (GdlDockItem *item,
g_return_if_fail (dock == NULL || GDL_IS_DOCK (dock));
gdl_dock_object_bind (GDL_DOCK_OBJECT (item),
- G_OBJECT (GDL_DOCK_OBJECT_GET_MASTER (dock)));
+ gdl_dock_object_get_master (GDL_DOCK_OBJECT (dock)));
}
/* convenient function (and to preserve source compat) */
@@ -2267,23 +2260,22 @@ gdl_dock_item_show_item (GdlDockItem *item)
if (gdl_dock_object_is_bound (GDL_DOCK_OBJECT (item))) {
GdlDockObject *toplevel;
- toplevel = gdl_dock_master_get_controller
- (GDL_DOCK_OBJECT_GET_MASTER (item));
+ toplevel = gdl_dock_object_get_controller (GDL_DOCK_OBJECT (item));
if (toplevel == GDL_DOCK_OBJECT (item)) return;
if (item->behavior & GDL_DOCK_ITEM_BEH_NEVER_FLOATING) {
g_warning("Object %s has no default position and flag GDL_DOCK_ITEM_BEH_NEVER_FLOATING is set.\n",
- GDL_DOCK_OBJECT(item)->name);
+ gdl_dock_object_get_name (GDL_DOCK_OBJECT (item)));
return;
} else if (toplevel) {
gdl_dock_object_dock (toplevel, GDL_DOCK_OBJECT (item),
GDL_DOCK_FLOATING, NULL);
} else
- g_warning("There is no toplevel window. GdlDockItem %s cannot be shown.\n", GDL_DOCK_OBJECT(item)->name);
+ g_warning("There is no toplevel window. GdlDockItem %s cannot be shown.\n", gdl_dock_object_get_name (GDL_DOCK_OBJECT (item)));
return;
} else
g_warning("GdlDockItem %s is not bound. It cannot be shown.\n",
- GDL_DOCK_OBJECT(item)->name);
+ gdl_dock_object_get_name (GDL_DOCK_OBJECT (item)));
return;
}
diff --git a/gdl/gdl-dock-layout.c b/gdl/gdl-dock-layout.c
index 9b91591..e015ba3 100644
--- a/gdl/gdl-dock-layout.c
+++ b/gdl/gdl-dock-layout.c
@@ -556,7 +556,7 @@ gdl_dock_layout_new (GdlDock *dock)
/* get the master of the given dock */
if (dock)
- master = GDL_DOCK_OBJECT_GET_MASTER (dock);
+ master = GDL_DOCK_MASTER (gdl_dock_object_get_master (GDL_DOCK_OBJECT (dock)));
return g_object_new (GDL_TYPE_DOCK_LAYOUT,
"master", master,
diff --git a/gdl/gdl-dock-master.c b/gdl/gdl-dock-master.c
index f616b5d..7b431b4 100644
--- a/gdl/gdl-dock-master.c
+++ b/gdl/gdl-dock-master.c
@@ -272,11 +272,11 @@ _gdl_dock_master_remove (GdlDockObject *object,
0, 0, NULL, NULL, master);
/* unref the object from the hash if it's there */
- if (object->name) {
+ if (gdl_dock_object_get_name (object) != NULL) {
GdlDockObject *found_object;
- found_object = g_hash_table_lookup (master->dock_objects, object->name);
+ found_object = g_hash_table_lookup (master->dock_objects, gdl_dock_object_get_name (object));
if (found_object == object) {
- g_hash_table_remove (master->dock_objects, object->name);
+ g_hash_table_remove (master->dock_objects, gdl_dock_object_get_name (object));
g_object_unref (object);
}
}
@@ -531,7 +531,7 @@ gdl_dock_master_drag_motion (GdlDockItem *item,
gdk_window_get_user_data (window, (gpointer) &widget);
if (GTK_IS_WIDGET (widget)) {
while (widget && (!GDL_IS_DOCK (widget) ||
- GDL_DOCK_OBJECT_GET_MASTER (widget) != master))
+ gdl_dock_object_get_master (GDL_DOCK_OBJECT (widget)) != G_OBJECT (master)))
widget = gtk_widget_get_parent (widget);
if (widget) {
gint win_w, win_h;
@@ -804,20 +804,23 @@ gdl_dock_master_add (GdlDockMaster *master,
GdlDockObject *found_object;
/* create a name for the object if it doesn't have one */
- if (!object->name)
+ if (gdl_dock_object_get_name (object) == NULL) {
/* directly set the name, since it's a construction only
property */
- object->name = g_strdup_printf ("__dock_%u", master->priv->number++);
+ gchar *name = g_strdup_printf ("__dock_%u", master->priv->number++);
+ gdl_dock_object_set_name (object, name);
+ g_free (name);
+ }
/* add the object to our hash list */
- if ((found_object = g_hash_table_lookup (master->dock_objects, object->name))) {
+ if ((found_object = g_hash_table_lookup (master->dock_objects, gdl_dock_object_get_name (object)))) {
g_warning (_("master %p: unable to add object %p[%s] to the hash. "
"There already is an item with that name (%p)."),
- master, object, object->name, found_object);
+ master, object, gdl_dock_object_get_name (object), found_object);
}
else {
g_object_ref_sink (object);
- g_hash_table_insert (master->dock_objects, g_strdup (object->name), object);
+ g_hash_table_insert (master->dock_objects, g_strdup (gdl_dock_object_get_name (object)), object);
}
}
diff --git a/gdl/gdl-dock-notebook.c b/gdl/gdl-dock-notebook.c
index f32c350..0232fdf 100644
--- a/gdl/gdl-dock-notebook.c
+++ b/gdl/gdl-dock-notebook.c
@@ -283,10 +283,8 @@ gdl_dock_notebook_switch_page_cb (GtkNotebook *nb,
notebook = GDL_DOCK_NOTEBOOK (data);
current_page = gtk_notebook_get_current_page (nb);
- if (GDL_DOCK_ITEM_USER_ACTION (notebook) &&
- GDL_DOCK_OBJECT (notebook)->master)
- g_signal_emit_by_name (GDL_DOCK_OBJECT (notebook)->master,
- "layout-changed");
+ if (GDL_DOCK_ITEM_USER_ACTION (notebook))
+ gdl_dock_object_layout_changed_notify (GDL_DOCK_OBJECT (notebook));
/* Signal that the old dock has been deselected */
current_item = GDL_DOCK_ITEM (gtk_notebook_get_nth_page (nb, current_page));
diff --git a/gdl/gdl-dock-object.c b/gdl/gdl-dock-object.c
index 61b17ce..975a64b 100644
--- a/gdl/gdl-dock-object.c
+++ b/gdl/gdl-dock-object.c
@@ -266,19 +266,16 @@ gdl_dock_object_set_property (GObject *g_object,
switch (prop_id) {
case PROP_NAME:
- g_free (object->name);
- object->name = g_value_dup_string (value);
+ gdl_dock_object_set_name (object, g_value_get_string (value));
break;
case PROP_LONG_NAME:
- g_free (object->long_name);
- object->long_name = g_value_dup_string (value);
+ gdl_dock_object_set_long_name (object, g_value_get_string (value));
break;
case PROP_STOCK_ID:
- g_free (object->stock_id);
- object->stock_id = g_value_dup_string (value);
+ gdl_dock_object_set_stock_id (object, g_value_get_string (value));
break;
case PROP_PIXBUF_ICON:
- object->pixbuf_icon = g_value_get_pointer (value);
+ gdl_dock_object_set_pixbuf (object, g_value_get_pointer (value));
break;
case PROP_MASTER:
if (g_value_get_object (value))
@@ -402,8 +399,7 @@ gdl_dock_object_update_parent_visibility (GdlDockObject *object)
GDL_DOCK_OBJECT_UNSET_FLAGS (parent, GDL_DOCK_ATTACHED);
gtk_widget_set_visible (GTK_WIDGET (parent), visible);
}
- if (object->master)
- g_signal_emit_by_name (object->master, "layout-changed");
+ gdl_dock_object_layout_changed_notify (object);
}
static void
@@ -865,6 +861,59 @@ gdl_dock_object_is_bound (GdlDockObject *object)
}
/**
+ * gdl_dock_object_get_master:
+ * @object: a #GdlDockObject
+ *
+ * Retrieves the master of the object.
+ *
+ * Return value: (transfer none): a #GdlDockMaster object
+ *
+ * Since: 3.6
+ */
+GObject *
+gdl_dock_object_get_master (GdlDockObject *object)
+{
+ g_return_val_if_fail (GDL_IS_DOCK_OBJECT (object), NULL);
+
+ return object->master;
+}
+
+/**
+ * gdl_dock_object_get_controller:
+ * @object: a #GdlDockObject
+ *
+ * Retrieves the controller of the object.
+ *
+ * Return value: (transfer none): a #GdlDockObject object
+ *
+ * Since: 3.6
+ */
+GdlDockObject *
+gdl_dock_object_get_controller (GdlDockObject *object)
+{
+ g_return_val_if_fail (GDL_IS_DOCK_OBJECT (object), NULL);
+
+ return gdl_dock_master_get_controller (GDL_DOCK_MASTER (object->master));
+}
+
+/**
+ * gdl_dock_object_layout_changed_notify:
+ * @object: a #GdlDockObject
+ *
+ * Emits the #GdlDockMaster::layout-changed signal on the master of the object
+ * if existing.
+ *
+ * Since: 3.6
+ **/
+void
+gdl_dock_object_layout_changed_notify (GdlDockObject *object)
+{
+ if (object->master)
+ g_signal_emit_by_name (object->master, "layout-changed");
+}
+
+
+/**
* gdl_dock_object_reorder:
* @object: A #GdlDockObject
* @child: The child widget to reorder
@@ -1009,6 +1058,156 @@ gdl_dock_object_set_manual (GdlDockObject *object)
object->flags &= ~GDL_DOCK_AUTOMATIC;
}
+/**
+ * gdl_dock_object_get_name:
+ * @object: a #GdlDockObject
+ *
+ * Retrieves the name of the object. This name is used to identify the object.
+ *
+ * Return value: the name of the object.
+ *
+ * Since: 3.6
+ */
+const gchar *
+gdl_dock_object_get_name (GdlDockObject *object)
+{
+ g_return_val_if_fail (GDL_IS_DOCK_OBJECT (object), NULL);
+
+ return object->name;
+}
+
+/**
+ * gdl_dock_object_set_name:
+ * @object: a #GdlDockObject
+ * @name: a name for the object
+ *
+ * Set the name of the object used to identify it.
+ *
+ * Since: 3.6
+ */
+void
+gdl_dock_object_set_name (GdlDockObject *object,
+ const gchar *name)
+{
+ g_return_if_fail (GDL_IS_DOCK_OBJECT (object));
+
+ g_free (object->name);
+ object->name = g_strdup (name);
+}
+
+/**
+ * gdl_dock_object_get_long_name:
+ * @object: a #GdlDockObject
+ *
+ * Retrieves the long name of the object. This name is an human readable string
+ * which can be displayed in the user interface.
+ *
+ * Return value: the name of the object.
+ *
+ * Since: 3.6
+ */
+const gchar *
+gdl_dock_object_get_long_name (GdlDockObject *object)
+{
+ g_return_val_if_fail (GDL_IS_DOCK_OBJECT (object), NULL);
+
+ return object->long_name;
+}
+
+/**
+ * gdl_dock_object_set_long_name:
+ * @object: a #GdlDockObject
+ * @name: a name for the object
+ *
+ * Set the long name of the object. This name is an human readable string
+ * which can be displayed in the user interface.
+ *
+ * Since: 3.6
+ */
+void
+gdl_dock_object_set_long_name (GdlDockObject *object,
+ const gchar *name)
+{
+ g_return_if_fail (GDL_IS_DOCK_OBJECT (object));
+
+ g_free (object->long_name);
+ object->long_name = g_strdup (name);
+}
+
+/**
+ * gdl_dock_object_get_stock_id:
+ * @object: a #GdlDockObject
+ *
+ * Retrieves the a stock id used as the object icon.
+ *
+ * Return value: A stock id corresponding to the object icon.
+ *
+ * Since: 3.6
+ */
+const gchar *
+gdl_dock_object_get_stock_id (GdlDockObject *object)
+{
+ g_return_val_if_fail (GDL_IS_DOCK_OBJECT (object), NULL);
+
+ return object->stock_id;
+}
+
+/**
+ * gdl_dock_object_set_stock_id:
+ * @object: a #GdlDockObject
+ * @stock_id: a stock id
+ *
+ * Set an icon for the dock object using a stock id.
+ *
+ * Since: 3.6
+ */
+void
+gdl_dock_object_set_stock_id (GdlDockObject *object,
+ const gchar *stock_id)
+{
+ g_return_if_fail (GDL_IS_DOCK_OBJECT (object));
+
+ g_free (object->stock_id);
+ object->stock_id = g_strdup (stock_id);
+}
+
+/**
+ * gdl_dock_object_get_pixbuf:
+ * @object: a #GdlDockObject
+ *
+ * Retrieves a pixbuf used as the dock object icon.
+ *
+ * Return value: (transfer none): icon for dock object
+ *
+ * Since: 3.6
+ */
+GdkPixbuf *
+gdl_dock_object_get_pixbuf (GdlDockObject *object)
+{
+ g_return_val_if_fail (GDL_IS_DOCK_OBJECT (object), NULL);
+
+ return object->pixbuf_icon;
+}
+
+/**
+ * gdl_dock_object_set_pixbuf:
+ * @object: a #GdlDockObject
+ * @icon: (allow-none): a icon or %NULL
+ *
+ * Set a icon for a dock object using a #GdkPixbuf.
+ *
+ * Since: 3.6
+ */
+void
+gdl_dock_object_set_pixbuf (GdlDockObject *object,
+ GdkPixbuf *icon)
+{
+ g_return_if_fail (GDL_IS_DOCK_OBJECT (object));
+ g_return_if_fail (icon == NULL || GDK_IS_PIXBUF (icon));
+
+ object->pixbuf_icon =icon;
+}
+
/* Dock param type functions
diff --git a/gdl/gdl-dock-object.h b/gdl/gdl-dock-object.h
index 877d247..0153a5f 100644
--- a/gdl/gdl-dock-object.h
+++ b/gdl/gdl-dock-object.h
@@ -130,6 +130,7 @@ struct _GdlDockRequest {
struct _GdlDockObject {
GtkContainer container;
+ /* private */
GdlDockObjectFlags flags;
gint freeze_count;
@@ -301,6 +302,9 @@ void gdl_dock_object_bind (GdlDockObject *object,
GObject *master);
void gdl_dock_object_unbind (GdlDockObject *object);
gboolean gdl_dock_object_is_bound (GdlDockObject *object);
+GObject *gdl_dock_object_get_master (GdlDockObject *object);
+GdlDockObject *gdl_dock_object_get_controller (GdlDockObject *object);
+void gdl_dock_object_layout_changed_notify (GdlDockObject *object);
gboolean gdl_dock_object_reorder (GdlDockObject *object,
GdlDockObject *child,
@@ -319,6 +323,20 @@ gboolean gdl_dock_object_is_closed (GdlDockObject *object);
gboolean gdl_dock_object_is_automatic (GdlDockObject *object);
void gdl_dock_object_set_manual (GdlDockObject *object);
+const gchar *gdl_dock_object_get_name (GdlDockObject *object);
+void gdl_dock_object_set_name (GdlDockObject *object,
+ const gchar *name);
+const gchar *gdl_dock_object_get_long_name (GdlDockObject *object);
+void gdl_dock_object_set_long_name (GdlDockObject *object,
+ const gchar *name);
+const gchar *gdl_dock_object_get_stock_id (GdlDockObject *object);
+void gdl_dock_object_set_stock_id (GdlDockObject *object,
+ const gchar *stock_id);
+GdkPixbuf *gdl_dock_object_get_pixbuf (GdlDockObject *object);
+void gdl_dock_object_set_pixbuf (GdlDockObject *object,
+ GdkPixbuf *icon);
+
+
/* other types */
/* this type derives from G_TYPE_STRING and is meant to be the basic
diff --git a/gdl/gdl-dock-paned.c b/gdl/gdl-dock-paned.c
index bbdf16a..52cdd28 100644
--- a/gdl/gdl-dock-paned.c
+++ b/gdl/gdl-dock-paned.c
@@ -185,8 +185,7 @@ gdl_dock_paned_button_cb (GtkWidget *widget,
GDL_DOCK_OBJECT_UNSET_FLAGS (user_data, GDL_DOCK_USER_ACTION);
if (paned->position_changed) {
/* emit pending layout changed signal to track separator position */
- if (GDL_DOCK_OBJECT (paned)->master)
- g_signal_emit_by_name (GDL_DOCK_OBJECT (paned)->master, "layout-changed");
+ gdl_dock_object_layout_changed_notify (GDL_DOCK_OBJECT (paned));
paned->position_changed = FALSE;
}
}
diff --git a/gdl/gdl-dock-placeholder.c b/gdl/gdl-dock-placeholder.c
index 15124ab..b7910b5 100644
--- a/gdl/gdl-dock-placeholder.c
+++ b/gdl/gdl-dock-placeholder.c
@@ -516,7 +516,7 @@ gdl_dock_placeholder_dock (GdlDockObject *object,
}
/* dock the item as a floating of the controller */
- toplevel = gdl_dock_master_get_controller (GDL_DOCK_OBJECT_GET_MASTER (ph));
+ toplevel = gdl_dock_object_get_controller (GDL_DOCK_OBJECT (ph));
gdl_dock_object_dock (toplevel, requestor,
GDL_DOCK_FLOATING, NULL);
}
@@ -684,7 +684,7 @@ detach_cb (GdlDockObject *object,
#endif
/* the toplevel was detached: we attach ourselves to the
controller with an initial placement of floating */
- new_host = gdl_dock_master_get_controller (GDL_DOCK_OBJECT_GET_MASTER (ph));
+ new_host = gdl_dock_object_get_controller (GDL_DOCK_OBJECT (ph));
/*
ph->priv->placement_stack = g_slist_prepend (
diff --git a/gdl/gdl-dock.c b/gdl/gdl-dock.c
index 2dbd625..e3d213a 100644
--- a/gdl/gdl-dock.c
+++ b/gdl/gdl-dock.c
@@ -350,7 +350,7 @@ gdl_dock_constructor (GType type,
GdlDockMaster *master;
/* create a master for the dock if none was provided in the construction */
- master = GDL_DOCK_OBJECT_GET_MASTER (GDL_DOCK_OBJECT (dock));
+ master = GDL_DOCK_MASTER (gdl_dock_object_get_master (GDL_DOCK_OBJECT (dock)));
if (!master) {
gdl_dock_object_set_manual (GDL_DOCK_OBJECT (dock));
master = g_object_new (GDL_TYPE_DOCK_MASTER, NULL);
@@ -416,8 +416,8 @@ gdl_dock_set_property (GObject *object,
dock->priv->floating = g_value_get_boolean (value);
break;
case PROP_DEFAULT_TITLE:
- if (GDL_DOCK_OBJECT (object)->master)
- g_object_set (GDL_DOCK_OBJECT (object)->master,
+ if (gdl_dock_object_get_master (GDL_DOCK_OBJECT (object)) != NULL)
+ g_object_set (gdl_dock_object_get_master (GDL_DOCK_OBJECT (object)),
"default-title", g_value_get_string (value),
NULL);
break;
@@ -468,9 +468,9 @@ gdl_dock_get_property (GObject *object,
g_value_set_boolean (value, dock->priv->floating);
break;
case PROP_DEFAULT_TITLE:
- if (GDL_DOCK_OBJECT (object)->master) {
+ if (gdl_dock_object_get_master (GDL_DOCK_OBJECT (object)) != NULL) {
gchar *default_title;
- g_object_get (GDL_DOCK_OBJECT (object)->master,
+ g_object_get (gdl_dock_object_get_master (GDL_DOCK_OBJECT (object)),
"default-title", &default_title,
NULL);
@@ -529,11 +529,11 @@ gdl_dock_set_title (GdlDock *dock)
if (!dock->priv->window)
return;
- if (!dock->priv->auto_title && object->long_name) {
- title = object->long_name;
+ if (!dock->priv->auto_title && gdl_dock_object_get_long_name (object)) {
+ title = g_strdup (gdl_dock_object_get_long_name (object));
}
- else if (object->master) {
- g_object_get (object->master, "default-title", &title, NULL);
+ else if (gdl_dock_object_get_master (object) != NULL) {
+ g_object_get (G_OBJECT (gdl_dock_object_get_master (object)), "default-title", &title, NULL);
}
if (!title && dock->root) {
@@ -544,7 +544,7 @@ gdl_dock_set_title (GdlDock *dock)
/* set a default title in the long_name */
dock->priv->auto_title = TRUE;
title = g_strdup_printf (
- _("Dock #%d"), GDL_DOCK_MASTER (object->master)->dock_number++);
+ _("Dock #%d"), GDL_DOCK_MASTER (gdl_dock_object_get_master (object))->dock_number++);
}
gtk_window_set_title (GTK_WINDOW (dock->priv->window), title);
@@ -713,6 +713,7 @@ static void
gdl_dock_show (GtkWidget *widget)
{
GdlDock *dock;
+ GdlDockMaster *master;
g_return_if_fail (widget != NULL);
g_return_if_fail (GDL_IS_DOCK (widget));
@@ -723,8 +724,9 @@ gdl_dock_show (GtkWidget *widget)
if (dock->priv->floating && dock->priv->window)
gtk_widget_show (dock->priv->window);
- if (GDL_DOCK_IS_CONTROLLER (dock)) {
- gdl_dock_master_foreach_toplevel (GDL_DOCK_OBJECT_GET_MASTER (dock),
+ master = GDL_DOCK_MASTER (gdl_dock_object_get_master (GDL_DOCK_OBJECT (dock)));
+ if (GDL_DOCK (gdl_dock_master_get_controller (master)) == dock) {
+ gdl_dock_master_foreach_toplevel (master,
FALSE, (GFunc) gdl_dock_foreach_automatic,
gtk_widget_show);
}
@@ -734,6 +736,7 @@ static void
gdl_dock_hide (GtkWidget *widget)
{
GdlDock *dock;
+ GdlDockMaster *master;
g_return_if_fail (widget != NULL);
g_return_if_fail (GDL_IS_DOCK (widget));
@@ -744,8 +747,9 @@ gdl_dock_hide (GtkWidget *widget)
if (dock->priv->floating && dock->priv->window)
gtk_widget_hide (dock->priv->window);
- if (GDL_DOCK_IS_CONTROLLER (dock)) {
- gdl_dock_master_foreach_toplevel (GDL_DOCK_OBJECT_GET_MASTER (dock),
+ master = GDL_DOCK_MASTER (gdl_dock_object_get_master (GDL_DOCK_OBJECT (dock)));
+ if (GDL_DOCK (gdl_dock_master_get_controller (master)) == dock) {
+ gdl_dock_master_foreach_toplevel (master,
FALSE, (GFunc) gdl_dock_foreach_automatic,
gtk_widget_hide);
}
@@ -1120,7 +1124,7 @@ gdl_dock_new_from (GdlDock *original,
g_return_val_if_fail (original != NULL, NULL);
new_dock = g_object_new (GDL_TYPE_DOCK,
- "master", GDL_DOCK_OBJECT_GET_MASTER (original),
+ "master", gdl_dock_object_get_master (GDL_DOCK_OBJECT (original)),
"floating", floating,
NULL);
gdl_dock_object_set_manual (GDL_DOCK_OBJECT (new_dock));
@@ -1303,7 +1307,7 @@ gdl_dock_add_item (GdlDock *dock,
g_return_if_fail (item != NULL);
/* Check if a placeholder widget already exist in the same dock */
- placeholder = gdl_dock_master_get_object (GDL_DOCK_OBJECT_GET_MASTER (dock), GDL_DOCK_OBJECT (item)->name);
+ placeholder = gdl_dock_master_get_object (GDL_DOCK_MASTER (gdl_dock_object_get_master (GDL_DOCK_OBJECT (dock))), gdl_dock_object_get_name (GDL_DOCK_OBJECT (item)));
if ((placeholder != GDL_DOCK_OBJECT (item)) && (placeholder != NULL)) {
if (gdl_dock_object_get_toplevel (placeholder) == dock) {
parent = gdl_dock_object_get_parent_object (placeholder);
@@ -1375,7 +1379,7 @@ gdl_dock_add_floating_item (GdlDock *dock,
g_return_if_fail (item != NULL);
new_dock = GDL_DOCK (g_object_new (GDL_TYPE_DOCK,
- "master", GDL_DOCK_OBJECT_GET_MASTER (dock),
+ "master", gdl_dock_object_get_master (GDL_DOCK_OBJECT (dock)),
"floating", TRUE,
"width", width,
"height", height,
@@ -1415,7 +1419,7 @@ gdl_dock_get_item_by_name (GdlDock *dock,
g_return_val_if_fail (dock != NULL && name != NULL, NULL);
/* proxy the call to our master */
- found = gdl_dock_master_get_object (GDL_DOCK_OBJECT_GET_MASTER (dock), name);
+ found = gdl_dock_master_get_object (GDL_DOCK_MASTER (gdl_dock_object_get_master (GDL_DOCK_OBJECT (dock))), name);
return (found && GDL_IS_DOCK_ITEM (found)) ? GDL_DOCK_ITEM (found) : NULL;
}
@@ -1437,7 +1441,7 @@ gdl_dock_get_named_items (GdlDock *dock)
g_return_val_if_fail (dock != NULL, NULL);
- gdl_dock_master_foreach (GDL_DOCK_OBJECT_GET_MASTER (dock),
+ gdl_dock_master_foreach (GDL_DOCK_MASTER (gdl_dock_object_get_master (GDL_DOCK_OBJECT (dock))),
(GFunc) _gdl_dock_foreach_build_list, &list);
return list;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]