#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QStatusBar>
#include <QDockWidget>

#include "centralwidget.h"
#include "leftwidget.h"
#include "experimentsettingform.h"
#include "realtimedataform.h"
#include "dataparser.h"
#include "rightwidget.h"
#include "analysissettingform.h"

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

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

public slots:
    void slotContextMenuShow(const QPoint);
private slots:
    //experiment
    void on_actionConnectToDev_triggered();
    void on_actionNew_triggered();
    void on_actionStart_triggered();
    void on_actionStop_triggered();
    void on_actionReadOnly_triggered();
    void on_actionRealTimeWidget_triggered();
    //analysis
    void on_actionNumericalLabel_triggered();
    void on_actionStartPoint_triggered();
    void on_actionStopPoint_triggered();
    void on_actionPeakSynthesisAnalysis_triggered();

    void on_actionClearAllData_triggered();
private:
    void connections();
    void setActionEnable(const bool);
private:
    Ui::MainWindow *ui;
    CentralWidget *_centralWidget;
    LeftWidget*_leftWidget;
    QDockWidget* _rightWidget;
    ExperimentSettingForm *_expertmentSettingForm;
    RealTimeDataForm* _realTimeDataForm;
    QMenu* _contextMenu;
    AnalysisSettingForm* _analysisSettingWidget;
};
#endif // MAINWINDOW_H
