From f04d64869f3b1de54fb343f28f955584780001b8 Mon Sep 17 00:00:00 2001 From: mataes2007 Date: Sat, 26 Nov 2011 15:41:10 +0000 Subject: Project folders rename part 3 git-svn-id: http://miranda-plugins.googlecode.com/svn/trunk@215 e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb --- DbeditorPP/addeditsettingsdlg.cpp | 458 -------------------------------------- 1 file changed, 458 deletions(-) delete mode 100644 DbeditorPP/addeditsettingsdlg.cpp (limited to 'DbeditorPP/addeditsettingsdlg.cpp') diff --git a/DbeditorPP/addeditsettingsdlg.cpp b/DbeditorPP/addeditsettingsdlg.cpp deleted file mode 100644 index 6c21fe4..0000000 --- a/DbeditorPP/addeditsettingsdlg.cpp +++ /dev/null @@ -1,458 +0,0 @@ -#include "headers.h" - - -static BOOL Convert(HANDLE hContact, char* module, char* setting, int value, int toType) // 0 = byte, 1 = word, 2 = dword, 3 = string -{ - int Result = 1; - char temp[64]; - - switch (toType) - { - case 0: - if (value > 0xFF) - Result = 0; - else - DBWriteContactSettingByte(hContact, module, setting, (BYTE)value); - break; - case 1: - if (value > 0xFFFF) - Result = 0; - else - DBWriteContactSettingWord(hContact, module, setting, (WORD)value); - break; - case 2: - DBWriteContactSettingDword(hContact, module, setting, (DWORD)value); - break; - case 3: - DBDeleteContactSetting(hContact, module, setting); - DBWriteContactSettingString(hContact, module, setting, itoa(value,temp,10)); - break; - } - return Result; -} - - -BOOL convertSetting(HANDLE hContact, char* module, char* setting, int toType) // 0 = byte, 1 = word, 2 = dword, 3 = string, 4 = unicode -{ - DBVARIANT dbv = {0}; - BOOL Result = 0; - - if (!GetSetting(hContact, module, setting, &dbv)) - { - switch (dbv.type) - { - case DBVT_BYTE: - Result = Convert(hContact, module, setting, dbv.bVal, toType); - break; - - case DBVT_WORD: - Result = Convert(hContact, module, setting, dbv.wVal, toType); - break; - - case DBVT_DWORD: - Result = Convert(hContact, module, setting, dbv.dVal, toType); - break; - - case DBVT_ASCIIZ: - if (toType == 4) // convert to UNICODE - { - int len = (int)strlen(dbv.pszVal) + 1; - WCHAR *wc = (WCHAR*)_alloca(len*sizeof(WCHAR)); - MultiByteToWideChar(CP_ACP, 0, dbv.pszVal, -1, wc, len); - Result = !DBWriteContactSettingWString(hContact, module, setting, wc); - } - else - if (strlen(dbv.pszVal) < 11 && toType != 3) - { - int val = atoi(dbv.pszVal); - if (val == 0 && dbv.pszVal[0] != '0') - break; - - Result = Convert(hContact, module, setting, val, toType); - } - break; - case DBVT_UTF8: - if (toType == 3 && UOS) // convert to ANSI - { - int len = (int)strlen(dbv.pszVal) + 1; - char *sz = (char*)_alloca(len*3); - WCHAR *wc = (WCHAR*)_alloca(len*sizeof(WCHAR)); - MultiByteToWideChar(CP_UTF8, 0, dbv.pszVal, -1, wc, len); - WideCharToMultiByte(CP_ACP, 0, wc, -1, sz, len, NULL, NULL); - Result = !DBWriteContactSettingString(hContact, module, setting, sz); - } - break; - } - - if (!Result) - msg(Translate("Cannot Convert!"), modFullname); - - DBFreeVariant(&dbv); - } - - return Result; -} - - -int saveAsType(HWND hwnd) -{ - if(IsDlgButtonChecked(hwnd, CHK_BYTE)) - return 0; - else if(IsDlgButtonChecked(hwnd, CHK_WORD)) - return 1; - else if(IsDlgButtonChecked(hwnd, CHK_DWORD)) - return 2; - else if(IsDlgButtonChecked(hwnd, CHK_STRING)) - return 3; - return 3; -} - - -INT_PTR CALLBACK EditSettingDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) -{ - switch(msg) - { - case WM_INITDIALOG: - { - char tmp[32]; - SetWindowLongPtr(hwnd,GWLP_USERDATA,(LPARAM)lParam); - switch (((struct DBsetting*)lParam)->dbv.type) - { - case DBVT_BYTE: - ShowWindow(GetDlgItem(hwnd, IDC_STRING),SW_HIDE); - if (!((struct DBsetting*)lParam)->setting[0]) - { - SetWindowText(hwnd, Translate("New BYTE value")); - } - else - { - SetWindowText(hwnd, Translate("Edit BYTE value")); - SetDlgItemText(hwnd, IDC_SETTINGNAME, ((struct DBsetting*)lParam)->setting); - SetDlgItemText(hwnd, IDC_SETTINGVALUE, itoa(((struct DBsetting*)lParam)->dbv.bVal, tmp, 10)); - } - CheckRadioButton(hwnd, CHK_HEX, CHK_DECIMAL, CHK_DECIMAL); - CheckRadioButton(hwnd, CHK_BYTE, CHK_STRING, CHK_BYTE); - break; - case DBVT_WORD: - ShowWindow(GetDlgItem(hwnd, IDC_STRING),SW_HIDE); - if (!((struct DBsetting*)lParam)->setting[0]) - { - SetWindowText(hwnd, Translate("New WORD value")); - } - else - { - SetWindowText(hwnd, Translate("Edit WORD value")); - SetDlgItemText(hwnd, IDC_SETTINGNAME, ((struct DBsetting*)lParam)->setting); - SetDlgItemText(hwnd, IDC_SETTINGVALUE, itoa(((struct DBsetting*)lParam)->dbv.wVal, tmp, 10)); - } - CheckRadioButton(hwnd, CHK_HEX, CHK_DECIMAL, CHK_DECIMAL); - CheckRadioButton(hwnd, CHK_BYTE, CHK_STRING, CHK_WORD); - break; - case DBVT_DWORD: - ShowWindow(GetDlgItem(hwnd, IDC_STRING),SW_HIDE); - if (!((struct DBsetting*)lParam)->setting[0]) - { - SetWindowText(hwnd, Translate("New DWORD value")); - } - else - { - char text[32]; - SetWindowText(hwnd, Translate("Edit DWORD value")); - SetDlgItemText(hwnd, IDC_SETTINGNAME, ((struct DBsetting*)lParam)->setting); - mir_snprintf(text, SIZEOF(text), "%X", ((struct DBsetting*)lParam)->dbv.dVal); - SetDlgItemText(hwnd, IDC_SETTINGVALUE, text); - } - CheckRadioButton(hwnd, CHK_HEX, CHK_DECIMAL, CHK_HEX); - CheckRadioButton(hwnd, CHK_BYTE, CHK_STRING, CHK_DWORD); - break; - case DBVT_ASCIIZ: - ShowWindow(GetDlgItem(hwnd, IDC_STRING),SW_SHOW); - ShowWindow(GetDlgItem(hwnd, IDC_SETTINGVALUE),SW_HIDE); - ShowWindow(GetDlgItem(hwnd, CHK_HEX),SW_HIDE); - ShowWindow(GetDlgItem(hwnd, CHK_DECIMAL),SW_HIDE); - ShowWindow(GetDlgItem(hwnd, GRP_BASE),SW_HIDE); - ShowWindow(GetDlgItem(hwnd, GRP_TYPE),SW_HIDE); - ShowWindow(GetDlgItem(hwnd, CHK_BYTE),SW_HIDE); - ShowWindow(GetDlgItem(hwnd, CHK_WORD),SW_HIDE); - ShowWindow(GetDlgItem(hwnd, CHK_DWORD),SW_HIDE); - ShowWindow(GetDlgItem(hwnd, CHK_STRING),SW_HIDE); - if (!((struct DBsetting*)lParam)->setting[0]) - { - SetWindowText(hwnd, Translate("New STRING value")); - } - else - { - SetWindowText(hwnd, Translate("Edit STRING value")); - SetDlgItemText(hwnd, IDC_SETTINGNAME, ((struct DBsetting*)lParam)->setting); - SetDlgItemText(hwnd, IDC_STRING, ((struct DBsetting*)lParam)->dbv.pszVal); - } - break; - case DBVT_UTF8: - ShowWindow(GetDlgItem(hwnd, IDC_STRING),SW_SHOW); - ShowWindow(GetDlgItem(hwnd, IDC_SETTINGVALUE),SW_HIDE); - ShowWindow(GetDlgItem(hwnd, CHK_HEX),SW_HIDE); - ShowWindow(GetDlgItem(hwnd, CHK_DECIMAL),SW_HIDE); - ShowWindow(GetDlgItem(hwnd, GRP_BASE),SW_HIDE); - ShowWindow(GetDlgItem(hwnd, GRP_TYPE),SW_HIDE); - ShowWindow(GetDlgItem(hwnd, CHK_BYTE),SW_HIDE); - ShowWindow(GetDlgItem(hwnd, CHK_WORD),SW_HIDE); - ShowWindow(GetDlgItem(hwnd, CHK_DWORD),SW_HIDE); - ShowWindow(GetDlgItem(hwnd, CHK_STRING),SW_HIDE); - if (!((struct DBsetting*)lParam)->setting[0]) - { - SetWindowText(hwnd, Translate("New UNICODE value")); - } - else - { - char *tmp = (((struct DBsetting*)lParam)->dbv.pszVal); - if (UOS) - { - int length = (int)strlen(tmp) + 1; - WCHAR *wc = (WCHAR*)_alloca(length*sizeof(WCHAR)); - MultiByteToWideChar(CP_UTF8, 0, tmp, -1, wc, length); - SendMessageW(GetDlgItem(hwnd, IDC_STRING), WM_SETTEXT, 0, (LPARAM)wc); - } - else { - // convert from UTF8 - SetDlgItemText(hwnd, IDC_STRING, tmp); - } - SetWindowText(hwnd, Translate("Edit UNICODE value")); - SetDlgItemText(hwnd, IDC_SETTINGNAME, ((struct DBsetting*)lParam)->setting); - } - break; - case DBVT_BLOB: - { - ShowWindow(GetDlgItem(hwnd, IDC_STRING),SW_HIDE); - ShowWindow(GetDlgItem(hwnd, IDC_SETTINGVALUE),SW_HIDE); - ShowWindow(GetDlgItem(hwnd, IDC_BLOB),SW_SHOW); - - if (!((struct DBsetting*)lParam)->setting[0]) - { - SetWindowText(hwnd, Translate("New BLOB value")); - } - else - { - int j; - char tmp[16]; - int len = ((struct DBsetting*)lParam)->dbv.cpbVal; - char *data = (char*)_alloca(3*(len+1)+10); - BYTE *p = ((struct DBsetting*)lParam)->dbv.pbVal; - - if (!data) return TRUE; - data[0] = '\0'; - - for(j=0; jsetting); - SetDlgItemText(hwnd, IDC_BLOB, data); - } - ShowWindow(GetDlgItem(hwnd, CHK_HEX),SW_HIDE); - ShowWindow(GetDlgItem(hwnd, CHK_DECIMAL),SW_HIDE); - ShowWindow(GetDlgItem(hwnd, GRP_BASE),SW_HIDE); - ShowWindow(GetDlgItem(hwnd, GRP_TYPE),SW_HIDE); - ShowWindow(GetDlgItem(hwnd, CHK_BYTE),SW_HIDE); - ShowWindow(GetDlgItem(hwnd, CHK_WORD),SW_HIDE); - ShowWindow(GetDlgItem(hwnd, CHK_DWORD),SW_HIDE); - ShowWindow(GetDlgItem(hwnd, CHK_STRING),SW_HIDE); - } - break; - default: return TRUE; - } - TranslateDialogDefault(hwnd); - } - return TRUE; - case WM_COMMAND: - switch(LOWORD(wParam)) - { - case CHK_BYTE: - case CHK_WORD: - case CHK_DWORD: - EnableWindow(GetDlgItem(hwnd, CHK_HEX),1); - EnableWindow(GetDlgItem(hwnd, CHK_DECIMAL),1); - CheckRadioButton(hwnd, CHK_BYTE, CHK_STRING, LOWORD(wParam)); - break; - case CHK_STRING: - EnableWindow(GetDlgItem(hwnd, CHK_HEX),0); - EnableWindow(GetDlgItem(hwnd, CHK_DECIMAL),0); - CheckRadioButton(hwnd, CHK_BYTE, CHK_STRING, LOWORD(wParam)); - break; - - case CHK_HEX: - case CHK_DECIMAL: - CheckRadioButton(hwnd,CHK_HEX, CHK_DECIMAL, LOWORD(wParam)); - { - char *setting, temp[32]; - int settingLength, tmp; - settingLength = GetWindowTextLength(GetDlgItem(hwnd, IDC_SETTINGVALUE)); - if (settingLength) - { - setting = (char*)_alloca(settingLength + 1); - if (setting) - { - // havta convert it with sprintf() - GetWindowText(GetDlgItem(hwnd, IDC_SETTINGVALUE), setting, settingLength+1); - if (LOWORD(wParam) == CHK_DECIMAL && IsDlgButtonChecked(hwnd, CHK_DECIMAL)) - { - sscanf(setting, "%X", &tmp); - mir_snprintf(temp, SIZEOF(temp), "%ld", tmp); - } - else - { - sscanf(setting, "%d", &tmp); - mir_snprintf(temp, SIZEOF(temp), "%X", tmp); - } - SetWindowText(GetDlgItem(hwnd, IDC_SETTINGVALUE), temp); - } - } - } - break; - case IDOK: - { - struct DBsetting *dbsetting = (struct DBsetting*)GetWindowLongPtr(hwnd,GWLP_USERDATA); - char *setting, *value; - int settingLength, valueLength, valueID = IDC_SETTINGVALUE; - settingLength = GetWindowTextLength(GetDlgItem(hwnd, IDC_SETTINGNAME)); - - if (IsWindowVisible(GetDlgItem(hwnd,IDC_STRING))) - valueID = IDC_STRING; - else - if (IsWindowVisible(GetDlgItem(hwnd,IDC_SETTINGVALUE))) - valueID = IDC_SETTINGVALUE; - else - if (IsWindowVisible(GetDlgItem(hwnd,IDC_BLOB))) - valueID = IDC_BLOB; - else - break; - - valueLength = GetWindowTextLength(GetDlgItem(hwnd, valueID)); - - if (dbsetting->dbv.type == DBVT_UTF8 && UOS) - valueLength *= sizeof(WCHAR); - - if (settingLength) - { - int settingValue; - setting = (char*)_alloca(settingLength + 1); - - if (valueLength) - value = (char*)_alloca(valueLength + 2); - else - value = (char*)_alloca(2); - - if (!setting || !value) - { - msg(Translate("Couldnt allocate enough memory!"), modFullname); - DestroyWindow(hwnd); - break; - } - - GetWindowText(GetDlgItem(hwnd, IDC_SETTINGNAME), setting, settingLength+1); - - if (valueLength) - { - if (dbsetting->dbv.type == DBVT_UTF8 && UOS) - SendMessageW(GetDlgItem(hwnd, valueID), WM_GETTEXT, valueLength+2, (LPARAM)value); - else - GetWindowText(GetDlgItem(hwnd, valueID), value, valueLength+1); - } - else - if (IsWindowVisible(GetDlgItem(hwnd,IDC_STRING)) || (saveAsType(hwnd)==3)) - memcpy(value,"\0\0",2); - else - strcpy(value,"0"); - - // delete the old setting - if (mir_strcmp(setting, dbsetting->setting) && dbsetting->setting && (dbsetting->setting)[0] != 0) - DBDeleteContactSetting(dbsetting->hContact, dbsetting->module, dbsetting->setting); - - // delete the setting if we are saving as a different type - switch (dbsetting->dbv.type) - { - case DBVT_BYTE: - if (saveAsType(hwnd) != 0) DBDeleteContactSetting(dbsetting->hContact, dbsetting->module, setting); - break; - case DBVT_WORD: - if (saveAsType(hwnd) != 1) DBDeleteContactSetting(dbsetting->hContact, dbsetting->module, setting); - break; - case DBVT_DWORD: - if (saveAsType(hwnd) != 2) DBDeleteContactSetting(dbsetting->hContact, dbsetting->module, setting); - break; - //case DBVT_ASCIIZ: - //DBWriteContactSettingString(dbsetting->hContact, dbsetting->module, setting, value); - //break; - } - // write the setting - switch (saveAsType(hwnd)) - { - case 0: - if (IsDlgButtonChecked(hwnd, CHK_HEX)) sscanf(value, "%x", &settingValue); - else sscanf(value, "%d", &settingValue); - DBWriteContactSettingByte(dbsetting->hContact, dbsetting->module, setting, (BYTE)settingValue); - break; - case 1: - if (IsDlgButtonChecked(hwnd, CHK_HEX)) sscanf(value, "%x", &settingValue); - else sscanf(value, "%d", &settingValue); - DBWriteContactSettingWord(dbsetting->hContact, dbsetting->module, setting, (WORD)settingValue); - break; - case 2: - if (IsDlgButtonChecked(hwnd, CHK_HEX)) sscanf(value, "%x", &settingValue); - else sscanf(value, "%d", &settingValue); - DBWriteContactSettingDword(dbsetting->hContact, dbsetting->module, setting, (DWORD)settingValue); - break; - case 3: - if (dbsetting->dbv.type == DBVT_UTF8) - { - if (UOS) - DBWriteContactSettingWString(dbsetting->hContact, dbsetting->module, setting, (WCHAR*)value); - else - DBWriteContactSettingStringUtf(dbsetting->hContact, dbsetting->module, setting, value); - } - else - if (dbsetting->dbv.type == DBVT_BLOB) - WriteBlobFromString(dbsetting->hContact,dbsetting->module,setting,value,valueLength); - else - if (dbsetting->dbv.type == DBVT_ASCIIZ) - DBWriteContactSettingString(dbsetting->hContact, dbsetting->module, setting, value); - break; - } - - } - } // fall through - case IDCANCEL: - { - struct DBsetting *dbsetting = (struct DBsetting*)GetWindowLongPtr(hwnd,GWLP_USERDATA); - mir_free(dbsetting->module); - mir_free(dbsetting->setting); - mir_free(dbsetting); - DestroyWindow(hwnd); - } - break; - } - break; - } - return 0; -} - -void editSetting(HANDLE hContact, char* module, char* setting) -{ - DBVARIANT dbv = {0}; // freed in the dialog - if (!GetSetting(hContact,module, setting, &dbv)) - { - struct DBsetting *dbsetting = (struct DBsetting *)mir_alloc(sizeof(struct DBsetting)); // gets free()ed in the window proc - - dbsetting->dbv = dbv; // freed in the dialog - dbsetting->hContact = hContact; - dbsetting->module = mir_tstrdup(module); - dbsetting->setting = mir_tstrdup(setting); - - if (dbv.type == DBVT_UTF8 && UOS) - CreateDialogParamW(hInst, MAKEINTRESOURCEW(IDD_EDIT_SETTING), hwnd2mainWindow, EditSettingDlgProc, (LPARAM)dbsetting); - else - CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_EDIT_SETTING), hwnd2mainWindow, EditSettingDlgProc, (LPARAM)dbsetting); - } -} \ No newline at end of file -- cgit v1.2.3