File indexing completed on 2024-04-21 03:44:55

0001 /*
0002     SPDX-FileCopyrightText: 2005 Jason Harris <kstars@30doradus.org>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include "kplotwidget.h"
0010 
0011 class PlanetViewer;
0012 
0013 class PVPlotWidget : public KPlotWidget
0014 {
0015     Q_OBJECT
0016   public:
0017     explicit PVPlotWidget(QWidget *parent = nullptr);
0018 
0019   public slots:
0020     void slotZoomIn();
0021     void slotZoomOut();
0022 
0023   signals:
0024     void doubleClicked(double, double);
0025 
0026   protected:
0027     void keyPressEvent(QKeyEvent *e) override;
0028     void mousePressEvent(QMouseEvent *e) override;
0029     void mouseMoveEvent(QMouseEvent *e) override;
0030     void mouseReleaseEvent(QMouseEvent *) override;
0031     void mouseDoubleClickEvent(QMouseEvent *e) override;
0032     void wheelEvent(QWheelEvent *e) override;
0033 
0034   private:
0035     void updateFactor(const int modifier);
0036 
0037     bool mouseButtonDown { false };
0038     int oldx { 0 };
0039     int oldy { 0 };
0040     double factor { 2 };
0041     PlanetViewer *pv { nullptr };
0042 };