diff options
Diffstat (limited to 'svx/source/unodraw/unoctabl.cxx')
-rw-r--r-- | svx/source/unodraw/unoctabl.cxx | 210 |
1 files changed, 197 insertions, 13 deletions
diff --git a/svx/source/unodraw/unoctabl.cxx b/svx/source/unodraw/unoctabl.cxx index 76762b9a7efa..6963cf9b52bc 100644 --- a/svx/source/unodraw/unoctabl.cxx +++ b/svx/source/unodraw/unoctabl.cxx @@ -20,15 +20,21 @@ #include <unotools/pathoptions.hxx> #include <com/sun/star/lang/XServiceInfo.hpp> #include <com/sun/star/container/XNameContainer.hpp> -#include <com/sun/star/uno/XComponentContext.hpp> #include <cppuhelper/implbase2.hxx> + +#include "../customshapes/EnhancedCustomShapeEngine.hxx" + #include <svx/xtable.hxx> +#include "svx/unoshcol.hxx" +#include "recoveryui.hxx" +#include "svx/xmlgrhlp.hxx" +#include "tbunocontroller.hxx" +#include "tbunosearchcontrollers.hxx" using namespace ::com::sun::star; +using namespace ::rtl; using namespace ::cppu; -namespace { - class SvxUnoColorTable : public WeakImplHelper2< container::XNameContainer, lang::XServiceInfo > { private: @@ -43,6 +49,13 @@ public: virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) throw( uno::RuntimeException); virtual uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw( uno::RuntimeException); + static OUString getImplementationName_Static() throw() + { + return OUString("com.sun.star.drawing.SvxUnoColorTable"); + } + + static uno::Sequence< OUString > getSupportedServiceNames_Static(void) throw(); + // XNameContainer virtual void SAL_CALL insertByName( const OUString& aName, const uno::Any& aElement ) throw( lang::IllegalArgumentException, container::ElementExistException, lang::WrappedTargetException, uno::RuntimeException); virtual void SAL_CALL removeByName( const OUString& Name ) throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException); @@ -85,12 +98,17 @@ sal_Bool SAL_CALL SvxUnoColorTable::supportsService( const OUString& ServiceNam OUString SAL_CALL SvxUnoColorTable::getImplementationName() throw( uno::RuntimeException ) { - return OUString("com.sun.star.drawing.SvxUnoColorTable"); + return OUString("SvxUnoColorTable"); } uno::Sequence< OUString > SAL_CALL SvxUnoColorTable::getSupportedServiceNames() throw( uno::RuntimeException ) { + return getSupportedServiceNames_Static(); +} + +uno::Sequence< OUString > SvxUnoColorTable::getSupportedServiceNames_Static(void) throw() +{ uno::Sequence< OUString > aSNS( 1 ); aSNS.getArray()[0] = "com.sun.star.drawing.ColorTable"; return aSNS; @@ -189,18 +207,184 @@ sal_Bool SAL_CALL SvxUnoColorTable::hasElements() return pList.is() && pList->Count() != 0; } +/** + * Create a colortable + */ +uno::Reference< uno::XInterface > SAL_CALL SvxUnoColorTable_createInstance(const uno::Reference< lang::XMultiServiceFactory > & ) throw(uno::Exception) +{ + return *new SvxUnoColorTable(); } +uno::Reference< uno::XInterface > SAL_CALL create_EnhancedCustomShapeEngine( const uno::Reference< lang::XMultiServiceFactory >& rxFact ) throw(uno::Exception) +{ + return *new EnhancedCustomShapeEngine( rxFact ); +} + +// +// export this service +// + +#include "UnoGraphicExporter.hxx" +#include "unogalthemeprovider.hxx" +#include <com/sun/star/registry/XRegistryKey.hpp> +#include "sal/types.h" +#include "osl/diagnose.h" +#include "cppuhelper/factory.hxx" +#include <svx/sdr/primitive2d/primitiveFactory2d.hxx> +#include "sidebar/PanelFactory.hxx" + + +extern "C" +{ -extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL -com_sun_star_drawing_SvxUnoColorTable_implementation_getFactory( - SAL_UNUSED_PARAMETER css::uno::XComponentContext *, - uno_Sequence * arguments) +SAL_DLLPUBLIC_EXPORT void * SAL_CALL svx_component_getFactory ( + const sal_Char * pImplName, void * pServiceManager, void * ) { - assert(arguments != 0 && arguments->nElements == 0); (void) arguments; - css::uno::Reference<css::uno::XInterface> x( - static_cast<cppu::OWeakObject *>(new SvxUnoColorTable)); - x->acquire(); - return x.get(); + void * pRet = 0; + if( pServiceManager ) + { + uno::Reference< lang::XSingleServiceFactory > xFactory; + + if( rtl_str_compare( pImplName, "com.sun.star.drawing.SvxUnoColorTable" ) == 0 ) + { + xFactory = createSingleFactory( reinterpret_cast< lang::XMultiServiceFactory * >( pServiceManager ), + SvxUnoColorTable::getImplementationName_Static(), + SvxUnoColorTable_createInstance, + SvxUnoColorTable::getSupportedServiceNames_Static() ); + } + else if ( rtl_str_compare( pImplName, "com.sun.star.drawing.EnhancedCustomShapeEngine" ) == 0 ) + { + xFactory = createSingleFactory( reinterpret_cast< lang::XMultiServiceFactory* >( pServiceManager ), + EnhancedCustomShapeEngine_getImplementationName(), + create_EnhancedCustomShapeEngine, + EnhancedCustomShapeEngine_getSupportedServiceNames() ); + } + else if( rtl_str_compare( pImplName, "com.sun.star.drawing.SvxShapeCollection" ) == 0 ) + { + xFactory = createSingleFactory( reinterpret_cast< lang::XMultiServiceFactory * >( pServiceManager ), + SvxShapeCollection::getImplementationName_Static(), + SvxShapeCollection_createInstance, + SvxShapeCollection::getSupportedServiceNames_Static() ); + } + else if( svx::RecoveryUI::st_getImplementationName().equalsAscii( pImplName ) ) + { + xFactory = ::cppu::createSingleFactory( reinterpret_cast< lang::XMultiServiceFactory * >( pServiceManager ), + svx::RecoveryUI::st_getImplementationName(), + svx::RecoveryUI::st_createInstance, + svx::RecoveryUI::st_getSupportedServiceNames() ); + } + else if( svx::GraphicExporter_getImplementationName().equalsAscii( pImplName ) ) + { + xFactory = ::cppu::createSingleFactory( reinterpret_cast< lang::XMultiServiceFactory * >( pServiceManager ), + svx::GraphicExporter_getImplementationName(), + svx::GraphicExporter_createInstance, + svx::GraphicExporter_getSupportedServiceNames() ); + } + else if ( svx::FontHeightToolBoxControl::getImplementationName_Static().equalsAscii( pImplName ) ) + { + xFactory = createSingleFactory( reinterpret_cast< lang::XMultiServiceFactory * >( pServiceManager ), + svx::FontHeightToolBoxControl::getImplementationName_Static(), + svx::FontHeightToolBoxControl_createInstance, + svx::FontHeightToolBoxControl::getSupportedServiceNames_Static() ); + } + else if ( svx::FindTextToolbarController::getImplementationName_Static().equalsAscii( pImplName ) ) + { + xFactory = createSingleFactory( reinterpret_cast< lang::XMultiServiceFactory * >( pServiceManager ), + svx::FindTextToolbarController::getImplementationName_Static(), + svx::FindTextToolbarController_createInstance, + svx::FindTextToolbarController::getSupportedServiceNames_Static() ); + } + else if ( svx::UpDownSearchToolboxController::getImplementationName_Static( svx::UpDownSearchToolboxController::DOWN ).equalsAscii( pImplName ) ) + { + xFactory = createSingleFactory( reinterpret_cast< lang::XMultiServiceFactory * >( pServiceManager ), + svx::UpDownSearchToolboxController::getImplementationName_Static( svx::UpDownSearchToolboxController::DOWN ), + svx::DownSearchToolboxController_createInstance, + svx::UpDownSearchToolboxController::getSupportedServiceNames_Static() ); + } + else if ( svx::UpDownSearchToolboxController::getImplementationName_Static( svx::UpDownSearchToolboxController::UP ).equalsAscii( pImplName ) ) + { + xFactory = createSingleFactory( reinterpret_cast< lang::XMultiServiceFactory * >( pServiceManager ), + svx::UpDownSearchToolboxController::getImplementationName_Static( svx::UpDownSearchToolboxController::UP ), + svx::UpSearchToolboxController_createInstance, + svx::UpDownSearchToolboxController::getSupportedServiceNames_Static() ); + } + else if ( svx::MatchCaseToolboxController::getImplementationName_Static().equalsAscii( pImplName ) ) + { + xFactory = createSingleFactory( reinterpret_cast< lang::XMultiServiceFactory * >( pServiceManager ), + svx::MatchCaseToolboxController::getImplementationName_Static(), + svx::MatchCaseToolboxController_createInstance, + svx::MatchCaseToolboxController::getSupportedServiceNames_Static() ); + } + else if ( svx::FindAllToolboxController::getImplementationName_Static().equalsAscii( pImplName ) ) + { + xFactory = createSingleFactory( reinterpret_cast< lang::XMultiServiceFactory * >( pServiceManager ), + svx::FindAllToolboxController::getImplementationName_Static(), + svx::FindAllToolboxController_createInstance, + svx::FindAllToolboxController::getSupportedServiceNames_Static() ); + } + else if ( svx::ExitSearchToolboxController::getImplementationName_Static().equalsAscii( pImplName ) ) + { + xFactory = createSingleFactory( reinterpret_cast< lang::XMultiServiceFactory * >( pServiceManager ), + svx::ExitSearchToolboxController::getImplementationName_Static(), + svx::ExitFindbarToolboxController_createInstance, + svx::ExitSearchToolboxController::getSupportedServiceNames_Static() ); + } + else if ( svx::FindbarDispatcher::getImplementationName_Static().equalsAscii( pImplName ) ) + { + xFactory = createSingleFactory( reinterpret_cast< lang::XMultiServiceFactory * >( pServiceManager ), + svx::FindbarDispatcher::getImplementationName_Static(), + svx::FindbarDispatcher_createInstance, + svx::FindbarDispatcher::getSupportedServiceNames_Static() ); + } + else if( ::unogallery::GalleryThemeProvider_getImplementationName().equalsAscii( pImplName ) ) + { + xFactory = ::cppu::createSingleFactory( reinterpret_cast< lang::XMultiServiceFactory * >( pServiceManager ), + ::unogallery::GalleryThemeProvider_getImplementationName(), + ::unogallery::GalleryThemeProvider_createInstance, + ::unogallery::GalleryThemeProvider_getSupportedServiceNames() ); + } + else if( drawinglayer::primitive2d::PrimitiveFactory2D::getImplementationName_Static().equalsAscii( pImplName ) ) + { + // XPrimitiveFactory2D + xFactory = ::cppu::createSingleFactory( reinterpret_cast< lang::XMultiServiceFactory * >( pServiceManager ), + drawinglayer::primitive2d::PrimitiveFactory2D::getImplementationName_Static(), + drawinglayer::primitive2d::XPrimitiveFactory2DProvider_createInstance, + drawinglayer::primitive2d::PrimitiveFactory2D::getSupportedServiceNames_Static() ); + } + else if( ::svx::SvXMLGraphicImportHelper_getImplementationName().equalsAscii( pImplName ) ) + { + xFactory = ::cppu::createSingleFactory( + reinterpret_cast< lang::XMultiServiceFactory * >( pServiceManager ), + ::svx::SvXMLGraphicImportHelper_getImplementationName(), + ::svx::SvXMLGraphicImportHelper_createInstance, + ::svx::SvXMLGraphicImportHelper_getSupportedServiceNames() ); + } + else if( ::svx::SvXMLGraphicExportHelper_getImplementationName().equalsAscii( pImplName ) ) + { + xFactory = ::cppu::createSingleFactory( + reinterpret_cast< lang::XMultiServiceFactory * >( pServiceManager ), + ::svx::SvXMLGraphicExportHelper_getImplementationName(), + ::svx::SvXMLGraphicExportHelper_createInstance, + ::svx::SvXMLGraphicExportHelper_getSupportedServiceNames() ); + } + else if (::svx::sidebar::PanelFactory::getImplementationName().equalsAscii(pImplName)) + { + xFactory = ::cppu::createSingleFactory( + reinterpret_cast<lang::XMultiServiceFactory*>(pServiceManager), + ::svx::sidebar::PanelFactory::getImplementationName(), + ::svx::sidebar::PanelFactory::createInstance, + ::svx::sidebar::PanelFactory::getSupportedServiceNames()); + } + + if( xFactory.is()) + { + xFactory->acquire(); + pRet = xFactory.get(); + } + } + + return pRet; +} + } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |