KWin
Loading...
Searching...
No Matches
timeline.h
Go to the documentation of this file.
1/*
2 SPDX-FileCopyrightText: 2018 Vlad Zahorodnii <vlad.zahorodnii@kde.org>
3
4 SPDX-License-Identifier: GPL-2.0-or-later
5*/
6
7#pragma once
8
9#include "kwin_export.h"
10
11#include <QEasingCurve>
12#include <QSharedDataPointer>
13
14#include <chrono>
15
16namespace KWin
17{
18
22class KWIN_EXPORT TimeLine
23{
24public:
34 enum Direction {
36 Backward
37 };
38
46 explicit TimeLine(std::chrono::milliseconds duration = std::chrono::milliseconds(1000),
47 Direction direction = Forward);
48 TimeLine(const TimeLine &other);
50
56 qreal value() const;
57
61 void advance(std::chrono::milliseconds timestamp);
62
69 std::chrono::milliseconds elapsed() const;
70
87 void setElapsed(std::chrono::milliseconds elapsed);
88
96 std::chrono::milliseconds duration() const;
97
114 void setDuration(std::chrono::milliseconds duration);
115
125
134 void setDirection(Direction direction);
135
146 void toggleDirection();
147
154 QEasingCurve easingCurve() const;
155
163 void setEasingCurve(const QEasingCurve &easingCurve);
164
172 void setEasingCurve(QEasingCurve::Type type);
173
180 bool running() const;
181
188 bool done() const;
189
195 void reset();
196
197 enum class RedirectMode {
198 Strict,
199 Relaxed
200 };
201
221
228 void setSourceRedirectMode(RedirectMode mode);
229
247
254 void setTargetRedirectMode(RedirectMode mode);
255
256 TimeLine &operator=(const TimeLine &other);
257
263 qreal progress() const;
264
265private:
266 class Data;
267 QSharedDataPointer<Data> d;
268};
269
270} // namespace KWin
Direction direction() const
RedirectMode targetRedirectMode() const
std::chrono::milliseconds duration() const
RedirectMode sourceRedirectMode() const
QEasingCurve easingCurve() const
bool done() const
std::chrono::milliseconds elapsed() const