diff --git a/sane/DlgCfgMgr.cpp b/sane/DlgCfgMgr.cpp index 7a9ce52..cc61504 100644 --- a/sane/DlgCfgMgr.cpp +++ b/sane/DlgCfgMgr.cpp @@ -119,7 +119,14 @@ void dlg_cfg_mgr::handle_notify(UINT id, LPNMHDR pnhdr) if (cfg_) { - cfg_->rename_scheme(local_trans::u2a(label_.c_str(), CP_UTF8).c_str(), local_trans::u2a(pdisp->item.pszText, CP_UTF8).c_str()); + if (!cfg_->rename_scheme(local_trans::u2a(label_.c_str(), CP_UTF8).c_str(), local_trans::u2a(pdisp->item.pszText, CP_UTF8).c_str())) + { + std::wstring input(pdisp->item.pszText); + + input += L" " + local_trans::lang_trans_between_hz936(CONST_STRING_ALREADY_EXISTS); + ::MessageBoxW(hwnd(), input.c_str(), local_trans::lang_trans_between_hz936(CONST_STRING_RE_INPUT).c_str(), MB_OK | MB_ICONINFORMATION); + dlg_base::list_set_item_text(get_item(IDC_LIST1), pdisp->item.iItem, 0, label_.c_str()); + } } } } diff --git a/sane/DlgPage.cpp b/sane/DlgPage.cpp index c4229a0..9fb1780 100644 --- a/sane/DlgPage.cpp +++ b/sane/DlgPage.cpp @@ -224,6 +224,17 @@ void dlg_base::list_get_selected_items(HWND list_wnd, std::vector& sels) sels.push_back(i); } } +int dlg_base::list_set_item_text(HWND list_wnd, int item, int sub_item, const wchar_t* text) +{ + LV_ITEMW lvi = { 0 }; + + lvi.iItem = item; + lvi.iSubItem = sub_item; + lvi.pszText = (LPWSTR)text; + lvi.mask = LVIF_TEXT; + + return ListView_SetItem(list_wnd, &lvi) ? 0 : 1; +} BOOL dlg_base::handle_message(UINT msg, WPARAM wp, LPARAM lp) { diff --git a/sane/DlgPage.h b/sane/DlgPage.h index b32eaed..6e87f0e 100644 --- a/sane/DlgPage.h +++ b/sane/DlgPage.h @@ -73,6 +73,7 @@ public: static int list_get_column_count(HWND list_wnd); static std::wstring list_get_text(HWND list_wnd, int ind, int sub = 0); static void list_get_selected_items(HWND list_wnd, std::vector& sels); + static int list_set_item_text(HWND list_wnd, int item, int sub_item, const wchar_t* text); public: void set_ui_event_notify(void(__stdcall* notify)(int, void*, void*), void* param);