IPShitlistUserTab.cpp
上传用户:surprise9
上传日期:2007-01-04
资源大小:426k
文件大小:4k
源码类别:

Ftp客户端

开发平台:

Visual C++

  1. // IPShitlistUserTab.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "WarClient.h"
  5. #include "edituseroption.h"
  6. #include "resource.h"
  7. #include "UserDialog.h"
  8. #include "IPShitlistUserTab.h"
  9. #ifdef _DEBUG
  10. #define new DEBUG_NEW
  11. #undef THIS_FILE
  12. static char THIS_FILE[] = __FILE__;
  13. #endif
  14. /////////////////////////////////////////////////////////////////////////////
  15. // CIPShitlistUserTab dialog
  16. CIPShitlistUserTab::CIPShitlistUserTab(CWnd* pParent /*=NULL*/)
  17. : CWarUserDlgTemplate(CIPShitlistUserTab::IDD, pParent)
  18. {
  19. //{{AFX_DATA_INIT(CIPShitlistUserTab)
  20. //}}AFX_DATA_INIT
  21. }
  22. CIPShitlistUserTab::~CIPShitlistUserTab()
  23. {
  24. }
  25. void CIPShitlistUserTab::DoDataExchange(CDataExchange* pDX)
  26. {
  27. CDialog::DoDataExchange(pDX);
  28. CString cBuf;
  29. //{{AFX_DATA_MAP(CIPShitlistUserTab)
  30. DDX_Control(pDX, IDC_IPDISABLESHITLIST, m_ctlEnableShitlist);
  31. //}}AFX_DATA_MAP
  32. if (pDX->m_bSaveAndValidate)
  33. {
  34. // Shuffle data _from_ dialog
  35. // We don't do that. All controls are updated (written) realtime.
  36. }
  37. else
  38. {
  39. // Shuffle data _to_ dialog
  40. USER Origin;
  41. CUserInfo *pUser = m_pUserDlg->GetCurrentUser();
  42. if (!pUser || (pUser->m_AliasFor != INVALID_USER_VALUE))
  43. {
  44. // We don't want to handle aliases
  45. m_pShitlist->DeleteAllItems();
  46. m_pViplist->DeleteAllItems();
  47. m_pMaxConn->DeleteAllItems();
  48. GetDlgItem(IDC_IPTOTALSHITLIST)->EnableWindow(FALSE);
  49. GetDlgItem(IDC_IPTOTALVIPLIST)->EnableWindow(FALSE);
  50. GetDlgItem(IDC_IPDISABLESHITLIST)->EnableWindow(FALSE);
  51. GetDlgItem(IDC_IPMAXCONCURRENTCONN)->EnableWindow(FALSE);
  52. }
  53. else
  54. {
  55. m_pUserDlg->RefreshChkButton(&m_ctlEnableShitlist, "Disable IP Shitlist", Origin);
  56. m_pShitlist->DeleteAllItems();
  57. m_pViplist->DeleteAllItems();
  58. if (m_ctlEnableShitlist.GetCheck() == 0)
  59. {
  60. m_pShitlist->UpdateText();
  61. m_pViplist->UpdateText();
  62. }
  63. m_pMaxConn->UpdateText();
  64. GetDlgItem(IDC_IPTOTALSHITLIST)->EnableWindow(m_ctlEnableShitlist.GetCheck() == 0);
  65. GetDlgItem(IDC_IPTOTALVIPLIST)->EnableWindow(m_ctlEnableShitlist.GetCheck() == 0);
  66. GetDlgItem(IDC_IPDISABLESHITLIST)->EnableWindow(TRUE);
  67. GetDlgItem(IDC_IPMAXCONCURRENTCONN)->EnableWindow(TRUE);
  68. }
  69. }
  70. }
  71. BEGIN_MESSAGE_MAP(CIPShitlistUserTab, CWarUserDlgTemplate)
  72. //{{AFX_MSG_MAP(CIPShitlistUserTab)
  73. ON_BN_CLICKED(IDC_IPDISABLESHITLIST, OnIpdisableshitlist)
  74. //}}AFX_MSG_MAP
  75. END_MESSAGE_MAP()
  76. /////////////////////////////////////////////////////////////////////////////
  77. // CIPShitlistUserTab message handlers
  78. BOOL CIPShitlistUserTab::OnInitDialog() 
  79. {
  80. // These lines will subclass the CListCtrl's in the dialog with
  81. // the DLL_WAR_CLIENT CEditUserOption class derived from CListCtrl.
  82. // The CEditUserOption class will display the correct value/icon, based
  83. // on the users type and at what level the value was found.
  84. // The CEditUserOption class handle updating of the user database itself. All
  85. // we have to do is to enable/disable the windows and call CEditUserOption::UpdateText()
  86. // whenever we want the list controls to reflect the value in the user database.
  87. // CEditUserOption handles both a single line (edit control substitute) and normal lists.
  88. // Note: CEditUserOption must be constructed prior to calling CDialog::OnInitDialog()!
  89. m_pShitlist = new CEditUserOption("IP Shitlist", ";", TRUE, IDC_IPTOTALSHITLIST, this);
  90. m_pViplist = new CEditUserOption("IP Viplist", ";", TRUE, IDC_IPTOTALVIPLIST, this);
  91. m_pMaxConn = new CEditUserOption("IP MaxConn", "", FALSE, IDC_IPMAXCONCURRENTCONN, this);
  92. CDialog::OnInitDialog();
  93. UpdateData();
  94. return TRUE;  // return TRUE unless you set the focus to a control
  95.               // EXCEPTION: OCX Property Pages should return FALSE
  96. }
  97. void CIPShitlistUserTab::OnIpdisableshitlist() 
  98. {
  99. USER Origin;
  100. // When we use ChkButtonClikked(), the auto state of the dialog button
  101. // must be disabled! ChkButtonClikked() will trigger the state.
  102. m_pUserDlg->ChkButtonClikked(&m_ctlEnableShitlist, "Enable IP Shitlist");
  103. m_pUserDlg->RefreshChkButton(&m_ctlEnableShitlist, "Enable IP Shitlist", Origin);
  104. UpdateData(FALSE);
  105. }