void CVkAccMgrForm::OnApply() { pass_ptrT ptszNewPass(m_edtPassword.GetText()); bool bPassChanged = mir_tstrcmp(m_ptszOldPass, ptszNewPass) != 0; if (bPassChanged) { T2Utf szRawPasswd(ptszNewPass); m_proto->setString("Password", szRawPasswd); pass_ptrA pszPass(szRawPasswd.detach()); m_ptszOldPass = ptszNewPass; } ptrT ptszNewLogin(m_edtLogin.GetText()); if (bPassChanged || mir_tstrcmpi(m_ptszOldLogin, ptszNewLogin)) m_proto->ClearAccessToken(); m_ptszOldLogin = ptszNewLogin; }
void CVkOptionAccountForm::OnApply() { if (m_cbSyncHistoryOff.GetState()) m_proto->m_vkOptions.iSyncHistoryMetod = SyncHistoryMetod::syncOff; if (m_cbSyncHistoryAuto.GetState()) m_proto->m_vkOptions.iSyncHistoryMetod = SyncHistoryMetod::syncAuto; if (m_cbSyncHistoryForLast1Day.GetState()) m_proto->m_vkOptions.iSyncHistoryMetod = SyncHistoryMetod::sync1Days; if (m_cbSyncHistoryForLast3Day.GetState()) m_proto->m_vkOptions.iSyncHistoryMetod = SyncHistoryMetod::sync3Days; if (m_cbMarkMessageOnRead.GetState()) m_proto->m_vkOptions.iMarkMessageReadOn = MarkMsgReadOn::markOnRead; if (m_cbMarkMessageOnReceive.GetState()) m_proto->m_vkOptions.iMarkMessageReadOn = MarkMsgReadOn::markOnReceive; if (m_cbMarkMessageOnReply.GetState()) m_proto->m_vkOptions.iMarkMessageReadOn = MarkMsgReadOn::markOnReply; if (m_cbMarkMessageOnTyping.GetState()) m_proto->m_vkOptions.iMarkMessageReadOn = MarkMsgReadOn::markOnTyping; m_proto->m_vkOptions.ptszVKLang = (TCHAR *)m_cbxVKLang.GetItemData(m_cbxVKLang.GetCurSel()); if (!IsEmpty(m_proto->m_vkOptions.ptszVKLang)) m_proto->setTString("VKLang", m_proto->m_vkOptions.ptszVKLang); else m_proto->delSetting("VKLang"); ptrT ptszGroupName(m_edtGroupName.GetText()); if (mir_tstrcmp(m_ptszOldGroup, ptszGroupName)) { m_proto->setGroup(ptszGroupName); m_ptszOldGroup = ptszGroupName; } pass_ptrT ptszNewPass(m_edtPassword.GetText()); bool bPassChanged = mir_tstrcmp(m_ptszOldPass, ptszNewPass) != 0; if (bPassChanged) { T2Utf szRawPasswd(ptszNewPass); m_proto->setString("Password", szRawPasswd); pass_ptrA pszPass(szRawPasswd.detach()); m_ptszOldPass = ptszNewPass; } ptrT ptszNewLogin(m_edtLogin.GetText()); if (bPassChanged || mir_tstrcmpi(m_ptszOldLogin, ptszNewLogin)) m_proto->ClearAccessToken(); m_ptszOldLogin = ptszNewLogin; }
INT_PTR CALLBACK CVkProto::OptionsProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { CVkProto *ppro = (CVkProto*)GetWindowLongPtr(hwndDlg, GWLP_USERDATA); switch (uMsg) { case WM_INITDIALOG: TranslateDialogDefault(hwndDlg); ppro = (CVkProto*)lParam; SetWindowLongPtr(hwndDlg, GWLP_USERDATA, lParam); SendMessage(hwndDlg, WM_SETICON, ICON_BIG, (LPARAM)Skin_GetIconByHandle(ppro->m_hProtoIcon, true)); SendMessage(hwndDlg, WM_SETICON, ICON_SMALL, (LPARAM)Skin_GetIconByHandle(ppro->m_hProtoIcon)); { ptrT tszLogin(ppro->getTStringA("Login")); if (tszLogin != NULL) SetDlgItemText(hwndDlg, IDC_LOGIN, tszLogin); ptrT tszPassw(ppro->GetUserStoredPassword()); if (tszPassw != NULL) SetDlgItemText(hwndDlg, IDC_PASSWORD, tszPassw); SetDlgItemText(hwndDlg, IDC_GROUPNAME, ppro->getGroup()); } CheckDlgButton(hwndDlg, IDC_DELIVERY, ppro->m_bServerDelivery); CheckDlgButton(hwndDlg, IDC_HIDECHATS, ppro->m_bHideChats); CheckDlgButton(hwndDlg, IDC_AUTOCLEAN, ppro->getByte("AutoClean", 0)); return TRUE; case WM_COMMAND: switch (LOWORD(wParam)) { case IDC_URL: CallService(MS_UTILS_OPENURL, 1, (LPARAM)"http://www.vk.com"); break; case IDC_LOGIN: case IDC_PASSWORD: case IDC_GROUPNAME: if (HIWORD(wParam) == EN_CHANGE && (HWND)lParam == GetFocus()) SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); break; case IDC_DELIVERY: case IDC_HIDECHATS: case IDC_AUTOCLEAN: if (HIWORD(wParam) == BN_CLICKED && (HWND)lParam == GetFocus()) SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); break; } break; case WM_NOTIFY: if (((LPNMHDR)lParam)->code == PSN_APPLY) { TCHAR str[128]; GetDlgItemText(hwndDlg, IDC_LOGIN, str, SIZEOF(str)); ppro->setTString("Login", str); GetDlgItemText(hwndDlg, IDC_GROUPNAME, str, SIZEOF(str)); if (_tcscmp(ppro->getGroup(), str)) { ppro->setGroup(str); ppro->setTString("ProtoGroup", str); } GetDlgItemText(hwndDlg, IDC_PASSWORD, str, SIZEOF(str)); ptrA szRawPasswd(mir_utf8encodeT(str)); if (szRawPasswd != NULL) ppro->setString("Password", szRawPasswd); ppro->m_bServerDelivery = IsDlgButtonChecked(hwndDlg, IDC_DELIVERY) == BST_CHECKED; ppro->setByte("ServerDelivery", ppro->m_bServerDelivery); ppro->m_bHideChats = IsDlgButtonChecked(hwndDlg, IDC_HIDECHATS) == BST_CHECKED; ppro->setByte("HideChats", ppro->m_bHideChats); ppro->setByte("AutoClean", IsDlgButtonChecked(hwndDlg, IDC_AUTOCLEAN) == BST_CHECKED); } break; case WM_CLOSE: EndDialog(hwndDlg, 0); break; case WM_DESTROY: Skin_ReleaseIcon((HICON)SendMessage(hwndDlg, WM_GETICON, ICON_BIG, 0)); Skin_ReleaseIcon((HICON)SendMessage(hwndDlg, WM_GETICON, ICON_SMALL, 0)); break; } return FALSE; }
INT_PTR CALLBACK VKAccountProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { CVkProto *ppro = (CVkProto*)GetWindowLongPtr(hwndDlg, GWLP_USERDATA); switch (uMsg) { case WM_INITDIALOG: TranslateDialogDefault(hwndDlg); ppro = (CVkProto*)lParam; SetWindowLongPtr( hwndDlg, GWLP_USERDATA, lParam ); SendMessage(hwndDlg, WM_SETICON, ICON_BIG, (LPARAM)Skin_GetIconByHandle(ppro->m_hProtoIcon, true)); SendMessage(hwndDlg, WM_SETICON, ICON_SMALL, (LPARAM)Skin_GetIconByHandle(ppro->m_hProtoIcon)); { ptrT tszLogin(ppro->getTStringA("Login")); if (tszLogin != NULL) SetDlgItemText(hwndDlg, IDC_LOGIN, tszLogin); ptrT tszPassw(ppro->GetUserStoredPassword()); if (tszPassw != NULL) SetDlgItemText(hwndDlg, IDC_PASSWORD, tszPassw); } return TRUE; case WM_COMMAND: switch (LOWORD(wParam)) { case IDC_URL: CallService(MS_UTILS_OPENURL, 1, (LPARAM)"http://www.vk.com"); break; case IDC_LOGIN: case IDC_PASSWORD: if (HIWORD(wParam) == EN_CHANGE && (HWND)lParam == GetFocus()) { SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); break; } } break; case WM_NOTIFY: switch (((LPNMHDR)lParam)->code) { case PSN_APPLY: TCHAR str[128]; GetDlgItemText(hwndDlg, IDC_LOGIN, str, SIZEOF(str)); ppro->setTString("Login", str); GetDlgItemText(hwndDlg, IDC_PASSWORD, str, SIZEOF(str)); ptrA szRawPasswd( mir_utf8encodeT(str)); if (szRawPasswd != NULL) ppro->setString("Password", szRawPasswd); } break; case WM_CLOSE: EndDialog(hwndDlg, 0); break; case WM_DESTROY: Skin_ReleaseIcon((HICON)SendMessage(hwndDlg, WM_GETICON, ICON_BIG, 0)); Skin_ReleaseIcon((HICON)SendMessage(hwndDlg, WM_GETICON, ICON_SMALL, 0)); break; } return FALSE; }