+2012-01-24 Mario Sanchez Prada <msanchez@igalia.com>
+
+ [GTK] Refactor GTK's accessibilitity code to be more modular
+ https://bugs.webkit.org/show_bug.cgi?id=76783
+
+ Reviewed by Martin Robinson.
+
+ New files for the implementation of the AtkValue interface,
+ containing the related code from WebKitAccessibleWrapperAtk.cpp.
+
+ * accessibility/gtk/WebKitAccessibleInterfaceValue.cpp: Added.
+ (core):
+ (webkitAccessibleValueInterfaceInit):
+ (webkitAccessibleValueGetCurrentValue):
+ (webkitAccessibleValueGetMaximumValue):
+ (webkitAccessibleValueGetMinimumValue):
+ (webkitAccessibleValueSetCurrentValue):
+ (webkitAccessibleValueGetMinimumIncrement):
+ * accessibility/gtk/WebKitAccessibleInterfaceValue.h: Added.
+ * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp: Remove code
+ related to the implementation of the AtkValue interface.
+
+ Add new files to build files.
+
+ * GNUmakefile.list.am: Add WebKitAccessibleInterfaceValue.[h|cpp].
+ * WebCore.gypi: Ditto.
+
2012-01-24 Antti Koivisto <antti@apple.com>
Reduce internal use of CSSStyleDeclaration base class
Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceImage.h \
Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceSelection.cpp \
Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceSelection.h \
+ Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceValue.cpp \
+ Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceValue.h \
Source/WebCore/accessibility/gtk/WebKitAccessibleUtil.cpp \
Source/WebCore/accessibility/gtk/WebKitAccessibleUtil.h \
Source/WebCore/accessibility/gtk/WebKitAccessibleWrapperAtk.cpp \
'accessibility/gtk/WebKitAccessibleInterfaceImage.h',
'accessibility/gtk/WebKitAccessibleInterfaceSelection.cpp',
'accessibility/gtk/WebKitAccessibleInterfaceSelection.h',
+ 'accessibility/gtk/WebKitAccessibleInterfaceValue.cpp',
+ 'accessibility/gtk/WebKitAccessibleInterfaceValue.h',
'accessibility/gtk/WebKitAccessibleUtil.cpp',
'accessibility/gtk/WebKitAccessibleUtil.h',
'accessibility/gtk/WebKitAccessibleWrapperAtk.cpp',
--- /dev/null
+/*
+ * Copyright (C) 2011, 2012 Igalia S.L.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "config.h"
+#include "WebKitAccessibleInterfaceValue.h"
+
+#include "AccessibilityObject.h"
+#include "WebKitAccessibleWrapperAtk.h"
+
+using namespace WebCore;
+
+static AccessibilityObject* core(AtkValue* value)
+{
+ if (!WEBKIT_IS_ACCESSIBLE(value))
+ return 0;
+
+ return webkitAccessibleGetAccessibilityObject(WEBKIT_ACCESSIBLE(value));
+}
+
+void webkitAccessibleValueInterfaceInit(AtkValueIface* iface)
+{
+ iface->get_current_value = webkitAccessibleValueGetCurrentValue;
+ iface->get_maximum_value = webkitAccessibleValueGetMaximumValue;
+ iface->get_minimum_value = webkitAccessibleValueGetMinimumValue;
+ iface->set_current_value = webkitAccessibleValueSetCurrentValue;
+ iface->get_minimum_increment = webkitAccessibleValueGetMinimumIncrement;
+}
+
+void webkitAccessibleValueGetCurrentValue(AtkValue* value, GValue* gValue)
+{
+ memset(gValue, 0, sizeof(GValue));
+ g_value_init(gValue, G_TYPE_DOUBLE);
+ g_value_set_double(gValue, core(value)->valueForRange());
+}
+
+void webkitAccessibleValueGetMaximumValue(AtkValue* value, GValue* gValue)
+{
+ memset(gValue, 0, sizeof(GValue));
+ g_value_init(gValue, G_TYPE_DOUBLE);
+ g_value_set_double(gValue, core(value)->maxValueForRange());
+}
+
+void webkitAccessibleValueGetMinimumValue(AtkValue* value, GValue* gValue)
+{
+ memset(gValue, 0, sizeof(GValue));
+ g_value_init(gValue, G_TYPE_DOUBLE);
+ g_value_set_double(gValue, core(value)->minValueForRange());
+}
+
+gboolean webkitAccessibleValueSetCurrentValue(AtkValue* value, const GValue* gValue)
+{
+ if (!G_VALUE_HOLDS_DOUBLE(gValue) && !G_VALUE_HOLDS_INT(gValue))
+ return FALSE;
+
+ AccessibilityObject* coreObject = core(value);
+ if (!coreObject->canSetValueAttribute())
+ return FALSE;
+
+ if (G_VALUE_HOLDS_DOUBLE(gValue))
+ coreObject->setValue(String::number(g_value_get_double(gValue)));
+ else
+ coreObject->setValue(String::number(g_value_get_int(gValue)));
+
+ return TRUE;
+}
+
+void webkitAccessibleValueGetMinimumIncrement(AtkValue* value, GValue* gValue)
+{
+ memset(gValue, 0, sizeof(GValue));
+ g_value_init(gValue, G_TYPE_DOUBLE);
+
+ // There's not such a thing in the WAI-ARIA specification, thus return zero.
+ g_value_set_double(gValue, 0.0);
+}
--- /dev/null
+/*
+ * Copyright (C) 2011, 2012 Igalia S.L.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef WebKitAccessibleInterfaceValue_h
+#define WebKitAccessibleInterfaceValue_h
+
+#include <atk/atk.h>
+
+void webkitAccessibleValueInterfaceInit(AtkValueIface*);
+void webkitAccessibleValueGetCurrentValue(AtkValue*, GValue*);
+void webkitAccessibleValueGetMaximumValue(AtkValue*, GValue*);
+void webkitAccessibleValueGetMinimumValue(AtkValue*, GValue*);
+gboolean webkitAccessibleValueSetCurrentValue(AtkValue*, const GValue*);
+void webkitAccessibleValueGetMinimumIncrement(AtkValue*, GValue*);
+
+#endif // WebKitAccessibleInterfaceValue_h
#include "WebKitAccessibleInterfaceHypertext.h"
#include "WebKitAccessibleInterfaceImage.h"
#include "WebKitAccessibleInterfaceSelection.h"
+#include "WebKitAccessibleInterfaceValue.h"
#include "WebKitAccessibleUtil.h"
#include "htmlediting.h"
#include "visible_units.h"
return core(ATK_OBJECT(table));
}
-static AccessibilityObject* core(AtkValue* value)
-{
- return core(ATK_OBJECT(value));
-}
-
static gchar* webkit_accessible_text_get_text(AtkText*, gint startOffset, gint endOffset);
static const gchar* webkit_accessible_get_name(AtkObject* object)
iface->get_row_description = webkit_accessible_table_get_row_description;
}
-static void webkitAccessibleValueGetCurrentValue(AtkValue* value, GValue* gValue)
-{
- memset(gValue, 0, sizeof(GValue));
- g_value_init(gValue, G_TYPE_DOUBLE);
- g_value_set_double(gValue, core(value)->valueForRange());
-}
-
-static void webkitAccessibleValueGetMaximumValue(AtkValue* value, GValue* gValue)
-{
- memset(gValue, 0, sizeof(GValue));
- g_value_init(gValue, G_TYPE_DOUBLE);
- g_value_set_double(gValue, core(value)->maxValueForRange());
-}
-
-static void webkitAccessibleValueGetMinimumValue(AtkValue* value, GValue* gValue)
-{
- memset(gValue, 0, sizeof(GValue));
- g_value_init(gValue, G_TYPE_DOUBLE);
- g_value_set_double(gValue, core(value)->minValueForRange());
-}
-
-static gboolean webkitAccessibleValueSetCurrentValue(AtkValue* value, const GValue* gValue)
-{
- if (!G_VALUE_HOLDS_DOUBLE(gValue) && !G_VALUE_HOLDS_INT(gValue))
- return FALSE;
-
- AccessibilityObject* coreObject = core(value);
- if (!coreObject->canSetValueAttribute())
- return FALSE;
-
- if (G_VALUE_HOLDS_DOUBLE(gValue))
- coreObject->setValue(String::number(g_value_get_double(gValue)));
- else
- coreObject->setValue(String::number(g_value_get_int(gValue)));
-
- return TRUE;
-}
-
-static void webkitAccessibleValueGetMinimumIncrement(AtkValue* value, GValue* gValue)
-{
- memset(gValue, 0, sizeof(GValue));
- g_value_init(gValue, G_TYPE_DOUBLE);
-
- // There's not such a thing in the WAI-ARIA specification, thus return zero.
- g_value_set_double(gValue, 0.0);
-}
-
-static void atkValueInterfaceInit(AtkValueIface* iface)
-{
- iface->get_current_value = webkitAccessibleValueGetCurrentValue;
- iface->get_maximum_value = webkitAccessibleValueGetMaximumValue;
- iface->get_minimum_value = webkitAccessibleValueGetMinimumValue;
- iface->set_current_value = webkitAccessibleValueSetCurrentValue;
- iface->get_minimum_increment = webkitAccessibleValueGetMinimumIncrement;
-}
-
static const GInterfaceInfo AtkInterfacesInitFunctions[] = {
{reinterpret_cast<GInterfaceInitFunc>(webkitAccessibleActionInterfaceInit), 0, 0},
{reinterpret_cast<GInterfaceInitFunc>(webkitAccessibleSelectionInterfaceInit), 0, 0},
{reinterpret_cast<GInterfaceInitFunc>(webkitAccessibleHypertextInterfaceInit), 0, 0},
{reinterpret_cast<GInterfaceInitFunc>(webkitAccessibleHyperlinkImplInterfaceInit), 0, 0},
{reinterpret_cast<GInterfaceInitFunc>(webkitAccessibleDocumentInterfaceInit), 0, 0},
- {(GInterfaceInitFunc)atkValueInterfaceInit,
- (GInterfaceFinalizeFunc) 0, 0}
+ {reinterpret_cast<GInterfaceInitFunc>(webkitAccessibleValueInterfaceInit), 0, 0}
};
enum WAIType {