You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
2.1 KiB
94 lines
2.1 KiB
#ifndef QGCGOOGLEEARTHVIEW_H |
|
#define QGCGOOGLEEARTHVIEW_H |
|
|
|
#include <QWidget> |
|
#include <QTimer> |
|
#include <UASInterface.h> |
|
|
|
#if (defined Q_OS_MAC) |
|
#include <QWebView> |
|
#endif |
|
|
|
#if (defined Q_OS_WIN) && !(defined __MINGW32__) |
|
QGCWebAxWidget* webViewWin; |
|
#include <ActiveQt/QAxWidget> |
|
#include "windows.h" |
|
|
|
class WebAxWidget : public QAxWidget |
|
{ |
|
public: |
|
|
|
WebAxWidget(QWidget* parent = 0, Qt::WindowFlags f = 0) |
|
: QAxWidget(parent, f) |
|
{ |
|
} |
|
protected: |
|
virtual bool translateKeyEvent(int message, int keycode) const |
|
{ |
|
if (message >= WM_KEYFIRST && message <= WM_KEYLAST) |
|
return true; |
|
else |
|
return QAxWidget::translateKeyEvent(message, keycode); |
|
} |
|
|
|
}; |
|
#else |
|
namespace Ui { |
|
class QGCGoogleEarthControls; |
|
#if (defined Q_OS_WIN) && !(defined __MINGW32__) |
|
class QGCGoogleEarthViewWin; |
|
#else |
|
class QGCGoogleEarthView; |
|
#endif |
|
} |
|
#endif |
|
|
|
class QGCGoogleEarthView : public QWidget |
|
{ |
|
Q_OBJECT |
|
|
|
public: |
|
explicit QGCGoogleEarthView(QWidget *parent = 0); |
|
~QGCGoogleEarthView(); |
|
|
|
public slots: |
|
/** @brief Update the internal state. Does not trigger a redraw */ |
|
void updateState(); |
|
/** @brief Set the currently selected UAS */ |
|
void setActiveUAS(UASInterface* uas); |
|
/** @brief Show the vehicle trail */ |
|
void showTrail(bool state); |
|
/** @brief Show the waypoints */ |
|
void showWaypoints(bool state); |
|
/** @brief Follow the aircraft during flight */ |
|
void follow(bool follow); |
|
/** @brief Hide and deactivate */ |
|
void hide(); |
|
/** @brief Show and activate */ |
|
void show(); |
|
|
|
protected: |
|
void changeEvent(QEvent *e); |
|
QTimer* updateTimer; |
|
int refreshRateMs; |
|
UASInterface* mav; |
|
bool followCamera; |
|
bool trailEnabled; |
|
bool webViewInitialized; |
|
#if (defined Q_OS_WIN) && !(defined __MINGW32__) |
|
WebAxWidget* webViewWin; |
|
#endif |
|
#if (defined Q_OS_MAC) |
|
QWebView* webViewMac; |
|
#endif |
|
|
|
private: |
|
Ui::QGCGoogleEarthControls* controls; |
|
#if (defined Q_OS_WIN) && !(defined __MINGW32__) |
|
Ui::QGCGoogleEarthViewWin* ui; |
|
#else |
|
Ui::QGCGoogleEarthView* ui; |
|
#endif |
|
}; |
|
|
|
#endif // QGCGOOGLEEARTHVIEW_H
|
|
|