实现twainui的closeui接口
This commit is contained in:
parent
e93c519014
commit
2be1799d03
|
@ -5,6 +5,14 @@
|
|||
|
||||
Manager::Manager()
|
||||
: QObject(nullptr)
|
||||
, m_progressUiCallback(std::function<void(ui_result)>())
|
||||
, m_notify(nullptr)
|
||||
, m_settingUiCallback(std::function<void(ui_result)>())
|
||||
, m_deviceSelectUi(nullptr)
|
||||
, m_settingUi(nullptr)
|
||||
, m_progressUi(nullptr)
|
||||
, m_msgBoxUi(nullptr)
|
||||
, m_twainSrcUi(nullptr)
|
||||
{
|
||||
HGBase_CreateEvent(HGFALSE, HGFALSE, &m_event);
|
||||
|
||||
|
@ -27,6 +35,51 @@ Manager::~Manager()
|
|||
HGBase_DestroyEvent(m_event);
|
||||
}
|
||||
|
||||
void Manager::closeDeviceSelectUi()
|
||||
{
|
||||
if (m_deviceSelectUi != nullptr)
|
||||
{
|
||||
delete m_deviceSelectUi;
|
||||
m_deviceSelectUi = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
void Manager::closeSettingUi()
|
||||
{
|
||||
if (m_settingUi != nullptr)
|
||||
{
|
||||
delete m_settingUi;
|
||||
m_settingUi = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
void Manager::closeProgressUi()
|
||||
{
|
||||
if (m_progressUi != nullptr)
|
||||
{
|
||||
delete m_progressUi;
|
||||
m_progressUi = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
void Manager::closeMessageBoxUi()
|
||||
{
|
||||
if (m_msgBoxUi != nullptr)
|
||||
{
|
||||
delete m_msgBoxUi;
|
||||
m_msgBoxUi = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
void Manager::closeTwainSrcUi()
|
||||
{
|
||||
if (m_twainSrcUi != nullptr)
|
||||
{
|
||||
delete m_twainSrcUi;
|
||||
m_twainSrcUi = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
int Manager::showDeviceSelect(bool qt, const std::vector<DEVQUEUI>& devs)
|
||||
{
|
||||
m_DeviceSelectDevs = devs;
|
||||
|
@ -151,9 +204,10 @@ void Manager::on_init()
|
|||
|
||||
void Manager::on_createDeviceSelect(bool qt)
|
||||
{
|
||||
Dialog_device_select dlg(m_DeviceSelectDevs);
|
||||
dlg.exec();
|
||||
m_DeviceSelectResult = dlg.getDevId();
|
||||
if (m_deviceSelectUi != nullptr)
|
||||
m_deviceSelectUi = new Dialog_device_select(m_DeviceSelectDevs);
|
||||
m_deviceSelectUi->exec();
|
||||
m_DeviceSelectResult = m_deviceSelectUi->getDevId();
|
||||
|
||||
if (!qt)
|
||||
{
|
||||
|
@ -175,9 +229,10 @@ void Manager::on_createSettingUi(bool qt)
|
|||
qParent = m_settingUiParent;
|
||||
#endif
|
||||
|
||||
hg_settingdialog *dlg = new hg_settingdialog(m_device, &m_api, m_with_scan, m_devName.c_str(), m_settingUiCallback, qParent);
|
||||
dlg->setModal(true);
|
||||
dlg->show();
|
||||
if (m_settingUi != nullptr)
|
||||
m_settingUi = new hg_settingdialog(m_device, &m_api, m_with_scan, m_devName.c_str(), m_settingUiCallback, qParent);
|
||||
m_settingUi->setModal(true);
|
||||
m_settingUi->show();
|
||||
}
|
||||
|
||||
void Manager::on_createProgressUi(bool qt)
|
||||
|
@ -195,9 +250,10 @@ void Manager::on_createProgressUi(bool qt)
|
|||
qParent = m_progressUiparent;
|
||||
#endif
|
||||
|
||||
Dialog_progress_ui *dlg = new Dialog_progress_ui(m_progressUiCallback, m_notify, qParent);
|
||||
dlg->setModal(true);
|
||||
dlg->show();
|
||||
if (m_progressUi != nullptr)
|
||||
m_progressUi = new Dialog_progress_ui(m_progressUiCallback, m_notify, qParent);
|
||||
m_progressUi->setModal(true);
|
||||
m_progressUi->show();
|
||||
|
||||
if (!qt)
|
||||
{
|
||||
|
@ -219,10 +275,11 @@ void Manager::on_createMessageBoxUi(bool qt)
|
|||
qParent = m_messageBoxUiParent;
|
||||
#endif
|
||||
|
||||
QMessageBox *msg = new QMessageBox(QMessageBox::Critical, tr("Prompt"), QString::fromStdString(m_message), QMessageBox::Ok, qParent);
|
||||
msg->setWindowFlags(Qt::SubWindow | Qt::Popup | Qt::WindowStaysOnTopHint);
|
||||
msg->setModal(true);
|
||||
msg->show();
|
||||
if (m_msgBoxUi != nullptr)
|
||||
m_msgBoxUi = new QMessageBox(QMessageBox::Critical, tr("Prompt"), QString::fromStdString(m_message), QMessageBox::Ok, qParent);
|
||||
m_msgBoxUi->setWindowFlags(Qt::SubWindow | Qt::Popup | Qt::WindowStaysOnTopHint);
|
||||
m_msgBoxUi->setModal(true);
|
||||
m_msgBoxUi->show();
|
||||
}
|
||||
|
||||
void Manager::on_createTwainSrcUi(bool qt)
|
||||
|
@ -239,10 +296,11 @@ void Manager::on_createTwainSrcUi(bool qt)
|
|||
qParent = m_TwainSrcUiparent;
|
||||
#endif
|
||||
|
||||
Dialog_Twain_Source_Select dlg(m_dsmProc, &m_appId, qParent);
|
||||
if (dlg.exec())
|
||||
if (m_twainSrcUi != nullptr)
|
||||
m_twainSrcUi = new Dialog_Twain_Source_Select (m_dsmProc, &m_appId, qParent);
|
||||
if (m_twainSrcUi->exec())
|
||||
{
|
||||
dlg.GetIdentify(&m_ds);
|
||||
m_twainSrcUi->GetIdentify(&m_ds);
|
||||
}
|
||||
|
||||
if (!qt)
|
||||
|
|
|
@ -15,6 +15,12 @@ public:
|
|||
Manager();
|
||||
~Manager();
|
||||
|
||||
void closeDeviceSelectUi();
|
||||
void closeSettingUi();
|
||||
void closeProgressUi();
|
||||
void closeMessageBoxUi();
|
||||
void closeTwainSrcUi();
|
||||
|
||||
int showDeviceSelect(bool qt, const std::vector<DEVQUEUI>& devs);
|
||||
int showSettingUi(bool qt, SANE_Handle device, HWND settingUiParent, LPSANEAPI api, const char *devName, bool with_scan, std::function<void(ui_result)> callback);
|
||||
int showProgressUi(bool qt, HWND parent, std::function<void (ui_result)> callback, std::function<void (int, void *, int)> *notify);
|
||||
|
@ -44,10 +50,12 @@ private:
|
|||
|
||||
HGEvent m_event;
|
||||
|
||||
Dialog_device_select *m_deviceSelectUi;
|
||||
std::vector<DEVQUEUI> m_DeviceSelectDevs;
|
||||
unsigned long m_DeviceSelectThreadId;
|
||||
int m_DeviceSelectResult;
|
||||
|
||||
hg_settingdialog *m_settingUi;
|
||||
unsigned long m_SettingUiThreadId;
|
||||
SANE_Handle m_device;
|
||||
HWND m_settingUiParent;
|
||||
|
@ -56,17 +64,20 @@ private:
|
|||
bool m_with_scan;
|
||||
std::function<void(ui_result)> m_settingUiCallback;
|
||||
|
||||
Dialog_progress_ui *m_progressUi;
|
||||
HWND m_progressUiparent;
|
||||
unsigned long m_ProgressUiThreadId;
|
||||
std::function<void (ui_result)> m_progressUiCallback;
|
||||
std::function<void (int, void *, int)> *m_notify;
|
||||
|
||||
QMessageBox *m_msgBoxUi;
|
||||
unsigned long m_MessageBoxUiThreadId;
|
||||
HWND m_messageBoxUiParent;
|
||||
int m_notifyEvent;
|
||||
std::string m_message;
|
||||
int m_flag;
|
||||
|
||||
Dialog_Twain_Source_Select *m_twainSrcUi;
|
||||
unsigned long m_twainSrcUiThreadId;
|
||||
DSMENTRYPROC m_dsmProc;
|
||||
TW_IDENTITY m_appId;
|
||||
|
|
|
@ -173,3 +173,26 @@ int show_twain_srclist_ui(DSMENTRYPROC dsmProc, const TW_IDENTITY *appId, HGWind
|
|||
|
||||
return g_manager->showTwainSrcUi(nullptr == g_hThread, dsmProc, appId, parent, ds);
|
||||
}
|
||||
|
||||
int close_ui(int which)
|
||||
{
|
||||
if (NULL == g_manager)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (UI_INDICATOR == which)
|
||||
{
|
||||
g_manager->closeProgressUi();
|
||||
}
|
||||
else if (UI_SETTING == which)
|
||||
{
|
||||
g_manager->closeSettingUi();
|
||||
}
|
||||
else if (UI_MSG_BOX == which)
|
||||
{
|
||||
g_manager->closeMessageBoxUi();
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue