2023-04-20 09:49:48 +00:00
|
|
|
#include "twainui.h"
|
|
|
|
#include "dialog_device_select.h"
|
|
|
|
#include "dialog_progress_ui.h"
|
|
|
|
#include "hg_settingdialog.h"
|
|
|
|
|
|
|
|
#ifdef HG_CMP_MSC
|
|
|
|
#include "qwinwidget.hpp"
|
|
|
|
extern HINSTANCE g_hInst;
|
|
|
|
extern bool g_ownApplication;
|
|
|
|
#endif
|
|
|
|
|
|
|
|
int choose_scanner(const std::vector<DEVQUE> &devs)
|
|
|
|
{
|
2023-04-23 01:25:52 +00:00
|
|
|
QWidget* qParent = nullptr;
|
2023-04-21 07:41:13 +00:00
|
|
|
#ifdef HG_CMP_MSC
|
|
|
|
if (!g_ownApplication)
|
|
|
|
g_ownApplication = QMfcApp::pluginInstance(g_hInst);
|
2023-04-23 01:25:52 +00:00
|
|
|
QWinWidget win(nullptr);
|
|
|
|
#else
|
|
|
|
qParent = parent;
|
2023-04-21 07:41:13 +00:00
|
|
|
#endif
|
|
|
|
|
2023-04-21 07:51:55 +00:00
|
|
|
QTranslator translator;
|
|
|
|
int cp = lang_get_cur_code_page();
|
|
|
|
if (20127 == cp)
|
|
|
|
translator.load(":translation/TwainUI_zh_EN.qm");
|
|
|
|
else
|
|
|
|
translator.load(":translation/TwainUI_zh_CN.qm");
|
|
|
|
QCoreApplication::installTranslator(&translator);
|
|
|
|
|
2023-04-20 09:49:48 +00:00
|
|
|
Dialog_device_select dlg(devs);
|
2023-04-23 01:25:52 +00:00
|
|
|
dlg.exec();
|
|
|
|
QCoreApplication::removeTranslator(&translator);
|
|
|
|
|
|
|
|
return dlg.getDevId();
|
2023-04-20 09:49:48 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
char *apply_current_config(const char *dev_name, SANE_Handle device, LPSANEAPI api)
|
|
|
|
{
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
void twain_ui_free(void *buf)
|
|
|
|
{
|
|
|
|
if (buf != nullptr)
|
|
|
|
{
|
|
|
|
delete buf;
|
|
|
|
buf = nullptr;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
int show_setting_ui(SANE_Handle device, HWND parent, LPSANEAPI api, bool with_scan)
|
|
|
|
{
|
|
|
|
if (nullptr == api || nullptr == device)
|
|
|
|
return -1;
|
|
|
|
|
|
|
|
QWidget *qParent = nullptr;
|
|
|
|
#ifdef HG_CMP_MSC
|
|
|
|
if (!g_ownApplication)
|
|
|
|
g_ownApplication = QMfcApp::pluginInstance(g_hInst);
|
|
|
|
QWinWidget win(parent);
|
|
|
|
if (nullptr != parent)
|
|
|
|
{
|
|
|
|
win.showCentered();
|
|
|
|
qParent = &win;
|
|
|
|
}
|
|
|
|
#else
|
|
|
|
qParent = parent;
|
|
|
|
#endif
|
|
|
|
|
|
|
|
QTranslator translator;
|
|
|
|
int cp = lang_get_cur_code_page();
|
|
|
|
if (20127 == cp)
|
|
|
|
translator.load(":translation/TwainUI_zh_EN.qm");
|
|
|
|
else
|
|
|
|
translator.load(":translation/TwainUI_zh_CN.qm");
|
|
|
|
QCoreApplication::installTranslator(&translator);
|
|
|
|
|
|
|
|
hg_settingdialog dlg(device, api, with_scan, qParent);
|
|
|
|
dlg.exec();
|
|
|
|
QCoreApplication::removeTranslator(&translator);
|
|
|
|
|
|
|
|
int ret = dlg.getCloseButtonCliked();
|
|
|
|
if (ret == dlg.closeButtonScan)
|
|
|
|
return UI_RESULT_START_SCAN;
|
|
|
|
else if (ret == dlg.closeButtonCancel)
|
|
|
|
return UI_RESULT_CLOSE_CANCEL;
|
|
|
|
else
|
|
|
|
return UI_RESULT_CLOSE_NORMAL;
|
|
|
|
}
|
|
|
|
|
|
|
|
int show_progress_ui(HWND parent, std::function<void (ui_result)> callback, std::function<void (int, void *, int)> *notify)
|
|
|
|
{
|
|
|
|
QWidget *qParent = nullptr;
|
|
|
|
#ifdef HG_CMP_MSC
|
|
|
|
if (!g_ownApplication)
|
|
|
|
g_ownApplication = QMfcApp::pluginInstance(g_hInst);
|
2023-04-23 01:25:52 +00:00
|
|
|
QWinWidget *win = new QWinWidget(parent);
|
2023-04-20 09:49:48 +00:00
|
|
|
if (nullptr != parent)
|
|
|
|
{
|
2023-04-23 01:25:52 +00:00
|
|
|
win->showCentered();
|
|
|
|
qParent = win;
|
2023-04-20 09:49:48 +00:00
|
|
|
}
|
|
|
|
#else
|
|
|
|
qParent = parent;
|
|
|
|
#endif
|
|
|
|
|
2023-04-23 01:25:52 +00:00
|
|
|
Dialog_progress_ui *dlg = new Dialog_progress_ui(callback, notify, qParent);
|
|
|
|
dlg->show();
|
2023-04-20 09:49:48 +00:00
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|