[gtk+/gtk-2-24] GtkNotebook: deprecate some tab-dnd-related functions
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/gtk-2-24] GtkNotebook: deprecate some tab-dnd-related functions
- Date: Fri, 24 Sep 2010 15:52:22 +0000 (UTC)
commit 74ad2e1e7e4d33bdc9f9739043f05c00d428f08c
Author: Matthias Clasen <mclasen redhat com>
Date: Fri Sep 24 11:50:26 2010 -0400
GtkNotebook: deprecate some tab-dnd-related functions
gtk_notebook_set_window_creation_hook has been removed in GTK+ 3,
deprecate it here. gtk_notebook_get/set_group has been deprecated
in favour of the new gtk_notebook_get/set_group_name.
http://bugzilla.gnome.org/show_bug.cgi?id=630521
docs/reference/gtk/gtk-sections.txt | 2 +
gtk/gtk.symbols | 6 ++-
gtk/gtknotebook.c | 96 ++++++++++++++++++++++++++++++++---
gtk/gtknotebook.h | 8 ++-
tests/testnotebookdnd.c | 16 ++++--
5 files changed, 110 insertions(+), 18 deletions(-)
---
diff --git a/docs/reference/gtk/gtk-sections.txt b/docs/reference/gtk/gtk-sections.txt
index 4e2090a..2222aed 100644
--- a/docs/reference/gtk/gtk-sections.txt
+++ b/docs/reference/gtk/gtk-sections.txt
@@ -2753,6 +2753,8 @@ gtk_notebook_set_group_id
gtk_notebook_get_group_id
gtk_notebook_set_group
gtk_notebook_get_group
+gtk_notebook_set_group_name
+gtk_notebook_get_group_name
gtk_notebook_set_action_widget
gtk_notebook_get_action_widget
GtkNotebookWindowCreationFunc
diff --git a/gtk/gtk.symbols b/gtk/gtk.symbols
index cae07db..18cdc51 100644
--- a/gtk/gtk.symbols
+++ b/gtk/gtk.symbols
@@ -2693,13 +2693,15 @@ gtk_notebook_set_tab_label_text
gtk_notebook_set_tab_pos
gtk_notebook_get_tab_hborder
gtk_notebook_get_tab_vborder
-gtk_notebook_set_window_creation_hook
#ifndef GTK_DISABLE_DEPRECATED
+gtk_notebook_set_window_creation_hook
gtk_notebook_get_group_id
gtk_notebook_set_group_id
-#endif
gtk_notebook_get_group
gtk_notebook_set_group
+#endif
+gtk_notebook_get_group_name
+gtk_notebook_set_group_name
gtk_notebook_get_tab_reorderable
gtk_notebook_set_tab_reorderable
gtk_notebook_get_tab_detachable
diff --git a/gtk/gtknotebook.c b/gtk/gtknotebook.c
index 8054e24..4306672 100644
--- a/gtk/gtknotebook.c
+++ b/gtk/gtknotebook.c
@@ -112,6 +112,7 @@ enum {
PROP_ENABLE_POPUP,
PROP_GROUP_ID,
PROP_GROUP,
+ PROP_GROUP_NAME,
PROP_HOMOGENEOUS
};
@@ -666,7 +667,7 @@ gtk_notebook_class_init (GtkNotebookClass *class)
-1,
G_MAXINT,
-1,
- GTK_PARAM_READWRITE));
+ GTK_PARAM_READWRITE|G_PARAM_DEPRECATED));
/**
* GtkNotebook:group:
@@ -674,13 +675,30 @@ gtk_notebook_class_init (GtkNotebookClass *class)
* Group for tabs drag and drop.
*
* Since: 2.12
+ *
+ * Deprecated: 2.24: Use #GtkNotebook:group-name instead
*/
g_object_class_install_property (gobject_class,
PROP_GROUP,
g_param_spec_pointer ("group",
P_("Group"),
P_("Group for tabs drag and drop"),
- GTK_PARAM_READWRITE));
+ GTK_PARAM_READWRITE|G_PARAM_DEPRECATED));
+
+ /**
+ * GtkNotebook:group-name:
+ *
+ * Group name for tabs drag and drop.
+ *
+ * Since: 2.24
+ */
+ g_object_class_install_property (gobject_class,
+ PROP_GROUP_NAME,
+ g_param_spec_string ("group-name",
+ P_("Group Name"),
+ P_("Group name for tabs drag and drop"),
+ NULL,
+ GTK_PARAM_READWRITE));
gtk_container_class_install_child_property (container_class,
CHILD_PROP_TAB_LABEL,
@@ -1554,6 +1572,9 @@ gtk_notebook_set_property (GObject *object,
case PROP_GROUP:
gtk_notebook_set_group (notebook, g_value_get_pointer (value));
break;
+ case PROP_GROUP_NAME:
+ gtk_notebook_set_group_name (notebook, g_value_get_string (value));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -1607,6 +1628,9 @@ gtk_notebook_get_property (GObject *object,
case PROP_GROUP:
g_value_set_pointer (value, priv->group);
break;
+ case PROP_GROUP_NAME:
+ g_value_set_string (value, gtk_notebook_get_group_name (notebook));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -7712,9 +7736,11 @@ gtk_notebook_reorder_child (GtkNotebook *notebook,
*
* Installs a global function used to create a window
* when a detached tab is dropped in an empty area.
- *
+ *
* Since: 2.10
- **/
+ *
+ * Deprecated: 2.24: Use the #GtkNotebook::create-window signal instead
+**/
void
gtk_notebook_set_window_creation_hook (GtkNotebookWindowCreationFunc func,
gpointer data,
@@ -7739,7 +7765,7 @@ gtk_notebook_set_window_creation_hook (GtkNotebookWindowCreationFunc func,
* not be able to exchange tabs with any other notebook.
*
* Since: 2.10
- * Deprecated: 2.12: use gtk_notebook_set_group() instead.
+ * Deprecated: 2.12: use gtk_notebook_set_group_name() instead.
*/
void
gtk_notebook_set_group_id (GtkNotebook *notebook,
@@ -7763,8 +7789,10 @@ gtk_notebook_set_group_id (GtkNotebook *notebook,
* the same group identificator pointer will be able to exchange tabs
* via drag and drop. A notebook with a %NULL group identificator will
* not be able to exchange tabs with any other notebook.
- *
+ *
* Since: 2.12
+ *
+ * Deprecated: 2.24: Use gtk_notebook_set_group_name() instead
*/
void
gtk_notebook_set_group (GtkNotebook *notebook,
@@ -7784,6 +7812,32 @@ gtk_notebook_set_group (GtkNotebook *notebook,
}
/**
+ * gtk_notebook_set_group_name:
+ * @notebook: a #GtkNotebook
+ * @name: (allow-none): the name of the notebook group, or %NULL to unset it
+ *
+ * Sets a group name for @notebook.
+ *
+ * Notebooks with the same name will be able to exchange tabs
+ * via drag and drop. A notebook with a %NULL group name will
+ * not be able to exchange tabs with any other notebook.
+ *
+ * Since: 2.24
+ */
+void
+gtk_notebook_set_group_name (GtkNotebook *notebook,
+ const gchar *group_name)
+{
+ gpointer group;
+
+ g_return_if_fail (GTK_IS_NOTEBOOK (notebook));
+
+ group = (gpointer)g_intern_string (group_name);
+ gtk_notebook_set_group (notebook, group);
+ g_object_notify (G_OBJECT (notebook), "group-name");
+}
+
+/**
* gtk_notebook_get_group_id:
* @notebook: a #GtkNotebook
*
@@ -7792,7 +7846,7 @@ gtk_notebook_set_group (GtkNotebook *notebook,
* Return Value: the group identificator, or -1 if none is set.
*
* Since: 2.10
- * Deprecated: 2.12: use gtk_notebook_get_group() instead.
+ * Deprecated: 2.12: use gtk_notebook_get_group_name() instead.
*/
gint
gtk_notebook_get_group_id (GtkNotebook *notebook)
@@ -7807,6 +7861,7 @@ gtk_notebook_get_group_id (GtkNotebook *notebook)
return GPOINTER_TO_INT (priv->group) - 1;
}
+
/**
* gtk_notebook_get_group:
* @notebook: a #GtkNotebook
@@ -7816,6 +7871,8 @@ gtk_notebook_get_group_id (GtkNotebook *notebook)
* Return Value: the group identificator, or %NULL if none is set.
*
* Since: 2.12
+ *
+ * Deprecated: 2.24: Use gtk_notebook_get_group_name() instead
**/
gpointer
gtk_notebook_get_group (GtkNotebook *notebook)
@@ -7829,6 +7886,31 @@ gtk_notebook_get_group (GtkNotebook *notebook)
}
/**
+ * gtk_notebook_get_group_name:
+ * @notebook: a #GtkNotebook
+ *
+ * Gets the current group name for @notebook.
+ *
+ * Note that this funtion can emphasis not be used
+ * together with gtk_notebook_set_group() or
+ * gtk_notebook_set_group_id().
+ *
+ Return Value: (transfer none): the group name,
+ * or %NULL if none is set.
+ *
+ * Since: 2.24
+ */
+const gchar *
+gtk_notebook_get_group_name (GtkNotebook *notebook)
+{
+ GtkNotebookPrivate *priv;
+ g_return_val_if_fail (GTK_IS_NOTEBOOK (notebook), NULL);
+
+ priv = GTK_NOTEBOOK_GET_PRIVATE (notebook);
+ return (const gchar *)priv->group;
+}
+
+/**
* gtk_notebook_get_tab_reorderable:
* @notebook: a #GtkNotebook
* @child: a child #GtkWidget
diff --git a/gtk/gtknotebook.h b/gtk/gtknotebook.h
index 668285d..62620a1 100644
--- a/gtk/gtknotebook.h
+++ b/gtk/gtknotebook.h
@@ -180,20 +180,22 @@ void gtk_notebook_remove_page (GtkNotebook *notebook,
* Tabs drag and drop *
***********************************************************/
+#ifndef GTK_DISABLE_DEPRECATED
void gtk_notebook_set_window_creation_hook (GtkNotebookWindowCreationFunc func,
gpointer data,
GDestroyNotify destroy);
-#ifndef GTK_DISABLE_DEPRECATED
void gtk_notebook_set_group_id (GtkNotebook *notebook,
gint group_id);
gint gtk_notebook_get_group_id (GtkNotebook *notebook);
-#endif /* GTK_DISABLE_DEPRECATED */
-
void gtk_notebook_set_group (GtkNotebook *notebook,
gpointer group);
gpointer gtk_notebook_get_group (GtkNotebook *notebook);
+#endif /* GTK_DISABLE_DEPRECATED */
+void gtk_notebook_set_group_name (GtkNotebook *notebook,
+ const gchar *group_name);
+const gchar *gtk_notebook_get_group_name (GtkNotebook *notebook);
/***********************************************************
diff --git a/tests/testnotebookdnd.c b/tests/testnotebookdnd.c
index 04a4aef..a90aeb5 100644
--- a/tests/testnotebookdnd.c
+++ b/tests/testnotebookdnd.c
@@ -78,9 +78,11 @@ window_creation_function (GtkNotebook *source_notebook,
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
notebook = gtk_notebook_new ();
+ g_signal_connect (notebook, "create-window",
+ G_CALLBACK (window_creation_function), NULL);
- gtk_notebook_set_group (GTK_NOTEBOOK (notebook),
- gtk_notebook_get_group (source_notebook));
+ gtk_notebook_set_group_name (GTK_NOTEBOOK (notebook),
+ gtk_notebook_get_group_name (source_notebook));
gtk_container_add (GTK_CONTAINER (window), notebook);
@@ -150,11 +152,13 @@ create_notebook (gchar **labels,
gint count = 0;
notebook = gtk_notebook_new ();
+ g_signal_connect (notebook, "create-window",
+ G_CALLBACK (window_creation_function), NULL);
gtk_notebook_set_tab_pos (GTK_NOTEBOOK (notebook), pos);
gtk_notebook_set_scrollable (GTK_NOTEBOOK (notebook), TRUE);
gtk_container_set_border_width (GTK_CONTAINER (notebook), 6);
- gtk_notebook_set_group (GTK_NOTEBOOK (notebook), group);
+ gtk_notebook_set_group_name (GTK_NOTEBOOK (notebook), group);
while (*labels)
{
@@ -192,11 +196,13 @@ create_notebook_with_notebooks (gchar **labels,
gint count = 0;
notebook = gtk_notebook_new ();
+ g_signal_connect (notebook, "create-window",
+ G_CALLBACK (window_creation_function), NULL);
gtk_notebook_set_tab_pos (GTK_NOTEBOOK (notebook), pos);
gtk_notebook_set_scrollable (GTK_NOTEBOOK (notebook), TRUE);
gtk_container_set_border_width (GTK_CONTAINER (notebook), 6);
- gtk_notebook_set_group (GTK_NOTEBOOK (notebook), group);
+ gtk_notebook_set_group_name (GTK_NOTEBOOK (notebook), group);
while (*labels)
{
@@ -252,8 +258,6 @@ main (gint argc, gchar *argv[])
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
table = gtk_table_new (3, 2, FALSE);
- gtk_notebook_set_window_creation_hook (window_creation_function, NULL, NULL);
-
gtk_table_attach_defaults (GTK_TABLE (table),
create_notebook (tabs1, GROUP_A, PACK_ALTERNATE, GTK_POS_TOP),
0, 1, 0, 1);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]