diff options
author | Matúš Kukan <matus.kukan@collabora.com> | 2014-01-15 13:06:35 +0100 |
---|---|---|
committer | Matúš Kukan <matus.kukan@collabora.com> | 2014-01-15 15:11:56 +0100 |
commit | 44592540c5c3ef12875cdcab41a058092cda378d (patch) | |
tree | cb8d4eafa0c5c5c2d4ba826c92ad3bb33a242feb /sfx2 | |
parent | ea301c7c1d65064bbc9588534fc21f12b8e0d752 (diff) |
sfx: Constructor feature for pseudo implementations.
Change-Id: I18ab7ed8785c63688eecdcdb77289e1691ba793d
Diffstat (limited to 'sfx2')
-rw-r--r-- | sfx2/source/appl/appbaslib.cxx | 55 | ||||
-rw-r--r-- | sfx2/source/appl/appuno.cxx | 3 | ||||
-rw-r--r-- | sfx2/source/inc/appbaslib.hxx | 30 | ||||
-rw-r--r-- | sfx2/util/sfx.component | 6 |
4 files changed, 16 insertions, 78 deletions
diff --git a/sfx2/source/appl/appbaslib.cxx b/sfx2/source/appl/appbaslib.cxx index 15c539d4fd75..a980606c587a 100644 --- a/sfx2/source/appl/appbaslib.cxx +++ b/sfx2/source/appl/appbaslib.cxx @@ -154,63 +154,32 @@ SfxBasicManagerHolder::LegacyPsswdBinaryLimitExceeded( Sequence< OUString >& sMo //============================================================================ // Service for application library container -SFX_IMPL_ONEINSTANCEFACTORY( SfxApplicationDialogLibraryContainer ) -Sequence< OUString > SfxApplicationDialogLibraryContainer::impl_getStaticSupportedServiceNames() -{ - static Sequence< OUString > seqServiceNames( 1 ); - static sal_Bool bNeedsInit = sal_True; - - MutexGuard aGuard( Mutex::getGlobalMutex() ); - if( bNeedsInit ) - { - OUString* pSeq = seqServiceNames.getArray(); - pSeq[0] = "com.sun.star.script.ApplicationDialogLibraryContainer"; - bNeedsInit = sal_False; - } - return seqServiceNames; -} - -OUString SfxApplicationDialogLibraryContainer::impl_getStaticImplementationName() -{ - return OUString("com.sun.star.comp.sfx2.ApplicationDialogLibraryContainer"); -} - -Reference< XInterface > SAL_CALL SfxApplicationDialogLibraryContainer::impl_createInstance - ( const Reference< XMultiServiceFactory >& ) - throw( Exception ) +extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL +com_sun_star_comp_sfx2_ApplicationDialogLibraryContainer_get_implementation( + css::uno::XComponentContext *, + css::uno::Sequence<css::uno::Any> const &) { SFX_APP()->GetBasicManager(); Reference< XInterface > xRet = Reference< XInterface >( SFX_APP()->GetDialogContainer(), UNO_QUERY ); - return xRet; + xRet->acquire(); + return xRet.get(); } //============================================================================ // Service for application library container -SFX_IMPL_ONEINSTANCEFACTORY( SfxApplicationScriptLibraryContainer ) - -Sequence< OUString > SfxApplicationScriptLibraryContainer::impl_getStaticSupportedServiceNames() -{ - Sequence< OUString > seqServiceNames( 1 ); - OUString* pSeq = seqServiceNames.getArray(); - pSeq[0] = "com.sun.star.script.ApplicationScriptLibraryContainer"; - return seqServiceNames; -} - -OUString SfxApplicationScriptLibraryContainer::impl_getStaticImplementationName() -{ - return OUString("com.sun.star.comp.sfx2.ApplicationScriptLibraryContainer"); -} -Reference< XInterface > SAL_CALL SfxApplicationScriptLibraryContainer::impl_createInstance - ( const Reference< XMultiServiceFactory >& ) - throw( Exception ) +extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL +com_sun_star_comp_sfx2_ApplicationScriptLibraryContainer_get_implementation( + css::uno::XComponentContext *, + css::uno::Sequence<css::uno::Any> const &) { SFX_APP()->GetBasicManager(); Reference< XInterface > xRet = Reference< XInterface >( SFX_APP()->GetBasicContainer(), UNO_QUERY ); - return xRet; + xRet->acquire(); + return xRet.get(); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sfx2/source/appl/appuno.cxx b/sfx2/source/appl/appuno.cxx index bc725fe0bc8e..4c9374c4d405 100644 --- a/sfx2/source/appl/appuno.cxx +++ b/sfx2/source/appl/appuno.cxx @@ -23,7 +23,6 @@ #include "backingcomp.hxx" #include "SfxDocumentMetaData.hxx" -#include "appbaslib.hxx" #include "fltoptint.hxx" #include "frmload.hxx" #include "objshimp.hxx" @@ -1799,8 +1798,6 @@ SFX2_DLLPUBLIC void* SAL_CALL sfx_component_getFactory( IF_NAME_CREATECOMPONENTFACTORY( BackingComp ) IF_NAME_CREATECOMPONENTFACTORY( SfxFrameLoader_Impl ) IF_NAME_CREATECOMPONENTFACTORY( ShutdownIcon ) - IF_NAME_CREATECOMPONENTFACTORY( SfxApplicationScriptLibraryContainer ) - IF_NAME_CREATECOMPONENTFACTORY( SfxApplicationDialogLibraryContainer ) #ifdef TEST_HANDLERS IF_NAME_CREATECOMPONENTFACTORY( TestKeyHandler ) IF_NAME_CREATECOMPONENTFACTORY( TestMouseClickHandler ) diff --git a/sfx2/source/inc/appbaslib.hxx b/sfx2/source/inc/appbaslib.hxx index 8c471224574c..8f804200d20d 100644 --- a/sfx2/source/inc/appbaslib.hxx +++ b/sfx2/source/inc/appbaslib.hxx @@ -21,8 +21,6 @@ #define INCLUDED_SFX2_SOURCE_INC_APPBASLIB_HXX #include <com/sun/star/uno/Sequence.hxx> -#include <com/sun/star/lang/XMultiServiceFactory.hpp> -#include <com/sun/star/lang/XSingleServiceFactory.hpp> #include <com/sun/star/script/XStorageBasedLibraryContainer.hpp> #include <com/sun/star/embed/XStorage.hpp> @@ -95,34 +93,6 @@ private: ::com::sun::star::uno::Reference< ::com::sun::star::script::XStorageBasedLibraryContainer >& _out_rxContainer ); }; -class SfxApplicationScriptLibraryContainer -{ -public: - // Service - static ::com::sun::star::uno::Sequence< OUString > impl_getStaticSupportedServiceNames(); - static OUString impl_getStaticImplementationName(); - static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL impl_createInstance - ( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceManager ) - throw( ::com::sun::star::uno::Exception ); - static ::com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleServiceFactory > impl_createFactory - ( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceManager ); - -}; - -class SfxApplicationDialogLibraryContainer -{ -public: - // Service - static ::com::sun::star::uno::Sequence< OUString > impl_getStaticSupportedServiceNames(); - static OUString impl_getStaticImplementationName(); - static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL impl_createInstance - ( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceManager ) - throw( ::com::sun::star::uno::Exception ); - static ::com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleServiceFactory > impl_createFactory - ( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceManager ); - -}; - #endif // INCLUDED_SFX2_SOURCE_INC_APPBASLIB_HXX /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sfx2/util/sfx.component b/sfx2/util/sfx.component index afb1bd0e40bf..d002e4b9d757 100644 --- a/sfx2/util/sfx.component +++ b/sfx2/util/sfx.component @@ -49,10 +49,12 @@ <service name="com.sun.star.frame.ProtocolHandler"/> <service name="com.sun.star.frame.AppDispatchProvider"/> </implementation> - <implementation name="com.sun.star.comp.sfx2.ApplicationDialogLibraryContainer"> + <implementation name="com.sun.star.comp.sfx2.ApplicationDialogLibraryContainer" + constructor="com.sun.star.comp.sfx2.ApplicationDialogLibraryContainer_get_implementation"> <service name="com.sun.star.script.ApplicationDialogLibraryContainer"/> </implementation> - <implementation name="com.sun.star.comp.sfx2.ApplicationScriptLibraryContainer"> + <implementation name="com.sun.star.comp.sfx2.ApplicationScriptLibraryContainer" + constructor="com.sun.star.comp.sfx2.ApplicationScriptLibraryContainer_get_implementation"> <service name="com.sun.star.script.ApplicationScriptLibraryContainer"/> </implementation> <implementation name="com.sun.star.comp.sfx2.DocumentTemplates" |