SearchAddDlg.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. // SearchAddDlg.cpp : implementation file
  12. //
  13. #include "stdafx.h"
  14. #include "myicq.h"
  15. #include "SearchAddDlg.h"
  16. #include "SearchWizard.h"
  17. #include "serversession.h"
  18. #include "icqlink.h"
  19. #ifdef _DEBUG
  20. #define new DEBUG_NEW
  21. #undef THIS_FILE
  22. static char THIS_FILE[] = __FILE__;
  23. #endif
  24. /////////////////////////////////////////////////////////////////////////////
  25. // CSearchAddDlg property page
  26. IMPLEMENT_DYNCREATE(CSearchAddDlg, CPropertyPage)
  27. CSearchAddDlg::CSearchAddDlg() : CPropertyPage(CSearchAddDlg::IDD)
  28. {
  29. //{{AFX_DATA_INIT(CSearchAddDlg)
  30. // NOTE: the ClassWizard will add member initialization here
  31. //}}AFX_DATA_INIT
  32. }
  33. CSearchAddDlg::~CSearchAddDlg()
  34. {
  35. }
  36. void CSearchAddDlg::onAddFriendReply(uint8 result)
  37. {
  38. CString str;
  39. if (result == ADD_FRIEND_REJECTED) {
  40. str.LoadString(IDS_ADD_REJECTED);
  41. SetDlgItemText(IDC_STATUS_DETAIL, str);
  42. } else if (result == ADD_FRIEND_ACCEPTED) {
  43. str.LoadString(IDS_ADD_ACCEPTED);
  44. SetDlgItemText(IDC_STATUS_DETAIL, str);
  45. ((CPropertySheet *) GetParent())->SetWizardButtons(PSWIZB_BACK | PSWIZB_FINISH);
  46. } else if (result == ADD_FRIEND_AUTH_REQ) {
  47. str.LoadString(IDS_AUTH_REQUIRED);
  48. SetDlgItemText(IDC_STATUS_DETAIL, str);
  49. GetDlgItem(IDC_REQUEST)->ShowWindow(SW_NORMAL);
  50. GetDlgItem(IDC_SEND_REQUEST)->ShowWindow(SW_NORMAL);
  51. }
  52. m_ctlAnim.stop();
  53. }
  54. void CSearchAddDlg::onAck(uint32 seq)
  55. {
  56. m_ctlAnim.stop();
  57. CString str;
  58. str.LoadString(IDS_REQUEST_SENT);
  59. SetDlgItemText(IDC_STATUS_DETAIL, str);
  60. ((CPropertySheet *) GetParent())->SetWizardButtons(PSWIZB_BACK | PSWIZB_FINISH);
  61. }
  62. void CSearchAddDlg::DoDataExchange(CDataExchange* pDX)
  63. {
  64. CPropertyPage::DoDataExchange(pDX);
  65. //{{AFX_DATA_MAP(CSearchAddDlg)
  66. DDX_Control(pDX, IDC_STATIC_PIC, m_ctlAnim);
  67. //}}AFX_DATA_MAP
  68. }
  69. BEGIN_MESSAGE_MAP(CSearchAddDlg, CPropertyPage)
  70. //{{AFX_MSG_MAP(CSearchAddDlg)
  71. ON_BN_CLICKED(IDC_SEND_REQUEST, OnSendRequest)
  72. //}}AFX_MSG_MAP
  73. END_MESSAGE_MAP()
  74. /////////////////////////////////////////////////////////////////////////////
  75. // CSearchAddDlg message handlers
  76. BOOL CSearchAddDlg::OnSetActive() 
  77. {
  78. CSearchWizard *wiz = (CSearchWizard *) GetParent();
  79. GetDlgItem(IDC_REQUEST)->EnableWindow();
  80. GetDlgItem(IDC_REQUEST)->ShowWindow(SW_HIDE);
  81. GetDlgItem(IDC_SEND_REQUEST)->EnableWindow();
  82. GetDlgItem(IDC_SEND_REQUEST)->ShowWindow(SW_HIDE);
  83. SetDlgItemText(IDC_REQUEST, "");
  84. wiz->SetWizardButtons(PSWIZB_DISABLEDFINISH);
  85. SEARCH_RESULT *result = wiz->resultDlg.getResult();
  86. if (!result)
  87. return FALSE;
  88. wiz->uin = result->uin;
  89. SetDlgItemInt(IDC_UIN, result->uin, FALSE);
  90. SetDlgItemText(IDC_NICK, result->nick.c_str());
  91. SetDlgItemText(IDC_PROVINCE, result->province.c_str());
  92. wiz->seq = serverSession()->addFriend(result->uin);
  93. m_ctlAnim.start();
  94. return CPropertyPage::OnSetActive();
  95. }
  96. void CSearchAddDlg::OnSendRequest() 
  97. {
  98. CString str;
  99. GetDlgItemText(IDC_REQUEST, str);
  100. IcqUser &info = icqLink->myInfo;
  101. TextOutStream out;
  102. out << info.face << info.nick.c_str() << str;
  103. CSearchWizard *wiz = (CSearchWizard *) GetParent();
  104. wiz->seq = serverSession()->sendMessage(MSG_AUTH_REQUEST, wiz->uin, out);
  105. GetDlgItem(IDC_REQUEST)->EnableWindow(FALSE);
  106. GetDlgItem(IDC_SEND_REQUEST)->EnableWindow(FALSE);
  107. m_ctlAnim.start();
  108. }
  109. BOOL CSearchAddDlg::OnWizardFinish() 
  110. {
  111. GetParent()->DestroyWindow();
  112. return CPropertyPage::OnWizardFinish();
  113. }