home *** CD-ROM | disk | FTP | other *** search
- /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
- *
- * The contents of this file are subject to the Netscape Public License
- * Version 1.0 (the "NPL"); you may not use this file except in
- * compliance with the NPL. You may obtain a copy of the NPL at
- * http://www.mozilla.org/NPL/
- *
- * Software distributed under the NPL is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
- * for the specific language governing rights and limitations under the
- * NPL.
- *
- * The Initial Developer of this code under the NPL is Netscape
- * Communications Corporation. Portions created by Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All Rights
- * Reserved.
- */
-
- #include "stdafx.h"
-
- #include "property.h"
- #include "styles.h"
-
- #include "helper.h"
- #include "display.h"
- #include "dialog.h"
-
- #include "secnav.h"
- #include "custom.h"
- #include "cxabstra.h"
-
- #include "mnwizard.h"
- #include "mnprefs.h"
- #include "prefapi.h"
- #include "msgcom.h"
- #include "wfemsg.h"
-
- #define BUFSZ 1000
-
- #ifdef _DEBUG
- #undef THIS_FILE
- static char BASED_CODE THIS_FILE[] = __FILE__;
- #endif
-
- extern "C" BOOL IsNumeric(char* pStr);
-
- extern "C" BOOL EmailValid(char* pEmail)
- {
- if (strlen(pEmail))
- {
- char* pAddress = pEmail;
- while (*pAddress != '\0')
- {
- if (*pAddress == '@' && *(++pAddress) != '\0')
- return TRUE;
- pAddress++;
- }
- return FALSE;
- }
- else
- return FALSE;
- }
-
- #ifdef _WIN32
- /////////////////////////////////////////////////////////////////////////////
- // CCoverPage
-
- CCoverPage::CCoverPage(CWnd *pParent)
- : CNetscapePropertyPage(IDD)
- {
- //{{AFX_DATA_INIT(CCoverPage)
- //}}AFX_DATA_INIT
- m_pParent = (CMailNewsWizard*)pParent;
- }
-
- BOOL CCoverPage::OnInitDialog()
- {
- CString text;
- text.LoadString(IDS_WIZARD_COVER);
- SetDlgItemText(IDC_STATIC_TITLE, LPCTSTR(text));
- return CNetscapePropertyPage::OnInitDialog();
- }
-
- BOOL CCoverPage::OnSetActive()
- {
- m_pParent->SetWizardButtons(PSWIZB_NEXT);
- return CNetscapePropertyPage::OnSetActive();
- }
-
- void CCoverPage::DoDataExchange(CDataExchange* pDX)
- {
- CDialog::DoDataExchange(pDX);
- }
-
- BEGIN_MESSAGE_MAP(CCoverPage, CNetscapePropertyPage)
- END_MESSAGE_MAP()
-
- /////////////////////////////////////////////////////////////////////////////
- // CSendMailPage
-
- CSendMailPage::CSendMailPage(CWnd *pParent, BOOL bVerify)
- : CNetscapePropertyPage(IDD)
- {
- //{{AFX_DATA_INIT(CSendMailPage)
- //}}AFX_DATA_INIT
- m_pParent = (CMailNewsWizard*)pParent;
- m_bVerify = bVerify; //No verification on profile wizard
- }
-
- BOOL CSendMailPage::OnInitDialog()
- {
- BOOL ret;
- ret = CNetscapePropertyPage::OnInitDialog();
-
- CString text;
- text.LoadString(IDS_WIZARD_SENDMAIL);
- SetDlgItemText(IDC_STATIC_TITLE, LPCTSTR(text));
-
- char buffer[256];
- int nLen = 255;
-
- if (PREF_NOERROR == PREF_GetCharPref("mail.identity.username", buffer, &nLen))
- SetDlgItemText(IDC_EDIT_NAME, buffer);
- if (PREF_NOERROR == PREF_GetCharPref("mail.identity.useremail", buffer, &nLen))
- SetDlgItemText(IDC_EDIT_ADDRESS, buffer);
- if (PREF_NOERROR == PREF_GetCharPref("network.hosts.smtp_server", buffer, &nLen))
- SetDlgItemText(IDC_EDIT_SMTP_SERVER, buffer);
- return ret;
- }
-
- BOOL CSendMailPage::OnSetActive()
- {
- m_pParent->SetWizardButtons(PSWIZB_NEXT | PSWIZB_BACK);
- return CNetscapePropertyPage::OnSetActive();
- }
-
- LRESULT CSendMailPage::OnWizardNext()
- {
- if (!m_bVerify)
- return 0;
-
- char text[BUFSZ];
- text[0] = '\0';
- int nLen = GetDlgItemText(IDC_EDIT_ADDRESS, text, BUFSZ);
- if (nLen)
- {
- text[nLen] = '\0';
- if (EmailValid(text))
- return 0;
- else
- {
- AfxMessageBox(IDS_INVALID_EMAIL);
- GetDlgItem(IDC_EDIT_ADDRESS)->SetFocus();
- return -1;
- }
- }
- return 0;
- }
-
- void CSendMailPage::DoFinish()
- {
- char text[BUFSZ];
- text[0] = '\0';
- GetDlgItemText(IDC_EDIT_NAME, text, BUFSZ);
- PREF_SetCharPref("mail.identity.username", text);
-
- text[0] = '\0';
- GetDlgItemText(IDC_EDIT_ADDRESS, text, BUFSZ);
- PREF_SetCharPref("mail.identity.useremail", text);
-
- text[0] = '\0';
- GetDlgItemText(IDC_EDIT_SMTP_SERVER, text, BUFSZ);
- PREF_SetCharPref("network.hosts.smtp_server", text);
- }
-
- void CSendMailPage::DoDataExchange(CDataExchange* pDX)
- {
- CDialog::DoDataExchange(pDX);
- }
-
- BEGIN_MESSAGE_MAP(CSendMailPage, CNetscapePropertyPage)
- END_MESSAGE_MAP()
-
- /////////////////////////////////////////////////////////////////////////////
- // CReceiveMailPage
-
- CReceiveMailPage::CReceiveMailPage(CWnd *pParent, BOOL bVerify)
- : CNetscapePropertyPage(IDD)
- {
- //{{AFX_DATA_INIT(CReceiveMailPage)
- //}}AFX_DATA_INIT
- m_pParent = (CMailNewsWizard*)pParent;
- m_bVerify = bVerify; //No verification on profile wizard
- }
-
- BOOL CReceiveMailPage::OnInitDialog()
- {
- BOOL ret;
- ret = CNetscapePropertyPage::OnInitDialog();
-
- CString text;
- text.LoadString(IDS_WIZARD_READMAIL);
- SetDlgItemText(IDC_STATIC_TITLE, LPCTSTR(text));
-
- char buffer[256];
- int nLen = 255;
-
- if (PREF_NOERROR == PREF_GetCharPref("mail.pop_name", buffer, &nLen))
- SetDlgItemText(IDC_EDIT_USER_NAME, buffer);
- if (PREF_NOERROR == PREF_GetCharPref("network.hosts.pop_server", buffer, &nLen))
- {
- int nameLen = strlen(buffer);
- if (nameLen)
- SetDlgItemText(IDC_EDIT_MAIL_SERVER, buffer);
- else
- {
- if (PREF_NOERROR == PREF_GetCharPref("network.hosts.smtp_server", buffer, &nLen))
- SetDlgItemText(IDC_EDIT_MAIL_SERVER, buffer);
- }
- }
- else
- {
- if (PREF_NOERROR == PREF_GetCharPref("network.hosts.smtp_server", buffer, &nLen))
- SetDlgItemText(IDC_EDIT_MAIL_SERVER, buffer);
- }
-
- long prefLong = MSG_Pop3;
- PREF_GetIntPref("mail.server_type",&prefLong);
- if (prefLong == MSG_Imap4)
- CheckDlgButton(IDC_RADIO_IMAP, TRUE);
- else
- CheckDlgButton(IDC_RADIO_POP, TRUE);
- return ret;
- }
-
- BOOL CReceiveMailPage::OnSetActive()
- {
- m_pParent->SetWizardButtons(PSWIZB_NEXT | PSWIZB_BACK);
- return CNetscapePropertyPage::OnSetActive();
- }
-
- LRESULT CReceiveMailPage::OnWizardNext()
- {
- if (!m_bVerify)
- return 0;
-
- char text[BUFSZ];
- text[0] = '\0';
- int nLen = GetDlgItemText(IDC_EDIT_USER_NAME, text, BUFSZ);
-
- if (nLen)
- {
- text[0] = '\0';
- nLen = GetDlgItemText(IDC_EDIT_MAIL_SERVER, text, BUFSZ);
- if (nLen)
- return 0;
- else
- {
- AfxMessageBox(IDS_EMPTY_STRING);
- GetDlgItem(IDC_EDIT_MAIL_SERVER)->SetFocus();
- return -1;
- }
- }
- else
- {
- AfxMessageBox(IDS_EMPTY_STRING);
- GetDlgItem(IDC_EDIT_USER_NAME)->SetFocus();
- return -1;
- }
- }
-
- void CReceiveMailPage::DoFinish()
- {
- char text[BUFSZ];
- text[0] = '\0';
- GetDlgItemText(IDC_EDIT_USER_NAME, text, BUFSZ);
- PREF_SetCharPref("mail.pop_name", text);
-
- text[0] = '\0';
- GetDlgItemText(IDC_EDIT_MAIL_SERVER, text, BUFSZ);
- PREF_SetCharPref("network.hosts.pop_server", text);
-
- if (IsDlgButtonChecked(IDC_RADIO_IMAP))
- PREF_SetIntPref("mail.server_type", (int32)MSG_Imap4);
- else
- PREF_SetIntPref("mail.server_type", (int32)MSG_Pop3);
- }
-
- void CReceiveMailPage::DoDataExchange(CDataExchange* pDX)
- {
- CDialog::DoDataExchange(pDX);
- }
-
- BEGIN_MESSAGE_MAP(CReceiveMailPage, CNetscapePropertyPage)
- END_MESSAGE_MAP()
-
- /////////////////////////////////////////////////////////////////////////////
- // CReadNewsPage
-
- CReadNewsPage::CReadNewsPage(CWnd *pParent)
- : CNetscapePropertyPage(IDD)
- {
- //{{AFX_DATA_INIT(CReadNewsPage)
- //}}AFX_DATA_INIT
- m_pParent = (CMailNewsWizard*)pParent;
- m_bPEFinish = FALSE;
- }
-
- CReadNewsPage::~CReadNewsPage()
- {
- }
-
- BOOL CReadNewsPage::OnInitDialog()
- {
- BOOL ret;
- ret = CNetscapePropertyPage::OnInitDialog();
-
- CString text;
- text.LoadString(IDS_WIZARD_READNEWS);
- SetDlgItemText(IDC_STATIC_TITLE, LPCTSTR(text));
-
- char buffer[256];
- int nLen = 255;
-
- if (PREF_NOERROR == PREF_GetCharPref("network.hosts.nntp_server", buffer, &nLen))
- SetDlgItemText(IDC_EDIT_NEWS_SERVER, buffer);
- ((CEdit*)GetDlgItem(IDC_EDIT_PORT))->SetLimitText(5);
- if (strlen(buffer) > 0)
- {
- XP_Bool bSecure;
- int32 lPort;
- char szPort[16];
-
- PREF_GetBoolPref("news.server_is_secure", &bSecure);
- CheckDlgButton(IDC_SECURE, bSecure);
- PREF_GetIntPref("news.server_port", &lPort);
- sprintf(szPort, "%ld", lPort);
- SetDlgItemText(IDC_EDIT_PORT, szPort);
- }
- else
- {
- SetDlgItemInt(IDC_EDIT_PORT, NEWS_PORT);
- }
- if(theApp.m_bPEEnabled && !m_bPEFinish)
- {
- text.LoadString(IDS_PEMUC_READNEWS_FINISH);
- GetDlgItem(IDC_MNWIZ_READNEWS_FINISH)->SetWindowText(text);
- }
-
- return ret;
- }
-
- BOOL CReadNewsPage::OnSetActive()
- {
- if(theApp.m_bPEEnabled && (!m_bPEFinish))
- m_pParent->SetWizardButtons(PSWIZB_NEXT | PSWIZB_BACK);
- else
- m_pParent->SetWizardButtons(PSWIZB_FINISH | PSWIZB_BACK);
- return CNetscapePropertyPage::OnSetActive();
- }
-
- BOOL CReadNewsPage::DoFinish()
- {
- char szHostName[MSG_MAXGROUPNAMELENGTH];
- XP_Bool bIsSecure = FALSE;
- int32 lnPort;
- char port[16];
-
- szHostName[0] = '\0';
- int nLen = GetDlgItemText(IDC_EDIT_NEWS_SERVER, szHostName,
- MSG_MAXGROUPNAMELENGTH);
- PREF_SetCharPref("network.hosts.nntp_server", szHostName);
-
- if (nLen == 0)
- {
- PREF_SetBoolPref("news.server_is_secure", FALSE);
- PREF_SetIntPref("news.server_port", NEWS_PORT);
- return TRUE;
- }
-
- if (IsDlgButtonChecked(IDC_SECURE))
- bIsSecure = TRUE;
- if (GetDlgItemText(IDC_EDIT_PORT, port, 16))
- {
- int32 lPort = atol(port);
- if (lPort < 0 || lPort> MAX_PORT_NUMBER)
- {
- AfxMessageBox(IDS_PORT_RANGE);
- ((CEdit*)GetDlgItem(IDC_EDIT_PORT))->SetFocus();
- ((CEdit*)GetDlgItem(IDC_EDIT_PORT))->SetSel((DWORD)MAKELONG(0, -1));
- return FALSE;
- }
- if (!::IsNumeric(port))
- {
- AfxMessageBox(IDS_NUMBERS_ONLY);
- ((CEdit*)GetDlgItem(IDC_EDIT_PORT))->SetFocus();
- ((CEdit*)GetDlgItem(IDC_EDIT_PORT))->SetSel((DWORD)MAKELONG(0, -1));
- return FALSE;
- }
- lnPort = lPort;
- }
- else
- {
- if (bIsSecure)
- lnPort = SECURE_NEWS_PORT;
- else
- lnPort = NEWS_PORT;
- }
-
- PREF_SetBoolPref("news.server_is_secure", bIsSecure);
- PREF_SetIntPref("news.server_port", lnPort);
- return TRUE;
- }
-
- void CReadNewsPage::SetFinish(BOOL nFinish)
- {
- m_bPEFinish = nFinish;
- if(theApp.m_bPEEnabled && ::IsWindow(this->GetSafeHwnd()))
- {
- CString text;
- if(!m_bPEFinish )
- text.LoadString(IDS_PEMUC_READNEWS_FINISH);
- else
- text.LoadString(IDS_CLICK_FINISH);
-
- GetDlgItem(IDC_MNWIZ_READNEWS_FINISH)->SetWindowText(text);
- }
- }
-
- void CReadNewsPage::DoDataExchange(CDataExchange* pDX)
- {
- CDialog::DoDataExchange(pDX);
- }
-
- void CReadNewsPage::OnCheckSecure()
- {
- char port[16];
- BOOL bIsSecure;
-
- if (IsDlgButtonChecked(IDC_SECURE))
- bIsSecure = TRUE;
- else
- bIsSecure = FALSE;
- if (GetDlgItemText(IDC_EDIT_PORT, port, 16) == 0)
- {
- if (bIsSecure)
- SetDlgItemInt(IDC_EDIT_PORT, SECURE_NEWS_PORT);
- else
- SetDlgItemInt(IDC_EDIT_PORT, NEWS_PORT);
- }
- else
- {
- int32 lPort = atol(port);
- if (bIsSecure && lPort == NEWS_PORT)
- SetDlgItemInt(IDC_EDIT_PORT, SECURE_NEWS_PORT);
- else if (!bIsSecure && lPort == SECURE_NEWS_PORT)
- SetDlgItemInt(IDC_EDIT_PORT, NEWS_PORT);
- }
- }
-
- BEGIN_MESSAGE_MAP(CReadNewsPage, CNetscapePropertyPage)
- ON_BN_CLICKED(IDC_SECURE, OnCheckSecure)
- END_MESSAGE_MAP()
-
- /////////////////////////////////////////////////////////////////////////////
- // CMailNewsWizard
- CMailNewsWizard::CMailNewsWizard(CWnd *pParent)
- : CNetscapePropertySheet("", pParent)
- {
- m_pCoverPage = new CCoverPage(this);
- m_pSendMailPage = new CSendMailPage(this, TRUE);
- m_pReceiveMailPage = new CReceiveMailPage(this);
- m_pReadNewsPage = new CReadNewsPage(this);
-
- AddPage(m_pCoverPage);
- AddPage(m_pSendMailPage);
- AddPage(m_pReceiveMailPage);
- AddPage(m_pReadNewsPage);
- SetWizardMode();
- }
-
- CMailNewsWizard::~CMailNewsWizard()
- {
- if (m_pCoverPage)
- delete m_pCoverPage;
- if (m_pSendMailPage)
- delete m_pSendMailPage;
- if (m_pReceiveMailPage)
- delete m_pReceiveMailPage;
- if (m_pReadNewsPage)
- delete m_pReadNewsPage;
- }
-
- BOOL CMailNewsWizard::OnInitDialog()
- {
- BOOL ret = CNetscapePropertySheet::OnInitDialog();
-
- GetDlgItem(IDHELP)->ShowWindow(SW_HIDE);
-
- return ret;
- }
-
- void CMailNewsWizard::DoFinish()
- {
- BOOL bFinished = TRUE;
- if (m_pSendMailPage && ::IsWindow(m_pSendMailPage->GetSafeHwnd()))
- m_pSendMailPage->DoFinish();
- if (m_pReceiveMailPage && ::IsWindow(m_pReceiveMailPage->GetSafeHwnd()))
- m_pReceiveMailPage->DoFinish();
- if (m_pReadNewsPage && ::IsWindow(m_pReadNewsPage->GetSafeHwnd()))
- bFinished = m_pReadNewsPage->DoFinish();
- if (bFinished)
- {
- PressButton(PSBTN_FINISH);
- PREF_SavePrefFile();
- }
- }
-
- BEGIN_MESSAGE_MAP(CMailNewsWizard, CNetscapePropertySheet)
- ON_BN_CLICKED(ID_WIZFINISH, DoFinish)
- END_MESSAGE_MAP()
-
- #else //Win16 Code
-
- /////////////////////////////////////////////////////////////////////////////
- // CMailNewsWizard
- CMailNewsWizard::CMailNewsWizard(CWnd *pParent)
- : CDialog(IDD, pParent)
- {
- m_nCurrentPage = ID_PAGE_COVER;
-
- char* pPrefStr;
-
- pPrefStr = NULL;
- PREF_CopyCharPref("mail.identity.username", &pPrefStr);
- m_szFullName = pPrefStr;
- if (pPrefStr) XP_FREE(pPrefStr);
-
- pPrefStr = NULL;
- PREF_CopyCharPref("mail.identity.useremail", &pPrefStr);
- m_szEmail = pPrefStr;
- if (pPrefStr) XP_FREE(pPrefStr);
-
- pPrefStr = NULL;
- PREF_CopyCharPref("network.hosts.smtp_server", &pPrefStr);
- m_szMailServer = pPrefStr;
- if (pPrefStr) XP_FREE(pPrefStr);
-
- pPrefStr = NULL;
- PREF_CopyCharPref("mail.pop_name", &pPrefStr);
- m_szPopName = pPrefStr;
- if (pPrefStr) XP_FREE(pPrefStr);
-
- pPrefStr = NULL;
- PREF_CopyCharPref("network.hosts.pop_server", &pPrefStr);
- m_szInMailServer = pPrefStr;
- if (pPrefStr) XP_FREE(pPrefStr);
-
- long prefLong = MSG_Pop3;
- PREF_GetIntPref("mail.server_type",&prefLong);
- if (prefLong == MSG_Imap4)
- m_bUseIMAP = TRUE;
- else
- m_bUseIMAP = FALSE;
-
- pPrefStr = NULL;
- PREF_CopyCharPref("network.hosts.nntp_server", &pPrefStr);
- m_szNewsServer = pPrefStr;
- if (pPrefStr) XP_FREE(pPrefStr);
-
- if (m_szNewsServer.IsEmpty())
- {
- m_bIsSecure = FALSE;
- m_lPort = NEWS_PORT;
- }
- else
- {
- PREF_GetBoolPref("news.server_is_secure", &m_bIsSecure);
- PREF_GetIntPref("news.server_port", &m_lPort);
- }
- }
-
- void CMailNewsWizard::DoDataExchange(CDataExchange* pDX)
- {
- CDialog::DoDataExchange(pDX);
- }
-
- BOOL CMailNewsWizard::OnInitDialog()
- {
- GetDlgItem(IDC_EDIT1)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_STATIC_EG1)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_STATIC2)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_EDIT2)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_STATIC_EG2)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_STATIC3)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_EDIT3)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_READMAIL_POP)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_READMAIL_IMAP)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_STATIC5)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_SECURE)->ShowWindow(SW_HIDE);
-
- GetDlgItem(IDC_BUTTON_BACK)->EnableWindow(FALSE);
-
- SetControlText(IDC_STATIC_TITLE, IDS_WIZARD_COVER);
- SetControlText(IDC_STATIC1, IDS_COVER_STATIC1);
- return CDialog::OnInitDialog();
- }
-
- void CMailNewsWizard::DoBack()
- {
- m_nCurrentPage -= 1;
- switch (m_nCurrentPage)
- {
- case ID_PAGE_COVER: // 1st page
- ShowHideSendMailControls(SW_HIDE);
- ShowCoverPage();
- GetDlgItem(IDC_BUTTON_BACK)->EnableWindow(FALSE);
- break;
- case ID_PAGE_SENDMAIL: // 2nd page
- ShowHideReadMailControls(SW_HIDE);
- ShowSendMailPage();
- break;
- case ID_PAGE_READMAIL: // 3rd page
- SetControlText(IDOK, IDS_NEXT);
- ShowHideReadNewsControls(SW_HIDE);
- ShowReadMailPage();
- break;
- default:
- break;
- }
- }
-
- void CMailNewsWizard::DoNext()
- {
- char text[BUFSZ];
- int nLen = 0;
-
- m_nCurrentPage += 1;
- switch (m_nCurrentPage)
- {
- case ID_PAGE_SENDMAIL: // 2nd page
- ShowSendMailPage();
- GetDlgItem(IDC_BUTTON_BACK)->EnableWindow(TRUE);
- break;
- case ID_PAGE_READMAIL: // 3rd page
- nLen = GetDlgItemText(IDC_EDIT2, text, BUFSZ);
- text[nLen] = '\0';
- if (nLen == 0 || (nLen && EmailValid(text)))
- {
- ShowHideSendMailControls(SW_HIDE);
- if (m_szInMailServer.IsEmpty())
- m_szInMailServer = m_szMailServer;
- ShowReadMailPage();
- }
- else
- {
- AfxMessageBox(IDS_INVALID_EMAIL);
- GetDlgItem(IDC_EDIT2)->SetFocus();
- m_nCurrentPage -= 1;
- }
- break;
- case ID_PAGE_READNEWS: // 4th page
- SetControlText(IDOK, IDS_FINISH);
- ShowHideReadMailControls(SW_HIDE);
- ShowReadNewsPage();
- break;
- case ID_PAGE_FINISH: // done, save value
- if (DoFinish())
- EndDialog(IDOK);
- break;
- default:
- break;
- }
- }
-
- BOOL CMailNewsWizard::CheckValidText()
- {
- char text[BUFSZ];
- text[0] = '\0';
- int nLen = GetDlgItemText(IDC_EDIT1, text, BUFSZ);
-
- if (nLen)
- {
- text[0] = '\0';
- nLen = GetDlgItemText(IDC_EDIT2, text, BUFSZ);
- if (nLen)
- return TRUE;
- else
- {
- AfxMessageBox(IDS_EMPTY_STRING);
- GetDlgItem(IDC_EDIT2)->SetFocus();
- return FALSE;
- }
- }
- else
- {
- AfxMessageBox(IDS_EMPTY_STRING);
- GetDlgItem(IDC_EDIT1)->SetFocus();
- return FALSE;
- }
- }
-
- void CMailNewsWizard::SetControlText(int nID, int nStringID)
- {
- CString text;
- text.LoadString(nStringID);
- SetDlgItemText(nID, LPCTSTR(text));
- }
-
- void CMailNewsWizard::ShowCoverPage()
- {
- GetDlgItem(IDC_STATIC5)->ShowWindow(SW_HIDE);
- SetControlText(IDC_STATIC_TITLE, IDS_WIZARD_COVER);
- SetControlText(IDC_STATIC1, IDS_COVER_STATIC1);
- }
-
- void CMailNewsWizard::ShowSendMailPage()
- {
- ShowHideSendMailControls(SW_SHOW);
- SetControlText(IDC_STATIC_TITLE, IDS_WIZARD_SENDMAIL);
- SetControlText(IDC_STATIC1, IDS_SENDMAIL_STATIC1);
- SetControlText(IDC_STATIC_EG1, IDS_SENDMAIL_EG1);
- SetControlText(IDC_STATIC2, IDS_SENDMAIL_STATIC2);
- SetControlText(IDC_STATIC_EG2, IDS_SENDMAIL_EG2);
- SetControlText(IDC_STATIC3, IDS_SENDMAIL_STATIC3);
- SetControlText(IDC_STATIC5, IDS_SENDREADMAIL_STATIC5);
- }
-
- void CMailNewsWizard::ShowHideSendMailControls(int nShowCmd)
- {
- GetDlgItem(IDC_EDIT1)->ShowWindow(nShowCmd);
- GetDlgItem(IDC_STATIC_EG1)->ShowWindow(nShowCmd);
- GetDlgItem(IDC_STATIC2)->ShowWindow(nShowCmd);
- GetDlgItem(IDC_EDIT2)->ShowWindow(nShowCmd);
- GetDlgItem(IDC_STATIC_EG2)->ShowWindow(nShowCmd);
- GetDlgItem(IDC_STATIC3)->ShowWindow(nShowCmd);
- GetDlgItem(IDC_EDIT3)->ShowWindow(nShowCmd);
- GetDlgItem(IDC_STATIC5)->ShowWindow(nShowCmd);
- if (nShowCmd == SW_SHOW)
- { // init value
- SetDlgItemText(IDC_EDIT1, m_szFullName);
- SetDlgItemText(IDC_EDIT2, m_szEmail);
- SetDlgItemText(IDC_EDIT3, m_szMailServer);
- }
- else
- { // save value
- char text[BUFSZ];
- if (GetDlgItemText(IDC_EDIT1, text, BUFSZ))
- m_szFullName = text;
- else
- m_szFullName = "";
- if (GetDlgItemText(IDC_EDIT2, text, BUFSZ))
- m_szEmail = text;
- else
- m_szEmail = "";
- if (GetDlgItemText(IDC_EDIT3, text, BUFSZ))
- m_szMailServer = text;
- else
- m_szMailServer = "";
- }
- }
-
- void CMailNewsWizard::ShowReadMailPage()
- {
- ShowHideReadMailControls(SW_SHOW);
- SetControlText(IDC_STATIC_TITLE, IDS_WIZARD_READMAIL);
- SetControlText(IDC_STATIC1, IDS_READMAIL_STATIC1);
- SetControlText(IDC_STATIC_EG1, IDS_READMAIL_EG1);
- SetControlText(IDC_STATIC2, IDS_READMAIL_STATIC2);
- SetControlText(IDC_STATIC3, IDS_READMAIL_STATIC3);
- SetControlText(IDC_STATIC5, IDS_SENDREADMAIL_STATIC5);
- }
-
- void CMailNewsWizard::ShowHideReadMailControls(int nShowCmd)
- {
- GetDlgItem(IDC_EDIT1)->ShowWindow(nShowCmd);
- GetDlgItem(IDC_STATIC_EG1)->ShowWindow(nShowCmd);
- GetDlgItem(IDC_STATIC2)->ShowWindow(nShowCmd);
- GetDlgItem(IDC_EDIT2)->ShowWindow(nShowCmd);
- GetDlgItem(IDC_STATIC3)->ShowWindow(nShowCmd);
- GetDlgItem(IDC_READMAIL_POP)->ShowWindow(nShowCmd);
- GetDlgItem(IDC_READMAIL_IMAP)->ShowWindow(nShowCmd);
- GetDlgItem(IDC_STATIC5)->ShowWindow(nShowCmd);
- if (nShowCmd == SW_SHOW)
- { // init value
- SetDlgItemText(IDC_EDIT1, m_szPopName);
- SetDlgItemText(IDC_EDIT2, m_szInMailServer);
- if (m_bUseIMAP)
- ((CButton*)GetDlgItem(IDC_READMAIL_IMAP))->SetCheck(TRUE);
- else
- ((CButton*)GetDlgItem(IDC_READMAIL_POP))->SetCheck(TRUE);
- }
- else
- { // save value
- char text[BUFSZ];
-
- m_bUseIMAP = FALSE;
- if (GetDlgItemText(IDC_EDIT1, text, BUFSZ))
- m_szPopName = text;
- else
- m_szPopName = "";
- if (GetDlgItemText(IDC_EDIT2, text, BUFSZ))
- m_szInMailServer = text;
- else
- m_szInMailServer = "";
- if (IsDlgButtonChecked(IDC_READMAIL_IMAP))
- m_bUseIMAP = TRUE;
- }
- }
-
- void CMailNewsWizard::ShowReadNewsPage()
- {
- ShowHideReadNewsControls(SW_SHOW);
- SetControlText(IDC_STATIC_TITLE, IDS_WIZARD_READNEWS);
- SetControlText(IDC_STATIC1, IDS_READNEWS_STATIC1);
- SetControlText(IDC_STATIC2, IDS_READNEWS_STATIC2);
- SetControlText(IDC_STATIC5, IDS_READNEWS_STATIC5);
- }
-
- void CMailNewsWizard::ShowHideReadNewsControls(int nShowCmd)
- {
- GetDlgItem(IDC_EDIT1)->ShowWindow(nShowCmd);
- GetDlgItem(IDC_STATIC2)->ShowWindow(nShowCmd);
- GetDlgItem(IDC_EDIT2)->ShowWindow(nShowCmd);
- GetDlgItem(IDC_STATIC5)->ShowWindow(nShowCmd);
- GetDlgItem(IDC_SECURE)->ShowWindow(nShowCmd);
- if (nShowCmd == SW_SHOW)
- { // init value
- char szPort[16];
- SetDlgItemText(IDC_EDIT1, m_szNewsServer);
- sprintf(szPort, "%ld", m_lPort);
- SetDlgItemText(IDC_EDIT2, szPort);
- if (m_bIsSecure)
- ((CButton*)GetDlgItem(IDC_SECURE))->SetCheck(TRUE);
- else
- ((CButton*)GetDlgItem(IDC_SECURE))->SetCheck(FALSE);
- }
- else
- { // save value
- char text[BUFSZ];
- if(m_nNewsServerLen = GetDlgItemText(IDC_EDIT1, text, BUFSZ))
- m_szNewsServer = text;
- else
- m_szNewsServer = "";
- if (IsDlgButtonChecked(IDC_SECURE))
- m_bIsSecure = TRUE;
- else
- m_bIsSecure = FALSE;
- if (GetDlgItemText(IDC_EDIT2, text, BUFSZ))
- m_lPort = atol(text);
- else
- {
- if (m_bIsSecure)
- m_lPort = SECURE_NEWS_PORT;
- else
- m_lPort = NEWS_PORT;
- }
- }
- }
-
- BOOL CMailNewsWizard::DoFinish()
- {
- char text[BUFSZ], szPort[10];
- int nPortLen = 0;
-
- if (m_nNewsServerLen = GetDlgItemText(IDC_EDIT1, text, BUFSZ))
- m_szNewsServer = text;
- else
- m_szNewsServer = "";
-
- if (IsDlgButtonChecked(IDC_SECURE))
- m_bIsSecure = TRUE;
- else
- m_bIsSecure = FALSE;
- if (nPortLen = GetDlgItemText(IDC_EDIT2, szPort, 10) > 0)
- m_lPort = atol(szPort);
- else
- {
- if (m_bIsSecure)
- m_lPort = SECURE_NEWS_PORT;
- else
- m_lPort = NEWS_PORT;
- }
-
- if (m_nNewsServerLen && nPortLen)
- {
- if (m_lPort < 0 || m_lPort> MAX_PORT_NUMBER)
- {
- AfxMessageBox(IDS_PORT_RANGE);
- ((CEdit*)GetDlgItem(IDC_EDIT2))->SetFocus();
- ((CEdit*)GetDlgItem(IDC_EDIT2))->SetSel((DWORD)MAKELONG(0, -1));
- return FALSE;
- }
- if (!::IsNumeric(szPort))
- {
- AfxMessageBox(IDS_NUMBERS_ONLY);
- ((CEdit*)GetDlgItem(IDC_EDIT2))->SetFocus();
- ((CEdit*)GetDlgItem(IDC_EDIT2))->SetSel((DWORD)MAKELONG(0, -1));
- return FALSE;
- }
- }
-
- if (m_nNewsServerLen)
- {
- PREF_SetBoolPref("news.server_is_secure", m_bIsSecure);
- PREF_SetIntPref("news.server_port", m_lPort);
- }
- else
- {
- PREF_SetBoolPref("news.server_is_secure", FALSE);
- PREF_SetIntPref("news.server_port", NEWS_PORT);
- }
-
- PREF_SetCharPref("mail.identity.username", LPCTSTR(m_szFullName));
- PREF_SetCharPref("mail.identity.useremail", LPCTSTR(m_szEmail));
- PREF_SetCharPref("network.hosts.smtp_server", LPCTSTR(m_szMailServer));
-
- PREF_SetCharPref("mail.pop_name", LPCTSTR(m_szPopName));
- PREF_SetCharPref("network.hosts.pop_server", LPCTSTR(m_szInMailServer));
-
- long imapPref = m_bUseIMAP ? MSG_Imap4 : MSG_Pop3;
- PREF_SetIntPref("mail.server_type", imapPref);
-
- PREF_SetCharPref("network.hosts.nntp_server", LPCTSTR(m_szNewsServer));
-
- PREF_SavePrefFile();
-
- return TRUE;
- }
-
- void CMailNewsWizard::OnCheckSecure()
- {
- char port[16];
- BOOL bIsSecure;
-
- if (IsDlgButtonChecked(IDC_SECURE))
- bIsSecure = TRUE;
- else
- bIsSecure = FALSE;
- if (GetDlgItemText(IDC_EDIT2, port, 16) == 0)
- {
- if (bIsSecure)
- SetDlgItemInt(IDC_EDIT2, SECURE_NEWS_PORT);
- else
- SetDlgItemInt(IDC_EDIT2, NEWS_PORT);
- }
- else
- {
- int32 lPort = atol(port);
-
- if (bIsSecure && lPort == NEWS_PORT)
- SetDlgItemInt(IDC_EDIT2, SECURE_NEWS_PORT);
- else if (!bIsSecure && lPort == SECURE_NEWS_PORT)
- SetDlgItemInt(IDC_EDIT2, NEWS_PORT);
- }
- }
-
- BEGIN_MESSAGE_MAP(CMailNewsWizard, CDialog)
- ON_BN_CLICKED(IDC_BUTTON_BACK, DoBack)
- ON_BN_CLICKED(IDC_SECURE, OnCheckSecure)
- ON_BN_CLICKED(IDOK, DoNext)
- END_MESSAGE_MAP()
-
- #endif
-
-