#include "HGSaneUI.h" #include "dialog_device_select.hpp" #include "dialog_device_scan.hpp" #include "hg_settingdialog.h" #include "lang/app_language.h" #include #include #include #ifdef HG_CMP_MSC #include "qwinwidget.hpp" extern HINSTANCE g_hInst; extern bool g_ownApplication; #endif int show_devlist_ui(SANEAPI* saneApi, HGWindow parent, SANE_Handle *handle, char *devName, unsigned int maxLen) { if (nullptr == saneApi || nullptr == handle) return -1; QWidget *qParent = nullptr; #ifdef HG_CMP_MSC if (!g_ownApplication) g_ownApplication = QMfcApp::pluginInstance(g_hInst); QWinWidget win(parent); win.showCentered(); qParent = &win; #else qParent = parent; #endif QTranslator translator; int cp = lang_get_cur_code_page(); if (20127 == cp) translator.load(":translation/SaneUI_zh_EN.qm"); else translator.load(":translation/SaneUI_zh_CN.qm"); QCoreApplication::installTranslator(&translator); *handle = nullptr; Dialog_Device_Select dlg(saneApi, qParent); if (dlg.exec()) { if (nullptr != devName) { std::string strDevName = dlg.GetDevName(); if (maxLen >= strDevName.size() + 1) strcpy(devName, strDevName.c_str()); } *handle = dlg.GetDevHandle(); } QCoreApplication::removeTranslator(&translator); return 0; } int show_setting_ui(SANEAPI* saneApi, SANE_Handle handle, const char *scanner_name, HGWindow parent) { if (nullptr == saneApi || nullptr == handle) return -1; QWidget *qParent = nullptr; #ifdef HG_CMP_MSC if (!g_ownApplication) g_ownApplication = QMfcApp::pluginInstance(g_hInst); QWinWidget win(parent); win.showCentered(); qParent = &win; #else qParent = parent; #endif QTranslator translator; int cp = lang_get_cur_code_page(); if (20127 == cp) translator.load(":translation/SaneUI_zh_EN.qm"); else translator.load(":translation/SaneUI_zh_CN.qm"); QCoreApplication::installTranslator(&translator); hg_settingdialog dlg(saneApi, handle, scanner_name, qParent); dlg.exec(); QCoreApplication::removeTranslator(&translator); return 0; } int show_scan_ui(SANEAPI* saneApi, SANE_Handle handle, HGWindow parent, show_scan_ui_image_callback callback, void *callbackParam) { if (nullptr == saneApi || nullptr == handle) return -1; QWidget *qParent = nullptr; #ifdef HG_CMP_MSC if (!g_ownApplication) g_ownApplication = QMfcApp::pluginInstance(g_hInst); QWinWidget win(parent); win.showCentered(); qParent = &win; #else qParent = parent; #endif QTranslator translator; int cp = lang_get_cur_code_page(); if (20127 == cp) translator.load(":translation/SaneUI_zh_EN.qm"); else translator.load(":translation/SaneUI_zh_CN.qm"); QCoreApplication::installTranslator(&translator); Dialog_Device_Scan dlg(saneApi, handle, callback, callbackParam, qParent); dlg.exec(); QCoreApplication::removeTranslator(&translator); return 0; }