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 "ssl.h"
- #include "secnav.h"
- #include "wfemsg.h"
- #include "printpag.h"
- #include "prefapi.h"
- #include "navfram.h"
- #include "confhook.h"
- #include "msgcom.h"
- #include "prefinfo.h"
- #include "prefs.h"
- #ifdef EDITOR
- #include "edt.h"
- #endif // EDITOR
- #include "nethelp.h"
- #include "navfram.h"
- #include "prefapi.h"
-
- void CGenericFrame::OnSecurity()
- {
- MWContext * pContext = GetMainContext()->GetContext();
-
- if (pContext != NULL)
- {
- CAbstractCX * pCX = ABSTRACTCX(pContext);
-
- if (pCX != NULL)
- {
- URL_Struct * pURL = pCX->CreateUrlFromHist(TRUE);
-
- SECNAV_SecurityAdvisor(pContext, pURL);
- }
- }
-
- }
-
- void CGenericFrame::OnUpdateSecurity(CCmdUI *pCmdUI)
- {
- int status = XP_GetSecurityStatus(GetMainContext()->GetContext());
-
- pCmdUI->Enable(status == SSL_SECURITY_STATUS_ON_LOW || status == SSL_SECURITY_STATUS_ON_HIGH);
- }
-
- void CGenericFrame::OnEnterIdle(UINT nWhy, CWnd* pWho )
- {
- CFrameWnd::OnEnterIdle(nWhy, pWho);
- }
-
- CFrameWnd *CGenericFrame::GetFrameWnd()
- {
- return((CFrameWnd *)this);
- }
-
- void CGenericFrame::UpdateHistoryDialog() {
- }
-
- BOOL CGenericFrame::PreTranslateMessage(MSG* pMsg)
- {
- if (m_bDisableHotkeys && pMsg->message == WM_SYSCOMMAND &&
- pMsg->wParam == SC_CLOSE && pMsg->lParam == 0)
- return TRUE; // This is a hotkey close message so kill it.
-
- return CFrameWnd::PreTranslateMessage(pMsg);
- }
-
- void CGenericFrame::OnClose()
- {
- // See if the document will allow closing.
- // Do not only query the active document as MFC does.
- // Instead, query the main context document, and it will check children also.
- CDocument* pDocument = NULL;
- // if(m_NavCenterFrame) {
- // m_NavCenterFrame->DestroyWindow();
- // m_NavCenterFrame = NULL;
- // }
-
- if(GetMainWinContext()) {
- pDocument = (CDocument *)GetMainWinContext()->GetDocument();
- }
-
- if (pDocument != NULL && !pDocument->CanCloseFrame(this))
- {
- // document can't close right now -- don't close it
- return;
- }
- m_isClosing = TRUE;
- CFrameWnd::OnClose();
- }
-
- void CGenericFrame::OnFishCam()
- {
- if(GetMainContext()) {
- GetMainContext()->NormalGetUrl("http://home.netscape.com/fishcam/fishcam.html");
- }
- }
-
- void CGenericFrame::OnOpenMailWindow()
- {
- #ifdef MOZ_MAIL_NEWS
- // Had to put this if condition here because
- //putting it inside of CFolderFrame::Open was causing
- //"Collabra Discussions" to bring up "AltMailMsgCenter"
- if(theApp.m_hPostalLib)
- FEU_AltMail_ShowMessageCenter();
- else
- WFE_MSGOpenFolders();
- #endif // MOZ_MAIL_NEWS
- }
-
- void CGenericFrame::OnOpenInboxWindow()
- {
- #ifdef MOZ_MAIL_NEWS
- WFE_MSGOpenInbox();
- #endif
- }
-
- void CGenericFrame::OnOpenNewsWindow()
- {
- #ifdef MOZ_MAIL_NEWS
- WFE_MSGOpenNews();
- #endif
- }
-
- void CGenericFrame::OnShowAddressBookWindow()
- {
- #ifdef MOZ_MAIL_NEWS
- WFE_MSGOpenAB();
- #endif
- }
-
- void CGenericFrame::OnFileMailNew()
- {
- #ifdef MOZ_MAIL_NEWS
- if (GetMainContext())
- {
- if (WFE_MSGCheckWizard(this))
- MSG_Mail (GetMainContext()->GetContext());
- }
- #endif
- }
-
- void CGenericFrame::OnLDAPSearch()
- {
- #ifdef MOZ_LDAP
- WFE_MSGOpenLDAPSearch();
- #endif
- }
-
- // Set some options for printing.
- void CGenericFrame::OnFilePageSetup()
- {
- CPrintPageSetup * cdlg = new CPrintPageSetup ( this );
- if(cdlg != NULL) {
- cdlg->DoModal ( );
- }
- delete cdlg;
- }
-
- void CGenericFrame::OnGoHistory()
- {
- theApp.CreateNewNavCenter(NULL, TRUE, HT_VIEW_HISTORY);
- }
-
- void CGenericFrame::OnPageFromWizard()
- {
- #ifdef EDITOR
- char * url=NULL;
- int bOK = PREF_CopyConfigString("internal_url.page_from_wizard.url",&url);
- if (bOK == PREF_NOERROR) {
- if(GetMainContext()) {
- if( EDT_IS_EDITOR(GetMainContext()->GetContext()) ){
- // Load into a new Navigator window
- FE_LoadUrl(url, LOAD_URL_NAVIGATOR);
- } else {
- GetMainContext()->NormalGetUrl(url);
- }
- }
- }
- if (url) XP_FREE(url);
- #endif /* EDITOR */
- }
-
- void CGenericFrame::OnLiveCall()
- {
- LaunchConfEndpoint( NULL, GetSafeHwnd() );
- }
-
- void CGenericFrame::OnSysColorChange()
- {
- // Update our idea of the current system info.
- sysInfo.UpdateInfo();
- prefInfo.SysColorChange();
-
- // We'll need to do a reload to handle the current
- // colors internal to the document.
- //#ifdef GOLD
- // This fixes critical bug 27239
- // put in ifdef GOLD to minizize impact on non-gold version - TEMPORARY:
- // TODO: MERGE THIS TO REMOVE IFDEF GOLD
- if(GetMainContext()) {
- CWinCX *pContext = GetMainWinContext();
- if( pContext && pContext->GetContext()){
- #ifdef EDITOR
- if( EDT_IS_EDITOR(pContext->GetContext()) ) {
- // Relayout page without having to do NET_GetURL
- EDT_RefreshLayout(pContext->GetContext());
- } else
- #endif // EDITOR
- {
- pContext->NiceReload();
- }
- }
- }
- //#else
- // if(GetMainContext()) {
- // GetMainContext()->NiceReload();
- // }
- //#endif
-
- // Hopfully they'll redraw us so that the frame takes
- // on the new colors.
- CFrameWnd::OnSysColorChange();
- }
-
-
- ////////////////////////////////////////////////////////////////////////////
- // Pop up the preferences box to let the user modify program configuration
- //
-
- void
- CGenericFrame::OnDisplayPreferences()
- {
- wfe_DisplayPreferences(this);
- }
-
- // Pop up the preferences box to let the user modify program configuration
- //
- void CGenericFrame::OnPrefsMailNews()
- {
- wfe_DisplayPreferences(this);
- }
-
-
- void CGenericFrame::OnHelpMenu()
- {
- NetHelp( HELP_COMMUNICATOR );
- }
-
-
- LRESULT CGenericFrame::OnHelpMsg(WPARAM wParam, LPARAM lParam)
- {
-
- //currently we only handle this message for the find replace dialog.
- CFindReplaceDialog * dlg = ::CFindReplaceDialog::GetNotifier(lParam);
- if (!dlg)
- return FALSE;
-
- // if it's the current find replace dialog then call help
- if(dlg->m_hWnd == (HWND)wParam)
- {
- NetHelp("FIND_IN");
- return TRUE;
- }
- return(FALSE);
-
- }
-
- void CGenericFrame::OnActivate( UINT nState, CWnd* pWndOther, BOOL bMinimized)
- {
- CNSGenFrame::OnActivate(nState, pWndOther, bMinimized);
- }
- void CGenericFrame::RefreshNewEncoding(int16 csid, BOOL bSave )
- {
- m_iCSID = csid;
- XP_ASSERT(0); // subclass should overload this
- }
- int16 nIDToCsid(UINT nID)
- {
- static int16 nid_to_csid[] = {
- CS_LATIN1, // ID_OPTIONS_ENCODING_1
- CS_LATIN2, // ID_OPTIONS_ENCODING_2
- CS_SJIS_AUTO, // ID_OPTIONS_ENCODING_3
- CS_SJIS, // ID_OPTIONS_ENCODING_4
- CS_EUCJP, // ID_OPTIONS_ENCODING_5
- CS_BIG5, // ID_OPTIONS_ENCODING_6
- CS_CNS_8BIT, // ID_OPTIONS_ENCODING_7
- CS_GB_8BIT, // ID_OPTIONS_ENCODING_8
- CS_KSC_8BIT_AUTO, // ID_OPTIONS_ENCODING_9
- CS_USER_DEFINED_ENCODING, // ID_OPTIONS_ENCODING_10
- CS_CP_1250, // ID_OPTIONS_ENCODING_11
- CS_CP_1251, // ID_OPTIONS_ENCODING_12
- CS_8859_5, // ID_OPTIONS_ENCODING_13
- CS_KOI8_R, // ID_OPTIONS_ENCODING_14
- CS_8859_7, // ID_OPTIONS_ENCODING_15
- CS_CP_1253, // ID_OPTIONS_ENCODING_16
- CS_8859_9, // ID_OPTIONS_ENCODING_17
- CS_UTF8, // ID_OPTIONS_ENCODING_18
- CS_UCS2, // ID_OPTIONS_ENCODING_19
- CS_UTF7 // ID_OPTIONS_ENCODING_20
- };
-
- if( nID >= ID_OPTIONS_ENCODING_1 && nID <= ID_OPTIONS_ENCODING_70)
- {
- int idx = nID - ID_OPTIONS_ENCODING_1;
-
- XP_ASSERT(idx < (sizeof(nid_to_csid)/ sizeof(int16)));
-
- int16 csid = nid_to_csid[nID - ID_OPTIONS_ENCODING_1];
- return csid;
- }
- XP_ASSERT(0);
- return 0;
- }
- void CGenericFrame::OnToggleEncoding(UINT nID)
- {
- int16 csid = nIDToCsid(nID);
- this->RefreshNewEncoding(csid);
- }
- void CGenericFrame::OnUpdateEncoding(CCmdUI* pCmdUI)
- {
- BOOL bCheck;
- bCheck = FALSE;
- int16 csid = nIDToCsid(pCmdUI->m_nID);
- bCheck = (m_iCSID == csid) ? TRUE : FALSE;
- // handle special case here
- if(FALSE == bCheck)
- {
- switch(csid)
- {
- case CS_UCS2:
- bCheck = (m_iCSID == CS_UCS2_SWAP) ? TRUE : FALSE;
- break;
- case CS_KSC_8BIT:
- bCheck = (m_iCSID == CS_KSC_8BIT_AUTO) ? TRUE : FALSE;
- break;
- default:
- break;
- }
- }
- pCmdUI->SetCheck(bCheck);
- }
-
- BEGIN_MESSAGE_MAP(CNSGenFrame, CFrameWnd)
- ON_WM_ACTIVATE()
- END_MESSAGE_MAP()
-
- void CNSGenFrame::OnActivate( UINT nState, CWnd* pWndOther, BOOL bMinimized)
- {
- CFrameWnd::OnActivate(nState, pWndOther, bMinimized);
- }
-
- CNSNavFrame *CNSGenFrame::GetDockedNavCenter()
- {
- CNSNavFrame *pRetval = NULL;
-
- // Do we have one?
- CWnd *pWnd = GetDescendantWindow(NC_IDW_SELECTOR);
- if(pWnd && pWnd->IsKindOf(RUNTIME_CLASS(CSelector))) {
- CSelector *pSelector = (CSelector *)pWnd;
- CFrameWnd *pFrame = pSelector->GetParentFrame();
- if(pFrame && pFrame->IsKindOf(RUNTIME_CLASS(CNSNavFrame))) {
- pRetval = (CNSNavFrame *)pFrame;
- }
- }
-
- return(pRetval);
- }
-
- BOOL CNSGenFrame::AllowDocking()
- {
- return(FALSE);
- }
-
-
-