Commit d36d6172 authored by Matthias Clasen's avatar Matthias Clasen

Dump more accessibility data

This commit adds dumping of parents, attributes and states.
The expected dump output has been adjusted to match.
parent 667504d7
......@@ -173,6 +173,54 @@ dump_relation_set (GString *string,
g_object_unref (set);
}
static void
dump_state_set (GString *string,
guint depth,
AtkStateSet *set)
{
guint i;
if (set == NULL)
return;
if (atk_state_set_is_empty (set))
return;
g_string_append_printf (string, "%*sstate:", depth, "");
for (i = 0; i < ATK_STATE_LAST_DEFINED; i++)
{
if (atk_state_set_contains_state (set, i))
g_string_append_printf (string, " %s", atk_state_type_get_name (i));
}
g_string_append_c (string, '\n');
g_object_unref (set);
}
static void
dump_attribute (GString *string,
guint depth,
AtkAttribute *attribute)
{
g_string_append_printf (string, "%*s%s: %s\n", depth, "", attribute->name, attribute->value);
}
static void
dump_attribute_set (GString *string,
guint depth,
AtkAttributeSet *set)
{
GSList *l;
AtkAttribute *attribute;
for (l = set; l; l = l->next)
{
attribute = l->data;
dump_attribute (string, depth, attribute);
}
}
static void
dump_accessible (AtkObject *accessible,
guint depth,
......@@ -184,12 +232,18 @@ dump_accessible (AtkObject *accessible,
depth += DEPTH_INCREMENT;
g_string_append_printf (string, "%*s\"%s\"\n", depth, "", atk_role_get_name (atk_object_get_role (accessible)));
if (atk_object_get_parent (accessible))
g_string_append_printf (string, "%*sparent: %s\n", depth, "", get_name (atk_object_get_parent (accessible)));
if (atk_object_get_index_in_parent (accessible) != -1)
g_string_append_printf (string, "%*sindex: %d\n", depth, "", atk_object_get_index_in_parent (accessible));
if (atk_object_get_name (accessible))
g_string_append_printf (string, "%*sname: %s\n", depth, "", atk_object_get_name (accessible));
if (atk_object_get_description (accessible))
g_string_append_printf (string, "%*sdescription: %s\n", depth, "", atk_object_get_description (accessible));
dump_relation_set (string, depth, atk_object_ref_relation_set (accessible));
dump_state_set (string, depth, atk_object_ref_state_set (accessible));
dump_attribute_set (string, depth, atk_object_get_attributes (accessible));
for (i = 0; i < atk_object_get_n_accessible_children (accessible); i++)
{
AtkObject *child = atk_object_ref_accessible_child (accessible, i);
......
window1
"window"
index: 0
state: enabled resizable sensitive showing visible
toolkit: gail
button1
"push button"
parent: window1
index: 0
name: Accessible name
state: enabled focusable sensitive showing visible
toolkit: gail
window1
"window"
index: 0
state: enabled resizable sensitive showing visible
toolkit: gail
button1
"push button"
parent: window1
index: 0
name: Hello World!
state: enabled focusable sensitive showing visible
toolkit: gail
window1
"window"
index: 0
state: enabled resizable sensitive showing visible
toolkit: gail
box1
"filler"
parent: window1
index: 0
state: enabled horizontal sensitive
toolkit: gail
label1
"label"
parent: box1
index: 0
name: Entry:
label-for: entry1
state: enabled multi-line sensitive visible
toolkit: gail
entry1
"text"
parent: box1
index: 1
labelled-by: label1
state: editable enabled focusable sensitive single-line visible
toolkit: gail
)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment