supercell-wx/scwx-qt/source/scwx/qt/map/map_widget.hpp
2021-11-05 22:58:53 -05:00

60 lines
1.1 KiB
C++

#pragma once
#include <scwx/common/products.hpp>
#include <memory>
#include <QMapboxGL>
#include <QOpenGLWidget>
#include <QPropertyAnimation>
#include <QtGlobal>
class QKeyEvent;
class QMouseEvent;
class QWheelEvent;
namespace scwx
{
namespace qt
{
namespace map
{
class MapWidgetImpl;
class MapWidget : public QOpenGLWidget
{
Q_OBJECT
public:
explicit MapWidget(const QMapboxGLSettings&);
~MapWidget();
void SelectRadarProduct(common::Level2Product product);
private:
void changeStyle();
qreal pixelRatio();
// QWidget implementation.
void keyPressEvent(QKeyEvent* ev) override final;
void mousePressEvent(QMouseEvent* ev) override final;
void mouseMoveEvent(QMouseEvent* ev) override final;
void wheelEvent(QWheelEvent* ev) override final;
// QOpenGLWidget implementation.
void initializeGL() override final;
void paintGL() override final;
void AddLayers();
std::unique_ptr<MapWidgetImpl> p;
private slots:
void mapChanged(QMapboxGL::MapChange);
};
} // namespace map
} // namespace qt
} // namespace scwx