diff options
author | Gluzskiy Alexandr <sss123next@list.ru> | 2010-09-26 18:19:46 +0300 |
---|---|---|
committer | Gluzskiy Alexandr <sss123next@list.ru> | 2010-09-26 18:19:46 +0300 |
commit | 6f58ba8e39b54dfb0214f97caac2fa1ea9ba43ce (patch) | |
tree | ef2b3b7d4bd6b643730240b19f4a482df1391838 /options.cpp | |
parent | ba248e7eb7926648327431e7ef32b302370da5c9 (diff) |
ui for source words finished i hope )
Diffstat (limited to 'options.cpp')
-rw-r--r-- | options.cpp | 134 |
1 files changed, 125 insertions, 9 deletions
diff --git a/options.cpp b/options.cpp index f6c1d4b..db8c05b 100644 --- a/options.cpp +++ b/options.cpp @@ -85,21 +85,40 @@ static BOOL CALLBACK DlgProcReplacerOpts(HWND hwndDlg, UINT msg, WPARAM wParam, TCHAR *buf = NULL; mir_snprintf(setting, 31, "szSourceWord%d", i); buf = UniGetContactSettingUtf(NULL, szReplacerModuleName, setting, _T("")); - while(_tcslen(buf) > 0) + if(!_tcslen(buf)) { item.mask = LVIF_TEXT; item.iSubItem = 0; - item.pszText = buf; - iRow = ListView_InsertItem(hwndList1, &item); - ListView_SetItemText(hwndList1, iRow, 0, buf); - mir_free(buf); + item.iItem = i; + item.pszText = _T("<Click here for add word>"); + ListView_InsertItem(hwndList1, &item); + ListView_SetItemText(hwndList1, iRow, 0, _T("<Click here for add word>")); ZeroMemory(&item,sizeof(item)); ListView_SetColumnWidth(hwndList1, 0, LVSCW_AUTOSIZE); - i++; - mir_snprintf(setting, 31, "szSourceWord%d", i); - buf = UniGetContactSettingUtf(NULL, szReplacerModuleName, setting, _T("")); + mir_free(buf); + } + else + { + while(_tcslen(buf) > 0) + { + item.mask = LVIF_TEXT; + item.iSubItem = 0; + item.pszText = buf; + item.iItem = i; + iRow = ListView_InsertItem(hwndList1, &item); + ListView_SetItemText(hwndList1, iRow, 0, buf); + mir_free(buf); + ZeroMemory(&item,sizeof(item)); + ListView_SetColumnWidth(hwndList1, 0, LVSCW_AUTOSIZE); + i++; + mir_snprintf(setting, 31, "szSourceWord%d", i); + buf = UniGetContactSettingUtf(NULL, szReplacerModuleName, setting, _T("")); + } + mir_free(buf); } - mir_free(buf); + EnableWindow(GetDlgItem(hwndDlg, IDC_ADD), 0); + EnableWindow(GetDlgItem(hwndDlg, IDC_CHANGE), 0); + EnableWindow(GetDlgItem(hwndDlg, IDC_DELETE), 0); delete [] setting; return TRUE; } @@ -137,6 +156,43 @@ static BOOL CALLBACK DlgProcReplacerOpts(HWND hwndDlg, UINT msg, WPARAM wParam, { if(hwnd_list_p == hwndList1) { + TCHAR *buf; + char setting[32]; + int i = 0; + mir_snprintf(setting, 31, "szSourceWord%d", i); + buf = UniGetContactSettingUtf(NULL, szReplacerModuleName, setting, _T("")); + while(_tcslen(buf) > 0) + { + mir_free(buf); + i++; + mir_snprintf(setting, 31, "szSourceWord%d", i); + buf = UniGetContactSettingUtf(NULL, szReplacerModuleName, setting, _T("")); + } + mir_free(buf); + i--; + mir_snprintf(setting, 31, "szSourceWord%d", i); + if(!item_num && !i) + { + DBDeleteContactSetting(NULL, szReplacerModuleName, setting); + ListView_SetItemText(hwnd_list_p, item_num, 0, _T("<Click here for add word>")); + ListView_SetColumnWidth(hwndList1, 0, LVSCW_AUTOSIZE); + } + else if(i == item_num) + { + DBDeleteContactSetting(NULL, szReplacerModuleName, setting); + ListView_DeleteItem(hwnd_list_p, i); + } + else + { + buf = UniGetContactSettingUtf(NULL, szReplacerModuleName, setting, _T("")); + DBDeleteContactSetting(NULL, szReplacerModuleName, setting); + mir_snprintf(setting, 31, "szSourceWord%d", item_num); + DBWriteContactSettingTString(NULL, szReplacerModuleName, setting, buf); + ListView_SetItemText(hwnd_list_p, item_num, 0, buf); + ListView_SetColumnWidth(hwndList1, 0, LVSCW_AUTOSIZE); + ListView_DeleteItem(hwnd_list_p, i); + mir_free(buf); + } } else if(hwnd_list_p == hwndList2) { @@ -156,6 +212,9 @@ static BOOL CALLBACK DlgProcReplacerOpts(HWND hwndDlg, UINT msg, WPARAM wParam, { if(hdr->hdr.code == NM_CLICK) { + EnableWindow(GetDlgItem(hwndDlg, IDC_ADD), 1); + EnableWindow(GetDlgItem(hwndDlg, IDC_CHANGE), 1); + EnableWindow(GetDlgItem(hwndDlg, IDC_DELETE), 1); hwnd_list_p = hdr->hdr.hwndFrom; item_num = hdr->iItem; bTargetWord = (hwnd_list_p==hwndList2)?true:false; @@ -249,6 +308,63 @@ static BOOL CALLBACK DlgProcWordEditDialog(HWND hwndDlg, UINT msg, WPARAM wParam switch (LOWORD(wParam)) { case IDC_OK: + { + if(bEdit) + { + TCHAR str[512]; + GetDlgItemText(hwndDlg, IDC_EDIT_WORD, str, 511); + if(bTargetWord) + ; + else + { + char setting[32]; + mir_snprintf(setting, 31, "szSourceWord%d", item_num); + DBWriteContactSettingTString(NULL, szReplacerModuleName, setting, str); + ListView_SetItemText(hwnd_list_p, item_num, 0, str); + ListView_SetColumnWidth(hwnd_list_p, 0, LVSCW_AUTOSIZE); + } + } + else + { + TCHAR str[512]; + TCHAR *buf; + GetDlgItemText(hwndDlg, IDC_EDIT_WORD, str, 511); + if(bTargetWord) + ; + else + { + char setting[32]; + setting[0] = '\0'; + int i = 0; + mir_snprintf(setting, 31, "szSourceWord%d", i); + buf = UniGetContactSettingUtf(NULL, szReplacerModuleName, setting, _T("")); + while(_tcslen(buf) > 0) + { + mir_free(buf); + i++; + mir_snprintf(setting, 31, "szSourceWord%d", i); + buf = UniGetContactSettingUtf(NULL, szReplacerModuleName, setting, _T("")); + } + mir_free(buf); + DBWriteContactSettingTString(NULL, szReplacerModuleName, setting, str); + if(!i) + { + ListView_SetItemText(hwnd_list_p, i, 0, str); + } + else + { + LVITEM item = {0}; + item.mask = LVIF_TEXT; + item.iSubItem = 0; + item.iItem = i; + item.pszText = str; + ListView_InsertItem(hwnd_list_p, &item); + } + ListView_SetColumnWidth(hwnd_list_p, 0, LVSCW_AUTOSIZE); + } + mir_free(str); + } + } DestroyWindow(hwndDlg); break; case IDC_CANCEL: |