From dde8bc9a2a01feb006f65623169a739005061cc7 Mon Sep 17 00:00:00 2001 From: gb <741021719@qq.com> Date: Sat, 6 May 2023 09:57:04 +0800 Subject: [PATCH] add json tools --- pc/code_twain/sln/hgjson/CDlgLang.cpp | 1094 +++ pc/code_twain/sln/hgjson/CDlgLang.h | 62 + pc/code_twain/sln/hgjson/CDlgMain.cpp | 114 + pc/code_twain/sln/hgjson/CDlgMain.h | 30 + pc/code_twain/sln/hgjson/DlgAddWords.cpp | 441 + pc/code_twain/sln/hgjson/DlgAddWords.h | 115 + pc/code_twain/sln/hgjson/DlgInput.cpp | 78 + pc/code_twain/sln/hgjson/DlgInput.h | 31 + pc/code_twain/sln/hgjson/DlgOptJson.cpp | 1452 +++ pc/code_twain/sln/hgjson/DlgOptJson.h | 174 + pc/code_twain/sln/hgjson/DlgRange.cpp | 217 + pc/code_twain/sln/hgjson/DlgRange.h | 38 + pc/code_twain/sln/hgjson/DlgTwain.cpp | 886 ++ pc/code_twain/sln/hgjson/DlgTwain.h | 66 + pc/code_twain/sln/hgjson/ReadMe.txt | 99 + pc/code_twain/sln/hgjson/hgjson.cpp | 103 + pc/code_twain/sln/hgjson/hgjson.h | 32 + pc/code_twain/sln/hgjson/hgjson.rc | Bin 0 -> 55042 bytes pc/code_twain/sln/hgjson/hgjson.vcxproj | 166 + .../sln/hgjson/hgjson.vcxproj.filters | 114 + pc/code_twain/sln/hgjson/hgjsonDlg.cpp | 8370 +++++++++++++++++ pc/code_twain/sln/hgjson/hgjsonDlg.h | 190 + pc/code_twain/sln/hgjson/res/bitmap1.bmp | Bin 0 -> 374 bytes pc/code_twain/sln/hgjson/res/hgjson.ico | Bin 0 -> 67156 bytes pc/code_twain/sln/hgjson/res/hgjson.rc2 | Bin 0 -> 796 bytes pc/code_twain/sln/hgjson/resource.h | Bin 0 -> 12370 bytes pc/code_twain/sln/hgjson/stdafx.cpp | 8 + pc/code_twain/sln/hgjson/stdafx.h | 54 + pc/code_twain/sln/hgjson/targetver.h | 8 + pc/code_twain/sln/usb_tools/Debug/hgjson.exe | Bin 0 -> 1699840 bytes 30 files changed, 13942 insertions(+) create mode 100644 pc/code_twain/sln/hgjson/CDlgLang.cpp create mode 100644 pc/code_twain/sln/hgjson/CDlgLang.h create mode 100644 pc/code_twain/sln/hgjson/CDlgMain.cpp create mode 100644 pc/code_twain/sln/hgjson/CDlgMain.h create mode 100644 pc/code_twain/sln/hgjson/DlgAddWords.cpp create mode 100644 pc/code_twain/sln/hgjson/DlgAddWords.h create mode 100644 pc/code_twain/sln/hgjson/DlgInput.cpp create mode 100644 pc/code_twain/sln/hgjson/DlgInput.h create mode 100644 pc/code_twain/sln/hgjson/DlgOptJson.cpp create mode 100644 pc/code_twain/sln/hgjson/DlgOptJson.h create mode 100644 pc/code_twain/sln/hgjson/DlgRange.cpp create mode 100644 pc/code_twain/sln/hgjson/DlgRange.h create mode 100644 pc/code_twain/sln/hgjson/DlgTwain.cpp create mode 100644 pc/code_twain/sln/hgjson/DlgTwain.h create mode 100644 pc/code_twain/sln/hgjson/ReadMe.txt create mode 100644 pc/code_twain/sln/hgjson/hgjson.cpp create mode 100644 pc/code_twain/sln/hgjson/hgjson.h create mode 100644 pc/code_twain/sln/hgjson/hgjson.rc create mode 100644 pc/code_twain/sln/hgjson/hgjson.vcxproj create mode 100644 pc/code_twain/sln/hgjson/hgjson.vcxproj.filters create mode 100644 pc/code_twain/sln/hgjson/hgjsonDlg.cpp create mode 100644 pc/code_twain/sln/hgjson/hgjsonDlg.h create mode 100644 pc/code_twain/sln/hgjson/res/bitmap1.bmp create mode 100644 pc/code_twain/sln/hgjson/res/hgjson.ico create mode 100644 pc/code_twain/sln/hgjson/res/hgjson.rc2 create mode 100644 pc/code_twain/sln/hgjson/resource.h create mode 100644 pc/code_twain/sln/hgjson/stdafx.cpp create mode 100644 pc/code_twain/sln/hgjson/stdafx.h create mode 100644 pc/code_twain/sln/hgjson/targetver.h create mode 100644 pc/code_twain/sln/usb_tools/Debug/hgjson.exe diff --git a/pc/code_twain/sln/hgjson/CDlgLang.cpp b/pc/code_twain/sln/hgjson/CDlgLang.cpp new file mode 100644 index 0000000..5994538 --- /dev/null +++ b/pc/code_twain/sln/hgjson/CDlgLang.cpp @@ -0,0 +1,1094 @@ +// CDlgLang.cpp: 实现文件 +// + +#include "stdafx.h" +#include "hgjson.h" +#include "afxdialogex.h" +#include "CDlgLang.h" +#include "DlgInput.h" +#include "DlgAddWords.h" + +#include +#include +#include +#include + +#define RESERVED_STR 600 + +namespace sdk_util +{ + INTER_MODULE_CALLBACK(got_str) + { + *((std::string*)param) += std::string(data, len); + + return inter_module_data::SET_RESULT_CONTINUE; + } + INTER_MODULE_CALLBACK(got_wstr) + { + *((std::wstring*)param) += std::wstring((const wchar_t*)data, len / 2); + + return inter_module_data::SET_RESULT_CONTINUE; + } + + uint32_t make_string_id(const wchar_t* str, bool(*is_repeat)(uint32_t, void*), void* param) + { + uint32_t crc = coding_util::crc_32(str, lstrlenW(str) * 2); + + crc &= 0x0ffff; + if (crc <= RESERVED_STR) + crc = RESERVED_STR + 1; + while (is_repeat(crc, param)) + crc++; + + return crc; + } + + void trim_left(std::wstring& str) + { + int i = 0; + + while (str[i] == L' ' || str[i] == L'\t') + i++; + + str.erase(0, i); + } + void trim_right(std::wstring& str) + { + int i = str.length() - 1; + while (i >= 0) + { + if (str[i] == L' ' || str[i] == L'\t') + i--; + else + break; + } + + str.erase(i + 1); + } + unsigned pick_number(const wchar_t* str, const wchar_t** end, int type) + { + int off = 0; + unsigned val = 0; + + if (type == coding_util::NUM_FMT_HEX) + { + for (; off < 4; ++off) + { + val <<= 4; + if (str[off] >= L'0' && str[off] <= L'9') + { + val += str[off] - L'0'; + } + else if (str[off] >= L'a' && str[off] <= L'f') + { + val += str[off] - L'a' + 10; + } + else if (str[off] >= L'A' && str[off] <= L'A') + { + val += str[off] - L'A' + 10; + } + else + { + val >>= 4; + break; + } + } + } + else if (type == coding_util::NUM_FMT_OCT) + { + for (; off < 3; ++off) + { + val <<= 3; + if (str[off] >= L'0' && str[off] <= L'7') + { + val += str[off] - L'0'; + } + else + { + val >>= 3; + break; + } + } + } + + if (end) + *end = str + off; + + return val; + } + void convert_unicode(std::wstring& str) + { + std::wstring conv(L""); + + for (int i = 0; i < str.length(); ++i) + { + if (str[i] == L'\\') + { + const wchar_t* end = NULL; + if (str[i + 1] == L'u') + { + unsigned val = (unsigned)sdk_util::pick_number(str.c_str() + i + 2, &end, coding_util::NUM_FMT_HEX); + if (end - str.c_str() == i + 6) + { + conv.append(1, val); + i += 5; + continue; + } + } + else if (iswdigit(str[i + 1])) + { + char val[4] = { 0 }; + val[0] = (char)sdk_util::pick_number(str.c_str() + i + 1, &end, coding_util::NUM_FMT_OCT); + if (end - str.c_str() == i + 4 && *end == L'\\' && iswdigit(end[1])) + { + val[1] = (char)sdk_util::pick_number(str.c_str() + i + 5, &end, coding_util::NUM_FMT_OCT); + if (end - str.c_str() == i + 8) + { + int off = 8; + if ((val[0] & 0x20) && *end == L'\\' && iswdigit(end[1])) + { + val[2] = (char)sdk_util::pick_number(str.c_str() + i + 9, &end, coding_util::NUM_FMT_OCT); + off += 4; + } + if (end - str.c_str() == i + off) + { + std::wstring oct(L""); + coding_util::utf8_2_unicode(val, got_wstr, &oct); + conv += oct; + i += off - 1; + continue; + } + } + } + } + } + + conv.append(1, str[i]); + } + + str = std::move(conv); + } + + static LANGID g_reserve[] = { {1, 936, "\344\270\255\346\226\207\357\274\210\347\256\200\344\275\223\357\274\211"} // 中文(简体) + , {2, 950, "\344\270\255\346\226\207\357\274\210\347\271\201\344\275\223\357\274\211"} // 中文(繁体) + , {10, 20127, "\350\213\261\350\257\255"} // 英语 + , {20, 855, "\344\277\204\350\257\255"} // 俄语 + , {30, 863, "\346\263\225\350\257\255"} // 法语 + , {40, 1141, "\345\276\267\350\257\255"} // 德语 + , {50, 1144, "\346\204\217\345\244\247\345\210\251\350\257\255"} // 意大利语 + , {60, 932, "\346\227\245\350\257\255"} // 日语 + , {70, 949, "\351\237\251\346\226\207"} // 韩文 + }; + LANGID* lang_info_from_cp(int cp) + { + for (auto& v : g_reserve) + { + if (v.cp == cp) + return &v; + } + + return NULL; + } + LANGID* lang_info_from_ID(int id) + { + for (auto& v : g_reserve) + { + if (v.id == id) + return &v; + } + + return NULL; + } + LANGID* lang_info_from_name(const char* utf8) + { + for (auto& v : g_reserve) + { + if (v.utf8 == utf8) + return &v; + } + + return NULL; + } + int save_2_lang_pak(HWND owner, std::vector& items, int cp, std::string* raw_data, bool to_file) + { + uint32_t len = 0, + crc = 0, + ver = MAKELPARAM(0, 1), + cps[] = { cp, -1}, + self_id = g_reserve[0].id, + off = sizeof(len) + sizeof(crc) + sizeof(ver) + sizeof(cps) + sizeof(self_id), + *ptr = NULL, + repeat = 0, + tmp = 0; + LANGID *info = lang_info_from_cp(cp); + std::string cont(""), str(""); + std::vector known; + + if (!info) + return ERROR_NOT_SUPPORTED; + + self_id = info->id; + +#define APPEND_INT(str, n) \ + str += std::string((char*)&n, sizeof(n)) +#define APPEND_ARRAY(str, n) \ + str += std::string((char*)n, sizeof(n)) + + APPEND_INT(cont, len); + APPEND_INT(cont, crc); + APPEND_INT(cont, ver); + APPEND_ARRAY(cont, cps); + APPEND_INT(cont, self_id); + cont += std::string(info->utf8.c_str(), info->utf8.length() + 1); + if (cont.length() % 16) + cont.append(16 - (cont.length() % 16), '\0'); // ENDING address align 16 before + + len = cont.length(); + off = (items.size() + _countof(g_reserve) + 1) * sizeof(len) * 2; + for (const auto& v : g_reserve) + { + APPEND_INT(cont, v.id); + APPEND_INT(cont, off); + + std::vector::iterator it = std::find(items.begin(), items.end(), v.id); + if (it == items.end()) + { + str += std::string(v.utf8.c_str(), v.utf8.length() + 1); + off += v.utf8.length() + 1; + } + else + { + str += std::string(it->utf8.c_str(), it->utf8.length() + 1); + off += it->utf8.length() + 1; + } + known.push_back(v.id); + } + for (const auto& v : items) + { + if (std::find(known.begin(), known.end(), v.id) == known.end()) + { + APPEND_INT(cont, v.id); + APPEND_INT(cont, off); + str += std::string(v.utf8.c_str(), v.utf8.length() + 1); + off += v.utf8.length() + 1; + } + else + repeat++; + } + + len = -1; + APPEND_INT(cont, len); + APPEND_INT(cont, len); + for (int i = 0; i < repeat; ++i) + { + APPEND_INT(cont, len); + APPEND_INT(cont, len); + } + + cont += std::string(str.c_str(), str.length()); + ptr = (uint32_t*)&cont[0]; + *ptr++ = cont.length(); + *ptr = coding_util::crc_32((const void*)(ptr + 1), cont.length() - 8); + + file_util::PATHFILE file = { 0 }; + tmp = 0; + if (to_file && file_util::browser_file(owner, &file, L"Language pack(*.pak)\0\0", false)) + { + tmp = file_util::save_2_file(cont.c_str(), cont.length(), file.path); + } + + if (raw_data) + *raw_data = std::move(cont); + + return tmp; + } + + bool parse_pak_digest(uint8_t* data, int* id) + { + uint32_t ver = *(uint32_t*)data, + val = 0, + name_id = 0, + * cps = (uint32_t*)(data + sizeof(uint32_t) * 3); + std::vector code_pages; + std::wstring name(L""); + + if (id) + *id = *cps; + while (*cps != -1) + { + code_pages.push_back(*cps++); + } + if (code_pages.empty()) + return false; + + cps++; + name_id = *cps++; + val = (uint8_t*)cps - data; + coding_util::utf8_2_unicode((char*)data + val, got_wstr, &name); + + return name.length() ? true : false; + } + bool parse_pak(uint8_t* data, std::vector& items) + { + uint32_t ver = *(uint32_t*)data, + val = 0, + * cps = (uint32_t*)(data + sizeof(uint32_t) * 3); + + while (*cps++ != -1); + cps++; + val = (uint8_t*)cps - data; + val += strlen((char*)data + val) + 1; + val += 15; + val /= 16; + val *= 16; + + struct + { + uint32_t id; + uint32_t off; + }*go = nullptr; + *((void**)&go) = (void*)(data + val); + while (go->id != -1) + { + LANGIDW l; + l.id = go->id; + coding_util::utf8_2_unicode((char*)data + go->off + val, got_wstr, &l.unic); + items.push_back(l); + go++; + } + + return true; + } + bool load_lang_pak(const wchar_t* file, std::vector& items, int* id) + { + std::string cont(""), name(""); + bool ret = false; + FILE* src = _wfopen(file, L"rb"); + + if (src) + { + int len = 0; + uint8_t* buf = nullptr; + + fseek(src, 0, SEEK_END); + len = ftell(src); + fseek(src, 0, SEEK_SET); + if (len) + { + buf = new uint8_t[len + 4]; + if (buf) + { + memset(buf, 0, len + 4); + len = fread(buf, 1, len, src); + if (len == *(uint32_t*)buf && coding_util::crc_32(buf + sizeof(uint32_t) * 2, len - sizeof(uint32_t) * 2) == ((uint32_t*)buf)[1]) + { + cont = std::string((char*)buf, len); + } + delete[] buf; + } + } + fclose(src); + } + if (cont.length()) + { + parse_pak_digest((uint8_t*)&cont[0], id); + ret = parse_pak((uint8_t*)&cont[0], items); + } + + return ret; + } + + std::wstring get_wnd_text(HWND wnd) + { + int l = GetWindowTextLengthW(wnd); + wchar_t* buf = new wchar_t[l + 4]; + std::wstring ret(L""); + + l = GetWindowTextW(wnd, buf, l + 1); + buf[l] = 0; + ret = buf; + delete[] buf; + + return std::move(ret); + } + std::wstring get_wnd_text(HWND dlg, UINT id) + { + return get_wnd_text(GetDlgItem(dlg, id)); + } + std::wstring load_file(const wchar_t* file, int* bom) + { + std::string raw(""); + std::wstring unic(L""); + + file_util::load_file(file, got_str, &raw); + if (bom) + { + if (coding_util::bom::is_unicode(raw.c_str(), NULL)) + *bom = BOM_UNICODE; + else if (coding_util::bom::is_utf8(raw.c_str())) + *bom = BOM_UTF8; + else + *bom = BOM_ANSI; + } + coding_util::bom::to_unicode(raw.c_str(), raw.length(), got_wstr, &unic); + + return std::move(unic); + } + int save_file(const wchar_t* file, std::wstring& cont, int bom) + { + if (bom == BOM_UTF8) + { + std::string raw(""), bomd(""); + + coding_util::unicode_2_utf8(cont.c_str(), got_str, &raw); + coding_util::bom::from_utf8(raw.c_str(), raw.length(), got_str, &bomd); + + return file_util::save_2_file(bomd.c_str(), bomd.length(), file); + } + else if (bom == BOM_UNICODE) + { + std::string raw(""); + + coding_util::bom::from_unicode(cont.c_str(), cont.length() * 2, got_str, &raw); + + return file_util::save_2_file(raw.c_str(), raw.length(), file); + } + else + { + std::string raw(""); + + coding_util::unicode_2_ansi(cont.c_str(), got_str, &raw); + + return file_util::save_2_file(raw.c_str(), raw.length(), file); + } + } +} + +// CDlgLang 对话框 + +IMPLEMENT_DYNAMIC(CDlgLang, CDialogEx) + +CDlgLang::CDlgLang(CWnd* pParent /*=nullptr*/) + : CDialogEx(IDD_LANGUAGE, pParent) + , cur_cp_(936) +{ + std::vector langs; + + //sdk_util::load_lang_pak(L"D:\\boxroom\\Dingding\\chinese.pak", langs); + langs.clear(); +} + +CDlgLang::~CDlgLang() +{ +} + +void CDlgLang::DoDataExchange(CDataExchange* pDX) +{ + CDialogEx::DoDataExchange(pDX); + DDX_Control(pDX, IDC_COMBO1, lang_); + DDX_Control(pDX, IDC_LIST1, list_); +} +BOOL CDlgLang::OnInitDialog() +{ + CDialogEx::OnInitDialog(); + + // Set the icon for this dialog. The framework does this automatically + // when the application's main window is not a dialog + int ind = 0; + list_.InsertColumn(ind++, TEXT("No."), 0, 48); + list_.InsertColumn(ind++, TEXT("ID"), 0, 60); + list_.InsertColumn(ind++, TEXT("Text"), 0, 350); + list_.SetExtendedStyle(list_.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_INFOTIP); + list_.ModifyStyle(0, LVS_SINGLESEL); + + for (const auto& v : sdk_util::g_reserve) + { + std::wstring unic(L""); + coding_util::utf8_2_unicode(v.utf8.c_str(), sdk_util::got_wstr, &unic); + ind = lang_.AddString(unic.c_str()); + lang_.SetItemData(ind, (DWORD_PTR)v.cp); + } + select_code_page(936); + + return TRUE; // return TRUE unless you set the focus to a control +} +bool CDlgLang::select_code_page(int cp) +{ + bool found = false; + + for (int i = 0; i < lang_.GetCount(); ++i) + { + if ((int)lang_.GetItemData(i) == cp) + { + lang_.SetCurSel(i); + found = true; + break; + } + } + + return found; +} +void CDlgLang::add_2_list(void* lang_list, int id, bool unic) +{ + if (unic) + { + std::vector* data = (std::vector*)lang_list; + + for (const auto& v : *data) + { + std::wstring text(L""); + int ind = find_list_item_by_ID(v.id); + + if (ind == -1) + { + ind = list_.InsertItem(list_.GetItemCount(), std::to_wstring(list_.GetItemCount() + 1).c_str()); + list_.SetItemText(ind, 1, std::to_wstring(v.id).c_str()); + } + list_.SetItemText(ind, 2, v.unic.c_str()); + } + } + else + { + std::vector* data = (std::vector*)lang_list; + + for (const auto& v : *data) + { + std::wstring text(L""); + int ind = find_list_item_by_ID(v.id); + + if (ind == -1) + { + ind = list_.InsertItem(list_.GetItemCount(), std::to_wstring(list_.GetItemCount() + 1).c_str()); + list_.SetItemText(ind, 1, std::to_wstring(v.id).c_str()); + } + coding_util::utf8_2_unicode(v.utf8.c_str(), sdk_util::got_wstr, &text); + list_.SetItemText(ind, 2, text.c_str()); + } + } +} +int CDlgLang::insert_item_2_list(const wchar_t* str, uint32_t id) +{ + int item = 0; + bool ok = false; + wchar_t buf[40] = { 0 }; + + for (; item < list_.GetItemCount(); ++item) + { + list_.GetItemText(item, 1, buf, _countof(buf) - 1); + if (_wtoi(buf) > id) + { + item = list_.InsertItem(item, std::to_wstring(item + 1).c_str()); + ok = true; + break; + } + } + if (ok) + { + for (int i = item + 1; i < list_.GetItemCount(); ++i) + list_.SetItemText(i, 0, std::to_wstring(i + 1).c_str()); + } + else + item = list_.InsertItem(list_.GetItemCount(), std::to_wstring(list_.GetItemCount() + 1).c_str()); + + list_.SetItemText(item, 1, std::to_wstring(id).c_str()); + list_.SetItemText(item, 2, str); + list_.EnsureVisible(item, FALSE); + list_.SetItemState(item, LVNI_FOCUSED | LVIS_SELECTED, LVNI_FOCUSED | LVIS_SELECTED); + GotoDlgCtrl(&list_); + + return item; +} +int CDlgLang::find_hz_ID(const wchar_t* hz) +{ + for (const auto& v : hz_) + { + if (v.hz == hz) + return v.id; + } + + return -1; +} +int CDlgLang::find_list_item_by_ID(int id) +{ + for (int i = 0; i < list_.GetItemCount(); ++i) + { + TCHAR val[40] = { 0 }; + list_.GetItemText(i, 1, val, _countof(val) - 1); + if (_ttoi(val) == id) + return i; + } + + return -1; +} +void CDlgLang::on_hz_pak_initialized(bool success) +{ + lang_.EnableWindow(success); + list_.EnableWindow(success); + GetDlgItem(IDC_BUTTON_SAVE)->EnableWindow(success); + GetDlgItem(IDC_BUTTON_SAVE_EXPORT)->EnableWindow(success); + GetDlgItem(IDC_BUTTON_ADD)->EnableWindow(cur_cp_ == 936); + GetDlgItem(IDC_BUTTON_ADD_FILE)->EnableWindow(cur_cp_ == 936); +} +bool CDlgLang::find_repeat_in_vector(uint32_t val, void* param) +{ + std::vector* vec = (std::vector*)param; + + return std::find(vec->begin(), vec->end(), val) != vec->end(); +} +bool CDlgLang::find_repeat_in_list(uint32_t val, void* param) +{ + CListCtrl* lst = (CListCtrl*)param; + wchar_t buf[40] = { 0 }; + + for (int i = 0; i < lst->GetItemCount(); ++i) + { + lst->GetItemText(i, 1, buf, _countof(buf) - 1); + if (_wtoi(buf) == val) + return true; + } + + return false; +} + +BEGIN_MESSAGE_MAP(CDlgLang, CDialogEx) + ON_BN_CLICKED(IDC_BUTTON_INIT_ID, &CDlgLang::OnBnClickedButtonInitId) + ON_CBN_SELCHANGE(IDC_COMBO1, &CDlgLang::OnCbnSelchangeLanguage) + ON_NOTIFY(NM_DBLCLK, IDC_LIST1, &CDlgLang::OnNMDblclkList1) + ON_BN_CLICKED(IDC_BUTTON_SAVE, &CDlgLang::OnBnClickedButtonSave) + ON_BN_CLICKED(IDC_BUTTON_ADD, &CDlgLang::OnBnClickedButtonAdd) + ON_BN_CLICKED(IDC_BUTTON_ADD_FILE, &CDlgLang::OnBnClickedButtonAddFile) + ON_BN_CLICKED(IDC_BUTTON_SAVE_EXPORT, &CDlgLang::OnBnClickedButtonSaveExport) + ON_BN_CLICKED(IDC_BUTTON_BATCH_ADD, &CDlgLang::OnBnClickedButtonBatchAdd) +END_MESSAGE_MAP() + + +// CDlgLang 消息处理程序 + + +void CDlgLang::OnBnClickedButtonInitId() +{ + // TODO: 在此添加控件通知处理程序代码 + file_util::PATHFILE file = { 0 }; + std::vector items; + + if (file_util::browser_file(m_hWnd, &file, L"Language Pack (*.pak)\0All Files (*.*)\0\0")) + { + hz_.clear(); + { + file_util::PATHFILE ext = { 0 }; + file_util::file_extension(file.path, &ext); + if (wcsicmp(ext.path, L"pak") == 0) + { + std::vector lans; + int id = 0; + + sdk_util::load_lang_pak(file.path, lans, &id); + if (id != 936) + { + ::MessageBoxW(m_hWnd, L"\u8BF7\u9009\u62E9\u201C\u4E2D\u6587\uFF08\u7B80\u4F53\uFF09\u201D\u7684\u8BED\u8A00\u5305\u4F5C\u4E3A\u521D\u59CB\u5316\u8BED\u8A00\u5305\uFF01", L"\u91CD\u65B0\u9009\u62E9", MB_OK | MB_ICONINFORMATION); + return; + } + cur_cp_ = id; + for (auto& v : lans) + { + HZMAP hm; + hm.id = v.id; + hm.hz = v.unic; + hz_.push_back(hm); + } + list_.DeleteAllItems(); + add_2_list(&lans, cur_cp_, true); + select_code_page(cur_cp_); + on_hz_pak_initialized(true); + return; + } + } + + std::string bom(""), utf8(""); + std::wstring cont(L""), line(L""), save(L""); + size_t pos = -1; + int cur = 0, next = 0; + std::vector ids; + + file_util::load_file(file.path, sdk_util::got_str, &bom); + coding_util::bom::to_unicode(bom.c_str(), bom.length(), sdk_util::got_wstr, &cont); + bom.clear(); + coding_util::pick_line(cont.c_str(), sdk_util::got_wstr, &line, &next); + while (next || !line.empty()) + { + std::wstring cpy(line + L"\r\n"); + + if (!line.empty()) + { + sdk_util::trim_left(line); + pos = line.find(L"//"); + if (pos) + { + pos = line.find(L"#define"); + if (pos == 0) + { + line.erase(0, 7); + sdk_util::trim_left(line); + pos = line.find(L" "); + if(pos == std::wstring::npos) + pos = line.find(L"\t"); + if (pos != std::wstring::npos) + { + std::wstring name = line.substr(0, pos); + line.erase(0, pos + 1); + sdk_util::trim_left(line); + if (line[0] == L'\"') + { + int bgn = 0, end = 0; + if (coding_util::pick_value(line.c_str(), L"\"", L"\"", &bgn, &end)) + { + line.erase(end + 1); + line.erase(0, bgn); + cpy.insert(0, L"// "); + sdk_util::convert_unicode(line); + bgn = sdk_util::make_string_id(line.c_str(), &CDlgLang::find_repeat_in_vector, &ids); + ids.push_back(bgn); + cpy += L"#define ID_" + name + L" " + std::to_wstring(bgn) + L"\r\n\r\n"; + + sdk_util::LANGID li; + li.id = bgn; + coding_util::unicode_2_utf8(line.c_str(), sdk_util::got_str, &li.utf8); + items.push_back(li); + + HZMAP hm; + hm.id = li.id; + hm.hz = line; + hz_.push_back(hm); + } + } + } + } + } + } + save += cpy; + cur += next; + line.clear(); + coding_util::pick_line(cont.c_str() + cur, sdk_util::got_wstr, &line, &next); + } + + coding_util::unicode_2_utf8(save.c_str(), sdk_util::got_str, &utf8); + save.clear(); + coding_util::bom::from_utf8(utf8.c_str(), utf8.length(), sdk_util::got_str, &bom); + utf8.clear(); + file_util::save_2_file(bom.c_str(), bom.length(), file.path); + + std::sort(items.begin(), items.end()); + list_.DeleteAllItems(); + cur_cp_ = 936; + add_2_list(&items, cur_cp_, false); + select_code_page(cur_cp_); + on_hz_pak_initialized(true); + //sdk_util::save_2_lang_pak(m_hWnd, items); + } +} +void CDlgLang::OnCbnSelchangeLanguage() +{ + file_util::PATHFILE file = { 0 }; + int lang_cp = (int)lang_.GetItemData(lang_.GetCurSel()); + + if (file_util::browser_file(m_hWnd, &file)) + { + { + file_util::PATHFILE ext = { 0 }; + file_util::file_extension(file.path, &ext); + if (wcsicmp(ext.path, L"pak") == 0) + { + std::vector lans; + int cp = 0; + + sdk_util::load_lang_pak(file.path, lans, &cp); + if (cp != lang_cp) + { + sdk_util::LANGID* inf = sdk_util::lang_info_from_cp(lang_cp); + std::wstring unic(L""); + + coding_util::utf8_2_unicode(inf->utf8.c_str(), sdk_util::got_wstr, &unic); + unic.insert(0, L"\u8BF7\u9009\u62E9\u201C"); + unic += L"\u201D\u8BED\u8A00\u5305\uFF01"; + ::MessageBoxW(m_hWnd, unic.c_str(), L"Error", MB_OK | MB_ICONSTOP); + select_code_page(cur_cp_); + GetDlgItem(IDC_BUTTON_ADD)->EnableWindow(cur_cp_ == 936); + GetDlgItem(IDC_BUTTON_ADD_FILE)->EnableWindow(cur_cp_ == 936); + return; + } + // list_.DeleteAllItems(); + cur_cp_ = cp; + add_2_list(&lans, cur_cp_, true); + select_code_page(cur_cp_); + GetDlgItem(IDC_BUTTON_ADD)->EnableWindow(cur_cp_ == 936); + GetDlgItem(IDC_BUTTON_ADD_FILE)->EnableWindow(cur_cp_ == 936); + return; + } + } + + ::MessageBoxW(m_hWnd, L"\u7EAF\u6587\u672C\u7FFB\u8BD1\u5BF9\u7167\uFF0C\u8BF7\u4EE5\u4E2D\u6587\uFF08\u7B80\u4F53\uFF09\u8BED\u8A00\u5728\u7B2C\u4E00\u5217\uFF08\u5982\u6709\u7A7A\u683C\u8BF7\u52A0\u82F1\u6587\u53CC\u5F15\u53F7\uFF09\uFF0C\u5176\u5B83\u8BED\u8A00\u4E3A\u7A7A\u683C\u4EE5\u540E\u7684\u7B2C\u4E8C\u5217\u3002", L"\u63D0\u793A", MB_OK | MB_ICONINFORMATION); + + std::string bom(""); + std::wstring cont(L""), line(L""), hz(L""), lan(L""); + size_t pos = -1; + int cur = 1, next = -1; + std::vector ids; + std::map lost; + + cur_cp_ = lang_cp; + file_util::load_file(file.path, sdk_util::got_str, &bom); + coding_util::bom::to_unicode(bom.c_str(), bom.length(), sdk_util::got_wstr, &cont); + bom.clear(); + while (next || !line.empty()) + { + cur += next; + line.clear(); + coding_util::pick_line(cont.c_str() + cur, sdk_util::got_wstr, &line, &next); + if (line.empty()) + continue; + + sdk_util::trim_left(line); + if (line.empty()) + continue; + + if (line[0] == L'\"') + { + int bgn = 0, end = 0; + coding_util::pick_value(line.c_str(), L"\"", L"\"", &bgn, &end); + if (end <= bgn) + continue; + + hz = line.substr(bgn, end - bgn + 1); + line.erase(0, end + 2); + } + else + { + pos = line.find(L" "); + if (pos > line.find(L"\t")) + pos = line.find(L"\t"); + if (pos == std::wstring::npos) + continue; + hz = line.substr(0, pos); + line.erase(0, pos + 1); + } + sdk_util::trim_left(line); + if (line.empty()) + continue; + + lan = line; + + int id = find_hz_ID(hz.c_str()), + item = id == -1 ? -1 : find_list_item_by_ID(id); + if (item == -1) + lost[hz] = lan; + else + list_.SetItemText(item, 2, lan.c_str()); + } + + cont.clear(); + if (lost.size()) + { + for (auto& v : lost) + cont += L" " + v.first + L" <---> " + v.second + L"\r\n"; + file_util::set_clipboard(cont.c_str(), cont.length() * 2, CF_UNICODETEXT); + cont.insert(0, L"下列语言条目,没有找到中文原版,请在中文(简体)语言包中补充完整(内容已经拷贝到剪贴板):\r\n"); + ::MessageBoxW(m_hWnd, cont.c_str(), L"Lost", MB_OK | MB_ICONERROR); + } + } + else if (lang_cp == 936) + { + cur_cp_ = lang_cp; + list_.DeleteAllItems(); + lang_cp = 1; + for (const auto& v : hz_) + { + int item = list_.InsertItem(list_.GetItemCount(), std::to_wstring(lang_cp++).c_str()); + list_.SetItemText(item, 1, std::to_wstring(v.id).c_str()); + list_.SetItemText(item, 2, v.hz.c_str()); + } + } + else + { + select_code_page(cur_cp_); + } + GetDlgItem(IDC_BUTTON_ADD)->EnableWindow(cur_cp_ == 936); + GetDlgItem(IDC_BUTTON_ADD_FILE)->EnableWindow(cur_cp_ == 936); +} +void CDlgLang::OnNMDblclkList1(NMHDR* pNMHDR, LRESULT* pResult) +{ + LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast(pNMHDR); + *pResult = 0; + + // TODO: 在此添加控件通知处理程序代码 + POINT pos = { 0 }; + int item = -1; + + GetCursorPos(&pos); + list_.ScreenToClient(&pos); + item = list_.HitTest(pos); + if (item != -1) + { + int size = 4 * 1024; + wchar_t* buf = new wchar_t[size]; + CDlgInput dlg; + + memset(buf, 0, size * sizeof(buf[0])); + list_.GetItemText(item, 2, buf, size - 1); + dlg.value_ = buf; + dlg.type_ = CDlgInput::INPUT_FOR_STRING; + delete[] buf; + if (dlg.DoModal() == IDOK) + { + list_.SetItemText(item, 2, dlg.value_); + } + } +} + + +void CDlgLang::OnBnClickedButtonSave() +{ + // TODO: 在此添加控件通知处理程序代码 + std::vector items; + int cp = (int)lang_.GetItemData(lang_.GetCurSel()), size = 1024; + wchar_t* buf = new wchar_t[size]; + + memset(buf, 0, size * sizeof(buf[0])); + for (int i = 0; i < list_.GetItemCount(); ++i) + { + sdk_util::LANGID lan; + + list_.GetItemText(i, 1, buf, size - 1); + lan.id = _wtoi(buf); + list_.GetItemText(i, 2, buf, size - 1); + coding_util::unicode_2_utf8(buf, sdk_util::got_str, &lan.utf8); + lan.cp = cp; + items.push_back(std::move(lan)); + } + delete[] buf; + + if (items.empty()) + { + MessageBox(TEXT("No items need save")); + return; + } + + if (sdk_util::save_2_lang_pak(m_hWnd, items, cp)) + ::MessageBoxW(m_hWnd, L"\u8BF7\u68C0\u67E5\u8DEF\u5F84\u53CA\u6743\u9650\u662F\u5426\u6B63\u5E38?", L"\u4FDD\u5B58\u5931\u8D25", MB_OK); +} + + +void CDlgLang::OnBnClickedButtonAdd() +{ + // TODO: 在此添加控件通知处理程序代码 + CDlgInput dlg; + + dlg.type_ = CDlgInput::INPUT_FOR_STRING; + if (dlg.DoModal() == IDOK) + { + HZMAP h; + + h.hz = dlg.value_.GetBuffer(); + dlg.value_.ReleaseBuffer(); + + h.id = find_hz_ID(h.hz.c_str()); + if (h.id == -1) + { + h.id = sdk_util::make_string_id(h.hz.c_str(), &CDlgLang::find_repeat_in_list, &list_); + + insert_item_2_list(h.hz.c_str(), h.id); + hz_.push_back(h); + } + else + { + MessageBox(TEXT("Existing already.")); + h.id = find_list_item_by_ID(h.id); + list_.EnsureVisible(h.id, FALSE); + list_.SetItemState(h.id, LVNI_FOCUSED | LVIS_SELECTED, LVNI_FOCUSED | LVIS_SELECTED); + GotoDlgCtrl(&list_); + } + } +} + + +void CDlgLang::OnBnClickedButtonAddFile() +{ + // TODO: 在此添加控件通知处理程序代码 + file_util::PATHFILE file = { 0 }; + + if (file_util::browser_file(m_hWnd, &file, L"Text File(*.txt)\0\0")) + { + std::string bom(""); + std::wstring unic(L""), line(L""); + int id = 0, next = 0, same = 0, added = 0, off = 0; + + file_util::load_file(file.path, sdk_util::got_str, &bom); + coding_util::bom::to_unicode(bom.c_str(), bom.length(), sdk_util::got_wstr, &unic); + bom.clear(); + + coding_util::pick_line(unic.c_str(), sdk_util::got_wstr, &line, &next); + while (next) + { + if (!line.empty()) + { + id = find_hz_ID(line.c_str()); + if (id == -1) + { + HZMAP h; + + h.hz = std::move(line); + h.id = sdk_util::make_string_id(h.hz.c_str(), &CDlgLang::find_repeat_in_list, &list_); + insert_item_2_list(h.hz.c_str(), h.id); + hz_.push_back(h); + added++; + } + else + { + same++; + } + } + off += next; + line = L""; + coding_util::pick_line(unic.c_str() + off, sdk_util::got_wstr, &line, &next); + } + + ::MessageBoxW(m_hWnd, (std::wstring(L"新增加 ") + std::to_wstring(added) + L" 个词条,有" + std::to_wstring(same) + L" 个词条重复。").c_str(), L"OK", MB_OK); + } +} + + +void CDlgLang::OnBnClickedButtonSaveExport() +{ + // TODO: 在此添加控件通知处理程序代码 + if (list_.GetItemCount()) + { + std::wstring text(L""); + + for (int i = 0; i < list_.GetItemCount(); ++i) + { + TCHAR buf[512] = { 0 }; + std::wstring l(L""); + + list_.GetItemText(i, 1, buf, _countof(buf) - 1); + l = buf; + if (l.length() < 5) + l.insert(0, 5 - l.length(), L' '); + l += L"\t\t"; + text += l; + + list_.GetItemText(i, 2, buf, _countof(buf) - 1); + text += buf; + text += L"\r\n"; + } + + file_util::set_clipboard(text.c_str(), text.length() * 2, CF_UNICODETEXT); + ::MessageBoxW(m_hWnd, L"文本内容已经拷贝到剪贴板", L"Ok", MB_OK); + } +} + + +void CDlgLang::OnBnClickedButtonBatchAdd() +{ + // TODO: 在此添加控件通知处理程序代码 + CDlgAddWords dlg; + dlg.DoModal(); +} diff --git a/pc/code_twain/sln/hgjson/CDlgLang.h b/pc/code_twain/sln/hgjson/CDlgLang.h new file mode 100644 index 0000000..7fedc3f --- /dev/null +++ b/pc/code_twain/sln/hgjson/CDlgLang.h @@ -0,0 +1,62 @@ +#pragma once +#include "afxdialogex.h" +#include +#include + +// CDlgLang 对话框 + +class CDlgLang : public CDialogEx +{ + DECLARE_DYNAMIC(CDlgLang) + +public: + CDlgLang(CWnd* pParent = nullptr); // 标准构造函数 + virtual ~CDlgLang(); + +// 对话框数据 + enum { IDD = IDD_LANGUAGE }; + +protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 + virtual BOOL OnInitDialog(); + + bool select_code_page(int cp); + void add_2_list(void* lang_list, int id, bool unic); + int insert_item_2_list(const wchar_t* str, uint32_t id); + int find_hz_ID(const wchar_t* hz); + int find_list_item_by_ID(int id); + void on_hz_pak_initialized(bool success); + + static bool find_repeat_in_vector(uint32_t val, void* param); + static bool find_repeat_in_list(uint32_t val, void* param); + + DECLARE_MESSAGE_MAP() +public: + afx_msg void OnBnClickedButtonInitId(); + afx_msg void OnCbnSelchangeLanguage(); + afx_msg void OnNMDblclkList1(NMHDR* pNMHDR, LRESULT* pResult); + CComboBox lang_; + CListCtrl list_; + int cur_cp_; + + typedef struct _base_map + { + int id; + std::wstring hz; + + bool operator==(int i) + { + return id == i; + } + bool operator==(const wchar_t* t) + { + return hz == t; + } + }HZMAP; + std::vector hz_; + afx_msg void OnBnClickedButtonSave(); + afx_msg void OnBnClickedButtonAdd(); + afx_msg void OnBnClickedButtonAddFile(); + afx_msg void OnBnClickedButtonSaveExport(); + afx_msg void OnBnClickedButtonBatchAdd(); +}; diff --git a/pc/code_twain/sln/hgjson/CDlgMain.cpp b/pc/code_twain/sln/hgjson/CDlgMain.cpp new file mode 100644 index 0000000..8d1620f --- /dev/null +++ b/pc/code_twain/sln/hgjson/CDlgMain.cpp @@ -0,0 +1,114 @@ +// CDlgMain.cpp: 实现文件 +// + +#include "stdafx.h" +#include "hgjson.h" +#include "afxdialogex.h" +#include "CDlgMain.h" +#include "resource.h" + +#include "hgjsonDlg.h" +#include "CDlgLang.h" +#include "DlgTwain.h" +#include "DlgOptJson.h" + +// CDlgMain 对话框 + +IMPLEMENT_DYNAMIC(CDlgMain, CDialogEx) + +CDlgMain::CDlgMain(CWnd* pParent /*=nullptr*/) + : CDialogEx(IDD_MAIN, pParent) +{ +#ifndef _WIN32_WCE + EnableActiveAccessibility(); +#endif + m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); + +} + +CDlgMain::~CDlgMain() +{ +} + +void CDlgMain::DoDataExchange(CDataExchange* pDX) +{ + CDialogEx::DoDataExchange(pDX); + DDX_Control(pDX, IDC_TAB1, tab_); +} +BOOL CDlgMain::OnInitDialog() +{ + CDialogEx::OnInitDialog(); + + // Set the icon for this dialog. The framework does this automatically + // when the application's main window is not a dialog + SetIcon(m_hIcon, TRUE); // Set big icon + SetIcon(m_hIcon, FALSE); // Set small icon + + LRESULT lret = 0; + CDialogEx* page = new ChgjsonDlg(this); + page->Create(ChgjsonDlg::IDD, this); + insert_page(page, L"\u626B\u63CF\u4EEA\u914D\u7F6E"); + + page = new CDlgLang(this); + page->Create(CDlgLang::IDD, this); + insert_page(page, L"\u8BED\u8A00\u5305\u5236\u4F5C"); + + page = new CDlgTwain(this); + page->Create(CDlgTwain::IDD, this); + insert_page(page, L"TWAIN"); + + page = new CDlgOptJson(this); + page->Create(CDlgOptJson::IDD, this); + insert_page(page, L"Opt-JSON"); + + tab_.SetCurSel(0); + OnTcnSelchangeTab1(NULL, &lret); + + return TRUE; // return TRUE unless you set the focus to a control +} +void CDlgMain::insert_page(CDialogEx* page, const wchar_t* title) +{ + RECT r = { 0 }; + int ind = 0; + TCITEM item = { 0 }; + + GetDlgItem(IDC_STATIC_CHILD)->GetWindowRect(&r); + ScreenToClient(&r); + page->MoveWindow(&r); + page->ShowWindow(SW_HIDE); + + ind = tab_.InsertItem(tab_.GetItemCount(), title); + item.lParam = (LPARAM)page; + item.mask = TCIF_PARAM; + tab_.SetItem(ind, &item); +} + +BEGIN_MESSAGE_MAP(CDlgMain, CDialogEx) + ON_NOTIFY(TCN_SELCHANGE, IDC_TAB1, &CDlgMain::OnTcnSelchangeTab1) + ON_NOTIFY(TCN_SELCHANGING, IDC_TAB1, &CDlgMain::OnTcnSelchangingTab1) +END_MESSAGE_MAP() + + +// CDlgMain 消息处理程序 +void CDlgMain::OnTcnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult) +{ + // TODO: 在此添加控件通知处理程序代码 + *pResult = 0; + TCITEM item = { 0 }; + + item.mask = TCIF_PARAM; + tab_.GetItem(tab_.GetCurSel(), &item); + ((CWnd*)item.lParam)->ShowWindow(SW_SHOW); +} + +void CDlgMain::OnTcnSelchangingTab1(NMHDR* pNMHDR, LRESULT* pResult) +{ + // TODO: 在此添加控件通知处理程序代码 + *pResult = 0; + + TCITEM item = { 0 }; + + item.mask = TCIF_PARAM; + tab_.GetItem(tab_.GetCurSel(), &item); + ((CWnd*)item.lParam)->ShowWindow(SW_HIDE); +} diff --git a/pc/code_twain/sln/hgjson/CDlgMain.h b/pc/code_twain/sln/hgjson/CDlgMain.h new file mode 100644 index 0000000..861290e --- /dev/null +++ b/pc/code_twain/sln/hgjson/CDlgMain.h @@ -0,0 +1,30 @@ +#pragma once +#include "afxdialogex.h" + + +// CDlgMain 对话框 + +class CDlgMain : public CDialogEx +{ + DECLARE_DYNAMIC(CDlgMain) + +public: + CDlgMain(CWnd* pParent = nullptr); // 标准构造函数 + virtual ~CDlgMain(); + +// 对话框数据 + enum { IDD = IDD_MAIN }; + +protected: + HICON m_hIcon; + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 + virtual BOOL OnInitDialog(); + + void insert_page(CDialogEx* page, const wchar_t* title); + + DECLARE_MESSAGE_MAP() +public: + CTabCtrl tab_; + afx_msg void OnTcnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult); + afx_msg void OnTcnSelchangingTab1(NMHDR* pNMHDR, LRESULT* pResult); +}; diff --git a/pc/code_twain/sln/hgjson/DlgAddWords.cpp b/pc/code_twain/sln/hgjson/DlgAddWords.cpp new file mode 100644 index 0000000..d3bcf83 --- /dev/null +++ b/pc/code_twain/sln/hgjson/DlgAddWords.cpp @@ -0,0 +1,441 @@ +// DlgAddWords.cpp: 实现文件 +// + +#include "stdafx.h" +#include "hgjson.h" +#include "afxdialogex.h" +#include "DlgAddWords.h" + + + +// CDlgAddWords 对话框 + +static bool is_id_existing(uint32_t id, void* param) +{ + std::vector* lang = (std::vector*)param; + + return std::find(lang->begin(), lang->end(), (int)id) != lang->end(); +} + +IMPLEMENT_DYNAMIC(CDlgAddWords, CDialogEx) + +CDlgAddWords::CDlgAddWords(CWnd* pParent /*=nullptr*/) + : CDialogEx(IDD_BATCH_ADD_LANG, pParent) +{ + +} + +CDlgAddWords::~CDlgAddWords() +{ +} + +void CDlgAddWords::DoDataExchange(CDataExchange* pDX) +{ + CDialogEx::DoDataExchange(pDX); + DDX_Control(pDX, IDC_LIST1, words_); +} +BOOL CDlgAddWords::OnInitDialog() +{ + CDialogEx::OnInitDialog(); + + // Set the icon for this dialog. The framework does this automatically + // when the application's main window is not a dialog + int ind = 0; + words_.InsertColumn(ind++, TEXT("No."), 0, 48); + words_.InsertColumn(ind++, TEXT("中文简体"), 0, 168); + words_.InsertColumn(ind++, TEXT("中文繁体"), 0, 168); + words_.InsertColumn(ind++, TEXT("英语"), 0, 250); + words_.SetExtendedStyle(words_.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_INFOTIP); + words_.ModifyStyle(0, LVS_SINGLESEL); + + + return TRUE; // return TRUE unless you set the focus to a control +} +void CDlgAddWords::open_pak(int lan_id) +{ + file_util::PATHFILE file = { 0 }; + + if (file_util::browser_file(m_hWnd, &file, L"PAK file(*.pak)\0All Files(*.*)\0\0")) + { + set_lang_pak_file(file.path, lan_id); + } +} +void CDlgAddWords::set_lang_pak_file(const wchar_t* file, int lan_id) +{ + std::vector lans; + int id = 0; + bool ok = false; + + if (sdk_util::load_lang_pak(file, lans, &id)) + { + if (id == lan_id || lan_id == 0) + { + ok = true; + if (id == 936) + { + ::SetDlgItemTextW(m_hWnd, IDC_EDIT_HZ_PAK, file); + lan_hz_ = std::move(lans); + } + else if (id == 950) + { + ::SetDlgItemTextW(m_hWnd, IDC_EDIT_HZT, file); + lan_hzt_ = std::move(lans); + } + else if (id == 20127) + { + ::SetDlgItemTextW(m_hWnd, IDC_EDIT_ENGLISH, file); + lan_eng_ = std::move(lans); + } + else + ok = false; + } + } + if (!ok && lan_id) + ::MessageBoxW(m_hWnd, file, L"不是指定的语言包", MB_OK | MB_ICONERROR); +} +void CDlgAddWords::set_code_file(const wchar_t* file, bool tip) +{ + std::wstring unic(sdk_util::load_file(file)); + + if (unic.find(L"unsigned char g_chinese[] = {") == std::wstring::npos) + { + if(tip) + ::MessageBoxW(m_hWnd, file, L"不是指定的简体中文语言头文件", MB_OK | MB_ICONERROR); + } + else + ::SetDlgItemTextW(m_hWnd, IDC_EDIT_CODE, file); +} +bool CDlgAddWords::add_words(const wchar_t* pak_file, std::vector& ids, std::string& cont, int lan_id, int src_col, bool init_id) +{ + std::vector prev; + int id = 0; + + if (sdk_util::load_lang_pak(pak_file, prev, &id)) + { + if (id == lan_id) + { + std::vector now; + + for (auto& v : prev) + { + sdk_util::LANGID item; + item.cp = id; + item.id = v.id; + coding_util::unicode_2_utf8(v.unic.c_str(), sdk_util::got_str, &item.utf8); + now.push_back(std::move(item)); + } + + for (int i = 0; i < words_.GetItemCount(); ++i) + { + wchar_t text[256] = { 0 }; + sdk_util::LANGID item; + + words_.GetItemText(i, src_col, text, _countof(text) - 1); + if (init_id) + { + ids.push_back(sdk_util::make_string_id(text, &is_id_existing, &now)); + } + item.cp = lan_id; + item.id = ids[i]; + coding_util::unicode_2_utf8(text, sdk_util::got_str, &item.utf8); + now.push_back(std::move(item)); + } + + cont = ""; + sdk_util::save_2_lang_pak(m_hWnd, now, lan_id, &cont, false); + + return true; + } + ::MessageBoxW(m_hWnd, L"语言包不匹配", L"错误", MB_OK | MB_ICONSTOP); + } + else + ::MessageBoxW(m_hWnd, pak_file, L"文件加载失败", MB_OK | MB_ICONSTOP); + + return false; +} +bool CDlgAddWords::update_head_file(const wchar_t* file, const std::string& cont) +{ + int bom = sdk_util::BOM_ANSI; + std::wstring code(sdk_util::load_file(file, &bom)), ar(L"unsigned char g_chinese[] = {"); + size_t pos = code.find(L"unsigned char g_chinese[] = {"), end = 0; + + + if (pos == std::wstring::npos) + return false; + + for (int i = 0; i < cont.length(); ++i) + { + unsigned char ch = cont[i]; + wchar_t buf[20] = { 0 }; + + swprintf_s(buf, _countof(buf) - 1, L"0x%02X", ch); + if ((i % 16) == 0) + { + if (i) + ar += L","; + ar += L"\r\n"; + } + else if ((i % 8) == 0) + { + if (i) + ar += L","; + ar += L" "; + } + else if (i) + ar += L", "; + ar += buf; + } + ar += L"\r\n};\r\n"; + + end = code.find(L";", pos); + if (end == std::wstring::npos) + code.erase(pos); + else + code.erase(pos, end - pos + 1); + code.insert(pos, ar); + + ar = file; + file_util::force_move_file(file, (ar + L".bak").c_str()); + bom = sdk_util::save_file(file, code, bom); + if(bom) + file_util::force_move_file((ar + L".bak").c_str(), file); + + return bom == 0; +} + +BEGIN_MESSAGE_MAP(CDlgAddWords, CDialogEx) + ON_BN_CLICKED(IDC_BUTTON_BROWSE_HZ, &CDlgAddWords::OnBnClickedButtonBrowseHz) + ON_BN_CLICKED(IDC_BUTTON_BROWSE_HZT, &CDlgAddWords::OnBnClickedButtonBrowseHzt) + ON_BN_CLICKED(IDC_BUTTON_BROWSE_ENG, &CDlgAddWords::OnBnClickedButtonBrowseEng) + ON_BN_CLICKED(IDC_BUTTON_BROWSE_CODE, &CDlgAddWords::OnBnClickedButtonBrowseCode) + ON_BN_CLICKED(IDC_BUTTON_ADD, &CDlgAddWords::OnBnClickedButtonAdd) + ON_BN_CLICKED(IDC_BUTTON_DEL, &CDlgAddWords::OnBnClickedButtonDel) + ON_BN_CLICKED(IDC_BUTTON_CLEAR, &CDlgAddWords::OnBnClickedButtonClear) + ON_BN_CLICKED(IDC_BUTTON_UPDATE, &CDlgAddWords::OnBnClickedButtonUpdate) + ON_WM_DROPFILES() + ON_NOTIFY(NM_DBLCLK, IDC_LIST1, &CDlgAddWords::OnNMDblclkList1) +END_MESSAGE_MAP() + + +// CDlgAddWords 消息处理程序 + +void CDlgAddWords::OnDropFiles(HDROP hDropInfo) +{ + // TODO: 在此添加消息处理程序代码和/或调用默认值 + wchar_t path[MAX_PATH] = { 0 }; + int cnt = DragQueryFileW(hDropInfo, -1, path, _countof(path) - 1); + + for (int i = 0; i < cnt; ++i) + { + int len = DragQueryFileW(hDropInfo, i, path, _countof(path) - 1); + std::wstring file(path, len), ext(file); + + STR_FILE_EXTENSION(ext); + if (wcsicmp(ext.c_str(), L"pak") == 0) + { + set_lang_pak_file(file.c_str()); + } + else if (wcsicmp(ext.c_str(), L"h") == 0) + { + set_code_file(file.c_str(), false); + } + } + + CDialogEx::OnDropFiles(hDropInfo); +} + +void CDlgAddWords::OnNMDblclkList1(NMHDR* pNMHDR, LRESULT* pResult) +{ + LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast(pNMHDR); + // TODO: 在此添加控件通知处理程序代码 + *pResult = 0; + + wchar_t text[256] = { 0 }; + + words_.GetItemText(pNMItemActivate->iItem, 1, text, _countof(text) - 1); + ::SetDlgItemTextW(m_hWnd, IDC_EDIT_HZ_WORD, text); + words_.GetItemText(pNMItemActivate->iItem, 2, text, _countof(text) - 1); + ::SetDlgItemTextW(m_hWnd, IDC_EDIT_HZT_WORD, text); + words_.GetItemText(pNMItemActivate->iItem, 3, text, _countof(text) - 1); + ::SetDlgItemTextW(m_hWnd, IDC_EDIT_ENG_WORD, text); +} + + +void CDlgAddWords::OnBnClickedButtonBrowseHz() +{ + // TODO: 在此添加控件通知处理程序代码 + open_pak(936); +} + + +void CDlgAddWords::OnBnClickedButtonBrowseHzt() +{ + // TODO: 在此添加控件通知处理程序代码 + open_pak(950); +} + + +void CDlgAddWords::OnBnClickedButtonBrowseEng() +{ + // TODO: 在此添加控件通知处理程序代码 + open_pak(20127); +} + + +void CDlgAddWords::OnBnClickedButtonBrowseCode() +{ + // TODO: 在此添加控件通知处理程序代码 + file_util::PATHFILE file = { 0 }; + + if (file_util::browser_file(m_hWnd, &file, L"Header file(*.h)\0\0")) + { + set_code_file(file.path); + } +} + + +void CDlgAddWords::OnBnClickedButtonAdd() +{ + // TODO: 在此添加控件通知处理程序代码 + std::wstring hz(sdk_util::get_wnd_text(m_hWnd, IDC_EDIT_HZ_WORD)), + hzt(sdk_util::get_wnd_text(m_hWnd, IDC_EDIT_HZT_WORD)), + eng(sdk_util::get_wnd_text(m_hWnd, IDC_EDIT_ENG_WORD)); + wchar_t text[256] = { 0 }; + int item = 0; + + for (int i = 0; i < words_.GetItemCount(); ++i) + { + words_.GetItemText(i, 1, text, _countof(text) - 1); + if (hz == text) + { + ::MessageBoxW(m_hWnd, text, L"词条已经存在", MB_OK | MB_ICONSTOP); + return; + } + } + + item = words_.InsertItem(words_.GetItemCount(), std::to_wstring(words_.GetItemCount() + 1).c_str()); + words_.SetItemText(item, 1, hz.c_str()); + words_.SetItemText(item, 2, hzt.c_str()); + words_.SetItemText(item, 3, eng.c_str()); +} + + +void CDlgAddWords::OnBnClickedButtonDel() +{ + // TODO: 在此添加控件通知处理程序代码 + for (int i = 0; i < words_.GetItemCount(); ++i) + { + if (words_.GetItemState(i, LVIF_STATE) & LVIS_SELECTED) + { + words_.DeleteItem(i--); + } + } + + for (int i = 0; i < words_.GetItemCount(); ++i) + words_.SetItemText(i, 0, std::to_wstring(i + 1).c_str()); +} + + +void CDlgAddWords::OnBnClickedButtonClear() +{ + // TODO: 在此添加控件通知处理程序代码 + words_.DeleteAllItems(); +} + + +void CDlgAddWords::OnBnClickedButtonUpdate() +{ + // TODO: 在此添加控件通知处理程序代码 + if (words_.GetItemCount() == 0) + { + ::MessageBoxW(m_hWnd, L"No words should be added into language packet!", L"None", MB_OK); + return; + } + + std::wstring hzf(sdk_util::get_wnd_text(m_hWnd, IDC_EDIT_HZ_PAK)), + hztf(sdk_util::get_wnd_text(m_hWnd, IDC_EDIT_HZT)), + engf(sdk_util::get_wnd_text(m_hWnd, IDC_EDIT_ENGLISH)), + hf(sdk_util::get_wnd_text(m_hWnd, IDC_EDIT_CODE)); + bool hzb(file_util::is_file_existing(hzf.c_str())), + hztb(file_util::is_file_existing(hztf.c_str())), + engb(file_util::is_file_existing(engf.c_str())), + hb(file_util::is_file_existing(hf.c_str())); + + if (!hzb) + { + ::MessageBoxW(m_hWnd, hzf.c_str(), L"File Not Found", MB_OK | MB_ICONSTOP); + GotoDlgCtrl(GetDlgItem(IDC_EDIT_HZ_PAK)); + return; + } + if (!hztb) + { + ::MessageBoxW(m_hWnd, hztf.c_str(), L"File Not Found", MB_OK | MB_ICONSTOP); + GotoDlgCtrl(GetDlgItem(IDC_EDIT_HZT)); + return; + } + if (!engb) + { + ::MessageBoxW(m_hWnd, hzf.c_str(), L"File Not Found", MB_OK | MB_ICONSTOP); + GotoDlgCtrl(GetDlgItem(IDC_EDIT_ENGLISH)); + return; + } + if (!hb) + { + ::MessageBoxW(m_hWnd, hzf.c_str(), L"File Not Found", MB_OK | MB_ICONSTOP); + GotoDlgCtrl(GetDlgItem(IDC_EDIT_CODE)); + return; + } + + // + std::vector ids; + std::string cont(""); + int err = 0; + + while (add_words(hzf.c_str(), ids, cont, 936, 1, true)) + { + file_util::force_move_file(hzf.c_str(), (hzf + L".bak").c_str()); + err = file_util::save_2_file(cont.c_str(), cont.length(), hzf.c_str()); + if (err) + { + ::MessageBoxW(m_hWnd, hzf.c_str(), L"Write file failed", MB_OK | MB_ICONERROR); + break; + } + + // change head file ... + if (update_head_file(hf.c_str(), cont)) + { + if (add_words(hztf.c_str(), ids, cont, 950, 2)) + { + file_util::force_move_file(hztf.c_str(), (hztf + L".bak").c_str()); + err = file_util::save_2_file(cont.c_str(), cont.length(), hztf.c_str()); + if (err) + { + ::MessageBoxW(m_hWnd, hztf.c_str(), L"Write file failed", MB_OK | MB_ICONERROR); + break; + } + + if (add_words(engf.c_str(), ids, cont, 20127, 3)) + { + file_util::force_move_file(engf.c_str(), (engf + L".bak").c_str()); + err = file_util::save_2_file(cont.c_str(), cont.length(), engf.c_str()); + } + } + else + err = -2; + } + else + { + err = -1; + } + break; + } + + if (err == 0) + ::MessageBoxW(m_hWnd, L"All languages have updated!", L"Congratulation", MB_OK | MB_ICONINFORMATION); + else + { + + } +} + + diff --git a/pc/code_twain/sln/hgjson/DlgAddWords.h b/pc/code_twain/sln/hgjson/DlgAddWords.h new file mode 100644 index 0000000..05df2b9 --- /dev/null +++ b/pc/code_twain/sln/hgjson/DlgAddWords.h @@ -0,0 +1,115 @@ +#pragma once +#include "afxdialogex.h" + + +// CDlgAddWords 对话框 + +#include +#include +#include +#include + +namespace sdk_util +{ + typedef struct _lang_id + { + int id; + int cp; + std::string utf8; + + bool operator==(int i) + { + return id == i; + } + bool operator<(struct _lang_id& r) + { + return id < r.id; + } + }LANGID; + typedef struct _lang_id_w + { + int id; + std::wstring unic; + + bool operator==(int i) + { + return id == i; + } + bool operator==(const wchar_t* text) + { + return unic == text; + } + bool operator<(struct _lang_id& r) + { + return id < r.id; + } + }LANGIDW; + + INTER_MODULE_CALLBACK(got_str); + INTER_MODULE_CALLBACK(got_wstr); + uint32_t make_string_id(const wchar_t* str, bool(*is_repeat)(uint32_t, void*), void* param); + void trim_left(std::wstring& str); + void trim_right(std::wstring& str); + unsigned pick_number(const wchar_t* str, const wchar_t** end, int type); + void convert_unicode(std::wstring& str); + LANGID* lang_info_from_cp(int cp); + LANGID* lang_info_from_ID(int id); + LANGID* lang_info_from_name(const char* utf8); + int save_2_lang_pak(HWND owner, std::vector& items, int cp = 936, std::string* raw_data = NULL, bool to_file = true); + bool parse_pak_digest(uint8_t* data, int* id); + bool parse_pak(uint8_t* data, std::vector& items); + bool load_lang_pak(const wchar_t* file, std::vector& items, int* id = NULL); + + std::wstring get_wnd_text(HWND wnd); + std::wstring get_wnd_text(HWND dlg, UINT id); + enum + { + BOM_ANSI = 0, + BOM_UTF8, + BOM_UNICODE, + }; + std::wstring load_file(const wchar_t* file, int* bom = NULL); + int save_file(const wchar_t* file, std::wstring& cont, int bom = BOM_UNICODE); +} + +class CDlgAddWords : public CDialogEx +{ + DECLARE_DYNAMIC(CDlgAddWords) + +public: + CDlgAddWords(CWnd* pParent = nullptr); // 标准构造函数 + virtual ~CDlgAddWords(); + +// 对话框数据 +#ifdef AFX_DESIGN_TIME + enum { IDD = IDD_BATCH_ADD_LANG }; +#endif + +protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 + virtual BOOL OnInitDialog(); + void open_pak(int lan_id); + void set_lang_pak_file(const wchar_t* file, int lan_id = 0); + void set_code_file(const wchar_t* file, bool tip = true); + bool add_words(const wchar_t* pak_file, std::vector& ids, std::string& cont, int lan_id, int src_col, bool init_id = false); + bool update_head_file(const wchar_t* file, const std::string& cont); + + DECLARE_MESSAGE_MAP() + + std::vector lan_hz_; + std::vector lan_hzt_; + std::vector lan_eng_; + +public: + afx_msg void OnBnClickedButtonBrowseHz(); + afx_msg void OnBnClickedButtonBrowseHzt(); + afx_msg void OnBnClickedButtonBrowseEng(); + afx_msg void OnBnClickedButtonBrowseCode(); + afx_msg void OnBnClickedButtonAdd(); + afx_msg void OnBnClickedButtonDel(); + afx_msg void OnBnClickedButtonClear(); + afx_msg void OnBnClickedButtonUpdate(); + CListCtrl words_; + afx_msg void OnDropFiles(HDROP hDropInfo); + afx_msg void OnNMDblclkList1(NMHDR* pNMHDR, LRESULT* pResult); +}; diff --git a/pc/code_twain/sln/hgjson/DlgInput.cpp b/pc/code_twain/sln/hgjson/DlgInput.cpp new file mode 100644 index 0000000..0a9c387 --- /dev/null +++ b/pc/code_twain/sln/hgjson/DlgInput.cpp @@ -0,0 +1,78 @@ +// DlgInput.cpp : implementation file +// + +#include "stdafx.h" +#include "hgjson.h" +#include "DlgInput.h" +#include "afxdialogex.h" + + +// CDlgInput dialog + +IMPLEMENT_DYNAMIC(CDlgInput, CDialogEx) + +CDlgInput::CDlgInput(CWnd* pParent /*=NULL*/) + : CDialogEx(CDlgInput::IDD, pParent) + , value_(_T("")), type_(INPUT_FOR_NAME) +{ + +} + +CDlgInput::~CDlgInput() +{ +} + +void CDlgInput::DoDataExchange(CDataExchange* pDX) +{ + CDialogEx::DoDataExchange(pDX); + DDX_Text(pDX, IDC_EDIT1, value_); +} +BOOL CDlgInput::OnInitDialog() +{ + CDialogEx::OnInitDialog(); + + // Set the icon for this dialog. The framework does this automatically + // when the application's main window is not a dialog + + return TRUE; // return TRUE unless you set the focus to a control +} + + +BEGIN_MESSAGE_MAP(CDlgInput, CDialogEx) + ON_BN_CLICKED(IDOK, &CDlgInput::OnBnClickedOk) +END_MESSAGE_MAP() + + +// CDlgInput message handlers + + + +void CDlgInput::OnBnClickedOk() +{ + // TODO: Add your control notification handler code here + UpdateData(); + if (value_.IsEmpty()) + { + ::MessageBoxW(m_hWnd, L"", L"Error", MB_OK | MB_ICONSTOP); + GotoDlgCtrl(GetDlgItem(IDC_EDIT1)); + return; + } + + if (type_ == INPUT_FOR_NAME) + { + wchar_t text[128] = { 0 }; + + ::GetDlgItemTextW(m_hWnd, IDC_EDIT1, text, _countof(text) - 1); + for (size_t i = 0; i < used_names_.size(); ++i) + { + if (used_names_[i] == text) + { + std::wstring t(used_names_[i] + L" is already used, choose another name, plz."); + ::MessageBoxW(m_hWnd, t.c_str(), L"Sorry", MB_OK); + return; + } + } + } + + CDialogEx::OnOK(); +} diff --git a/pc/code_twain/sln/hgjson/DlgInput.h b/pc/code_twain/sln/hgjson/DlgInput.h new file mode 100644 index 0000000..7277479 --- /dev/null +++ b/pc/code_twain/sln/hgjson/DlgInput.h @@ -0,0 +1,31 @@ +#pragma once + + +// CDlgInput dialog +#include +#include + +class CDlgInput : public CDialogEx +{ + DECLARE_DYNAMIC(CDlgInput) + +public: + CDlgInput(CWnd* pParent = NULL); // standard constructor + virtual ~CDlgInput(); + +// Dialog Data + enum { IDD = IDD_DIALOG1 }; + + std::vector used_names_; + +protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + virtual BOOL OnInitDialog(); + + DECLARE_MESSAGE_MAP() +public: + CString value_; + enum { INPUT_FOR_NAME, INPUT_FOR_STRING, }; + int type_; + afx_msg void OnBnClickedOk(); +}; diff --git a/pc/code_twain/sln/hgjson/DlgOptJson.cpp b/pc/code_twain/sln/hgjson/DlgOptJson.cpp new file mode 100644 index 0000000..76a603b --- /dev/null +++ b/pc/code_twain/sln/hgjson/DlgOptJson.cpp @@ -0,0 +1,1452 @@ +// DlgInput.cpp : implementation file +// + +#include "stdafx.h" +#include "hgjson.h" +#include "DlgOptJson.h" +#include "afxdialogex.h" +#include "DlgRange.h" + +#include + + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// known name ... +namespace known_name +{ + struct + { + std::wstring name; + std::wstring title; + } + g_group[] = { {L"base", L"\u57FA\u672C\u8BBE\u7F6E"}, {L"imgp", L"\u56FE\u50CF\u5904\u7406"}, {L"feeder", L"\u9001\u7EB8\u65B9\u5F0F"}, {L"adv", L"\u9AD8\u7EA7\u8BBE\u7F6E"}}, + g_cats[] = { {L"imgp", L"\u56FE\u50CF\u5904\u7406"}}; + + static std::wstring group_name(const wchar_t* grp_title) + { + for (auto& v : g_group) + { + if (v.title == grp_title) + return v.name; + } + + return grp_title; + } + static std::wstring group_title(const wchar_t* grp_name) + { + if (wcscmp(grp_name, L"imgproc") == 0) + grp_name = L"imgp"; + + for (auto& v : g_group) + { + if (v.name == grp_name) + return v.title; + } + + return grp_name; + } + + static std::wstring category_name(const wchar_t* cat_title) + { + for (auto& v : g_cats) + { + if (v.title == cat_title) + return v.name; + } + + return cat_title; + } + static std::wstring category_title(const wchar_t* cat_name) + { + if (wcscmp(cat_name, L"imgproc") == 0) + cat_name = L"imgp"; + + for (auto& v : g_cats) + { + if (v.name == cat_name) + return v.title; + } + + return cat_name; + } +}; + + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// CDlgOptJson dialog + +IMPLEMENT_DYNAMIC(CDlgOptJson, CDialogEx) + +CDlgOptJson::CDlgOptJson(CWnd* pParent /*=NULL*/) + : CDialogEx(CDlgOptJson::IDD, pParent) +{ + +} + +CDlgOptJson::~CDlgOptJson() +{ +} + +known_file_util::IJsonW* CDlgOptJson::SANEOPT::to_json(void) +{ + known_file_util::IJsonW* jsn = known_file_util::create_jsonW(), *dep = NULL; + int nv = 0; + + jsn->set_key(name.c_str()); + jsn->set_value(L"cat", known_name::category_name(category.c_str()).c_str()); + jsn->set_value(L"group", known_name::group_name(group.c_str()).c_str()); + jsn->set_value(L"title", title.c_str()); + jsn->set_value(L"desc", desc.c_str()); + jsn->set_value(L"ver", ver); + jsn->set_value(L"pos", pos); + jsn->set_value(L"type", type.c_str()); + jsn->set_value(L"unit", unit.c_str()); + SANEOPT::affect_str(nv, affect, false); + jsn->set_value(L"affect", nv); + jsn->set_value(L"readonly", readonly); + jsn->set_value(L"visible", open); + jsn->set_value(L"enabled", enable); + jsn->set_value(L"size", (int)sizeof(int)); + + if (type == L"bool") + { + jsn->set_value(L"cur", wcscmp((wchar_t*)def_val.c_str(), L"true") == 0); + jsn->set_value(L"default", wcscmp((wchar_t*)def_val.c_str(), L"true") == 0); + } + else if (type == L"int") + { + known_file_util::IJsonW* rng = NULL; + + jsn->set_value(L"cur", *(int*)def_val.c_str()); + jsn->set_value(L"default", *(int*)def_val.c_str()); + if (range_type == L"list") + { + rng = known_file_util::create_jsonW(); + rng->set_as_array(true); + for (auto& v : range) + *rng += *(int*)v.c_str(); + } + else if (range_type == L"range" && range.size() == 3) + { + rng = known_file_util::create_jsonW(); + rng->set_value(L"min", *(int*)range[0].c_str()); + rng->set_value(L"max", *(int*)range[1].c_str()); + rng->set_value(L"step", *(int*)range[2].c_str()); + } + if (rng) + { + jsn->set_value(L"range", rng); + rng->release(); + } + } + else if (type == L"float") + { + known_file_util::IJsonW* rng = NULL; + + jsn->set_value(L"size", (int)sizeof(double)); + jsn->set_value(L"cur", *(double*)def_val.c_str()); + jsn->set_value(L"default", *(double*)def_val.c_str()); + if (range_type == L"list") + { + rng = known_file_util::create_jsonW(); + rng->set_as_array(true); + for (auto& v : range) + *rng += *(double*)v.c_str(); + } + else if (range_type == L"range" && range.size() == 3) + { + rng = known_file_util::create_jsonW(); + rng->set_value(L"min", *(double*)range[0].c_str()); + rng->set_value(L"max", *(double*)range[1].c_str()); + rng->set_value(L"step", *(double*)range[2].c_str()); + } + if (rng) + { + jsn->set_value(L"range", rng); + rng->release(); + } + } + else if (type == L"string") + { + int len = def_val.length(); + jsn->set_value(L"cur", def_val.c_str()); + jsn->set_value(L"default", def_val.c_str()); + if (range.size()) + { + known_file_util::IJsonW* rng = known_file_util::create_jsonW(); + rng->set_as_array(true); + for (auto& v : range) + { + *rng += v.c_str(); + if (len < v.length()) + len = v.length(); + } + jsn->set_value(L"range", rng); + rng->release(); + } + len += 4; + len *= 3; + jsn->set_value(L"size", len); + } + + if (depends.size()) + { + std::wstring oper(L""), n(L""); + + std::sort(depends.begin(), depends.end()); + if (depend_oper == L"and") + oper = L"depend_and"; + else if (depend_oper == L"or") + oper = L"depend_or"; + + if (!oper.empty()) + { + dep = known_file_util::create_jsonW(); + dep->set_as_array(true); + for (auto& v : depends) + { + std::wstring exp(v), name(coding::name_from_depend_exp(exp)); + + if (name.empty()) + continue; + + if (n != name) + { + n = name; + } + else + exp.erase(0, name.length()); + *dep += exp.c_str(); + } + + jsn->set_value(oper.c_str(), dep); + dep->release(); + } + } + + return jsn; +} +bool CDlgOptJson::SANEOPT::from_json(known_file_util::IJsonW* jsn) +{ + bool ret = true; + const wchar_t* strv = NULL; + known_file_util::IJsonW* child = NULL; + + SANEOPT::init(this); + name = jsn->key() ? jsn->key() : L""; + if (jsn->get_value(L"title", &strv) && strv) + title = strv; + + if (jsn->get_value(L"desc", &strv) && strv) + desc = strv; + + if (jsn->get_value(L"group", &strv) && strv) + group = known_name::group_title(strv); + + if (jsn->get_value(L"cat", &strv) && strv) + category = known_name::category_title(strv); + else if(jsn->get_value(L"field", &strv) && strv) + category = known_name::category_title(strv); + + if (jsn->get_value(L"unit", &strv) && strv) + unit = strv; + std::transform(unit.begin(), unit.end(), unit.begin(), tolower); + + if (jsn->get_value(L"type", &strv) && strv) + type = strv; + std::transform(type.begin(), type.end(), type.begin(), tolower); + + if (type == L"bool") + { + bool v = false; + std::wstring sv(L""); + + jsn->get_value(L"default", v); + sv = v ? L"true" : L"false"; + def_val = std::string((char*)&sv[0], sv.length() * 2 + 2); + } + else if(type == L"int") + { + int v = false; + jsn->get_value(L"default", v); + def_val = std::string((char*)&v, sizeof(v)); + } + else if(type == L"float") + { + double v = false; + jsn->get_value(L"default", v); + def_val = std::string((char*)&v, sizeof(v)); + } + else if(type == L"string") + { + jsn->get_value(L"default", &strv); + def_val = strv ? std::string((const char*)strv, lstrlenW(strv) * 2 + 2) : ""; + } + + jsn->get_value(L"affect", ver); + SANEOPT::affect_str(ver, affect, true); + jsn->get_value(L"ver", ver); + jsn->get_value(L"pos", pos); + jsn->get_value(L"readonly", readonly); + jsn->get_value(L"visible", open); + jsn->get_value(L"enabled", enable); + + if (jsn->get_value(L"range", &child) && child) + { + if (type == L"int") + { + int nv = 0; + if (child->get_value(L"min", nv)) + { + range_type = L"range"; + range.push_back(std::string((char*)&nv, sizeof(nv))); + child->get_value(L"max", nv); + range.push_back(std::string((char*)&nv, sizeof(nv))); + child->get_value(L"step", nv); + range.push_back(std::string((char*)&nv, sizeof(nv))); + } + else + { + range_type = L"list"; + known_file_util::JSONMEMW m = child->first_member(); + while (m.type != known_file_util::JV_UNKNOWN) + { + range.push_back(std::string((char*)&m.int_val, sizeof(m.int_val))); + m = child->next_member(); + } + } + } + else if (type == L"float") + { + double nv = 0; + if (child->get_value(L"min", nv)) + { + range_type = L"range"; + range.push_back(std::string((char*)&nv, sizeof(nv))); + child->get_value(L"max", nv); + range.push_back(std::string((char*)&nv, sizeof(nv))); + child->get_value(L"step", nv); + range.push_back(std::string((char*)&nv, sizeof(nv))); + } + else + { + range_type = L"list"; + known_file_util::JSONMEMW m = child->first_member(); + while (m.type != known_file_util::JV_UNKNOWN) + { + range.push_back(std::string((char*)&m.double_val, sizeof(m.double_val))); + m = child->next_member(); + } + } + } + else if (type == L"string") + { + range_type = L"list"; + known_file_util::JSONMEMW m = child->first_member(); + while (m.type != known_file_util::JV_UNKNOWN) + { + range.push_back(std::string((const char*)m.str_val, lstrlenW(m.str_val) * 2 + 2)); + m = child->next_member(); + } + } + child->release(); + } + + if (jsn->get_value(L"depend_and", &child) && child) + depend_oper = L"and"; + else if (jsn->get_value(L"depend_or", &child) && child) + depend_oper = L"or"; + if (child) + { + known_file_util::JSONMEMW m = child->first_member(); + std::wstring n(L""); + while (m.type != known_file_util::JV_UNKNOWN) + { + std::wstring exp(m.str_val), nm(coding::name_from_depend_exp(exp)); + + if (nm.empty()) + exp.insert(0, n); + else + n = nm; + depends.push_back(exp); + + m = child->next_member(); + } + child->release(); + } + + return ret; +} + +std::wstring CDlgOptJson::get_item_text(UINT id) +{ + int l = GetDlgItem(id)->GetWindowTextLengthW(); + wchar_t* buf = new wchar_t[l + 4]; + + l = GetDlgItem(id)->GetWindowTextW(buf, l + 2); + buf[l] = 0; + + std::wstring ret(buf); + + delete[] buf; + + return std::move(ret); +} +bool CDlgOptJson::is_button_check(UINT id) +{ + return ((CButton*)GetDlgItem(id))->GetCheck() == BST_CHECKED; +} +void CDlgOptJson::set_button_check(UINT id, bool check) +{ + ((CButton*)GetDlgItem(id))->SetCheck(check ? BST_CHECKED : BST_UNCHECKED); +} + +void CDlgOptJson::from_ui(SANEOPT& sop) +{ + std::wstring val(L""); + + sop.name = get_item_text(IDC_EDIT_NAME); + sop.title = get_item_text(IDC_EDIT_TITLE); + sop.desc = get_item_text(IDC_EDIT_DESCRIPTION); + + sop.group = get_item_text(IDC_COMBO_GROUP); + if (group_.FindStringExact(-1, sop.group.c_str()) == -1) + group_.AddString(sop.group.c_str()); + + sop.category = get_item_text(IDC_COMBO_CATEGORY); + if (cat_.FindStringExact(-1, sop.category.c_str()) == -1) + cat_.AddString(sop.group.c_str()); + + sop.affect = get_item_text(IDC_COMBO_AFFECT); + sop.unit = get_item_text(IDC_COMBO_UNIT); + sop.ver = GetDlgItemInt(IDC_EDIT_VER); + sop.type = get_item_text(IDC_COMBO_DATA_TYPE); + sop.pos = GetDlgItemInt(IDC_EDIT_POSITION); + sop.readonly = is_button_check(IDC_CHECK_READONLY); + sop.open = is_button_check(IDC_CHECK_PUBLIC); + sop.range_type = get_item_text(IDC_COMBO_RANGE); + + if (GetDlgItem(IDC_EDIT_DEFAULT)->IsWindowVisible()) + val = get_item_text(IDC_EDIT_DEFAULT); + else + val = get_item_text(IDC_COMBO_DEFAULT); + sop.def_val = std::string((const char*)val.c_str(), val.length() * 2 + 2); + + sop.enable = is_button_check(IDC_CHECK_ENABLE); + sop.range_type = get_item_text(IDC_COMBO_RANGE); + sop.depend_oper = get_item_text(IDC_COMBO_DEPEND); + if (sop.depend_oper != L"none") + { + wchar_t buf[256] = { 0 }; + for (int i = 0; i < depends_.GetCount(); ++i) + { + depends_.GetText(i, buf); + + std::wstring exp(buf), n(coding::name_from_depend_exp(exp)); + + if (n.empty()) + continue; + + // title to name ... + exp.erase(0, n.length()); + for (auto& v : opts_) + { + if (v.title == n) + { + exp.insert(0, v.name); + break; + } + } + sop.depends.push_back(exp); + } + } +} +void CDlgOptJson::to_ui(const SANEOPT& sop) +{ + int n = 0; + + ::SetDlgItemTextW(m_hWnd, IDC_EDIT_NAME, sop.name.c_str()); + ::SetDlgItemTextW(m_hWnd, IDC_EDIT_TITLE, sop.title.c_str()); + ::SetDlgItemTextW(m_hWnd, IDC_EDIT_DESCRIPTION, sop.desc.c_str()); + + n = group_.FindStringExact(-1, sop.group.c_str()); + if (n == -1) + n = group_.AddString(sop.group.c_str()); + group_.SetCurSel(n); + + n = cat_.FindStringExact(-1, sop.category.c_str()); + if (n == -1) + n = cat_.AddString(sop.category.c_str()); + cat_.SetCurSel(n); + + n = affect_.FindStringExact(-1, sop.affect.c_str()); + affect_.SetCurSel(n); + + n = unit_.FindStringExact(-1, sop.unit.c_str()); + unit_.SetCurSel(n); + + SetDlgItemInt(IDC_EDIT_VER, sop.ver); + + n = type_.FindStringExact(-1, sop.type.c_str()); + type_.SetCurSel(n); + + SetDlgItemInt(IDC_EDIT_POSITION, sop.pos); + + set_button_check(IDC_CHECK_READONLY, sop.readonly); + set_button_check(IDC_CHECK_PUBLIC, sop.open); + set_button_check(IDC_CHECK_ENABLE, sop.enable); + + n = range_.FindStringExact(-1, sop.range_type.c_str()); + range_.SetCurSel(n); + + n = depend_.FindStringExact(-1, sop.depend_oper.c_str()); + depend_.SetCurSel(n); + + depends_.ResetContent(); + for (auto& v : sop.depends) + { + std::wstring n(coding::name_from_depend_exp(v)), str(v); + + if (n.empty()) + continue; + + // name to title ... + str.erase(0, n.length()); + for (auto& e : opts_) + { + if (e.name == n) + { + str.insert(0, e.title); + break; + } + } + depends_.AddString(str.c_str()); + } + + // default value ... + + // depend item ... + n = sop.depend_oper != L"none"; + parent_.EnableWindow(n); + logic_.EnableWindow(n); + depends_.EnableWindow(n); + GetDlgItem(IDC_BUTTON_ADD)->EnableWindow(n); + GetDlgItem(IDC_EDIT_LOW)->EnableWindow(n); + GetDlgItem(IDC_EDIT_LOW)->ShowWindow(SW_SHOW); + GetDlgItem(IDC_COMBO_LOW)->ShowWindow(SW_HIDE); + GetDlgItem(IDC_STATIC_AND)->ShowWindow(SW_HIDE); + GetDlgItem(IDC_EDIT_BIG)->ShowWindow(SW_HIDE); + GetDlgItem(IDC_COMBO_BIG)->ShowWindow(SW_HIDE); + GetDlgItem(IDC_BUTTON_SET)->EnableWindow(sop.range_type != L"none"); + + parent_.ResetContent(); + for (auto& v : opts_) + { + if (v.name == sop.name) + continue; + + parent_.AddString(v.title.c_str()); + } + + OnCbnDataTypeSelchange(); + OnCbnRangeSelchange(); + OnCbnDependSelchange(); + + // default value ... + if (sop.type == L"bool") + { + GetDlgItem(IDC_EDIT_DEFAULT)->ShowWindow(SW_HIDE); + def_val_.ShowWindow(SW_SHOW); + def_val_.ResetContent(); + def_val_.AddString(L"false"); + def_val_.AddString(L"true"); + def_val_.SetCurSel(def_val_.FindStringExact(-1, (const wchar_t*)sop.def_val.c_str())); + } + else if (sop.type == L"int") + { + if (sop.range_type == L"list") + { + GetDlgItem(IDC_EDIT_DEFAULT)->ShowWindow(SW_HIDE); + def_val_.ShowWindow(SW_SHOW); + def_val_.ResetContent(); + for (auto& v : sop.range) + { + def_val_.AddString(std::to_wstring(*(int*)v.c_str()).c_str()); + } + def_val_.SetCurSel(def_val_.FindStringExact(-1, std::to_wstring(*(int*)sop.def_val.c_str()).c_str())); + } + else + { + GetDlgItem(IDC_EDIT_DEFAULT)->ShowWindow(SW_SHOW); + SetDlgItemInt(IDC_EDIT_DEFAULT, *(int*)sop.def_val.c_str()); + def_val_.ShowWindow(SW_HIDE); + } + } + else if (sop.type == L"float") + { + if (sop.range_type == L"list") + { + GetDlgItem(IDC_EDIT_DEFAULT)->ShowWindow(SW_HIDE); + def_val_.ShowWindow(SW_SHOW); + def_val_.ResetContent(); + for (auto& v : sop.range) + { + def_val_.AddString(std::to_wstring(*(double*)v.c_str()).c_str()); + } + def_val_.SetCurSel(def_val_.FindStringExact(-1, std::to_wstring(*(double*)sop.def_val.c_str()).c_str())); + } + else + { + GetDlgItem(IDC_EDIT_DEFAULT)->ShowWindow(SW_SHOW); + SetDlgItemInt(IDC_EDIT_DEFAULT, *(double*)sop.def_val.c_str()); + def_val_.ShowWindow(SW_HIDE); + } + } + else if (sop.type == L"string") + { + if (sop.range_type == L"list") + { + GetDlgItem(IDC_EDIT_DEFAULT)->ShowWindow(SW_HIDE); + def_val_.ShowWindow(SW_SHOW); + def_val_.ResetContent(); + for (auto& v : sop.range) + { + def_val_.AddString((const wchar_t*)v.c_str()); + } + def_val_.SetCurSel(def_val_.FindStringExact(-1, (const wchar_t*)sop.def_val.c_str())); + } + else + { + GetDlgItem(IDC_EDIT_DEFAULT)->ShowWindow(SW_SHOW); + SetDlgItemText(IDC_EDIT_DEFAULT, (const wchar_t*)sop.def_val.c_str()); + def_val_.ShowWindow(SW_HIDE); + } + } +} +HTREEITEM CDlgOptJson::insert_to_tree(const SANEOPT& opt) +{ + HTREEITEM item = tree_.InsertItem(opt.title.c_str()); + wchar_t* name = new wchar_t[opt.name.length() + 2]; + + wcscpy(name, opt.name.c_str()); + if (!tree_.SetItemData(item, (DWORD_PTR)name)) + delete[] name; + + return item; +} +void CDlgOptJson::delete_from_tree(const wchar_t* name) +{ + if (name) + { + HTREEITEM item = tree_.GetRootItem(); + while (item) + { + wchar_t* buf = (wchar_t*)tree_.GetItemData(item); + if (buf && wcscmp(buf, name) == 0) + { + delete[] buf; + tree_.DeleteItem(item); + break; + } + + item = tree_.GetNextSiblingItem(item); + } + } + else + { + HTREEITEM item = tree_.GetRootItem(); + while (item) + { + wchar_t* buf = (wchar_t*)tree_.GetItemData(item); + if (buf) + delete[] buf; + item = tree_.GetNextSiblingItem(item); + } + tree_.DeleteAllItems(); + } +} + +bool CDlgOptJson::load_from_file(const wchar_t* path_file) +{ + std::string cont(""); + std::wstring unic(L""); + bool ret = false; + + file_util::load_file(path_file, coding::get_string, &cont); + coding_util::bom::to_unicode(cont.c_str(), cont.length(), coding::get_wstring, &unic); + if (unic.length()) + { + if (!load_from_json_text(unic.c_str())) + { + unic = path_file; + unic.insert(0, L"Parse json file '"); + unic += L"' failed"; + ::MessageBoxW(m_hWnd, unic.c_str(), L"Error", MB_OK); + } + else + ret = true; + } + + return ret; +} +bool CDlgOptJson::load_from_json_text(const wchar_t* txt, std::wstring* err_msg) +{ + int pos = 0; + known_file_util::IJsonW* jsn = known_file_util::create_jsonW(txt, &pos), * child = NULL; + + if (!jsn) + { + int ep = 10, len = 10; + if (lstrlenW(txt + pos) < 10) + len = lstrlenW(txt + pos); + if (pos < 10) + { + ep = pos; + pos = 10; + } + pos -= 10; + + std::wstring info(txt + pos, len + ep + 1); + wchar_t msg[80] = { 0 }; + + swprintf_s(msg, L"Error at position %d of char '%c'!\r\n\r\n", ep, info[ep]); + if (err_msg) + *err_msg = msg + info; + else + ::MessageBoxW(m_hWnd, (msg + info).c_str(), L"Load Error", MB_OK); + + return false; + } + + delete_from_tree(); + opts_.clear(); + child = jsn->first_child(); + while (child) + { + SANEOPT opt; + + if (opt.from_json(child)) + { + opts_.push_back(opt); + insert_to_tree(opt); + } + + child->release(); + child = jsn->next_child(); + } + jsn->release(); + return true; +} + +void CDlgOptJson::DoDataExchange(CDataExchange* pDX) +{ + CDialogEx::DoDataExchange(pDX); + DDX_Control(pDX, IDC_COMBO_GROUP, group_); + DDX_Control(pDX, IDC_COMBO_CATEGORY, cat_); + DDX_Control(pDX, IDC_COMBO_AFFECT, affect_); + DDX_Control(pDX, IDC_COMBO_UNIT, unit_); + DDX_Control(pDX, IDC_COMBO_DATA_TYPE, type_); + DDX_Control(pDX, IDC_COMBO_RANGE, range_); + DDX_Control(pDX, IDC_COMBO_DEFAULT, def_val_); + DDX_Control(pDX, IDC_COMBO_DEPEND, depend_); + DDX_Control(pDX, IDC_COMBO_PARENT, parent_); + DDX_Control(pDX, IDC_COMBO_LOGIC, logic_); + DDX_Control(pDX, IDC_COMBO_LOW, lower_); + DDX_Control(pDX, IDC_COMBO_BIG, upper_); + DDX_Control(pDX, IDC_COMBO_EXPORT, export_type_); + DDX_Control(pDX, IDC_LIST_DEPEND, depends_); + DDX_Control(pDX, IDC_TREE2, tree_); +} +BOOL CDlgOptJson::OnInitDialog() +{ + CDialogEx::OnInitDialog(); + + // Set the icon for this dialog. The framework does this automatically + // when the application's main window is not a dialog + group_.SetCurSel(0); + cat_.SetCurSel(0); + affect_.SetCurSel(0); + unit_.SetCurSel(0); + type_.SetCurSel(0); + range_.SetCurSel(0); + def_val_.SetCurSel(0); + depend_.SetCurSel(0); + + parent_.EnableWindow(FALSE); + logic_.EnableWindow(FALSE); + GetDlgItem(IDC_EDIT_LOW)->EnableWindow(FALSE); + depends_.EnableWindow(FALSE); + GetDlgItem(IDC_BUTTON_ADD)->EnableWindow(FALSE); + + BITMAP bmi = { 0 }; + GetObject(LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP1)), sizeof(bmi), &bmi); + tree_img_.Create(IDB_BITMAP1, bmi.bmWidth / 2, bmi.bmWidth / 2, RGB(255, 255, 255)); + tree_.SetImageList(&tree_img_, TVSIL_NORMAL); + + tree_menu_.LoadMenu(IDR_MENU1); + + export_type_.SetCurSel(1); + + return TRUE; // return TRUE unless you set the focus to a control +} + + +BEGIN_MESSAGE_MAP(CDlgOptJson, CDialogEx) + ON_WM_PASTE() + ON_CBN_SELCHANGE(IDC_COMBO_DATA_TYPE, &CDlgOptJson::OnCbnDataTypeSelchange) + ON_CBN_SELCHANGE(IDC_COMBO_RANGE, &CDlgOptJson::OnCbnRangeSelchange) + ON_CBN_SELCHANGE(IDC_COMBO_DEPEND, &CDlgOptJson::OnCbnDependSelchange) + ON_CBN_SELCHANGE(IDC_COMBO_PARENT, &CDlgOptJson::OnCbnParentSelchange) + ON_CBN_SELCHANGE(IDC_COMBO_LOGIC, &CDlgOptJson::OnCbnLogicSelchange) + ON_BN_CLICKED(IDC_BUTTON_MODIFY, &CDlgOptJson::OnBnClickedButtonModify) + ON_BN_CLICKED(IDC_BUTTON_ADD, &CDlgOptJson::OnBnClickedButtonAdd) + ON_NOTIFY(TVN_SELCHANGED, IDC_TREE2, &CDlgOptJson::OnTvnSelchangedTree2) + ON_NOTIFY(NM_RCLICK, IDC_TREE2, &CDlgOptJson::OnNMRClickTree2) + ON_NOTIFY(TVN_SELCHANGING, IDC_TREE2, &CDlgOptJson::OnTvnSelchangingTree2) + ON_COMMAND(ID_TREE_LOADFILE, &CDlgOptJson::OnTreeLoadfile) + ON_COMMAND(ID_TREE_LOADCLIPBOARD, &CDlgOptJson::OnTreeLoadclipboard) + ON_LBN_DBLCLK(IDC_LIST_DEPEND, &CDlgOptJson::OnLbnDblclkListDepend) + ON_BN_CLICKED(IDC_BUTTON_SET, &CDlgOptJson::OnBnClickedButtonSet) + ON_COMMAND(ID_TREE_DELITEM, &CDlgOptJson::OnTreeDelitem) + ON_BN_CLICKED(IDC_BUTTON_EXPORT, &CDlgOptJson::OnBnClickedButtonExport) +END_MESSAGE_MAP() + + +// CDlgOptJson message handlers +void CDlgOptJson::OnCbnSelchange() +{ + +} +void CDlgOptJson::OnCbnDataTypeSelchange() +{ + std::wstring val(get_item_text(IDC_COMBO_DATA_TYPE)); + + range_.EnableWindow(); + if (val == L"bool") + { + range_.SetCurSel(range_.FindStringExact(-1, L"none")); + OnCbnRangeSelchange(); + range_.EnableWindow(FALSE); + } +} +void CDlgOptJson::OnCbnRangeSelchange() +{ + std::wstring val(get_item_text(IDC_COMBO_RANGE)), + type(get_item_text(IDC_COMBO_DATA_TYPE)); + + GetDlgItem(IDC_BUTTON_SET)->EnableWindow(val != L"none"); + if (val == L"list" || type == L"bool") + { + GetDlgItem(IDC_EDIT_DEFAULT)->ShowWindow(SW_HIDE); + GetDlgItem(IDC_COMBO_DEFAULT)->ShowWindow(SW_SHOW); + def_val_.ResetContent(); + if (type == L"bool") + { + def_val_.AddString(L"false"); + def_val_.AddString(L"true"); + def_val_.SetCurSel(0); + } + } + else + { + GetDlgItem(IDC_EDIT_DEFAULT)->ShowWindow(SW_SHOW); + GetDlgItem(IDC_COMBO_DEFAULT)->ShowWindow(SW_HIDE); + } +} +void CDlgOptJson::OnCbnDependSelchange() +{ + std::wstring val(get_item_text(IDC_COMBO_DEPEND)); + + parent_.EnableWindow(val != L"none"); + logic_.EnableWindow(val != L"none"); + depends_.EnableWindow(val != L"none"); + lower_.EnableWindow(val != L"none"); + upper_.EnableWindow(val != L"none"); + + GetDlgItem(IDC_BUTTON_ADD)->EnableWindow(val != L"none"); + GetDlgItem(IDC_EDIT_LOW)->EnableWindow(val != L"none"); + GetDlgItem(IDC_EDIT_BIG)->EnableWindow(val != L"none"); + + if (val != L"none") + { + val = get_item_text(IDC_EDIT_NAME); + parent_.ResetContent(); + for (auto& v : opts_) + { + if (val == v.name) + continue; + parent_.AddString(v.title.c_str()); + } + } +} +void CDlgOptJson::OnCbnParentSelchange() +{ + std::wstring val(get_item_text(IDC_COMBO_PARENT)); + SANEOPT opt; + + for (auto& v : opts_) + { + if (val == v.title) + { + opt = v; + break; + } + } + + if (opt.type == L"bool") + { + logic_.ResetContent(); + logic_.AddString(L"=="); + logic_.SetCurSel(0); + OnCbnLogicSelchange(); + + GetDlgItem(IDC_EDIT_LOW)->ShowWindow(SW_HIDE); + lower_.ShowWindow(SW_SHOW); + lower_.ResetContent(); + lower_.AddString(L"false"); + lower_.AddString(L"true"); + lower_.SetCurSel(0); + } + else if (opt.type == L"int" || opt.type == L"float") + { + logic_.ResetContent(); + logic_.AddString(L"=="); + logic_.AddString(L"!="); + logic_.AddString(L"<"); + logic_.AddString(L"<="); + logic_.AddString(L">"); + logic_.AddString(L">="); + logic_.AddString(L"between"); + logic_.AddString(L"out of"); + logic_.SetCurSel(0); + OnCbnLogicSelchange(); + + if (opt.range_type == L"list") + { + GetDlgItem(IDC_EDIT_LOW)->ShowWindow(SW_HIDE); + lower_.ShowWindow(SW_SHOW); + lower_.ResetContent(); + upper_.ResetContent(); + + if (opt.type == L"int") + { + for (auto& v : opt.range) + { + std::wstring val(std::to_wstring(*(int*)v.c_str())); + lower_.AddString(val.c_str()); + upper_.AddString(val.c_str()); + } + } + else + { + for (auto& v : opt.range) + { + std::wstring val(std::to_wstring(*(double*)v.c_str())); + lower_.AddString(val.c_str()); + upper_.AddString(val.c_str()); + } + } + } + else + { + GetDlgItem(IDC_EDIT_LOW)->ShowWindow(SW_SHOW); + lower_.ShowWindow(SW_HIDE); + } + } + else if (opt.type == L"string") + { + logic_.ResetContent(); + logic_.AddString(L"=="); + logic_.AddString(L"!="); + logic_.SetCurSel(0); + OnCbnLogicSelchange(); + + if (opt.range_type == L"list") + { + GetDlgItem(IDC_EDIT_LOW)->ShowWindow(SW_HIDE); + lower_.ShowWindow(SW_SHOW); + lower_.ResetContent(); + for (auto& v : opt.range) + { + std::wstring val((const wchar_t*)v.c_str()); + lower_.AddString(val.c_str()); + } + } + else + { + GetDlgItem(IDC_EDIT_LOW)->ShowWindow(SW_SHOW); + lower_.ShowWindow(SW_HIDE); + } + } +} +void CDlgOptJson::OnCbnLogicSelchange() +{ + std::wstring val(get_item_text(IDC_COMBO_LOGIC)); + + if (val == L"between" || val == L"out of") + { + GetDlgItem(IDC_STATIC_AND)->ShowWindow(SW_SHOW); + // upper_.ShowWindow(SW_SHOW); + + val = get_item_text(IDC_COMBO_PARENT); + for (auto& v : opts_) + { + if (val == v.title) + { + val = v.range_type; + break; + } + } + if (val == L"list") + { + upper_.ShowWindow(SW_SHOW); + GetDlgItem(IDC_EDIT_BIG)->ShowWindow(SW_HIDE); + } + else + { + upper_.ShowWindow(SW_HIDE); + GetDlgItem(IDC_EDIT_BIG)->ShowWindow(SW_SHOW); + } + } + else + { + GetDlgItem(IDC_STATIC_AND)->ShowWindow(SW_HIDE); + GetDlgItem(IDC_EDIT_BIG)->ShowWindow(SW_HIDE); + upper_.ShowWindow(SW_HIDE); + } +} + +void CDlgOptJson::OnPaste() +{ + coding::CLPD clpb; + + file_util::get_clipboard(coding::get_clipboard_content, &clpb); + if (clpb.cont.empty()) + { + MessageBox(TEXT("clipboard is empty.")); + return; + } + + if (clpb.file) + { + size_t pos = clpb.cont.find(L"\r\n"); + bool loaded = false; + + while (!loaded && pos != std::wstring::npos) + { + loaded = load_from_file(clpb.cont.substr(0, pos).c_str()); + clpb.cont.erase(0, pos + 2); + pos = clpb.cont.find(L"\r\n"); + } + if (!loaded && file_util::is_file_existing(clpb.cont.c_str())) + load_from_file(clpb.cont.c_str()); + } + else + { + std::wstring err(L""); + if (load_from_json_text(clpb.cont.c_str(), &err)) + return; + + // we assum the content from codes ... + std::wstring jsn(L""); + size_t pos = clpb.cont.find(L" std::string"); + + while (pos != std::wstring::npos) + { + clpb.cont.erase(0, pos); + pos = clpb.cont.find(L"\""); + if (pos == std::wstring::npos) + break; + clpb.cont.erase(0, pos + 1); + pos = clpb.cont.find(L"\");"); + if (pos == std::wstring::npos) + { + jsn += clpb.cont; + break; + } + else + jsn += clpb.cont.substr(0, pos); + clpb.cont.erase(0, pos); + pos = clpb.cont.find(L" std::string"); + } + + if (jsn.length()) + { + pos = jsn.find(L"\\\\"); + while (pos != std::wstring::npos) + { + jsn.erase(pos++, 1); + pos = jsn.find(L"\\\\", pos); + } + pos = jsn.find(L"\\\""); + while (pos != std::wstring::npos) + { + jsn.erase(pos++, 1); + pos = jsn.find(L"\\\"", pos); + } + + load_from_json_text(jsn.c_str()); + } + else + ::MessageBoxW(m_hWnd, err.c_str(), L"Load Error", MB_OK); + } +} + + + +void CDlgOptJson::OnBnClickedButtonModify() +{ + // TODO: ڴӿؼ֪ͨ + SANEOPT sop; + + from_ui(sop); + if (sop.name.empty() || sop.title.empty()) + { + MessageBox(TEXT("Name and Title must input!")); + return; + } + + for (auto& v : opts_) + { + if (v.title == sop.title && v.name != sop.name) + { + if (::MessageBoxW(m_hWnd, (L"\u5DF2\u7ECF\u5B58\u5728\u540D\u4E3A\u201C" + v.title + L"\u201D\u7684\u914D\u7F6E\u9879\uFF01\uFF0C\u60F3\u4FEE\u6539Name\u5B57\u6BB5\u5417\uFF1F").c_str(), L"Error", MB_ICONSTOP | MB_YESNO) == IDYES) + { + v = std::move(sop); + } + return; + } + } + + for (auto& v : opts_) + { + if (v.name == sop.name) + { + v = std::move(sop); + return; + } + } + + opts_.push_back(sop); +} + + +void CDlgOptJson::OnBnClickedButtonAdd() +{ + // TODO: ڴӿؼ֪ͨ - add depend items + std::wstring opt(get_item_text(IDC_COMBO_PARENT)), + logic(get_item_text(IDC_COMBO_LOGIC)), + l(L""), u(L""); + int ind = 0; + + if (lower_.IsWindowVisible()) + l = get_item_text(IDC_COMBO_LOW); + else + l = get_item_text(IDC_EDIT_LOW); + + if (upper_.IsWindowVisible()) + u = get_item_text(IDC_COMBO_BIG); + else if (GetDlgItem(IDC_EDIT_BIG)->IsWindowVisible()) + u = get_item_text(IDC_EDIT_BIG); + + if (logic == L"between") + { + opt += L"==[" + l + L"," + u + L"]"; + } + else if (logic == L"out of") + { + opt += L"!=[" + l + L"," + u + L"]"; + } + else + { + opt += logic + l; + } + + ind = depends_.FindStringExact(-1, opt.c_str()); + if (ind == -1) + { + ind = depends_.AddString(opt.c_str()); + } + depends_.SetCurSel(ind); +} + + +void CDlgOptJson::OnTvnSelchangedTree2(NMHDR* pNMHDR, LRESULT* pResult) +{ + LPNMTREEVIEW pNMTreeView = reinterpret_cast(pNMHDR); + // TODO: ڴӿؼ֪ͨ + HTREEITEM item = tree_.GetSelectedItem(); + + if (item) + { + TVITEM tvi; + + tvi.mask = TVIF_SELECTEDIMAGE; + tvi.iSelectedImage = 1; + tvi.hItem = item; + tree_.SetItem(&tvi); + + wchar_t* name = (wchar_t*)tree_.GetItemData(item); + for (auto& v : opts_) + { + if (v.name == name) + { + to_ui(v); + break; + } + } + } + + *pResult = 0; +} + + +void CDlgOptJson::OnNMRClickTree2(NMHDR* pNMHDR, LRESULT* pResult) +{ + // TODO: ڴӿؼ֪ͨ + *pResult = 0; + + POINT pt = { 0 }; + HTREEITEM hsel = tree_.GetSelectedItem(); + + tree_menu_.EnableMenuItem(ID_TREE_ADDGROUP, MF_DISABLED); + tree_menu_.EnableMenuItem(ID_TREE_ADDITEM, MF_DISABLED); + tree_menu_.EnableMenuItem(ID_TREE_ADDPRODUCT, MF_DISABLED); + tree_menu_.EnableMenuItem(ID_TREE_DELITEM, MF_DISABLED); + tree_menu_.EnableMenuItem(ID_TREE_RENAME, MF_DISABLED); + + tree_menu_.EnableMenuItem(ID_TREE_TOOLTIPS, MF_DISABLED); + tree_menu_.EnableMenuItem(ID_TREE_EXPORTCHAR, MF_DISABLED); + tree_menu_.EnableMenuItem(ID_TREE_UNIFYSEQUENCE, MF_DISABLED); + + if (hsel) + { + tree_menu_.EnableMenuItem(ID_TREE_DELITEM, MF_ENABLED); + } + + GetCursorPos(&pt); + tree_menu_.GetSubMenu(0)->TrackPopupMenu(0, pt.x, pt.y, this); +} + + +void CDlgOptJson::OnTvnSelchangingTree2(NMHDR* pNMHDR, LRESULT* pResult) +{ + LPNMTREEVIEW pNMTreeView = reinterpret_cast(pNMHDR); + // TODO: ڴӿؼ֪ͨ + HTREEITEM hsel = tree_.GetSelectedItem(); + + if (hsel) + { + + } + + *pResult = 0; +} + + +void CDlgOptJson::OnTreeLoadfile() +{ + // TODO: ڴ + file_util::PATHFILE path = { 0 }; + + if (file_util::browser_file(m_hWnd, &path)) + { + load_from_file(path.path); + } +} + + +void CDlgOptJson::OnTreeLoadclipboard() +{ + // TODO: ڴ + OnPaste(); +} + + +void CDlgOptJson::OnLbnDblclkListDepend() +{ + // TODO: ڴӿؼ֪ͨ + int sel = depends_.GetCurSel(); + + if (sel >= 0 && sel < depends_.GetCount()) + depends_.DeleteString(sel); +} + + +void CDlgOptJson::OnBnClickedButtonSet() +{ + // TODO: ڴӿؼ֪ͨ + std::wstring val(get_item_text(IDC_COMBO_RANGE)); + CDlgRange dlg(val == L"list", this); + SANEOPT opt; + + val = get_item_text(IDC_EDIT_NAME); + if (val.empty()) + { + MessageBox(TEXT("ΨһƣNameֵֶ")); + GotoDlgCtrl(GetDlgItem(IDC_EDIT_NAME)); + return; + } + for (auto& v : opts_) + { + if (v.name == val) + { + opt = v; + break; + } + } + if (!opt.name.empty()) + { + val = get_item_text(IDC_COMBO_DATA_TYPE); + if (val == L"int") + { + dlg.init_ = std::to_wstring(*(int*)opt.def_val.c_str()); + for (auto& v : opt.range) + dlg.vals_.push_back(std::to_wstring(*(int*)v.c_str())); + } + else if (val == L"float") + { + dlg.init_ = std::to_wstring(*(double*)opt.def_val.c_str()); + for (auto& v : opt.range) + dlg.vals_.push_back(std::to_wstring(*(double*)v.c_str())); + } + else + { + dlg.init_ = (const wchar_t*)opt.def_val.c_str(); + for (auto& v : opt.range) + dlg.vals_.push_back((const wchar_t*)v.c_str()); + } + } + + if (dlg.DoModal() == IDOK) + { + if (val == L"int") + { + int n = _wtoi(dlg.init_.c_str()); + opt.def_val = std::string((char*)&n, sizeof(n)); + + opt.range.clear(); + for (auto& v : dlg.vals_) + { + n = _wtoi(v.c_str()); + opt.range.push_back(std::string((char*)&n, sizeof(n))); + } + } + else if (val == L"float") + { + double n = _wtof(dlg.init_.c_str()); + opt.def_val = std::string((char*)&n, sizeof(n)); + + opt.range.clear(); + for (auto& v : dlg.vals_) + { + n = _wtof(v.c_str()); + opt.range.push_back(std::string((char*)&n, sizeof(n))); + } + } + else + { + opt.range.clear(); + opt.def_val = std::string((const char*)dlg.init_.c_str(), dlg.init_.length() * 2 + 2); + for (auto& v : dlg.vals_) + opt.range.push_back(std::string((const char*)v.c_str(), v.length() * 2 + 2)); + } + + // add or insert ... + for (auto& v : opts_) + { + if (v.name == opt.name) + { + v = std::move(opt); + return; + } + } + + std::vector r(std::move(opt.range)); + + from_ui(opt); + opt.range = std::move(r); + opts_.push_back(opt); + insert_to_tree(opt); + } +} + + +void CDlgOptJson::OnTreeDelitem() +{ + // TODO: ڴ + HTREEITEM item = tree_.GetSelectedItem(); + + if (item) + { + CString text(tree_.GetItemText(item)); + + if (MessageBox(TEXT("ȷҪɾ"), text.GetBuffer(), MB_YESNO) == IDYES) + { + wchar_t* buf = (wchar_t*)tree_.GetItemData(item); + tree_.DeleteItem(item); + if (buf) + { + for (int i = 0; i < opts_.size(); ++i) + { + if (opts_[i].name == buf) + { + opts_.erase(opts_.begin() + i); + break; + } + } + delete[] buf; + } + } + text.ReleaseBuffer(); + } +} + + +void CDlgOptJson::OnBnClickedButtonExport() +{ + // TODO: ڴӿؼ֪ͨ + known_file_util::IJsonW* root = known_file_util::create_jsonW(), * child = NULL; + + for (auto& v : opts_) + { + child = v.to_json(); + if (child) + { + root->set_value(v.name.c_str(), child); + child->release(); + } + } + + std::wstring type(get_item_text(IDC_COMBO_EXPORT)), + cont(L""); + + root->to_string(coding::get_wstring, &cont, type == L"\u683C\u5F0F\u6587\u672C" ? L"\t" : NULL); + root->release(); + if (cont.empty()) + { + MessageBox(TEXT("No content has been serialized! change exporting type and try again."), NULL, MB_OK | MB_ICONERROR); + return; + } + + if (type == L"\u4EE3\u7801\u6587\u672C") + { + size_t pos = cont.find(L"\\"); + + while (pos++ != std::wstring::npos) + { + cont.insert(pos++, L"\\"); + pos = cont.find(L"\\", pos); + } + + pos = cont.find(L"\""); + while (pos != std::wstring::npos) + { + cont.insert(pos, L"\\"); + pos = cont.find(L"\"", pos + 2); + } + } + + int n = file_util::set_clipboard(cont.c_str(), cont.length() * 2, CF_UNICODETEXT); + MessageBox(TEXT("JSON text has set to clipboard already")); +} diff --git a/pc/code_twain/sln/hgjson/DlgOptJson.h b/pc/code_twain/sln/hgjson/DlgOptJson.h new file mode 100644 index 0000000..48a8549 --- /dev/null +++ b/pc/code_twain/sln/hgjson/DlgOptJson.h @@ -0,0 +1,174 @@ +#pragma once + + +// CDlgInput dialog +#include +#include + +#include +#include +#include +#include + +namespace coding +{ + typedef struct _clp_d + { + bool file; + std::wstring cont; + }CLPD, * LPCLPD; + + INTER_MODULE_CALLBACK(get_string); + INTER_MODULE_CALLBACK(get_wstring); + INTER_MODULE_CALLBACK(get_clipboard_content); + std::wstring name_from_depend_exp(const std::wstring& depend_exp); +}; + +// Group: ;ͼ;ֽʽ;߼; +// +// Cat: ͼ; +// + +class CDlgOptJson : public CDialogEx +{ + DECLARE_DYNAMIC(CDlgOptJson) + + CComboBox group_; + CComboBox cat_; + CComboBox affect_; + CComboBox unit_; + CComboBox type_; + CComboBox range_; + CComboBox def_val_; + CComboBox depend_; + CComboBox parent_; + CComboBox logic_; + CComboBox lower_; + CComboBox upper_; + CComboBox export_type_; + CListBox depends_; + CTreeCtrl tree_; + CMenu tree_menu_; + CImageList tree_img_; + + std::wstring get_item_text(UINT id); + bool is_button_check(UINT id); + void set_button_check(UINT id, bool check); + +public: + CDlgOptJson(CWnd* pParent = NULL); // standard constructor + virtual ~CDlgOptJson(); + +// Dialog Data + enum { IDD = IDD_NEW_JSON }; + + typedef struct _sane_opt_json + { + std::wstring name; + std::wstring title; + std::wstring desc; + std::wstring group; + std::wstring category; + std::wstring affect; + std::wstring unit; + std::wstring type; + std::string def_val; + std::wstring range_type; + std::vector range; + std::wstring depend_oper; + std::vector depends; + + int ver; + int pos; + bool readonly; + bool open; + bool enable; + + struct _sane_opt_json() + { + init(this); + } + struct _sane_opt_json(known_file_util::IJsonW* jsn) + { + if (!from_json(jsn)) + { + init(this); + } + } + static void init(struct _sane_opt_json* opt) + { + opt->name = opt->title = opt->desc = L""; + opt->group = L"\u57FA\u672C\u8BBE\u7F6E"; + opt->category = opt->unit = opt->affect = opt->depend_oper = opt->range_type = L"none"; + opt->range.clear(); + opt->depends.clear(); + + opt->def_val = ""; + opt->type = L"int"; + opt->ver = 1; + opt->pos = -1; + opt->readonly = false; + opt->open = true; + opt->enable = true; + } + static void affect_str(int& val, std::wstring& str, bool to_str) + { + static std::wstring affect_desc[] = { L"none", L"", L"ͼ", L"+" }; + + if (to_str) + { + int ind = val >> 1; + if (ind >= 0 && ind < _countof(affect_desc)) + str = affect_desc[ind]; + else + str = affect_desc[0]; + } + else + { + val = 0; + for (int i = 0; i < _countof(affect_desc); ++i) + { + if (str == affect_desc[i]) + val = i << 1; + } + } + } + + known_file_util::IJsonW* to_json(void); + bool from_json(known_file_util::IJsonW* jsn); + }SANEOPT; + std::vector opts_; + +protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + virtual BOOL OnInitDialog(); + + void from_ui(SANEOPT& sop); + void to_ui(const SANEOPT& sop); + HTREEITEM insert_to_tree(const SANEOPT& opt); + void delete_from_tree(const wchar_t* name = NULL); + + bool load_from_file(const wchar_t* path_file); + bool load_from_json_text(const wchar_t* txt, std::wstring* err_msg = NULL); + + DECLARE_MESSAGE_MAP() +public: + afx_msg void OnCbnDataTypeSelchange(); + afx_msg void OnCbnRangeSelchange(); + afx_msg void OnCbnDependSelchange(); + afx_msg void OnCbnParentSelchange(); + afx_msg void OnCbnLogicSelchange(); + afx_msg void OnCbnSelchange(); + afx_msg void OnPaste(); + afx_msg void OnBnClickedButtonModify(); + afx_msg void OnBnClickedButtonAdd(); + afx_msg void OnTvnSelchangedTree2(NMHDR* pNMHDR, LRESULT* pResult); + afx_msg void OnNMRClickTree2(NMHDR* pNMHDR, LRESULT* pResult); + afx_msg void OnTvnSelchangingTree2(NMHDR* pNMHDR, LRESULT* pResult); + afx_msg void OnTreeLoadfile(); + afx_msg void OnTreeLoadclipboard(); + afx_msg void OnLbnDblclkListDepend(); + afx_msg void OnBnClickedButtonSet(); + afx_msg void OnTreeDelitem(); + afx_msg void OnBnClickedButtonExport(); +}; diff --git a/pc/code_twain/sln/hgjson/DlgRange.cpp b/pc/code_twain/sln/hgjson/DlgRange.cpp new file mode 100644 index 0000000..cb6dffa --- /dev/null +++ b/pc/code_twain/sln/hgjson/DlgRange.cpp @@ -0,0 +1,217 @@ +// DlgRange.cpp: 实现文件 +// + +#include "stdafx.h" +#include "hgjson.h" +#include "DlgRange.h" +#include "afxdialogex.h" + + +// CDlgRange 对话框 + +IMPLEMENT_DYNAMIC(CDlgRange, CDialogEx) + +CDlgRange::CDlgRange(bool is_lst, CWnd* pParent /*=nullptr*/) + : CDialogEx(IDD_RANGE, pParent) + , is_list_(is_lst) +{ + +} + +CDlgRange::~CDlgRange() +{ +} + +std::wstring CDlgRange::get_item_text(UINT id) +{ + int l = GetDlgItem(id)->GetWindowTextLengthW(); + wchar_t* buf = new wchar_t[l + 4]; + + l = GetDlgItem(id)->GetWindowTextW(buf, l + 2); + buf[l] = 0; + + std::wstring ret(buf); + + delete[] buf; + + return std::move(ret); +} + +void CDlgRange::DoDataExchange(CDataExchange* pDX) +{ + CDialogEx::DoDataExchange(pDX); + DDX_Control(pDX, IDC_LIST1, list_); +} + +BOOL CDlgRange::OnInitDialog() +{ + CDialogEx::OnInitDialog(); + + // Set the icon for this dialog. The framework does this automatically + // when the application's main window is not a dialog + list_.SetExtendedStyle(list_.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_INFOTIP); + list_.InsertColumn(0, TEXT("Value lists"), 0, 177); + list_.InsertColumn(1, TEXT("Default"), 0, 48); + + GetDlgItem(IDC_EDIT_VAL)->EnableWindow(is_list_); + list_.EnableWindow(is_list_); + GetDlgItem(IDC_BUTTON_ADD)->EnableWindow(is_list_); + + GetDlgItem(IDC_EDIT_FROM)->EnableWindow(!is_list_); + GetDlgItem(IDC_EDIT_TO)->EnableWindow(!is_list_); + GetDlgItem(IDC_EDIT_STEP)->EnableWindow(!is_list_); + GetDlgItem(IDC_EDIT_INIT2)->EnableWindow(!is_list_); + + if (is_list_) + { + for (auto& v: vals_) + { + int ind = list_.InsertItem(list_.GetItemCount(), v.c_str()); + if (v == init_) + list_.SetItemText(ind, 1, L"yes"); + } + } + else if(vals_.size() == 3) + { + SetDlgItemTextW(IDC_EDIT_FROM, vals_[0].c_str()); + SetDlgItemTextW(IDC_EDIT_TO, vals_[1].c_str()); + SetDlgItemTextW(IDC_EDIT_STEP, vals_[2].c_str()); + + SetDlgItemTextW(IDC_EDIT_INIT2, init_.c_str()); + } + + return TRUE; // return TRUE unless you set the focus to a control +} + +BEGIN_MESSAGE_MAP(CDlgRange, CDialogEx) + ON_BN_CLICKED(IDC_BUTTON1, &CDlgRange::OnBnClickedButton1) + ON_BN_CLICKED(IDOK, &CDlgRange::OnBnClickedOk) + ON_NOTIFY(NM_DBLCLK, IDC_LIST1, &CDlgRange::OnNMDblclkList1) +END_MESSAGE_MAP() + + +// CDlgRange 消息处理程序 + + +void CDlgRange::OnBnClickedButton1() +{ + // TODO: 在此添加控件通知处理程序代码 + std::wstring val(get_item_text(IDC_EDIT_VAL)); + + for (int i = 0; i < list_.GetItemCount(); ++i) + { + wchar_t buf[25] = { 0 }; + list_.GetItemText(i, 0, buf, _countof(buf) - 1); + if (val == buf) + { + list_.SetItemState(i, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED); + list_.SetSelectionMark(i); + return; + } + } + + list_.InsertItem(list_.GetItemCount(), val.c_str()); +} + + +void CDlgRange::OnBnClickedOk() +{ + // TODO: 在此添加控件通知处理程序代码 + vals_.clear(); + if (is_list_) + { + if (init_.empty()) + { + MessageBox(TEXT("请确定默认值!双击列表中的某项进行选择。 "), TEXT("No Default"), MB_OK); + return; + } + if(list_.GetItemCount() == 0) + { + MessageBox(TEXT("没有输入有效的值列表"), TEXT("No Value"), MB_OK); + return; + } + + for (int i = 0; i < list_.GetItemCount(); ++i) + { + wchar_t buf[256] = { 0 }; + list_.GetItemText(i, 0, buf, _countof(buf) - 1); + vals_.push_back(buf); + } + } + else + { + std::wstring val(get_item_text(IDC_EDIT_FROM)); + + if (val.empty()) + { + MessageBox(TEXT("没有输入有效初始值"), TEXT("No Value"), MB_OK); + GotoDlgCtrl(GetDlgItem(IDC_EDIT_FROM)); + return; + } + vals_.push_back(val); + + val = get_item_text(IDC_EDIT_TO); + if (val.empty()) + { + MessageBox(TEXT("没有输入有效终止值"), TEXT("No Value"), MB_OK); + GotoDlgCtrl(GetDlgItem(IDC_EDIT_TO)); + return; + } + vals_.push_back(val); + + val = get_item_text(IDC_EDIT_STEP); + if (val.empty()) + { + MessageBox(TEXT("没有输入有效步长值"), TEXT("No Value"), MB_OK); + GotoDlgCtrl(GetDlgItem(IDC_EDIT_TO)); + return; + } + vals_.push_back(val); + + init_ = get_item_text(IDC_EDIT_INIT2); + if (init_.empty()) + { + MessageBox(TEXT("没有输入有效默认值"), TEXT("No Value"), MB_OK); + GotoDlgCtrl(GetDlgItem(IDC_EDIT_INIT2)); + return; + } + } + + CDialogEx::OnOK(); +} + + +void CDlgRange::OnNMDblclkList1(NMHDR* pNMHDR, LRESULT* pResult) +{ + LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast(pNMHDR); + // TODO: 在此添加控件通知处理程序代码 + *pResult = 0; + + + POINT pos = { 0 }; + int item = -1; + + GetCursorPos(&pos); + list_.ScreenToClient(&pos); + item = list_.HitTest(pos); + if (item != -1) + { + wchar_t buf[256] = { 0 }; + int ret = 0; + + list_.GetItemText(item, 0, buf, _countof(buf) - 1); + ret = ::MessageBoxW(m_hWnd, L"是否将该项设置为默认值?\r\nYes: 是\r\nNo: 删除该项\r\nCancel: 放弃操作", buf, MB_YESNOCANCEL); + if (ret == IDYES) + { + init_ = buf; + for (int i = 0; i < list_.GetItemCount(); ++i) + { + list_.SetItemText(i, 1, i == item ? L"yes" : L""); + } + } + else if (ret == IDNO) + { + list_.DeleteItem(item); + } + } +} diff --git a/pc/code_twain/sln/hgjson/DlgRange.h b/pc/code_twain/sln/hgjson/DlgRange.h new file mode 100644 index 0000000..9fc5ebc --- /dev/null +++ b/pc/code_twain/sln/hgjson/DlgRange.h @@ -0,0 +1,38 @@ +#pragma once + + +// CDlgRange 对话框 +#include +#include + +class CDlgRange : public CDialogEx +{ + DECLARE_DYNAMIC(CDlgRange) + + std::wstring get_item_text(UINT id); + +public: + CDlgRange(bool is_lst, CWnd* pParent = nullptr); // 标准构造函数 + virtual ~CDlgRange(); + +// 对话框数据 +#ifdef AFX_DESIGN_TIME + enum { IDD = IDD_RANGE }; +#endif + +protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 + virtual BOOL OnInitDialog(); + + DECLARE_MESSAGE_MAP() +public: + + std::vector vals_; + std::wstring init_; + bool is_list_; + + afx_msg void OnBnClickedButton1(); + CListCtrl list_; + afx_msg void OnBnClickedOk(); + afx_msg void OnNMDblclkList1(NMHDR* pNMHDR, LRESULT* pResult); +}; diff --git a/pc/code_twain/sln/hgjson/DlgTwain.cpp b/pc/code_twain/sln/hgjson/DlgTwain.cpp new file mode 100644 index 0000000..54d8a0a --- /dev/null +++ b/pc/code_twain/sln/hgjson/DlgTwain.cpp @@ -0,0 +1,886 @@ +// DlgInput.cpp : implementation file +// + +#include "stdafx.h" +#include "hgjson.h" +#include "DlgTwain.h" +#include "afxdialogex.h" + +#include + +#include +#include + + +namespace util +{ + enum + { + BOM_ANSI, + BOM_UTF8, + BOM_UNICODE, + }; + static INTER_MODULE_CALLBACK(got_str) + { + *(std::string*)param += std::string(data, len); + + return inter_module_data::SET_RESULT_CONTINUE; + } + static INTER_MODULE_CALLBACK(got_wstr) + { + *(std::wstring*)param += std::wstring((const wchar_t*)data, len / 2); + + return inter_module_data::SET_RESULT_CONTINUE; + } + + static bool is_space(wchar_t ch) + { + return ch == L' ' || ch == L'\t' || ch == L'\r' || ch == L'\n'; + } + static bool is_var_char(wchar_t ch, bool allow_num) + { + return ch == L'_' || + (ch >= L'0' && ch <= L'9' && allow_num) || + (ch >= L'a' && ch <= L'z') || + (ch >= L'A' && ch <= L'Z'); + } + static bool skip_space(const wchar_t** str) + { + const wchar_t* bgn = *str; + + while (is_space(str[0][0])) + (*str)++; + + return *str > bgn; + } + static void to_line_head(const wchar_t** str) + { + while (str[0][0] != L'\n') + (*str)--; + } + static void erase_multiline_comment(std::wstring& cont) + { + for (int i = 0; i < cont.length(); ++i) + { + if (cont[i] == L'/') + { + if (cont[i + 1] == L'/') + { + std::wstring val(L""); + int next = 0; + coding_util::pick_line(cont.c_str() + i, got_wstr, &val, &next); + i += next; + } + else if (cont[i + 1] == L'*') + { + size_t pos = cont.find(L"*/", i + 2); + if (pos++ == std::wstring::npos) + { + cont.erase(i); + break; + } + else + cont.erase(i, pos - i + 1); + } + } + } + } + static void transform_hz(std::wstring& hz) + { + int prev = -1; + std::string inner(""); + for (int i = 0; i < hz.length() - 3; ++i) + { + if (hz[i] == L'\\') + { + if (hz[i + 1] == L'u') + { + + } + else if (hz[i + 1] == L'x') + { + + } + else if (hz[i + 1] >= L'0' && hz[i + 1] <= L'7') + { + if (hz[i + 2] >= L'0' && hz[i + 2] <= L'7' && + hz[i + 3] >= L'0' && hz[i + 3] <= L'7') + { + if (prev == -1) + prev = i; + char ch = (hz[i + 1] - L'0') * 64 + (hz[i + 2] - L'0') * 8 + hz[i + 3] - L'0'; + inner.append(1, ch); + i += 3; + } + } + } + else + { + if (inner.length()) + { + std::wstring trans(L""); + coding_util::utf8_2_unicode(inner.c_str(), got_wstr, &trans); + hz.replace(prev, i - prev, trans); + i = prev + trans.length(); + } + prev = -1; + inner = ""; + } + } + if (inner.length()) + { + std::wstring trans(L""); + coding_util::utf8_2_unicode(inner.c_str(), got_wstr, &trans); + hz.replace(prev, hz.length() - prev, trans); + } + } + static std::wstring now(void) + { + time_t t = time(NULL); + tm* pt = localtime(&t); + wchar_t buf[40] = { 0 }; + + swprintf_s(buf, _countof(buf) - 1, L"%04d-%02d-%02d %02d:%02d:%02d", + pt->tm_year + 1900, pt->tm_mon + 1, pt->tm_mday, pt->tm_hour, pt->tm_min, pt->tm_sec); + + return buf; + } + static std::wstring get_text(HWND wnd) + { + int len = GetWindowTextLengthW(wnd); + wchar_t * buf = new wchar_t[len + 128]; + std::wstring ret(L""); + + len = ::GetWindowTextW(wnd, buf, len + 20); + buf[len] = 0; + ret = buf; + delete[] buf; + + return std::move(ret); + } + static void append_log(const wchar_t* log, HWND edit, bool scroll_last) + { + std::wstring text(std::move(get_text(edit))), cur(now() + L": "), str(log), space(L""); + size_t pos = str.find(L"\r\n"); + + space.append(cur.length() * 2, L' '); + while (pos != std::wstring::npos && pos < str.length() - 2) + { + str.insert(pos + 2, space); + pos = str.find(L"\r\n", pos + space.length() + 2); + } + text += cur + str; + ::SetWindowTextW(edit, text.c_str()); + if (scroll_last) + ::SendMessage(edit, EM_LINESCROLL, 0, ::SendMessageW(edit, EM_GETLINECOUNT, 0, 0)); + else + ::SendMessageW(edit, EM_LINESCROLL, 0, (LPARAM)::GetPropW(edit, L"stop_line")); + } + static std::wstring load_file(const wchar_t* file, int *bom) + { + std::wstring cont(L""); + std::string raw(""); + + file_util::load_file(file, got_str, &raw); + if (raw.empty()) + return false; + if (bom) + *bom = coding_util::bom::is_unicode(raw.c_str(), NULL) ? BOM_UNICODE : (coding_util::bom::is_utf8(raw.c_str()) ? BOM_UTF8 : BOM_ANSI); + coding_util::bom::to_unicode(raw.c_str(), raw.length(), got_wstr, &cont); + + return std::move(cont); + } + static bool save_file(const wchar_t* file, const wchar_t* cont, int bom, std::wstring* bak = NULL) + { + std::string raw(""); + if (bom == BOM_UNICODE) + coding_util::bom::from_unicode(cont, lstrlenW(cont) * 2, got_str, &raw); + else if (bom == BOM_UTF8) + { + std::string utf8(""); + coding_util::unicode_2_utf8(cont, got_str, &utf8); + coding_util::bom::from_utf8(utf8.c_str(), utf8.length(), got_str, &raw); + } + else + coding_util::unicode_2_ansi(cont, got_str, &raw); + + if (bak) + { + *bak = file; + *bak += L".bak"; + file_util::force_copy_file(file, bak->c_str()); + } + + return file_util::save_2_file(raw.c_str(), raw.length(), file) == 0; + } + std::string u2a(const wchar_t* u, bool to_utf8 = false) + { + std::string a(""); + + if (to_utf8) + coding_util::unicode_2_utf8(u, got_str, &a); + else + coding_util::unicode_2_ansi(u, got_str, &a); + + return std::move(a); + } + std::wstring a2u(const char* a, bool from_utf8 = false) + { + std::wstring u(L""); + + if (from_utf8) + coding_util::utf8_2_unicode(a, got_wstr, &u); + else + coding_util::ansi_2_unicode(a, got_wstr, &u); + + return std::move(u); + } + + static std::wstring get_sane_opt_title(const wchar_t* key, const std::wstring& cont) + { + size_t pos = cont.find(key); + std::wstring title(L""); + + while (pos != std::wstring::npos) + { + if (pos) + { + int check = pos - 1; + if (cont[check] == L' ' || cont[check] == L'\t') + { + const wchar_t* l = cont.c_str() + check; + to_line_head(&l); + skip_space(&l); + if (wcsstr(l, L"#define") == l) + { + l += 7; + skip_space(&l); + if (wcsstr(l, key) == l) + { + l += lstrlenW(key); + if (skip_space(&l) && *l++ == L'\"') + { + while (*l != L'\r' && *l != L'\n' && *l != L'\"' && *l != 0) + title.append(1, *l++); + transform_hz(title); + break; + } + } + } + } + } + pos += lstrlenW(key); + pos = cont.find(key, pos); + } + + return std::move(title); + } + static void get_sane_opts(const wchar_t* file, std::vector& opts) + { + std::wstring tf(file), name(L"\r\n"), title(L"\r\n") + , pre_n(L"SANE_STD_OPT_NAME_"), pre_t(L"OPTION_TITLE_"), define(L"#define") + , line(L""), val(L""); + std::string bom(""); + SANEOPT opt; + int off = 0, next = 0; + + STR_PARENT_FOLDER(tf); + tf += L"\\sane_option_definitions.h"; + STR_TO_ABSOLUTE_PATH(tf); + + file_util::load_file(file, got_str, &bom); + if (bom.empty()) + return; + coding_util::bom::to_unicode(bom.c_str(), bom.length(), got_wstr, &name); + erase_multiline_comment(name); + + bom = ""; + file_util::load_file(tf.c_str(), got_str, &bom); + if (bom.empty()) + return; + coding_util::bom::to_unicode(bom.c_str(), bom.length(), got_wstr, &title); + bom = ""; + erase_multiline_comment(title); + + // search ... + coding_util::pick_line(name.c_str(), got_wstr, &line, &next); + while (line.length() || next) + { + size_t pos = line.find(define); + if (pos == 0 && line.length() > define.length() && is_space(line[define.length()])) + { + const wchar_t* str = line.c_str() + define.length(), * bgn = NULL;; + util::skip_space(&str); + if (wcsstr(str, pre_n.c_str()) == str) + { + bgn = str; + str += pre_n.length(); + while (is_var_char(*str, true)) + str++; + opt.name_key = std::wstring(bgn, str - bgn); + if (util::skip_space(&str) && *str++ == L'\"') + { + bgn = str; + while (*str != L'\"') + str++; + opt.name = std::wstring(bgn, str - bgn); + str++; + util::skip_space(&str); + if (wcsstr(str, L"//") == str) + { + str += 2; + util::skip_space(&str); + if (wcsstr(str, pre_t.c_str()) == str) + { + bgn = str; + str += pre_t.length(); + while (is_var_char(*str, true)) + str++; + opt.title_key = std::wstring(bgn, str - bgn); + opt.title = std::move(get_sane_opt_title(opt.title_key.c_str(), title)); + opts.push_back(opt); + } + } + } + } + } + off += next; + line = L""; + coding_util::pick_line(name.c_str() + off, got_wstr, &line, &next); + } + } + + static bool pick_option_id_function(std::wstring& code, int* off = NULL, const wchar_t* api_decl = L"scanner::init_options_id(void)", const wchar_t* ret = L"int") + { + std::wstring api(api_decl); + size_t pos = code.find(api); + const wchar_t* l = NULL; + + while (pos != std::wstring::npos) + { + l = code.c_str() + pos; + to_line_head(&l); + skip_space(&l); + if (wcsstr(l, ret) == l) + { + l += lstrlenW(ret); + if (skip_space(&l)) + { + if (wcsstr(l, api.c_str()) == l) + { + int bgn = 0, end = 0; + + coding_util::pick_value(l, L"{", L"}", &bgn, &end); + if (end > bgn) + { + api = std::wstring(l + bgn, end - bgn + 1); + if (off) + *off = l + bgn - code.c_str(); + code = std::move(api); + return true; + } + } + } + } + pos += api.length(); + pos = code.find(api, pos); + } + + return false; + } + static bool pick_twain_ex_enum(std::wstring& code, int* start = NULL) + { + // enum CapTypeEx : unsigned short { + size_t pos = code.find(L"enum"); + + while (pos != std::wstring::npos) + { + const wchar_t* l = code.c_str() + pos; + to_line_head(&l); + skip_space(&l); + if (wcsstr(l, L"enum") == l) + { + l += 4; + if (skip_space(&l)) + { + if (wcsstr(l, L"CapTypeEx") == l) + { + int bgn = 0, end = 0; + coding_util::pick_value(l, L"{", L"}", &bgn, &end); + if (start) + *start = l + bgn - code.c_str(); + code = std::move(std::wstring(l + bgn, end - bgn + 1)); + + return true; + } + } + } + pos = code.find(L"enum", pos + 4); + } + + return false; + } + static bool get_twain_id(const std::wstring& idtext, std::vector& used) + { + std::wstring pre(L"CAP_EX_SANE_"), line(L""), key(L""); + OPTUSED ou; + int off = 0, next = 0, id = 0x8801; + + coding_util::pick_line(idtext.c_str(), got_wstr, &line, &next); + while (!line.empty() || next) + { + const wchar_t* bgn = line.c_str(), * l = bgn; + skip_space(&l); + if (wcsstr(l, pre.c_str()) == l) + { + l += pre.length(); + bgn = l; + while (is_var_char(*l, true)) + l++; + key = std::wstring(bgn, l - bgn); + ou.id_key = ""; + coding_util::unicode_2_ansi(key.c_str(), got_str, &ou.id_key); + ou.id = id++; + used.push_back(ou); + } + + off += next; + line.clear(); + coding_util::pick_line(idtext.c_str() + off, got_wstr, &line, &next); + } + std::sort(used.begin(), used.end()); + + return true; + } + static void get_used_opts(const wchar_t* file, std::vector& used) + { + std::wstring key(L""), id(L""), idf(file), line(L""), pre_nk(L"SANE_STD_OPT_NAME_"), pre_ik(L"CAP_EX_SANE_"), setoid(L"SET_OPT_ID("); + std::string bom(""); + OPTUSED ou; + int off = 0, next = 0; + + STR_PARENT_FOLDER(idf); + idf += L"\\..\\..\\code_twain\\twain\\twain\\huagaods.cpp"; + STR_TO_ABSOLUTE_PATH(idf); + + file_util::load_file(file, got_str, &bom); + if (bom.empty()) + return; + coding_util::bom::to_unicode(bom.c_str(), bom.length(), got_wstr, &key); + erase_multiline_comment(key); + + bom = ""; + file_util::load_file(idf.c_str(), got_str, &bom); + if (bom.empty()) + return; + coding_util::bom::to_unicode(bom.c_str(), bom.length(), got_wstr, &id); + erase_multiline_comment(id); + get_twain_id(id, used); + + if (!pick_option_id_function(key) || !pick_twain_ex_enum(id)) + return; + + bom = ""; + coding_util::pick_line(key.c_str(), got_wstr, &line, &next); + while (!line.empty() || next > 0) + { + const wchar_t* l = line.c_str(), * bgn = NULL; + skip_space(&l); + if (wcsstr(l, L"else") == l) + { + l += 4; + skip_space(&l); + } + if (wcsstr(l, setoid.c_str()) == l) + { + l += setoid.length(); + bgn = l; + if (is_var_char(*l++, false)) + { + while (is_var_char(*l, true)) + l++; + ou.id_key = ""; + coding_util::unicode_2_ansi(std::wstring(bgn, l - bgn).c_str(), got_str, &ou.id_key); + skip_space(&l); + if (*l++ == L',') + { + skip_space(&l); + bgn = l; + if (is_var_char(*l++, false)) + { + while (is_var_char(*l, true)) + l++; + ou.name_key = std::wstring(bgn, l - bgn); + + std::vector::iterator it = std::find(used.begin(), used.end(), ou.id_key.c_str()); + if (it != used.end()) + it->name_key = std::move(L"SANE_STD_OPT_NAME_" + ou.name_key); + } + } + } + } + + off += next; + line = L""; + coding_util::pick_line(key.c_str() + off, got_wstr, &line, &next); + } + } + + static bool add_2_huagaods_cpp(const wchar_t* file, const SANEOPT& sane, const OPTUSED& twain, std::wstring* msg) + { + int off = 0, next = 0, bom = BOM_ANSI; + std::wstring cont(std::move(load_file(file, &bom))), line(L""), lead(L"CAP_EX_SANE_"); + + if (cont.empty()) + { + if (msg) + *msg = L"File 'huagaods.cpp' is not found or empty."; + return false; + } + + line = cont; + if (pick_twain_ex_enum(line, &off)) + { + size_t pos = line.rfind(L','); + const wchar_t* l = line.c_str() + pos, * bgn = NULL; + + to_line_head(&l); + bgn = ++l; + skip_space(&l); + + std::wstring en(bgn, l - bgn); + + en += lead + a2u(twain.id_key.c_str()) + L",\t\t// " + now() + L" " + sane.title; + lead = line; + lead.insert(pos + 1, L"\r\n" + en); + cont.replace(off, line.length(), lead); + + line = cont; + if (pick_option_id_function(line, &off, L"huagao_ds::init_support_caps_ex(void)", L"void")) + { + pos = line.rfind(L';'); + l = line.c_str() + pos; + to_line_head(&l); + l++; + bgn = l; + skip_space(&l); + en = std::wstring(bgn, l - bgn); + en += L"ADD_SANE_CAP("; + en += a2u(twain.id_key.c_str()); + en += L");\r\n"; + lead = line + en; + cont.replace(off, line.length(), lead); + + if (save_file(file, cont.c_str(), bom, &line)) + { + if (msg) + *msg += std::wstring(L"Changed: ") + file + L"\r\n"; + return true; + } + else if (msg) + *msg = L"Failed to save changes into file 'huagaods.cpp'."; + + if (file_util::is_file_existing(line.c_str())) + file_util::force_move_file(line.c_str(), file); + } + else if (msg) + { + *msg = L"Failed to find function 'huagao_ds::init_support_caps_ex(void)' in huagaods.cpp."; + } + } + else if (msg) + { + *msg = L"Failed to find 'enum CapTypeEx' in huagaods.cpp."; + } + + return false; + } + static bool add_2_scanner_codes(const wchar_t* cpp, const SANEOPT& sane, const OPTUSED& twain, std::wstring* msg) + { + int bom_c = BOM_ANSI, bom_h = BOM_ANSI; + std::wstring hf(cpp), code_c(load_file(cpp, &bom_c)), code_h(L""), tag(L"// SANE options ID ..."), val(L""), hbak(L""), cbak(L""); + size_t pos = hf.rfind(L'.'); + const wchar_t *l = NULL, *bgn = NULL; + + if (code_c.empty()) + { + if (msg) + *msg = std::wstring(L"File '") + cpp + L"' is not found or empty."; + return false; + } + + hf.erase(pos); + hf += L".h"; + code_h = std::move(load_file(hf.c_str(), &bom_h)); + if (code_h.empty()) + { + if (msg) + *msg = std::wstring(L"File '") + hf + L"' is not found or empty."; + return false; + } + + pos = code_h.find(tag); + if (pos == std::wstring::npos) + { + if (msg) + *msg = L"Cannot find tag '" + tag + L"' in file " + hf; + return false; + } + + bgn = l = code_h.c_str() + pos; + to_line_head(&bgn); + bgn++; + val = L"\r\n" + std::wstring(bgn, l - bgn) + L"SANE_OPTION_ID(" + a2u(twain.id_key.c_str()) + L");"; + code_h.insert(pos + tag.length(), val + L"\t\t// " + now() + L" " + sane.title); + if (save_file(hf.c_str(), code_h.c_str(), bom_h, &hbak)) + { + code_h.clear(); + + pos = code_c.find(L"SANE_OPTION_ID_IMPLEMENT("); + if (pos != std::wstring::npos) + { + int off = 0; + + val = L"SANE_OPTION_ID_IMPLEMENT(" + a2u(twain.id_key.c_str()) + L")\r\n"; + code_c.insert(pos, val); + code_h = code_c; + if (pick_option_id_function(code_h, &off)) + { + pos = code_h.find(L"op_id++;"); + if (pos != std::wstring::npos) + { + l = bgn = code_h.c_str() + pos; + to_line_head(&bgn); + bgn++; + tag = sane.name_key; + if (tag.find(L"SANE_STD_OPT_NAME_") == 0) + tag.erase(0, lstrlenW(L"SANE_STD_OPT_NAME_")); + val = std::wstring(bgn, l - bgn) + L"else SET_OPT_ID(" + a2u(twain.id_key.c_str()) + L", " + tag + L", extension_none)\r\n"; + off += bgn - code_h.c_str(); + code_c.insert(off, val); + if (save_file(cpp, code_c.c_str(), bom_c, &cbak)) + { + std::wstring s2t(hf); + + STR_PARENT_FOLDER(s2t); + s2t += L"\\s2t_api.h"; + code_h = std::move(load_file(s2t.c_str(), &bom_h)); + if (!code_h.empty()) + { + tag = L"// SANE options ID ..."; + pos = code_h.find(tag); + if (pos == std::wstring::npos) + { + if (msg) + *msg = L"Cannot find tag '// SANE options ID ...' in file " + s2t; + return false; + } + bgn = l = code_h.c_str() + pos; + to_line_head(&bgn); + bgn++; + val = L"\r\n" + std::wstring(bgn, l - bgn) + L"SANE_OPTION_ID_API(" + a2u(twain.id_key.c_str()) + L");"; + code_h.insert(pos + tag.length(), val + L"\t\t// " + now() + L" " + sane.title); + + if (save_file(s2t.c_str(), code_h.c_str(), bom_h, &val)) + { + if (msg) + *msg += std::wstring(L"Changed: ") + hf + L"\r\n" + L"Changed: " + cpp + L"\r\nChanged: " + s2t + L"\r\n"; + return true; + } + else if (msg) + *msg = L"Failed to save changes into file: " + s2t; + if (file_util::is_file_existing(val.c_str())) + file_util::force_move_file(val.c_str(), s2t.c_str()); + } + else if (msg) + *msg = std::wstring(L"File '") + s2t + L"' is not found or empty."; + } + else if (msg) + { + *msg = L"Failed to save changes into file: " + std::wstring(cpp); + } + + if (file_util::is_file_existing(cbak.c_str())) + file_util::force_move_file(cbak.c_str(), cpp); + } + else if (msg) + { + *msg = L"Failed to find function 'scanner::init_options_id(void) - op_id++' in file: " + std::wstring(cpp); + } + } + else if (msg) + { + *msg = L"Failed to find function 'scanner::init_options_id(void)' in file: " + std::wstring(cpp); + } + } + else if (msg) + { + *msg = L"Failed to find 'SANE_OPTION_ID_IMPLEMENT' in file: " + std::wstring(cpp); + } + } + else if (msg) + { + *msg = L"Failed to save changes into file: " + hf; + } + + if (file_util::is_file_existing(hbak.c_str())) + file_util::force_move_file(hbak.c_str(), hf.c_str()); + + return false; + } +} + +// CDlgTwain dialog + +IMPLEMENT_DYNAMIC(CDlgTwain, CDialogEx) + +CDlgTwain::CDlgTwain(CWnd* pParent /*=NULL*/) + : CDialogEx(CDlgTwain::IDD, pParent) +{ + +} + +CDlgTwain::~CDlgTwain() +{ +} + +void CDlgTwain::DoDataExchange(CDataExchange* pDX) +{ + CDialogEx::DoDataExchange(pDX); + DDX_Control(pDX, IDC_COMBO1, sane_); +} +BOOL CDlgTwain::OnInitDialog() +{ + CDialogEx::OnInitDialog(); + + // Set the icon for this dialog. The framework does this automatically + // when the application's main window is not a dialog + + return TRUE; // return TRUE unless you set the focus to a control +} +void CDlgTwain::on_sln_path_changed(void) +{ + GetDlgItem(IDC_BUTTON_BROWSE)->EnableWindow(FALSE); + GetDlgItem(IDC_BUTTON_ADD)->EnableWindow(FALSE); + GetDlgItem(IDC_COMBO1)->EnableWindow(FALSE); + + util::append_log(L"parsing SANE attributes ...\r\n", GetDlgItem(IDC_EDIT2)->m_hWnd, true); + sane_.ResetContent(); + + std::wstring path(util::get_text(GetDlgItem(IDC_EDIT1)->m_hWnd)); + + opts_.clear(); + used_.clear(); + + STR_PARENT_FOLDER(path); + path += L"\\..\\..\\"; + STR_TO_ABSOLUTE_PATH(path); + root_ = path; + util::get_sane_opts((path + L"sdk\\include\\sane\\sane_ex.h").c_str(), opts_); + if (opts_.size() == 0) + { + ::MessageBoxW(m_hWnd, L"ûҵSANEԶ塣", L"", MB_OK | MB_ICONSTOP); + return; + } + for (auto& v : opts_) + sane_.AddString((v.title + L" (" + v.name + L")").c_str()); + + GetDlgItem(IDC_BUTTON_BROWSE)->EnableWindow(TRUE); + GetDlgItem(IDC_COMBO1)->EnableWindow(TRUE); + GetDlgItem(IDC_BUTTON_ADD)->EnableWindow(TRUE); + util::append_log((L"Found " + std::to_wstring(opts_.size()) + L" options\r\n").c_str(), GetDlgItem(IDC_EDIT2)->m_hWnd, true); + + // find used ... + util::get_used_opts((path + L"code_twain\\sane\\scanner.cpp").c_str(), used_); +} +void CDlgTwain::synchronize_opt(const SANEOPT& opt) +{ + OPTUSED ou; + std::wstring pre(L"SANE_STD_OPT_NAME_"), key(L""), msg(L""); + + if (used_.size()) + ou.id = used_[used_.size() - 1].id + 1; + else + ou.id = 0x8801; + + ou.name_key = opt.name_key; + if (ou.name_key.find(pre) == 0) + key = ou.name_key.substr(pre.length()); + else + key = ou.name_key; + std::transform(key.begin(), key.end(), key.begin(), tolower); + coding_util::unicode_2_ansi(key.c_str(), util::got_str, &ou.id_key); + + std::vector::iterator it = std::find(used_.begin(), used_.end(), ou.id_key.c_str()); + if (it != used_.end()) + { + ::MessageBoxW(m_hWnd, (opt.title + L" already synchronized into TWAIN.").c_str(), L"Error", MB_OK | MB_ICONINFORMATION); + return; + } + + if (util::add_2_huagaods_cpp((root_ + L"code_twain\\twain\\twain\\huagaods.cpp").c_str(), opt, ou, &msg) && + util::add_2_scanner_codes((root_ + L"code_twain\\sane\\scanner.cpp").c_str(), opt, ou, &msg)) + { + used_.push_back(ou); + + std::wstring tips(L"Added New TWAIN extended ATTR: CAP_EX_SANE_"); + wchar_t hex[40] = { 0 }; + + coding_util::ansi_2_unicode(ou.id_key.c_str(), util::got_wstr, &tips); + swprintf_s(hex, _countof(hex) - 1, L" (ID: 0x%04x) - ", ou.id); + tips += hex + opt.title + L"\r\n"; + util::append_log(tips.c_str(), GetDlgItem(IDC_EDIT2)->m_hWnd, true); + } + util::append_log(msg.c_str(), GetDlgItem(IDC_EDIT2)->m_hWnd, true); +} + +BEGIN_MESSAGE_MAP(CDlgTwain, CDialogEx) + ON_BN_CLICKED(IDC_BUTTON_BROWSE, &CDlgTwain::OnBnClickedButtonBrowse) + ON_BN_CLICKED(IDC_BUTTON_ADD, &CDlgTwain::OnBnClickedButtonAdd) +END_MESSAGE_MAP() + + +// CDlgTwain message handlers + + + +void CDlgTwain::OnBnClickedButtonBrowse() +{ + // TODO: ڴӿؼ֪ͨ + file_util::PATHFILE path = { 0 }; + + if (file_util::browser_file(m_hWnd, &path, L"Solution File(*.sln)\0\0")) + { + ::SetDlgItemTextW(m_hWnd, IDC_EDIT1, path.path); + on_sln_path_changed(); + } +} + + +void CDlgTwain::OnBnClickedButtonAdd() +{ + // TODO: ڴӿؼ֪ͨ + std::wstring text(util::get_text(sane_.m_hWnd)); + std::string ansi(""); + size_t pos = text.rfind(L'('); + + if (pos++ == std::wstring::npos) + { + ::MessageBoxW(m_hWnd, L"Invalid option name! (lost '()')", L"Error", MB_OK | MB_ICONSTOP); + return; + } + text.erase(0, pos); + pos = text.find(L")"); + if (pos != std::wstring::npos) + text.erase(pos); + if (text.empty()) + { + ::MessageBoxW(m_hWnd, L"Invalid option name! (empty)", L"Error", MB_OK | MB_ICONSTOP); + return; + } + + coding_util::unicode_2_ansi(text.c_str(), util::got_str, &ansi); + + pos = sane_.GetCurSel(); + synchronize_opt(opts_[pos]); +} diff --git a/pc/code_twain/sln/hgjson/DlgTwain.h b/pc/code_twain/sln/hgjson/DlgTwain.h new file mode 100644 index 0000000..c32be1c --- /dev/null +++ b/pc/code_twain/sln/hgjson/DlgTwain.h @@ -0,0 +1,66 @@ +#pragma once + + +// CDlgTwain dialog +#include +#include + + +typedef struct _san_opt +{ + std::wstring name_key; + std::wstring name; + std::wstring title_key; + std::wstring title; +}SANEOPT; +typedef struct _opt_used +{ + std::wstring name_key; // same as SANEOPT::name_key + std::string id_key; + int id; // ID of CAP_SANE_EX_xxx + + bool operator==(const wchar_t* key) + { + return name_key == key; + } + bool operator==(const char* key) + { + return id_key == key; + } + bool operator==(const int eid) + { + return eid == id; + } + bool operator<(const struct _opt_used& r) + { + return id < r.id; + } +}OPTUSED; + +class CDlgTwain : public CDialogEx +{ + DECLARE_DYNAMIC(CDlgTwain) + +public: + CDlgTwain(CWnd* pParent = NULL); // standard constructor + virtual ~CDlgTwain(); + +// Dialog Data + enum { IDD = IDD_ADD_TWAIN_ATTR }; + + std::vector opts_; + std::vector used_; + std::wstring root_; + +protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + virtual BOOL OnInitDialog(); + void on_sln_path_changed(void); + void synchronize_opt(const SANEOPT& opt); + + DECLARE_MESSAGE_MAP() +public: + afx_msg void OnBnClickedButtonBrowse(); + afx_msg void OnBnClickedButtonAdd(); + CComboBox sane_; +}; diff --git a/pc/code_twain/sln/hgjson/ReadMe.txt b/pc/code_twain/sln/hgjson/ReadMe.txt new file mode 100644 index 0000000..4c8675c --- /dev/null +++ b/pc/code_twain/sln/hgjson/ReadMe.txt @@ -0,0 +1,99 @@ +================================================================================ + MICROSOFT FOUNDATION CLASS LIBRARY : hgjson Project Overview +=============================================================================== + +The application wizard has created this hgjson application for +you. This application not only demonstrates the basics of using the Microsoft +Foundation Classes but is also a starting point for writing your application. + +This file contains a summary of what you will find in each of the files that +make up your hgjson application. + +hgjson.vcxproj + This is the main project file for VC++ projects generated using an application wizard. + It contains information about the version of Visual C++ that generated the file, and + information about the platforms, configurations, and project features selected with the + application wizard. + +hgjson.vcxproj.filters + This is the filters file for VC++ projects generated using an Application Wizard. + It contains information about the association between the files in your project + and the filters. This association is used in the IDE to show grouping of files with + similar extensions under a specific node (for e.g. ".cpp" files are associated with the + "Source Files" filter). + +hgjson.h + This is the main header file for the application. It includes other + project specific headers (including Resource.h) and declares the + ChgjsonApp application class. + +hgjson.cpp + This is the main application source file that contains the application + class ChgjsonApp. + +hgjson.rc + This is a listing of all of the Microsoft Windows resources that the + program uses. It includes the icons, bitmaps, and cursors that are stored + in the RES subdirectory. This file can be directly edited in Microsoft + Visual C++. Your project resources are in 1033. + +res\hgjson.ico + This is an icon file, which is used as the application's icon. This + icon is included by the main resource file hgjson.rc. + +res\hgjson.rc2 + This file contains resources that are not edited by Microsoft + Visual C++. You should place all resources not editable by + the resource editor in this file. + + +///////////////////////////////////////////////////////////////////////////// + +The application wizard creates one dialog class: + +hgjsonDlg.h, hgjsonDlg.cpp - the dialog + These files contain your ChgjsonDlg class. This class defines + the behavior of your application's main dialog. The dialog's template is + in hgjson.rc, which can be edited in Microsoft Visual C++. + +///////////////////////////////////////////////////////////////////////////// + +Other Features: + +ActiveX Controls + The application includes support to use ActiveX controls. + +///////////////////////////////////////////////////////////////////////////// + +Other standard files: + +StdAfx.h, StdAfx.cpp + These files are used to build a precompiled header (PCH) file + named hgjson.pch and a precompiled types file named StdAfx.obj. + +Resource.h + This is the standard header file, which defines new resource IDs. + Microsoft Visual C++ reads and updates this file. + +hgjson.manifest + Application manifest files are used by Windows XP to describe an applications + dependency on specific versions of Side-by-Side assemblies. The loader uses this + information to load the appropriate assembly from the assembly cache or private + from the application. The Application manifest maybe included for redistribution + as an external .manifest file that is installed in the same folder as the application + executable or it may be included in the executable in the form of a resource. +///////////////////////////////////////////////////////////////////////////// + +Other notes: + +The application wizard uses "TODO:" to indicate parts of the source code you +should add to or customize. + +If your application uses MFC in a shared DLL, you will need +to redistribute the MFC DLLs. If your application is in a language +other than the operating system's locale, you will also have to +redistribute the corresponding localized resources mfc110XXX.DLL. +For more information on both of these topics, please see the section on +redistributing Visual C++ applications in MSDN documentation. + +///////////////////////////////////////////////////////////////////////////// diff --git a/pc/code_twain/sln/hgjson/hgjson.cpp b/pc/code_twain/sln/hgjson/hgjson.cpp new file mode 100644 index 0000000..3c60e09 --- /dev/null +++ b/pc/code_twain/sln/hgjson/hgjson.cpp @@ -0,0 +1,103 @@ + +// hgjson.cpp : Defines the class behaviors for the application. +// + +#include "stdafx.h" +#include "hgjson.h" +#include "CDlgMain.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#endif + + +// ChgjsonApp + +BEGIN_MESSAGE_MAP(ChgjsonApp, CWinApp) + ON_COMMAND(ID_HELP, &CWinApp::OnHelp) +END_MESSAGE_MAP() + + +// ChgjsonApp construction + +ChgjsonApp::ChgjsonApp() +{ + // support Restart Manager + m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART; + + // TODO: add construction code here, + // Place all significant initialization in InitInstance +} + + +// The one and only ChgjsonApp object + +ChgjsonApp theApp; + + +// ChgjsonApp initialization + +BOOL ChgjsonApp::InitInstance() +{ + AfxOleInit(); + // InitCommonControlsEx() is required on Windows XP if an application + // manifest specifies use of ComCtl32.dll version 6 or later to enable + // visual styles. Otherwise, any window creation will fail. + INITCOMMONCONTROLSEX InitCtrls; + InitCtrls.dwSize = sizeof(InitCtrls); + // Set this to include all the common control classes you want to use + // in your application. + InitCtrls.dwICC = ICC_WIN95_CLASSES; + InitCommonControlsEx(&InitCtrls); + + CWinApp::InitInstance(); + + + AfxEnableControlContainer(); + + // Create the shell manager, in case the dialog contains + // any shell tree view or shell list view controls. + CShellManager *pShellManager = new CShellManager; + + // Activate "Windows Native" visual manager for enabling themes in MFC controls + CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows)); + + // Standard initialization + // If you are not using these features and wish to reduce the size + // of your final executable, you should remove from the following + // the specific initialization routines you do not need + // Change the registry key under which our settings are stored + // TODO: You should modify this string to be something appropriate + // such as the name of your company or organization + SetRegistryKey(_T("Local AppWizard-Generated Applications")); + + CDlgMain dlg; + m_pMainWnd = &dlg; + INT_PTR nResponse = dlg.DoModal(); + if (nResponse == IDOK) + { + // TODO: Place code here to handle when the dialog is + // dismissed with OK + } + else if (nResponse == IDCANCEL) + { + // TODO: Place code here to handle when the dialog is + // dismissed with Cancel + } + else if (nResponse == -1) + { + TRACE(traceAppMsg, 0, "Warning: dialog creation failed, so application is terminating unexpectedly.\n"); + TRACE(traceAppMsg, 0, "Warning: if you are using MFC controls on the dialog, you cannot #define _AFX_NO_MFC_CONTROLS_IN_DIALOGS.\n"); + } + + // Delete the shell manager created above. + if (pShellManager != NULL) + { + delete pShellManager; + } + + // Since the dialog has been closed, return FALSE so that we exit the + // application, rather than start the application's message pump. + return FALSE; +} + diff --git a/pc/code_twain/sln/hgjson/hgjson.h b/pc/code_twain/sln/hgjson/hgjson.h new file mode 100644 index 0000000..1a26657 --- /dev/null +++ b/pc/code_twain/sln/hgjson/hgjson.h @@ -0,0 +1,32 @@ + +// hgjson.h : main header file for the PROJECT_NAME application +// + +#pragma once + +#ifndef __AFXWIN_H__ + #error "include 'stdafx.h' before including this file for PCH" +#endif + +#include "resource.h" // main symbols + + +// ChgjsonApp: +// See hgjson.cpp for the implementation of this class +// + +class ChgjsonApp : public CWinApp +{ +public: + ChgjsonApp(); + +// Overrides +public: + virtual BOOL InitInstance(); + +// Implementation + + DECLARE_MESSAGE_MAP() +}; + +extern ChgjsonApp theApp; \ No newline at end of file diff --git a/pc/code_twain/sln/hgjson/hgjson.rc b/pc/code_twain/sln/hgjson/hgjson.rc new file mode 100644 index 0000000000000000000000000000000000000000..c776e7f445791de5cc69d0c778957ca06d31bf17 GIT binary patch literal 55042 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 f>gWO4mX`hxTr|@C literal 0 HcmV?d00001 diff --git a/pc/code_twain/sln/hgjson/hgjson.vcxproj b/pc/code_twain/sln/hgjson/hgjson.vcxproj new file mode 100644 index 0000000..54e517d --- /dev/null +++ b/pc/code_twain/sln/hgjson/hgjson.vcxproj @@ -0,0 +1,166 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {D3579C48-F5AB-4F15-9B49-A2970FBA76C5} + hgjson + MFCProj + 10.0 + + + + Application + true + v142 + Unicode + Dynamic + + + Application + false + v142 + true + Unicode + Dynamic + + + + + + + + + + + + + true + $(ProjectDir)..\..\sdk\Include\;$(ProjectDir)..\..\..\..\sdk\Include\;$(IncludePath) + $(ProjectDir)..\..\sdk\lib\;$(LibraryPath) + $(OutDir)$(ProjectName)\ + $(ProjectDir)..\..\solution\$(Configuration)\ + + + false + $(ProjectDir)..\..\sdk\Include\;$(ProjectDir)..\..\..\..\sdk\Include\;$(IncludePath) + $(ProjectDir)..\..\sdk\lib\;$(LibraryPath) + $(OutDir)$(ProjectName)\ + $(ProjectDir)..\..\solution\$(Configuration)\ + + + + Use + Level3 + Disabled + WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions) + true + 4996 + + + Windows + true + + + false + true + _DEBUG;%(PreprocessorDefinitions) + + + 0x0409 + _DEBUG;%(PreprocessorDefinitions) + $(IntDir);%(AdditionalIncludeDirectories) + + + + + Level3 + Use + MaxSpeed + true + true + WIN32;_WINDOWS;NDEBUG;%(PreprocessorDefinitions) + true + 4996 + + + Windows + true + true + true + + + false + true + NDEBUG;%(PreprocessorDefinitions) + + + 0x0409 + NDEBUG;%(PreprocessorDefinitions) + $(IntDir);%(AdditionalIncludeDirectories) + + + + + + + + + + + + + + + + + + + + + + + NotUsing + NotUsing + + + + + + + + + + + + Create + Create + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pc/code_twain/sln/hgjson/hgjson.vcxproj.filters b/pc/code_twain/sln/hgjson/hgjson.vcxproj.filters new file mode 100644 index 0000000..345a314 --- /dev/null +++ b/pc/code_twain/sln/hgjson/hgjson.vcxproj.filters @@ -0,0 +1,114 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Resource Files + + + + + Resource Files + + + + + Resource Files + + + Resource Files + + + \ No newline at end of file diff --git a/pc/code_twain/sln/hgjson/hgjsonDlg.cpp b/pc/code_twain/sln/hgjson/hgjsonDlg.cpp new file mode 100644 index 0000000..6f26202 --- /dev/null +++ b/pc/code_twain/sln/hgjson/hgjsonDlg.cpp @@ -0,0 +1,8370 @@ + +// hgjsonDlg.cpp : implementation file +// + +#include "stdafx.h" +#include "hgjson.h" +#include "hgjsonDlg.h" +#include "afxdialogex.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#endif +#pragma warning(disable: 4996) + +#include "DlgInput.h" + +#include +#include +#include +#include +#include +#include "../../../../code_device/hgdriver/hgdev/scanner_setting.h" + +#define TREE_ITEM_PRODUCT MAKELONG(MAKEWORD('P', 'R'), MAKEWORD('D', 'T')) +#define TREE_ITEM_GROUP MAKELONG(MAKEWORD('G', 'R'), MAKEWORD('U', 'P')) +#define TREE_ITEM_CONFIG MAKELONG(MAKEWORD('I', 'T'), MAKEWORD('E', 'M')) + +#define OPT_TITLE_PREFIX L"OPTION_TITLE_" // + py +#define OPT_VALUE_PREFIX L"OPTION_VALUE_" // + title_py + py + +////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// sane data types: + +const wchar_t* g_opt_unit_name[] = { // according to SANE_Unit + L"None", + L"Pixel", + L"Bit", + L"Millimeters", + L"DPI", + L"Percent", + L"Microsecond" +}; +const wchar_t* g_opt_field[] = { + L"Common", + L"ImageProc", + L"Hardware" +}; +static const wchar_t* unit_name(int ind) +{ + if (ind < 0 || ind >= _countof(g_opt_unit_name)) + ind = 0; + + return g_opt_unit_name[ind]; +} +static int unit_index(const wchar_t* name) +{ + for (int i = 0; i < _countof(g_opt_unit_name); ++i) + { + if (wcsicmp(name, g_opt_unit_name[i]) == 0) + return i; + } + + return 0; +} +static const wchar_t* field_name(int ind) +{ + if (ind < 0 || ind >= _countof(g_opt_field)) + ind = 0; + + return g_opt_field[ind]; +} +static int field_index(const wchar_t* name) +{ + for (int i = 0; i < _countof(g_opt_field); ++i) + { + if (wcsicmp(name, g_opt_field[i]) == 0) + return i; + } + + return 0; +} + +namespace coding +{ + INTER_MODULE_CALLBACK(get_string) + { + *((std::string*)param) += std::string(data, len); + + return inter_module_data::SET_RESULT_CONTINUE; + } + INTER_MODULE_CALLBACK(get_wstring) + { + *((std::wstring*)param) += std::wstring((const wchar_t*)data, len / 2); + + return inter_module_data::SET_RESULT_CONTINUE; + } + typedef struct _clp_d + { + bool file; + std::wstring cont; + }CLPD, *LPCLPD; + INTER_MODULE_CALLBACK(get_clipboard_content) + { + LPCLPD pclpd = (LPCLPD)param; + + if (total == CF_TEXT) + { + coding_util::ansi_2_unicode(data, get_wstring, &pclpd->cont); + pclpd->file = false; + } + else if (total == CF_UNICODETEXT) + { + pclpd->cont = std::wstring((const wchar_t*)data, len / 2); + pclpd->file = false; + } + else if (total == CF_HDROP) + { + pclpd->cont = std::wstring((const wchar_t*)data, len / 2); + pclpd->file = true; + } + + return inter_module_data::SET_RESULT_STOP; + } + std::wstring name_from_depend_exp(const std::wstring& depend_exp) + { + std::wstring name(L""); + size_t pos = depend_exp.find(L"="); + + if (pos == std::wstring::npos) + { + pos = depend_exp.find(L"!"); + if (pos == std::wstring::npos) + { + pos = depend_exp.find(L">"); + if (pos == std::wstring::npos) + { + pos = depend_exp.find(L"<"); + } + } + } + if (pos != std::wstring::npos) + { + name = depend_exp.substr(0, pos); + } + + return std::move(name); + } + + int string_need_bytes(const wchar_t* str) + { + int len = lstrlenW(str) * 3; + + len += 15; + len /= 8; + len *= 8; + + return len; + } + + std::string u2a(const wchar_t* u) + { + std::string a(""); + + coding_util::unicode_2_ansi(u, get_string, &a); + + return a; + } + std::string u2utf8(const wchar_t* u) + { + std::string a(""); + + coding_util::unicode_2_utf8(u, get_string, &a); + + return a; + } + std::wstring a2u(const char* a) + { + std::wstring u(L""); + + coding_util::ansi_2_unicode(a, get_wstring, &u); + + return u; + } + std::wstring utf82u(const char* utf8) + { + std::wstring u(L""); + + coding_util::utf8_2_unicode(utf8, get_wstring, &u); + + return u; + } + + // Base;Light;ImageProcess;Feeder; + static const wchar_t* group_name_[] = {L"none", L"base", L"light", L"imgproc", L"feeder"}; + const wchar_t* group_name(int ind) + { + if (ind >= 0 && ind < _countof(group_name_)) + return group_name_[ind]; + else + return group_name_[0]; + } + int group_index(const wchar_t* name) + { + for (int i = 0; i < _countof(group_name_); ++i) + { + if (wcsicmp(name, group_name_[i]) == 0) + return i; + } + + const wchar_t* hz_grp[] = { L"\u57FA\u672C\u8BBE\u7F6E", L"\u4EAE\u5EA6", L"\u56FE\u50CF\u5904\u7406", L"\u9001\u7EB8\u65B9\u5F0F\u8BBE\u7F6E" }; + for (int i = 0; i < _countof(hz_grp); ++i) + { + if (wcsicmp(name, hz_grp[i]) == 0) + return i + 1; + } + + return 0; + } +} + +namespace hz_2_py +{ + std::string findLetter(int nCode) + { + std::string strValue; + switch (nCode) + { + case 6325: + case 6436: + case 7571: + case 7925: + strValue = "A"; + break; + case 6263: + case 6440: + case 7040: + case 7208: + case 7451: + case 7733: + case 7945: + case 8616: + strValue = "AI"; + break; + case 5847: + case 5991: + case 6278: + case 6577: + case 6654: + case 7281: + case 7907: + case 8038: + case 8786: + strValue = "AN"; + break; + strValue = "ANG"; + break; + case 5974: + case 6254: + case 6427: + case 6514: + case 6658: + case 6959: + case 7033: + case 7081: + case 7365: + case 8190: + case 8292: + case 8643: + case 8701: + case 8773: + strValue = "AO"; + break; + case 6056: + case 6135: + case 6517: + case 7857: + case 8446: + case 8649: + case 8741: + strValue = "BA"; + break; + case 6267: + case 6334: + case 7494: + strValue = "BAI"; + break; + case 5870: + case 5964: + case 7851: + case 8103: + case 8113: + case 8418: + strValue = "BAN"; + break; + case 6182: + case 6826: + strValue = "BANG"; + break; + case 6165: + case 7063: + case 7650: + case 8017: + case 8157: + case 8532: + case 8621: + strValue = "BAO"; + break; + case 5635: + case 5873: + case 5893: + case 5993: + case 6141: + case 6703: + case 7753: + case 8039: + case 8156: + case 8645: + case 8725: + strValue = "BEI"; + break; + case 5946: + case 5948: + case 7458: + case 7928: + strValue = "BEN"; + break; + case 6452: + case 7420: + strValue = "BENG"; + break; + case 5616: + case 5734: + case 6074: + case 6109: + case 6221: + case 6333: + case 6357: + case 6589: + case 6656: + case 6725: + case 6868: + case 6908: + case 6986: + case 6994: + case 7030: + case 7052: + case 7221: + case 7815: + case 7873: + case 7985: + case 8152: + case 8357: + case 8375: + case 8387: + case 8416: + case 8437: + case 8547: + case 8734: + strValue = "BI"; + break; + case 5650: + case 5945: + case 6048: + case 6677: + case 6774: + case 7134: + case 7614: + case 7652: + case 7730: + case 7760: + case 8125: + case 8159: + case 8289: + case 8354: + case 8693: + strValue = "BIAN"; + break; + case 7027: + case 7084: + case 7609: + case 7613: + case 7958: + case 7980: + case 8106: + case 8149: + case 8707: + case 8752: + strValue = "BIAO"; + break; + case 8531: + strValue = "BIE"; + break; + case 5747: + case 6557: + case 7145: + case 7167: + case 7336: + case 7375: + case 7587: + case 7957: + case 8738: + case 8762: + strValue = "BIN"; + break; + case 5787: + case 5891: + case 6280: + strValue = "BING"; + break; + case 5781: + case 6403: + case 6636: + case 7362: + case 7502: + case 7771: + case 7864: + case 8030: + case 8404: + case 8543: + case 8559: + strValue = "BO"; + break; + case 6318: + case 6945: + case 7419: + case 7446: + case 7848: + case 7863: + case 8519: + strValue = "BU"; + break; + case 6474: + case 7769: + strValue = "CA"; + break; + strValue = "CAI"; + break; + case 6978: + case 7078: + case 7218: + case 8451: + case 8785: + strValue = "CAN"; + break; + case 5687: + strValue = "CANG"; + break; + case 6448: + case 6878: + case 8309: + case 8429: + strValue = "CAO"; + break; + case 6692: + strValue = "CE"; + break; + case 6515: + case 6825: + strValue = "CEN"; + break; + case 6465: + strValue = "CENG"; + break; + case 6639: + case 6766: + case 7017: + case 7230: + case 7311: + case 7322: + case 7363: + case 7942: + case 7979: + case 8135: + strValue = "CHA"; + break; + case 5713: + case 7846: + case 8091: + case 8218: + strValue = "CHAI"; + break; + case 5770: + case 5838: + case 6159: + case 6667: + case 6893: + case 6904: + case 6981: + case 7031: + case 7086: + case 7472: + case 7688: + case 7966: + case 8324: + case 8580: + strValue = "CHAN"; + break; + case 5686: + case 5943: + case 6041: + case 6137: + case 6660: + case 6568: + case 6749: + case 7029: + case 7047: + case 7438: + case 7509: + case 8680: + strValue = "CHANG"; + break; + case 6687: + case 7443: + case 8173: + strValue = "CHAO"; + break; + case 5969: + case 7726: + strValue = "CHE"; + break; + case 5840: + case 5863: + case 6251: + case 6433: + case 6923: + case 7201: + case 7320: + case 7755: + case 8619: + strValue = "CHEN"; + break; + case 5609: + case 5984: + case 7239: + case 7263: + case 7583: + case 7810: + case 7881: + case 7905: + case 8146: + case 8241: + case 8508: + strValue = "CHENG"; + break; + case 5749: + case 6015: + case 6061: + case 6319: + case 6374: + case 6420: + case 6445: + case 6633: + case 7042: + case 7523: + case 7787: + case 8023: + case 8101: + case 8161: + case 8231: + case 8304: + case 8355: + case 8388: + case 8489: + case 8556: + case 8746: + strValue = "CHI"; + break; + case 6091: + case 6671: + case 6731: + case 8409: + case 8430: + strValue = "CHONG"; + break; + case 5717: + case 6492: + case 6716: + case 8112: + case 8637: + strValue = "CHOU"; + break; + case 5601: + case 5927: + case 6680: + case 6732: + case 7109: + case 7238: + case 7290: + case 7343: + case 8150: + case 8260: + case 8573: + case 8777: + strValue = "CHU"; + break; + case 6285: + case 6408: + case 7590: + case 8563: + strValue = "CHUAI"; + break; + case 6622: + case 6955: + case 7516: + case 7843: + case 8413: + strValue = "CHUAN"; + break; + case 6675: + strValue = "CHUANG"; + break; + case 5879: + case 7302: + case 7319: + strValue = "CHUI"; + break; + case 6127: + case 8040: + case 8277: + strValue = "CHUN"; + break; + case 7401: + case 8554: + case 8626: + strValue = "CHUO"; + break; + strValue = "CI"; + break; + case 6075: + case 6358: + case 7684: + case 8043: + case 8457: + strValue = "4337 "; + break; + case 6042: + case 6840: + case 7085: + case 7193: + case 7214: + case 7240: + strValue = "CONG"; + break; + case 7308: + case 7403: + case 7577: + strValue = "COU"; + break; + case 6180: + case 6562: + case 6607: + case 7367: + case 8501: + case 8530: + case 8577: + strValue = "CU"; + break; + case 5764: + case 6305: + case 7664: + case 7973: + strValue = "CUAN"; + break; + case 6718: + case 6145: + case 6393: + case 7213: + case 7333: + case 7505: + case 8631: + strValue = "CUI"; + break; + case 6666: + case 8169: + strValue = "CUN"; + break; + case 5640: + case 6547: + case 7566: + case 7917: + case 7983: + case 8078: + case 8526: + case 8567: + strValue = "CUO"; + break; + case 6239: + case 6353: + case 6410: + case 6682: + case 7007: + case 8155: + case 8346: + case 8716: + case 8718: + strValue = "DA"; + break; + case 6004: + case 6316: + case 6523: + case 6942: + case 7110: + case 7173: + case 8776: + strValue = "DAI"; + break; + case 5757: + case 6144: + case 6402: + case 7373: + case 7470: + case 7781: + case 8067: + case 8087: + case 8185: + case 8376: + strValue = "DAN"; + break; + case 5852: + case 5942: + case 6148: + case 6920: + case 7724: + case 7885: + case 8141: + strValue = "DANG"; + break; + case 6322: + case 6665: + case 7514: + case 8478: + strValue = "DAO"; + break; + case 7929: + strValue = "DE"; + break; + case 6466: + case 6556: + case 7413: + case 7767: + case 7975: + case 8403: + strValue = "DENG"; + break; + case 5621: + case 5765: + case 5814: + case 5848: + case 5901: + case 5970: + case 6122: + case 6454: + case 7023: + case 7116: + case 7260: + case 7306: + case 7475: + case 7738: + case 7758: + case 7791: + case 7965: + case 8438: + case 8730: + strValue = "DI"; + break; + case 6439: + strValue = "DIA"; + break; + case 5871: + case 5967: + case 6559: + case 7172: + case 7868: + case 8116: + case 8118: + case 8401: + case 8558: + strValue = "DIAN"; + break; + case 7886: + case 8585: + case 8684: + strValue = "DIAO"; + break; + case 5976: + case 6006: + case 6273: + case 6409: + case 7526: + case 8012: + case 8183: + case 8562: + case 8688: + strValue = "DIE"; + break; + case 5674: + case 6404: + case 7164: + case 7575: + case 7754: + case 7814: + case 8059: + case 8184: + case 8490: + strValue = "DING"; + break; + case 7891: + strValue = "DIU"; + break; + case 5977: + case 6343: + case 6520: + case 6528: + case 7517: + case 7543: + case 7556: + case 7747: + case 8020: + strValue = "DONG"; + break; + case 6190: + case 8128: + case 8229: + case 8391: + strValue = "DOU"; + break; + case 6022: + case 6429: + case 6834: + case 7292: + case 7525: + case 8328: + case 8338: + case 8739: + case 8782: + strValue = "DU"; + break; + case 7318: + case 7649: + case 8393: + strValue = "DUAN"; + break; + case 7701: + case 7713: + case 7752: + strValue = "DUI"; + break; + case 6771: + case 7632: + case 7727: + case 7766: + case 7779: + case 7970: + case 8527: + strValue = "DUN"; + break; + case 6345: + case 6365: + case 6785: + case 7122: + case 7876: + case 8154: + case 8566: + strValue = "DUO"; + break; + case 5612: + case 5832: + case 5844: + case 5949: + case 6035: + case 6113: + case 6164: + case 6332: + case 6721: + case 6977: + case 7025: + case 7378: + case 7581: + case 7916: + case 7941: + case 8042: + case 8206: + case 8689: + strValue = "E"; + break; + case 6176: + case 6284: + strValue = "EN"; + break; + case 5706: + case 6939: + case 7177: + case 7879: + case 8025: + case 8660: + strValue = "ER"; + break; + case 5950: + case 7732: + strValue = "FA"; + break; + case 6212: + case 6232: + case 6506: + case 7283: + case 7660: + case 7818: + case 8576: + strValue = "FAN"; + break; + case 5890: + case 7242: + case 7853: + case 8419: + case 8648: + strValue = "FANG"; + break; + case 6032: + case 6584: + case 6713: + case 6839: + case 6990: + case 7119: + case 7328: + case 7572: + case 7619: + case 7673: + case 7948: + case 8082: + case 8267: + case 8385: + case 8468: + case 8613: + case 8678: + strValue = "FEI"; + break; + case 5739: + case 6915: + case 7291: + case 8687: + case 8787: + strValue = "FEN"; + break; + case 5726: + case 5926: + case 6155: + case 6384: + case 6767: + case 7731: + strValue = "FENG"; + break; + strValue = "FO"; + break; + case 8330: + strValue = "FOU"; + break; + case 5775: + case 5776: + case 5914: + case 6029: + case 6062: + case 6119: + case 6142: + case 6252: + case 6327: + case 6505: + case 6686: + case 6870: + case 6985: + case 7058: + case 7066: + case 7106: + case 7108: + case 7285: + case 7471: + case 7680: + case 7741: + case 7774: + case 7775: + case 7823: + case 7991: + case 8005: + case 8222: + case 8261: + case 8280: + case 8283: + case 8479: + case 8535: + case 8538: + case 8654: + case 8691: + strValue = "FU"; + break; + case 6246: + case 7056: + case 7057: + case 7424: + case 7837: + strValue = " GA"; + break; + case 5604: + case 5875: + case 5982: + case 7414: + case 7464: + strValue = "GAI"; + break; + case 5965: + case 6053: + case 6247: + case 6306: + case 6779: + case 6838: + case 6887: + case 7104: + case 7347: + case 7426: + case 7723: + case 8065: + case 8491: + strValue = "GAN"; + break; + case 7716: + case 7824: + case 8364: + strValue = "GANG"; + break; + case 5626: + case 5830: + case 5912: + case 6227: + case 7141: + case 7332: + case 7334: + case 7429: + case 7915: + strValue = "GAO"; + break; + case 5610: + case 5678: + case 5933: + case 5957: + case 6010: + case 6435: + case 7092: + case 7501: + case 7585: + case 7749: + case 7951: + case 8143: + case 8220: + case 8420: + case 8732: + strValue = "GE"; + break; + strValue = "GEI"; + break; + case 5608: + case 6102: + case 6371: + case 8462: + strValue = "GEN"; + break; + case 6376: + case 6657: + case 7114: + case 8665: + strValue = "GENG"; + break; + case 7178: + case 7537: + case 8228: + case 8601: + strValue = "GONG"; + break; + case 5694: + case 5824: + case 6524: + case 6960: + case 7037: + case 7135: + case 7259: + case 7477: + case 7616: + case 8349: + case 8384: + case 8724: + strValue = "GOU"; + break; + case 5637: + case 5812: + case 6152: + case 6536: + case 6773: + case 7284: + case 7379: + case 7484: + case 7486: + case 7591: + case 7617: + case 7813: + case 7825: + case 7860: + case 7932: + case 8019: + case 8083: + case 8233: + case 8494: + case 8593: + case 8681: + case 8729: + strValue = "GU"; + break; + case 5652: + case 5820: + case 6341: + case 7273: + case 7550: + case 8027: + strValue = "GUA"; + break; + strValue = "GUAI"; + break; + case 5736: + case 6124: + case 6272: + case 6842: + case 7834: + case 8057: + case 8170: + case 8704: + strValue = "GUAN"; + break; + case 6359: + case 6578: + case 7270: + case 7555: + strValue = "GUANG"; + break; + case 5648: + case 5659: + case 6649: + case 7003: + case 7277: + case 7433: + case 7448: + case 8007: + case 8394: + case 8657: + case 8712: + strValue = "GUI"; + break; + case 5782: + case 7121: + case 7762: + case 8671: + strValue = "GUN"; + break; + case 5769: + case 6266: + case 6335: + case 6494: + case 6538: + case 6603: + case 7304: + case 7529: + case 8188: + case 8268: + case 8269: + strValue = "GUO"; + break; + case 7894: + strValue = "HA"; + break; + case 6443: + case 7560: + case 8516: + strValue = "HAI"; + break; + case 5885: + case 6153: + case 6294: + case 6759: + case 6911: + case 7447: + case 7642: + case 8192: + case 8205: + case 8232: + case 8793: + strValue = "HAN"; + break; + case 6776: + case 7112: + case 8194: + strValue = "HANG"; + break; + case 6179: + case 6222: + case 6438: + case 6467: + case 6909: + case 6916: + case 7427: + case 8009: + case 8211: + case 8226: + strValue = "HAO"; + break; + case 5813: + case 5932: + case 5954: + case 6432: + case 6756: + case 7434: + case 7833: + case 8202: + case 8234: + case 8471: + strValue = "HE"; + break; + strValue = "HEI"; + break; + strValue = "HEN"; + break; + case 6231: + case 7181: + case 7276: + strValue = "HENG"; + break; + case 5768: + case 5774: + case 5807: + case 6106: + case 6214: + case 6216: + case 6740: + case 6792: + strValue = "HONG"; + break; + case 6009: + case 6565: + case 6943: + case 8090: + case 8383: + case 8455: + case 8655: + case 8731: + strValue = "HOU"; + break; + case 5792: + case 6392: + case 6481: + case 6518: + case 6609: + case 6679: + case 6717: + case 6816: + case 6879: + case 7190: + case 7346: + case 7385: + case 7618: + case 7635: + case 7646: + case 7670: + case 7672: + case 7679: + case 8013: + case 8032: + case 8041: + case 8055: + case 8343: + case 8513: + case 8590: + strValue = "HU"; + break; + case 7072: + case 7275: + case 7725: + case 7892: + strValue = "HUA"; + break; + case 8555: + strValue = "HUAI"; + break; + case 5928: + case 6140: + case 6307: + case 6487: + case 6621: + case 6801: + case 6829: + case 6881: + case 6930: + case 6953: + case 7157: + case 7944: + case 8673: + case 8763: + strValue = "HUAN"; + break; + case 5882: + case 6569: + case 6850: + case 6874: + case 6956: + case 7211: + case 7533: + case 8105: + case 8308: + case 8382: + case 8692: + strValue = "HUANG"; + break; + case 5822: + case 6078: + case 6086: + case 6205: + case 6352: + case 6360: + case 6425: + case 6736: + case 6807: + case 6811: + case 6971: + case 7132: + case 7185: + case 7445: + case 7703: + case 8219: + case 8319: + case 8766: + strValue = "HUI"; + break; + case 5827: + case 6638: + case 6752: + case 6867: + strValue = "HUN"; + break; + case 5669: + case 6229: + case 6311: + case 6475: + case 6623: + case 7856: + case 7933: + case 7976: + case 8175: + case 8322: + strValue = "HUO"; + break; + case 5629: + case 5632: + case 5662: + case 5705: + case 5742: + case 5952: + case 6024: + case 6033: + case 6193: + case 6210: + case 6265: + case 6320: + case 6350: + case 6383: + case 6507: + case 6553: + case 6809: + case 6976: + case 7087: + case 7160: + case 7165: + case 7314: + case 7374: + case 7410: + case 7411: + case 7469: + case 7473: + case 7487: + case 7620: + case 7722: + case 7831: + case 7990: + case 8002: + case 8104: + case 8217: + case 8337: + case 8339: + case 8463: + case 8550: + case 8611: + case 8661: + case 8674: + case 8757: + case 8768: + strValue = "JI"; + break; + case 5704: + case 5903: + case 6171: + case 6521: + case 6804: + case 6940: + case 7176: + case 7409: + case 7546: + case 7702: + case 7882: + case 7956: + case 8072: + case 8142: + case 8244: + case 8353: + case 8434: + case 8542: + strValue = "JIA"; + break; + case 5752: + case 5841: + case 5857: + case 6149: + case 6183: + case 6286: + case 6853: + case 6931: + case 6932: + case 7144: + case 7237: + case 7305: + case 7407: + case 7415: + case 7480: + case 7489: + case 7506: + case 7576: + case 7790: + case 7921: + case 8047: + case 8148: + case 8340: + case 8469: + case 8534: + case 8561: + case 8668: + case 8721: + strValue = "JIAN"; + break; + case 6092: + case 6814: + case 7113: + case 7154: + case 7481: + case 7768: + case 8180: + case 8461: + case 8488: + strValue = "JIANG"; + break; + case 5714: + case 5753: + case 6020: + case 6090: + case 6256: + case 6461: + case 6572: + case 7015: + case 7524: + case 8008: + case 8052: + case 8252: + case 8520: + case 8551: + case 8662: + strValue = "JIAO"; + break; + case 5806: + case 5821: + case 6255: + case 6414: + case 7028: + case 7061: + case 7278: + case 7757: + case 8060: + case 8201: + case 8227: + case 8441: + case 8658: + case 8726: + strValue = "JIE"; + break; + case 5865: + case 6103: + case 6132: + case 6468: + case 6643: + case 6659: + case 7138: + case 7210: + case 7340: + case 7465: + case 7478: + case 8138: + strValue = "JIN"; + break; + case 5751: + case 5869: + case 6128: + case 6616: + case 6729: + case 6794: + case 6941: + case 6982: + case 7026: + case 7534: + case 7554: + case 7570: + case 7626: + strValue = "JIANG"; + break; + case 6936: + case 7671: + strValue = "JIONG"; + break; + case 5754: + case 6417: + case 6746: + case 7249: + case 7274: + case 8015: + case 8053: + case 8481: + case 8761: + strValue = "JIU"; + break; + case 5738: + case 5810: + case 6036: + case 6058: + case 6076: + case 6268: + case 6965: + case 6980: + case 7202: + case 7307: + case 7316: + case 7323: + case 7357: + case 7381: + case 7488: + case 7611: + case 7850: + case 7924: + case 8022: + case 8132: + case 8153: + case 8482: + case 8522: + case 8565: + case 8620: + case 8634: + case 8722: + strValue = "JU"; + break; + case 5918: + case 6590: + case 6824: + case 7280: + case 7835: + case 7935: + case 7952: + case 8633: + strValue = "JUAN"; + break; + case 5642: + case 5667: + case 5860: + case 5939: + case 6207: + case 6421: + case 6457: + case 6469: + case 6540: + case 6617: + case 7062: + case 7169: + case 7286: + case 7351: + case 7663: + case 7967: + case 8574: + case 8591: + strValue = "JUE"; + break; + case 6260: + case 8168: + case 8362: + case 8769: + strValue = "JUN"; + break; + case 5671: + case 6339: + case 7544: + strValue = "KA"; + break; + case 5660: + case 5978: + case 6160: + case 6673: + case 6693: + case 7888: + case 7920: + case 7939: + strValue = "KAI"; + break; + case 5709: + case 6108: + case 7412: + case 7772: + case 7811: + strValue = "KAN"; + break; + case 5688: + case 6742: + case 7854: + strValue = "KANG"; + break; + case 6974: + case 7264: + case 7491: + case 7877: + strValue = "KAO"; + break; + case 6430: + case 6519: + case 6701: + case 6859: + case 7076: + case 7128: + case 7170: + case 7380: + case 7520: + case 7807: + case 7861: + case 7930: + case 7993: + case 8066: + case 8129: + case 8204: + case 8282: + case 8733: + strValue = "KE"; + break; + case 8144: + strValue = "KEN"; + break; + case 7912: + strValue = "KENG"; + break; + case 5737: + case 6539: + case 8377: + strValue = "KONG"; + break; + case 6050: + case 6202: + case 6321: + case 7778: + case 8356: + strValue = "KOU"; + break; + case 5658: + case 6005: + case 6423: + case 7111: + case 8728: + strValue = "KU"; + break; + case 5708: + strValue = "KUA"; + break; + case 5665: + case 5906: + case 6364: + case 6586: + case 7558: + strValue = "KUAI"; + break; + case 8737: + strValue = "KUAN"; + break; + case 5818: + case 5831: + case 5887: + case 5959: + case 6237: + case 6349: + case 7094: + case 7460: + strValue = "KUANG"; + break; + case 5624: + case 5649: + case 5771: + case 6162: + case 6281: + case 6413: + case 6416: + case 6720: + case 6951: + case 7450: + case 7805: + case 8606: + case 8743: + strValue = "KUI"; + break; + case 6204: + case 6245: + case 6458: + case 6618: + case 6928: + case 7152: + case 7841: + case 8051: + strValue = "LIAO"; + break; + case 5793: + case 5988: + case 6270: + case 6354: + case 6803: + case 8483: + case 8581: + case 8764: + strValue = "LIE"; + break; + case 6194: + case 6388: + case 6555: + case 6662: + case 6733: + case 6964: + case 7361: + case 7405: + case 7602: + case 7812: + case 8452: + case 8579: + case 8775: + strValue = "LIN"; + break; + case 5925: + case 6063: + case 6342: + case 6482: + case 6786: + case 7117: + case 7258: + case 7289: + case 7418: + case 8186: + case 8240: + case 8465: + case 8676: + strValue = "LING"; + break; + case 6815: + case 6962: + case 7082: + case 7124: + case 7628: + case 7654: + case 7919: + case 7954: + case 8050: + case 8644: + strValue = "LIU"; + break; + case 5966: + case 6055: + case 6781: + case 7171: + case 7248: + case 7542: + case 7735: + case 8110: + strValue = "LONG"; + break; + case 5745: + case 6168: + case 6422: + case 6548: + case 7946: + case 8092: + case 8179: + case 8287: + case 8735: + strValue = "LOU"; + break; + case 6744: + case 7321: + case 7586: + case 7918: + case 7989: + case 8158: + strValue = "L"; + break; + case 5968: + case 6303: + case 6464: + case 6782: + case 6843: + case 6885: + case 6954: + case 7220: + case 7251: + case 7354: + case 7391: + case 7404: + case 7510: + case 7545: + case 7969: + case 8021: + case 8056: + case 8392: + case 8421: + case 8652: + strValue = "LU"; + break; + case 5785: + case 7014: + case 7279: + case 8029: + case 8639: + strValue = "LUAN"; + break; + strValue = "LE"; + break; + strValue = "LUN"; + break; + case 5732: + case 5789: + case 6093: + case 6259: + case 6291: + case 6604: + case 6788: + case 6880: + case 7183: + case 7301: + case 7565: + case 7961: + case 8107: + case 8635: + strValue = "LUO"; + break; + case 6328: + strValue = "M"; + break; + case 6373: + case 6579: + case 7054: + case 7231: + case 8301: + strValue = "MA"; + break; + case 5929: + case 6104: + case 8618: + strValue = "MAI"; + break; + case 6012: + case 6503: + case 7147: + case 7655: + case 7960: + case 8209: + case 8293: + case 8709: + case 8720: + strValue = "MAN"; + break; + case 5888: + case 6861: + case 7743: + case 8294: + strValue = "MANG"; + break; + case 5783: + case 6066: + case 6525: + case 6787: + case 7203: + case 7436: + case 7483: + case 7503: + case 7624: + case 7714: + case 7806: + case 8317: + case 8754: + strValue = "MAO"; + break; + case 6114: + case 6550: + case 6613: + case 6828: + case 6856: + case 7325: + case 7949: + case 8044: + case 8139: + case 8740: + strValue = "MEI"; + break; + case 6249: + case 7643: + case 7715: + case 7845: + strValue = "MEN"; + break; + case 5934: + case 6189: + case 6211: + case 6734: + case 7592: + case 7770: + case 8221: + case 8276: + case 8323: + case 8427: + case 8431: + strValue = "MENG"; + break; + case 5634: + case 5855: + case 6234: + case 6368: + case 6455: + case 6608: + case 6772: + case 6921: + case 6984: + case 7563: + case 7682: + case 8445: + case 8767: + case 8771: + strValue = "MI"; + break; + case 6770: + case 6837: + case 6847: + case 7579: + case 7777: + strValue = "MIAN"; + break; + case 6387: + case 6967: + case 7131: + case 7149: + case 7234: + case 7721: + case 7780: + case 8037: + strValue = "MIAO"; + break; + case 5631: + case 6367: + case 8326: + case 8390: + strValue = "MIE"; + break; + case 6069: + case 6526: + case 6741: + case 6793: + case 7137: + case 7168: + case 7175: + case 7710: + case 8710: + case 8628: + strValue = "MIN"; + break; + case 5804: + case 6088: + case 6873: + case 7452: + case 7808: + case 8504: + strValue = "MING"; + break; + strValue = "MIU"; + break; + case 5851: + case 6052: + case 6175: + case 6641: + case 7038: + case 7366: + case 7950: + case 7987: + case 8102: + case 8182: + case 8586: + case 8588: + case 8765: + strValue = "MO"; + break; + case 5716: + case 6372: + case 7788: + case 8254: + case 8290: + case 8642: + strValue = "MOU"; + break; + case 5679: + case 5973: + case 6057: + case 6769: + case 7504: + case 7866: + strValue = "MU"; + break; + case 6437: + strValue = "N"; + break; + case 6264: + case 7539: + case 7953: + case 8136: + strValue = "NA"; + break; + case 5630: + case 6021: + case 6133: + case 7245: + strValue = "NAI"; + break; + case 6411: + case 6478: + case 6479: + case 7310: + case 7578: + case 8279: + case 8486: + strValue = "NAN"; + break; + case 6313: + case 6476: + case 6646: + case 7457: + strValue = "NANG"; + break; + case 5611: + case 5981: + case 6346: + case 6614: + case 7207: + case 7748: + case 7883: + case 8245: + strValue = "NAO"; + break; + case 5811: + strValue = "NE"; + break; + strValue = "NEI"; + break; + case 7705: + strValue = "NEN"; + break; + strValue = "NENG"; + break; + case 5703: + case 5972: + case 6605: + case 6685: + case 7439: + case 7627: + case 7711: + case 7794: + case 7874: + case 8682: + strValue = "NI"; + break; + case 5605: + case 5994: + case 7393: + case 8004: + case 8651: + case 8683: + strValue = "NIAN"; + break; + strValue = "NIANG"; + break; + case 6064: + case 7053: + case 7569: + case 8433: + strValue = "NIAO"; + break; + case 5877: + case 6233: + case 6431: + case 8208: + case 8411: + case 8570: + strValue = "NIE"; + break; + strValue = "NIN"; + break; + case 5690: + case 6344: + case 6924: + case 8187: + strValue = "NING"; + break; + case 6580: + case 6678: + case 7004: + strValue = "NIU"; + break; + case 5715: + case 6370: + strValue = "NONG"; + break; + case 8181: + strValue = "NOU"; + break; + case 6983: + case 7032: + case 7059: + case 7069: + strValue = "NU"; + break; + case 7704: + case 7847: + case 8412: + strValue = "N"; + break; + strValue = "NUAN"; + break; + strValue = "NUE"; + break; + case 5748: + case 6289: + case 6386: + case 7927: + strValue = "NUO"; + break; + case 6424: + case 6462: + strValue = "O"; + break; + case 5809: + case 6670: + case 7417: + case 8178: + strValue = "OU"; + break; + case 6166: + case 7243: + case 8365: + strValue = "PA"; + break; + case 5729: + case 6169: + case 6363: + strValue = "PAI"; + break; + case 6761: + case 6790: + case 8140: + case 8165: + case 8320: + case 8571: + strValue = "PAN"; + break; + case 6561: + case 6872: + case 6944: + case 8306: + strValue = "PANG"; + break; + case 6243: + case 6583: + case 6650: + case 7567: + case 8069: + strValue = "PAO"; + break; + case 6446: + case 6490: + case 7623: + case 7934: + case 8512: + case 8612: + strValue = "PEI"; + break; + case 6852: + strValue = "PEN"; + break; + case 6001: + case 6456: + case 6681: + case 8318: + strValue = "PENG"; + break; + case 5607: + case 5682: + case 5880: + case 5892: + case 5915: + case 5960: + case 6017: + case 6037: + case 6308: + case 6472: + case 6647: + case 6836: + case 7039: + case 7102: + case 7233: + case 7422: + case 7802: + case 7828: + case 7875: + case 8117: + case 8166: + case 8223: + case 8271: + case 8589: + strValue = "PI"; + break; + case 5850: + case 7073: + case 7490: + case 7561: + case 8470: + case 8568: + strValue = "PIAN"; + break; + case 5666: + case 6449: + case 7046: + case 7146: + case 7372: + case 7809: + case 8310: + strValue = "PIAO"; + break; + case 6054: + case 7513: + strValue = "PIE"; + break; + case 7041: + case 6253: + case 7016: + case 7315: + case 7482: + case 8213: + strValue = "PIN"; + break; + case 5723: + case 7019: + case 7250: + case 8650: + strValue = "PING"; + break; + case 5647: + case 5922: + case 7174: + case 7839: + case 7862: + case 8011: + case 8345: + strValue = "PO"; + break; + case 5786: + case 6269: + strValue = "POU"; + break; + case 5773: + case 6459: + case 6863: + case 6907: + case 7217: + case 7511: + case 7968: + case 7972: + case 8575: + strValue = "PU"; + break; + case 5633: + case 5725: + case 5963: + case 6027: + case 6046: + case 6089: + case 6129: + case 6134: + case 6161: + case 6213: + case 6366: + case 6450: + case 6508: + case 6510: + case 6764: + case 6831: + case 7075: + case 7118: + case 7187: + case 7189: + case 7229: + case 7271: + case 7342: + case 7440: + case 7605: + case 7687: + case 7712: + case 7751: + case 8193: + case 8251: + case 8264: + case 8475: + case 8476: + case 8572: + case 8702: + case 8772: + strValue = "QI"; + break; + case 6154: + case 8736: + strValue = "QIA"; + break; + case 5727: + case 5761: + case 5868: + case 6023: + case 6045: + case 6071: + case 6271: + case 6509: + case 6705: + case 6727: + case 6925: + case 6926: + case 6929: + case 7155: + case 7293: + case 7541: + case 7709: + case 7852: + case 8215: + case 8373: + strValue = "QIAN"; + break; + case 6762: + case 7045: + case 7341: + case 7408: + case 7633: + case 7926: + case 7947: + case 7974: + case 8163: + case 8262: + case 8439: + case 8536: + strValue = "QIANG"; + break; + case 5668: + case 5829: + case 5859: + case 6081: + case 6529: + case 6724: + case 6730: + case 7352: + case 7745: + case 8546: + case 8719: + strValue = "QIAO"; + break; + case 5907: + case 6711: + case 7010: + case 7492: + case 7938: + case 8370: + strValue = "QIE"; + break; + case 6043: + case 6276: + case 6336: + case 6426: + case 6463: + case 6858: + case 7353: + case 7923: + case 8291: + case 8432: + strValue = "QIN"; + break; + case 6060: + case 6485: + case 7349: + case 7764: + case 8263: + case 8332: + case 8368: + case 8605: + case 8675: + case 8784: + strValue = "QING"; + break; + case 5886: + case 6068: + case 8123: + case 8243: + case 8344: + case 8528: + case 8638: + strValue = "QIONG"; + break; + case 5720: + case 5947: + case 6576: + case 6848: + case 6947: + case 6957: + case 7317: + case 7468: + case 8216: + case 8239: + case 8288: + case 8435: + case 8460: + case 8690: + case 8792: + strValue = "QIU"; + break; + case 5816: + case 5930: + case 6201: + case 6230: + case 6511: + case 6573: + case 6754: + case 7219: + case 7479: + case 7512: + case 7552: + case 7678: + case 7765: + case 8119: + case 8248: + case 8329: + case 8480: + case 8636: + case 8781: + strValue = "QU"; + break; + case 5825: + case 6085: + case 6710: + case 7125: + case 7390: + case 7816: + case 7893: + case 8273: + case 8360: + case 8760: + strValue = "QUAN"; + break; + case 6755: + case 6758: + case 7708: + strValue = "QUE"; + break; + case 6950: + strValue = "QUN"; + break; + case 6059: + case 8237: + case 8755: + strValue = "RAN"; + break; + case 7692: + case 8006: + strValue = "RANG"; + break; + case 6073: + case 7012: + case 7267: + strValue = "RAO"; + break; + strValue = "RE"; + break; + case 5680: + case 6083: + case 6156: + case 6631: + case 7377: + case 7994: + case 8137: + strValue = "REN"; + break; + strValue = "RENG"; + break; + strValue = "RI"; + break; + case 6541: + case 6585: + case 7337: + case 7532: + case 8278: + strValue = "RONG"; + break; + case 8459: + case 8569: + case 8723: + strValue = "ROU"; + break; + case 6174: + case 6224: + case 6473: + case 6818: + case 6865: + case 6906: + case 7140: + case 7908: + case 8164: + case 8212: + strValue = "RU"; + break; + case 7535: + strValue = "RUAN"; + break; + case 6039: + case 6208: + case 7236: + case 7803: + case 8224: + strValue = "RUI"; + break; + strValue = "RUN"; + break; + case 5728: + case 8372: + strValue = "RUO"; + break; + case 5606: + case 5677: + case 7493: + case 7559: + case 7610: + strValue = "SA"; + break; + case 6471: + strValue = "SAI"; + break; + case 6644: + case 7507: + case 8454: + strValue = "SAN"; + break; + case 6290: + case 7763: + case 8210: + strValue = "SANG"; + break; + case 6003: + case 7150: + case 7156: + case 7593: + case 8094: + case 8694: + strValue = "SAO"; + break; + strValue = "SE"; + break; + strValue = "SEN"; + break; + strValue = "SENG"; + break; + case 6394: + case 7606: + case 7901: + case 8080: + case 8436: + case 8614: + case 8672: + strValue = "SHA"; + break; + case 8507: + strValue = "SHAI"; + break; + case 5663: + case 5808: + case 5923: + case 5979: + case 6047: + case 6890: + case 7009: + case 7051: + case 7083: + case 7594: + case 7844: + case 8062: + case 8321: + case 8414: + case 8539: + case 8713: + strValue = "SHAN"; + break; + case 5980: + case 7120: + case 7368: + case 7656: + case 8592: + strValue = "SHANG"; + break; + case 5931: + case 6070: + case 6891: + case 7228: + case 8366: + case 8425: + strValue = "SHAO"; + break; + case 5639: + case 5760: + case 6606: + case 6860: + case 7608: + case 7820: + case 8774: + strValue = "SHE"; + break; + case 5837: + case 6123: + case 6351: + case 6841: + case 7309: + case 7547: + case 7982: + case 8255: + strValue = "SHEN"; + break; + case 6551: + case 7441: + case 7782: + case 8347: + strValue = "SHENG"; + break; + case 5854: + case 5985: + case 6110: + case 6173: + case 6317: + case 7388: + case 7459: + case 7634: + case 7870: + case 8307: + case 8334: + case 8363: + case 8525: + case 8669: + case 8685: + strValue = "SHI"; + break; + case 6587: + case 7123: + case 8428: + strValue = "SHOU"; + break; + case 5731: + case 5951: + case 6136: + case 6283: + case 6780: + case 6888: + case 7013: + case 7508: + case 7582: + case 7988: + strValue = "SHU"; + break; + case 6407: + strValue = "SHUA"; + break; + case 8316: + strValue = "SHUAI"; + break; + case 6737: + case 6844: + strValue = "SHUAN"; + break; + case 7055: + strValue = "SHUANG"; + break; + strValue = "SHUI"; + break; + strValue = "SHUN"; + break; + case 6184: + case 6287: + case 6989: + case 7335: + case 7869: + strValue = "SHUO"; + break; + case 5643: + case 5778: + case 5944: + case 6348: + case 6765: + case 6784: + case 6889: + case 7006: + case 7065: + case 7133: + case 7675: + case 7940: + case 8024: + case 8174: + case 8247: + case 8351: + strValue = "SI"; + break; + case 5801: + case 6131: + case 6534: + case 6552: + case 6676: + case 6704: + case 6833: + case 8121: + strValue = "SONG"; + break; + case 5937: + case 6220: + case 6418: + case 6453: + case 6640: + case 6849: + case 7612: + case 7804: + case 7943: + case 8284: + strValue = "SOU"; + break; + case 5777: + case 5853: + case 6188: + case 6428: + case 6726: + case 6819: + case 8389: + case 8602: + case 8653: + strValue = "SU"; + break; + case 6601: + strValue = "SUAN"; + break; + case 5839: + case 6120: + case 6901: + case 6968: + case 7661: + case 7785: + case 7801: + strValue = "SUI"; + break; + case 6105: + case 6588: + case 6624: + case 7330: + case 8632: + strValue = "SUN"; + break; + case 6379: + case 6434: + case 6442: + case 7022: + case 7288: + case 7792: + case 8440: + strValue = "SUO"; + break; + case 6743: + case 6866: + case 6961: + case 7329: + case 7719: + case 7872: + case 8533: + case 8703: + strValue = "TA"; + break; + case 5902: + case 6223: + case 6330: + case 7070: + case 7536: + case 7638: + case 7849: + case 8544: + case 8656: + strValue = "TAI"; + break; + case 5916: + case 6903: + case 7428: + case 7694: + case 7867: + case 7936: + case 8191: + strValue = "TAN"; + break; + case 5746: + case 6491: + case 6871: + case 7209: + case 7344: + case 7906: + case 7959: + case 8177: + case 8305: + case 8311: + case 8442: + case 8517: + strValue = "TANG"; + break; + case 5627: + case 6391: + case 6812: + case 7226: + case 7666: + strValue = "TAO"; + break; + strValue = "1845 "; + break; + case 6315: + case 7693: + case 7911: + strValue = "TE"; + break; + case 7588: + strValue = "TENG"; + break; + case 5735: + case 6709: + case 6949: + case 7130: + case 8035: + case 8151: + case 8514: + strValue = "TI"; + break; + case 6261: + case 6735: + case 6757: + case 7369: + case 7817: + strValue = "TIAN"; + break; + case 5712: + case 7686: + case 8127: + case 8272: + case 8352: + case 8448: + case 8622: + case 8670: + case 8756: + strValue = "TIAO"; + break; + case 6138: + case 8749: + strValue = "TIE"; + break; + case 6080: + case 6167: + case 7035: + case 7272: + case 7890: + case 8249: + case 8610: + strValue = "TING"; + break; + case 5701: + case 5758: + case 6077: + case 6444: + case 6690: + case 6892: + case 7737: + strValue = "TONG"; + break; + case 7855: + case 7822: + case 8727: + strValue = "TOU"; + break; + case 6002: + case 6117: + case 6143: + case 7842: + case 8509: + strValue = "TU"; + break; + case 6250: + case 6972: + strValue = "TUAN"; + break; + case 7653: + strValue = "TUI"; + break; + case 5759: + case 6629: + case 7453: + case 7564: + strValue = "TUN"; + break; + case 5617: + case 5702: + case 5971: + case 6653: + case 6791: + case 7256: + case 7262: + case 7350: + case 7740: + case 8374: + case 8502: + case 8541: + case 8630: + strValue = "TUO"; + break; + case 5684: + case 7020: + case 7580: + strValue = "WA"; + break; + strValue = "WAI"; + break; + case 5664: + case 6025: + case 6150: + case 7093: + case 7126: + case 7194: + case 7568: + case 7821: + case 8274: + strValue = "WAN"; + break; + case 5672: + case 6244: + case 6715: + case 7394: + case 8745: + strValue = "WANG"; + break; + case 5743: + case 5835: + case 5881: + case 5883: + case 6158: + case 6217: + case 6488: + case 6501: + case 6543: + case 6545: + case 6611: + case 6612: + case 6739: + case 6777: + case 6802: + case 6822: + case 6952: + case 7024: + case 7166: + case 7224: + case 7406: + case 7631: + case 7648: + case 8084: + case 8426: + case 8659: + strValue = "WEI"; + break; + case 5656: + case 6751: + case 6775: + case 7223: + case 8609: + strValue = "WEN"; + break; + case 6178: + case 6219: + strValue = "WENG"; + break; + case 5733: + case 6111: + case 6502: + case 6855: + case 7531: + case 7750: + case 8627: + strValue = "WO"; + break; + case 5603: + case 5685: + case 5867: + case 5889: + case 5956: + case 6044: + case 6377: + case 6648: + case 6668: + case 6672: + case 6820: + case 6927: + case 6935: + case 6992: + case 7036: + case 7080: + case 7227: + case 7485: + case 7641: + case 8036: + case 8045: + case 8077: + case 8258: + case 8640: + case 8789: + strValue = "WU"; + break; + case 5750: + case 5766: + case 5884: + case 5913: + case 6130: + case 6163: + case 6191: + case 6241: + case 6381: + case 6567: + case 6630: + case 6750: + case 6827: + case 6832: + case 6979: + case 7050: + case 7184: + case 7356: + case 7456: + case 7474: + case 7604: + case 7668: + case 7689: + case 7691: + case 8010: + case 8122: + case 8265: + case 8303: + case 8312: + case 8410: + case 8424: + case 8443: + case 8449: + case 8466: + case 8521: + case 8791: + strValue = "XI"; + break; + case 6340: + case 6582: + case 6958: + case 7206: + case 7252: + case 7744: + case 8093: + case 8333: + case 8779: + strValue = "XIA"; + break; + case 5794: + case 5823: + case 6040: + case 6118: + case 6226: + case 6513: + case 6593: + case 6963: + case 7021: + case 7515: + case 7662: + case 7676: + case 8034: + case 8079: + case 8225: + case 8358: + case 8444: + case 8503: + case 8548: + case 8549: + case 8617: + strValue = "XIAN"; + break; + case 6028: + case 6157: + case 6635: + case 6652: + case 7088: + case 7129: + case 8313: + case 8663: + case 8747: + strValue = "XIANG"; + break; + case 6356: + case 6537: + case 6876: + case 6948: + case 7071: + case 7115: + case 7241: + case 7253: + case 8257: + case 8367: + case 8379: + case 8744: + strValue = "XIAO"; + break; + case 5741: + case 5784: + case 5936: + case 5938: + case 6215: + case 6302: + case 6619: + case 6661: + case 6845: + case 6912: + case 6966: + case 7105: + case 7151: + case 7331: + case 7339: + case 8583: + strValue = "XIE"; + break; + case 5622: + case 6016: + case 7431: + case 7607: + case 8646: + strValue = "XIN"; + break; + case 5874: + case 6084: + case 6309: + case 6712: + case 7742: + strValue = "XING"; + break; + case 6026: + strValue = "XIONG"; + break; + case 6361: + case 6522: + case 6642: + case 6651: + case 6869: + case 8028: + case 8587: + case 8759: + strValue = "XIU"; + break; + case 5828: + case 5935: + case 5955: + case 6203: + case 6810: + case 6851: + case 7179: + case 7282: + case 7667: + case 7776: + case 8167: + case 8458: + case 8515: + strValue = "XU"; + break; + case 5756: + case 5846: + case 6170: + case 6279: + case 6789: + case 6854: + case 6886: + case 7215: + case 7324: + case 7449: + case 7637: + case 7651: + case 7759: + case 7871: + case 7964: + case 8071: + strValue = "XUAN"; + break; + case 5842: + case 7720: + case 8529: + case 8708: + strValue = "XUE"; + break; + case 5767: + case 5908: + case 5987: + case 6087: + case 6101: + case 6206: + case 6225: + case 6530: + case 6563: + case 6620: + case 6694: + case 6813: + case 6817: + case 7454: + case 8131: + case 8524: + case 8664: + strValue = "XUN"; + break; + case 5683: + case 5975: + case 6275: + case 6512: + case 6934: + case 7011: + case 7180: + case 7266: + case 7518: + case 7728: + case 7793: + case 8073: + strValue = "YA"; + break; + case 5641: + case 5645: + case 5718: + case 5740: + case 5780: + case 5861: + case 5917: + case 5919: + case 6030: + case 6146: + case 6535: + case 6691: + case 6738: + case 6753: + case 6846: + case 6857: + case 6991: + case 7044: + case 7192: + case 7360: + case 7444: + case 7557: + case 7645: + case 7827: + case 8359: + case 8506: + case 8742: + case 8748: + case 8790: + strValue = "YAN"; + break; + case 6564: + case 6683: + case 7630: + case 7640: + case 7706: + case 8253: + case 8717: + strValue = "YANG"; + break; + case 5618: + case 5619: + case 6326: + case 6542: + case 6570: + case 7159: + case 7182: + case 7235: + case 7387: + case 7455: + case 7540: + case 7902: + case 8046: + case 8126: + case 8477: + case 8705: + strValue = "YAO"; + break; + case 5644: + case 5843: + case 5894: + case 6262: + case 7442: + case 7639: + case 7884: + strValue = "YE"; + break; + case 5655: + case 5657: + case 5670: + case 5693: + case 5711: + case 5817: + case 5961: + case 5992: + case 6018: + case 6051: + case 6072: + case 6218: + case 6236: + case 6240: + case 6258: + case 6314: + case 6329: + case 6355: + case 6362: + case 6441: + case 6470: + case 6527: + case 6558: + case 6602: + case 6634: + case 6688: + case 6689: + case 6708: + case 6884: + case 6938: + case 7068: + case 7143: + case 7376: + case 7383: + case 7461: + case 7629: + case 7658: + case 7784: + case 7838: + case 7955: + case 7978: + case 8074: + case 8089: + case 8115: + case 8120: + case 8270: + case 8415: + case 8464: + case 8472: + case 8493: + case 8780: + strValue = "YI"; + break; + case 5623: + case 5920: + case 5983: + case 6007: + case 6065: + case 6337: + case 6419: + case 6594: + case 6625: + case 6806: + case 7519: + case 7887: + case 8111: + case 8230: + case 8615: + case 8624: + strValue = "YIN"; + break; + case 5788: + case 5911: + case 6067: + case 6094: + case 6126: + case 6151: + case 6186: + case 6292: + case 6451: + case 6663: + case 6862: + case 6875: + case 6913: + case 7188: + case 7212: + case 7326: + case 7584: + case 8048: + case 8108: + case 8203: + case 8331: + strValue = "YING"; + break; + case 6401: + strValue = "YO"; + break; + case 5724: + case 5953: + case 6013: + case 6415: + case 6728: + case 7163: + case 7962: + case 8014: + case 8711: + case 8751: + strValue = "YONG"; + break; + case 5653: + case 5692: + case 5707: + case 6112: + case 6115: + case 6121: + case 6347: + case 6483: + case 6922: + case 7254: + case 7364: + case 7527: + case 7880: + case 8064: + case 8236: + case 8242: + case 8286: + case 8647: + case 8778: + case 8788: + strValue = "YOU"; + break; + case 5614: + case 5625: + case 5681: + case 5722: + case 5836: + case 5845: + case 6139: + case 6187: + case 6277: + case 6484: + case 6486: + case 6546: + case 6592: + case 6632: + case 6637: + case 6655: + case 6748: + case 6987: + case 6993: + case 7005: + case 7090: + case 7204: + case 7437: + case 7476: + case 7573: + case 7603: + case 7622: + case 7647: + case 7659: + case 7718: + case 7858: + case 8033: + case 8054: + case 8085: + case 8086: + case 8130: + case 8133: + case 8266: + case 8285: + case 8336: + case 8407: + case 8408: + case 8607: + case 8625: + strValue = "YU"; + break; + case 5989: + case 6011: + case 6282: + case 6768: + case 7034: + case 7205: + case 7358: + case 7528: + case 7783: + case 8016: + case 8302: + case 8378: + case 8629: + strValue = "YUAN"; + break; + case 5763: + case 6914: + case 7348: + case 7530: + case 7865: + strValue = "YUE"; + break; + case 5909: + case 6031: + case 6581: + case 6702: + case 6719: + case 7101: + case 7225: + case 7370: + case 7432: + case 7521: + case 7657: + strValue = "YUN"; + break; + case 6257: + case 6338: + strValue = "ZA"; + break; + case 6544: + case 7162: + strValue = "ZAI"; + break; + case 7222: + case 7435: + case 8402: + case 8456: + case 8485: + case 8641: + strValue = "ZAN"; + break; + case 6242: + case 7064: + case 7416: + strValue = "ZANG"; + break; + case 6380: + strValue = "ZAO"; + break; + case 5638: + case 8369: + case 5651: + case 6385: + case 6493: + case 6937: + case 7430: + case 8348: + case 8423: + strValue = "ZE"; + break; + strValue = "ZEI"; + break; + case 5858: + strValue = "ZEN"; + break; + case 7153: + case 7421: + case 7832: + case 7913: + strValue = "ZENG"; + break; + case 6610: + case 6274: + case 6324: + case 6369: + case 6378: + case 7736: + case 8068: + case 8238: + case 8794: + strValue = "ZHA"; + break; + case 7746: + case 8109: + strValue = "ZHAI"; + break; + case 5862: + case 6288: + case 7625: + strValue = "ZHAN"; + break; + case 5675: + case 5921: + case 6504: + case 6554: + case 6615: + case 7049: + case 7216: + case 8315: + strValue = "ZHANG"; + break; + case 5815: + case 7294: + case 7840: + case 8341: + strValue = "ZHAO"; + break; + case 5856: + case 6301: + case 7247: + case 7392: + case 7761: + case 8049: + case 8162: + case 8256: + case 8487: + strValue = "ZHE"; + break; + case 5958: + case 6172: + case 6805: + case 7139: + case 7269: + case 7327: + case 7384: + case 7466: + case 7551: + case 7562: + case 7685: + case 7819: + case 8001: + case 8018: + case 8380: + strValue = "ZHEN"; + break; + case 5826: + case 6531: + case 6571: + case 7859: + case 7903: + case 8361: + strValue = "ZHENG"; + break; + case 5620: + case 5876: + case 5904: + case 5990: + case 6038: + case 6293: + case 6489: + case 6669: + case 6973: + case 6975: + case 7079: + case 7246: + case 7255: + case 7257: + case 7268: + case 7382: + case 7389: + case 7462: + case 7553: + case 7589: + case 7677: + case 7683: + case 7773: + case 7984: + case 8026: + case 8075: + case 8246: + case 8474: + case 8505: + case 8537: + case 8557: + case 8560: + case 8584: + case 8603: + strValue = "ZHI"; + break; + case 5803: + case 7981: + case 8314: + case 8417: + case 8564: + strValue = "ZHONG"; + break; + case 6107: + case 6390: + case 7008: + case 7091: + case 7107: + case 7548: + case 7756: + case 8406: + case 8492: + strValue = "ZHOU"; + break; + case 5689: + case 5710: + case 5905: + case 6049: + case 6079: + case 6808: + case 6830: + case 6883: + case 7244: + case 7338: + case 7345: + case 7636: + case 7889: + case 8070: + case 8081: + case 8335: + case 8371: + case 8422: + case 8467: + case 8578: + case 8770: + strValue = "ZHU"; + break; + strValue = "ZHUA"; + break; + strValue = "ZHUAI"; + break; + case 6389: + case 6645: + case 8207: + strValue = "ZHUAN"; + break; + case 5755: + strValue = "ZHUANG"; + break; + case 6723: + case 7077: + case 7136: + strValue = "ZHUI"; + break; + case 7538: + case 8124: + strValue = "ZHUN"; + break; + case 5730: + case 5834: + case 6310: + case 6823: + case 6835: + case 6910: + case 7644: + case 7690: + case 7729: + case 7977: + strValue = "ZHUO"; + break; + case 5849: + case 6549: + case 7002: + case 7060: + case 7127: + case 7287: + case 7402: + case 7463: + case 7707: + case 7786: + case 7937: + case 7986: + case 8172: + case 8342: + case 8450: + case 8484: + case 8594: + case 8604: + case 8623: + case 8686: + case 8758: + strValue = "ZI"; + break; + case 5744: + case 7574: + case 8453: + strValue = "ZONG"; + break; + case 5833: + case 5878: + case 5924: + case 7067: + case 8677: + strValue = "ZOU"; + break; + case 5762: + case 6147: + case 7963: + strValue = "ZU"; + break; + case 6312: + case 7158: + case 8582: + strValue = "ZUAN"; + break; + case 6209: + strValue = "ZUI"; + break; + case 6304: + case 7355: + case 8714: + strValue = "ZUN"; + break; + case 5872: + case 6382: + case 6460: + case 6684: + case 7549: + case 7681: + strValue = "ZUO"; + break; + default: + if (nCode >= 1601 && nCode <= 1602) + { + strValue = "A"; + break; + } + if (nCode >= 1603 && nCode <= 1615) + { + strValue = "AI"; + break; + } + if (nCode >= 1616 && nCode <= 1624) + { + strValue = "AN"; + break; + } + if (nCode >= 1625 && nCode <= 1627) + { + strValue = "ANG"; + break; + } + if (nCode >= 1628 && nCode <= 1636) + { + strValue = "AO"; + break; + } + if (nCode >= 1637 && nCode <= 1654) + { + strValue = "BA"; + break; + } + if (nCode >= 1655 && nCode <= 1662) + { + strValue = "BAI"; + break; + } + if (nCode >= 1663 && nCode <= 1677) + { + strValue = "BAN"; + break; + } + if (nCode >= 1678 && nCode <= 1689) + { + strValue = "BANG"; + break; + } + if (nCode >= 1690 && nCode <= 1712) + { + strValue = "BAO"; + break; + } + if (nCode >= 1713 && nCode <= 1727) + { + strValue = "BEI"; + break; + } + if (nCode >= 1728 && nCode <= 1731) + { + strValue = "BEN"; + break; + } + if (nCode >= 1732 && nCode <= 1737) + { + strValue = "BENG"; + break; + } + if (nCode > 1738 && nCode <= 1761) + { + strValue = "BI"; + break; + } + if (nCode >= 1762 && nCode <= 1773) + { + strValue = "BIAN"; + break; + } + if (nCode >= 1774 && nCode <= 1777) + { + strValue = "BIAO"; + break; + } + if (nCode >= 1778 && nCode <= 1781) + { + strValue = "BIE"; + break; + } + if (nCode >= 1782 && nCode <= 1787) + { + strValue = "BIN"; + break; + } + if (nCode >= 1788 && nCode <= 1794) + { + strValue = "BING"; + break; + } + if (nCode >= 1801 && nCode <= 1802) + { + strValue = "BING"; + break; + } + if (nCode >= 1803 && nCode <= 1821) + { + strValue = "BO"; + break; + } + if (nCode >= 1822 && nCode <= 1832) + { + strValue = "BU"; + break; + } + if (nCode == 1833) + { + strValue = "CA"; + break; + } + if (nCode >= 1834 && nCode <= 1844) + { + strValue = "CAI"; + break; + } + if (nCode >= 1845 && nCode <= 1851) + { + strValue = "CAN"; + break; + } + if (nCode >= 1852 && nCode <= 1856) + { + strValue = "CANG"; + break; + } + if (nCode >= 1857 && nCode <= 1861) + { + strValue = "CAO"; + break; + } + if (nCode >= 1862 && nCode <= 1866) + { + strValue = "CE"; + break; + } + if (nCode >= 1867 && nCode <= 1868) + { + strValue = "CENG"; + break; + } + if (nCode >= 1869 && nCode <= 1879) + { + strValue = "CHA"; + break; + } + if (nCode >= 1880 && nCode <= 1882) + { + strValue = "CHAI"; + break; + } + if (nCode >= 1883 && nCode <= 1892) + { + strValue = "CHAN"; + break; + } + if (nCode >= 1893 && nCode <= 1911) + { + strValue = "CHANG"; + break; + } + if (nCode >= 1912 && nCode <= 1920) + { + strValue = "CHAO"; + break; + } + if (nCode >= 1921 && nCode <= 1926) + { + strValue = "CHE"; + break; + } + if (nCode >= 1927 && nCode <= 1936) + { + strValue = "CHEN"; + break; + } + if (nCode >= 1937 && nCode <= 1951) + { + strValue = "CHENG"; + break; + } + if (nCode >= 1952 && nCode <= 1967) + { + strValue = "CHI"; + break; + } + if (nCode >= 1968 && nCode <= 1972) + { + strValue = "CHONG"; + break; + } + if (nCode >= 1973 && nCode <= 1984) + { + strValue = "CHOU"; + break; + } + if (nCode >= 1985 && nCode <= 2006) + { + strValue = "CHU"; + break; + } + if (nCode == 2007) + { + strValue = "CHUAI"; + break; + } + if (nCode >= 2008 && nCode <= 2014) + { + strValue = "CHUAN"; + break; + } + if (nCode >= 2015 && nCode <= 2020) + { + strValue = "CHUANG"; + break; + } + if (nCode >= 2021 && nCode <= 2025) + { + strValue = "CHUI"; + break; + } + if (nCode >= 2026 && nCode <= 2032) + { + strValue = "CHUN"; + break; + } + if (nCode >= 2033 && nCode <= 2034) + { + strValue = "CHUO"; + break; + } + if (nCode >= 2035 && nCode <= 2046) + { + strValue = "CI"; + break; + } + if (nCode >= 2047 && nCode <= 2052) + { + strValue = "CONG"; + break; + } + if (nCode >= 2054 && nCode <= 2057) + { + strValue = "CU"; + break; + } + if (nCode >= 2058 && nCode <= 2060) + { + strValue = "CUAN"; + break; + } + if (nCode >= 2061 && nCode <= 2068) + { + strValue = "CUI"; + break; + } + if (nCode >= 2069 && nCode <= 2071) + { + strValue = "CUN"; + break; + } + if (nCode >= 2072 && nCode <= 2077) + { + strValue = "CUO"; + break; + } + if (nCode >= 2078 && nCode <= 2083) + { + strValue = "DA"; + break; + } + if (nCode >= 2084 && nCode <= 2094) + { + strValue = "DAI"; + break; + } + if (nCode >= 2102 && nCode <= 2116) + { + strValue = "DAN"; + break; + } + if (nCode >= 2117 && nCode <= 2121) + { + strValue = "DANG"; + break; + } + if (nCode >= 2122 && nCode <= 2133) + { + strValue = "DAO"; + break; + } + if (nCode >= 2134 && nCode <= 2136) + { + strValue = "DE"; + break; + } + if (nCode >= 2137 && nCode <= 2143) + { + strValue = "DENG"; + break; + } + if (nCode >= 2144 && nCode <= 2162) + { + strValue = "DI"; + break; + } + if (nCode >= 2163 && nCode <= 2178) + { + strValue = "DIAN"; + break; + } + if (nCode >= 2179 && nCode <= 2187) + { + strValue = "DIAO"; + break; + } + if (nCode >= 2188 && nCode <= 2194) + { + strValue = "DIE"; + break; + } + if (nCode >= 2201 && nCode <= 2209) + { + strValue = "DING"; + break; + } + if (nCode == 2210) + { + strValue = "DIU"; + break; + } + if (nCode >= 2211 && nCode <= 2220) + { + strValue = "DONG"; + break; + } + if (nCode >= 2221 && nCode <= 2227) + { + strValue = "DOU"; + break; + } + if (nCode >= 2228 && nCode <= 2242) + { + strValue = "DU"; + break; + } + if (nCode >= 2243 && nCode <= 2248) + { + strValue = "DUAN"; + break; + } + if (nCode >= 2249 && nCode <= 2252) + { + strValue = "DUI"; + break; + } + if (nCode >= 2253 && nCode <= 2261) + { + strValue = "DUN"; + break; + } + if (nCode >= 2262 && nCode <= 2273) + { + strValue = "DUO"; + break; + } + if (nCode >= 2274 && nCode <= 2286) + { + strValue = "E"; + break; + } + if (nCode == 2287) + { + strValue = "EN"; + break; + } + if (nCode >= 2288 && nCode <= 2231) + { + strValue = "ER"; + break; + } + if (nCode >= 2302 && nCode <= 2309) + { + strValue = "FA"; + break; + } + if (nCode >= 2310 && nCode <= 2326) + { + strValue = "FAN"; + break; + } + if (nCode >= 2327 && nCode <= 2337) + { + strValue = "FANG"; + break; + } + if (nCode >= 2338 && nCode <= 2349) + { + strValue = "FEI"; + break; + } + if (nCode >= 2350 && nCode <= 2364) + { + strValue = "FEN"; + break; + } + if (nCode >= 2365 && nCode <= 2379) + { + strValue = "FENG"; + break; + } + if (nCode == 2380) + { + strValue = "FO"; + break; + } + if (nCode == 2381) + { + strValue = "FOU"; + break; + } + if (nCode >= 2382 && nCode <= 2432) + { + strValue = "FU"; + break; + } + if (nCode >= 2435 && nCode <= 2440) + { + strValue = "GAI"; + break; + } + if (nCode >= 2441 && nCode <= 2451) + { + strValue = "GAN"; + break; + } + if (nCode >= 2452 && nCode <= 2460) + { + strValue = "GANG"; + break; + } + if (nCode >= 2461 && nCode <= 2470) + { + strValue = "GAO"; + break; + } + if (nCode >= 2471 && nCode <= 2487) + { + strValue = "GE"; + break; + } + if (nCode == 2488) + { + strValue = "GEI"; + break; + } + if (nCode >= 2489 && nCode <= 2490) + { + strValue = "GEN"; + break; + } + if (nCode >= 2491 && nCode <= 2503) + { + strValue = "GENG"; + break; + } + if (nCode >= 2504 && nCode <= 2518) + { + strValue = "GONG"; + break; + } + if (nCode >= 2519 && nCode <= 2527) + { + strValue = "GOU"; + break; + } + if (nCode >= 2528 && nCode <= 2545) + { + strValue = "GU"; + break; + } + if (nCode >= 2546 && nCode <= 2551) + { + strValue = "GUA"; + break; + } + if (nCode >= 2552 && nCode <= 2554) + { + strValue = "GUAI"; + break; + } + if (nCode >= 2555 && nCode <= 2565) + { + strValue = "GUAN"; + break; + } + if (nCode >= 2566 && nCode <= 2568) + { + strValue = "GUANG"; + break; + } + if (nCode >= 2569 && nCode <= 2584) + { + strValue = "GUI"; + break; + } + if (nCode >= 2585 && nCode <= 2587) + { + strValue = "GUN"; + break; + } + if (nCode >= 2588 && nCode <= 2593) + { + strValue = "GUO"; + break; + } + if (nCode == 2594) + { + strValue = "HA"; + break; + } + if (nCode >= 2601 && nCode <= 2607) + { + strValue = "HAI"; + break; + } + if (nCode >= 2608 && nCode <= 2626) + { + strValue = "HAN"; + break; + } + if (nCode >= 2627 && nCode <= 2629) + { + strValue = "HANG"; + break; + } + if (nCode >= 2630 && nCode <= 2638) + { + strValue = "HAO"; + break; + } + if (nCode >= 2639 && nCode <= 2656) + { + strValue = "HE"; + break; + } + if (nCode >= 2657 && nCode <= 2658) + { + strValue = "HEI"; + break; + } + if (nCode >= 2659 && nCode <= 2662) + { + strValue = "HEN"; + break; + } + if (nCode >= 2663 && nCode <= 2667) + { + strValue = "HENG"; + break; + } + if (nCode >= 2668 && nCode <= 2676) + { + strValue = "HONG"; + break; + } + if (nCode >= 2677 && nCode <= 2683) + { + strValue = "HOU"; + break; + } + if (nCode >= 2684 && nCode <= 2707) + { + strValue = "HU"; + break; + } + if (nCode >= 2708 && nCode <= 2716) + { + strValue = "HUA"; + break; + } + if (nCode >= 2717 && nCode <= 2721) + { + strValue = "HUAI"; + break; + } + if (nCode >= 2722 && nCode <= 2735) + { + strValue = "HUAN"; + break; + } + if (nCode >= 2736 && nCode <= 2749) + { + strValue = "HUANG"; + break; + } + if (nCode >= 2750 && nCode <= 2770) + { + strValue = "HUI"; + break; + } + if (nCode >= 2771 && nCode <= 2776) + { + strValue = "HUN"; + break; + } + if (nCode >= 2777 && nCode <= 2786) + { + strValue = "HUO"; + break; + } + if (nCode >= 2787 && nCode <= 2845) + { + strValue = "JI"; + break; + } + if (nCode >= 2846 && nCode <= 2862) + { + strValue = "JIA"; + break; + } + if (nCode >= 2863 && nCode <= 2908) + { + strValue = "JIAN"; + break; + } + if (nCode >= 2909 && nCode <= 2921) + { + strValue = "JIANG"; + break; + } + if (nCode >= 2922 && nCode <= 2949) + { + strValue = "JIAO"; + break; + } + if (nCode >= 2950 && nCode <= 2976) + { + strValue = "JIE"; + break; + } + if (nCode >= 2977 && nCode <= 3002) + { + strValue = "JIN"; + break; + } + if (nCode >= 3003 && nCode <= 3027) + { + strValue = "JING"; + break; + } + if (nCode >= 3028 && nCode <= 3029) + { + strValue = "JIONG"; + break; + } + if (nCode >= 3030 && nCode <= 3046) + { + strValue = "JIU"; + break; + } + if (nCode >= 3047 && nCode <= 3071) + { + strValue = "JU"; + break; + } + if (nCode >= 3072 && nCode <= 3078) + { + strValue = "JUAN"; + break; + } + if (nCode >= 3079 && nCode <= 3088) + { + strValue = "JUE"; + break; + } + if (nCode >= 3089 && nCode <= 3105) + { + strValue = "JUN"; + break; + } + if (nCode >= 3106 && nCode <= 3109) + { + strValue = "KA"; + break; + } + if (nCode >= 3110 && nCode <= 3114) + { + strValue = "KAI"; + break; + } + if (nCode >= 3115 && nCode <= 3120) + { + strValue = "KAN"; + break; + } + if (nCode >= 3121 && nCode <= 3127) + { + strValue = "KANG"; + break; + } + if (nCode >= 3128 && nCode <= 3131) + { + strValue = "KAO"; + break; + } + if (nCode >= 3132 && nCode <= 3146) + { + strValue = "KE"; + break; + } + if (nCode >= 3147 && nCode <= 3150) + { + strValue = "KEN"; + break; + } + if (nCode >= 3151 && nCode <= 3152) + { + strValue = "KENG"; + break; + } + if (nCode >= 3153 && nCode <= 3156) + { + strValue = "KONG"; + break; + } + if (nCode >= 3157 && nCode <= 3160) + { + strValue = "KOU"; + break; + } + if (nCode >= 3161 && nCode <= 3167) + { + strValue = "KU"; + break; + } + if (nCode >= 3168 && nCode <= 3172) + { + strValue = "KUA"; + break; + } + if (nCode >= 3173 && nCode <= 3176) + { + strValue = "KUAI"; + break; + } + if (nCode >= 3177 && nCode <= 3178) + { + strValue = "KUAN"; + break; + } + if (nCode >= 3179 && nCode <= 3186) + { + strValue = "KUANG"; + break; + } + if (nCode >= 3187 && nCode <= 3203) + { + strValue = "KUI"; + break; + } + if (nCode >= 3204 && nCode <= 3207) + { + strValue = "KUN"; + break; + } + if (nCode >= 3208 && nCode <= 3211) + { + strValue = "KUO"; + break; + } + if (nCode >= 3212 && nCode <= 3218) + { + strValue = "LA"; + break; + } + if (nCode >= 3219 && nCode <= 3221) + { + strValue = "LAI"; + break; + } + if (nCode >= 3222 && nCode <= 3236) + { + strValue = "LAN"; + break; + } + if (nCode >= 3237 && nCode <= 3243) + { + strValue = "LANG"; + break; + } + if (nCode >= 3244 && nCode <= 3252) + { + strValue = "LAO"; + break; + } + if (nCode >= 3253 && nCode <= 3254) + { + strValue = "LE"; + break; + } + if (nCode >= 3255 && nCode <= 3265) + { + strValue = "LEI"; + break; + } + if (nCode >= 3266 && nCode <= 3268) + { + strValue = "LENG"; + break; + } + if (nCode >= 3269 && nCode <= 3308) + { + strValue = "LI"; + } + if (nCode == 3309) + { + strValue = "LIA"; + break; + } + if (nCode >= 3310 && nCode <= 3323) + { + strValue = "LIAN"; + break; + } + if (nCode >= 3324 && nCode <= 3334) + { + strValue = "LIANG"; + break; + } + if (nCode >= 3335 && nCode <= 3347) + { + strValue = "LIAO"; + break; + } + if (nCode >= 3348 && nCode <= 3352) + { + strValue = "LIE"; + break; + } + if (nCode >= 3353 && nCode <= 3363) + { + strValue = "LIN"; + break; + } + if (nCode >= 3364 && nCode <= 3378) + { + strValue = "LING"; + break; + } + if (nCode >= 3379 && nCode <= 3389) + { + strValue = "LIU"; + break; + } + if (nCode >= 3390 && nCode <= 3404) + { + strValue = "LONG"; + break; + } + if (nCode >= 3405 && nCode <= 3410) + { + strValue = "LOU"; + break; + } + if (nCode >= 3411 && nCode <= 3444) + { + strValue = "LU"; + break; + } + if (nCode >= 3445 && nCode <= 3450) + { + strValue = "LUAN"; + break; + } + if (nCode >= 3451 && nCode <= 3452) + { + strValue = "LUE"; + break; + } + if (nCode >= 3453 && nCode <= 3459) + { + strValue = "LUN"; + break; + } + if (nCode >= 3460 && nCode <= 3471) + { + strValue = "LUO"; + break; + } + if (nCode >= 3472 && nCode <= 3480) + { + strValue = "MA"; + break; + } + if (nCode >= 3481 && nCode <= 3486) + { + strValue = "MAI"; + break; + } + if (nCode >= 3487 && nCode <= 3501) + { + strValue = "MAN"; + break; + } + if (nCode >= 3502 && nCode <= 3507) + { + strValue = "MANG"; + break; + } + if (nCode >= 3508 && nCode <= 3519) + { + strValue = "MAO"; + break; + } + if (nCode == 3520) + { + strValue = "ME"; + break; + } + if (nCode >= 3521 && nCode <= 3536) + { + strValue = "MEI"; + break; + } + if (nCode >= 3537 && nCode <= 3539) + { + strValue = "MEN"; + break; + } + if (nCode >= 3540 && nCode <= 3547) + { + strValue = "MENG"; + break; + } + if (nCode >= 3548 && nCode <= 3561) + { + strValue = "MI"; + } + if (nCode >= 3562 && nCode <= 3570) + { + strValue = "MIAN"; + break; + } + if (nCode >= 3571 && nCode <= 3578) + { + strValue = "MIAO"; + break; + } + if (nCode >= 3579 && nCode <= 3580) + { + strValue = "MIE"; + break; + } + if (nCode >= 3581 && nCode <= 3586) + { + strValue = "MIN"; + break; + } + if (nCode >= 3587 && nCode <= 3592) + { + strValue = "MING"; + break; + } + if (nCode == 3593) + { + strValue == "MIU"; + break; + } + if (nCode >= 3594 && nCode <= 3616) + { + strValue = "MO"; + break; + } + if (nCode >= 3617 && nCode <= 3619) + { + strValue = "MOU"; + break; + } + if (nCode >= 3620 && nCode <= 3634) + { + strValue = "MU"; + break; + } + if (nCode >= 3635 && nCode <= 3641) + { + strValue = "NA"; + break; + } + if (nCode >= 3642 && nCode <= 3646) + { + strValue = "NAI"; + break; + } + if (nCode >= 3647 && nCode <= 3649) + { + strValue = "NAN"; + break; + } + if (nCode == 3650) + { + strValue = "NANG"; + break; + } + if (nCode >= 3651 && nCode <= 3655) + { + strValue = "NAO"; + break; + } + if (nCode == 3656) + { + strValue = "NE"; + break; + } + if (nCode >= 3657 && nCode <= 3658) + { + strValue = "NEI"; + break; + } + if (nCode == 3659) + { + strValue = "NEN"; + break; + } + if (nCode == 3660) + { + strValue = "NENG"; + break; + } + if (nCode >= 3661 && nCode <= 3671) + { + strValue = "NI"; + break; + } + if (nCode >= 3672 && nCode <= 3678) + { + strValue = "NIAN"; + break; + } + if (nCode >= 3679 && nCode <= 3680) + { + strValue = "NIANG"; + break; + } + if (nCode >= 3681 && nCode <= 3682) + { + strValue = "NIAO"; + break; + } + if (nCode >= 3683 && nCode <= 3689) + { + strValue = "NIE"; + break; + } + if (nCode == 3690) + { + strValue = "NIN"; + break; + } + if (nCode >= 3691 && nCode <= 3702) + { + strValue = "NING"; + break; + } + if (nCode >= 3703 && nCode <= 3706) + { + strValue = "NIU"; + break; + } + if (nCode >= 3707 && nCode <= 3710) + { + strValue = "NONG"; + break; + } + if (nCode >= 3711 && nCode <= 3714) + { + strValue = "NU"; + break; + } + if (nCode == 3715) + { + strValue = "NUAN"; + break; + } + if (nCode >= 3716 && nCode <= 3717) + { + strValue = "NUE"; + break; + } + if (nCode >= 3718 && nCode <= 3721) + { + strValue = "NUO"; + break; + } + if (nCode == 3722) + { + strValue = "O"; + break; + } + if (nCode >= 3723 && nCode <= 3729) + { + strValue = "OU"; + break; + } + if (nCode >= 3730 && nCode <= 3735) + { + strValue = "PA"; + break; + } + if (nCode >= 3736 && nCode <= 3741) + { + strValue = "PAI"; + break; + } + if (nCode >= 3742 && nCode <= 3749) + { + strValue = "PAN"; + break; + } + if (nCode >= 3750 && nCode <= 3754) + { + strValue = "PANG"; + break; + } + if (nCode >= 3755 && nCode <= 3761) + { + strValue = "PAO"; + break; + } + if (nCode >= 3762 && nCode <= 3770) + { + strValue = "PEI"; + break; + } + if (nCode >= 3771 && nCode <= 3772) + { + strValue = "PEN"; + break; + } + if (nCode >= 3773 && nCode <= 3786) + { + strValue = "PENG"; + break; + } + if (nCode >= 3787 && nCode <= 3809) + { + strValue = "PI"; + break; + } + if (nCode >= 3810 && nCode <= 3813) + { + strValue = "PIAN"; + break; + } + if (nCode >= 3814 && nCode <= 3817) + { + strValue = "PIAO"; + break; + } + if (nCode >= 3818 && nCode <= 3819) + { + strValue = "PIE"; + break; + } + if (nCode >= 3820 && nCode <= 3824) + { + strValue = "PIN"; + break; + } + if (nCode >= 3825 && nCode <= 3833) + { + strValue = "PING"; + break; + } + if (nCode >= 3834 && nCode <= 3841) + { + strValue = "PO"; + break; + } + if (nCode == 3842) + { + strValue = "POU"; + break; + } + if (nCode >= 3843 && nCode <= 3857) + { + strValue = "PU"; + break; + } + if (nCode >= 3858 && nCode <= 3893) + { + strValue = "QI"; + break; + } + if (nCode == 3894 || nCode >= 3901 && nCode <= 3902) + { + strValue = "QIA"; + break; + } + if (nCode >= 3903 && nCode <= 3924) + { + strValue = "QIAN"; + break; + } + if (nCode >= 3925 && nCode <= 3932) + { + strValue = "QIANG"; + break; + } + if (nCode >= 3933 && nCode <= 3947) + { + strValue = "QIAO"; + break; + } + if (nCode >= 3948 && nCode <= 3952) + { + strValue = "QIE"; + break; + } + if (nCode >= 3953 && nCode <= 3963) + { + strValue = "QIN"; + break; + } + if (nCode >= 3964 && nCode <= 3976) + { + strValue = "QING"; + break; + } + if (nCode >= 3977 && nCode <= 3978) + { + strValue = "QIONG"; + break; + } + if (nCode >= 3979 && nCode <= 3986) + { + strValue = "QIU"; + break; + } + if (nCode >= 3987 && nCode <= 4005) + { + strValue = "QU"; + break; + } + if (nCode >= 4006 && nCode <= 4016) + { + strValue = "QUAN"; + break; + } + if (nCode >= 4017 && nCode <= 4024) + { + strValue = "QUE"; + break; + } + if (nCode >= 4025 && nCode <= 4026) + { + strValue = "QUN"; + break; + } + if (nCode >= 4027 && nCode <= 4030) + { + strValue = "RAN"; + break; + } + if (nCode >= 4031 && nCode <= 4035) + { + strValue = "RANG"; + } + if (nCode >= 4036 && nCode <= 4038) + { + strValue = "RAO"; + break; + } + if (nCode >= 4039 && nCode <= 4040) + { + strValue = "RE"; + break; + } + if (nCode >= 4041 && nCode <= 4050) + { + strValue = "REN"; + break; + } + if (nCode >= 4051 && nCode <= 4052) + { + strValue = "RENG"; + break; + } + if (nCode == 4053) + { + strValue = "RI"; + break; + } + if (nCode >= 4054 && nCode <= 4063) + { + strValue = "RONG"; + break; + } + if (nCode >= 4064 && nCode <= 4066) + { + strValue = "ROU"; + break; + } + if (nCode >= 4067 && nCode <= 4076) + { + strValue = "RU"; + break; + } + if (nCode >= 4077 && nCode <= 4078) + { + strValue = "RUAN"; + break; + } + if (nCode >= 4079 && nCode <= 4081) + { + strValue = "RUI"; + break; + } + if (nCode >= 4082 && nCode <= 4083) + { + strValue = "RUN"; + break; + } + if (nCode >= 4084 && nCode <= 4085) + { + strValue = "RUO"; + break; + } + if (nCode >= 4086 && nCode <= 4088) + { + strValue = "SA"; + break; + } + if (nCode >= 4089 && nCode <= 4092) + { + strValue = "SAI"; + break; + } + if (nCode >= 4093 && nCode <= 4094) + { + strValue = "SAN"; + break; + } + if (nCode >= 4101 && nCode <= 4102) + { + strValue = "SAN"; + break; + } + if (nCode >= 4103 && nCode <= 4105) + { + strValue = "SANG"; + break; + } + if (nCode >= 4106 && nCode <= 4109) + { + strValue = "SAO"; + break; + } + if (nCode >= 4110 && nCode <= 4112) + { + strValue = "SE"; + break; + } + if (nCode == 4113) + { + strValue = "SEN"; + } + if (nCode == 4114) + { + strValue = "SENG"; + break; + } + if (nCode >= 4115 && nCode <= 4123) + { + strValue = "SHA"; + break; + } + if (nCode >= 4124 && nCode <= 4125) + { + strValue = "SHAI"; + break; + } + if (nCode >= 4126 && nCode <= 4141) + { + strValue = "SHAN"; + break; + } + if (nCode >= 4142 && nCode <= 4149) + { + strValue = "SHANG"; + break; + } + if (nCode >= 4150 && nCode <= 4160) + { + strValue = "SHAO"; + break; + } + if (nCode >= 4161 && nCode <= 4172) + { + strValue = "SHE"; + break; + } + if (nCode >= 4173 && nCode <= 4188) + { + strValue = "SHEN"; + break; + } + if (nCode >= 4189 && nCode <= 4205) + { + strValue = "SHENG"; + break; + } + if (nCode >= 4206 && nCode <= 4252) + { + strValue = "SHI"; + break; + } + if (nCode >= 4253 && nCode <= 4262) + { + strValue = "SHOU"; + break; + } + if (nCode >= 4263 && nCode <= 4301) + { + strValue = "SHU"; + break; + } + if (nCode >= 4302 && nCode <= 4303) + { + strValue = "SHUA"; + break; + } + if (nCode >= 4304 && nCode <= 4307) + { + strValue = "SHUAI"; + break; + } + if (nCode >= 4308 && nCode <= 4309) + { + strValue = "SHUAN"; + break; + } + if (nCode >= 4310 && nCode <= 4312) + { + strValue = "SHUANG"; + break; + } + if (nCode >= 4313 && nCode <= 4316) + { + strValue = "SHUI"; + break; + } + if (nCode >= 4317 && nCode <= 4320) + { + strValue = "SHUN"; + break; + } + if (nCode >= 4321 && nCode <= 4324) + { + strValue = "SHUO"; + break; + } + if (nCode >= 4325 && nCode <= 4340) + { + strValue = "SI"; + break; + } + if (nCode >= 4341 && nCode <= 4348) + { + strValue = "SONG"; + break; + } + if (nCode >= 4349 && nCode <= 4352) + { + strValue = "SOU"; + break; + } + if (nCode >= 4353 && nCode <= 4364) + { + strValue = "SU"; + break; + } + if (nCode >= 4365 && nCode <= 4367) + { + strValue = "SUAN"; + break; + } + if (nCode >= 4368 && nCode <= 4378) + { + strValue = "SUI"; + break; + } + if (nCode >= 4379 && nCode <= 4381) + { + strValue = "SUN"; + break; + } + if (nCode >= 4382 && nCode <= 4389) + { + strValue = "SUO"; + break; + } + if (nCode >= 4390 && nCode <= 4404) + { + strValue = "TA"; + break; + } + if (nCode >= 4405 && nCode <= 4413) + { + strValue = "TAI"; + break; + } + if (nCode >= 4414 && nCode <= 4431) + { + strValue = "TAN"; + break; + } + if (nCode >= 4432 && nCode <= 4444) + { + strValue = "TANG"; + break; + } + if (nCode >= 4445 && nCode <= 4455) + { + strValue = "TAO"; + break; + } + if (nCode == 4456) + { + strValue = "TE"; + break; + } + if (nCode >= 4457 && nCode <= 4460) + { + strValue = "TENG"; + break; + } + if (nCode >= 4461 && nCode <= 4475) + { + strValue = "TI"; + break; + } + if (nCode >= 4476 && nCode <= 4483) + { + strValue = "TIAN"; + break; + } + if (nCode >= 4484 && nCode <= 4488) + { + strValue = "TIAO"; + break; + } + if (nCode >= 4489 && nCode <= 4491) + { + strValue = "TIE"; + break; + } + if (nCode >= 4492 && nCode <= 4507) + { + strValue = "TING"; + break; + } + if (nCode >= 4508 && nCode <= 4520) + { + strValue = "TONG"; + break; + } + if (nCode >= 4521 && nCode <= 4524) + { + strValue = "TOU"; + break; + } + if (nCode >= 4525 && nCode <= 4535) + { + strValue = "TU"; + break; + } + if (nCode >= 4536 && nCode <= 4537) + { + strValue = "TUAN"; + break; + } + if (nCode >= 4538 && nCode <= 4543) + { + strValue = "TUI"; + break; + } + if (nCode >= 4544 && nCode <= 4546) + { + strValue = "TUN"; + break; + } + if (nCode >= 4547 && nCode <= 4557) + { + strValue = "TUO"; + break; + } + if (nCode >= 4558 && nCode <= 4564) + { + strValue = "WA"; + break; + } + if (nCode >= 4565 && nCode <= 4566) + { + strValue = "WAI"; + break; + } + if (nCode >= 4567 && nCode <= 4583) + { + strValue = "WAN"; + break; + } + if (nCode >= 4584 && nCode <= 4593) + { + strValue = "WANG"; + break; + } + if (nCode >= 4594 && nCode <= 4632) + { + strValue = "WEI"; + break; + } + if (nCode >= 4633 && nCode <= 4642) + { + strValue = "WEN"; + break; + } + if (nCode >= 4643 && nCode <= 4645) + { + strValue = "WENG"; + break; + } + if (nCode >= 4646 && nCode <= 4654) + { + strValue = "WO"; + break; + } + if (nCode >= 4655 && nCode <= 4683) + { + strValue = "WU"; + break; + } + if (nCode >= 4684 && nCode <= 4724) + { + strValue = "XI"; + break; + } + if (nCode >= 4725 && nCode <= 4737) + { + strValue = "XIA"; + break; + } + if (nCode >= 4738 && nCode <= 4763) + { + strValue = "XIAN"; + break; + } + if (nCode >= 4764 && nCode <= 4783) + { + strValue = "XIANG"; + break; + } + if (nCode >= 4784 && nCode <= 4807) + { + strValue = "XIAO"; + break; + } + if (nCode >= 4809 && nCode <= 4828) + { + strValue = "XIE"; + break; + } + if (nCode >= 4829 && nCode <= 4838) + { + strValue = "XIN"; + break; + } + if (nCode >= 4839 && nCode <= 4853) + { + strValue = "XING"; + break; + } + if (nCode >= 4854 && nCode <= 4860) + { + strValue = "XIONG"; + break; + } + if (nCode >= 4861 && nCode <= 4869) + { + strValue = "XIU"; + break; + } + if (nCode >= 4870 && nCode <= 4888) + { + strValue = "XU"; + break; + } + if (nCode >= 4889 && nCode <= 4904) + { + strValue = "XUAN"; + break; + } + if (nCode >= 4905 && nCode <= 4910) + { + strValue = "XUE"; + break; + } + if (nCode >= 4911 && nCode <= 4924) + { + strValue = "XUN"; + break; + } + if (nCode >= 4925 && nCode <= 4940) + { + strValue = "YA"; + break; + } + if (nCode >= 4941 && nCode <= 4973) + { + strValue = "YAN"; + break; + } + if (nCode >= 4974 && nCode <= 4990) + { + strValue = "YANG"; + break; + } + if (nCode >= 4991 && nCode <= 5011) + { + strValue = "YAO"; + break; + } + if (nCode >= 5012 && nCode <= 5026) + { + strValue = "YE"; + break; + } + if (nCode >= 5027 && nCode <= 5079) + { + strValue = "YI"; + break; + } + if (nCode >= 5080 && nCode <= 5101) + { + strValue = "YIN"; + break; + } + if (nCode >= 5102 && nCode <= 5119) + { + strValue = "YING"; + break; + } + if (nCode == 5120) + { + strValue = "YO"; + break; + } + if (nCode >= 5121 && nCode <= 5135) + { + strValue = "YONG"; + break; + } + if (nCode >= 5136 && nCode <= 5155) + { + strValue = "YOU"; + break; + } + if (nCode >= 5156 && nCode <= 5206) + { + strValue = "YU"; + break; + } + if (nCode >= 5207 && nCode <= 5226) + { + strValue = "YUAN"; + break; + } + if (nCode >= 5227 && nCode <= 5236) + { + strValue = "YUE"; + break; + } + if (nCode >= 5237 && nCode <= 5248) + { + strValue = "YUN"; + break; + } + if (nCode >= 5249 && nCode <= 5251) + { + strValue = "ZA"; + break; + } + if (nCode >= 5252 && nCode <= 5258) + { + strValue = "ZAI"; + break; + } + if (nCode >= 5259 && nCode <= 5262) + { + strValue = "ZAN"; + break; + } + if (nCode >= 5263 && nCode <= 5265) + { + strValue = "ZANG"; + break; + } + if (nCode >= 5266 && nCode <= 5279) + { + strValue = "ZAO"; + break; + } + if (nCode >= 5280 && nCode <= 5283) + { + strValue = "ZE"; + break; + } + if (nCode == 5284) + { + strValue = "ZEI"; + break; + } + if (nCode == 5285) + { + strValue = "ZEN"; + break; + } + if (nCode >= 5286 && nCode <= 5289) + { + strValue = "ZENG"; + break; + } + if (nCode >= 5290 && nCode <= 5309) + { + strValue = "ZHA"; + break; + } + if (nCode >= 5310 && nCode <= 5315) + { + strValue = "ZHAI"; + break; + } + if (nCode >= 5316 && nCode <= 5332) + { + strValue = "ZHAN"; + break; + } + if (nCode >= 5333 && nCode <= 5347) + { + strValue = "ZHANG"; + break; + } + if (nCode >= 5348 && nCode <= 5357) + { + strValue = "ZHAO"; + break; + } + if (nCode >= 5358 && nCode <= 5367) + { + strValue = "ZHE"; + break; + } + if (nCode >= 5368 && nCode <= 5383) + { + strValue = "ZHEN"; + break; + } + if (nCode >= 5384 && nCode <= 5404) + { + strValue = "ZHENG"; + break; + } + if (nCode >= 5405 && nCode <= 5447) + { + strValue = "ZHI"; + break; + } + if (nCode >= 5448 && nCode <= 5458) + { + strValue = "ZHONG"; + break; + } + if (nCode >= 5459 && nCode <= 5472) + { + strValue = "ZHOU"; + break; + } + if (nCode >= 5473 && nCode <= 5504) + { + strValue = "ZHU"; + break; + } + if (nCode >= 5505 && nCode <= 5506) + { + strValue = "ZHUA"; + break; + } + if (nCode == 5507) + { + strValue = "ZHUAI"; + break; + } + if (nCode >= 5508 && nCode <= 5513) + { + strValue = "ZHUAN"; + break; + } + if (nCode >= 5514 && nCode <= 5520) + { + strValue = "ZHUANG"; + break; + } + if (nCode >= 5521 && nCode <= 5526) + { + strValue = "ZHUI"; + break; + } + if (nCode >= 5527 && nCode <= 5528) + { + strValue = "ZHUN"; + break; + } + if (nCode >= 5529 && nCode <= 5539) + { + strValue = "ZHUO"; + break; + } + if (nCode >= 5540 && nCode <= 5554) + { + strValue = "ZI"; + break; + } + if (nCode >= 5555 && nCode <= 5561) + { + strValue = "ZONG"; + break; + } + if (nCode >= 5562 && nCode <= 5565) + { + strValue = "ZOU"; + break; + } + if (nCode >= 5566 && nCode <= 5573) + { + strValue = "ZU"; + break; + } + if (nCode >= 5574 && nCode <= 5575) + { + strValue = "ZUAN"; + break; + } + if (nCode >= 5576 && nCode <= 5579) + { + strValue = "ZUI"; + break; + } + if (nCode >= 5580 && nCode <= 5581) + { + strValue = "ZUN"; + break; + } + if (nCode >= 5582 && nCode <= 5589) + { + strValue = "ZUO"; + break; + } + } + if (strValue == "") strValue = "?"; + return strValue; + } + std::string getLetter(std::string strText, bool head_only = false) + { + bool m_blnSimaple = head_only; + bool m_blnFirstBig = true; + bool m_blnAllBiG = true; + bool m_LetterEnd = false; + + unsigned char ucHigh, ucLow; + int nCode, j; + std::string strValue = ""; + for (int i = 0; i < strText.length(); i++) + { + if ((unsigned char)strText[i] < 0x80) + { + strValue = strValue + strText[i]; + if (m_LetterEnd) strValue = strValue + '/'; + continue; + } + ucHigh = (unsigned char)strText[i]; + ucLow = (unsigned char)strText[i + 1]; + if (ucHigh < 0xa1 || ucLow < 0xa1) + continue; + else + nCode = (ucHigh - 0xa0) * 100 + ucLow - 0xa0; + std::string strRes = findLetter(nCode); + if (m_blnSimaple && strRes.length() > 0) + { + strRes = strRes.substr(0, 1); + + } + if (!m_blnFirstBig) + { + //strRes.SetAt(0,strRes.GetAt(0)+32); + strRes[0] = strRes[0] + 32; + } + if (!m_blnAllBiG) + { + for (j = 1; j < strRes.length(); j++) + { + //strRes.SetAt(j,(strRes.GetAt(j)+32)); + strRes[j] = strRes[j] + 32; + } + } + strValue = strValue + strRes; + i++; + if (m_LetterEnd) strValue = strValue + '/'; + } + return strValue; + } + + void erase_ill_def(std::wstring& str) + { + for (int i = 0; i < str.length(); ++i) + { + if (str[i] == L' ' || str[i] == L'?') + { + str.erase(i, 1); + i--; + } + else if (str[i] == L'-' || str[i] == L'+') + { + str.replace(i, 1, L"_"); + } + } + } +} + +////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// name & title map ... +struct +{ + const char* name; + const char* title; +}g_opts[] = { {SANE_STD_OPT_NAME_RESTORE , OPTION_TITLE_HFMRSZ} + , {SANE_STD_OPT_NAME_HELP , OPTION_TITLE_BZ} + , {SANE_STD_OPT_NAME_IS_MULTI_OUT , OPTION_TITLE_DLSC} + , {SANE_STD_OPT_NAME_MULTI_OUT_TYPE , OPTION_TITLE_DLSCLX} + , {SANE_STD_OPT_NAME_COLOR_MODE , OPTION_TITLE_YSMS} + , {SANE_STD_OPT_NAME_BINARY_THRESHOLD , OPTION_TITLE_HBTXYZ} + , {SANE_STD_OPT_NAME_REVERSE_01 , OPTION_TITLE_HBTXFSSC} + , {SANE_STD_OPT_NAME_FILTER , OPTION_TITLE_HDHHBTX_CSYZQ} + , {SANE_STD_OPT_NAME_RID_MULTIOUT_RED , OPTION_TITLE_24WCSTX_DLSCCH} + , {SANE_STD_OPT_NAME_RID_ANSWER_SHEET_RED , OPTION_TITLE_24WCSTX_DTKCH} + , {SANE_STD_OPT_NAME_ERASE_BACKGROUND , OPTION_TITLE_BJYC} + , {SANE_STD_OPT_NAME_BKG_COLOR_RANGE , OPTION_TITLE_BJSCFDFW} + , {SANE_STD_OPT_NAME_SHARPEN , OPTION_TITLE_RHYMH} + , {SANE_STD_OPT_NAME_RID_MORR , OPTION_TITLE_QCMW} + , {SANE_STD_OPT_NAME_RID_GRID , OPTION_TITLE_CWW} + , {SANE_STD_OPT_NAME_ERROR_EXTENSION , OPTION_TITLE_CWKS} + , {SANE_STD_OPT_NAME_NOISE_OPTIMIZE , OPTION_TITLE_HBTXZDYH} + , {SANE_STD_OPT_NAME_NOISE_SIZE , OPTION_TITLE_ZDYHCC} + , {SANE_STD_OPT_NAME_PAPER , OPTION_TITLE_ZZCC} + , {SANE_STD_OPT_NAME_CUSTOM_AREA , OPTION_TITLE_ZDYSMQY} + , {SANE_STD_OPT_NAME_CUSTOM_AREA_LEFT , OPTION_TITLE_SMQYZCmm} + , {SANE_STD_OPT_NAME_CUSTOM_AREA_RIGHT , OPTION_TITLE_SMQYYCmm} + , {SANE_STD_OPT_NAME_CUSTOM_AREA_TOP , OPTION_TITLE_SMQYSCmm} + , {SANE_STD_OPT_NAME_CUSTOM_AREA_BOTTOM , OPTION_TITLE_SMQYXCmm} + , {SANE_STD_OPT_NAME_SIZE_CHECK , OPTION_TITLE_CCJC} + , {SANE_STD_OPT_NAME_PAGE , OPTION_TITLE_SMYM} + , {SANE_STD_OPT_NAME_DISCARD_BLANK_SENS , OPTION_TITLE_TGKBYLMD} + , {SANE_STD_OPT_NAME_RESOLUTION , OPTION_TITLE_FBL} + , {SANE_STD_OPT_NAME_TIME_TO_SLEEP , OPTION_TITLE_XMSJ} + , {SANE_STD_OPT_NAME_IMAGE_QUALITY , OPTION_TITLE_HZ} + , {SANE_STD_OPT_NAME_EXCHANGE ,OPTION_TITLE_JHZFM} + , {SANE_STD_OPT_NAME_SPLIT ,OPTION_TITLE_TXCF } + , {SANE_STD_OPT_NAME_ANTI_SKEW , OPTION_TITLE_ZDJP} + , {SANE_STD_OPT_NAME_IS_CUSTOM_GAMMA , OPTION_TITLE_QYSDQX} + , {SANE_STD_OPT_NAME_GAMMA , OPTION_TITLE_JMZ} + , {SANE_STD_OPT_NAME_BRIGHTNESS , OPTION_TITLE_LDZ} + , {SANE_STD_OPT_NAME_CONTRAST , OPTION_TITLE_DBD} + , {SANE_STD_OPT_NAME_IS_PHOTO_MODE , OPTION_TITLE_ZPMS} + , {SANE_STD_OPT_NAME_ERASE_BLACK_FRAME , OPTION_TITLE_XCHK} + , {SANE_STD_OPT_NAME_DARK_SAMPLE , OPTION_TITLE_SSYZ} + , {SANE_STD_OPT_NAME_THRESHOLD , OPTION_TITLE_YZ} + , {SANE_STD_OPT_NAME_ANTI_NOISE_LEVEL , OPTION_TITLE_BJKZDJ} + , {SANE_STD_OPT_NAME_MARGIN , OPTION_TITLE_BYSJ} + , {SANE_STD_OPT_NAME_FILL_BKG_MODE , OPTION_TITLE_BJTCFS} + , {SANE_STD_OPT_NAME_IS_ANTI_PERMEATE , OPTION_TITLE_FZST} + , {SANE_STD_OPT_NAME_ANTI_PERMEATE_LEVEL , OPTION_TITLE_FZSTDJ} + , {SANE_STD_OPT_NAME_RID_HOLE_L , OPTION_TITLE_CKYCZC} + , {SANE_STD_OPT_NAME_SEARCH_HOLE_RANGE_L , OPTION_TITLE_ZCCKSSFWZFMBL} + , {SANE_STD_OPT_NAME_RID_HOLE_R , OPTION_TITLE_CKYCYC} + , {SANE_STD_OPT_NAME_SEARCH_HOLE_RANGE_R , OPTION_TITLE_YCCKSSFWZFMBL} + , {SANE_STD_OPT_NAME_RID_HOLE_T , OPTION_TITLE_CKYCSC} + , {SANE_STD_OPT_NAME_SEARCH_HOLE_RANGE_T , OPTION_TITLE_SCCKSSFWZFMBL} + , {SANE_STD_OPT_NAME_RID_HOLE_B , OPTION_TITLE_CKYCXC} + , {SANE_STD_OPT_NAME_SEARCH_HOLE_RANGE_B , OPTION_TITLE_XCCKSSFWZFMBL} + , {SANE_STD_OPT_NAME_IS_FILL_COLOR , OPTION_TITLE_SCTC} + , {SANE_STD_OPT_NAME_IS_ULTROSONIC_CHECK , OPTION_TITLE_CSBJC} + , {SANE_STD_OPT_NAME_DOUBLE_FEED_HANDLE , OPTION_TITLE_SZTPCL} + , {SANE_STD_OPT_NAME_IS_CHECK_STAPLE , OPTION_TITLE_ZDJC} + , {SANE_STD_OPT_NAME_SCAN_MODE , OPTION_TITLE_SMZS} + , {SANE_STD_OPT_NAME_SCAN_COUNT , OPTION_TITLE_SMSL} + , {SANE_STD_OPT_NAME_TEXT_DIRECTION , OPTION_TITLE_WGFX} + , {SANE_STD_OPT_NAME_IS_ROTATE_BKG_180 , OPTION_TITLE_BMXZ180} + , {SANE_STD_OPT_NAME_IS_CHECK_DOG_EAR , OPTION_TITLE_ZJJC} + , {SANE_STD_OPT_NAME_DOG_EAR_SIZE , OPTION_TITLE_ZJDX} + , {SANE_STD_OPT_NAME_IS_CHECK_ASKEW , OPTION_TITLE_WXJC} + , {SANE_STD_OPT_NAME_ASKEW_RANGE , OPTION_TITLE_WXRRD} + , {SANE_STD_OPT_NAME_FEED_STRENGTH , OPTION_TITLE_FZQD} + , {SANE_STD_OPT_NAME_IS_AUTO_FEED_STRENGTH , OPTION_TITLE_ZDFZQD} + , {SANE_STD_OPT_NAME_FEED_STRENGTH_VALUE , OPTION_TITLE_JZSBL} + , {SANE_STD_OPT_NAME_WAIT_TO_SCAN , OPTION_TITLE_DZSM} + , {SANE_STD_OPT_NAME_FOLD_TYPE , OPTION_TITLE_DZMS} + , {SANE_STD_OPT_NAME_COLOR_CORRECTION , OPTION_TITLE_SPJZ} + , {SANE_STD_OPT_NAME_WAIT_SCAN_EXIT , OPTION_TITLE_DZSMTCSJ} +}, +g_discard[] = { {SANE_STD_OPT_NAME_REVERSE_01 , "\351\273\221\347\231\275\345\233\276\345\203\217\345\217\215\350\211\262\350\276\223\345\207\272\357\274\210\346\255\243\345\270\270\351\242\234\350\211\262\344\270\272\357\274\2320-\351\273\221\350\211\262\357\274\2331-\347\231\275\350\211\262\357\274\211"} // ڰͼɫɫΪ0-ɫ1-ɫ + , {SANE_STD_OPT_NAME_FILTER , "\347\201\260\345\272\246\346\210\226\351\273\221\347\231\275\345\233\276\345\203\217 - \351\231\244\350\211\262"} // ҶȻڰͼ - ɫ + , {SANE_STD_OPT_NAME_IS_AUTO_FEED_STRENGTH , "\350\207\252\345\212\250\346\220\223\347\272\270\345\274\272\345\272\246"} // Զֽǿ + , {SANE_STD_OPT_NAME_FEED_STRENGTH_VALUE , "\346\220\223\347\272\270\351\230\210\345\200\274"} // " ֵֽ" +}; + +static IMPLEMENT_OPTION_STRING_COMPARE(compare_title); +static const char* title_to_name(std::wstring& title) +{ + std::string utf8(coding::u2utf8(title.c_str())); + + for (size_t i = 0; i < _countof(g_discard); ++i) + { + if (compare_title(g_discard[i].title, utf8.c_str())) + { + for (size_t j = 0; j < _countof(g_opts); ++j) + { + if (strcmp(g_opts[j].name, g_discard[i].name) == 0) + { + title = coding::utf82u(g_opts[j].title); + break; + } + } + + return g_discard[i].name; + } + } + + for (size_t i = 0; i < _countof(g_opts); ++i) + { + if (compare_title(g_opts[i].title, utf8.c_str())) + return g_opts[i].name; + } + + return NULL; +} + + + + +////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// ChgjsonDlg dialog +static bool is_match(const char* str, const char* pattern) +{ + std::vector parts; + std::string all(pattern); + size_t pos = all.find("*"); + + while (pos != std::string::npos) + { + if (pos++) + parts.push_back(all.substr(0, pos)); + all.erase(0, pos); + pos = all.find("*"); + } + if (!all.empty()) + parts.push_back(all); + + for (pos = 0; pos < parts.size(); ++pos) + { + str = strstr(str, parts[pos].c_str()); + if (!str) + break; + str += parts[pos].length(); + } + + return pos == parts.size(); +} + +ChgjsonDlg::ChgjsonDlg(CWnd* pParent /*=NULL*/) + : CDialogEx(ChgjsonDlg::IDD, pParent) + , show_tree_tooltips_(true) + , show_list_tooltips_(true) +{ + std::string py(hz_2_py::getLetter("ɫģʽ", true)); + is_match("/usr/bin/python3.9", "bin*.9"); +} + +void ChgjsonDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialogEx::DoDataExchange(pDX); + DDX_Control(pDX, IDC_TREE1, tree_); + DDX_Control(pDX, IDC_LIST3, depends_); + DDX_Control(pDX, IDC_LIST_VALUES, constraint_list_); + DDX_Control(pDX, IDC_COMBO3, type_); + DDX_Control(pDX, IDC_COMBO4, constraint_); + DDX_Control(pDX, IDC_COMBO2, logic_); + DDX_Control(pDX, IDC_COMBO1, depend_item_); + DDX_Control(pDX, IDC_COMBO_DEFAULT, combo_default_); + DDX_Control(pDX, IDC_COMBO5, field_); + DDX_Control(pDX, IDC_COMBO6, unit_); + DDX_Control(pDX, IDC_COMBO7, group_); + DDX_Control(pDX, IDC_COMBO8, affect_); +} + +BEGIN_MESSAGE_MAP(ChgjsonDlg, CDialogEx) + ON_WM_PAINT() + ON_WM_QUERYDRAGICON() +// ON_WM_PASTE() + ON_COMMAND(ID_TREE_ADDGROUP, &ChgjsonDlg::OnTreeAddGroup) + ON_COMMAND(ID_TREE_ADDITEM, &ChgjsonDlg::OnTreeAddItem) + ON_COMMAND(ID_TREE_DELITEM, &ChgjsonDlg::OnTreeDelItem) + ON_COMMAND(ID_TREE_ADDPRODUCT, &ChgjsonDlg::OnTreeAddProduct) + ON_BN_CLICKED(IDC_BUTTON3, &ChgjsonDlg::OnBnClickedButton3) + ON_BN_CLICKED(IDC_BUTTON1, &ChgjsonDlg::OnBnClickedButton1) + ON_BN_CLICKED(IDC_BUTTON2, &ChgjsonDlg::OnBnClickedButton2) + ON_CBN_SELCHANGE(IDC_COMBO3, &ChgjsonDlg::OnCbnSelchangeDataType) + ON_CBN_SELCHANGE(IDC_COMBO4, &ChgjsonDlg::OnCbnSelchangeConstraintType) + ON_CBN_SELCHANGE(IDC_COMBO1, &ChgjsonDlg::OnCbnSelchangeDependItem) + ON_CBN_SELCHANGE(IDC_COMBO2, &ChgjsonDlg::OnCbnSelchangeLogic) + ON_NOTIFY(LVN_ENDLABELEDIT, IDC_LIST_VALUES, &ChgjsonDlg::OnLvnEndlabeleditListValues) + ON_BN_CLICKED(IDC_CHECK1, &ChgjsonDlg::OnBnClickedDepend) + ON_BN_CLICKED(IDC_BUTTON4, &ChgjsonDlg::OnBnClickedButton4) + ON_NOTIFY(NM_RCLICK, IDC_TREE1, &ChgjsonDlg::OnNMRClickMfcshelltree1) + ON_NOTIFY(TVN_SELCHANGED, IDC_TREE1, &ChgjsonDlg::OnTvnSelchangedTree1) + ON_COMMAND(ID_LISTMENU_SETDEFAULT, &ChgjsonDlg::OnListmenuSetdefault) + ON_COMMAND(ID_LISTMENU_DELETE, &ChgjsonDlg::OnListmenuDelete) + ON_NOTIFY(NM_RCLICK, IDC_LIST_VALUES, &ChgjsonDlg::OnNMRClickListValues) + ON_LBN_DBLCLK(IDC_LIST3, &ChgjsonDlg::OnLbnDblclkList3) + ON_WM_DROPFILES() + ON_COMMAND(ID_TREE_RENAME, &ChgjsonDlg::OnTreeRename) + ON_COMMAND(ID_TREE_LOADFILE, &ChgjsonDlg::OnTreeLoadfile) + ON_NOTIFY(LVN_KEYDOWN, IDC_LIST_VALUES, &ChgjsonDlg::OnLvnKeydownListValues) + ON_NOTIFY(TVN_KEYDOWN, IDC_TREE1, &ChgjsonDlg::OnTvnKeydownTree1) + ON_NOTIFY(TVN_GETINFOTIP, IDC_TREE1, &ChgjsonDlg::OnTvnGetInfoTipTree1) + ON_NOTIFY(LVN_GETINFOTIP, IDC_LIST_VALUES, &ChgjsonDlg::OnLvnGetInfoTipListValues) + ON_COMMAND(ID_TREE_TOOLTIPS, &ChgjsonDlg::OnTreeTooltips) + ON_COMMAND(ID_LISTMENU_TOOLTIPS, &ChgjsonDlg::OnListmenuTooltips) + ON_COMMAND(ID_TREE_EXPORTCHAR, &ChgjsonDlg::OnTreeExportCharConstants) + ON_BN_CLICKED(IDC_TO_FILE, &ChgjsonDlg::OnBnClickedToFile) + ON_COMMAND(ID_TREE_LOADCLIPBOARD, &ChgjsonDlg::OnTreeLoadClipboard) + ON_COMMAND(ID_TREE_UNIFYSEQUENCE, &ChgjsonDlg::OnTreeUnifySequence) +END_MESSAGE_MAP() + + +// ChgjsonDlg message handlers +int get_cur_sel(CListCtrl* lc) +{ + POSITION pos = lc->GetFirstSelectedItemPosition(); + int sel = lc->GetNextSelectedItem(pos); + + return sel; +} +std::wstring get_tree_item_text(CTreeCtrl* tree, HTREEITEM root, DWORD_PTR* data = NULL) +{ + CString t(tree->GetItemText(root)); + std::wstring ret(t.GetBuffer()); + + t.ReleaseBuffer(); + if (data) + *data = tree->GetItemData(root); + + return ret; +} +std::wstring get_tree_selected_item_text(CTreeCtrl* tree, DWORD_PTR* data) +{ + HTREEITEM sel = tree->GetSelectedItem(); + + if (data) + *data = 0; + + if (sel) + return get_tree_item_text(tree, sel, data); + else + return L""; +} +bool split(std::wstring str, ChgjsonDlg::DEPENDITEM* di) +{ + size_t pos = str.find(L"!"); + + if (pos == std::wstring::npos) + { + pos = str.find(L">"); + if (pos == std::wstring::npos) + { + pos = str.find(L"<"); + if (pos == std::wstring::npos) + { + pos = str.find(L"="); + } + } + } + + if (pos == std::wstring::npos) + return false; + + di->parent = str.substr(0, pos); + di->logic_values = str.substr(pos); + + return true; +} + +BOOL ChgjsonDlg::OnInitDialog() +{ + CDialogEx::OnInitDialog(); + + // Set the icon for this dialog. The framework does this automatically + // when the application's main window is not a dialog + + // TODO: Add extra initialization here + ChangeWindowMessageFilter(WM_DROPFILES, MSGFLT_ADD); + constraint_list_.InsertColumn(0, TEXT("Value lists"), 0, 177); + constraint_list_.InsertColumn(1, TEXT("Default"), 0, 48); + type_.SetCurSel(0); + unit_.SetCurSel(0); + field_.SetCurSel(0); + constraint_.SetCurSel(0); + // constraint_list_.ModifyStyleEx(0, LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_INFOTIP); + constraint_list_.SetExtendedStyle(constraint_list_.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_INFOTIP); + constraint_list_.SetItemData(constraint_list_.InsertItem(constraint_list_.GetItemCount(), TEXT("click me to add value ...")), 1); + tree_menu_.LoadMenu(IDR_MENU1); + func_menu_.LoadMenu(IDR_MENU2); + + BITMAP bmi = { 0 }; + GetObject(LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP1)), sizeof(bmi), &bmi); + tree_img_.Create(IDB_BITMAP1, bmi.bmWidth / 2, bmi.bmWidth / 2, RGB(255, 255, 255)); + tree_.SetImageList(&tree_img_, TVSIL_NORMAL); + ((CButton*)GetDlgItem(IDC_CHECK_VISIBLE))->SetCheck(BST_CHECKED); + init_control_statu(); + + return TRUE; // return TRUE unless you set the focus to a control +} + +void ChgjsonDlg::to_define_header(std::vector& defs, const wchar_t* str, const wchar_t* parent) +{ + while (*str == L' ') + str++; + + ChgjsonDlg::DEFH h; + std::string ansi(coding::u2a(str)); + std::wstring py(coding::a2u(hz_2_py::getLetter(ansi, true).c_str())); + + if (parent) + { + ansi = coding::u2a(parent); + h.name = OPT_VALUE_PREFIX; + h.name += coding::a2u(hz_2_py::getLetter(ansi, true).c_str()) + L"_"; + } + else + h.name = OPT_TITLE_PREFIX; + h.name += py; + hz_2_py::erase_ill_def(h.name); + if (std::find(defs.begin(), defs.end(), h.name) != defs.end()) + { + ansi = coding::u2a(str); + py = coding::a2u(hz_2_py::getLetter(ansi, false).c_str()); + if (parent) + { + ansi = coding::u2a(parent); + h.name = OPT_VALUE_PREFIX; + h.name += coding::a2u(hz_2_py::getLetter(ansi, true).c_str()) + L"_"; + } + else + h.name = OPT_TITLE_PREFIX; + h.name += py; + hz_2_py::erase_ill_def(h.name); + } + + h.value = str; + + ansi = coding::u2utf8(str); + for (size_t i = 0; i < ansi.length(); ++i) + { + wchar_t buf[8] = { 0 }; + + if ((unsigned char)ansi[i] <= 0x7f) + buf[0] = ansi[i]; + else + swprintf_s(buf, _countof(buf) - 1, L"\\%03o", (unsigned char)ansi[i]); + h.utf8_in_oct += buf; + } + + defs.push_back(h); +} +std::string ChgjsonDlg::save_define_header_2_file(std::vector& defs, const wchar_t* file) +{ + int max_l = 0; + std::wstring space(L""), + cont(L"//\r\n// definitions for option titles and values\r\n//\r\n// all multi-bytes letter are in UTF-8 format\r\n//\r\n"), + prev(L"none"); + wchar_t buf[128] = { 0 }; + time_t t = time(NULL); + struct tm* now = localtime(&t); + + swprintf(buf, L"// Date: %04d-%02d-%02d %02d:%02d:%02d\r\n//\r\n", now->tm_year + 1900, now->tm_mon + 1, now->tm_mday + , now->tm_hour, now->tm_min, now->tm_sec); + cont += buf; + cont += L"\r\n#pragma once\r\n\r\n\r\n"; + + for (size_t i = 0; i < defs.size(); ++i) + { + if (max_l < defs[i].name.length()) + max_l = defs[i].name.length(); + } + + max_l += 15; + max_l /= 8; + max_l *= 8; + space.resize(max_l, L' '); + + for (size_t i = 0; i < defs.size(); ++i) + { + if (defs[i].name.find(prev) == std::wstring::npos) + { + cont += L"\r\n"; + prev = defs[i].name; + size_t pos = prev.rfind(L'_'); + if (pos != std::wstring::npos) + prev = prev.substr(pos); + } + cont += L"// #define " + defs[i].name; + cont += space.substr(0, max_l - defs[i].name.length() - 3); + cont += L"\"" + defs[i].value + L"\"\r\n"; + + cont += L"#define " + defs[i].name; + cont += space.substr(0, max_l - defs[i].name.length()); + cont += L"\"" + defs[i].utf8_in_oct + L"\"\r\n"; + } + + // reserve ... + std::wstring reserve(L"#define OPTION_TITLE_GMZ"); + max_l += 8; + reserve += space.substr(0, max_l - reserve.length()); + reserve += L"OPTION_TITLE_JMZ\r\n"; + + space.clear(); + space.resize(max_l, L'/'); + cont += L"\r\n\r\n" + space + L"\r\n// reserved ...\r\n" + space + L"\r\n" + reserve; + + // compare ... + cont += L"\r\n\r\n" + space + L"\r\n// string compare ...\r\n" + space + L"\r\n"; + cont += L"#define IMPLEMENT_OPTION_STRING_COMPARE(func_name) \\\r\n"; + cont += L" bool func_name(const char* opt_define, const char* value) \\\r\n"; + cont += L" { \\\r\n"; + cont += L" while(*value++ == L' '); \\\r\n"; + cont += L" value--; \\\r\n"; + cont += L" return strcmp(opt_define, value) == 0; \\\r\n"; + cont += L" }\r\n\r\n\r\n"; + std::string bom(""), utf8(coding::u2utf8(cont.c_str())); + + coding_util::bom::from_utf8(utf8.c_str(), utf8.length(), coding::get_string, &bom); + if (file) + file_util::save_2_file(bom.c_str(), bom.length(), file); + else + { + file_util::set_clipboard(cont.c_str(), cont.length() * 2, CF_UNICODETEXT); + } + + return bom; +} + +void ChgjsonDlg::init_control_statu(void) +{ + HTREEITEM root = tree_.GetSelectedItem(); + BOOL valid = FALSE; + int type_ind = 0, constraint_ind = 0, default_ind = 1; + + GetDlgItem(IDC_STATIC_DEFAULT2)->ShowWindow(SW_HIDE); + GetDlgItem(IDC_COMBO_DEFAULT)->ShowWindow(SW_HIDE); + + if (root) + { + DWORD_PTR ptr = NULL; + std::wstring t(get_tree_selected_item_text(&tree_, &ptr)); + DWORD data = (DWORD)ptr; + + if (data == TREE_ITEM_CONFIG) + { + std::vector::iterator it = std::find(hg_items_.begin(), hg_items_.end(), t.c_str()); + if (it != hg_items_.end()) + { + valid = TRUE; + set_control_status(*it); + } + } + } + + GetDlgItem(IDC_EDIT_DESC)->EnableWindow(valid); + GetDlgItem(IDC_CHECK_ADVANCED)->EnableWindow(valid); + GetDlgItem(IDC_CHECK_READONLY)->EnableWindow(valid); + GetDlgItem(IDC_CHECK_DEVICEONLY)->EnableWindow(valid); + constraint_.EnableWindow(valid); + depends_.EnableWindow(valid); + type_.EnableWindow(valid); + + GetDlgItem(IDC_RADIO_ALL)->EnableWindow(valid); + GetDlgItem(IDC_RADIO_ANY)->EnableWindow(valid); + depend_item_.EnableWindow(valid); + logic_.EnableWindow(valid); + GetDlgItem(IDC_EDIT_LOWER)->EnableWindow(valid); + GetDlgItem(IDC_BUTTON1)->EnableWindow(valid); + GetDlgItem(IDC_BUTTON2)->EnableWindow(valid); + GetDlgItem(IDC_BUTTON3)->EnableWindow(valid); + GetDlgItem(IDC_BUTTON4)->EnableWindow(valid); +} +void ChgjsonDlg::delete_tree_item(HTREEITEM root) +{ + HTREEITEM child = tree_.GetChildItem(root); + + while (child) + { + delete_tree_item(child); + child = tree_.GetChildItem(root); + } + + std::wstring name(get_tree_item_text(&tree_, root)); + std::vector::iterator it = std::find(hg_items_.begin(), hg_items_.end(), name.c_str()); + + tree_.DeleteItem(root); + if (it != hg_items_.end()) + { + // delete depending items ... + for (size_t i = 0; i < hg_items_.size(); ++i) + { + if (i == it - hg_items_.begin()) + continue; + + std::vector::iterator d = std::find(hg_items_[i].depend.begin(), hg_items_[i].depend.end(), name.c_str()); + while (d != hg_items_[i].depend.end()) + { + hg_items_[i].depend.erase(d); + d = std::find(hg_items_[i].depend.begin(), hg_items_[i].depend.end(), name.c_str()); + } + } + hg_items_.erase(it); + } +} +int ChgjsonDlg::find_config_item(const wchar_t* item_name) +{ + std::vector::iterator it = std::find(hg_items_.begin(), hg_items_.end(), item_name); + + if (it == hg_items_.end()) + return -1; + else + return it - hg_items_.begin(); +} +int ChgjsonDlg::check_depend(const wchar_t* l, const wchar_t* r) +{ + // -1: l depends on r; 0: no depend; 1: r depends on l + int depend = 0; + std::vector::iterator il = std::find(hg_items_.begin(), hg_items_.end(), l), + ir = std::find(hg_items_.begin(), hg_items_.end(), r); + + if (il != hg_items_.end() && ir != hg_items_.end()) + { + std::vector::iterator it = std::find(il->depend.begin(), il->depend.end(), r); + if (it != il->depend.end()) + depend = -1; + else + { + it = std::find(ir->depend.begin(), ir->depend.end(), l); + if (it != ir->depend.end()) + depend = 1; + } + } + + return depend; +} +void ChgjsonDlg::set_control_status(const HGITEM& item) +{ + ::SetDlgItemTextW(m_hWnd, IDC_EDIT_DESC, item.desc.c_str()); + + if (item.type == L"bool") + type_.SetCurSel(0); + else if (item.type == L"int") + type_.SetCurSel(1); + else if (item.type == L"float") + type_.SetCurSel(2); + else if (item.type == L"string") + type_.SetCurSel(3); + else // if (item.type == L"button") + type_.SetCurSel(4); + + ((CButton*)GetDlgItem(IDC_CHECK_ADVANCED))->SetCheck(item.advanced ? BST_CHECKED : BST_UNCHECKED); + ((CButton*)GetDlgItem(IDC_CHECK_READONLY))->SetCheck(item.readonly ? BST_CHECKED : BST_UNCHECKED); + //((CButton*)GetDlgItem(IDC_CHECK_DEVICEONLY))->SetCheck(item.deviceonly ? BST_CHECKED : BST_UNCHECKED); + ((CButton*)GetDlgItem(IDC_CHECK_VISIBLE))->SetCheck(item.visible ? BST_CHECKED : BST_UNCHECKED); + + SetDlgItemInt(IDC_EDIT_POS, item.position); + field_.SetCurSel(item.field); + unit_.SetCurSel(item.unit); + group_.SetCurSel(coding::group_index(item.group.c_str())); + affect_.SetCurSel(item.affect >> 1); + + // value ... + GetDlgItem(IDC_STATIC_FROM)->ShowWindow(SW_HIDE); + GetDlgItem(IDC_STATIC_TO)->ShowWindow(SW_HIDE); + GetDlgItem(IDC_EDIT_FROM)->ShowWindow(SW_HIDE); + GetDlgItem(IDC_EDIT_TO)->ShowWindow(SW_HIDE); + constraint_list_.ShowWindow(SW_HIDE); + GetDlgItem(IDC_STATIC_DEFAULT)->ShowWindow(SW_HIDE); + GetDlgItem(IDC_EDIT_DEFAULT)->ShowWindow(SW_HIDE); + GetDlgItem(IDC_COMBO_DEFAULT)->ShowWindow(SW_HIDE); + GetDlgItem(IDC_EDIT_STEP)->ShowWindow(SW_HIDE); + GetDlgItem(IDC_STATIC_STEP)->ShowWindow(SW_HIDE); + constraint_.SetCurSel(item.range.type); + if (item.range.type == RANGE_TYPE_NONE) + { + GetDlgItem(IDC_STATIC_DEFAULT)->ShowWindow(SW_SHOW); + if (item.type == L"bool") + { + GetDlgItem(IDC_COMBO_DEFAULT)->ShowWindow(SW_SHOW); + ((CComboBox*)GetDlgItem(IDC_COMBO_DEFAULT))->SetCurSel(item.init_val == L"true"); + } + else + { + GetDlgItem(IDC_EDIT_DEFAULT)->ShowWindow(SW_SHOW); + ::SetDlgItemTextW(m_hWnd, IDC_EDIT_DEFAULT, item.init_val.c_str()); + } + } + else if (item.range.type == RANGE_TYPE_RANGE) + { + GetDlgItem(IDC_STATIC_DEFAULT)->ShowWindow(SW_SHOW); + GetDlgItem(IDC_EDIT_DEFAULT)->ShowWindow(SW_SHOW); + ::SetDlgItemTextW(m_hWnd, IDC_EDIT_DEFAULT, item.init_val.c_str()); + + GetDlgItem(IDC_STATIC_FROM)->ShowWindow(SW_SHOW); + GetDlgItem(IDC_STATIC_TO)->ShowWindow(SW_SHOW); + GetDlgItem(IDC_EDIT_FROM)->ShowWindow(SW_SHOW); + GetDlgItem(IDC_EDIT_TO)->ShowWindow(SW_SHOW); + GetDlgItem(IDC_EDIT_STEP)->ShowWindow(SW_SHOW); + GetDlgItem(IDC_STATIC_STEP)->ShowWindow(SW_SHOW); + + if (item.type == L"int") + { + SetDlgItemInt(IDC_EDIT_FROM, item.range.lower); + SetDlgItemInt(IDC_EDIT_TO, item.range.upper); + SetDlgItemInt(IDC_EDIT_STEP, item.range.step); + } + else + { + wchar_t buf[80] = { 0 }; + + swprintf_s(buf, _countof(buf) - 1, L"%f", item.range.lower); + ::SetDlgItemTextW(m_hWnd, IDC_EDIT_FROM, buf); + + swprintf_s(buf, _countof(buf) - 1, L"%f", item.range.upper); + ::SetDlgItemTextW(m_hWnd, IDC_EDIT_TO, buf); + + swprintf_s(buf, _countof(buf) - 1, L"%f", item.range.step); + ::SetDlgItemTextW(m_hWnd, IDC_EDIT_STEP, buf); + } + } + else // list + { + constraint_list_.ShowWindow(SW_SHOW); + constraint_list_.DeleteAllItems(); + for (size_t i = 0; i < item.range.queue.size(); ++i) + { + int ind = constraint_list_.InsertItem(constraint_list_.GetItemCount(), item.range.queue[i].c_str()); + if (item.range.queue[i] == item.init_val) + constraint_list_.SetItemText(ind, 1, TEXT("yes")); + } + + int ind = constraint_list_.InsertItem(constraint_list_.GetItemCount(), TEXT("click me to add new item ...")); + constraint_list_.SetItemData(ind, 1); + } + + // depend + ((CButton*)GetDlgItem(IDC_CHECK1))->SetCheck(BST_UNCHECKED); + ((CButton*)GetDlgItem(IDC_RADIO_ANY))->SetCheck(BST_UNCHECKED); + ((CButton*)GetDlgItem(IDC_RADIO_ALL))->SetCheck(BST_UNCHECKED); + GetDlgItem(IDC_RADIO_ALL)->EnableWindow(FALSE); + GetDlgItem(IDC_RADIO_ANY)->EnableWindow(FALSE); + GetDlgItem(IDC_EDIT_LOWER)->EnableWindow(FALSE); + GetDlgItem(IDC_COMBO_BOOL)->ShowWindow(SW_HIDE); + GetDlgItem(IDC_STATIC_AND)->EnableWindow(FALSE); + GetDlgItem(IDC_EDIT_UPPER)->EnableWindow(FALSE); + GetDlgItem(IDC_BUTTON3)->EnableWindow(FALSE); + GetDlgItem(IDC_LIST3)->EnableWindow(FALSE); + depends_.ResetContent(); + if (item.depend.size()) + { + ((CButton*)GetDlgItem(IDC_CHECK1))->SetCheck(BST_CHECKED); + OnBnClickedDepend(); + if (item.depend_or) + { + ((CButton*)GetDlgItem(IDC_RADIO_ANY))->SetCheck(BST_CHECKED); + ((CButton*)GetDlgItem(IDC_RADIO_ALL))->SetCheck(BST_UNCHECKED); + } + else + { + ((CButton*)GetDlgItem(IDC_RADIO_ANY))->SetCheck(BST_UNCHECKED); + ((CButton*)GetDlgItem(IDC_RADIO_ALL))->SetCheck(BST_CHECKED); + } + for (size_t i = 0; i < item.depend.size(); ++i) + { + depends_.AddString((item.depend[i].parent + item.depend[i].logic_values).c_str()); + } + } +} + +void* ChgjsonDlg::create_json(int item, std::vector* def_h, std::wstring* name) +{ + known_file_util::IJsonW* jsn = known_file_util::create_jsonW(); + wchar_t buf[128] = { 0 }; + int prefer_size = 0; + const char* opt_name = title_to_name(hg_items_[item].title); + + jsn->set_value(L"category", hg_items_[item].advanced ? L"advanced" : L"base"); + jsn->set_value(L"readonly", hg_items_[item].readonly); + jsn->set_value(L"affect", hg_items_[item].affect); + //jsn->set_value(L"hwonly", hg_items_[item].deviceonly); + jsn->set_value(L"group", hg_items_[item].group.c_str()); + jsn->set_value(L"visible", hg_items_[item].visible); + jsn->set_value(L"field", field_name(hg_items_[item].field)); + jsn->set_value(L"pos", hg_items_[item].position); + jsn->set_value(L"unit", unit_name(hg_items_[item].unit)); + if (name) + { + if (opt_name) + { + // jsn->set_value(L"name", coding::utf82u(opt_name).c_str()); + *name = coding::utf82u(opt_name); + } + else + { + swprintf_s(buf, _countof(buf) - 1, L"cfg-%d", hg_items_[item].index); + // jsn->set_value(L"name", buf); + *name = buf; + } + } + + jsn->set_value(L"title", hg_items_[item].title.c_str()); + if (def_h) + ChgjsonDlg::to_define_header(*def_h, hg_items_[item].title.c_str()); + jsn->set_value(L"desc", hg_items_[item].desc.c_str()); + jsn->set_value(L"type", hg_items_[item].type.c_str()); + if (hg_items_[item].type == L"bool") + { + jsn->set_value(L"cur", hg_items_[item].init_val == L"true"); + jsn->set_value(L"default", hg_items_[item].init_val == L"true"); + } + else if (hg_items_[item].type == L"int") + { + jsn->set_value(L"cur", _wtoi(hg_items_[item].init_val.c_str())); + jsn->set_value(L"default", _wtoi(hg_items_[item].init_val.c_str())); + } + else if (hg_items_[item].type == L"float") + { + jsn->set_value(L"cur", _wtof(hg_items_[item].init_val.c_str())); + jsn->set_value(L"default", _wtof(hg_items_[item].init_val.c_str())); + } + else + { + jsn->set_value(L"cur", hg_items_[item].init_val.c_str()); + jsn->set_value(L"default", hg_items_[item].init_val.c_str()); + } + jsn->set_value(L"size", hg_items_[item].bytes); + + if (hg_items_[item].range.type == RANGE_TYPE_RANGE) + { + known_file_util::IJsonW* r = known_file_util::create_jsonW(); + if (hg_items_[item].type == L"int") + { + r->set_value(L"min", (int)hg_items_[item].range.lower); + r->set_value(L"max", (int)hg_items_[item].range.upper); + r->set_value(L"step", (int)hg_items_[item].range.step); + } + else + { + r->set_value(L"min", hg_items_[item].range.lower); + r->set_value(L"max", hg_items_[item].range.upper); + r->set_value(L"step", hg_items_[item].range.step); + } + jsn->set_value(L"range", r); + r->release(); + } + else if (hg_items_[item].range.type == RANGE_TYPE_LIST) + { + known_file_util::IJsonW* r = known_file_util::create_jsonW(); + r->set_as_array(true); + if (hg_items_[item].type == L"int") + { + for (size_t i = 0; i < hg_items_[item].range.queue.size(); ++i) + { + *r += _wtoi(hg_items_[item].range.queue[i].c_str()); + } + } + else if (hg_items_[item].type == L"float") + { + for (size_t i = 0; i < hg_items_[item].range.queue.size(); ++i) + { + *r += _wtof(hg_items_[item].range.queue[i].c_str()); + } + } + else if (hg_items_[item].type == L"string") + { + int size = 0; + for (size_t i = 0; i < hg_items_[item].range.queue.size(); ++i) + { + *r += hg_items_[item].range.queue[i].c_str(); + if (def_h) + ChgjsonDlg::to_define_header(*def_h, hg_items_[item].range.queue[i].c_str(), hg_items_[item].title.c_str()); + if (size < coding::string_need_bytes(hg_items_[item].range.queue[i].c_str())) + size = coding::string_need_bytes(hg_items_[item].range.queue[i].c_str()); + } + if (hg_items_[item].bytes < size) + jsn->set_value(L"size", size); + } + jsn->set_value(L"range", r); + r->release(); + } + + if (hg_items_[item].depend.size()) + { + std::wstring prev(L""); + + std::sort(hg_items_[item].depend.begin(), hg_items_[item].depend.end()); + known_file_util::IJsonW* d = known_file_util::create_jsonW(); + d->set_as_array(true); + for (int i = 0; i < hg_items_[item].depend.size(); ++i) + { + int ind = find_config_item(hg_items_[item].depend[i].parent.c_str()); + if (ind != -1) + { + std::wstring n(coding::utf82u(title_to_name(hg_items_[ind].title))); + if (prev != n) + { + *d += (n + hg_items_[item].depend[i].logic_values).c_str(); + prev = n; + } + else + *d += hg_items_[item].depend[i].logic_values.c_str(); + } + } + + if (hg_items_[item].depend_or) + jsn->set_value(L"depend_or", d); + else + jsn->set_value(L"depend_and", d); + d->release(); + } + if (prefer_size) + jsn->set_value(L"size", prefer_size); + + return jsn; +} +std::string ChgjsonDlg::to_json_text(bool for_const, std::wstring* dev) +{ + known_file_util::IJsonW* jsn = known_file_util::create_jsonW(), * item = NULL, *glb = known_file_util::create_jsonW(); + HTREEITEM root = tree_.GetRootItem(), child = NULL; + std::wstring val(get_tree_item_text(&tree_, root)), grpname(L""); + int count = 1, group = 1, ind = 0; + wchar_t buf[128] = { 0 }; + + std::vector header; + std::wstring file(L""); + { + wchar_t path[MAX_PATH] = { 0 }, * name = NULL; + GetModuleFileNameW(NULL, path, _countof(path) - 1); + name = wcsrchr(path, L'\\'); + if (name++ == NULL) + name = path; + swprintf(name, L"%s_option_definitions.h", val.c_str()); + file = path; + } + + if (dev) + *dev = val; + glb->set_value(L"device_type", val.c_str()); + jsn->set_value(L"global", glb); + root = tree_.GetChildItem(root); + while (root) + { + if ((DWORD)tree_.GetItemData(root) == TREE_ITEM_CONFIG) + { + val = get_tree_item_text(&tree_, root); + ind = find_config_item(val.c_str()); + if (ind != -1) + { + std::wstring key(L""); + hg_items_[ind].index = count++; + item = (known_file_util::IJsonW*)create_json(ind, &header, &key); + //item->set_value(L"group", grpname.c_str()); + // swprintf_s(buf, _countof(buf) - 1, L"%d", hg_items_[ind].index); + jsn->set_value(key.c_str(), item); + item->release(); + item = NULL; + } + } + else + { + val = get_tree_item_text(&tree_, root); + item = known_file_util::create_jsonW(); + item->set_value(L"category", L"base"); + swprintf_s(buf, _countof(buf) - 1, L"grp-%d", group++); + grpname = buf; + // item->set_value(L"name", buf); + item->set_value(L"title", val.c_str()); + item->set_value(L"type", L"group"); + // swprintf_s(buf, _countof(buf) - 1, L"%d", count++); + count++; + jsn->set_value(buf, item); + + child = tree_.GetChildItem(root); + while (child) + { + val = get_tree_item_text(&tree_, child); + ind = find_config_item(val.c_str()); + if (ind != -1) + { + hg_items_[ind].index = count++; + if (item) + { + item->set_value(L"category", hg_items_[ind].advanced ? L"advanced" : L"base"); + item->set_value(L"readonly", hg_items_[ind].readonly); + item->set_value(L"affect", hg_items_[ind].affect); + //item->set_value(L"hwonly", hg_items_[ind].deviceonly); + item->set_value(L"group", hg_items_[ind].group.c_str()); + item->set_value(L"field", field_name(hg_items_[ind].field)); + item->set_value(L"pos", hg_items_[ind].position); + item->set_value(L"visible", hg_items_[ind].visible); + item->set_value(L"unit", unit_name(hg_items_[ind].unit)); + item->release(); + } + std::wstring key(L""); + item = (known_file_util::IJsonW*)create_json(ind, &header, &key); + //item->set_value(L"group", grpname.c_str()); + + // swprintf_s(buf, _countof(buf) - 1, L"%d", hg_items_[ind].index); + jsn->set_value(key.c_str(), item); + item->release(); + item = NULL; + } + child = tree_.GetNextSiblingItem(child); + } + if (item) + item->release(); + } + + root = tree_.GetNextSiblingItem(root); + } + + val = L""; + glb->set_value(L"option_count", count); + glb->release(); + jsn->to_string(coding::get_wstring, &val); + jsn->release(); + + std::string utf8(""); + coding_util::unicode_2_utf8(val.c_str(), coding::get_string, &utf8); + if (header.size()) + { + if (for_const) + { + utf8 = ChgjsonDlg::save_define_header_2_file(header, NULL); + } + //else + //{ + // ChgjsonDlg::save_define_header_2_file(header, file.c_str()); + // file_util::display_file_in_explorer(file.c_str()); + //} + } + + return utf8; +} +void ChgjsonDlg::add_item(void* jsn_root, void* jsn_obj, HTREEITEM parent, bool old_ver) +{ + known_file_util::IJsonW* jsn = (known_file_util::IJsonW*)jsn_obj, * child = NULL, + * root = (known_file_util::IJsonW*)jsn_root; + std::wstring grp(get_tree_item_text(&tree_, parent)); + const wchar_t* val = NULL; + HGITEM item; + wchar_t buf[128] = { 0 }; + + jsn->get_value(L"title", &val); + if (!val) + return; + + item.title = val; + parent = add_tree_item(val, TREE_ITEM_CONFIG, parent); + + jsn->get_value(L"desc", &val); + if (val) + item.desc = val; + + jsn->get_value(L"type", &val); + if (val) + item.type = val; + + if (item.type == L"bool") + { + bool v = false; + jsn->get_value(L"default", v); + item.init_val = v ? L"true" : L"false"; + } + else if (item.type == L"int") + { + int v = 0; + jsn->get_value(L"default", v); + swprintf_s(buf, _countof(buf) - 1, L"%d", v); + item.init_val = buf; + } + else if (item.type == L"float") + { + double v = 0; + jsn->get_value(L"default", v); + swprintf_s(buf, _countof(buf) - 1, L"%f", v); + item.init_val = buf; + } + else + { + jsn->get_value(L"default", &val); + if (val) + item.init_val = val; + else + item.init_val = L""; + } + jsn->get_value(L"size", item.bytes); + + jsn->get_value(L"category", &val); + if (val && wcscmp(val, L"advanced") == 0) + item.advanced = true; + if (!jsn->get_value(L"readonly", item.readonly)) + item.readonly = false; + if (!jsn->get_value(L"affect", item.affect)) + item.affect = 0; + //if (!jsn->get_value(L"hwonly", item.deviceonly)) + // item.deviceonly = false; + if (jsn->get_value(L"group", &val) && val) + { + item.group = coding::group_name(coding::group_index(val)); + } + else + item.group = coding::group_name(coding::group_index(grp.c_str()));; + if (!jsn->get_value(L"visible", item.visible)) + item.visible = true; + item.field = 0; + jsn->get_value(L"field", &val); + if (val) + item.field = field_index(val); + item.unit = 0; + jsn->get_value(L"unit", &val); + if(val) + item.unit = unit_index(val); + if (!jsn->get_value(L"pos", item.position)) + item.position = 0; + + + jsn->get_value(L"depend_and", &child); + if (child) + { + item.depend_or = false; + } + else + { + jsn->get_value(L"depend_or", &child); + if (child) + item.depend_or = true; + } + if (child) + { + if (child->members()) + { + known_file_util::JSONMEMW m = child->first_member(known_file_util::JV_STRING); + DEPENDITEM di; + std::wstring parent_item(L""); + int num = 1; + + do + { + if (split(m.str_val, &di)) + { + known_file_util::IJsonW* d = NULL; + if (di.parent.empty()) + di.parent = parent_item; + else + parent_item = di.parent; + root->get_value(di.parent.c_str(), &d); + if (d) + { + d->get_value(L"title", &val); + if (val) + { + di.parent = val; + item.depend.push_back(di); + } + d->release(); + } + } + m = child->next_member(); + } while (num++ < child->members()); + } + child->release(); + } + + jsn->get_value(L"range", &child); + if (child) + { + if (item.type == L"int") + { + int l = 0, u = 0, s = 0; + if (child->get_value(L"min", l)) + { + child->get_value(L"max", u); + item.range.lower = l; + item.range.upper = u; + if (child->get_value(L"step", s)) + item.range.step = s; + else + item.range.step = 1; + item.range.type = RANGE_TYPE_RANGE; + } + else + { + item.range.type = RANGE_TYPE_LIST; + if (child->members()) + { + known_file_util::JSONMEMW m = child->first_member(known_file_util::JV_INT); + swprintf_s(buf, _countof(buf) - 1, L"%d", m.double_val); + item.range.queue.push_back(buf); + for (int i = 1; i < child->members(); ++i) + { + m = child->next_member(); + swprintf_s(buf, _countof(buf) - 1, L"%d", m.double_val); + item.range.queue.push_back(buf); + } + } + } + } + else if (item.type == L"float") + { + if (child->get_value(L"min", item.range.lower)) + { + child->get_value(L"max", item.range.upper); + if (!child->get_value(L"step", item.range.step)) + item.range.step = (item.range.upper - item.range.lower) / 10.0f; + item.range.type = RANGE_TYPE_RANGE; + } + else + { + item.range.type = RANGE_TYPE_LIST; + + if (child->members()) + { + known_file_util::JSONMEMW m = child->first_member(known_file_util::JV_FLOAT); + swprintf_s(buf, _countof(buf) - 1, L"%f", m.double_val); + item.range.queue.push_back(buf); + for (int i = 1; i < child->members(); ++i) + { + m = child->next_member(); + swprintf_s(buf, _countof(buf) - 1, L"%f", m.double_val); + item.range.queue.push_back(buf); + } + } + } + } + else if (item.type == L"string") + { + item.range.type = RANGE_TYPE_LIST; + if (child->members()) + { + known_file_util::JSONMEMW m = child->first_member(known_file_util::JV_STRING); + item.range.queue.push_back(m.str_val); + for (int i = 1; i < child->members(); ++i) + { + m = child->next_member(); + item.range.queue.push_back(m.str_val); + } + } + } + + child->release(); + } + else + item.range.type = RANGE_TYPE_NONE; + + hg_items_.push_back(item); +} +bool ChgjsonDlg::load_from_json_text(const wchar_t* txt, std::wstring* err_msg) +{ + int pos = 0; + known_file_util::IJsonW* jsn = known_file_util::create_jsonW(txt, &pos), * child = NULL; + + if (!jsn) + { + int ep = 10, len = 10; + if (lstrlenW(txt + pos) < 10) + len = lstrlenW(txt + pos); + if (pos < 10) + { + ep = pos; + pos = 10; + } + pos -= 10; + + std::wstring info(txt + pos, len + ep + 1); + wchar_t msg[80] = { 0 }; + + swprintf_s(msg, L"Error at position %d of char '%c'!\r\n\r\n", ep, info[ep]); + if (err_msg) + *err_msg = msg + info; + else + ::MessageBoxW(m_hWnd, (msg + info).c_str(), L"Load Error", MB_OK); + + return false; + } + + hg_items_.clear(); + tree_.DeleteAllItems(); + + const wchar_t* val = NULL; + HTREEITEM root = NULL, son = NULL; + int count = 0; + bool old_ver = false; + + jsn->get_value(L"device_type", &val); + if (val) + { + root = add_tree_item(val, TREE_ITEM_PRODUCT); + jsn->get_value(L"option_count", count); + old_ver = true; + } + else + { + known_file_util::IJsonW* all = nullptr; + jsn->get_value(L"global", &all); + if (all) + { + all->get_value(L"device_type", &val); + if(val) + root = add_tree_item(val, TREE_ITEM_PRODUCT); + all->release(); + } + if (!root) + { + jsn->release(); + return false; + } + } + son = root; + + GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE); + GetDlgItem(IDC_BUTTON2)->EnableWindow(TRUE); + if (old_ver) + { + for (int i = 1; i < count; ++i) + { + wchar_t key[20] = { 0 }; + + swprintf_s(key, _countof(key) - 1, L"%d", i); + jsn->get_value(key, &child); + if (child) + { + child->get_value(L"type", &val); + if (val) + { + if (wcscmp(val, L"group") == 0) + { + child->get_value(L"title", &val); + if (!val) + { + swprintf_s(key, _countof(key) - 1, L"group-%d", i); + val = key; + } + son = add_tree_item(val, TREE_ITEM_GROUP, root); + } + else + { + add_item(jsn, child, son, old_ver); + } + } + child->release(); + } + } + } + else if (child = jsn->first_child()) + { + int sn = 0; + wchar_t key[20] = { 0 }; + + child->release(); + while ((child = jsn->next_child())) + { + child->get_value(L"type", &val); + if (val) + { + if (wcscmp(val, L"group") == 0) + { + child->get_value(L"title", &val); + if (!val) + { + swprintf_s(key, _countof(key) - 1, L"group-%d", ++sn); + val = key; + } + son = add_tree_item(val, TREE_ITEM_GROUP, root); + } + else + { + add_item(jsn, child, son, old_ver); + } + } + child->release(); + } + } + + jsn->release(); + tree_.Expand(root, TVE_EXPAND); + + return true; +} +bool ChgjsonDlg::load_from_file(const wchar_t* path_file) +{ + std::string cont(""); + std::wstring unic(L""); + bool ret = false; + + file_util::load_file(path_file, coding::get_string, &cont); + coding_util::bom::to_unicode(cont.c_str(), cont.length(), coding::get_wstring, &unic); + if (unic.length()) + { + if (!load_from_json_text(unic.c_str())) + { + unic = path_file; + unic.insert(0, L"Parse json file '"); + unic += L"' failed"; + ::MessageBoxW(m_hWnd, unic.c_str(), L"Error", MB_OK); + } + else + ret = true; + } + + return ret; +} +void ChgjsonDlg::get_all_names(HTREEITEM root, std::vector& names, DWORD mask) +{ + if (((DWORD)tree_.GetItemData(root) & mask) == mask) + names.push_back(get_tree_item_text(&tree_, root)); + + HTREEITEM child = tree_.GetChildItem(root); + while (child) + { + get_all_names(child, names, mask); + + child = tree_.GetNextSiblingItem(child); + } +} +void ChgjsonDlg::on_config_name_changed(const wchar_t* prev, const wchar_t* now) +{ + for (size_t i = 0; i < hg_items_.size(); ++i) + { + if (hg_items_[i].title == prev) + { + hg_items_[i].title = now; + } + else + { + std::vector::iterator it = std::find(hg_items_[i].depend.begin(), hg_items_[i].depend.end(), prev); + while (it != hg_items_[i].depend.end()) + { + it->parent = now; + it = std::find(hg_items_[i].depend.begin(), hg_items_[i].depend.end(), prev); + } + } + } +} +HTREEITEM ChgjsonDlg::add_tree_item(const wchar_t* title, DWORD data, HTREEITEM parent, HTREEITEM after) +{ + HTREEITEM i = tree_.InsertItem(title, parent, after); + TVITEM item; + + item.mask = TVIF_SELECTEDIMAGE; + item.iSelectedImage = 1; + item.hItem = i; + tree_.SetItem(&item); + + tree_.SetItemData(i, (DWORD_PTR)data); + + return i; +} + +void ChgjsonDlg::filter_tree_item(HTREEITEM item, const std::vector& filter) +{ + DWORD_PTR data = NULL; + std::wstring title(get_tree_item_text(&tree_, item, &data)); + + if (data == (DWORD_PTR)TREE_ITEM_GROUP) + { + HTREEITEM child = tree_.GetChildItem(item), + next = NULL; + while (child) + { + next = tree_.GetNextSiblingItem(child); + filter_tree_item(child, filter); + child = next; + } + } + else if (data == (DWORD_PTR)TREE_ITEM_CONFIG) + { + const char* name = title_to_name(title), * filter_name = NULL; + int ind = find_config_item(title.c_str()), fi = -1; + + for (size_t i = 0; i < filter.size(); ++i) + { + std::wstring t(filter[i].title); + + filter_name = title_to_name(t); + if (filter_name == name) + { + fi = i; + break; + } + } + if (filter_name != name) + { + if (strstr(name, "is-rid-hole-") != name && + strstr(name, "search-hole-range-") != name) + delete_tree_item(item); + } + else + { + HGITEM hgi(hg_items_[ind]); + hg_items_[ind] = filter[fi]; + hg_items_[ind].title = hgi.title; + hg_items_[ind].desc = hgi.desc; + for (size_t i = 0; i < hg_items_[ind].depend.size(); ++i) + title_to_name(hg_items_[ind].depend[i].parent); + } + } +} + +// If you add a minimize button to your dialog, you will need the code below +// to draw the icon. For MFC applications using the document/view model, +// this is automatically done for you by the framework. + +void ChgjsonDlg::OnPaint() +{ + //if (IsIconic()) + //{ + // CPaintDC dc(this); // device context for painting + + // SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc()), 0); + + // // Center icon in client rectangle + // int cxIcon = GetSystemMetrics(SM_CXICON); + // int cyIcon = GetSystemMetrics(SM_CYICON); + // CRect rect; + // GetClientRect(&rect); + // int x = (rect.Width() - cxIcon + 1) / 2; + // int y = (rect.Height() - cyIcon + 1) / 2; + + // // Draw the icon + // dc.DrawIcon(x, y, m_hIcon); + //} + //else + { + CDialogEx::OnPaint(); + } +} + +// The system calls this function to obtain the cursor to display while the user drags +// the minimized window. +HCURSOR ChgjsonDlg::OnQueryDragIcon() +{ + return NULL;// static_cast(m_hIcon); +} + +void ChgjsonDlg::OnPaste() +{ + coding::CLPD clpb; + + file_util::get_clipboard(coding::get_clipboard_content, &clpb); + if (clpb.cont.empty()) + { + MessageBox(TEXT("clipboard is empty.")); + return; + } + + if (clpb.file) + { + size_t pos = clpb.cont.find(L"\r\n"); + bool loaded = false; + + while (!loaded && pos != std::wstring::npos) + { + loaded = load_from_file(clpb.cont.substr(0, pos).c_str()); + clpb.cont.erase(0, pos + 2); + pos = clpb.cont.find(L"\r\n"); + } + if (!loaded && file_util::is_file_existing(clpb.cont.c_str())) + load_from_file(clpb.cont.c_str()); + } + else + { + std::wstring err(L""); + if (load_from_json_text(clpb.cont.c_str(), &err)) + return; + + // we assum the content from codes ... + std::wstring jsn(L""); + size_t pos = clpb.cont.find(L" std::string"); + + while (pos != std::wstring::npos) + { + clpb.cont.erase(0, pos); + pos = clpb.cont.find(L"\""); + if (pos == std::wstring::npos) + break; + clpb.cont.erase(0, pos + 1); + pos = clpb.cont.find(L"\");"); + if (pos == std::wstring::npos) + { + jsn += clpb.cont; + break; + } + else + jsn += clpb.cont.substr(0, pos); + clpb.cont.erase(0, pos); + pos = clpb.cont.find(L" std::string"); + } + + if (jsn.length()) + { + pos = jsn.find(L"\\\\"); + while (pos != std::wstring::npos) + { + jsn.erase(pos++, 1); + pos = jsn.find(L"\\\\", pos); + } + pos = jsn.find(L"\\\""); + while (pos != std::wstring::npos) + { + jsn.erase(pos++, 1); + pos = jsn.find(L"\\\"", pos); + } + + load_from_json_text(jsn.c_str()); + } + else + ::MessageBoxW(m_hWnd, err.c_str(), L"Load Error", MB_OK); + } +} + + +void ChgjsonDlg::OnTreeAddProduct() +{ + // TODO: Add your command handler code here + CDlgInput input; + + get_all_names(tree_.GetRootItem(), input.used_names_); + if (input.DoModal() == IDOK) + { + add_tree_item(input.value_.GetBuffer(), TREE_ITEM_PRODUCT); + input.value_.ReleaseBuffer(); + } +} +void ChgjsonDlg::OnTreeAddGroup() +{ + // TODO: Add your command handler code here + HTREEITEM parent = tree_.GetSelectedItem(); + + if (parent) + { + CDlgInput input; + + get_all_names(tree_.GetRootItem(), input.used_names_); + if (input.DoModal() == IDOK) + { + HTREEITEM h = add_tree_item(input.value_.GetBuffer(), TREE_ITEM_GROUP, parent); + + tree_.SelectItem(h); + tree_.EnsureVisible(h); + input.value_.ReleaseBuffer(); + OnTvnSelchangedTree1(NULL, NULL); + } + } +} +void ChgjsonDlg::OnTreeAddItem() +{ + // TODO: Add your command handler code here + HTREEITEM parent = tree_.GetSelectedItem(); + + if (parent) + { + CDlgInput input; + + get_all_names(tree_.GetRootItem(), input.used_names_); + if (input.DoModal() == IDOK) + { + HTREEITEM h = add_tree_item(input.value_.GetBuffer(), TREE_ITEM_CONFIG, parent); + + input.value_.ReleaseBuffer(); + if (h) + { + HGITEM i(input.value_.GetBuffer()); + + input.value_.ReleaseBuffer(); + tree_.SelectItem(h); + tree_.EnsureVisible(h); + + hg_items_.push_back(i); + OnTvnSelchangedTree1(NULL, NULL); + } + } + } +} +void ChgjsonDlg::OnTreeDelItem() +{ + // TODO: Add your command handler code here + HTREEITEM parent = tree_.GetSelectedItem(); + if (parent) + { + delete_tree_item(parent); + OnTvnSelchangedTree1(NULL, NULL); + } +} +void ChgjsonDlg::OnTreeRename() +{ + // TODO: Add your command handler code here + DWORD_PTR ptr = NULL; + std::wstring t(get_tree_selected_item_text(&tree_, &ptr)); + CDlgInput input; + + get_all_names(tree_.GetRootItem(), input.used_names_); + std::vector::iterator it = std::find(input.used_names_.begin(), input.used_names_.end(), t); + if (it != input.used_names_.end()) + input.used_names_.erase(it); + + input.value_ = t.c_str(); + if (input.DoModal() == IDOK && input.value_.GetLength()) + { + std::wstring now(input.value_); + TVITEM item; + + item.mask = TVIF_TEXT; + item.pszText = &now[0]; + item.hItem = tree_.GetSelectedItem(); + tree_.SetItem(&item); + if ((DWORD)ptr == TREE_ITEM_CONFIG) + { + on_config_name_changed(t.c_str(), now.c_str()); + } + } +} + + +void ChgjsonDlg::OnBnClickedButton1() +{ + // TODO: Add your control notification handler code here + // export to file + std::string txt(to_json_text()); + + file_util::set_clipboard(txt.c_str(), txt.length()); + MessageBox(TEXT("JSON text has set to clipboard already")); +} +void ChgjsonDlg::OnBnClickedButton2() +{ + // TODO: Add your control notification handler code here + // export to code-text, replace '"' with '\"', '\' with '\\' + std::string txt(to_json_text()); + size_t pos = txt.find("\""); + + while (pos != std::string::npos) + { + txt.insert(pos, "\\"); + pos = txt.find("\"", pos + 2); + } + + pos = txt.find("\\u"); + while (pos != std::string::npos) + { + txt.insert(pos, "\\"); + pos = txt.find("\\u", pos + 3); + } + + // divide into multi-lines with 16KB per line ... + int lines = 1; + char var[80] = { 0 }; + + pos = txt.length(); + while (pos > 16 * 1024) + { + pos -= 12 * 1024; + while (txt[pos - 1] == '\\') + pos++; + lines++; + sprintf_s(var, _countof(var) - 1, "\");\r\nstatic std::string jsontext%d(\"", lines); + txt.insert(pos, var); + } + txt.insert(0, "static std::string jsontext1(\""); + txt += "\");\r\n"; + + file_util::set_clipboard(txt.c_str(), txt.length()); + + TCHAR msg[128] = { 0 }; + _stprintf(msg, TEXT("%d lines"), lines); + MessageBox(TEXT("JSON text has set to clipboard already"), msg); +} + + +void ChgjsonDlg::OnCbnSelchangeDataType() +{ + // TODO: Add your control notification handler code here + // bool;int;float;string; + wchar_t type[40] = { 0 }; + + ::GetWindowTextW(type_.m_hWnd, type, _countof(type) - 1); + constraint_.ResetContent(); + constraint_.AddString(TEXT("none")); + if (wcscmp(type, L"bool") == 0) + { + constraint_.SetCurSel(0); + combo_default_.SetCurSel(1); + } + else + { + constraint_.AddString(TEXT("range")); + constraint_.AddString(TEXT("list")); + + constraint_.SetCurSel(0); + combo_default_.ShowWindow(SW_HIDE); + } + OnCbnSelchangeConstraintType(); +} +void ChgjsonDlg::OnCbnSelchangeConstraintType() +{ + // TODO: Add your control notification handler code here + // none;range;list; + int sel = constraint_.GetCurSel(); + wchar_t type[40] = { 0 }; + + ::GetWindowTextW(type_.m_hWnd, type, _countof(type) - 1); + if (wcscmp(type, L"string") == 0 && sel == 1) + { + MessageBox(TEXT("'string' type cannot be in RANGE constraint.")); + constraint_.SetCurSel(0); + sel = 0; + } + + combo_default_.ShowWindow(SW_HIDE); + GetDlgItem(IDC_STATIC_DEFAULT)->ShowWindow(SW_HIDE); + GetDlgItem(IDC_STATIC_DEFAULT2)->ShowWindow(SW_HIDE); + GetDlgItem(IDC_EDIT_DEFAULT)->ShowWindow(SW_HIDE); + GetDlgItem(IDC_STATIC_FROM)->ShowWindow(SW_HIDE); + GetDlgItem(IDC_STATIC_TO)->ShowWindow(SW_HIDE); + GetDlgItem(IDC_EDIT_FROM)->ShowWindow(SW_HIDE); + GetDlgItem(IDC_EDIT_TO)->ShowWindow(SW_HIDE); + GetDlgItem(IDC_EDIT_STEP)->ShowWindow(SW_HIDE); + GetDlgItem(IDC_STATIC_STEP)->ShowWindow(SW_HIDE); + constraint_list_.ShowWindow(SW_HIDE); + + if (sel == 0) + { + if (wcscmp(type, L"string") == 0) + GetDlgItem(IDC_STATIC_DEFAULT2)->ShowWindow(SW_SHOW); + else + GetDlgItem(IDC_STATIC_DEFAULT)->ShowWindow(SW_SHOW); + if (wcscmp(type, L"bool") == 0) + combo_default_.ShowWindow(SW_SHOW); + else + GetDlgItem(IDC_EDIT_DEFAULT)->ShowWindow(SW_SHOW); + } + else if (sel == 1) + { + GetDlgItem(IDC_STATIC_FROM)->ShowWindow(SW_SHOW); + GetDlgItem(IDC_STATIC_TO)->ShowWindow(SW_SHOW); + GetDlgItem(IDC_EDIT_FROM)->ShowWindow(SW_SHOW); + GetDlgItem(IDC_EDIT_TO)->ShowWindow(SW_SHOW); + GetDlgItem(IDC_STATIC_DEFAULT)->ShowWindow(SW_SHOW); + GetDlgItem(IDC_EDIT_DEFAULT)->ShowWindow(SW_SHOW); + GetDlgItem(IDC_EDIT_STEP)->ShowWindow(SW_SHOW); + GetDlgItem(IDC_STATIC_STEP)->ShowWindow(SW_SHOW); + } + else // if( sel == 2) + { + constraint_list_.ShowWindow(SW_SHOW); + } +} + + +void ChgjsonDlg::OnCbnSelchangeDependItem() +{ + // TODO: Add your control notification handler code here + int sel = depend_item_.GetCurSel(), d_ind = -1; + wchar_t name[128] = { 0 }, type[128] = { 0 }; + + ::GetWindowTextW(depend_item_.m_hWnd, name, _countof(name) - 1); + ::GetWindowTextW(type_.m_hWnd, type, _countof(type) - 1); + d_ind = find_config_item(name); + if (d_ind < 0) + { + std::wstring info(L"Depend item '"); + info += name; + info += L"' is not found!"; + ::MessageBoxW(m_hWnd, info.c_str(), L"Err", MB_OK); + return; + } + + // ==;!=;>;>=;<;<=;between;out of; + GetDlgItem(IDC_STATIC_AND)->ShowWindow(SW_HIDE); + GetDlgItem(IDC_EDIT_UPPER)->ShowWindow(SW_HIDE); + + logic_.ResetContent(); + logic_.AddString(L"=="); + logic_.AddString(L"!="); + GetDlgItem(IDC_COMBO_BOOL)->ShowWindow(SW_SHOW); + if (hg_items_[d_ind].type == L"bool") + { + GetDlgItem(IDC_COMBO_BOOL)->ShowWindow(SW_SHOW); + GetDlgItem(IDC_EDIT_LOWER)->ShowWindow(SW_HIDE); + + CComboBox* val = (CComboBox*)GetDlgItem(IDC_COMBO_BOOL); + val->ResetContent(); + val->AddString(L"false"); + val->AddString(L"true"); + val->SetCurSel(1); + } + else if (hg_items_[d_ind].range.queue.size()) + { + GetDlgItem(IDC_COMBO_BOOL)->ShowWindow(SW_SHOW); + GetDlgItem(IDC_EDIT_LOWER)->ShowWindow(SW_HIDE); + + CComboBox* val = (CComboBox*)GetDlgItem(IDC_COMBO_BOOL); + val->ResetContent(); + for (int i = 0; i < hg_items_[d_ind].range.queue.size(); ++i) + { + val->AddString(hg_items_[d_ind].range.queue[i].c_str()); + } + val->SetCurSel(0); + } + else + { + if (hg_items_[d_ind].type == L"int" || hg_items_[d_ind].type == L"float") + { + logic_.AddString(L">"); + logic_.AddString(L">="); + logic_.AddString(L"<="); + logic_.AddString(L"<"); + logic_.AddString(L"between"); + logic_.AddString(L"out of"); + } + GetDlgItem(IDC_EDIT_LOWER)->ShowWindow(SW_SHOW); + GetDlgItem(IDC_COMBO_BOOL)->ShowWindow(SW_HIDE); + } + logic_.SetCurSel(0); + OnCbnSelchangeLogic(); +} +void ChgjsonDlg::OnCbnSelchangeLogic() +{ + // TODO: Add your control notification handler code here + int count = logic_.GetCount(), + sel = logic_.GetCurSel(); + wchar_t text[128] = { 0 }; + + GetDlgItem(IDC_STATIC_AND)->ShowWindow(SW_HIDE); + GetDlgItem(IDC_EDIT_UPPER)->ShowWindow(SW_HIDE); + GetDlgItem(IDC_EDIT_UPPER)->EnableWindow(FALSE); + + ::GetWindowTextW(logic_.m_hWnd, text, _countof(text) - 1); + if (wcscmp(text, L"between") == 0 || wcscmp(text, L"out of") == 0) + { + GetDlgItem(IDC_STATIC_AND)->ShowWindow(SW_SHOW); + GetDlgItem(IDC_EDIT_UPPER)->ShowWindow(SW_SHOW); + GetDlgItem(IDC_EDIT_UPPER)->EnableWindow(); + GetDlgItem(IDC_STATIC_AND)->EnableWindow(); + } +} + + +void ChgjsonDlg::OnLvnEndlabeleditListValues(NMHDR* pNMHDR, LRESULT* pResult) +{ + NMLVDISPINFO* pDispInfo = reinterpret_cast(pNMHDR); + // TODO: Add your control notification handler code here + *pResult = 0; + DWORD_PTR data = constraint_list_.GetItemData(pDispInfo->item.iItem); + + if (!pDispInfo->item.pszText || *pDispInfo->item.pszText == 0) + return; + + constraint_list_.SetItemText(pDispInfo->item.iItem, pDispInfo->item.iSubItem, pDispInfo->item.pszText); + constraint_list_.SetItemData(pDispInfo->item.iItem, 0); + if (constraint_list_.GetItemCount() == 1) + constraint_list_.SetItemText(pDispInfo->item.iItem, 1, TEXT("yes")); + + if (data) + { + int count = constraint_list_.GetItemCount(); + count = constraint_list_.InsertItem(count, TEXT("click me to add value ...")); + constraint_list_.SetItemData(count, 1); + } +} + + +void ChgjsonDlg::OnBnClickedDepend() +{ + // TODO: Add your control notification handler code here + // ---G100 + // | + // ---base + // | + // ---color-mode + // | + // ---scan-count + // + // ---advance + // | + // --- + HTREEITEM root = tree_.GetSelectedItem(); + BOOL enable = ((CButton*)GetDlgItem(IDC_CHECK1))->GetCheck() == BST_CHECKED; + + if (root) + { + if (enable) + { + if ((DWORD)tree_.GetItemData(root) != TREE_ITEM_CONFIG) + { + ((CButton*)GetDlgItem(IDC_CHECK1))->SetCheck(BST_UNCHECKED); + MessageBox(TEXT("You must select a configuration item in the left tree first!"), NULL, MB_OK); + return; + } + + std::wstring name(get_tree_item_text(&tree_, root)); + std::vector confs; + + get_all_names(tree_.GetRootItem(), confs, TREE_ITEM_CONFIG); + depends_.ResetContent(); + depend_item_.ResetContent(); + for (size_t i = 0; i < confs.size(); ++i) + { + if (confs[i] == name) + break; + + depend_item_.AddString(confs[i].c_str()); + } + } + + GetDlgItem(IDC_RADIO_ANY)->EnableWindow(enable); + GetDlgItem(IDC_RADIO_ALL)->EnableWindow(enable); + ((CButton*)GetDlgItem(IDC_RADIO_ANY))->SetCheck(BST_CHECKED); + depend_item_.EnableWindow(enable); + logic_.EnableWindow(enable); + GetDlgItem(IDC_EDIT_LOWER)->EnableWindow(enable); + GetDlgItem(IDC_BUTTON3)->EnableWindow(enable); + GetDlgItem(IDC_LIST3)->EnableWindow(enable); + } + else if (enable) + { + ((CButton*)GetDlgItem(IDC_CHECK1))->SetCheck(BST_UNCHECKED); + MessageBox(TEXT("You must select a configuration item in the left tree!"), NULL, MB_OK); + } +} + + +void ChgjsonDlg::OnBnClickedButton3() +{ + // TODO: Add your control notification handler code here + // add depend items + DEPENDITEM di; + wchar_t oper[128] = { 0 }; + bool or = ((CButton*)GetDlgItem(IDC_RADIO_ANY))->GetCheck() == BST_CHECKED; + DWORD_PTR data = NULL; + std::wstring name(get_tree_selected_item_text(&tree_, &data)); + std::vector::iterator it = std::find(hg_items_.begin(), hg_items_.end(), name.c_str()); + + if (it == hg_items_.end()) + { + name.insert(0, L"Not found the configuration named: "); + ::MessageBoxW(m_hWnd, name.c_str(), L"Error", MB_OK); + + return; + } + ::GetWindowTextW(depend_item_.m_hWnd, oper, _countof(oper) - 1); + di.parent = oper; + + // check recycle depend ... + std::vector::iterator dpn = std::find(hg_items_.begin(), hg_items_.end(), oper); + if (dpn != hg_items_.end()) + { + std::vector::iterator dpnd = std::find(dpn->depend.begin(), dpn->depend.end(), di.parent.c_str()); + if (dpnd != dpn->depend.end()) + { + name.insert(0, L" is already DEPEND on me("); + name.insert(0, oper); + name += L")! Delete me from it's depend queue first."; + ::MessageBoxW(m_hWnd, name.c_str(), L"Recycle Depending", MB_ICONSTOP | MB_OK); + return; + } + } + + ::GetWindowTextW(logic_.m_hWnd, oper, _countof(oper) - 1); + if (wcscmp(oper, L"between") == 0) + { + di.logic_values = L"==["; + ::GetWindowTextW(GetDlgItem(IDC_EDIT_LOWER)->m_hWnd, oper, _countof(oper) - 1); + di.logic_values += oper; + di.logic_values += L", "; + ::GetWindowTextW(GetDlgItem(IDC_EDIT_UPPER)->m_hWnd, oper, _countof(oper) - 1); + di.logic_values += oper; + di.logic_values += L"]"; + } + else if (wcscmp(oper, L"out of") == 0) + { + di.logic_values = L"!=["; + ::GetWindowTextW(GetDlgItem(IDC_EDIT_LOWER)->m_hWnd, oper, _countof(oper) - 1); + di.logic_values += oper; + di.logic_values += L", "; + ::GetWindowTextW(GetDlgItem(IDC_EDIT_UPPER)->m_hWnd, oper, _countof(oper) - 1); + di.logic_values += oper; + di.logic_values += L"]"; + } + else + { + di.logic_values = oper; + if (::IsWindowVisible(GetDlgItem(IDC_EDIT_LOWER)->m_hWnd)) + ::GetWindowTextW(GetDlgItem(IDC_EDIT_LOWER)->m_hWnd, oper, _countof(oper) - 1); + else + ::GetWindowTextW(GetDlgItem(IDC_COMBO_BOOL)->m_hWnd, oper, _countof(oper) - 1); + di.logic_values += oper; + } + + it->depend.push_back(di); + it->depend_or = or ; + // if (depends_.FindString(-1, (di.parent + di.logic_values).c_str()) == -1) + depends_.AddString((di.parent + di.logic_values).c_str()); +} +void ChgjsonDlg::OnBnClickedButton4() +{ + // TODO: Add your control notification handler code here + // modify item attributes + DWORD_PTR data = NULL; + std::wstring name(get_tree_selected_item_text(&tree_, &data)); + + if ((DWORD)data != TREE_ITEM_CONFIG) + { + name += L" is not a configuration item."; + ::MessageBoxW(m_hWnd, name.c_str(), L"Err", MB_OK); + + return; + } + + std::vector::iterator it = std::find(hg_items_.begin(), hg_items_.end(), name.c_str()); + if (it == hg_items_.end()) + { + name += L" is not found."; + ::MessageBoxW(m_hWnd, name.c_str(), L"Err", MB_OK); + + return; + } + + wchar_t str[128] = { 0 }; + bool is_str = false; + + ::GetDlgItemTextW(m_hWnd, IDC_EDIT_DESC, str, _countof(str) - 1); + it->desc = str; + it->title = name; + + ::GetWindowTextW(type_.m_hWnd, str, _countof(str) - 1); + it->type = str; + it->advanced = ((CButton*)GetDlgItem(IDC_CHECK_ADVANCED))->GetCheck() == BST_CHECKED; + it->readonly = ((CButton*)GetDlgItem(IDC_CHECK_READONLY))->GetCheck() == BST_CHECKED; + //it->deviceonly = ((CButton*)GetDlgItem(IDC_CHECK_DEVICEONLY))->GetCheck() == BST_CHECKED; + //::GetDlgItemTextW(m_hWnd, IDC_COMBO7, str, _countof(str) - 1); + it->group = coding::group_name(group_.GetCurSel()); + it->affect = affect_.GetCurSel() << 1; + it->visible = ((CButton*)GetDlgItem(IDC_CHECK_VISIBLE))->GetCheck() == BST_CHECKED; + it->range.type = constraint_.GetCurSel(); + it->field = field_.GetCurSel(); + it->unit = unit_.GetCurSel(); + it->position = GetDlgItemInt(IDC_EDIT_POS); + if (it->type == L"bool") + it->bytes = sizeof(SANE_Bool); + else if (it->type == L"int") + it->bytes = sizeof(SANE_Int); + else if (it->type == L"float") + it->bytes = sizeof(SANE_Fixed); + else // if (wcscmp(str, L"string") == 0) + { + it->bytes = GetDlgItemInt(IDC_EDIT_DEFAULT); + if (it->bytes <= 1 && it->range.type != RANGE_TYPE_LIST) + { + MessageBox(TEXT("Input max length in bytes of 'string' type")); + GotoDlgCtrl(GetDlgItem(IDC_EDIT_DEFAULT)); + return; + } + is_str = true; + } + + // constraints ... + it->range.queue.clear(); + if (it->range.type == RANGE_TYPE_LIST) + { + for (int i = 0; i < constraint_list_.GetItemCount(); ++i) + { + if (constraint_list_.GetItemData(i)) + continue; + + constraint_list_.GetItemText(i, 0, str, _countof(str) - 1); + it->range.queue.push_back(str); + if (is_str && it->bytes < coding::string_need_bytes(str)) // utf-8 need 3 bytes to present one char + it->bytes = coding::string_need_bytes(str); + constraint_list_.GetItemText(i, 1, str, _countof(str) - 1); + if (wcscmp(str, L"yes") == 0) + it->init_val = it->range.queue[it->range.queue.size() - 1]; + } + } + else + { + ::GetDlgItemTextW(m_hWnd, it->type == L"bool" ? IDC_COMBO_DEFAULT : IDC_EDIT_DEFAULT, str, _countof(str) - 1); + it->init_val = str; + + if (it->range.type == RANGE_TYPE_RANGE) + { + ::GetDlgItemTextW(m_hWnd, IDC_EDIT_FROM, str, _countof(str) - 1); + it->range.lower = _wtof(str); + ::GetDlgItemTextW(m_hWnd, IDC_EDIT_TO, str, _countof(str) - 1); + it->range.upper = _wtof(str); + ::GetDlgItemTextW(m_hWnd, IDC_EDIT_STEP, str, _countof(str) - 1); + it->range.step = _wtof(str); + if (fabs(it->range.step) < .000001f) + it->range.step = (it->range.upper - it->range.lower) / 10.0f; + } + } + + // depend ... + it->depend.clear(); + if (((CButton*)GetDlgItem(IDC_CHECK1))->GetCheck() == BST_CHECKED) + { + it->depend_or = ((CButton*)GetDlgItem(IDC_RADIO_ANY))->GetCheck() == BST_CHECKED; + for (int i = 0; i < depends_.GetCount(); ++i) + { + DEPENDITEM di; + + depends_.GetText(i, str); + split(str, &di); + it->depend.push_back(di); + } + } +} + + +void ChgjsonDlg::OnNMRClickMfcshelltree1(NMHDR* pNMHDR, LRESULT* pResult) +{ + // TODO: Add your control notification handler code here + *pResult = 0; + POINT pt = { 0 }; + HTREEITEM hsel = tree_.GetSelectedItem(); + + tree_menu_.EnableMenuItem(ID_TREE_ADDGROUP, MF_DISABLED); + tree_menu_.EnableMenuItem(ID_TREE_ADDITEM, MF_DISABLED); + tree_menu_.EnableMenuItem(ID_TREE_ADDPRODUCT, MF_DISABLED); + tree_menu_.EnableMenuItem(ID_TREE_DELITEM, MF_DISABLED); + tree_menu_.EnableMenuItem(ID_TREE_RENAME, MF_DISABLED); + tree_menu_.CheckMenuItem(ID_TREE_TOOLTIPS, show_tree_tooltips_ ? MF_CHECKED : MF_UNCHECKED); + if (hsel) + { + DWORD data = (DWORD)tree_.GetItemData(hsel); + if (data == TREE_ITEM_PRODUCT) + { + tree_menu_.EnableMenuItem(ID_TREE_ADDGROUP, MF_ENABLED); + } + else if (data == TREE_ITEM_GROUP) + { + tree_menu_.EnableMenuItem(ID_TREE_ADDITEM, MF_ENABLED); + } + tree_menu_.EnableMenuItem(ID_TREE_DELITEM, MF_ENABLED); + tree_menu_.EnableMenuItem(ID_TREE_RENAME, MF_ENABLED); + } + else + tree_menu_.EnableMenuItem(ID_TREE_ADDPRODUCT, MF_ENABLED); + + GetCursorPos(&pt); + tree_menu_.GetSubMenu(0)->TrackPopupMenu(0, pt.x, pt.y, this); +} + + +void ChgjsonDlg::OnTvnSelchangedTree1(NMHDR* pNMHDR, LRESULT* pResult) +{ + LPNMTREEVIEW pNMTreeView = reinterpret_cast(pNMHDR); + // TODO: Add your control notification handler code here + if (pResult) + *pResult = 0; + + init_control_statu(); +} + + +void ChgjsonDlg::OnListmenuSetdefault() +{ + // TODO: Add your command handler code here + int sel = get_cur_sel(&constraint_list_); + std::wstring text(get_tree_item_text(&tree_, tree_.GetSelectedItem())); + int item = find_config_item(text.c_str()); + + if (item == -1) + return; + + + if (sel >= 0 && sel < constraint_list_.GetItemCount()) + { + wchar_t cur[128] = { 0 }; + constraint_list_.GetItemText(sel, 0, cur, _countof(cur) - 1); + hg_items_[item].init_val = cur; + for (int i = 0; i < constraint_list_.GetItemCount(); ++i) + { + if (constraint_list_.GetItemData(i)) + continue; + + constraint_list_.SetItemText(i, 1, i == sel ? TEXT("yes") : TEXT("")); + } + } +} + + +void ChgjsonDlg::OnListmenuDelete() +{ + // TODO: Add your command handler code here + int sel = get_cur_sel(&constraint_list_); + + if (sel >= 0 && sel < constraint_list_.GetItemCount()) + { + TCHAR buf[20] = { 0 }; + constraint_list_.GetItemText(sel, 1, buf, _countof(buf) - 1); + constraint_list_.DeleteItem(sel); + if (_tcscmp(buf, TEXT("yes")) == 0) + { + if (constraint_list_.GetItemCount() > 1) + constraint_list_.SetItemText(0, 1, TEXT("yes")); + } + } +} + + +void ChgjsonDlg::OnNMRClickListValues(NMHDR* pNMHDR, LRESULT* pResult) +{ + LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast(pNMHDR); + // TODO: Add your control notification handler code here + *pResult = 0; + POINT pt = { 0 }; + int sel = get_cur_sel(&constraint_list_); + + func_menu_.CheckMenuItem(ID_LISTMENU_TOOLTIPS, show_list_tooltips_ ? MF_CHECKED : MF_UNCHECKED); + if (sel >= 0 && sel < constraint_list_.GetItemCount()) + { + if (constraint_list_.GetItemData(sel) == 0) + { + GetCursorPos(&pt); + func_menu_.GetSubMenu(0)->TrackPopupMenu(0, pt.x, pt.y, this); + } + } +} + + +void ChgjsonDlg::OnLbnDblclkList3() +{ + // TODO: Add your control notification handler code here + int sel = depends_.GetCurSel(); + + if (sel >= 0 && sel < depends_.GetCount()) + { + TCHAR text[128] = { 0 }; + + depends_.GetText(sel, text); + if (MessageBox(text, TEXT("Delete ?"), MB_YESNO) == IDYES) + depends_.DeleteString(sel); + } +} + + +void ChgjsonDlg::OnDropFiles(HDROP hDropInfo) +{ + // TODO: Add your message handler code here and/or call default + wchar_t path[MAX_PATH] = { 0 }; + + DragQueryFileW(hDropInfo, 0, path, _countof(path) - 1); + load_from_file(path); + + CDialogEx::OnDropFiles(hDropInfo); +} + +void ChgjsonDlg::OnTreeLoadfile() +{ + // TODO: Add your command handler code here + file_util::PATHFILE path = { 0 }; + + if (file_util::browser_file(m_hWnd, &path)) + { + load_from_file(path.path); + } +} + +void ChgjsonDlg::OnTreeLoadClipboard() +{ + // TODO: ڴ + OnPaste(); +} + + +void ChgjsonDlg::OnTreeUnifySequence() +{ + // TODO: ڴ + file_util::PATHFILE path = { 0 }; + + if (!file_util::browser_file(m_hWnd, &path)) + return; + + std::vector me(hg_items_); + HTREEITEM root = tree_.GetRootItem(), + child = NULL, + next = NULL; + std::wstring model(get_tree_item_text(&tree_, root)); + + if (!load_from_file(path.path)) + return; + + root = tree_.GetRootItem(); + child = tree_.GetChildItem(root); + while (child) + { + DWORD_PTR data = NULL; + std::wstring title(get_tree_item_text(&tree_, child, &data)); + + next = tree_.GetNextSiblingItem(child); + filter_tree_item(child, me); + + child = next; + } + tree_.SetItemText(root, model.c_str()); +} + +void ChgjsonDlg::OnLvnKeydownListValues(NMHDR* pNMHDR, LRESULT* pResult) +{ + LPNMLVKEYDOWN pLVKeyDow = reinterpret_cast(pNMHDR); + // TODO: Add your control notification handler code here + *pResult = 0; + + if (GetKeyState(VK_CONTROL) < 0) + { + int sel = get_cur_sel(&constraint_list_), dir = 0; + TCHAR t0[200] = { 0 }, t1[20] = { 0 }; + + if (constraint_list_.GetItemData(sel) == 0) + { + if (pLVKeyDow->wVKey == VK_UP) + { + if (sel > 0) + dir = -1; + } + else if (pLVKeyDow->wVKey == VK_DOWN) + { + if (sel < constraint_list_.GetItemCount() - 1) + dir = 1; + } + } + if (dir) + { + constraint_list_.GetItemText(sel, 0, t0, _countof(t0) - 1); + constraint_list_.GetItemText(sel, 1, t1, _countof(t1) - 1); + constraint_list_.DeleteItem(sel); + sel += dir; + + sel = constraint_list_.InsertItem(sel, t0); + constraint_list_.SetItemText(sel, 1, t1); + + constraint_list_.SetItemState(sel - dir, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED); + constraint_list_.SetSelectionMark(sel - dir); + } + } +} + + +void ChgjsonDlg::OnTvnKeydownTree1(NMHDR* pNMHDR, LRESULT* pResult) +{ + LPNMTVKEYDOWN pTVKeyDown = reinterpret_cast(pNMHDR); + // TODO: Add your control notification handler code here + if (pResult) + *pResult = 0; + + if (pTVKeyDown->wVKey != VK_UP && pTVKeyDown->wVKey != VK_DOWN) + return; + if (GetKeyState(VK_CONTROL) >= 0) + return; + + HTREEITEM sel = tree_.GetSelectedItem(), next = NULL, parent = tree_.GetParentItem(sel); + DWORD_PTR data = NULL; + std::wstring name(get_tree_selected_item_text(&tree_, &data)); + + if ((DWORD)data != TREE_ITEM_CONFIG) + return; + + if (pTVKeyDown->wVKey == VK_DOWN) + { + next = tree_.GetNextSiblingItem(sel); + if (!next) + { + parent = tree_.GetNextSiblingItem(parent); + if (parent) + { + next = TVI_FIRST; + tree_.Expand(parent, TVIS_EXPANDED); + } + } + else + { + if ((DWORD)tree_.GetItemData(next) == TREE_ITEM_GROUP) + { + parent = next; + next = TVI_FIRST; + } + else if (check_depend(name.c_str(), get_tree_item_text(&tree_, next).c_str()) == 1) + next = NULL; + } + } + else if (pTVKeyDown->wVKey == VK_UP) + { + next = tree_.GetPrevSiblingItem(sel); + if (!next) + { + if (parent != tree_.GetRootItem()) + { + parent = tree_.GetPrevSiblingItem(parent); + if (parent) + { + if ((DWORD)tree_.GetItemData(parent) == TREE_ITEM_CONFIG) + { + next = parent; + parent = tree_.GetParentItem(parent); + } + else + { + next = TVI_LAST; + tree_.Expand(parent, TVIS_EXPANDED); + } + } + else + { + parent = tree_.GetParentItem(tree_.GetParentItem(sel)); + next = TVI_FIRST; + } + } + } + else + { + if (check_depend(name.c_str(), get_tree_item_text(&tree_, next).c_str()) == -1) + next = NULL; + else + { + next = tree_.GetPrevSiblingItem(next); + if (!next) + next = TVI_FIRST; + } + } + } + + if (next) + { + tree_.DeleteItem(sel); + sel = add_tree_item(name.c_str(), data, parent, next); + tree_.SelectItem(sel); + } +} + + +void ChgjsonDlg::OnTvnGetInfoTipTree1(NMHDR* pNMHDR, LRESULT* pResult) +{ + LPNMTVGETINFOTIP pGetInfoTip = reinterpret_cast(pNMHDR); + // TODO: Add your control notification handler code here + *pResult = 0; + + if (show_tree_tooltips_) + _tcscpy(pGetInfoTip->pszText, TEXT("Ctrl + or can change the configuration item position.")); +} + + +void ChgjsonDlg::OnLvnGetInfoTipListValues(NMHDR* pNMHDR, LRESULT* pResult) +{ + LPNMLVGETINFOTIP pGetInfoTip = reinterpret_cast(pNMHDR); + // TODO: Add your control notification handler code here + *pResult = 0; + + if (show_list_tooltips_) + _tcscpy(pGetInfoTip->pszText, TEXT("Ctrl + or can change the option position.")); +} + + +void ChgjsonDlg::OnTreeTooltips() +{ + // TODO: Add your command handler code here + show_tree_tooltips_ ^= true; +} + + +void ChgjsonDlg::OnListmenuTooltips() +{ + // TODO: Add your command handler code here + show_list_tooltips_ ^= true; +} + + +void ChgjsonDlg::OnTreeExportCharConstants() +{ + // TODO: ڴ + std::string bom(to_json_text(true)); + if (bom.empty()) + MessageBox(TEXT("No char constant")); + else + MessageBox(TEXT("const string has set to clipboard already")); +} + + +void ChgjsonDlg::OnBnClickedToFile() +{ + // TODO: ڴӿؼ֪ͨ + std::wstring name(L""); + std::string txt(to_json_text(false, &name)), ansi(""); + wchar_t path[MAX_PATH] = { 0 }; + + GetModuleFileNameW(NULL, path, _countof(path) - 1); + wcsrchr(path, L'\\')[1] = 0; + name.insert(0, path); + name += L".hsc"; + ansi = coding::u2a(name.c_str()); + if (save_scanner_setting(ansi.c_str(), txt) == 0) + file_util::display_file_in_explorer(name.c_str()); +} + + diff --git a/pc/code_twain/sln/hgjson/hgjsonDlg.h b/pc/code_twain/sln/hgjson/hgjsonDlg.h new file mode 100644 index 0000000..a1599dc --- /dev/null +++ b/pc/code_twain/sln/hgjson/hgjsonDlg.h @@ -0,0 +1,190 @@ + +// hgjsonDlg.h : header file +// + +#pragma once +#include "afxshelltreectrl.h" +#include "afxwin.h" +#include "afxcmn.h" +#include +#include +#include + + +// ChgjsonDlg dialog +class ChgjsonDlg : public CDialogEx +{ +// Construction +public: + ChgjsonDlg(CWnd* pParent = NULL); // standard constructor + +// Dialog Data + enum { IDD = IDD_HGJSON_DIALOG }; + + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + +public: + typedef struct _depend_item + { + std::wstring parent; + std::wstring logic_values; // include logic operator: "==2" + + bool operator==(const wchar_t* name) + { + return wcscmp(name, parent.c_str()) == 0; + } + bool operator<(const struct _depend_item& r) + { + return parent < r.parent; + } + }DEPENDITEM; + enum range_type + { + RANGE_TYPE_NONE = 0, + RANGE_TYPE_RANGE, + RANGE_TYPE_LIST, + }; + typedef struct _range + { + int type; + double lower; + double upper; + double step; + std::vector queue; + }RANGE; + typedef struct _hg_item + { + std::wstring title; + std::wstring desc; + std::wstring type; + std::wstring init_val; + std::wstring group; + int index; + int bytes; + bool advanced; + bool readonly; + //bool deviceonly; // ֻ豸ϲ - use readonly + bool visible; + int affect; + int position; + int field; + int unit; + bool depend_or; // or or and + std::vector depend; + RANGE range; + + bool operator==(const wchar_t* name) + { + return wcscmp(name, title.c_str()) == 0; + } + struct _hg_item(const wchar_t* ti= L"") + { + title = ti ? ti : L""; + desc = L""; + type = L"bool"; + init_val = L"true"; + group = L"base"; + bytes = 4; + advanced = readonly = /*deviceonly =*/ false; + visible = depend_or = true; + affect = position = field = unit = 0; + range.type = RANGE_TYPE_NONE; + } + }HGITEM; + typedef struct _def_h + { + std::wstring name; + std::wstring value; + std::wstring utf8_in_oct; + bool operator==(const std::wstring& n) + { + return name == n; + } + }DEFH; + std::vector hg_items_; + bool show_tree_tooltips_; + bool show_list_tooltips_; + +// Implementation +protected: + CMenu tree_menu_; + CMenu func_menu_; + CImageList tree_img_; + + // Generated message map functions + virtual BOOL OnInitDialog(); + afx_msg void OnPaint(); + afx_msg HCURSOR OnQueryDragIcon(); + afx_msg void OnPaste(); + DECLARE_MESSAGE_MAP() + + static void to_define_header(std::vector& defs, const wchar_t* str, const wchar_t* parent = NULL); + static std::string save_define_header_2_file(std::vector& defs, const wchar_t* file); // return BOM string + + void init_control_statu(void); + void delete_tree_item(HTREEITEM root); + int find_config_item(const wchar_t* item_name); + int check_depend(const wchar_t* l, const wchar_t* r); // -1: l depends on r; 0: no depend; 1: r depends on l + void set_control_status(const HGITEM& item); + + void* create_json(int item, std::vector *def_h = NULL, std::wstring* name = NULL); + std::string to_json_text(bool for_const = false, std::wstring *dev = NULL); + void add_item(void* jsn_root, void* jsn_obj, HTREEITEM parent, bool old_ver); + bool load_from_json_text(const wchar_t* txt, std::wstring* err_msg = NULL); + bool load_from_file(const wchar_t* path_file); + void get_all_names(HTREEITEM root, std::vector& names, DWORD mask = 0); + void on_config_name_changed(const wchar_t* prev, const wchar_t* now); + HTREEITEM add_tree_item(const wchar_t* title, DWORD data, HTREEITEM parent = TVI_ROOT, HTREEITEM after = TVI_LAST); + void filter_tree_item(HTREEITEM item, const std::vector& filter); + +public: + afx_msg void OnTreeAddGroup(); + afx_msg void OnTreeAddItem(); + afx_msg void OnTreeDelItem(); + CTreeCtrl tree_; + afx_msg void OnTreeAddProduct(); + afx_msg void OnBnClickedButton3(); + afx_msg void OnBnClickedButton1(); + afx_msg void OnBnClickedButton2(); + CListBox depends_; + CListCtrl constraint_list_; + afx_msg void OnCbnSelchangeDataType(); + afx_msg void OnCbnSelchangeConstraintType(); + afx_msg void OnCbnSelchangeDependItem(); + afx_msg void OnCbnSelchangeLogic(); + afx_msg void OnLvnEndlabeleditListValues(NMHDR *pNMHDR, LRESULT *pResult); + CComboBox type_; + CComboBox constraint_; + afx_msg void OnBnClickedDepend(); + CComboBox logic_; + CComboBox depend_item_; + afx_msg void OnBnClickedButton4(); + afx_msg void OnNMRClickMfcshelltree1(NMHDR *pNMHDR, LRESULT *pResult); + CComboBox combo_default_; + afx_msg void OnTvnSelchangedTree1(NMHDR *pNMHDR, LRESULT *pResult); + afx_msg void OnListmenuSetdefault(); + afx_msg void OnListmenuDelete(); + afx_msg void OnNMRClickListValues(NMHDR *pNMHDR, LRESULT *pResult); + afx_msg void OnLbnDblclkList3(); + afx_msg void OnDropFiles(HDROP hDropInfo); + afx_msg void OnTreeRename(); + afx_msg void OnTreeLoadfile(); + afx_msg void OnLvnKeydownListValues(NMHDR *pNMHDR, LRESULT *pResult); + afx_msg void OnTvnKeydownTree1(NMHDR *pNMHDR, LRESULT *pResult); + afx_msg void OnTvnGetInfoTipTree1(NMHDR *pNMHDR, LRESULT *pResult); + afx_msg void OnLvnGetInfoTipListValues(NMHDR *pNMHDR, LRESULT *pResult); + afx_msg void OnTreeTooltips(); + afx_msg void OnListmenuTooltips(); + afx_msg void OnTreeExportCharConstants(); + afx_msg void OnBnClickedToFile(); + afx_msg void OnTreeLoadClipboard(); + afx_msg void OnTreeUnifySequence(); + CComboBox field_; + CComboBox unit_; + CComboBox group_; + CComboBox affect_; +}; + + + diff --git a/pc/code_twain/sln/hgjson/res/bitmap1.bmp b/pc/code_twain/sln/hgjson/res/bitmap1.bmp new file mode 100644 index 0000000000000000000000000000000000000000..792cd46c9e1c721ef3c79c4f08a03c566a342c4f GIT binary patch literal 374 zcmb78u?>JQ3`->r-~%KkHhy5|oz6Y2C!stL>{Kc=3&M?)IJMFqXHMeC$Q!tTGniyT z_NG;2&dG)%f{;>LK}IXJR#aY?hnTSgaX6wLagEY`X|>U>d(i8nb#?UpQS%@A^1F`v N!h7)aee?sL`Ua@*1}^{r literal 0 HcmV?d00001 diff --git a/pc/code_twain/sln/hgjson/res/hgjson.ico b/pc/code_twain/sln/hgjson/res/hgjson.ico new file mode 100644 index 0000000000000000000000000000000000000000..d9c7466953c2fc9183b4420caefb8ff4367118ff GIT binary patch literal 67156 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

rk>P%T)(l{4ZHngJ6L3sZ4di7GfYjD4utO4& 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 literal 0 HcmV?d00001 diff --git a/pc/code_twain/sln/hgjson/res/hgjson.rc2 b/pc/code_twain/sln/hgjson/res/hgjson.rc2 new file mode 100644 index 0000000000000000000000000000000000000000..3fecfc56e5015eea9031c0118f515b46ed847e2c GIT binary patch literal 796 zcmdUt%W48a5Jk^g$Uih>8RCF{5KI;#YDm;=@X_jsjxg%NpO4<#qgjXxmyx2o>s`01 z`uLlX@kC8`Mqt65C0jNW)cK-GL)urJl9=>+ag)RcI^^O@c{^gpPJTn_w(J?PlGNly z6qw5H_@KO-u__X@xGWBTQT{uPg3gdf5Uo^c!QaO}XI0Y0m6 z9?rryuxtujY4=6wg%PgK@Hf_HFYJc>>Rp=1GqA=WU4VKTW;h$;{ViVnZV%k!7BZDx zhCL@y*?XZ2t1UIs_b;K7yq6`58e;SQ7B=T~K7r0BP!=2M9(DHiJ*AVJ_l-WtCulpW%D7S1Q+CbBK{hoW z;{RtwWO@hLe!KY=GrYky;@=R@JrCdGjZ}mB(ZizC53=63uJ^j# zj4Zi$Eq2@NsP_t4YYA0Gc#D3k^&a-HQe*)|m=os?s;DFE!>u*xqZRnXb**{rVW*l< z-(ICkGcSFHhaELxZk!^{riA>tu=A0XeiGU2n|apyH^M%0>s^w^gq_dnb-USWr_g%| zFU>6x4hpF{s^Ixvg$!pTys@t>a zo8KY6Oz{@Y?OM+6L+v5jvt1VtyB@zM;kmQ_2s@vNH}zgZhXL$fztmyxsqqjuZuRPT}qE_&PXTkS5(Xll33uD4}9R$0#zyY1YdcH1M>&E8qYrp+9u%@AQO zt1QPc{w7uKc-WkK8RD~@pV)aPY9gaxi7)3_d-XlUZZDhT1z%nu-@{JFmz*_V6z4oK z-$!k1IttsH(>SBC!pMO&x6O@qd)chy=T&{e8IQb&$Xk@z&3QXkK30#3>Uh{`Zm9Rl z$Z0wgww;UT=qI#zJO8%X(Z6MO%G;VAyVDqZXnI{;8M3XJbXLWzE?FC2R3o(d@2x8j zyB=fNllT;$f4A8k^_F;2qPL$d<9SPm^t*CRs1WP6l+t`IY`d=FXy>HZyCn`<>mu}% zs5jR!a{#1-B8sr>nk};ZTJtSD?6hC5s>s4v$TQo=J#4MNw~1BOdXdZ( z=)65w9yl*Es4~N-WhO=Jw(HosChR|?Z~Ddh9bx-xOPzuCVPow$A4Ih<_fU8%o&e8cdVQ@t)XSQX_Lcqla~*$jF@u+pY)e znxuA1MQ*e0x+?V(`Uop4uESV!Cw!jRZL?#nViiO$%voB$FKoL$iFH*;1)+A^>~+04 z=SH2{`Y7$T)?6i4>HOeRry8P-haL5n8o91&{z}+(E{<%jNtNuXpe8mu^}!zE$SFLf z|Co8kMs60nz4?;!rVEE>r+VA$=z~XFw56SQB6|e|xLU_rBHxDkjcDR!A3KOjmcDb) zGB=aj-G`^J9z28fGe<5iVW)l)Eo?p$P3+u|+RfO_I${Frn~CwRuNAog+rvC_SGaQaURi_N7vKi87Z}ju;?IFmqboqPFM9CacO?jxU+#x#Mw#x{#H4 z`wW)S^U=16E(-Apc8#d?e7sF{ml*D^R+OHPxG7!7g6-oTX$__4V{Vf&-q}v2=c8_F zJ7>wbBEy>K5^Zbw3%?Wku@QHhZ1+Az>At?2Mi^F(ZM!g(?(3`Cs@&m0ZMb&DC*;Qb zO850uSy^Y6V}JU#T0NE7_vRK*y7X19iOCM`3HDO|TJ77G-PJF!bNfwo{h`{y{ebW9 z(QdD?zxy4I+?G}G8ybj)(ezAasy0efo%~w$487v<> zuFvrocgAnlXJZ&go>OPp~QBVB!7SB`r~o1;$? zS?VY5IOgi7#f`n7jLs^O_4}xWE}6DDDmPg!O0q3%tEms!+PiM57Guka`t|Go0V1Dg A5dZ)H literal 0 HcmV?d00001 diff --git a/pc/code_twain/sln/hgjson/stdafx.cpp b/pc/code_twain/sln/hgjson/stdafx.cpp new file mode 100644 index 0000000..c77c320 --- /dev/null +++ b/pc/code_twain/sln/hgjson/stdafx.cpp @@ -0,0 +1,8 @@ + +// stdafx.cpp : source file that includes just the standard includes +// hgjson.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + + diff --git a/pc/code_twain/sln/hgjson/stdafx.h b/pc/code_twain/sln/hgjson/stdafx.h new file mode 100644 index 0000000..3ace893 --- /dev/null +++ b/pc/code_twain/sln/hgjson/stdafx.h @@ -0,0 +1,54 @@ + +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, +// but are changed infrequently + +#pragma once + +#ifndef VC_EXTRALEAN +#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers +#endif + +#include "targetver.h" + +#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit + +// turns off MFC's hiding of some common and often safely ignored warning messages +#define _AFX_ALL_WARNINGS + +#include // MFC core and standard components +#include // MFC extensions + + +#include // MFC Automation classes + + + +#ifndef _AFX_NO_OLE_SUPPORT +#include // MFC support for Internet Explorer 4 Common Controls +#endif +#ifndef _AFX_NO_AFXCMN_SUPPORT +#include // MFC support for Windows Common Controls +#endif // _AFX_NO_AFXCMN_SUPPORT + +#include // MFC support for ribbons and control bars + + + + + + + + + +#ifdef _UNICODE +#if defined _M_IX86 +#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"") +#elif defined _M_X64 +#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"") +#else +#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"") +#endif +#endif + + diff --git a/pc/code_twain/sln/hgjson/targetver.h b/pc/code_twain/sln/hgjson/targetver.h new file mode 100644 index 0000000..87c0086 --- /dev/null +++ b/pc/code_twain/sln/hgjson/targetver.h @@ -0,0 +1,8 @@ +#pragma once + +// Including SDKDDKVer.h defines the highest available Windows platform. + +// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and +// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. + +#include diff --git a/pc/code_twain/sln/usb_tools/Debug/hgjson.exe b/pc/code_twain/sln/usb_tools/Debug/hgjson.exe new file mode 100644 index 0000000000000000000000000000000000000000..357169aea42d2b7f3227445e41e298376defdb93 GIT binary patch literal 1699840 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

EqE+KbU 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

-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

    f}W$+RzAulY#l7}jZlLOywXOO=<)qA(zS+Vg)I| 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

    1!V*o6_xn;*>Hg5fPN7 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

    l)m><%GRal5P=12K+?4&z>wHP1B=GhKb{KP;M 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

    $(1e#2iP5{8o~ik^D1$@a3?-y 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