ui_setting接口调整

This commit is contained in:
13038267101 2023-05-05 17:53:46 +08:00
parent 658ef6c120
commit 583c545c28
1 changed files with 42 additions and 48 deletions

View File

@ -343,7 +343,7 @@ namespace callback
// SANE_EVENT_IMAGE_OK - void* unused, be NULL, flag - unused, be 0
int (*choose_scanner)(const std::vector<DEVQUEUI>& devs) = NULL; // blocked. return selected DEVQUE::id or -1 if user cancelled
int (*apply_current_config)(const char* dev_name, SANE_Handle device, LPSANEAPI api) = NULL; // 应用设备的当前配置
int (*show_setting_ui)(SANE_Handle device, HWND parent, LPSANEAPI api, const char* devname, bool with_scan) = NULL;
int (*show_setting_ui)(SANE_Handle device, HWND parent, LPSANEAPI api, const char* devname, bool with_scan, std::function<void(ui_result)> callback) = NULL;
int (*show_progress_ui)(HWND parent, std::function<void(ui_result)> callback, std::function<void(int/*event*/, void*/*msg*/, int/*flag*/)>* notify) = NULL;
int (*show_messagebox_ui)(HWND parent, int event, void* msg, int flag) = NULL;
@ -2944,53 +2944,50 @@ COM_API_IMPLEMENT(scanner, bool, ui_show_setting(HWND parent, bool with_scan, bo
{
if (callback::show_setting_ui)
{
auto cb = [&](int ev)
auto ui = [this](ui_result res)
{
on_ui_event(ev, NULL);
int uev = SANE_EVENT_SCAN_FINISHED;
switch (res)
{
case UI_RESULT_FAILED:
break;
case UI_RESULT_OK:
break;
case UI_RESULT_CLOSE_NORMAL:
uev = SANE_EVENT_UI_CLOSE_NORMAL;
on_ui_event(uev, (void*)uev);
break;
case UI_RESULT_CLOSE_CANCEL:
uev = SANE_EVENT_UI_CLOSE_CANCEL;
on_ui_event(uev, (void*)uev);
break;
case UI_RESULT_START_SCAN:
on_ui_event(SANE_EVENT_UI_SCAN_COMMAND, NULL);
break;
default:
break;
}
};
//auto ui_process = [this](ui_result res)
int res = callback::show_setting_ui(handle_, parent, &sane_api_, local_trans::u2a(scanner_name_.c_str(), CP_UTF8).c_str(),with_scan, ui);
//if (res == ui_result::UI_RESULT_CLOSE_NORMAL)
//{
// int uev = SANE_EVENT_SCAN_FINISHED;
// switch (res)
// {
// case UI_RESULT_FAILED:
// break;
// case UI_RESULT_OK:
// break;
// case UI_RESULT_CLOSE_NORMAL:
// uev = SANE_EVENT_UI_CLOSE_NORMAL;
// on_ui_event(uev, (void*)uev);
// break;
// case UI_RESULT_CLOSE_CANCEL:
// uev = SANE_EVENT_UI_CLOSE_CANCEL;
// sane_api_.sane_cancel_api(handle_);
// //on_ui_event(uev, (void*)uev);
// break;
// case UI_RESULT_START_SCAN:
// break;
// default:
// break;
// }
//};
int res = callback::show_setting_ui(handle_, parent, &sane_api_, local_trans::u2a(scanner_name_.c_str(), CP_UTF8).c_str(),with_scan);
if (res == ui_result::UI_RESULT_CLOSE_NORMAL)
{
int ev = SANE_EVENT_UI_CLOSE_NORMAL;
on_ui_event(ev, (void*)ev);
}
else if (res == ui_result::UI_RESULT_START_SCAN)
{
//callback::show_progress_ui(parent, ui_process, &ui_notify);
//start();
on_ui_event(SANE_EVENT_UI_SCAN_COMMAND, NULL);
}
else if (res == UI_RESULT_CLOSE_CANCEL)
{
int ev = SANE_EVENT_UI_CLOSE_CANCEL;
on_ui_event(ev, (void*)ev);
}
// int ev = SANE_EVENT_UI_CLOSE_NORMAL;
// on_ui_event(ev, (void*)ev);
//}
//else if (res == ui_result::UI_RESULT_START_SCAN)
//{
// //callback::show_progress_ui(parent, ui_process, &ui_notify);
// //start();
// on_ui_event(SANE_EVENT_UI_SCAN_COMMAND, NULL);
//}
//else if (res == UI_RESULT_CLOSE_CANCEL)
//{
// int ev = SANE_EVENT_UI_CLOSE_CANCEL;
// on_ui_event(ev, (void*)ev);
//}
//on_ui_event(ev, NULL);
}
else if (cfg_)
@ -3096,9 +3093,6 @@ int scanner::handle_device_event(int ev_code, void* data, unsigned int* len)
ui_notify(ev_code, data, *len);
//else
on_ui_event(ev_code, (void*)ev_code);
log_info(L"Scanning ...\r\n", 0);
}
else if (ev_code == SANE_EVENT_IMAGE_OK)