Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-03-30 08:28:55

0001 // Copyright (C) 2016 The Qt Company Ltd.
0002 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
0003 
0004 #ifndef QACCESSIBLEWIDGET_H
0005 #define QACCESSIBLEWIDGET_H
0006 
0007 #include <QtWidgets/qtwidgetsglobal.h>
0008 #include <QtGui/qaccessibleobject.h>
0009 #include <QtCore/qlist.h>
0010 
0011 QT_BEGIN_NAMESPACE
0012 
0013 
0014 #if QT_CONFIG(accessibility)
0015 
0016 class QAccessibleWidgetPrivate;
0017 
0018 class Q_WIDGETS_EXPORT QAccessibleWidget : public QAccessibleObject,
0019                                            public QAccessibleActionInterface
0020 {
0021 public:
0022     explicit QAccessibleWidget(QWidget *o, QAccessible::Role r = QAccessible::Client);
0023     explicit QAccessibleWidget(QWidget *o, QAccessible::Role r, const QString& name);
0024     bool isValid() const override;
0025 
0026     QWindow *window() const override;
0027     int childCount() const override;
0028     int indexOfChild(const QAccessibleInterface *child) const override;
0029     QList<std::pair<QAccessibleInterface *, QAccessible::Relation>>
0030     relations(QAccessible::Relation match = QAccessible::AllRelations) const override;
0031     QAccessibleInterface *focusChild() const override;
0032 
0033     QRect rect() const override;
0034 
0035     QAccessibleInterface *parent() const override;
0036     QAccessibleInterface *child(int index) const override;
0037 
0038     QString text(QAccessible::Text t) const override;
0039     QAccessible::Role role() const override;
0040     QAccessible::State state() const override;
0041 
0042     QColor foregroundColor() const override;
0043     QColor backgroundColor() const override;
0044 
0045     void *interface_cast(QAccessible::InterfaceType t) override;
0046 
0047     // QAccessibleActionInterface
0048     QStringList actionNames() const override;
0049     void doAction(const QString &actionName) override;
0050     QStringList keyBindingsForAction(const QString &actionName) const override;
0051 protected:
0052     ~QAccessibleWidget();
0053     QWidget *widget() const;
0054     QObject *parentObject() const;
0055 
0056     void addControllingSignal(const QString &signal);
0057 
0058 private:
0059     QAccessibleWidgetPrivate *d;
0060     Q_DISABLE_COPY(QAccessibleWidget)
0061 };
0062 
0063 class Q_WIDGETS_EXPORT QAccessibleWidgetV2 : public QAccessibleWidget,
0064                                              public QAccessibleAttributesInterface
0065 {
0066 #ifdef Q_OS_INTEGRITY
0067     // force instantiation to avoid error #2045
0068     struct error2045 : QList<QAccessible::Attribute> {};
0069 #endif
0070 public:
0071     explicit QAccessibleWidgetV2(QWidget *object, QAccessible::Role role = QAccessible::Client);
0072     explicit QAccessibleWidgetV2(QWidget *object, QAccessible::Role role, const QString &name);
0073 
0074 protected:
0075     ~QAccessibleWidgetV2() override;
0076 
0077 public:
0078     void *interface_cast(QAccessible::InterfaceType t) override;
0079 
0080     // QAccessibleAttributesInterface
0081     QList<QAccessible::Attribute> attributeKeys() const override;
0082     QVariant attributeValue(QAccessible::Attribute key) const override;
0083 
0084 private:
0085     Q_DISABLE_COPY(QAccessibleWidgetV2)
0086 };
0087 
0088 #endif // QT_CONFIG(accessibility)
0089 
0090 QT_END_NAMESPACE
0091 
0092 #endif // QACCESSIBLEWIDGET_H