| /**************************************************************************** |
| ** |
| ** Copyright (C) 2015 The Qt Company Ltd. |
| ** Contact: http://www.qt.io/licensing/ |
| ** |
| ** This file is part of the QtGui module of the Qt Toolkit. |
| ** |
| ** $QT_BEGIN_LICENSE:LGPL21$ |
| ** Commercial License Usage |
| ** Licensees holding valid commercial Qt licenses may use this file in |
| ** accordance with the commercial license agreement provided with the |
| ** Software or, alternatively, in accordance with the terms contained in |
| ** a written agreement between you and The Qt Company. For licensing terms |
| ** and conditions see http://www.qt.io/terms-conditions. For further |
| ** information use the contact form at http://www.qt.io/contact-us. |
| ** |
| ** GNU Lesser General Public License Usage |
| ** Alternatively, this file may be used under the terms of the GNU Lesser |
| ** General Public License version 2.1 or version 3 as published by the Free |
| ** Software Foundation and appearing in the file LICENSE.LGPLv21 and |
| ** LICENSE.LGPLv3 included in the packaging of this file. Please review the |
| ** following information to ensure the GNU Lesser General Public License |
| ** requirements will be met: https://www.gnu.org/licenses/lgpl.html and |
| ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. |
| ** |
| ** As a special exception, The Qt Company gives you certain additional |
| ** rights. These rights are described in The Qt Company LGPL Exception |
| ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. |
| ** |
| ** $QT_END_LICENSE$ |
| ** |
| ****************************************************************************/ |
| |
| // |
| // W A R N I N G |
| // ------------- |
| // |
| // This file is not part of the Qt API. It exists purely as an |
| // implementation detail. This header file may change from version to |
| // version without notice, or even be removed. |
| // |
| // We mean it. |
| // |
| |
| /* |
| * This file contains AT-SPI constants and mappings between QAccessible |
| * and AT-SPI constants such as 'role' and 'state' enumerations. |
| */ |
| |
| #ifndef Q_SPI_CONSTANT_MAPPINGS_H |
| #define Q_SPI_CONSTANT_MAPPINGS_H |
| |
| #include "struct_marshallers_p.h" |
| |
| #include <QtGui/QAccessible> |
| #include <atspi/atspi-constants.h> |
| |
| #ifndef QT_NO_ACCESSIBILITY |
| |
| // interface names from at-spi2-core/atspi/atspi-misc-private.h |
| #define ATSPI_DBUS_NAME_REGISTRY "org.a11y.atspi.Registry" |
| #define ATSPI_DBUS_PATH_REGISTRY "/org/a11y/atspi/registry" |
| #define ATSPI_DBUS_INTERFACE_REGISTRY "org.a11y.atspi.Registry" |
| |
| #define ATSPI_DBUS_PATH_ROOT "/org/a11y/atspi/accessible/root" |
| |
| #define ATSPI_DBUS_PATH_DEC "/org/a11y/atspi/registry/deviceeventcontroller" |
| #define ATSPI_DBUS_INTERFACE_DEC "org.a11y.atspi.DeviceEventController" |
| #define ATSPI_DBUS_INTERFACE_DEVICE_EVENT_LISTENER "org.a11y.atspi.DeviceEventListener" |
| |
| #define ATSPI_DBUS_INTERFACE_CACHE "org.a11y.atspi.Cache" |
| #define ATSPI_DBUS_INTERFACE_ACCESSIBLE "org.a11y.atspi.Accessible" |
| #define ATSPI_DBUS_INTERFACE_ACTION "org.a11y.atspi.Action" |
| #define ATSPI_DBUS_INTERFACE_APPLICATION "org.a11y.atspi.Application" |
| #define ATSPI_DBUS_INTERFACE_COLLECTION "org.a11y.atspi.Collection" |
| #define ATSPI_DBUS_INTERFACE_COMPONENT "org.a11y.atspi.Component" |
| #define ATSPI_DBUS_INTERFACE_DOCUMENT "org.a11y.atspi.Document" |
| #define ATSPI_DBUS_INTERFACE_EDITABLE_TEXT "org.a11y.atspi.EditableText" |
| #define ATSPI_DBUS_INTERFACE_EVENT_KEYBOARD "org.a11y.atspi.Event.Keyboard" |
| #define ATSPI_DBUS_INTERFACE_EVENT_MOUSE "org.a11y.atspi.Event.Mouse" |
| #define ATSPI_DBUS_INTERFACE_EVENT_OBJECT "org.a11y.atspi.Event.Object" |
| #define ATSPI_DBUS_INTERFACE_HYPERLINK "org.a11y.atspi.Hyperlink" |
| #define ATSPI_DBUS_INTERFACE_HYPERTEXT "org.a11y.atspi.Hypertext" |
| #define ATSPI_DBUS_INTERFACE_IMAGE "org.a11y.atspi.Image" |
| #define ATSPI_DBUS_INTERFACE_SELECTION "org.a11y.atspi.Selection" |
| #define ATSPI_DBUS_INTERFACE_TABLE "org.a11y.atspi.Table" |
| #define ATSPI_DBUS_INTERFACE_TEXT "org.a11y.atspi.Text" |
| #define ATSPI_DBUS_INTERFACE_VALUE "org.a11y.atspi.Value" |
| #define ATSPI_DBUS_INTERFACE_SOCKET "org.a11y.atspi.Socket" |
| |
| // missing from at-spi2-core: |
| #define ATSPI_DBUS_INTERFACE_EVENT_WINDOW "org.a11y.atspi.Event.Window" |
| #define ATSPI_DBUS_INTERFACE_EVENT_FOCUS "org.a11y.atspi.Event.Focus" |
| |
| #define QSPI_OBJECT_PATH_ACCESSIBLE "/org/a11y/atspi/accessible" |
| #define QSPI_OBJECT_PATH_PREFIX "/org/a11y/atspi/accessible/" |
| #define QSPI_OBJECT_PATH_ROOT QSPI_OBJECT_PATH_PREFIX "root" |
| |
| #define QSPI_REGISTRY_NAME "org.a11y.atspi.Registry" |
| |
| QT_BEGIN_NAMESPACE |
| |
| struct RoleNames { |
| RoleNames() {} |
| RoleNames(AtspiRole r, const QString& n, const QString& ln) |
| :m_spiRole(r), m_name(n), m_localizedName(ln) |
| {} |
| |
| AtspiRole spiRole() const {return m_spiRole;} |
| QString name() const {return m_name;} |
| QString localizedName() const {return m_localizedName;} |
| |
| private: |
| AtspiRole m_spiRole; |
| QString m_name; |
| QString m_localizedName; |
| }; |
| |
| extern QHash <QAccessible::Role, RoleNames> qSpiRoleMapping; |
| extern QHash <int, AtspiStateType> qSpiStateMapping; |
| |
| inline void setSpiStateBit(quint64* state, AtspiStateType spiState) |
| { |
| *state |= quint64(1) << spiState; |
| } |
| |
| inline void unsetSpiStateBit(quint64* state, AtspiStateType spiState) |
| { |
| *state &= ~(quint64(1) << spiState); |
| } |
| |
| quint64 spiStatesFromQState(QAccessible::State state); |
| QSpiUIntList spiStateSetFromSpiStates(quint64 states); |
| |
| AtspiRelationType qAccessibleRelationToAtSpiRelation(QAccessible::Relation relation); |
| |
| QT_END_NAMESPACE |
| #endif //QT_NO_ACCESSIBILITY |
| |
| #endif /* Q_SPI_CONSTANT_MAPPINGS_H */ |