GtkWidget: Add gtk_widget_get_path().

This function composes and returns a GtkWidgetPath representing
the passed widget.
This commit is contained in:
Carlos Garnacho 2010-03-12 19:02:33 +01:00
parent 61360dfddf
commit 9794b6adf9
2 changed files with 26 additions and 1 deletions

View File

@ -13165,6 +13165,27 @@ _gtk_widget_set_height_request_needed (GtkWidget *widget,
widget->priv->height_request_needed = height_request_needed;
}
GtkWidgetPath *
gtk_widget_get_path (GtkWidget *widget)
{
GtkWidgetPath *path;
g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
g_return_val_if_fail (GTK_WIDGET_REALIZED (widget), NULL);
path = gtk_widget_path_new ();
while (widget)
{
gtk_widget_path_prepend_widget_desc (path,
G_OBJECT_TYPE (widget),
widget->name);
widget = widget->parent;
}
return path;
}
GtkStyleContext *
gtk_widget_get_style_context (GtkWidget *widget)
{
@ -13178,7 +13199,8 @@ gtk_widget_get_style_context (GtkWidget *widget)
if (G_UNLIKELY (!context))
{
context = g_object_new (GTK_TYPE_STYLE_CONTEXT, NULL);
g_object_set_qdata_full (widget, quark_style_context, context,
g_object_set_qdata_full (G_OBJECT (widget),
quark_style_context, context,
(GDestroyNotify) g_object_unref);
}

View File

@ -37,6 +37,7 @@
#include <gtk/gtkstyle.h>
#include <gtk/gtksettings.h>
#include <gtk/gtkstylecontext.h>
#include <gtk/gtkwidgetpath.h>
#include <atk/atk.h>
G_BEGIN_DECLS
@ -944,6 +945,8 @@ gboolean gtk_widget_in_destruction (GtkWidget *widget);
GtkStyleContext * gtk_widget_get_style_context (GtkWidget *widget);
GtkWidgetPath * gtk_widget_get_path (GtkWidget *widget);
G_END_DECLS