summaryrefslogtreecommitdiff
path: root/Tools/DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp')
-rw-r--r--Tools/DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp64
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), &currentValue);
+
+ 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(&currentValue) + 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(&currentValue);
}
-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()