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
This commit is contained in:
Matthias Clasen
2010-09-24 11:50:26 -04:00
parent f574305b17
commit 74ad2e1e7e
5 changed files with 110 additions and 18 deletions

View File

@ -2753,6 +2753,8 @@ gtk_notebook_set_group_id
gtk_notebook_get_group_id gtk_notebook_get_group_id
gtk_notebook_set_group gtk_notebook_set_group
gtk_notebook_get_group gtk_notebook_get_group
gtk_notebook_set_group_name
gtk_notebook_get_group_name
gtk_notebook_set_action_widget gtk_notebook_set_action_widget
gtk_notebook_get_action_widget gtk_notebook_get_action_widget
GtkNotebookWindowCreationFunc GtkNotebookWindowCreationFunc

View File

@ -2693,13 +2693,15 @@ gtk_notebook_set_tab_label_text
gtk_notebook_set_tab_pos gtk_notebook_set_tab_pos
gtk_notebook_get_tab_hborder gtk_notebook_get_tab_hborder
gtk_notebook_get_tab_vborder gtk_notebook_get_tab_vborder
gtk_notebook_set_window_creation_hook
#ifndef GTK_DISABLE_DEPRECATED #ifndef GTK_DISABLE_DEPRECATED
gtk_notebook_set_window_creation_hook
gtk_notebook_get_group_id gtk_notebook_get_group_id
gtk_notebook_set_group_id gtk_notebook_set_group_id
#endif
gtk_notebook_get_group gtk_notebook_get_group
gtk_notebook_set_group gtk_notebook_set_group
#endif
gtk_notebook_get_group_name
gtk_notebook_set_group_name
gtk_notebook_get_tab_reorderable gtk_notebook_get_tab_reorderable
gtk_notebook_set_tab_reorderable gtk_notebook_set_tab_reorderable
gtk_notebook_get_tab_detachable gtk_notebook_get_tab_detachable

View File

@ -112,6 +112,7 @@ enum {
PROP_ENABLE_POPUP, PROP_ENABLE_POPUP,
PROP_GROUP_ID, PROP_GROUP_ID,
PROP_GROUP, PROP_GROUP,
PROP_GROUP_NAME,
PROP_HOMOGENEOUS PROP_HOMOGENEOUS
}; };
@ -666,7 +667,7 @@ gtk_notebook_class_init (GtkNotebookClass *class)
-1, -1,
G_MAXINT, G_MAXINT,
-1, -1,
GTK_PARAM_READWRITE)); GTK_PARAM_READWRITE|G_PARAM_DEPRECATED));
/** /**
* GtkNotebook:group: * GtkNotebook:group:
@ -674,12 +675,29 @@ gtk_notebook_class_init (GtkNotebookClass *class)
* Group for tabs drag and drop. * Group for tabs drag and drop.
* *
* Since: 2.12 * Since: 2.12
*
* Deprecated: 2.24: Use #GtkNotebook:group-name instead
*/ */
g_object_class_install_property (gobject_class, g_object_class_install_property (gobject_class,
PROP_GROUP, PROP_GROUP,
g_param_spec_pointer ("group", g_param_spec_pointer ("group",
P_("Group"), P_("Group"),
P_("Group for tabs drag and drop"), P_("Group for tabs drag and drop"),
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_PARAM_READWRITE));
gtk_container_class_install_child_property (container_class, gtk_container_class_install_child_property (container_class,
@ -1554,6 +1572,9 @@ gtk_notebook_set_property (GObject *object,
case PROP_GROUP: case PROP_GROUP:
gtk_notebook_set_group (notebook, g_value_get_pointer (value)); gtk_notebook_set_group (notebook, g_value_get_pointer (value));
break; break;
case PROP_GROUP_NAME:
gtk_notebook_set_group_name (notebook, g_value_get_string (value));
break;
default: default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break; break;
@ -1607,6 +1628,9 @@ gtk_notebook_get_property (GObject *object,
case PROP_GROUP: case PROP_GROUP:
g_value_set_pointer (value, priv->group); g_value_set_pointer (value, priv->group);
break; break;
case PROP_GROUP_NAME:
g_value_set_string (value, gtk_notebook_get_group_name (notebook));
break;
default: default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break; break;
@ -7714,7 +7738,9 @@ gtk_notebook_reorder_child (GtkNotebook *notebook,
* when a detached tab is dropped in an empty area. * when a detached tab is dropped in an empty area.
* *
* Since: 2.10 * Since: 2.10
**/ *
* Deprecated: 2.24: Use the #GtkNotebook::create-window signal instead
**/
void void
gtk_notebook_set_window_creation_hook (GtkNotebookWindowCreationFunc func, gtk_notebook_set_window_creation_hook (GtkNotebookWindowCreationFunc func,
gpointer data, gpointer data,
@ -7739,7 +7765,7 @@ gtk_notebook_set_window_creation_hook (GtkNotebookWindowCreationFunc func,
* not be able to exchange tabs with any other notebook. * not be able to exchange tabs with any other notebook.
* *
* Since: 2.10 * Since: 2.10
* Deprecated: 2.12: use gtk_notebook_set_group() instead. * Deprecated: 2.12: use gtk_notebook_set_group_name() instead.
*/ */
void void
gtk_notebook_set_group_id (GtkNotebook *notebook, gtk_notebook_set_group_id (GtkNotebook *notebook,
@ -7765,6 +7791,8 @@ gtk_notebook_set_group_id (GtkNotebook *notebook,
* not be able to exchange tabs with any other notebook. * not be able to exchange tabs with any other notebook.
* *
* Since: 2.12 * Since: 2.12
*
* Deprecated: 2.24: Use gtk_notebook_set_group_name() instead
*/ */
void void
gtk_notebook_set_group (GtkNotebook *notebook, gtk_notebook_set_group (GtkNotebook *notebook,
@ -7783,6 +7811,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: * gtk_notebook_get_group_id:
* @notebook: a #GtkNotebook * @notebook: a #GtkNotebook
@ -7792,7 +7846,7 @@ gtk_notebook_set_group (GtkNotebook *notebook,
* Return Value: the group identificator, or -1 if none is set. * Return Value: the group identificator, or -1 if none is set.
* *
* Since: 2.10 * Since: 2.10
* Deprecated: 2.12: use gtk_notebook_get_group() instead. * Deprecated: 2.12: use gtk_notebook_get_group_name() instead.
*/ */
gint gint
gtk_notebook_get_group_id (GtkNotebook *notebook) 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; return GPOINTER_TO_INT (priv->group) - 1;
} }
/** /**
* gtk_notebook_get_group: * gtk_notebook_get_group:
* @notebook: a #GtkNotebook * @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. * Return Value: the group identificator, or %NULL if none is set.
* *
* Since: 2.12 * Since: 2.12
*
* Deprecated: 2.24: Use gtk_notebook_get_group_name() instead
**/ **/
gpointer gpointer
gtk_notebook_get_group (GtkNotebook *notebook) gtk_notebook_get_group (GtkNotebook *notebook)
@ -7828,6 +7885,31 @@ gtk_notebook_get_group (GtkNotebook *notebook)
return priv->group; return priv->group;
} }
/**
* 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: * gtk_notebook_get_tab_reorderable:
* @notebook: a #GtkNotebook * @notebook: a #GtkNotebook

View File

@ -180,20 +180,22 @@ void gtk_notebook_remove_page (GtkNotebook *notebook,
* Tabs drag and drop * * Tabs drag and drop *
***********************************************************/ ***********************************************************/
#ifndef GTK_DISABLE_DEPRECATED
void gtk_notebook_set_window_creation_hook (GtkNotebookWindowCreationFunc func, void gtk_notebook_set_window_creation_hook (GtkNotebookWindowCreationFunc func,
gpointer data, gpointer data,
GDestroyNotify destroy); GDestroyNotify destroy);
#ifndef GTK_DISABLE_DEPRECATED
void gtk_notebook_set_group_id (GtkNotebook *notebook, void gtk_notebook_set_group_id (GtkNotebook *notebook,
gint group_id); gint group_id);
gint gtk_notebook_get_group_id (GtkNotebook *notebook); gint gtk_notebook_get_group_id (GtkNotebook *notebook);
#endif /* GTK_DISABLE_DEPRECATED */
void gtk_notebook_set_group (GtkNotebook *notebook, void gtk_notebook_set_group (GtkNotebook *notebook,
gpointer group); gpointer group);
gpointer gtk_notebook_get_group (GtkNotebook *notebook); 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);
/*********************************************************** /***********************************************************

View File

@ -78,9 +78,11 @@ window_creation_function (GtkNotebook *source_notebook,
window = gtk_window_new (GTK_WINDOW_TOPLEVEL); window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
notebook = gtk_notebook_new (); 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_set_group_name (GTK_NOTEBOOK (notebook),
gtk_notebook_get_group (source_notebook)); gtk_notebook_get_group_name (source_notebook));
gtk_container_add (GTK_CONTAINER (window), notebook); gtk_container_add (GTK_CONTAINER (window), notebook);
@ -150,11 +152,13 @@ create_notebook (gchar **labels,
gint count = 0; gint count = 0;
notebook = gtk_notebook_new (); 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_tab_pos (GTK_NOTEBOOK (notebook), pos);
gtk_notebook_set_scrollable (GTK_NOTEBOOK (notebook), TRUE); gtk_notebook_set_scrollable (GTK_NOTEBOOK (notebook), TRUE);
gtk_container_set_border_width (GTK_CONTAINER (notebook), 6); 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) while (*labels)
{ {
@ -192,11 +196,13 @@ create_notebook_with_notebooks (gchar **labels,
gint count = 0; gint count = 0;
notebook = gtk_notebook_new (); 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_tab_pos (GTK_NOTEBOOK (notebook), pos);
gtk_notebook_set_scrollable (GTK_NOTEBOOK (notebook), TRUE); gtk_notebook_set_scrollable (GTK_NOTEBOOK (notebook), TRUE);
gtk_container_set_border_width (GTK_CONTAINER (notebook), 6); 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) while (*labels)
{ {
@ -252,8 +258,6 @@ main (gint argc, gchar *argv[])
window = gtk_window_new (GTK_WINDOW_TOPLEVEL); window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
table = gtk_table_new (3, 2, FALSE); 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), gtk_table_attach_defaults (GTK_TABLE (table),
create_notebook (tabs1, GROUP_A, PACK_ALTERNATE, GTK_POS_TOP), create_notebook (tabs1, GROUP_A, PACK_ALTERNATE, GTK_POS_TOP),
0, 1, 0, 1); 0, 1, 0, 1);