From c797252e7c2829291a43301bf8d1c9485c95f888 Mon Sep 17 00:00:00 2001 From: Alexander Lantsev Date: Wed, 26 Sep 2012 19:32:36 +0000 Subject: - moved SkypeAccountProc DLGPROC callback to skype_dialogs.cpp git-svn-id: http://svn.miranda-ng.org/main/trunk@1672 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/Skype/skype_dialogs.cpp | 72 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 protocols/Skype/skype_dialogs.cpp (limited to 'protocols/Skype/skype_dialogs.cpp') diff --git a/protocols/Skype/skype_dialogs.cpp b/protocols/Skype/skype_dialogs.cpp new file mode 100644 index 0000000000..dc8daf2b1b --- /dev/null +++ b/protocols/Skype/skype_dialogs.cpp @@ -0,0 +1,72 @@ +#include "src\skype_proto.h" + +INT_PTR CALLBACK CSkypeProto::SkypeAccountProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) +{ + CSkypeProto *proto; + + switch ( message ) + { + case WM_INITDIALOG: + TranslateDialogDefault(hwnd); + + proto = reinterpret_cast(lparam); + SetWindowLongPtr(hwnd, GWLP_USERDATA, lparam); + + DBVARIANT dbv; + if ( !DBGetContactSettingString(0, proto->ModuleName(), "SkypeName", &dbv)) + { + SetDlgItemText(hwnd, IDC_SN, dbv.ptszVal); + DBFreeVariant(&dbv); + } + + if ( !DBGetContactSettingString(0, proto->ModuleName(), "Password", &dbv)) + { + CallService( + MS_DB_CRYPT_DECODESTRING, + wcslen(dbv.ptszVal) + 1, + reinterpret_cast(dbv.ptszVal)); + SetDlgItemText(hwnd, IDC_PW, dbv.ptszVal); + DBFreeVariant(&dbv); + } + + if ( !proto->IsOffline()) + { + SendMessage(GetDlgItem(hwnd, IDC_SN), EM_SETREADONLY, 1, 0); + SendMessage(GetDlgItem(hwnd, IDC_PW), EM_SETREADONLY, 1, 0); + } + + return TRUE; + + case WM_COMMAND: + if (HIWORD(wparam) == EN_CHANGE && reinterpret_cast(lparam) == GetFocus()) + { + switch(LOWORD(wparam)) + { + case IDC_SN: + case IDC_PW: + SendMessage(GetParent(hwnd), PSM_CHANGED, 0, 0); + } + } + break; + + case WM_NOTIFY: + if (reinterpret_cast(lparam)->code == PSN_APPLY) + { + proto = reinterpret_cast(GetWindowLongPtr(hwnd, GWLP_USERDATA)); + TCHAR str[128]; + + GetDlgItemText(hwnd, IDC_SN, str, sizeof(str)); + DBWriteContactSettingTString(0, proto->ModuleName(), "SkypeName", str); + + GetDlgItemText(hwnd, IDC_PW, str, sizeof(str)); + CallService(MS_DB_CRYPT_ENCODESTRING, sizeof(str), reinterpret_cast(str)); + DBWriteContactSettingTString(0, proto->ModuleName(), "Password", str); + + return TRUE; + } + break; + + } + + return FALSE; +} \ No newline at end of file -- cgit v1.2.3