/* SPDX-FileCopyrightText: 2017 Roman Gilg SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef KWINWAYLANDTOUCHPAD_H #define KWINWAYLANDTOUCHPAD_H #include #include class QDBusInterface; class KWinWaylandTouchpad : public LibinputCommon { Q_OBJECT Q_PROPERTY(qreal scrollFactor READ scrollFactor WRITE setScrollFactor NOTIFY scrollFactorChanged) public: KWinWaylandTouchpad(QString dbusName); ~KWinWaylandTouchpad() override; bool init(); bool getConfig(); bool getDefaultConfig(); bool applyConfig(); bool isChangedConfig() const; // // general QString name() const override { return m_name.val; } QString sysName() const { return m_sysName.val; } bool supportsDisableEvents() const override { return m_supportsDisableEvents.val; } void setEnabled(bool enabled) override { m_enabled.set(enabled); } bool isEnabled() const override { return m_enabled.val; } // // advanced bool supportsLeftHanded() const override { return m_supportsLeftHanded.val; } bool supportsDisableEventsOnExternalMouse() const override { return m_supportsDisableEventsOnExternalMouse.val; } bool supportsDisableWhileTyping() const override { return m_supportsDisableWhileTyping.val; } bool supportsMiddleEmulation() const override { return m_supportsMiddleEmulation.val; } // // tapping void setLmrTapButtonMap(bool set) override { m_lmrTapButtonMap.set(set); } // // acceleration speed and profile bool supportsPointerAcceleration() const override { return m_supportsPointerAcceleration.val; } bool supportsPointerAccelerationProfileFlat() const override { return m_supportsPointerAccelerationProfileFlat.val; } bool supportsPointerAccelerationProfileAdaptive() const override { return m_supportsPointerAccelerationProfileAdaptive.val; } // // scrolling bool supportsNaturalScroll() const override { return m_supportsNaturalScroll.val; } bool supportsHorizontalScrolling() const override { return false; } bool supportsScrollTwoFinger() const override { return m_supportsScrollTwoFinger.val; } bool supportsScrollEdge() const override { return m_supportsScrollEdge.val; } bool supportsScrollOnButtonDown() const override { return m_supportsScrollOnButtonDown.val; } // // Scroll Factor bool supportsScrollFactor() const override { return true; } qreal scrollFactor() const { return m_scrollFactor.val; } void setScrollFactor(qreal factor) { return m_scrollFactor.set(factor); } // // Click method bool supportsClickMethodAreas() const override { return m_supportsClickMethodAreas.val; } bool supportsClickMethodClickfinger() const override { return m_supportsClickMethodClickfinger.val; } Q_SIGNALS: void scrollFactorChanged(); private: template bool valueLoader(Prop &prop); template QString valueWriter(const Prop &prop); // // general Prop m_name = Prop("name"); Prop m_sysName = Prop("sysName"); // // advanced Prop m_supportsLeftHanded = Prop("supportsLeftHanded"); Prop m_supportsDisableWhileTyping = Prop("supportsDisableWhileTyping"); Prop m_supportsMiddleEmulation = Prop("supportsMiddleEmulation"); // // acceleration speed and profile Prop m_supportsPointerAcceleration = Prop("supportsPointerAcceleration"); // // scrolling Prop m_supportsNaturalScroll = Prop("supportsNaturalScroll"); Prop m_scrollFactor = Prop("scrollFactor"); QDBusInterface *m_iface; }; #endif