1 #pragma once 2 3 #include "qmapboxgl.hpp" 4 5 #include <mbgl/map/map_observer.hpp> 6 #include <mbgl/style/style.hpp> 7 8 #include <QObject> 9 10 #include <exception> 11 #include <memory> 12 13 class QMapboxGLPrivate; 14 15 class QMapboxGLMapObserver : public QObject, public mbgl::MapObserver 16 { 17 Q_OBJECT 18 19 public: 20 explicit QMapboxGLMapObserver(QMapboxGLPrivate *); 21 virtual ~QMapboxGLMapObserver(); 22 23 // mbgl::MapObserver implementation. 24 void onCameraWillChange(mbgl::MapObserver::CameraChangeMode) final; 25 void onCameraIsChanging() final; 26 void onCameraDidChange(mbgl::MapObserver::CameraChangeMode) final; 27 void onWillStartLoadingMap() final; 28 void onDidFinishLoadingMap() final; 29 void onDidFailLoadingMap(std::exception_ptr) final; 30 void onWillStartRenderingFrame() final; 31 void onDidFinishRenderingFrame(mbgl::MapObserver::RenderMode) final; 32 void onWillStartRenderingMap() final; 33 void onDidFinishRenderingMap(mbgl::MapObserver::RenderMode) final; 34 void onDidFinishLoadingStyle() final; 35 void onSourceChanged(mbgl::style::Source&) final; 36 37 signals: 38 void mapChanged(QMapboxGL::MapChange); 39 void mapLoadingFailed(QMapboxGL::MapLoadingFailure, const QString &reason); 40 void copyrightsChanged(const QString ©rightsHtml); 41 42 private: 43 Q_DISABLE_COPY(QMapboxGLMapObserver) 44 45 QMapboxGLPrivate *d_ptr; 46 }; 47