#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 "infomation/standDev/StandardDeviceForm.h"
//#include "infomation/testDev/TestDeviceForm.h"
//#include "infomation/fileRes/FileResourcesForm.h"

//#include "calibration/CalibrationForm.h"

//#include "TimeFreq/tf_standarddevice.h"
//#include "TimeFreq/tf_certificateapproval.h"
//#include "TimeFreq/tf_infomanag.h"
//#include "TimeFreq/tf_textdatamanag.h"
//#include "TimeFreq/tf_textdevice.h"
//#include "TimeFreq/tf_usermanag.h"
//#include "checkmethodmanage.h"
//#include "checkwindow.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 titleDblClick();
    void onMenuButtonsEabled(bool enable);

private:
    Ui::MainWindowForm *ui;

    InfoMainForm * wdgtInfoMain;

//    TF_InfoManag * wdgtInfo;
//    CheckMethodManage * wdgtCheckMethod;
//    CheckWindow * wdgtCheck;
//    TF_TextDataManag * wdgtData;
//    TF_CertificateApproval * wdgtCert;
//    TF_UserManag * wdgtUserMan;
//    tf_StandardDevice * wdgtStandDev;
//    TF_TextDevice * wdgtTestDev;

//    StandardDeviceForm * wdgtStdDevForm;
//    TestDeviceForm * wdgtEqptDevForm;
//    FileResourcesForm * wdgtFileResForm;

//    CalibrationForm * wdgtCalibrationForm;

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

signals:
    void logout();
};

#endif // MAINWINDOWFORM_H
