Method
GtkWidgetget_toplevel
Declaration [src]
GtkWidget*
gtk_widget_get_toplevel (
GtkWidget* widget
)
Description [src]
This function returns the topmost widget in the container hierarchy
widget
is a part of. If widget
has no parent widgets, it will be
returned as the topmost widget. No reference will be added to the
returned widget; it should not be unreferenced.
Note the difference in behavior vs. gtk_widget_get_ancestor();
gtk_widget_get_ancestor (widget, GTK_TYPE_WINDOW)
would return
NULL
if widget
wasn’t inside a toplevel window, and if the
window was inside a GtkWindow
-derived widget which was in turn
inside the toplevel GtkWindow
. While the second case may
seem unlikely, it actually happens when a GtkPlug
is embedded
inside a GtkSocket
within the same application.
To reliably find the toplevel GtkWindow
, use
gtk_widget_get_toplevel()
and call GTK_IS_WINDOW()
on the result. For instance, to get the title of a widget’s toplevel
window, one might use:
static const char *
get_widget_toplevel_title (GtkWidget *widget)
{
GtkWidget *toplevel = gtk_widget_get_toplevel (widget);
if (GTK_IS_WINDOW (toplevel))
{
return gtk_window_get_title (GTK_WINDOW (toplevel));
}
return NULL;
}
Return value
Type: GtkWidget
The topmost ancestor of widget
, or widget
itself
if there’s no ancestor.
The returned data is owned by the instance. |