File indexing completed on 2024-06-16 05:05:55

0001 /*
0002     KWin - the KDE window manager
0003     This file is part of the KDE project.
0004 
0005     SPDX-FileCopyrightText: 2020 Vlad Zahorodnii <vlad.zahorodnii@kde.org>
0006 
0007     SPDX-License-Identifier: GPL-2.0-or-later
0008 */
0009 
0010 #pragma once
0011 
0012 #include <qaccessibilityclient/registry.h>
0013 
0014 namespace KWin
0015 {
0016 
0017 class ZoomAccessibilityIntegration : public QObject
0018 {
0019     Q_OBJECT
0020 
0021 public:
0022     explicit ZoomAccessibilityIntegration(QObject *parent = nullptr);
0023 
0024     void setFocusTrackingEnabled(bool enabled);
0025     bool isFocusTrackingEnabled() const;
0026 
0027     void setTextCaretTrackingEnabled(bool enabled);
0028     bool isTextCaretTrackingEnabled() const;
0029 
0030 Q_SIGNALS:
0031     void focusPointChanged(const QPoint &point);
0032 
0033 private Q_SLOTS:
0034     void slotFocusChanged(const QAccessibleClient::AccessibleObject &object);
0035 
0036 private:
0037     void createAccessibilityRegistry();
0038     void destroyAccessibilityRegistry();
0039     void updateAccessibilityRegistry();
0040 
0041     QAccessibleClient::Registry *m_accessibilityRegistry = nullptr;
0042     bool m_isFocusTrackingEnabled = false;
0043     bool m_isTextCaretTrackingEnabled = false;
0044 };
0045 
0046 } // namespace KWin