#ifndef WIN11_ABR_H
#define WIN11_ABR_H

#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QGridLayout>
#include <QObject>
#include <QTimer>
#include <QDebug>
#include <QScrollBar>
#include <QPlainTextEdit>
#include <QComboBox>
#include <QLabel>
#include <QScrollArea>
#include <QSerialPortInfo>
#include <QWidget>
#include <QListWidget>
#include <QGroupBox>
#include <QPushButton>
#include <QRadioButton>
#include <QStringList>
#include "tslib.h"
#include "stepList.h"
#include "plugin.h"
#include <QLineEdit>
#include "keypad.h"
#include "guidefs.h"


class T_win11 : public QWidget
{
    Q_OBJECT

    //QGridLayout *myLayout;
    QHBoxLayout *mainHLayout;
    QVBoxLayout *leftLayout, *veryLeftLayout;
    QVBoxLayout *RightLayout;
    QListWidget *win11_showVaultRecord;
    //QListWidget *win11_showAccNrs;
    QStringList  availAccNrList;
    QComboBox   *cb_selAccNr;
    QPushButton *but1, *but2, *but3, *but4, *but5, *but6, *but7, *but8, *but20;

    hwinf *HWaccess;
    uint16_t myNextStep;
    uint8_t myStep; 
    QTimer *myTO;

    //QLabel *disp_CurrentAccNr;
    QLineEdit *disp_CurrentAccNr;

    T_keypad *myKeypad;


    void enterAccData(QString label, uint32_t val);
    void enterString(QString label, char *buff, int len);

    void enterArray(QString label, uint16_t *buff, int len);
    void enterArray(QString label, uint32_t *buff, int len);

    void sub_displayCurrentCashbox(void);

public:
    explicit T_win11(hwinf *HWaccess = nullptr, QWidget *parent = nullptr);
    bool work_ini(uint16_t *nextScreen, uint8_t *useNavi);
        // useNavi=0: no change
        // bit0,1: enable/disable button "next"
        // bit2,3: enable/disable button "home"
        // bit4,5: enable/disable button "back"
    bool working (uint16_t *nextScreen, uint8_t *useNavi);
    ~T_win11();

private slots:
    void Nav_back(void);
    void Nav_home(void);
    void Nav_next(void);
    void slot_loadNumbers(void);
    void slot_loadData(void);
    void slot_printSel(void);
    void slot_crc(void);
    void slot_readNr(void);
    void slot_setNextAccNr(void);
    void slot_sendNewAccNr(void);
    void slot_deleteAccData(void);
    void slot_deleteTotals(void);
    void valueIsSet(void);


};

#endif