┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/accessibility/kitemlistcontaineraccessible.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/kitemviews/accessibility/kitemlistcontaineraccessible.h')
-rw-r--r--src/kitemviews/accessibility/kitemlistcontaineraccessible.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/kitemviews/accessibility/kitemlistcontaineraccessible.h b/src/kitemviews/accessibility/kitemlistcontaineraccessible.h
new file mode 100644
index 000000000..5a7147a36
--- /dev/null
+++ b/src/kitemviews/accessibility/kitemlistcontaineraccessible.h
@@ -0,0 +1,45 @@
+/*
+ * SPDX-FileCopyrightText: 2012 Amandeep Singh <[email protected]>
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#ifndef KITEMLISTCONTAINERACCESSIBLE_H
+#define KITEMLISTCONTAINERACCESSIBLE_H
+
+#include "dolphin_export.h"
+
+#include <QAccessibleWidget>
+
+class KItemListContainer;
+class KItemListViewAccessible;
+
+/**
+ * The accessible interface for KItemListContainer.
+ *
+ * Truthfully, there is absolutely no reason for screen reader users to interact with this interface.
+ * It is only there to bridge the gap between custom accessible interfaces and the automatically by Qt and QWidgets provided accessible interfaces.
+ * Really, the main issue is that KItemListContainer itself is the last proper QWidget in the hierarchy while the actual main view is completely custom using
+ * QGraphicsView instead, so focus usually officially goes to KItemListContainer which messes with the custom accessibility hierarchy.
+ */
+class DOLPHIN_EXPORT KItemListContainerAccessible : public QAccessibleWidget
+{
+public:
+ explicit KItemListContainerAccessible(KItemListContainer *container);
+ ~KItemListContainerAccessible() override;
+
+ QString text(QAccessible::Text t) const override;
+
+ QAccessibleInterface *child(int index) const override;
+ QAccessibleInterface *focusChild() const override;
+ int childCount() const override;
+ int indexOfChild(const QAccessibleInterface *child) const override;
+
+ QAccessible::State state() const override;
+ void doAction(const QString &actionName) override;
+
+ /** @returns the object() of this interface cast to its actual class. */
+ const KItemListContainer *container() const;
+};
+
+#endif // KITEMLISTCONTAINERACCESSIBLE_H