diff options
Diffstat (limited to 'Tools/DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp')
-rw-r--r-- | Tools/DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp | 64 |
1 files changed, 35 insertions, 29 deletions
diff --git a/Tools/DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp b/Tools/DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp index cedacdb65..bee371960 100644 --- a/Tools/DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp +++ b/Tools/DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp @@ -140,7 +140,8 @@ gchar* attributeSetToString(AtkAttributeSet* attributeSet) GString* str = g_string_new(0); for (GSList* attributes = attributeSet; attributes; attributes = attributes->next) { AtkAttribute* attribute = static_cast<AtkAttribute*>(attributes->data); - g_string_append(str, g_strconcat(attribute->name, ":", attribute->value, NULL)); + GOwnPtr<gchar> attributeData(g_strconcat(attribute->name, ":", attribute->value, NULL)); + g_string_append(str, attributeData.get()); if (attributes->next) g_string_append(str, ", "); } @@ -154,7 +155,8 @@ JSStringRef AccessibilityUIElement::allAttributes() return JSStringCreateWithCharacters(0, 0); ASSERT(ATK_IS_OBJECT(m_element)); - return JSStringCreateWithUTF8CString(attributeSetToString(atk_object_get_attributes(ATK_OBJECT(m_element)))); + GOwnPtr<gchar> attributeData(attributeSetToString(atk_object_get_attributes(ATK_OBJECT(m_element)))); + return JSStringCreateWithUTF8CString(attributeData.get()); } JSStringRef AccessibilityUIElement::attributesOfLinkedUIElements() @@ -328,13 +330,9 @@ double AccessibilityUIElement::intValue() const return 0.0f; atk_value_get_current_value(ATK_VALUE(m_element), &value); - - if (G_VALUE_HOLDS_DOUBLE(&value)) - return g_value_get_double(&value); - else if (G_VALUE_HOLDS_INT(&value)) - return static_cast<double>(g_value_get_int(&value)); - else + if (!G_VALUE_HOLDS_FLOAT(&value)) return 0.0f; + return g_value_get_float(&value); } double AccessibilityUIElement::minValue() @@ -345,13 +343,9 @@ double AccessibilityUIElement::minValue() return 0.0f; atk_value_get_minimum_value(ATK_VALUE(m_element), &value); - - if (G_VALUE_HOLDS_DOUBLE(&value)) - return g_value_get_double(&value); - else if (G_VALUE_HOLDS_INT(&value)) - return static_cast<double>(g_value_get_int(&value)); - else + if (!G_VALUE_HOLDS_FLOAT(&value)) return 0.0f; + return g_value_get_float(&value); } double AccessibilityUIElement::maxValue() @@ -362,13 +356,9 @@ double AccessibilityUIElement::maxValue() return 0.0f; atk_value_get_maximum_value(ATK_VALUE(m_element), &value); - - if (G_VALUE_HOLDS_DOUBLE(&value)) - return g_value_get_double(&value); - else if (G_VALUE_HOLDS_INT(&value)) - return static_cast<double>(g_value_get_int(&value)); - else + if (!G_VALUE_HOLDS_FLOAT(&value)) return 0.0f; + return g_value_get_float(&value); } JSStringRef AccessibilityUIElement::valueDescription() @@ -644,22 +634,38 @@ bool AccessibilityUIElement::isAttributeSupported(JSStringRef attribute) return false; } -void AccessibilityUIElement::increment() +static void alterCurrentValue(PlatformUIElement element, int factor) { - if (!m_element) + if (!element) return; - ASSERT(ATK_IS_OBJECT(m_element)); - DumpRenderTreeSupportGtk::incrementAccessibilityValue(ATK_OBJECT(m_element)); + ASSERT(ATK_IS_VALUE(element)); + + GValue currentValue = G_VALUE_INIT; + atk_value_get_current_value(ATK_VALUE(element), ¤tValue); + + GValue increment = G_VALUE_INIT; + atk_value_get_minimum_increment(ATK_VALUE(element), &increment); + + GValue newValue = G_VALUE_INIT; + g_value_init(&newValue, G_TYPE_FLOAT); + + g_value_set_float(&newValue, g_value_get_float(¤tValue) + factor * g_value_get_float(&increment)); + atk_value_set_current_value(ATK_VALUE(element), &newValue); + + g_value_unset(&newValue); + g_value_unset(&increment); + g_value_unset(¤tValue); } -void AccessibilityUIElement::decrement() +void AccessibilityUIElement::increment() { - if (!m_element) - return; + alterCurrentValue(m_element, 1); +} - ASSERT(ATK_IS_OBJECT(m_element)); - DumpRenderTreeSupportGtk::decrementAccessibilityValue(ATK_OBJECT(m_element)); +void AccessibilityUIElement::decrement() +{ + alterCurrentValue(m_element, -1); } void AccessibilityUIElement::press() |