twainui目录整理

This commit is contained in:
luoliangyi 2023-08-12 09:57:04 +08:00
parent 113497f993
commit 9e95ba0fa3
6 changed files with 200 additions and 122 deletions

View File

@ -34,67 +34,9 @@ win32 {
SOURCES += ../../../modules/twainui/qmfcapp.cpp SOURCES += ../../../modules/twainui/qmfcapp.cpp
SOURCES += ../../../modules/twainui/qwinhost.cpp SOURCES += ../../../modules/twainui/qwinhost.cpp
SOURCES += ../../../modules/twainui/qwinwidget.cpp SOURCES += ../../../modules/twainui/qwinwidget.cpp
SOURCES += ../../../modules/twainui/twainui.cpp
SOURCES += ../../../modules/twainui/hg_settingdialog.cpp
HEADERS += ../../../modules/twainui/qmfcapp.hpp HEADERS += ../../../modules/twainui/qmfcapp.hpp
HEADERS += ../../../modules/twainui/qwinhost.hpp HEADERS += ../../../modules/twainui/qwinhost.hpp
HEADERS += ../../../modules/twainui/qwinwidget.hpp HEADERS += ../../../modules/twainui/qwinwidget.hpp
HEADERS += ../../../modules/twainui/hg_settingdialog.h
SOURCES += \
../../../modules/twainui/app_cfg.cpp \
../../../modules/twainui/HGUIGlobal.cpp \
../../../modules/twainui/Manager.cpp \
../../../modules/twainui/cfg/cJSON.c \
../../../modules/twainui/cfg/gb_json.cpp \
../../../modules/twainui/cutdialog.cpp \
../../../modules/twainui/cutpapertool.cpp \
../../../modules/twainui/device_menu.cpp \
../../../modules/twainui/dialog_input.cpp \
../../../modules/twainui/dllmain.cpp \
../../../modules/twainui/gaosixy.cpp \
../../../modules/twainui/setpicclrtool.cpp \
../../../utility/HGString.cpp \
../../../modules/twainui/widget.cpp \
../../../modules/twainui/dialog_progress_ui.cpp \
../../../modules/twainui/dialog_device_select.cpp \
../../../modules/twainui/dialog_twain_source_select.cpp
HEADERS += \
../../../modules/twainui/app_cfg.h \
../../../modules/twainui/HGUIGlobal.h \
../../../modules/twainui/Manager.h \
../../../modules/twainui/cfg/cJSON.h \
../../../modules/twainui/cfg/gb_json.h \
../../../modules/twainui/cutdialog.h \
../../../modules/twainui/cutpapertool.h \
../../../modules/twainui/device_menu.h \
../../../modules/twainui/dialog_input.h \
../../../modules/twainui/gaosixy.h \
../../../modules/twainui/setpicclrtool.h \
../../../utility/HGString.h \
../../../modules/twainui/widget.h \
../../../modules/twainui/dialog_progress_ui.h \
../../../modules/twainui/dialog_device_select.h \
../../../modules/twainui/dialog_twain_source_select.h
FORMS += \
../../../modules/twainui/cutdialog.ui \
../../../modules/twainui/cutpapertool.ui \
../../../modules/twainui/dialog_input.ui \
../../../modules/twainui/setpicclrtool.ui \
../../../modules/twainui/widget.ui \
../../../modules/twainui/dialog_progress_ui.ui \
../../../modules/twainui/dialog_device_select.ui \
../../../modules/twainui/dialog_twain_source_select.ui
RESOURCES += \
../../../modules/twainui/TwainUI_resource.qrc
TRANSLATIONS += \
../../../modules/twainui/TwainUI_zh_CN.ts \
../../../modules/twainui/TwainUI_zh_EN.ts \
../../../modules/twainui/qt_zh_CN.ts
MY_OS = windows MY_OS = windows
TARGET = $${OEM_PREFIX}TwainUI TARGET = $${OEM_PREFIX}TwainUI
@ -120,64 +62,6 @@ win32 {
unix { unix {
SOURCES += ../../../modules/twainui/twainui.cpp
SOURCES += ../../../modules/twainui/hg_settingdialog.cpp
HEADERS += ../../../modules/twainui/hg_settingdialog.h
SOURCES += \
../../../modules/twainui/app_cfg.cpp \
../../../modules/twainui/HGUIGlobal.cpp \
../../../modules/twainui/Manager.cpp \
../../../modules/twainui/cfg/cJSON.c \
../../../modules/twainui/cfg/gb_json.cpp \
../../../modules/twainui/cutdialog.cpp \
../../../modules/twainui/cutpapertool.cpp \
../../../modules/twainui/device_menu.cpp \
../../../modules/twainui/dialog_input.cpp \
../../../modules/twainui/dllmain.cpp \
../../../modules/twainui/gaosixy.cpp \
../../../modules/twainui/setpicclrtool.cpp \
../../../utility/HGString.cpp \
../../../modules/twainui/widget.cpp \
../../../modules/twainui/dialog_progress_ui.cpp \
../../../modules/twainui/dialog_device_select.cpp \
../../../modules/twainui/dialog_twain_source_select.cpp
HEADERS += \
../../../modules/twainui/app_cfg.h \
../../../modules/twainui/HGUIGlobal.h \
../../../modules/twainui/Manager.h \
../../../modules/twainui/cfg/cJSON.h \
../../../modules/twainui/cfg/gb_json.h \
../../../modules/twainui/cutdialog.h \
../../../modules/twainui/cutpapertool.h \
../../../modules/twainui/device_menu.h \
../../../modules/twainui/dialog_input.h \
../../../modules/twainui/gaosixy.h \
../../../modules/twainui/setpicclrtool.h \
../../../utility/HGString.h \
../../../modules/twainui/widget.h \
../../../modules/twainui/dialog_progress_ui.h \
../../../modules/twainui/dialog_device_select.h \
../../../modules/twainui/dialog_twain_source_select.h
FORMS += \
../../../modules/twainui/cutdialog.ui \
../../../modules/twainui/cutpapertool.ui \
../../../modules/twainui/dialog_input.ui \
../../../modules/twainui/setpicclrtool.ui \
../../../modules/twainui/widget.ui \
../../../modules/twainui/dialog_progress_ui.ui \
../../../modules/twainui/dialog_device_select.ui \
../../../modules/twainui/dialog_twain_source_select.ui
RESOURCES += \
../../../modules/twainui/TwainUI_resource.qrc
TRANSLATIONS += \
../../../modules/twainui/TwainUI_zh_CN.ts \
../../../modules/twainui/TwainUI_zh_EN.ts \
../../../modules/twainui/qt_zh_CN.ts
DISTRIBUTION = $$system(cat /etc/issue | cut -d\' \' -f1) DISTRIBUTION = $$system(cat /etc/issue | cut -d\' \' -f1)
contains(DISTRIBUTION, UnionTech) { contains(DISTRIBUTION, UnionTech) {
MY_OS = uos MY_OS = uos
@ -247,6 +131,9 @@ win32 {
DESTDLL_PATH = $${PWD}/../../../../release/win/$${MY_ARCH}/$${MY_CONFIGURE}/ DESTDLL_PATH = $${PWD}/../../../../release/win/$${MY_ARCH}/$${MY_CONFIGURE}/
DESTDLL_PATH = $$replace(DESTDLL_PATH, /, \\) DESTDLL_PATH = $$replace(DESTDLL_PATH, /, \\)
message(DESTDLL_PATH: $$DESTDLL_PATH) message(DESTDLL_PATH: $$DESTDLL_PATH)
DESTHEADER_PATH = $${PWD}/../../../../sdk/include/twainui/
DESTHEADER_PATH = $$replace(DESTHEADER_PATH, /, \\)
message(DESTHEADER_PATH: $$DESTHEADER_PATH)
SRCLIB_FILE = $${DESTDIR}/$${TARGET}.lib SRCLIB_FILE = $${DESTDIR}/$${TARGET}.lib
SRCLIB_FILE = $$replace(SRCLIB_FILE, /, \\) SRCLIB_FILE = $$replace(SRCLIB_FILE, /, \\)
@ -254,12 +141,15 @@ win32 {
SRCDLL_FILE = $${DESTDIR}/$${TARGET}.dll SRCDLL_FILE = $${DESTDIR}/$${TARGET}.dll
SRCDLL_FILE = $$replace(SRCDLL_FILE, /, \\) SRCDLL_FILE = $$replace(SRCDLL_FILE, /, \\)
message(SRCDLL_FILE: $$SRCDLL_FILE) message(SRCDLL_FILE: $$SRCDLL_FILE)
SRCHEADER_FILE = $${PWD}/../../../modules/twainui/twainui.h
SRCHEADER_FILE = $$replace(SRCHEADER_FILE, /, \\)
message(SRCHEADER_FILE: $$SRCHEADER_FILE)
SRCPDB_FILE = $${DESTDIR}/$${TARGET}.pdb SRCPDB_FILE = $${DESTDIR}/$${TARGET}.pdb
SRCPDB_FILE = $$replace(SRCPDB_FILE, /, \\) SRCPDB_FILE = $$replace(SRCPDB_FILE, /, \\)
message(SRCPDB_FILE: $$SRCPDB_FILE) message(SRCPDB_FILE: $$SRCPDB_FILE)
QMAKE_POST_LINK += xcopy /y $$SRCLIB_FILE $$DESTLIB_PATH && xcopy /y $$SRCDLL_FILE $$DESTDLL_PATH \ QMAKE_POST_LINK += xcopy /y $$SRCLIB_FILE $$DESTLIB_PATH && xcopy /y $$SRCDLL_FILE $$DESTDLL_PATH \
&& xcopy /y $$SRCPDB_FILE $$DESTDLL_PATH && xcopy /y $$SRCHEADER_FILE $$DESTHEADER_PATH && xcopy /y $$SRCPDB_FILE $$DESTDLL_PATH
} }
} }
@ -268,10 +158,74 @@ unix {
CONFIG(release, debug|release) { CONFIG(release, debug|release) {
DESTDLL_PATH = $$PWD/../../../../release/$${MY_OS}/$${MY_ARCH2}/ DESTDLL_PATH = $$PWD/../../../../release/$${MY_OS}/$${MY_ARCH2}/
message(DESTDLL_PATH: $$DESTDLL_PATH) message(DESTDLL_PATH: $$DESTDLL_PATH)
DESTHEADER_PATH = $${PWD}/../../../../sdk/include/twainui/
message(DESTHEADER_PATH: $$DESTHEADER_PATH)
SRCDLL_FILE = $${DESTDIR}/lib$${TARGET}.so SRCDLL_FILE = $${DESTDIR}/lib$${TARGET}.so
message(SRCDLL_FILE: $$SRCDLL_FILE) message(SRCDLL_FILE: $$SRCDLL_FILE)
SRCHEADER_FILE = $${PWD}/../../../modules/twainui/twainui.h
message(SRCHEADER_FILE: $$SRCHEADER_FILE)
QMAKE_POST_LINK += cp $$SRCDLL_FILE $$DESTDLL_PATH QMAKE_POST_LINK += cp $$SRCDLL_FILE $$DESTDLL_PATH && cp $$SRCHEADER_FILE $$DESTHEADER_PATH
} }
} }
SOURCES += ../../../modules/twainui/twainui.cpp
HEADERS += ../../../modules/twainui/twainui.h
SOURCES += ../../../modules/twainui/hg_settingdialog.cpp
HEADERS += ../../../modules/twainui/hg_settingdialog.h
SOURCES += \
../../../modules/twainui/app_cfg.cpp \
../../../modules/twainui/HGUIGlobal.cpp \
../../../modules/twainui/Manager.cpp \
../../../modules/twainui/cfg/cJSON.c \
../../../modules/twainui/cfg/gb_json.cpp \
../../../modules/twainui/cutdialog.cpp \
../../../modules/twainui/cutpapertool.cpp \
../../../modules/twainui/device_menu.cpp \
../../../modules/twainui/dialog_input.cpp \
../../../modules/twainui/dllmain.cpp \
../../../modules/twainui/gaosixy.cpp \
../../../modules/twainui/setpicclrtool.cpp \
../../../utility/HGString.cpp \
../../../modules/twainui/widget.cpp \
../../../modules/twainui/dialog_progress_ui.cpp \
../../../modules/twainui/dialog_device_select.cpp \
../../../modules/twainui/dialog_twain_source_select.cpp
HEADERS += \
../../../modules/twainui/app_cfg.h \
../../../modules/twainui/HGUIGlobal.h \
../../../modules/twainui/Manager.h \
../../../modules/twainui/cfg/cJSON.h \
../../../modules/twainui/cfg/gb_json.h \
../../../modules/twainui/cutdialog.h \
../../../modules/twainui/cutpapertool.h \
../../../modules/twainui/device_menu.h \
../../../modules/twainui/dialog_input.h \
../../../modules/twainui/gaosixy.h \
../../../modules/twainui/setpicclrtool.h \
../../../utility/HGString.h \
../../../modules/twainui/widget.h \
../../../modules/twainui/dialog_progress_ui.h \
../../../modules/twainui/dialog_device_select.h \
../../../modules/twainui/dialog_twain_source_select.h
FORMS += \
../../../modules/twainui/cutdialog.ui \
../../../modules/twainui/cutpapertool.ui \
../../../modules/twainui/dialog_input.ui \
../../../modules/twainui/setpicclrtool.ui \
../../../modules/twainui/widget.ui \
../../../modules/twainui/dialog_progress_ui.ui \
../../../modules/twainui/dialog_device_select.ui \
../../../modules/twainui/dialog_twain_source_select.ui
RESOURCES += \
../../../modules/twainui/TwainUI_resource.qrc
TRANSLATIONS += \
../../../modules/twainui/TwainUI_zh_CN.ts \
../../../modules/twainui/TwainUI_zh_EN.ts \
../../../modules/twainui/qt_zh_CN.ts

View File

@ -2,7 +2,7 @@
#define DIALOG_DEVICE_SELECT_H #define DIALOG_DEVICE_SELECT_H
#include <QDialog> #include <QDialog>
#include "twain_user/twainui.h" #include "twainui.h"
namespace Ui { namespace Ui {
class Dialog_device_select; class Dialog_device_select;

View File

@ -3,7 +3,7 @@
#include <QDialog> #include <QDialog>
#include <qtranslator.h> #include <qtranslator.h>
#include "twain_user/twainui.h" #include "twainui.h"
namespace Ui { namespace Ui {
class Dialog_progress_ui; class Dialog_progress_ui;

View File

@ -6,7 +6,7 @@
#include <algorithm> #include <algorithm>
#include "cfg/gb_json.h" #include "cfg/gb_json.h"
#include "device_menu.h" #include "device_menu.h"
#include "twain_user/twainui.h" #include "twainui.h"
class hg_settingdialog : public QDialog class hg_settingdialog : public QDialog
{ {

View File

@ -1,4 +1,4 @@
#include "twain_user/twainui.h" #include "twainui.h"
#include <QMessageBox> #include <QMessageBox>
#include <string> #include <string>
#include "dialog_device_select.h" #include "dialog_device_select.h"

124
modules/twainui/twainui.h Normal file
View File

@ -0,0 +1,124 @@
#pragma once
#include <string>
#include <vector>
#include <functional>
#include "sane/sane_ex.h"
#include "base/HGDef.h"
#include "twain/twain.h"
typedef struct _dev_que_ui
{
int id; // ID用户选中后返回该值
std::string name; // 设备名称
std::string sn; // 设备序列号
}DEVQUEUI;
// 功能: 选择多个同型设备中的一个,模态
//
// 参数: devs - 设备队列列表
//
// 返回: 用户选择的设备所对应的DEVQUE::id或者-1代表用户放弃选择设备
HGEXPORT int choose_scanner(const std::vector<DEVQUEUI>& devs); // blocked. return selected DEVQUE::id or -1 if user cancelled
// 功能: 应用当前设备对应的用户配置,同步
//
// 参数: dev_name - 设备名称
//
// device - 设备打开的句柄
//
// api - sane_xxx API函数指针
//
// 返回: 当前设备配置方案的名称。返回指针通过调用函数twain_ui_free来释放
HGEXPORT char* apply_current_config(const char* dev_name, SANE_Handle device, LPSANEAPI api);
HGEXPORT int apply_given_config(const char* content, SANE_Handle device, LPSANEAPI api); // 应用指定的配置content为配置数据流返回0表示成功
// 功能: 获取配置文件内容
//
// 参数: dev_name - 设备名称
//
// name - 指定的文件内容NULL表示获取默认方案的配置文件内容
//
// 返回: 配置文件内容内存调用twain_ui_free释放
HGEXPORT char* get_config_content(const char* dev_name, const char* name = NULL);
// 功能: 释放由界面模块返回的动态分配的内存,同步
//
// 参数: buf - 内存地址
//
// 返回: 无
HGEXPORT void twain_ui_free(void* buf);
enum ui_result
{
UI_RESULT_FAILED = -1, // 一般用于界面初始化失败
UI_RESULT_OK, // 界面正常显示
UI_RESULT_CLOSE_NORMAL, // 界面正常关闭
UI_RESULT_CLOSE_CANCEL, // 用户取消操作,如取消扫描……
UI_RESULT_START_SCAN, // 用户点击了开始扫描
UI_RESULT_CLOSE_SETTING,
};
// 功能: 释放由界面模块返回的动态分配的内存,非模态
//
// 参数: device - 当前打开的设备句柄
//
// parent - 父窗口句柄
//
// api - sane_xxx API函数指针
//
// devName - 设备名称
//
// with_scan - 是否显示“扫描”按钮
//
// callback - 用户界面操作事件回调(主要为取消,扫描事件)
//
// 返回: ui_result 类型, UI_RESULT_FAILED or UI_RESULT_OK
//int show_setting_ui(SANE_Handle device, HWND parent, LPSANEAPI api, const char *devName, bool with_scan/*是否显示“扫描”按钮*/);
HGEXPORT int show_setting_ui(SANE_Handle device,HWND parent, LPSANEAPI api, const char *devName, bool with_scan/*是否显示“扫描”按钮*/,std::function<void(ui_result)> callback);
// 功能: 显示扫描进度界面,非模态
//
// 参数: parent - 父窗口句柄
//
// callback - 用户界面操作事件回调(主要为取消扫描事件)
//
// notify - ui接收进度通知函数外部通过该返回的函数来通知当前扫描进度或事件
// notify events: SANE_EVENT_WORKING - void*: unused, be NULL, flag - unused, be 0
// SANE_EVENT_SCAN_FINISHED - void*: (utf8*)message, flag - error code (0 is success)
// SANE_EVENT_USB_DATA_RECEIVED- void* unused, be NULL, flag - unused, be 0
// SANE_EVENT_IMAGE_OK - void* unused, be NULL, flag - unused, be 0
//
// 返回: ui_result 类型, UI_RESULT_FAILED or UI_RESULT_OK
HGEXPORT int show_progress_ui(HWND parent, std::function<void(ui_result)> callback, std::function<void(int/*event*/, void*/*msg*/, int/*flag*/)>* notify);
// 功能: 不显示扫描进度界面,设备返回错误信息指示框,非模态
//
// 参数: parent - 父窗口句柄
//
// events - SANE_EVENT_SCAN_FINISHED
//
// void* - (utf8*)message,
//
// flag - error code (0 is success)
//
// 返回: ui_result 类型, UI_RESULT_FAILED or UI_RESULT_OK
HGEXPORT int show_messagebox_ui(HWND parent,int event, void* msg, int flag);
HGEXPORT int show_twain_srclist_ui(const TW_IDENTITY *vds, HGUInt count, const char* defDsName, HGWindow parent, TW_IDENTITY *ds);
// 功能: 关闭界面
//
// 参数: which - bit mask, 界面类型
//
// 返回: 暂时未用返回0即可。
enum which_ui
{
UI_NONE = 0,
UI_INDICATOR = 1 << 0,
UI_SETTING = 1 << 1,
UI_MSG_BOX = 1 << 2,
UI_UNLOAD_MODULE = -1, // this command is used to notify the module will be unloaded
};
HGEXPORT int close_ui(int which);