qTox  Version: nightly | Commit: bc751c8e1cac455f9690654fcfe0f560d2d7dfdd
flyoutoverlaywidget.h
Go to the documentation of this file.
1 /*
2  Copyright © 2013 by Maxim Biro <nurupo.contributions@gmail.com>
3  Copyright © 2015-2019 by The qTox Project Contributors
4 
5  This file is part of qTox, a Qt-based graphical interface for Tox.
6 
7  qTox is libre software: you can redistribute it and/or modify
8  it under the terms of the GNU General Public License as published by
9  the Free Software Foundation, either version 3 of the License, or
10  (at your option) any later version.
11 
12  qTox is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with qTox. If not, see <http://www.gnu.org/licenses/>.
19 */
20 
21 #pragma once
22 
23 #include <QWidget>
24 
25 class QPropertyAnimation;
26 
27 class FlyoutOverlayWidget : public QWidget
28 {
29  Q_OBJECT
30  Q_PROPERTY(qreal flyoutPercent READ flyoutPercent WRITE setFlyoutPercent)
31 public:
32  explicit FlyoutOverlayWidget(QWidget* parent = nullptr);
34 
35  int animationDuration() const;
36  void setAnimationDuration(int timeMs);
37 
38  qreal flyoutPercent() const;
39  void setFlyoutPercent(qreal progress);
40 
41  bool isShown() const;
42  bool isBeingAnimated() const;
43  bool isBeingShown() const;
44 
45  void animateShow();
46  void animateHide();
47 
48 signals:
49 
50  void hidden();
51 
52 private:
53  void finishedAnimation();
54  void startAnimation(bool forward);
55 
56  QWidget* container;
57  QPropertyAnimation* animation;
58  qreal percent = 1.0f;
59  QPoint startPos;
60 };
FlyoutOverlayWidget::animationDuration
int animationDuration() const
Definition: flyoutoverlaywidget.cpp:48
FlyoutOverlayWidget::FlyoutOverlayWidget
FlyoutOverlayWidget(QWidget *parent=nullptr)
Definition: flyoutoverlaywidget.cpp:29
FlyoutOverlayWidget::animation
QPropertyAnimation * animation
Definition: flyoutoverlaywidget.h:57
FlyoutOverlayWidget::flyoutPercent
qreal flyoutPercent
Definition: flyoutoverlaywidget.h:30
FlyoutOverlayWidget::animateHide
void animateHide()
Definition: flyoutoverlaywidget.cpp:99
FlyoutOverlayWidget::isBeingAnimated
bool isBeingAnimated() const
Definition: flyoutoverlaywidget.cpp:78
FlyoutOverlayWidget::animateShow
void animateShow()
Definition: flyoutoverlaywidget.cpp:88
FlyoutOverlayWidget::~FlyoutOverlayWidget
~FlyoutOverlayWidget()
Definition: flyoutoverlaywidget.cpp:44
FlyoutOverlayWidget::isBeingShown
bool isBeingShown() const
Definition: flyoutoverlaywidget.cpp:83
FlyoutOverlayWidget::container
QWidget * container
Definition: flyoutoverlaywidget.h:56
FlyoutOverlayWidget::hidden
void hidden()
FlyoutOverlayWidget::setAnimationDuration
void setAnimationDuration(int timeMs)
Definition: flyoutoverlaywidget.cpp:53
FlyoutOverlayWidget::startPos
QPoint startPos
Definition: flyoutoverlaywidget.h:59
FlyoutOverlayWidget::setFlyoutPercent
void setFlyoutPercent(qreal progress)
Definition: flyoutoverlaywidget.cpp:63
FlyoutOverlayWidget::percent
qreal percent
Definition: flyoutoverlaywidget.h:58
FlyoutOverlayWidget::startAnimation
void startAnimation(bool forward)
Definition: flyoutoverlaywidget.cpp:116
FlyoutOverlayWidget
Definition: flyoutoverlaywidget.h:27
FlyoutOverlayWidget::finishedAnimation
void finishedAnimation()
Definition: flyoutoverlaywidget.cpp:107
FlyoutOverlayWidget::isShown
bool isShown() const
Definition: flyoutoverlaywidget.cpp:73