#ifndef MAINWINDOWFORM_H
#define MAINWINDOWFORM_H

#include <QMainWindow>
#include <QButtonGroup>
#include <QScreen>

#include "utils/utilsInclude.h"
#include "utils/ProMemory.h"

#include "frame/MaskWidget.h"
#include "frame/CustomMessageBox.h"
#include "frame/FramelessWindow.h"

#include "infomation/InfoMainForm.h"
#include "calibration/CalibrationMainForm.h"
#include "check/CheckMainForm.h"

namespace Ui {
class MainWindowForm;
}

class MainWindowForm : public FramelessWindow
{
    Q_OBJECT

public:
    explicit MainWindowForm(QWidget *parent = nullptr);
    ~MainWindowForm();

    void setLoginUsername(QString loginUsername);

private slots:
    void on_btnMinWin_clicked();
    void on_btnMaxWin_clicked();
    void on_btnCloseWin_clicked();

    void onFunctionButtonsAction();
    void onUpdateTimestampHandler();
    void titleDblClickHandler();
    void onMenuButtonsEabled(bool enable);

private:
    Ui::MainWindowForm *ui;

    CalibrationMainForm * wdgtCaliMain;
    CheckMainForm * wdgtCheckMain;
    InfoMainForm * wdgtInfoMain;

    void initForm();
    void initMenuWidgets();
    void initFunctionButtons();

signals:
    void logout();
};

#endif // MAINWINDOWFORM_H
