File indexing completed on 2025-07-13 03:33:02

0001 /*
0002     File                 : PresenterWidget.h
0003     Project              : LabPlot
0004     Description          : Widget for dynamic presenting of worksheets
0005     --------------------------------------------------------------------
0006     SPDX-FileCopyrightText: 2016 Fabian Kristof <fkristofszabolcs@gmail.com>
0007     SPDX-FileCopyrightText: 2018-2023 Alexander Semke <alexander.semke@web.de>
0008     SPDX-License-Identifier: GPL-2.0-or-later
0009 */
0010 #ifndef PRESENTERWIDGET_H
0011 #define PRESENTERWIDGET_H
0012 
0013 #include <QWidget>
0014 
0015 class SlidingPanelTop;
0016 class SlidingPanelBottom;
0017 class WorksheetView;
0018 class Worksheet;
0019 
0020 class PresenterWidget : public QWidget {
0021     Q_OBJECT
0022 
0023 public:
0024     explicit PresenterWidget(Worksheet* worksheet, QScreen* screen, bool interactive = false, QWidget* parent = nullptr);
0025     ~PresenterWidget() override;
0026 
0027 private:
0028     Worksheet* m_worksheet{nullptr};
0029     WorksheetView* m_view{nullptr};
0030     SlidingPanelTop* m_panel{nullptr};
0031     SlidingPanelBottom* m_navigationPanel{nullptr};
0032     void startTimeline();
0033 
0034 protected:
0035     void keyPressEvent(QKeyEvent*) override;
0036     bool eventFilter(QObject*, QEvent*) override;
0037     void focusOutEvent(QFocusEvent*) override;
0038 #ifdef Q_OS_MAC
0039     void closeEvent(QCloseEvent*) override;
0040 #endif
0041 };
0042 
0043 #endif // PRESENTERWIDGET_H