[GTK] Refactor GTK's accessibilitity code to be more modular
authormario@webkit.org <mario@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 24 Jan 2012 16:22:57 +0000 (16:22 +0000)
committermario@webkit.org <mario@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 24 Jan 2012 16:22:57 +0000 (16:22 +0000)
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.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@105740 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/GNUmakefile.list.am
Source/WebCore/WebCore.gypi
Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceValue.cpp [new file with mode: 0644]
Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceValue.h [new file with mode: 0644]
Source/WebCore/accessibility/gtk/WebKitAccessibleWrapperAtk.cpp

index 2b13e70..fb69b1f 100644 (file)
@@ -1,3 +1,30 @@
+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
index 60bf5c5..6e7a134 100644 (file)
@@ -4437,6 +4437,8 @@ webcoregtk_sources += \
        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 \
index 7745ac6..f939786 100644 (file)
             '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',
diff --git a/Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceValue.cpp b/Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceValue.cpp
new file mode 100644 (file)
index 0000000..68e9916
--- /dev/null
@@ -0,0 +1,90 @@
+/*
+ * 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);
+}
diff --git a/Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceValue.h b/Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceValue.h
new file mode 100644 (file)
index 0000000..226c5bd
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * 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
index 4c83455..fa4fedc 100644 (file)
@@ -71,6 +71,7 @@
 #include "WebKitAccessibleInterfaceHypertext.h"
 #include "WebKitAccessibleInterfaceImage.h"
 #include "WebKitAccessibleInterfaceSelection.h"
+#include "WebKitAccessibleInterfaceValue.h"
 #include "WebKitAccessibleUtil.h"
 #include "htmlediting.h"
 #include "visible_units.h"
@@ -125,11 +126,6 @@ static AccessibilityObject* core(AtkTable* table)
     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)
@@ -1820,62 +1816,6 @@ static void atk_table_interface_init(AtkTableIface* iface)
     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},
@@ -1889,8 +1829,7 @@ static const GInterfaceInfo AtkInterfacesInitFunctions[] = {
     {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 {