QGCGoogleEarthView.h 2.13 KB
Newer Older
pixhawk's avatar
pixhawk committed
1 2 3 4
#ifndef QGCGOOGLEEARTHVIEW_H
#define QGCGOOGLEEARTHVIEW_H

#include <QWidget>
5 6
#include <QTimer>
#include <UASInterface.h>
pixhawk's avatar
pixhawk committed
7

8 9 10 11
#if (defined Q_OS_MAC)
#include <QWebView>
#endif

12
#if (defined Q_OS_WIN) & (defined _MSVC_VER)
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
    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
pixhawk's avatar
pixhawk committed
36
namespace Ui {
37
    class QGCGoogleEarthControls;
38
#if (defined Q_OS_WIN) & (defined _MSVC_VER)
39 40
    class QGCGoogleEarthViewWin;
#else
pixhawk's avatar
pixhawk committed
41
    class QGCGoogleEarthView;
42
#endif
pixhawk's avatar
pixhawk committed
43
}
44
#endif
pixhawk's avatar
pixhawk committed
45 46 47 48 49 50 51 52 53

class QGCGoogleEarthView : public QWidget
{
    Q_OBJECT

public:
    explicit QGCGoogleEarthView(QWidget *parent = 0);
    ~QGCGoogleEarthView();

54 55 56 57 58
public slots:
    /** @brief Update the internal state. Does not trigger a redraw */
    void updateState();
    /** @brief Set the currently selected UAS */
    void setActiveUAS(UASInterface* uas);
59
    /** @brief Show the vehicle trail */
pixhawk's avatar
pixhawk committed
60
    void showTrail(bool state);
61
    /** @brief Show the waypoints */
pixhawk's avatar
pixhawk committed
62
    void showWaypoints(bool state);
63 64
    /** @brief Follow the aircraft during flight */
    void follow(bool follow);
pixhawk's avatar
pixhawk committed
65 66 67 68
    /** @brief Hide and deactivate */
    void hide();
    /** @brief Show and activate */
    void show();
69

pixhawk's avatar
pixhawk committed
70 71
protected:
    void changeEvent(QEvent *e);
72
    QTimer* updateTimer;
pixhawk's avatar
pixhawk committed
73
    int refreshRateMs;
74 75
    UASInterface* mav;
    bool followCamera;
pixhawk's avatar
pixhawk committed
76
    bool trailEnabled;
pixhawk's avatar
pixhawk committed
77
    bool webViewInitialized;
78
#if (defined Q_OS_WIN) & (defined _MSVC_VER)
79 80 81 82 83 84
#if (defined Q_OS_WIN) && !(defined __MINGW32__)
    WebAxWidget* webViewWin;
#endif
#if (defined Q_OS_MAC)
    QWebView* webViewMac;
#endif
pixhawk's avatar
pixhawk committed
85 86

private:
87 88 89 90 91
    Ui::QGCGoogleEarthControls* controls;
#if (defined Q_OS_WIN) && !(defined __MINGW32__)
    Ui::QGCGoogleEarthViewWin* ui;
#else
    Ui::QGCGoogleEarthView* ui;
92
#endif
pixhawk's avatar
pixhawk committed
93 94
};

pixhawk's avatar
pixhawk committed
95
#endif // QGCGOOGLEEARTHVIEW_H