#ifndef NUMKEYDIA_H #define NUMKEYDIA_H #include "NumKeyBoard_global.h" #include #include class QPushButton; namespace Ui { class NumKeyDia; } class NUMKEYBOARD_EXPORT NumKeyDia : public QDialog { Q_OBJECT public: explicit NumKeyDia(QWidget *parent = nullptr); ~NumKeyDia(); static NumKeyDia *instance() { return singleton; } void setValue(const QString &value); QString &getValue(); protected: virtual bool eventFilter(QObject *obj, QEvent *event) override; private slots: void on_btn_ok_clicked(); void on_btn_cancel_clicked(); void on_btn_clear_clicked(); void on_btn_back_clicked(); void btn_input_clicked(); void closeKeyBoard(); private: enum class InputPage { NumberPage, SymbolPage }; void setInputPage(InputPage page); void refreshInputButtons(); void configureInputButton(QPushButton *button, const QString &label, const QString &value, bool enabled, bool isModeSwitch = false); Ui::NumKeyDia *ui; static NumKeyDia *singleton; QString value = QString(); QPoint m_point; bool m_firstInputFlag = true; InputPage m_inputPage = InputPage::NumberPage; }; namespace KeyBoard { NUMKEYBOARD_EXPORT NumKeyDia *app(); }; #endif // NUMKEYDIA_H