/**
* @brief This function provides textual representation of the value carried by UI element
- * which is expressed in percents.
+ * formatted accordingly to the "value_format" ATSPI attribute. Supported formats are:
+ * "percent" (default), "number" and "text".
*/
-char* reading_composer_percent_value_description_get(ReadingComposerData *data);
+char* reading_composer_value_text_get(ReadingComposerData *data);
#endif
*/
Eina_Bool cycle_detection_check_if_in_cycle(cycle_detection_data *data, const void *key);
+typedef enum {
+ ACCESSIBLE_VALUE_FORMAT_PERCENT = 1 << 0,
+ ACCESSIBLE_VALUE_FORMAT_NUMBER = 1 << 1,
+ ACCESSIBLE_VALUE_FORMAT_TEXT = 1 << 2
+} Value_Format;
+Value_Format get_value_format(GHashTable *hash_table);
+
enum Reading_Info {
ACCESSIBLE_READING_INFO_TYPE_NAME = 1 << 0,
ACCESSIBLE_READING_INFO_TYPE_ROLE = 1 << 1,
DEBUG("VALUE:%f", rm->value);
DEBUG("VALUE MAX:%f", rm->upper);
DEBUG("VALUE MIN:%f", rm->lower);
+ DEBUG("VALUE TEXT:%s", rm->value_text);
DEBUG("STATES:");
DEBUG("------------------------");
DEBUG("END");
ESAF(buf, _("IDS_GCTS_OPT_P1SS_PERCENT_TTS"), buf_percent);
}
-TIZEN_PROD_STATIC void add_slider_state(Eina_Strbuf *buf, AtspiAccessibleReadingMaterial *rm)
+TIZEN_PROD_STATIC void add_value_text(Eina_Strbuf *buf, AtspiAccessibleReadingMaterial *rm)
{
- add_percent_value_string(buf, get_percent_value_from_rm(rm));
+ Value_Format value_format = get_value_format(rm->attributes);
+ switch (value_format) {
+ default:
+ case ACCESSIBLE_VALUE_FORMAT_PERCENT:
+ add_percent_value_string(buf, get_percent_value_from_rm(rm));
+ break;
+ case ACCESSIBLE_VALUE_FORMAT_NUMBER:
+ ESAF(buf, "%g", rm->value);
+ break;
+ case ACCESSIBLE_VALUE_FORMAT_TEXT:
+ ESAL(buf, rm->value_text);
+ }
}
TIZEN_PROD_STATIC
g_free(rm->text_interface_name);
g_free(rm->localized_role_name);
g_free(rm->description);
+ g_free(rm->value_text);
g_free(rm);
}
break;
}
case ATSPI_ROLE_SLIDER: {
- add_slider_state(buf, rm);
+ add_value_text(buf, rm);
break;
}
default:
return reading_composer_extended_description_get_recursive(data, 0, 1);
}
-char* reading_composer_percent_value_description_get(ReadingComposerData *data)
+char* reading_composer_value_text_get(ReadingComposerData *data)
{
AtspiAccessibleReadingMaterial *rm = data;
return NULL;
Eina_Strbuf *buf = eina_strbuf_new();
-
- add_percent_value_string(buf, get_percent_value_from_rm(rm));
+ add_value_text(buf, rm);
return eina_strbuf_release(buf);
}
return EINA_FALSE;
}
+Value_Format get_value_format(GHashTable *hash_table)
+{
+ Value_Format value_format = ACCESSIBLE_VALUE_FORMAT_PERCENT;
+ if (hash_table) {
+ const gchar *value_format_str = NULL;
+ value_format_str = g_hash_table_lookup(hash_table, "value_format");
+ if (value_format_str) {
+ if (!g_strcmp0(value_format_str, "number")) {
+ value_format = ACCESSIBLE_VALUE_FORMAT_NUMBER;
+ } else if (!g_strcmp0(value_format_str, "text")) {
+ value_format = ACCESSIBLE_VALUE_FORMAT_TEXT;
+ }
+ }
+ }
+ return value_format;
+}
+
unsigned short int get_object_reading_info_type_attributes(AtspiAccessible *obj)
{
unsigned short int attribute = 0;