/* KWin - the KDE window manager This file is part of the KDE project. SPDX-FileCopyrightText: 2009 Lucas Murray SPDX-FileCopyrightText: 2018 Vlad Zahorodnii SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef KWIN_SNAPHELPER_H #define KWIN_SNAPHELPER_H #include namespace KWin { class SnapHelperEffect : public Effect { Q_OBJECT public: SnapHelperEffect(); ~SnapHelperEffect() override; void reconfigure(ReconfigureFlags flags) override; void prePaintScreen(ScreenPrePaintData &data, std::chrono::milliseconds presentTime) override; void paintScreen(int mask, const QRegion ®ion, ScreenPaintData &data) override; void postPaintScreen() override; bool isActive() const override; private Q_SLOTS: void slotWindowClosed(EffectWindow *w); void slotWindowStartUserMovedResized(EffectWindow *w); void slotWindowFinishUserMovedResized(EffectWindow *w); void slotWindowFrameGeometryChanged(EffectWindow *w, const QRect &old); private: QRect m_geometry; EffectWindow *m_window = nullptr; struct Animation { bool active = false; TimeLine timeLine; std::chrono::milliseconds lastPresentTime = std::chrono::milliseconds::zero(); }; Animation m_animation; }; } // namespace KWin #endif