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 "ipframe.h"
- #include "netsdoc.h"
- #include "mainfrm.h"
- #include "netsvw.h"
- #include "template.h"
- #ifdef MOZ_MAIL_NEWS
- #include "addrfrm.h"
- #include "compfrm.h"
- #endif
- #ifdef EDITOR
- #include "edview.h"
- #include "edframe.h"
- #endif
-
- /////////////////////////////////////////////
- //
- // Initialize our templates here so that we
- // Don't have to include every doc, view, and
- // frame header in netscape.cpp
- //
- // Returns our choice of startup template,
- // NULL on failure
- //
-
- CDocTemplate *WFE_InitializeTemplates()
- {
- // Register the application's document templates. Document templates
- // serve as the connection between documents, frame windows and views.
- theApp.m_ViewTmplate = new CNetscapeDocTemplate(IDR_MAINFRAME,
- RUNTIME_CLASS(CNetscapeDoc),
- RUNTIME_CLASS(CMainFrame), // main SDI frame window
- RUNTIME_CLASS(CNetscapeView));
-
- #ifdef MOZ_MAIL_NEWS
- theApp.m_AddrTemplate = new CNetscapeAddrTemplate(IDR_ADDRESS_MENU,
- RUNTIME_CLASS(CNetscapeDoc),
- RUNTIME_CLASS(CAddrFrame), // address book window
- RUNTIME_CLASS(CNetscapeView));
-
- theApp.m_TextComposeTemplate = new CNetscapeTextComposeTemplate(IDR_COMPOSEPLAIN,
- RUNTIME_CLASS(CNetscapeDoc),
- RUNTIME_CLASS(CComposeFrame),
- RUNTIME_CLASS(CNetscapeEditView));
-
- theApp.m_ComposeTemplate = new CNetscapeComposeTemplate(IDR_COMPOSEFRAME,
- RUNTIME_CLASS(CNetscapeDoc),
- RUNTIME_CLASS(CComposeFrame),
- RUNTIME_CLASS(CNetscapeEditView));
- #endif // MOZ_MAIL_NEWS
-
- #ifdef EDITOR
- // CLM - Template for Editor frame and view - both derived from browser
- theApp.m_EditTmplate = new CNetscapeEditTemplate(IDR_EDITFRAME,
- RUNTIME_CLASS(CNetscapeDoc),
- RUNTIME_CLASS(CEditFrame), // Derived from CMainFrame
- RUNTIME_CLASS(CNetscapeEditView)); // Derived from CNetscapeView
- #endif // EDITOR
-
- #ifdef MOZ_MAIL_NEWS
- if (!theApp.m_AddrTemplate) return NULL;
- if (!theApp.m_ComposeTemplate) return NULL;
- if (!theApp.m_TextComposeTemplate) return NULL;
- #endif // MOZ_MAIL_NEWS
- if (!theApp.m_ViewTmplate) return NULL;
-
- #ifdef EDITOR
- if (!theApp.m_EditTmplate) return NULL;
- #endif
-
- theApp.AddDocTemplate(theApp.m_ViewTmplate);
- #ifdef MOZ_MAIL_NEWS
- theApp.AddDocTemplate(theApp.m_ComposeTemplate);
- theApp.AddDocTemplate(theApp.m_TextComposeTemplate);
- theApp.AddDocTemplate(theApp.m_AddrTemplate);
- #endif // MOZ_MAIL_NEWS
-
- #ifdef EDITOR
- theApp.AddDocTemplate(theApp.m_EditTmplate);
- #endif
-
- // Select which template to use at startup
- CDocTemplate *pTemplate;
- #ifdef EDITOR
- BOOL bEditFrame = (bIsGold && theApp.m_bCmdEdit);
- if( bEditFrame ){
- pTemplate = (CDocTemplate*)theApp.m_EditTmplate;
- } else
- #endif
- {
- pTemplate = (CDocTemplate*)theApp.m_ViewTmplate;
- }
-
- // In Place Container menu and accelerators....
- pTemplate->SetContainerInfo(IDR_NETSCAPETYPE_CNTR_IP);
-
- // See srvritem.cpp for this code (delays loading menus until needed).
- // Register the OLE server portion.
- //#ifdef DEBUG
- // To avoid assertion in debug mode, let it load from the start.
- pTemplate->SetServerInfo(IDR_SRVR_EMBEDDED, IDR_SRVR_INPLACE,
- RUNTIME_CLASS(CInPlaceFrame), RUNTIME_CLASS(CNetscapeView));
- //#else
- // pTemplate->SetServerInfo(NULL, NULL,
- // RUNTIME_CLASS(CInPlaceFrame), RUNTIME_CLASS(CNetscapeView));
- //#endif
-
- return pTemplate;
- }
-