#pragma once #include #include "base/HGEvent.h" #include "dialog_device_select.h" #include "hg_settingdialog.h" #include "dialog_progress_ui.h" #include "dialog_twain_source_select.h" class Manager : public QObject { Q_OBJECT public: Manager(); ~Manager(); int showDeviceSelect(bool qt, const std::vector& devs); int showSettingUi(bool qt, SANE_Handle device, HWND settingUiParent, LPSANEAPI api, const char *devName, bool with_scan, std::function callback); int showProgressUi(bool qt, HWND parent, std::function callback, std::function *notify); int showMessageBoxUi(bool qt, HWND parent, int event, void *msg, int flag); int showTwainSrcUi(bool qt, DSMENTRYPROC dsmProc, const TW_IDENTITY *appId, HGWindow parent, TW_IDENTITY *ds); signals: void init(); void createDeviceSelect(bool qt); void createSettingUi(bool qt); void createProgressUi(bool qt); void createMessageBoxUi(bool qt); void createTwainSrcUi(bool qt); private slots: void on_init(); void on_createDeviceSelect(bool qt); void on_createSettingUi(bool qt); void on_createProgressUi(bool qt); void on_createMessageBoxUi(bool qt); void on_createTwainSrcUi(bool qt); private: QTranslator m_translator; QTranslator m_translator_qt; int m_langCode; HGEvent m_event; std::vector m_DeviceSelectDevs; unsigned long m_DeviceSelectThreadId; int m_DeviceSelectResult; unsigned long m_SettingUiThreadId; SANE_Handle m_device; HWND m_settingUiParent; SANEAPI m_api; std::string m_devName; bool m_with_scan; std::function m_settingUiCallback; HWND m_progressUiparent; unsigned long m_ProgressUiThreadId; std::function m_progressUiCallback; std::function *m_notify; unsigned long m_MessageBoxUiThreadId; HWND m_messageBoxUiParent; int m_notifyEvent; std::string m_message; int m_flag; unsigned long m_twainSrcUiThreadId; DSMENTRYPROC m_dsmProc; TW_IDENTITY m_appId; HGWindow m_TwainSrcUiparent; TW_IDENTITY m_ds; };