File indexing completed on 2024-06-23 05:13:36
0001 /* 0002 accessibility/accessiblelink_p.h 0003 0004 This file is part of Kleopatra, the KDE keymanager 0005 SPDX-FileCopyrightText: 2022 g10 Code GmbH 0006 SPDX-FileContributor: Ingo Klöcker <dev@ingo-kloecker.de> 0007 0008 SPDX-License-Identifier: GPL-2.0-or-later 0009 */ 0010 0011 #pragma once 0012 0013 #include <QAccessible> 0014 #include <QPointer> 0015 0016 class QWidget; 0017 0018 namespace Kleo 0019 { 0020 class AnchorProvider; 0021 0022 class AccessibleLink : public QAccessibleInterface, public QAccessibleActionInterface 0023 { 0024 public: 0025 AccessibleLink(QWidget *label, int index); 0026 ~AccessibleLink() override; 0027 0028 bool isValid() const override; 0029 QObject *object() const override; 0030 QWindow *window() const override; 0031 0032 QAccessibleInterface *childAt(int x, int y) const override; 0033 0034 QAccessibleInterface *parent() const override; 0035 QAccessibleInterface *child(int index) const override; 0036 int childCount() const override; 0037 int indexOfChild(const QAccessibleInterface *child) const override; 0038 0039 QString text(QAccessible::Text t) const override; 0040 void setText(QAccessible::Text t, const QString &text) override; 0041 QRect rect() const override; 0042 QAccessible::Role role() const override; 0043 QAccessible::State state() 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 0052 int index() const; 0053 0054 private: 0055 AnchorProvider *anchorProvider() const; 0056 0057 QPointer<QWidget> mLabel; 0058 int mIndex; 0059 }; 0060 0061 }