Method
GtkNotebookset_tab_detachable
since: 2.10
Declaration [src]
void
gtk_notebook_set_tab_detachable (
  GtkNotebook* notebook,
  GtkWidget* child,
  gboolean detachable
)
Description [src]
Sets whether the tab can be detached from notebook to another
notebook or widget.
Note that 2 notebooks must share a common group identificator (see gtk_notebook_set_group_name()) to allow automatic tabs interchange between them.
If you want a widget to interact with a notebook through DnD (i.e.: accept dragged tabs from it) it must be set as a drop destination and accept the target “GTK_NOTEBOOK_TAB”. The notebook will fill the selection with a GtkWidget** pointing to the child widget that corresponds to the dropped tab.
Note that you should use gtk_notebook_detach_tab() instead
of gtk_container_remove() if you want to remove the tab from
the source notebook as part of accepting a drop. Otherwise,
the source notebook will think that the dragged tab was
removed from underneath the ongoing drag operation, and
will initiate a drag cancel animation.
 static void
 on_drag_data_received (GtkWidget        *widget,
                        GdkDragContext   *context,
                        gint              x,
                        gint              y,
                        GtkSelectionData *data,
                        guint             info,
                        guint             time,
                        gpointer          user_data)
 {
   GtkWidget *notebook;
   GtkWidget **child;
   notebook = gtk_drag_get_source_widget (context);
   child = (void*) gtk_selection_data_get_data (data);
   // process_widget (*child);
   gtk_notebook_detach_tab (GTK_NOTEBOOK (notebook), *child);
 }
If you want a notebook to accept drags from other widgets, you will have to set your own DnD code to do it.
Available since: 2.10
Parameters
- child
- 
            Type: GtkWidgetA child GtkWidget.The data is owned by the caller of the method. 
- detachable
- 
            Type: gbooleanWhether the tab is detachable or not.