#ifndef DVIEMAINWINDOW_H
#define DVIEMAINWINDOW_H

#include <QMainWindow>

QT_BEGIN_NAMESPACE
namespace Ui {
class dvieMainWindow;
}
QT_END_NAMESPACE

class TransparentMask;
class Dashboard;
class DashboardFrame;
class DvieSecondaryWindow;

class DvieMainWindow : public QMainWindow
{
    Q_OBJECT

public:
    DvieMainWindow(QWidget *parent = nullptr);
    ~DvieMainWindow();

    void showTransparentMask();
    void hideTransparentMask();

    DashboardFrame* dashboardFrame();
    DashboardFrame* getDashboardFrame(const QString&);
    void creatSecondaryWindowAndAddDashboard(QPoint, Dashboard*);
    void removeSecondartWindow(QString&);

protected:
    bool event(QEvent*) override;
    //void resizeEvent(QResizeEvent*) override;

private:
    Ui::dvieMainWindow* ui;
    TransparentMask*    m_pTransparentMask;
    DashboardFrame*     m_pDashboardFrame;
    QHash<QString, DvieSecondaryWindow*> m_hashSecondaryWindow;
};

#endif
