diff options
author | Mathias Bauer <mba@openoffice.org> | 2011-01-12 11:56:09 +0100 |
---|---|---|
committer | Mathias Bauer <mba@openoffice.org> | 2011-01-12 11:56:09 +0100 |
commit | aac59b315fb1b84a3d824977588e4a0de1cf8ab3 (patch) | |
tree | 1207201ed98ae6c7291487b8d0bbeb26c488dff1 /sfx2/source | |
parent | 12e7bdd2154e2b0fa4e6242af65278b37accd1af (diff) |
CWS gnumake3: #i86790#: clean up mess with ooo+iso resource files
Diffstat (limited to 'sfx2/source')
-rw-r--r-- | sfx2/source/appl/app.cxx | 14 | ||||
-rw-r--r-- | sfx2/source/appl/appbas.cxx | 83 | ||||
-rw-r--r-- | sfx2/source/appl/appdata.cxx | 1 | ||||
-rw-r--r-- | sfx2/source/appl/appmain.cxx | 29 | ||||
-rw-r--r-- | sfx2/source/appl/appmisc.cxx | 115 | ||||
-rw-r--r-- | sfx2/source/appl/appquit.cxx | 2 | ||||
-rw-r--r-- | sfx2/source/appl/appserv.cxx | 91 | ||||
-rw-r--r-- | sfx2/source/dialog/about.cxx | 423 |
8 files changed, 78 insertions, 680 deletions
diff --git a/sfx2/source/appl/app.cxx b/sfx2/source/appl/app.cxx index 0130f29f08..58114f559e 100644 --- a/sfx2/source/appl/app.cxx +++ b/sfx2/source/appl/app.cxx @@ -361,15 +361,8 @@ SfxApplication::SfxApplication() #endif #endif - if ( !InitLabelResMgr( "iso" ) ) - // no "iso" resource -> search for "ooo" resource - InitLabelResMgr( "ooo", true ); pBasic = new BasicDLL; - StarBASIC::SetGlobalErrorHdl( LINK( this, SfxApplication, GlobalBasicErrorHdl_Impl ) ); - - - RTL_LOGFILE_CONTEXT_TRACE( aLog, "} initialize DDE" ); } @@ -585,13 +578,6 @@ ResMgr* SfxApplication::GetSfxResManager() //-------------------------------------------------------------------- -ResMgr* SfxApplication::GetLabelResManager() const -{ - return pAppData_Impl->pLabelResMgr; -} - -//-------------------------------------------------------------------- - SimpleResMgr* SfxApplication::GetSimpleResManager() { if ( !pAppData_Impl->pSimpleResManager ) diff --git a/sfx2/source/appl/appbas.cxx b/sfx2/source/appl/appbas.cxx index 52e9d6248a..53d1fdcc74 100644 --- a/sfx2/source/appl/appbas.cxx +++ b/sfx2/source/appl/appbas.cxx @@ -100,75 +100,6 @@ using namespace ::com::sun::star::script; using ::basic::BasicManagerRepository; -// #ifndef STR_VERSION_ID -// #define STR_VERSION_ID 1 -// #endif -// #ifndef STR_VERSION_TYPE -// #define STR_VERSION_TYPE 1 -// #endif - -//========================================================================= -/*ASDBG -const SfxConstant __FAR_DATA aConstants[] = -{ - SFX_USHORT_CONSTANT( "AlignBottom", ALIGN_BOTTOM ), - SFX_USHORT_CONSTANT( "AlignTop", ALIGN_TOP ), - SFX_USHORT_CONSTANT( "CharSetANSI", CHARSET_ANSI ), - SFX_USHORT_CONSTANT( "CharSetDontKnow", CHARSET_DONTKNOW ), - SFX_USHORT_CONSTANT( "CharSetIBMPC437", CHARSET_IBMPC_437 ), - SFX_USHORT_CONSTANT( "CharSetIBMPC850", CHARSET_IBMPC_850 ), - SFX_USHORT_CONSTANT( "CharSetIBMPC860", CHARSET_IBMPC_860 ), - SFX_USHORT_CONSTANT( "CharSetIBMPC861", CHARSET_IBMPC_861 ), - SFX_USHORT_CONSTANT( "CharSetIBMPC863", CHARSET_IBMPC_863 ), - SFX_USHORT_CONSTANT( "CharSetIBMPC865", CHARSET_IBMPC_865 ), - SFX_USHORT_CONSTANT( "CharSetIBMPC", CHARSET_IBMPC ), - SFX_USHORT_CONSTANT( "CharSetMac", CHARSET_MAC ), - SFX_USHORT_CONSTANT( "CharSetSymbol", CHARSET_SYMBOL ), - SFX_USHORT_CONSTANT( "CharSetSystem", RTL_TEXTENCODING_UTF8 ), - SFX_USHORT_CONSTANT( "FamilyDecorative", FAMILY_DECORATIVE ), - SFX_USHORT_CONSTANT( "FamilyDontknow", FAMILY_DONTKNOW ), - SFX_USHORT_CONSTANT( "FamilyModern", FAMILY_MODERN ), - SFX_USHORT_CONSTANT( "FamilyRoman", FAMILY_ROMAN ), - SFX_USHORT_CONSTANT( "FamilyScript", FAMILY_SCRIPT ), - SFX_USHORT_CONSTANT( "FamilySwiss", FAMILY_SWISS ), - SFX_USHORT_CONSTANT( "FamilySystem", FAMILY_SYSTEM ), - SFX_USHORT_CONSTANT( "GradientAxial", GRADIENT_AXIAL ), - SFX_USHORT_CONSTANT( "GradientElliptical", GRADIENT_ELLIPTICAL ), - SFX_USHORT_CONSTANT( "GradientLinear", GRADIENT_LINEAR ), - SFX_USHORT_CONSTANT( "GradientRadial", GRADIENT_RADIAL ), - SFX_USHORT_CONSTANT( "GradientRect", GRADIENT_RECT ), - SFX_USHORT_CONSTANT( "GradientSquare", GRADIENT_SQUARE ), - SFX_USHORT_CONSTANT( "ItalicNone", ITALIC_NONE ), - SFX_USHORT_CONSTANT( "ItalicOblique", ITALIC_OBLIQUE ), - SFX_USHORT_CONSTANT( "StrikeThroughDouble", STRIKEOUT_DOUBLE ), - SFX_USHORT_CONSTANT( "StrikeThroughNone", STRIKEOUT_NONE ), - SFX_USHORT_CONSTANT( "StrikeThroughSingle", STRIKEOUT_SINGLE ), - SFX_USHORT_CONSTANT( "UnderlineDotted", UNDERLINE_DOTTED ), - SFX_USHORT_CONSTANT( "UnderlineDouble", UNDERLINE_DOUBLE ), - SFX_USHORT_CONSTANT( "UnderlineNone", UNDERLINE_NONE ), - SFX_USHORT_CONSTANT( "UnderlineSingle", UNDERLINE_SINGLE ), - SFX_USHORT_CONSTANT( "UnitFoot", FUNIT_FOOT ), - SFX_USHORT_CONSTANT( "UnitInch", FUNIT_INCH ), - SFX_USHORT_CONSTANT( "UnitMile", FUNIT_MILE ), - SFX_USHORT_CONSTANT( "UnitPercent", FUNIT_PERCENT ), - SFX_USHORT_CONSTANT( "UnitPoint", FUNIT_POINT ), - SFX_USHORT_CONSTANT( "UnitTwip", FUNIT_TWIP ), - SFX_USHORT_CONSTANT( "Unit_cm", FUNIT_CM ), - SFX_USHORT_CONSTANT( "Unit_m", FUNIT_M ), - SFX_USHORT_CONSTANT( "Unit_mm", FUNIT_MM ), - SFX_USHORT_CONSTANT( "WeightBlack", WEIGHT_BLACK ), - SFX_USHORT_CONSTANT( "WeightBold", WEIGHT_BOLD ), - SFX_USHORT_CONSTANT( "WeightDontKnow", WEIGHT_DONTKNOW ), - SFX_USHORT_CONSTANT( "WeightLight", WEIGHT_LIGHT ), - SFX_USHORT_CONSTANT( "WeightMedium", WEIGHT_MEDIUM ), - SFX_USHORT_CONSTANT( "WeightNormal", WEIGHT_NORMAL ), - SFX_USHORT_CONSTANT( "WeightSemibold", WEIGHT_SEMIBOLD ), - SFX_USHORT_CONSTANT( "WeightSemilight", WEIGHT_SEMILIGHT ), - SFX_USHORT_CONSTANT( "WeightThin", WEIGHT_THIN ), - SFX_USHORT_CONSTANT( "WeightUltrabold", WEIGHT_ULTRABOLD ), - SFX_USHORT_CONSTANT( "WeightUltralight", WEIGHT_ULTRALIGHT ) -}; -*/ //======================================================================== //------------------------------------------------------------------------ @@ -500,20 +431,6 @@ void SfxApplication::PropState_Impl( SfxItemSet &rSet ) rSet.Put( SfxUInt32Item( SID_UPDATE_VERSION, SUPD ) ); break; - case SID_BUILD_VERSION: - { - String aVersion = lcl_GetVersionString(pAppData_Impl->pLabelResMgr); - rSet.Put( SfxUInt32Item( SID_BUILD_VERSION, (sal_uInt32) aVersion.ToInt32() ) ); - break; - } - - case SID_OFFICE_PRIVATE_USE: - case SID_OFFICE_COMMERCIAL_USE: - { - DBG_ASSERT( sal_False, "SfxApplication::PropState_Impl()\nSID_OFFICE_PRIVATE_USE & SID_OFFICE_COMMERCIAL_USE are obsolete!\n" ); - break; - } - case SID_OFFICE_CUSTOMERNUMBER: { rSet.Put( SfxStringItem( nSID, SvtUserOptions().GetCustomerNumber() ) ); diff --git a/sfx2/source/appl/appdata.cxx b/sfx2/source/appl/appdata.cxx index e48ffcc037..4da083547b 100644 --- a/sfx2/source/appl/appdata.cxx +++ b/sfx2/source/appl/appdata.cxx @@ -98,7 +98,6 @@ SfxAppData_Impl::SfxAppData_Impl( SfxApplication* ) : pTopFrames( new SfxFrameArr_Impl ), pInitLinkList(0), pMatcher( 0 ), - pLabelResMgr( 0 ), pAppDispatch(NULL), pTemplates( 0 ), pPool(0), diff --git a/sfx2/source/appl/appmain.cxx b/sfx2/source/appl/appmain.cxx index ded60743dc..b8ca76be5d 100644 --- a/sfx2/source/appl/appmain.cxx +++ b/sfx2/source/appl/appmain.cxx @@ -160,35 +160,6 @@ 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( ) { } diff --git a/sfx2/source/appl/appmisc.cxx b/sfx2/source/appl/appmisc.cxx index 07d84df290..91b5995bcf 100644 --- a/sfx2/source/appl/appmisc.cxx +++ b/sfx2/source/appl/appmisc.cxx @@ -29,9 +29,7 @@ #include "precompiled_sfx2.hxx" #include <vcl/status.hxx> #include <vcl/msgbox.hxx> -#ifndef _VOS_PROCESS_HXX //autogen #include <vos/process.hxx> -#endif #include <vos/xception.hxx> #include <svl/whiter.hxx> #include <svl/stritem.hxx> @@ -41,9 +39,7 @@ #include <unotools/internaloptions.hxx> #include <unotools/pathoptions.hxx> #include <com/sun/star/registry/InvalidRegistryException.hpp> -#ifndef _COM_SUN_STAR_BEANS_PropertyValue_HPP_ #include <com/sun/star/beans/PropertyValue.hpp> -#endif #include <com/sun/star/frame/XFrame.hpp> #include <com/sun/star/util/XURLTransformer.hpp> #include <com/sun/star/frame/XFramesSupplier.hpp> @@ -51,11 +47,8 @@ #include <tools/config.hxx> #include <tools/rcid.h> #include <vos/mutex.hxx> -#ifndef GCC -#endif #include <unotools/configmgr.hxx> #include <com/sun/star/frame/XDesktop.hpp> - #include <unotools/ucbstreamhelper.hxx> #include <framework/menuconfiguration.hxx> #include <comphelper/processfactory.hxx> @@ -63,6 +56,7 @@ #include <unotools/bootstrap.hxx> #include <unotools/moduleoptions.hxx> #include <osl/file.hxx> +#include <rtl/bootstrap.hxx> #include "sfx2/sfxresid.hxx" #include <sfx2/app.hxx> @@ -160,45 +154,6 @@ SFX_IMPL_INTERFACE(SfxApplication,SfxShell,SfxResId(RID_DESKTOP)) } //-------------------------------------------------------------------- - -void SfxApplication::InitializeDisplayName_Impl() -{ - SfxAppData_Impl* pAppData = Get_Impl(); - if ( !pAppData->pLabelResMgr ) - return; - - String aTitle = Application::GetDisplayName(); - if ( !aTitle.Len() ) - { - OClearableGuard aGuard( OMutex::getGlobalMutex() ); - - // create version string -/*!!! (pb) don't show a version number at the moment - USHORT nProductVersion = ProductVersion::GetVersion().ToInt32(); - String aVersion( String::CreateFromInt32( nProductVersion / 10 ) ); - aVersion += 0x002E ; // 2Eh ^= '.' - aVersion += ( String::CreateFromInt32( nProductVersion % 10 ) ); -*/ - // load application title - aTitle = String( ResId( RID_APPTITLE, *pAppData->pLabelResMgr ) ); - // merge version into title - aTitle.SearchAndReplaceAscii( "$(VER)", String() /*aVersion*/ ); - - aGuard.clear(); - -#ifdef DBG_UTIL - ::rtl::OUString aDefault; - aTitle += DEFINE_CONST_UNICODE(" ["); - - String aVerId( utl::Bootstrap::getBuildIdData( aDefault )); - aTitle += aVerId; - aTitle += ']'; -#endif - Application::SetDisplayName( aTitle ); - } -} - -//-------------------------------------------------------------------- SfxProgress* SfxApplication::GetProgress() const /* [Beschreibung] @@ -333,3 +288,71 @@ SfxSlotPool& SfxApplication::GetAppSlotPool_Impl() const { return *pAppData_Impl //SfxOptions& SfxApplication::GetOptions() { return *pAppData_Impl->pOptions; } //const SfxOptions& SfxApplication::GetOptions() const { return *pAppData_Impl->pOptions; } +static bool impl_loadBitmap( + const rtl::OUString &rPath, const rtl::OUString &rBmpFileName, + Image &rLogo ) +{ + rtl::OUString uri( rPath ); + rtl::Bootstrap::expandMacros( uri ); + INetURLObject aObj( uri ); + aObj.insertName( rBmpFileName ); + SvFileStream aStrm( aObj.PathToFileName(), STREAM_STD_READ ); + if ( !aStrm.GetError() ) + { + // Use graphic class to also support more graphic formats (bmp,png,...) + Graphic aGraphic; + + GraphicFilter* pGF = GraphicFilter::GetGraphicFilter(); + pGF->ImportGraphic( aGraphic, String(), aStrm, GRFILTER_FORMAT_DONTKNOW ); + + // Default case, we load the intro bitmap from a seperate file + // (e.g. staroffice_intro.bmp or starsuite_intro.bmp) + BitmapEx aBmp = aGraphic.GetBitmapEx(); + rLogo = Image( aBmp ); + return true; + } + return false; +} + +/** loads the application logo as used in the about dialog and impress slideshow pause screen */ +Image SfxApplication::GetApplicationLogo() +{ + Image aAppLogo; + + rtl::OUString aAbouts; + bool bLoaded = false; + sal_Int32 nIndex = 0; + do + { + bLoaded = impl_loadBitmap( + rtl::OUString::createFromAscii( "$BRAND_BASE_DIR/program" ), + aAbouts.getToken( 0, ',', nIndex ), aAppLogo ); + } + while ( !bLoaded && ( nIndex >= 0 ) ); + + // fallback to "about.bmp" + if ( !bLoaded ) + { + bLoaded = impl_loadBitmap( + rtl::OUString::createFromAscii( "$BRAND_BASE_DIR/program/edition" ), + rtl::OUString::createFromAscii( "about.png" ), aAppLogo ); + if ( !bLoaded ) + bLoaded = impl_loadBitmap( + rtl::OUString::createFromAscii( "$BRAND_BASE_DIR/program/edition" ), + rtl::OUString::createFromAscii( "about.bmp" ), aAppLogo ); + } + + if ( !bLoaded ) + { + bLoaded = impl_loadBitmap( + rtl::OUString::createFromAscii( "$BRAND_BASE_DIR/program" ), + rtl::OUString::createFromAscii( "about.png" ), aAppLogo ); + if ( !bLoaded ) + bLoaded = impl_loadBitmap( + rtl::OUString::createFromAscii( "$BRAND_BASE_DIR/program" ), + rtl::OUString::createFromAscii( "about.bmp" ), aAppLogo ); + } + + return aAppLogo; +} + diff --git a/sfx2/source/appl/appquit.cxx b/sfx2/source/appl/appquit.cxx index 8499376f1c..213b8f532c 100644 --- a/sfx2/source/appl/appquit.cxx +++ b/sfx2/source/appl/appquit.cxx @@ -146,8 +146,6 @@ void SfxApplication::Deinitialize() // ab hier d"urfen keine SvObjects mehr existieren DELETEZ(pAppData_Impl->pMatcher); - delete pAppData_Impl->pLabelResMgr; - DELETEX(pAppData_Impl->pSlotPool); DELETEX(pAppData_Impl->pEventConfig); SfxMacroConfig::Release_Impl(); diff --git a/sfx2/source/appl/appserv.cxx b/sfx2/source/appl/appserv.cxx index 6089324bb2..152462410d 100644 --- a/sfx2/source/appl/appserv.cxx +++ b/sfx2/source/appl/appserv.cxx @@ -87,7 +87,6 @@ #include <com/sun/star/frame/XModuleManager.hpp> #include <com/sun/star/beans/XPropertySet.hpp> -#include "about.hxx" #include "frmload.hxx" #include "referers.hxx" #include <sfx2/app.hxx> @@ -129,7 +128,7 @@ #include <sfx2/dialogs.hrc> #include "sorgitm.hxx" #include "sfx2/sfxhelp.hxx" -#include <tools/svlibrary.hxx>
+#include <tools/svlibrary.hxx> using namespace ::com::sun::star; using namespace ::com::sun::star::beans; @@ -429,86 +428,14 @@ void SfxApplication::MiscExec_Impl( SfxRequest& rReq ) // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - case SID_ABOUT: { - const String sCWSSchema( String::CreateFromAscii( "[CWS:" ) ); - rtl::OUString sDefault; - String sBuildId( utl::Bootstrap::getBuildIdData( sDefault ) ); - OSL_ENSURE( sBuildId.Len() > 0, "No BUILDID in bootstrap file" ); - if ( sBuildId.Len() > 0 && sBuildId.Search( sCWSSchema ) == STRING_NOTFOUND ) - { - // no cws part in brand buildid -> try basis buildid - rtl::OUString sBasisBuildId( DEFINE_CONST_OUSTRING( - "${$OOO_BASE_DIR/program/" SAL_CONFIGFILE("version") ":buildid}" ) ); - rtl::Bootstrap::expandMacros( sBasisBuildId ); - sal_Int32 nIndex = sBasisBuildId.indexOf( sCWSSchema ); - if ( nIndex != -1 ) - sBuildId += String( sBasisBuildId.copy( nIndex ) ); - } - - String sProductSource( utl::Bootstrap::getProductSource( sDefault ) ); - OSL_ENSURE( sProductSource.Len() > 0, "No ProductSource in bootstrap file" ); - - // the product source is something like "DEV300", where the - // build id is something like "300m12(Build:12345)". For better readability, - // strip the duplicate UPD ("300"). - if ( sProductSource.Len() ) - { - bool bMatchingUPD = - ( sProductSource.Len() >= 3 ) - && ( sBuildId.Len() >= 3 ) - && ( sProductSource.Copy( sProductSource.Len() - 3 ) == sBuildId.Copy( 0, 3 ) ); - OSL_ENSURE( bMatchingUPD, "BUILDID and ProductSource do not match in their UPD" ); - if ( bMatchingUPD ) - sProductSource = sProductSource.Copy( 0, sProductSource.Len() - 3 ); - - // prepend the product source - sBuildId.Insert( sProductSource, 0 ); - } - - // --> PB 2008-10-30 #i94693# - /* if the build ids of the basis or ure layer are different from the build id - * of the brand layer then show them */ - rtl::OUString aBasisProductBuildId( DEFINE_CONST_OUSTRING( - "${$OOO_BASE_DIR/program/" SAL_CONFIGFILE("version") ":ProductBuildid}" ) ); - rtl::Bootstrap::expandMacros( aBasisProductBuildId ); - rtl::OUString aUREProductBuildId( DEFINE_CONST_OUSTRING( - "${$URE_BIN_DIR/" SAL_CONFIGFILE("version") ":ProductBuildid}" ) ); - rtl::Bootstrap::expandMacros( aUREProductBuildId ); - if ( sBuildId.Search( String( aBasisProductBuildId ) ) == STRING_NOTFOUND - || sBuildId.Search( String( aUREProductBuildId ) ) == STRING_NOTFOUND ) - { - String sTemp( '-' ); - sTemp += String( aBasisProductBuildId ); - sTemp += '-'; - sTemp += String( aUREProductBuildId ); - sBuildId.Insert( sTemp, sBuildId.Search( ')' ) ); - } - // <-- - - // the build id format is "milestone(build)[cwsname]". For readability, it would - // be nice to have some more spaces in there. - xub_StrLen nPos = 0; - if ( ( nPos = sBuildId.Search( sal_Unicode( '(' ) ) ) != STRING_NOTFOUND ) - sBuildId.Insert( sal_Unicode( ' ' ), nPos ); - if ( ( nPos = sBuildId.Search( sal_Unicode( '[' ) ) ) != STRING_NOTFOUND ) - sBuildId.Insert( sal_Unicode( ' ' ), nPos ); - - // search for the resource of the about box - ResId aDialogResId( RID_DEFAULTABOUT, *pAppData_Impl->pLabelResMgr ); - ResMgr* pResMgr = pAppData_Impl->pLabelResMgr; - if( ! pResMgr->IsAvailable( aDialogResId.SetRT( RSC_MODALDIALOG ) ) ) - pResMgr = GetOffResManager_Impl(); - - aDialogResId.SetResMgr( pResMgr ); - if ( !pResMgr->IsAvailable( aDialogResId ) ) + SfxAbstractDialogFactory* pFact = SfxAbstractDialogFactory::Create(); + if ( pFact ) { - DBG_ERRORFILE( "No RID_DEFAULTABOUT in label-resource-dll" ); + VclAbstractDialog* pDlg = pFact->CreateVclDialog( 0, RID_DEFAULTABOUT ); + pDlg->Execute(); + delete pDlg; + bDone = TRUE; } - - // then show the about box - AboutDialog* pDlg = new AboutDialog( 0, aDialogResId, sBuildId ); - pDlg->Execute(); - delete pDlg; - bDone = TRUE; break; } @@ -746,7 +673,7 @@ extern "C" { static void SAL_CALL thisModule() {} } ::rtl::OUString ChooseMacro( const Reference< XModel >& rxLimitToDocument, BOOL bChooseOnly, const ::rtl::OUString& rMacroDesc = ::rtl::OUString() ) { // get basctl dllname - static ::rtl::OUString aLibName( RTL_CONSTASCII_USTRINGPARAM( SVLIBRARY( "basctl" ) ) );
+ static ::rtl::OUString aLibName( RTL_CONSTASCII_USTRINGPARAM( SVLIBRARY( "basctl" ) ) ); // load module oslModule handleMod = osl_loadModuleRelative( @@ -766,7 +693,7 @@ extern "C" { static void SAL_CALL thisModule() {} } void MacroOrganizer( INT16 nTabId ) { // get basctl dllname - static ::rtl::OUString aLibName( RTL_CONSTASCII_USTRINGPARAM( SVLIBRARY( "basctl" ) ) );
+ static ::rtl::OUString aLibName( RTL_CONSTASCII_USTRINGPARAM( SVLIBRARY( "basctl" ) ) ); // load module oslModule handleMod = osl_loadModuleRelative( diff --git a/sfx2/source/dialog/about.cxx b/sfx2/source/dialog/about.cxx deleted file mode 100644 index 0d1ece34d4..0000000000 --- a/sfx2/source/dialog/about.cxx +++ /dev/null @@ -1,423 +0,0 @@ -/************************************************************************* - * - * 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" - -// include --------------------------------------------------------------- - -#ifndef _SV_APP_HXX -#include <vcl/svapp.hxx> -#endif -#ifndef _MSGBOX_HXX //autogen -#include <vcl/msgbox.hxx> -#endif -#ifndef GCC -#endif - -#include <tools/stream.hxx> -#include <tools/urlobj.hxx> -#include <rtl/bootstrap.hxx> -#include <unotools/configmgr.hxx> -#include <unotools/bootstrap.hxx> -#include <com/sun/star/uno/Any.h> -#include <unotools/configmgr.hxx> -#include <vcl/graph.hxx> -#include <svtools/filter.hxx> - -#include <sfx2/sfxuno.hxx> -#include "about.hxx" -#include "sfxresid.hxx" -#include <sfx2/sfxdefs.hxx> -#include <sfx2/app.hxx> -#include <sfx2/sfxcommands.h> -#include "dialog.hrc" - -// defines --------------------------------------------------------------- - -#define SCROLL_OFFSET 1 -#define SPACE_OFFSET 5 -#define SCROLL_TIMER 30 - -#define WELCOME_URL DEFINE_CONST_UNICODE( "http://www.openoffice.org/welcome/credits.html" ) - -// class AboutDialog ----------------------------------------------------- -static void layoutText( FixedInfo &rText, long &nY, long nTextWidth, Size a6Size ) -{ - Point aTextPos = rText.GetPosPixel(); - aTextPos.X() = a6Size.Width() * 2; - aTextPos.Y() = nY; - rText.SetPosPixel( aTextPos ); - - Size aTxtSiz = rText.GetSizePixel(); - aTxtSiz.Width() = nTextWidth; - Size aCalcSize = rText.CalcMinimumSize( nTextWidth ); - aTxtSiz.Height() = aCalcSize.Height(); - rText.SetSizePixel( aTxtSiz ); - - nY += aTxtSiz.Height(); -} - -static bool impl_loadBitmap( - const rtl::OUString &rPath, const rtl::OUString &rBmpFileName, - Image &rLogo ) -{ - rtl::OUString uri( rPath ); - rtl::Bootstrap::expandMacros( uri ); - INetURLObject aObj( uri ); - aObj.insertName( rBmpFileName ); - SvFileStream aStrm( aObj.PathToFileName(), STREAM_STD_READ ); - if ( !aStrm.GetError() ) - { - // Use graphic class to also support more graphic formats (bmp,png,...) - Graphic aGraphic; - - GraphicFilter* pGF = GraphicFilter::GetGraphicFilter(); - pGF->ImportGraphic( aGraphic, String(), aStrm, GRFILTER_FORMAT_DONTKNOW ); - - // Default case, we load the intro bitmap from a seperate file - // (e.g. staroffice_intro.bmp or starsuite_intro.bmp) - BitmapEx aBmp = aGraphic.GetBitmapEx(); - rLogo = Image( aBmp ); - return true; - } - return false; -} - -/** loads the application logo as used in the about dialog and impress slideshow pause screen */ -Image SfxApplication::GetApplicationLogo() -{ - Image aAppLogo; - - rtl::OUString aAbouts; - bool bLoaded = false; - sal_Int32 nIndex = 0; - do - { - bLoaded = impl_loadBitmap( - rtl::OUString::createFromAscii( "$BRAND_BASE_DIR/program" ), - aAbouts.getToken( 0, ',', nIndex ), aAppLogo ); - } - while ( !bLoaded && ( nIndex >= 0 ) ); - - // fallback to "about.bmp" - if ( !bLoaded ) - { - bLoaded = impl_loadBitmap( - rtl::OUString::createFromAscii( "$BRAND_BASE_DIR/program/edition" ), - rtl::OUString::createFromAscii( "about.png" ), aAppLogo ); - if ( !bLoaded ) - bLoaded = impl_loadBitmap( - rtl::OUString::createFromAscii( "$BRAND_BASE_DIR/program/edition" ), - rtl::OUString::createFromAscii( "about.bmp" ), aAppLogo ); - } - - if ( !bLoaded ) - { - bLoaded = impl_loadBitmap( - rtl::OUString::createFromAscii( "$BRAND_BASE_DIR/program" ), - rtl::OUString::createFromAscii( "about.png" ), aAppLogo ); - if ( !bLoaded ) - bLoaded = impl_loadBitmap( - rtl::OUString::createFromAscii( "$BRAND_BASE_DIR/program" ), - rtl::OUString::createFromAscii( "about.bmp" ), aAppLogo ); - } - - return aAppLogo; -} - -AboutDialog::AboutDialog( Window* pParent, const ResId& rId, const String& rVerStr ) : - - SfxModalDialog ( pParent, rId ), - - aOKButton ( this, ResId( ABOUT_BTN_OK, *rId.GetResMgr() ) ), - aVersionText ( this, ResId( ABOUT_FTXT_VERSION, *rId.GetResMgr() ) ), - aCopyrightText ( this, ResId( ABOUT_FTXT_COPYRIGHT, *rId.GetResMgr() ) ), - aBuildData ( this ), - aDeveloperAry ( ResId( ABOUT_STR_DEVELOPER_ARY, *rId.GetResMgr() ) ), - aDevVersionStr ( rVerStr ), - aAccelStr ( ResId( ABOUT_STR_ACCEL, *rId.GetResMgr() ) ), - aCopyrightTextStr( ResId( ABOUT_STR_COPYRIGHT, *rId.GetResMgr() ) ), - aTimer (), - nOff ( 0 ), - m_nDeltaWidth ( 0 ), - m_nPendingScrolls( 0 ), - bNormal ( TRUE ) -{ - rtl::OUString sProduct; - utl::ConfigManager::GetDirectConfigProperty(utl::ConfigManager::PRODUCTNAME) >>= sProduct; - - // load image from module path - aAppLogo = SfxApplication::GetApplicationLogo(); - - // Transparenter Font - Font aFont = GetFont(); - aFont.SetTransparent( TRUE ); - SetFont( aFont ); - - // if necessary more info - String sVersion = aVersionText.GetText(); - sVersion.SearchAndReplaceAscii( "$(VER)", Application::GetDisplayName() ); - sVersion += '\n'; - sVersion += rVerStr; - aVersionText.SetText( sVersion ); - - // Initialisierung fuer Aufruf Entwickler - if ( aAccelStr.Len() && ByteString(U2S(aAccelStr)).IsAlphaAscii() ) - { - Accelerator *pAccel = 0, *pPrevAccel = 0, *pFirstAccel = 0; - aAccelStr.ToUpperAscii(); - - for ( USHORT i = 0; i < aAccelStr.Len(); ++i ) - { - pPrevAccel = pAccel; - pAccel = new Accelerator; - aAccelList.Insert( pAccel, LIST_APPEND ); - USHORT nKey = aAccelStr.GetChar(i) - 'A' + KEY_A; - pAccel->InsertItem( 1, KeyCode( nKey, KEY_MOD1 ) ); - if ( i > 0 ) - pPrevAccel->SetAccel( 1, pAccel ); - if ( i == 0 ) - pFirstAccel = pAccel; - } - pAccel->SetSelectHdl( LINK( this, AboutDialog, AccelSelectHdl ) ); - GetpApp()->InsertAccel( pFirstAccel ); - } - - // set for background and text the correct system color - const StyleSettings& rSettings = GetSettings().GetStyleSettings(); - Color aWhiteCol( rSettings.GetWindowColor() ); - Wallpaper aWall( aWhiteCol ); - SetBackground( aWall ); - Font aNewFont( aCopyrightText.GetFont() ); - aNewFont.SetTransparent( TRUE ); - - aVersionText.SetFont( aNewFont ); - aCopyrightText.SetFont( aNewFont ); - - aVersionText.SetBackground(); - aCopyrightText.SetBackground(); - - Color aTextColor( rSettings.GetWindowTextColor() ); - aVersionText.SetControlForeground( aTextColor ); - aCopyrightText.SetControlForeground( aTextColor ); - aBuildData.SetBackground( aWall ); - - Font aSmallFont = rSettings.GetInfoFont(); - Size aSmaller = aNewFont.GetSize(); - aSmaller.Width() = (long) (aSmaller.Width() * 0.75); - aSmaller.Height() = (long) (aSmaller.Height() * 0.75); - aNewFont.SetSize( aSmaller ); - aBuildData.SetFont( aNewFont ); - aBuildData.SetBackground( aWall ); -#ifdef BUILD_VER_STRING - String aBuildString( DEFINE_CONST_UNICODE( BUILD_VER_STRING ) ); -#else - String aBuildString; -#endif - aBuildData.SetText( aBuildString ); - aBuildData.Show(); - - // determine size and position of the dialog & elements - Size aAppLogoSiz = aAppLogo.GetSizePixel(); - Size aOutSiz = GetOutputSizePixel(); - aOutSiz.Width() = aAppLogoSiz.Width(); - - Size a6Size = aVersionText.LogicToPixel( Size( 6, 6 ), MAP_APPFONT ); - long nY = aAppLogoSiz.Height() + ( a6Size.Height() * 2 ); - long nDlgMargin = a6Size.Width() * 4 ; - long nCtrlMargin = a6Size.Height() * 2; - long nTextWidth = aOutSiz.Width() - nDlgMargin; - - aCopyrightText.SetText( aCopyrightTextStr ); - - layoutText( aVersionText, nY, nTextWidth, a6Size ); - nY += nCtrlMargin; - - // OK-Button-Position (at the bottom and centered) - Size aOKSiz = aOKButton.GetSizePixel(); - Point aOKPnt = aOKButton.GetPosPixel(); - - // Multiline edit with Copyright-Text - Point aCopyPnt = aCopyrightText.GetPosPixel(); - Size aCopySize = aCopyrightText.GetSizePixel(); - aCopySize.Width() = nTextWidth; - aCopySize.Height() = aOutSiz.Height() - nY - ( aOKSiz.Height() * 2 ) - nCtrlMargin; - - aCopyPnt.X() = ( aOutSiz.Width() - aCopySize.Width() ) / 2; - aCopyPnt.Y() = nY; - aCopyrightText.SetPosSizePixel( aCopyPnt, aCopySize ); - - nY += aCopySize.Height() + nCtrlMargin; - aOKPnt.X() = ( aOutSiz.Width() - aOKSiz.Width() ) / 2; - aOKPnt.Y() = nY; - aOKButton.SetPosPixel( aOKPnt ); - - // Change the width of the dialog - SetOutputSizePixel( aOutSiz ); - - FreeResource(); - - SetHelpId( CMD_SID_ABOUT ); -} - -// ----------------------------------------------------------------------- - -AboutDialog::~AboutDialog() -{ - // L"oschen des Entwickleraufrufs - if ( aAccelList.Count() ) - { - GetpApp()->RemoveAccel( aAccelList.First() ); - Accelerator* pAccel = aAccelList.Last(); - - while ( pAccel ) - { - delete pAccel; - pAccel = aAccelList.Prev(); - } - } -} - -// ----------------------------------------------------------------------- - -IMPL_LINK( AboutDialog, TimerHdl, Timer *, pTimer ) -{ - (void)pTimer; //unused - ++m_nPendingScrolls; - Invalidate( INVALIDATE_NOERASE | INVALIDATE_NOCHILDREN ); - return 0; -} - -// ----------------------------------------------------------------------- - -IMPL_LINK( AboutDialog, AccelSelectHdl, Accelerator *, pAccelerator ) -{ -#ifdef YURI_DARIO - aCopyrightText.SetHelpText( DEFINE_CONST_UNICODE("Conoscere qualcuno ovunque egli sia, con cui comprendersi nonostante le distanze\n" - "e le differenze, puo' trasformare la terra in un giardino. baci Valeria") ); -#endif - - (void)pAccelerator; //unused - // init Timer - aTimer.SetTimeoutHdl( LINK( this, AboutDialog, TimerHdl ) ); - - // init scroll mode - nOff = GetOutputSizePixel().Height(); - MapMode aMapMode( MAP_PIXEL ); - SetMapMode( aMapMode ); - bNormal = FALSE; - - // start scroll Timer - aTimer.SetTimeout( SCROLL_TIMER ); - aTimer.Start(); - return 0; -} - -// ----------------------------------------------------------------------- - -BOOL AboutDialog::Close() -{ - // stop Timer and finish the dialog - aTimer.Stop(); - EndDialog( RET_OK ); - return( FALSE ); -} - -// ----------------------------------------------------------------------- - -void AboutDialog::Paint( const Rectangle& rRect ) -{ - SetClipRegion( rRect ); - - if ( bNormal ) // not in scroll mode - { - Point aPos( m_nDeltaWidth / 2, 0 ); - DrawImage( aPos, aAppLogo ); - return; - } - - // scroll the content - const int nDeltaY = -SCROLL_OFFSET * m_nPendingScrolls; - if( !nDeltaY ) - return; - nOff += nDeltaY; - Scroll( 0, nDeltaY, SCROLL_NOERASE ); - m_nPendingScrolls = 0; - - // draw the credits text - const Font aOrigFont = GetFont(); - const int nFullWidth = GetOutputSizePixel().Width(); - - int nY = nOff; - const int nDevCnt = static_cast<int>( aDeveloperAry.Count() ); - for( int i = 0; i < nDevCnt; ++i ) - { - if( nY >= rRect.Bottom() ) - break; - - int nPos2 = nY + GetTextHeight() + 3; - if( nPos2 >= rRect.Top() + nDeltaY ) - { - const String aStr = aDeveloperAry.GetString(i); - const long nVal = aDeveloperAry.GetValue(i); - - if ( nVal ) - { - // emphasize the headers - Font aFont = aOrigFont; - aFont.SetWeight( (FontWeight)nVal ); - SetFont( aFont ); - nPos2 = nY + GetTextHeight() + 3; - } - - // clear text background - Rectangle aEraseRect( Point(0,nY), Size( nFullWidth, nPos2-nY)); - Erase( aEraseRect ); - - // draw centered text - const long nTextWidth = GetTextWidth( aStr ); - long nX = (nFullWidth - 5 - nTextWidth) / 2; - if( nX < 0 ) - nX = SPACE_OFFSET; - const Point aPnt( nX, nY ); - DrawText( aPnt, aStr ); - - // restore the font if needed - if( nVal ) - SetFont( aOrigFont ); - } - nY = nPos2; - } - - // close dialog if the whole text has been scrolled - if ( nY <= 0 ) - { - bNormal = TRUE; - Close(); - } -} |