#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" #include "dialog_source_select.h" #include "dialog_abnormal_img_select.h" class Manager : public QObject { Q_OBJECT public: Manager(); ~Manager(); int showDeviceSelect(const std::vector& devs); int showSettingUi(SANE_Handle device, HWND settingUiParent, LPSANEAPI api, const char * devName, gb::scanner_cfg* cfg, bool with_scan, std::function callback, std::function* notify); int showProgressUi(HWND parent, std::function callback, std::function *notify); int showMessageBoxUi(HWND parent, int event, void *msg, int flag); int showTwainSrcUi(const TW_IDENTITY *vds, HGUInt count, const char* defDevName, HGWindow parent, TW_IDENTITY *ds); int showSaneSrcUi(const char **manuNames, const char **sanePaths, HGWindow parent, HGDll *dll, SANEAPI* saneApi, char *manuName, unsigned int maxLen); int showAbnormalImgUi(SANE_Image *img); void closeSettingUi(); void closeProgressUi(); void closeMessageBoxUi(); void clear_functions(void); private: void msgLoop(void *hEvent); signals: void init(); void createDeviceSelect(void *hEvent); void createSettingUi(void *hEvent); void createProgressUi(void *hEvent); void createMessageBoxUi(void *hEvent); void createTwainSrcUi(void *hEvent); void createSaneSrcUi(void *hEvent); void createAbnormalImgUi(void *hEvent, HGImage image); void deleteSettingUi(void *hEvent); void deleteProgressUi(void *hEvent); void deleteMessageBoxUi(void *hEvent); private slots: void on_init(); void on_createDeviceSelect(void *hEvent); void on_createSettingUi(void *hEvent); void on_createProgressUi(void *hEvent); void on_createMessageBoxUi(void *hEvent); void on_createTwainSrcUi(void *hEvent); void on_createSaneSrcUi(void *hEvent); void on_createAbnormalImgUi(void *hEvent, HGImage image); void on_deleteSettingUi(void *hEvent); void on_deleteProgressUi(void *hEvent); void on_deleteMessageBoxUi(void *hEvent); public: QTranslator m_translator; QTranslator m_translator_qt; int m_langCode; std::vector m_DeviceSelectDevs; int m_DeviceSelectResult; hg_settingdialog *m_settingUi; SANE_Handle m_device; HGWindow m_settingUiParent; SANEAPI m_api; std::string m_devName; bool m_with_scan; gb::scanner_cfg* scanner_cfg_; std::function m_settingUiCallback; std::function* m_settingNotify; Dialog_progress_ui *m_progressUi; HGWindow m_progressUiparent; std::function m_progressUiCallback; std::function * m_progNotify; HGWindow m_messageBoxUiParent; int m_notifyEvent; std::string m_message; int m_flag; std::vector m_vds; std::string m_defDsName; HGWindow m_TwainSrcUiparent; TW_IDENTITY m_ds; std::vector > m_saneSource; HGWindow m_SaneSrcUiparent; HGDll m_saneDll; SANEAPI m_saneApi; std::string m_saneManuName; int m_abnormalImgResult; };