DetailAuthDlg.cpp
上传用户:zslianheng
上传日期:2013-04-03
资源大小:946k
文件大小:4k
源码类别:

Linux/Unix编程

开发平台:

Visual C++

  1. /***************************************************************************
  2.  *                                                                         *
  3.  *   This program is free software; you can redistribute it and/or modify  *
  4.  *   it under the terms of the GNU General Public License as published by  *
  5.  *   the Free Software Foundation; either version 2 of the License, or     *
  6.  *   (at your option) any later version.                                   *
  7.  *                                                                         *
  8.  *   copyright            : (C) 2002 by Zhang Yong                         *
  9.  *   email                : z-yong163@163.com                              *
  10.  ***************************************************************************/
  11. // DetailAuthDlg.cpp : implementation file
  12. //
  13. #include "stdafx.h"
  14. #include "myicq.h"
  15. #include "DetailAuthDlg.h"
  16. #include "icqlink.h"
  17. #ifdef _DEBUG
  18. #define new DEBUG_NEW
  19. #undef THIS_FILE
  20. static char THIS_FILE[] = __FILE__;
  21. #endif
  22. /////////////////////////////////////////////////////////////////////////////
  23. // CDetailAuthDlg property page
  24. IMPLEMENT_DYNCREATE(CDetailAuthDlg, CPropertyPage)
  25. CDetailAuthDlg::CDetailAuthDlg() : CPropertyPage(CDetailAuthDlg::IDD)
  26. {
  27. //{{AFX_DATA_INIT(CDetailAuthDlg)
  28. m_passwd = _T("");
  29. m_passwdAgain = _T("");
  30. m_passwdOld = _T("");
  31. m_auth = 0;
  32. m_modifyPasswd = FALSE;
  33. //}}AFX_DATA_INIT
  34. }
  35. CDetailAuthDlg::~CDetailAuthDlg()
  36. {
  37. }
  38. void CDetailAuthDlg::enablePasswd(BOOL enable)
  39. {
  40. GetDlgItem(IDC_PASSWD_OLD)->EnableWindow(enable);
  41. GetDlgItem(IDC_PASSWD)->EnableWindow(enable);
  42. GetDlgItem(IDC_PASSWD_AGAIN)->EnableWindow(enable);
  43. }
  44. void CDetailAuthDlg::enableAll(BOOL enable)
  45. {
  46. GetDlgItem(IDC_MODIFY_PASSWD)->EnableWindow(enable);
  47. GetDlgItem(IDC_AUTH_ALL)->EnableWindow(enable);
  48. GetDlgItem(IDC_AUTH_REQUEST)->EnableWindow(enable);
  49. GetDlgItem(IDC_AUTH_NONE)->EnableWindow(enable);
  50. enablePasswd(enable && IsDlgButtonChecked(IDC_MODIFY_PASSWD) == 1);
  51. }
  52. void CDetailAuthDlg::setData(IcqUser *user)
  53. {
  54. m_auth = user->auth;
  55. UpdateData(FALSE);
  56. }
  57. BOOL CDetailAuthDlg::UpdateData(BOOL bSaveAndValidate)
  58. {
  59. if (CDialog::UpdateData(bSaveAndValidate)) {
  60. if (bSaveAndValidate && m_modifyPasswd) {
  61. if (m_passwdOld != icqLink->myInfo.passwd.c_str()) {
  62. myMessageBox(IDS_WRONG_PASSWD, IDS_ERROR, this, MB_ICONERROR | MB_OK);
  63. return FALSE;
  64. } else if (m_passwd != m_passwdAgain) {
  65. myMessageBox(IDS_PASSWD_MISMATCH, IDS_ERROR, this, MB_ICONERROR | MB_OK);
  66. return FALSE;
  67. }
  68. }
  69. return TRUE;
  70. }
  71. return FALSE;
  72. }
  73. void CDetailAuthDlg::DoDataExchange(CDataExchange* pDX)
  74. {
  75. CPropertyPage::DoDataExchange(pDX);
  76. //{{AFX_DATA_MAP(CDetailAuthDlg)
  77. DDX_Text(pDX, IDC_PASSWD, m_passwd);
  78. DDX_Text(pDX, IDC_PASSWD_AGAIN, m_passwdAgain);
  79. DDX_Text(pDX, IDC_PASSWD_OLD, m_passwdOld);
  80. DDX_Radio(pDX, IDC_AUTH_ALL, m_auth);
  81. DDX_Check(pDX, IDC_MODIFY_PASSWD, m_modifyPasswd);
  82. //}}AFX_DATA_MAP
  83. }
  84. BEGIN_MESSAGE_MAP(CDetailAuthDlg, CPropertyPage)
  85. //{{AFX_MSG_MAP(CDetailAuthDlg)
  86. ON_BN_CLICKED(IDC_MODIFY_PASSWD, OnModifyPasswd)
  87. ON_BN_CLICKED(IDC_UPDATE, OnModify)
  88. //}}AFX_MSG_MAP
  89. END_MESSAGE_MAP()
  90. /////////////////////////////////////////////////////////////////////////////
  91. // CDetailAuthDlg message handlers
  92. void CDetailAuthDlg::OnModifyPasswd() 
  93. {
  94. enablePasswd(IsDlgButtonChecked(IDC_MODIFY_PASSWD) == 1);
  95. }
  96. void CDetailAuthDlg::OnModify() 
  97. {
  98. GetParent()->SendMessage(WM_COMMAND, IDC_UPDATE);
  99. }
  100. void CDetailAuthDlg::OnCancel() 
  101. {
  102. GetParent()->DestroyWindow();
  103. }