File indexing completed on 2024-05-12 15:28:21

0001 /***************************************************************************
0002 File                 : PresenterWidget.h
0003 Project              : LabPlot
0004 Description          : Widget for static presenting of worksheets
0005 --------------------------------------------------------------------
0006 Copyright            : (C) 2016 by Fabian Kristof (fkristofszabolcs@gmail.com)
0007 ***************************************************************************/
0008 
0009 /***************************************************************************
0010 *                                                                         *
0011 *  This program is free software; you can redistribute it and/or modify   *
0012 *  it under the terms of the GNU General Public License as published by   *
0013 *  the Free Software Foundation; either version 2 of the License, or      *
0014 *  (at your option) any later version.                                    *
0015 *                                                                         *
0016 *  This program is distributed in the hope that it will be useful,        *
0017 *  but WITHOUT ANY WARRANTY; without even the implied warranty of         *
0018 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          *
0019 *  GNU General Public License for more details.                           *
0020 *                                                                         *
0021 *   You should have received a copy of the GNU General Public License     *
0022 *   along with this program; if not, write to the Free Software           *
0023 *   Foundation, Inc., 51 Franklin Street, Fifth Floor,                    *
0024 *   Boston, MA  02110-1301  USA                                           *
0025 *                                                                         *
0026 ***************************************************************************/
0027 #ifndef PRESENTERWIDGET_H
0028 #define PRESENTERWIDGET_H
0029 
0030 #include <QWidget>
0031 
0032 class QLabel;
0033 class QTimeLine;
0034 class QPushButton;
0035 class SlidingPanel;
0036 
0037 class PresenterWidget : public QWidget {
0038     Q_OBJECT
0039 
0040 public:
0041     explicit PresenterWidget(const QPixmap& pixmap, const QString& worksheetName, QWidget *parent = nullptr);
0042     ~PresenterWidget() override;
0043 
0044 private:
0045     QLabel* m_imageLabel;
0046     QTimeLine* m_timeLine;
0047     SlidingPanel* m_panel;
0048     void startTimeline();
0049 
0050 protected:
0051     void keyPressEvent(QKeyEvent*) override;
0052     void focusOutEvent(QFocusEvent*) override;
0053     bool eventFilter(QObject*, QEvent*) override;
0054 #ifdef Q_OS_MAC
0055     void closeEvent(QCloseEvent*) override;
0056 #endif
0057 
0058 private slots:
0059     void slideDown();
0060     void slideUp();
0061 };
0062 
0063 #endif // PRESENTERWIDGET_H