add_percent_value_string(buf, get_percent_value_from_rm(rm));
}
-TIZEN_PROD_STATIC char *generate_role_trait(AtspiAccessibleReadingMaterial *rm)
+TIZEN_PROD_STATIC
+void reading_composer_reading_material_free(AtspiAccessibleReadingMaterial *rm)
+{
+ if (rm->parent)
+ g_object_unref(rm->parent);
+
+ if (rm->described_by_accessible)
+ g_object_unref(rm->described_by_accessible);
+
+ g_hash_table_unref(rm->attributes);
+ g_free(rm->name);
+ g_free(rm->labeled_by_name);
+ g_free(rm->text_interface_name);
+ g_free(rm->localized_role_name);
+ g_free(rm->description);
+ g_free(rm);
+}
+
+TIZEN_PROD_STATIC char *generate_role_trait_from_role(AtspiAccessibleReadingMaterial *rm)
{
AtspiRole role = rm->role;
char *ret = NULL;
return ret;
}
-TIZEN_PROD_STATIC char *generate_state_trait(AtspiAccessibleReadingMaterial *rm)
+TIZEN_PROD_STATIC char *generate_role_trait_recursive(AtspiAccessibleReadingMaterial *rm, int nest_level, int max_nest_level)
+{
+ if (!rm || nest_level > max_nest_level)
+ return NULL;
+
+ display_info_about_object(rm);
+
+ char *role_trait_from_relation = NULL;
+ char *role_trait_from_role = NULL;
+
+ if (rm->described_by_accessible) {
+ AtspiAccessibleReadingMaterial *_rm = atspi_accessible_get_reading_material(rm->described_by_accessible, NULL);
+ if (_rm) {
+ role_trait_from_relation = generate_role_trait_recursive(_rm, ++nest_level, max_nest_level);
+ reading_composer_reading_material_free(_rm);
+ }
+ }
+
+ Eina_Strbuf *buf;
+ buf = eina_strbuf_new();
+
+ if (role_trait_from_relation && strlen(role_trait_from_relation)) {
+ ESAL(buf, role_trait_from_relation);
+ } else {
+ role_trait_from_role = generate_role_trait_from_role(rm);
+ if (role_trait_from_role && strlen(role_trait_from_role) > 0) {
+ ESAL(buf, role_trait_from_role);
+ }
+ }
+
+ SCREEN_READER_SAFE_FREE(role_trait_from_relation, free);
+ SCREEN_READER_SAFE_FREE(role_trait_from_role, free);
+
+ char *role_trait = eina_strbuf_string_steal(buf);
+ eina_strbuf_free(buf);
+ DEBUG("END");
+ return role_trait;
+}
+
+TIZEN_PROD_STATIC char *generate_role_trait(AtspiAccessibleReadingMaterial *rm)
+{
+ return generate_role_trait_recursive(rm, 0, 1);
+}
+
+TIZEN_PROD_STATIC char *generate_state_trait_from_role(AtspiAccessibleReadingMaterial *rm)
{
AtspiRole role = rm->role;
char* ret = NULL;
return ret;
}
+TIZEN_PROD_STATIC char *generate_state_trait_recursive(AtspiAccessibleReadingMaterial *rm, int nest_level, int max_nest_level)
+{
+ if (!rm || nest_level > max_nest_level)
+ return NULL;
+
+ display_info_about_object(rm);
+
+ char *state_trait_from_relation = NULL;
+ char *state_trait_from_role = NULL;
+
+ if (rm->described_by_accessible) {
+ AtspiAccessibleReadingMaterial *_rm = atspi_accessible_get_reading_material(rm->described_by_accessible, NULL);
+ if (_rm) {
+ state_trait_from_relation = generate_state_trait_recursive(_rm, ++nest_level, max_nest_level);
+ reading_composer_reading_material_free(_rm);
+ }
+ }
+
+ Eina_Strbuf *buf;
+ buf = eina_strbuf_new();
+
+ if (state_trait_from_relation && strlen(state_trait_from_relation)) {
+ ESAL(buf, state_trait_from_relation);
+ } else {
+ state_trait_from_role = generate_state_trait_from_role(rm);
+ if (state_trait_from_role && strlen(state_trait_from_role) > 0) {
+ ESAL(buf, state_trait_from_role);
+ }
+ }
+
+ SCREEN_READER_SAFE_FREE(state_trait_from_relation, free);
+ SCREEN_READER_SAFE_FREE(state_trait_from_role, free);
+
+ char *state_trait = eina_strbuf_string_steal(buf);
+ eina_strbuf_free(buf);
+ DEBUG("END");
+ return state_trait;
+}
+
+TIZEN_PROD_STATIC char *generate_state_trait(AtspiAccessibleReadingMaterial *rm)
+{
+ return generate_state_trait_recursive(rm, 0, 1);
+}
+
TIZEN_PROD_STATIC char *generate_description_trait(AtspiAccessibleReadingMaterial *rm)
{
DEBUG("START");
return attribute;
}
-TIZEN_PROD_STATIC
-void reading_composer_reading_material_free(AtspiAccessibleReadingMaterial *rm)
-{
- if (rm->parent)
- g_object_unref(rm->parent);
-
- if (rm->described_by_accessible)
- g_object_unref(rm->described_by_accessible);
-
- g_hash_table_unref(rm->attributes);
- g_free(rm->name);
- g_free(rm->labeled_by_name);
- g_free(rm->text_interface_name);
- g_free(rm->localized_role_name);
- g_free(rm->description);
- g_free(rm);
-}
-
char* reading_composer_name_get(AtspiAccessible *obj)
{
DEBUG("START");