Re: gtk_test_find_widget bug?
- From: Michael Libby <michael c libby gmail com>
- To: gtk-devel-list gnome org
- Subject: Re: gtk_test_find_widget bug?
- Date: Mon, 9 Nov 2009 20:45:31 -0600
On Mon, Nov 9, 2009 at 3:57 PM, Michael Libby <michael c libby gmail com> wrote:
> This seems to be either a bug in my understanding of how to use this
> functionality or a bug in the gtk_test_find_widget function itself.
After reading the source for the various gtk_test_find_* functions and
the documentation over again, the bug was my own understanding.
The function gtk_test_find_widget() is trying to find a widget *near*
a label with the text in question, whereas I was thinking it would
find the widget that *contained* the text in question.
No surprise that the existing function has somewhat strange behavior
when attempting to locate menu items.
Suggest to add something like to find the widget with the actual text:
GtkWidget*
gtk_test_find_widget_by_text (GtkWidget *widget,
const gchar *label_pattern,
GType widget_type)
{
if (GTK_IS_LABEL (widget))
{
const gchar *text = gtk_label_get_text (GTK_LABEL (widget));
if (g_pattern_match_simple (label_pattern, text))
return widget;
}
if (GTK_IS_CONTAINER (widget))
{
GList *node, *list = gtk_container_get_children (GTK_CONTAINER (widget));
for (node = list; node; node = node->next)
{
GtkWidget *label = gtk_test_find_widget_by_text (node->data,
label_pattern, widget_type);
if (label)
{
if (g_type_is_a (G_OBJECT_TYPE (widget), widget_type))
{
return widget;
}
else
{
return label;
}
}
}
g_list_free (list);
}
return NULL;
}
--
Michael C. Libby
www.mikelibby.com
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]