[gtk/a11y/atspi: 23/43] a11y: Return the ATSPI role for the root element




commit 6083c21764d36027d9bfe00dd650ec0bac5ad301
Author: Emmanuele Bassi <ebassi gnome org>
Date:   Fri Oct 9 14:49:10 2020 +0100

    a11y: Return the ATSPI role for the root element

 gtk/a11y/gtkatspiprivate.h | 160 +++++++++++++++++++++++++++++++++++++++++++++
 gtk/a11y/gtkatspiroot.c    |   8 +++
 2 files changed, 168 insertions(+)
---
diff --git a/gtk/a11y/gtkatspiprivate.h b/gtk/a11y/gtkatspiprivate.h
new file mode 100644
index 0000000000..5a047efca8
--- /dev/null
+++ b/gtk/a11y/gtkatspiprivate.h
@@ -0,0 +1,160 @@
+/* gtkatspiprivate.h: AT-SPI shared types
+ *
+ * Copyright 2020  GNOME Foundation
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+typedef enum {
+  ATSPI_ROLE_INVALID,
+  ATSPI_ROLE_ACCELERATOR_LABEL,
+  ATSPI_ROLE_ALERT,
+  ATSPI_ROLE_ANIMATION,
+  ATSPI_ROLE_ARROW,
+  ATSPI_ROLE_CALENDAR,
+  ATSPI_ROLE_CANVAS,
+  ATSPI_ROLE_CHECK_BOX,
+  ATSPI_ROLE_CHECK_MENU_ITEM,
+  ATSPI_ROLE_COLOR_CHOOSER,
+  ATSPI_ROLE_COLUMN_HEADER,
+  ATSPI_ROLE_COMBO_BOX,
+  ATSPI_ROLE_DATE_EDITOR,
+  ATSPI_ROLE_DESKTOP_ICON,
+  ATSPI_ROLE_DESKTOP_FRAME,
+  ATSPI_ROLE_DIAL,
+  ATSPI_ROLE_DIALOG,
+  ATSPI_ROLE_DIRECTORY_PANE,
+  ATSPI_ROLE_DRAWING_AREA,
+  ATSPI_ROLE_FILE_CHOOSER,
+  ATSPI_ROLE_FILLER,
+  ATSPI_ROLE_FOCUS_TRAVERSABLE,
+  ATSPI_ROLE_FONT_CHOOSER,
+  ATSPI_ROLE_FRAME,
+  ATSPI_ROLE_GLASS_PANE,
+  ATSPI_ROLE_HTML_CONTAINER,
+  ATSPI_ROLE_ICON,
+  ATSPI_ROLE_IMAGE,
+  ATSPI_ROLE_INTERNAL_FRAME,
+  ATSPI_ROLE_LABEL,
+  ATSPI_ROLE_LAYERED_PANE,
+  ATSPI_ROLE_LIST,
+  ATSPI_ROLE_LIST_ITEM,
+  ATSPI_ROLE_MENU,
+  ATSPI_ROLE_MENU_BAR,
+  ATSPI_ROLE_MENU_ITEM,
+  ATSPI_ROLE_OPTION_PANE,
+  ATSPI_ROLE_PAGE_TAB,
+  ATSPI_ROLE_PAGE_TAB_LIST,
+  ATSPI_ROLE_PANEL,
+  ATSPI_ROLE_PASSWORD_TEXT,
+  ATSPI_ROLE_POPUP_MENU,
+  ATSPI_ROLE_PROGRESS_BAR,
+  ATSPI_ROLE_PUSH_BUTTON,
+  ATSPI_ROLE_RADIO_BUTTON,
+  ATSPI_ROLE_RADIO_MENU_ITEM,
+  ATSPI_ROLE_ROOT_PANE,
+  ATSPI_ROLE_ROW_HEADER,
+  ATSPI_ROLE_SCROLL_BAR,
+  ATSPI_ROLE_SCROLL_PANE,
+  ATSPI_ROLE_SEPARATOR,
+  ATSPI_ROLE_SLIDER,
+  ATSPI_ROLE_SPIN_BUTTON,
+  ATSPI_ROLE_SPLIT_PANE,
+  ATSPI_ROLE_STATUS_BAR,
+  ATSPI_ROLE_TABLE,
+  ATSPI_ROLE_TABLE_CELL,
+  ATSPI_ROLE_TABLE_COLUMN_HEADER,
+  ATSPI_ROLE_TABLE_ROW_HEADER,
+  ATSPI_ROLE_TEAROFF_MENU_ITEM,
+  ATSPI_ROLE_TERMINAL,
+  ATSPI_ROLE_TEXT,
+  ATSPI_ROLE_TOGGLE_BUTTON,
+  ATSPI_ROLE_TOOL_BAR,
+  ATSPI_ROLE_TOOL_TIP,
+  ATSPI_ROLE_TREE,
+  ATSPI_ROLE_TREE_TABLE,
+  ATSPI_ROLE_UNKNOWN,
+  ATSPI_ROLE_VIEWPORT,
+  ATSPI_ROLE_WINDOW,
+  ATSPI_ROLE_EXTENDED,
+  ATSPI_ROLE_HEADER,
+  ATSPI_ROLE_FOOTER,
+  ATSPI_ROLE_PARAGRAPH,
+  ATSPI_ROLE_RULER,
+  ATSPI_ROLE_APPLICATION,
+  ATSPI_ROLE_AUTOCOMPLETE,
+  ATSPI_ROLE_EDITBAR,
+  ATSPI_ROLE_EMBEDDED,
+  ATSPI_ROLE_ENTRY,
+  ATSPI_ROLE_CHART,
+  ATSPI_ROLE_CAPTION,
+  ATSPI_ROLE_DOCUMENT_FRAME,
+  ATSPI_ROLE_HEADING,
+  ATSPI_ROLE_PAGE,
+  ATSPI_ROLE_SECTION,
+  ATSPI_ROLE_REDUNDANT_OBJECT,
+  ATSPI_ROLE_FORM,
+  ATSPI_ROLE_LINK,
+  ATSPI_ROLE_INPUT_METHOD_WINDOW,
+  ATSPI_ROLE_TABLE_ROW,
+  ATSPI_ROLE_TREE_ITEM,
+  ATSPI_ROLE_DOCUMENT_SPREADSHEET,
+  ATSPI_ROLE_DOCUMENT_PRESENTATION,
+  ATSPI_ROLE_DOCUMENT_TEXT,
+  ATSPI_ROLE_DOCUMENT_WEB,
+  ATSPI_ROLE_DOCUMENT_EMAIL,
+  ATSPI_ROLE_COMMENT,
+  ATSPI_ROLE_LIST_BOX,
+  ATSPI_ROLE_GROUPING,
+  ATSPI_ROLE_IMAGE_MAP,
+  ATSPI_ROLE_NOTIFICATION,
+  ATSPI_ROLE_INFO_BAR,
+  ATSPI_ROLE_LEVEL_BAR,
+  ATSPI_ROLE_TITLE_BAR,
+  ATSPI_ROLE_BLOCK_QUOTE,
+  ATSPI_ROLE_AUDIO,
+  ATSPI_ROLE_VIDEO,
+  ATSPI_ROLE_DEFINITION,
+  ATSPI_ROLE_ARTICLE,
+  ATSPI_ROLE_LANDMARK,
+  ATSPI_ROLE_LOG,
+  ATSPI_ROLE_MARQUEE,
+  ATSPI_ROLE_MATH,
+  ATSPI_ROLE_RATING,
+  ATSPI_ROLE_TIMER,
+  ATSPI_ROLE_STATIC,
+  ATSPI_ROLE_MATH_FRACTION,
+  ATSPI_ROLE_MATH_ROOT,
+  ATSPI_ROLE_SUBSCRIPT,
+  ATSPI_ROLE_SUPERSCRIPT,
+  ATSPI_ROLE_DESCRIPTION_LIST,
+  ATSPI_ROLE_DESCRIPTION_TERM,
+  ATSPI_ROLE_DESCRIPTION_VALUE,
+  ATSPI_ROLE_FOOTNOTE,
+  ATSPI_ROLE_CONTENT_DELETION,
+  ATSPI_ROLE_CONTENT_INSERTION,
+  ATSPI_ROLE_MARK,
+  ATSPI_ROLE_SUGGESTION,
+  ATSPI_ROLE_LAST_DEFINED,
+} AtspiRole;
+
+G_END_DECLS
diff --git a/gtk/a11y/gtkatspiroot.c b/gtk/a11y/gtkatspiroot.c
index 4cca4e526a..acc98f12a2 100644
--- a/gtk/a11y/gtkatspiroot.c
+++ b/gtk/a11y/gtkatspiroot.c
@@ -22,6 +22,8 @@
 
 #include "gtkatspirootprivate.h"
 
+#include "gtkatspiprivate.h"
+
 #include "gtkdebug.h"
 #include "gtkwindow.h"
 
@@ -210,6 +212,12 @@ handle_accessible_method (GDBusConnection       *connection,
   g_printerr ("[Accessible] Method '%s' on interface '%s' for object '%s' from '%s'\n",
               method_name, interface_name, object_path, sender);
 
+  if (g_strcmp0 (method_name, "GetRole") == 0)
+    g_dbus_method_invocation_return_value (invocation, g_variant_new ("(u)", ATSPI_ROLE_APPLICATION));
+  else if (g_strcmp0 (method_name, "GetRoleName") == 0)
+    g_dbus_method_invocation_return_value (invocation, g_variant_new ("(s)", "application"));
+  else if (g_strcmp0 (method_name, "GetLocalizedRoleName") == 0)
+    g_dbus_method_invocation_return_value (invocation, g_variant_new ("(s)", "application"));
 }
 
 static GVariant *


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]