diff options
| author | Alexander Lantsev <aunsane@gmail.com> | 2012-09-26 19:32:36 +0000 |
|---|---|---|
| committer | Alexander Lantsev <aunsane@gmail.com> | 2012-09-26 19:32:36 +0000 |
| commit | c797252e7c2829291a43301bf8d1c9485c95f888 (patch) | |
| tree | 13414c16ce225f7580ef43f8062cc7a78cf544a8 /protocols/Skype/skype_dialogs.cpp | |
| parent | c3f5a3edb0b04ead2e16a68e3c2bd8a1721667df (diff) | |
- moved SkypeAccountProc DLGPROC callback to skype_dialogs.cpp
git-svn-id: http://svn.miranda-ng.org/main/trunk@1672 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'protocols/Skype/skype_dialogs.cpp')
| -rw-r--r-- | protocols/Skype/skype_dialogs.cpp | 72 |
1 files changed, 72 insertions, 0 deletions
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<CSkypeProto*>(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<LPARAM>(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<HWND>(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<NMHDR*>(lparam)->code == PSN_APPLY)
+ {
+ proto = reinterpret_cast<CSkypeProto*>(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<LPARAM>(str));
+ DBWriteContactSettingTString(0, proto->ModuleName(), "Password", str);
+
+ return TRUE;
+ }
+ break;
+
+ }
+
+ return FALSE;
+}
\ No newline at end of file |
