diff options
Diffstat (limited to 'sfx2/source/appl/appmain.cxx')
-rw-r--r-- | sfx2/source/appl/appmain.cxx | 207 |
1 files changed, 207 insertions, 0 deletions
diff --git a/sfx2/source/appl/appmain.cxx b/sfx2/source/appl/appmain.cxx new file mode 100644 index 000000000000..cf097b900b52 --- /dev/null +++ b/sfx2/source/appl/appmain.cxx @@ -0,0 +1,207 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +// MARKER(update_precomp.py): autogen include statement, do not remove +#include "precompiled_sfx2.hxx" + +//#define TF_NEWDESKTOP + +#define _SDINTERN_HXX + +#include <stdio.h> +#include <tools/urlobj.hxx> +#include <tools/config.hxx> +#include <svtools/ehdl.hxx> +#include <unotools/startoptions.hxx> +#include <svl/itempool.hxx> +#include <svl/urihelper.hxx> +#include <svtools/helpopt.hxx> +#include <vos/process.hxx> +#include <framework/sfxhelperfunctions.hxx> +#include <rtl/ustring.hxx> +#include <com/sun/star/uno/Exception.hpp> +#include <com/sun/star/uno/RuntimeException.hpp> +#include <com/sun/star/uno/Reference.hxx> + +#include "sfxtypes.hxx" +#include "appdata.hxx" +#include <sfx2/docfac.hxx> +#include <sfx2/app.hxx> +#include "arrdecl.hxx" +#include <sfx2/dispatch.hxx> +#include "sfxresid.hxx" +#include <sfx2/fcontnr.hxx> +#include <sfx2/viewsh.hxx> +#include "intro.hxx" +#include <sfx2/msgpool.hxx> +#include <sfx2/mnumgr.hxx> +#include <sfx2/appuno.hxx> +#include "app.hrc" +#include <sfx2/docfile.hxx> +#include "workwin.hxx" + +#ifdef UNX +#define stricmp(a,b) strcmp(a,b) +#endif + + +//=================================================================== + +DBG_NAME(SfxAppMainNewMenu) +DBG_NAME(SfxAppMainBmkMenu) +DBG_NAME(SfxAppMainWizMenu) +DBG_NAME(SfxAppMainOLEReg) +DBG_NAME(SfxAppMainCHAOSReg) + +//=================================================================== + +#define SFX_TEMPNAMEBASE_DIR "soffice.tmp" +#define SFX_KEY_TEMPNAMEBASE "Temp-Dir" + +//=================================================================== + +#ifdef TF_POOLABLE +static SfxItemInfo __READONLY_DATA aItemInfos[] = +{ + { 0, 0 } +}; +#endif + +//=================================================================== + +TYPEINIT2(SfxApplication,SfxShell,SfxBroadcaster); + +//-------------------------------------------------------------------- +void SfxApplication::Init +( +) + +/* [Beschreibung] + + Diese virtuelle Methode wird vom SFx aus Application:a:Main() gerufen, + bevor Execute() ausgef"uhrt wird und + - das Intro bereits angezeigt ist, + - das Applikationsfenster exisitiert, aber noch hidden ist, + - die Bindings bereits existieren (Controller sind anmeldbar), + - der Ini- und Config-Manager bereits existiert, + - die Standard-Controller bereits exisitieren, + - die SFx-Shells ihre Interfaces bereits registriert haben. + + [Querverweise] + <SfxApplication::Exit()> + <SfxApplication::OpenClients()> +*/ +{ +#ifdef DDE_AVAILABLE +#ifndef DBG_UTIL + InitializeDde(); +#else + if( !InitializeDde() ) + { + ByteString aStr( "Kein DDE-Service moeglich. Fehler: " ); + if( GetDdeService() ) + aStr += GetDdeService()->GetError(); + else + aStr += '?'; + DBG_ASSERT( sal_False, aStr.GetBuffer() ) + } +#endif +#endif +} + +//-------------------------------------------------------------------- + +void SfxApplication::Exit() + +/* [Beschreibung] + + Diese virtuelle Methode wird vom SFx aus Application::Main() gerufen, + nachdem Execute() beendet ist und + - die Konfiguration (SfxConfigManager) bereits gespeichert wurde, + - die Fensterpostionen etc. in den SfxIniManager geschrieben wurden, + - das Applikationsfenster noch existiert, aber hidden ist + - s"amtliche Dokumente und deren Views bereits geschlossen sind. + - Dispatcher, Bindings etc. bereits zerst"ort sind + + [Querverweise] + <SfxApplication::Init(int,char*[])> +*/ + +{ +} + +//--------------------------------------------------------------------------- + +void SfxApplication::PreInit( ) +{ +} + +//--------------------------------------------------------------------------- +bool SfxApplication::InitLabelResMgr( const char* _pLabelPrefix, bool _bException ) +{ + bool bRet = false; + // Label-DLL mit diversen Resourcen fuer OEM-Ver. etc. (Intro, Titel, About) + DBG_ASSERT( _pLabelPrefix, "Wrong initialisation!" ); + if ( _pLabelPrefix ) + { + // versuchen, die Label-DLL zu erzeugen + pAppData_Impl->pLabelResMgr = CreateResManager( _pLabelPrefix ); + + // keine separate Label-DLL vorhanden? + if ( !pAppData_Impl->pLabelResMgr ) + { + if ( _bException ) + { + // maybe corrupted installation + throw (::com::sun::star::uno::RuntimeException( + ::rtl::OUString::createFromAscii("iso resource could not be loaded by SfxApplication"), + ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >())); + } + } + else + bRet = true; + } + + return bRet; +} + +void SfxApplication::Main( ) +{ +} + +//------------------------------------------------------------------------- + +SfxFilterMatcher& SfxApplication::GetFilterMatcher() +{ + if( !pAppData_Impl->pMatcher ) + { + pAppData_Impl->pMatcher = new SfxFilterMatcher(); + URIHelper::SetMaybeFileHdl( STATIC_LINK( + pAppData_Impl->pMatcher, SfxFilterMatcher, MaybeFileHdl_Impl ) ); + } + return *pAppData_Impl->pMatcher; +} |