code_app/modules/saneui/HGSaneUI.cpp

114 lines
2.9 KiB
C++
Raw Normal View History

#include "HGSaneUI.h"
#include "dialog_device_select.hpp"
#include "dialog_device_scan.hpp"
#include "hg_settingdialog.h"
2023-03-31 06:19:54 +00:00
#include "lang/app_language.h"
#include <QMessageBox>
2023-03-31 06:19:54 +00:00
#include <QTranslator>
2023-03-31 06:49:54 +00:00
#include <QCoreApplication>
#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
2023-03-31 06:19:54 +00:00
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();
}
return 0;
}
int show_setting_ui(SANEAPI* saneApi, SANE_Handle handle, const char *scanner_name, HGWindow parent)
{
if (nullptr == saneApi || nullptr == handle)
return -1;
2023-03-31 06:19:54 +00:00
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();
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
2023-03-31 06:19:54 +00:00
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();
return 0;
}