[gdl] Deprecated GDL_DOCK_AUTOMATIC
- From: Sebastien Granjoux <sgranjoux src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gdl] Deprecated GDL_DOCK_AUTOMATIC
- Date: Fri, 3 Aug 2012 17:14:48 +0000 (UTC)
commit 871f9730e0ca92a06b317cdb61065e9c56f2a503
Author: SÃbastien Granjoux <seb sfo free fr>
Date: Fri Aug 3 14:30:27 2012 +0200
Deprecated GDL_DOCK_AUTOMATIC
gdl/gdl-dock-item.c | 6 +++---
gdl/gdl-dock-layout.c | 2 +-
gdl/gdl-dock-master.c | 14 +++++++-------
gdl/gdl-dock-notebook.c | 7 ++++---
gdl/gdl-dock-object.c | 42 ++++++++++++++++++++++++++++++++++++++++--
gdl/gdl-dock-object.h | 7 +++++++
gdl/gdl-dock-paned.c | 7 ++++---
gdl/gdl-dock.c | 10 +++++-----
8 files changed, 71 insertions(+), 24 deletions(-)
---
diff --git a/gdl/gdl-dock-item.c b/gdl/gdl-dock-item.c
index 9cd23da..c25abb4 100644
--- a/gdl/gdl-dock-item.c
+++ b/gdl/gdl-dock-item.c
@@ -1899,7 +1899,7 @@ gdl_dock_item_new (const gchar *name,
"long-name", long_name,
"behavior", behavior,
NULL));
- GDL_DOCK_OBJECT_UNSET_FLAGS (item, GDL_DOCK_AUTOMATIC);
+ gdl_dock_object_set_manual (GDL_DOCK_OBJECT (item));
gtk_widget_show (GTK_WIDGET (item));
return GTK_WIDGET (item);
@@ -1931,7 +1931,7 @@ gdl_dock_item_new_with_stock (const gchar *name,
"stock-id", stock_id,
"behavior", behavior,
NULL));
- GDL_DOCK_OBJECT_UNSET_FLAGS (item, GDL_DOCK_AUTOMATIC);
+ gdl_dock_object_set_manual (GDL_DOCK_OBJECT (item));
return GTK_WIDGET (item);
}
@@ -1965,7 +1965,7 @@ gdl_dock_item_new_with_pixbuf_icon (const gchar *name,
"behavior", behavior,
NULL));
- GDL_DOCK_OBJECT_UNSET_FLAGS (item, GDL_DOCK_AUTOMATIC);
+ gdl_dock_object_set_manual (GDL_DOCK_OBJECT (item));
gdl_dock_item_set_tablabel (item, gtk_label_new (long_name));
return GTK_WIDGET (item);
diff --git a/gdl/gdl-dock-layout.c b/gdl/gdl-dock-layout.c
index cc51944..9b91591 100644
--- a/gdl/gdl-dock-layout.c
+++ b/gdl/gdl-dock-layout.c
@@ -361,7 +361,7 @@ gdl_dock_layout_setup_object (GdlDockMaster *master,
other objects are bound */
object = g_object_newv (object_type, n_params, params);
if (object_name) {
- GDL_DOCK_OBJECT_UNSET_FLAGS (object, GDL_DOCK_AUTOMATIC);
+ gdl_dock_object_set_manual (GDL_DOCK_OBJECT (object));
gdl_dock_master_add (master, object);
}
}
diff --git a/gdl/gdl-dock-master.c b/gdl/gdl-dock-master.c
index 724d017..4b3b7d8 100644
--- a/gdl/gdl-dock-master.c
+++ b/gdl/gdl-dock-master.c
@@ -250,7 +250,7 @@ _gdl_dock_master_remove (GdlDockObject *object,
probably a non-floating and manual */
last = g_list_last (master->toplevel_docks);
while (last) {
- if (!GDL_DOCK_OBJECT_AUTOMATIC (last->data)) {
+ if (!gdl_dock_object_is_automatic (last->data)) {
new_controller = GDL_DOCK_OBJECT (last->data);
break;
}
@@ -737,7 +737,7 @@ item_dock_cb (GdlDockObject *object,
* assumed that object will not change its visibility... for the
* requestor, however, could mean that it's being shown */
if (!GDL_DOCK_OBJECT_IN_REFLOW (requestor) &&
- !GDL_DOCK_OBJECT_AUTOMATIC (requestor)) {
+ !gdl_dock_object_is_automatic (requestor)) {
if (!master->priv->idle_layout_changed_id)
master->priv->idle_layout_changed_id =
g_idle_add (idle_emit_layout_changed, master);
@@ -755,7 +755,7 @@ item_detach_cb (GdlDockObject *object,
g_return_if_fail (master && GDL_IS_DOCK_MASTER (master));
if (!GDL_DOCK_OBJECT_IN_REFLOW (object) &&
- !GDL_DOCK_OBJECT_AUTOMATIC (object)) {
+ !gdl_dock_object_is_automatic (object)) {
if (!master->priv->idle_layout_changed_id)
master->priv->idle_layout_changed_id =
g_idle_add (idle_emit_layout_changed, master);
@@ -800,7 +800,7 @@ gdl_dock_master_add (GdlDockMaster *master,
{
g_return_if_fail (master != NULL && object != NULL);
- if (!GDL_DOCK_OBJECT_AUTOMATIC (object)) {
+ if (!gdl_dock_object_is_automatic (object)) {
GdlDockObject *found_object;
/* create a name for the object if it doesn't have one */
@@ -873,7 +873,7 @@ gdl_dock_master_add (GdlDockMaster *master,
/* post a layout_changed emission if the item is not automatic
* (since it should be added to the items model) */
- if (!GDL_DOCK_OBJECT_AUTOMATIC (object)) {
+ if (!gdl_dock_object_is_automatic (object)) {
if (!master->priv->idle_layout_changed_id)
master->priv->idle_layout_changed_id =
g_idle_add (idle_emit_layout_changed, master);
@@ -913,7 +913,7 @@ gdl_dock_master_remove (GdlDockMaster *master,
/* post a layout_changed emission if the item is not automatic
* (since it should be removed from the items model) */
- if (!GDL_DOCK_OBJECT_AUTOMATIC (object)) {
+ if (!gdl_dock_object_is_automatic (object)) {
if (!master->priv->idle_layout_changed_id)
master->priv->idle_layout_changed_id =
g_idle_add (idle_emit_layout_changed, master);
@@ -1031,7 +1031,7 @@ gdl_dock_master_set_controller (GdlDockMaster *master,
g_return_if_fail (master != NULL);
if (new_controller) {
- if (GDL_DOCK_OBJECT_AUTOMATIC (new_controller))
+ if (gdl_dock_object_is_automatic (new_controller))
g_warning (_("The new dock controller %p is automatic. Only manual "
"dock objects should be named controller."), new_controller);
diff --git a/gdl/gdl-dock-notebook.c b/gdl/gdl-dock-notebook.c
index 51867ef..f32c350 100644
--- a/gdl/gdl-dock-notebook.c
+++ b/gdl/gdl-dock-notebook.c
@@ -516,8 +516,9 @@ gdl_dock_notebook_reorder (GdlDockObject *object,
/**
* gdl_dock_notebook_new:
*
- * Creates a new GDL notebook. This widget is normally created and destroyed
- * automatically when needed by the master.
+ * Creates a new manual #GdlDockNotebook widget. This function is seldom useful as
+ * such widget is normally created and destroyed automatically when needed by
+ * the master.
*
* Returns: The newly created #GdlDockNotebook.
*/
@@ -527,7 +528,7 @@ gdl_dock_notebook_new (void)
GdlDockNotebook *notebook;
notebook = GDL_DOCK_NOTEBOOK (g_object_new (GDL_TYPE_DOCK_NOTEBOOK, NULL));
- GDL_DOCK_OBJECT_UNSET_FLAGS (notebook, GDL_DOCK_AUTOMATIC);
+ gdl_dock_object_set_manual (GDL_DOCK_OBJECT (notebook));
return GTK_WIDGET (notebook);
}
diff --git a/gdl/gdl-dock-object.c b/gdl/gdl-dock-object.c
index 4883c6d..38e32ee 100644
--- a/gdl/gdl-dock-object.c
+++ b/gdl/gdl-dock-object.c
@@ -389,7 +389,7 @@ gdl_dock_object_update_parent_visibility (GdlDockObject *object)
g_return_if_fail (object != NULL);
parent = gdl_dock_object_get_parent_object (object);
- if (parent && GDL_DOCK_OBJECT_AUTOMATIC (parent))
+ if (parent && gdl_dock_object_is_automatic (parent))
{
gboolean visible = FALSE;
@@ -412,7 +412,7 @@ gdl_dock_object_foreach_automatic (GdlDockObject *object,
{
void (* function) (GtkWidget *) = user_data;
- if (GDL_DOCK_OBJECT_AUTOMATIC (object))
+ if (gdl_dock_object_is_automatic (object))
(* function) (GTK_WIDGET (object));
}
@@ -958,6 +958,44 @@ gdl_dock_object_is_closed (GdlDockObject *object)
return (object->flags & GDL_DOCK_ATTACHED) == 0;
}
+/**
+ * gdl_dock_object_is_automatic:
+ * @object: a #GdlDockObject
+ *
+ * Determine if an object is managed by the dock master, such object is
+ * destroyed automatically when it is not needed anymore.
+ *
+ * Return value: %TRUE if the object is managed automatically by the dock master.
+ *
+ * Since: 3.6
+ */
+gboolean
+gdl_dock_object_is_automatic (GdlDockObject *object)
+{
+ g_return_val_if_fail (GDL_IS_DOCK_OBJECT (object), FALSE);
+
+ return (object->flags & GDL_DOCK_AUTOMATIC) != 0;
+}
+
+/**
+ * gdl_dock_object_set_manual:
+ * @object: a #GdlDockObject
+ *
+ * A #GdlDockObject is managed by default by the dock master, use this function
+ * to make it a manual object if you want to manage the destruction of the
+ * object.
+ *
+ * Since: 3.6
+ */
+void
+gdl_dock_object_set_manual (GdlDockObject *object)
+{
+ g_return_if_fail (GDL_IS_DOCK_OBJECT (object));
+
+ object->flags &= ~GDL_DOCK_AUTOMATIC;
+}
+
+
/* Dock param type functions
*---------------------------------------------------------------------------*/
diff --git a/gdl/gdl-dock-object.h b/gdl/gdl-dock-object.h
index 6e67a4c..6067285 100644
--- a/gdl/gdl-dock-object.h
+++ b/gdl/gdl-dock-object.h
@@ -184,15 +184,19 @@ struct _GdlDockObjectClass {
*/
#define GDL_DOCK_OBJECT_FLAGS(obj) (GDL_DOCK_OBJECT (obj)->flags)
+#ifndef GDL_DISABLE_DEPRECATED
/**
* GDL_DOCK_OBJECT_AUTOMATIC:
* @obj: A #GdlDockObject
*
* Evaluates to %TRUE if the object's lifecycle is entirely managed by the dock
* master.
+ *
+ * Deprecated: 3.6: Use gdl_dock_object_is_automatic()
*/
#define GDL_DOCK_OBJECT_AUTOMATIC(obj) \
((GDL_DOCK_OBJECT_FLAGS (obj) & GDL_DOCK_AUTOMATIC) != 0)
+#endif
#ifndef GDL_DISABLE_DEPRECATED
/**
@@ -299,6 +303,9 @@ gboolean gdl_dock_object_child_placement (GdlDockObject *object,
gboolean gdl_dock_object_is_closed (GdlDockObject *object);
+gboolean gdl_dock_object_is_automatic (GdlDockObject *object);
+void gdl_dock_object_set_manual (GdlDockObject *object);
+
/* 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 fb56bf4..bbdf16a 100644
--- a/gdl/gdl-dock-paned.c
+++ b/gdl/gdl-dock-paned.c
@@ -686,8 +686,9 @@ gdl_dock_paned_child_placement (GdlDockObject *object,
* gdl_dock_paned_new:
* @orientation: the pane's orientation.
*
- * Creates a new #GdlDockPaned widget. This widget is normally created and destroyed
- * automatically when needed by the master.
+ * Creates a new manual #GdlDockPaned widget. This function is seldom useful as
+ * such widget is normally created and destroyed automatically when needed by
+ * the master.
*
* Returns: a new #GdlDockPaned.
*/
@@ -698,7 +699,7 @@ gdl_dock_paned_new (GtkOrientation orientation)
paned = GDL_DOCK_PANED (g_object_new (GDL_TYPE_DOCK_PANED,
"orientation", orientation, NULL));
- GDL_DOCK_OBJECT_UNSET_FLAGS (paned, GDL_DOCK_AUTOMATIC);
+ gdl_dock_object_set_manual (GDL_DOCK_OBJECT (paned));
return GTK_WIDGET (paned);
}
diff --git a/gdl/gdl-dock.c b/gdl/gdl-dock.c
index 2859497..2dbd625 100644
--- a/gdl/gdl-dock.c
+++ b/gdl/gdl-dock.c
@@ -352,7 +352,7 @@ gdl_dock_constructor (GType type,
/* create a master for the dock if none was provided in the construction */
master = GDL_DOCK_OBJECT_GET_MASTER (GDL_DOCK_OBJECT (dock));
if (!master) {
- GDL_DOCK_OBJECT_UNSET_FLAGS (dock, GDL_DOCK_AUTOMATIC);
+ gdl_dock_object_set_manual (GDL_DOCK_OBJECT (dock));
master = g_object_new (GDL_TYPE_DOCK_MASTER, NULL);
/* the controller owns the master ref */
gdl_dock_object_bind (GDL_DOCK_OBJECT (dock), G_OBJECT (master));
@@ -705,7 +705,7 @@ gdl_dock_foreach_automatic (GdlDockObject *object,
{
void (* function) (GtkWidget *) = user_data;
- if (GDL_DOCK_OBJECT_AUTOMATIC (object))
+ if (gdl_dock_object_is_automatic (object))
(* function) (GTK_WIDGET (object));
}
@@ -831,7 +831,7 @@ gdl_dock_reduce (GdlDockObject *object)
if (dock->root)
return;
- if (GDL_DOCK_OBJECT_AUTOMATIC (dock)) {
+ if (gdl_dock_object_is_automatic (GDL_DOCK_OBJECT (dock))) {
gtk_widget_destroy (GTK_WIDGET (dock));
} else if (gdl_dock_object_is_closed (GDL_DOCK_OBJECT (dock))) {
@@ -1097,7 +1097,7 @@ gdl_dock_new (void)
GObject *dock;
dock = g_object_new (GDL_TYPE_DOCK, NULL);
- GDL_DOCK_OBJECT_UNSET_FLAGS (dock, GDL_DOCK_AUTOMATIC);
+ gdl_dock_object_set_manual (GDL_DOCK_OBJECT (dock));
return GTK_WIDGET (dock);
}
@@ -1123,7 +1123,7 @@ gdl_dock_new_from (GdlDock *original,
"master", GDL_DOCK_OBJECT_GET_MASTER (original),
"floating", floating,
NULL);
- GDL_DOCK_OBJECT_UNSET_FLAGS (new_dock, GDL_DOCK_AUTOMATIC);
+ gdl_dock_object_set_manual (GDL_DOCK_OBJECT (new_dock));
return GTK_WIDGET (new_dock);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]