diff options
-rw-r--r-- | svx/inc/sidebar/PanelFactory.hxx | 68 | ||||
-rw-r--r-- | svx/source/gallery2/GalleryControl.cxx | 1 | ||||
-rw-r--r-- | svx/source/sidebar/PanelFactory.cxx | 76 | ||||
-rw-r--r-- | svx/source/unodraw/unoctabl.cxx | 10 | ||||
-rw-r--r-- | svx/util/svx.component | 3 |
5 files changed, 42 insertions, 116 deletions
diff --git a/svx/inc/sidebar/PanelFactory.hxx b/svx/inc/sidebar/PanelFactory.hxx deleted file mode 100644 index 7dcfffe69d38..000000000000 --- a/svx/inc/sidebar/PanelFactory.hxx +++ /dev/null @@ -1,68 +0,0 @@ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ -#ifndef INCLUDED_SVX_INC_SIDEBAR_PANELFACTORY_HXX -#define INCLUDED_SVX_INC_SIDEBAR_PANELFACTORY_HXX - -#include <cppuhelper/compbase1.hxx> -#include <cppuhelper/basemutex.hxx> - -#include <com/sun/star/ui/XUIElementFactory.hpp> - -#include <boost/noncopyable.hpp> - -namespace cssu = ::com::sun::star::uno; - - -namespace svx { namespace sidebar { - -namespace -{ - typedef ::cppu::WeakComponentImplHelper1 < - css::ui::XUIElementFactory - > PanelFactoryInterfaceBase; -} - - -class PanelFactory - : private ::boost::noncopyable, - private ::cppu::BaseMutex, - public PanelFactoryInterfaceBase -{ -public: - static ::rtl::OUString SAL_CALL getImplementationName (void); - static cssu::Reference<cssu::XInterface> SAL_CALL createInstance ( - const cssu::Reference<css::lang::XMultiServiceFactory>& rxFactory); - static cssu::Sequence<rtl::OUString> SAL_CALL getSupportedServiceNames (void); - - PanelFactory (void); - virtual ~PanelFactory (void); - - // XUIElementFactory - cssu::Reference<css::ui::XUIElement> SAL_CALL createUIElement ( - const ::rtl::OUString& rsResourceURL, - const ::cssu::Sequence<css::beans::PropertyValue>& rArguments) - throw( - css::container::NoSuchElementException, - css::lang::IllegalArgumentException, - cssu::RuntimeException); -}; - - -} } // end of namespace svx::sidebar - -#endif diff --git a/svx/source/gallery2/GalleryControl.cxx b/svx/source/gallery2/GalleryControl.cxx index 3806bcb456d8..18b1d3875e72 100644 --- a/svx/source/gallery2/GalleryControl.cxx +++ b/svx/source/gallery2/GalleryControl.cxx @@ -15,7 +15,6 @@ * except in compliance with the License. You may obtain a copy of * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ -#include "sidebar/PanelFactory.hxx" #include "GalleryControl.hxx" diff --git a/svx/source/sidebar/PanelFactory.cxx b/svx/source/sidebar/PanelFactory.cxx index 693c00f9a02e..9942faf15491 100644 --- a/svx/source/sidebar/PanelFactory.cxx +++ b/svx/source/sidebar/PanelFactory.cxx @@ -15,7 +15,6 @@ * except in compliance with the License. You may obtain a copy of * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ -#include "sidebar/PanelFactory.hxx" #include "text/TextPropertyPanel.hxx" #include "paragraph/ParaPropertyPanel.hxx" @@ -37,53 +36,48 @@ #include <vcl/window.hxx> #include <rtl/ref.hxx> #include <comphelper/namedvaluecollection.hxx> +#include <cppuhelper/basemutex.hxx> +#include <cppuhelper/compbase1.hxx> #include <com/sun/star/ui/XSidebar.hpp> +#include <com/sun/star/ui/XUIElementFactory.hpp> #include <boost/bind.hpp> +#include <boost/noncopyable.hpp> - +namespace cssu = ::com::sun::star::uno; using namespace css; using namespace cssu; -using ::rtl::OUString; +using namespace svx::sidebar; -namespace svx { namespace sidebar { +namespace { +/* Why this is not used ? Doesn't it need to inherit from XServiceInfo ? #define IMPLEMENTATION_NAME "org.apache.openoffice.comp.svx.sidebar.PanelFactory" #define SERVICE_NAME "com.sun.star.ui.UIElementFactory" +*/ +typedef ::cppu::WeakComponentImplHelper1< css::ui::XUIElementFactory > + PanelFactoryInterfaceBase; -::rtl::OUString SAL_CALL PanelFactory::getImplementationName (void) -{ - return OUString(IMPLEMENTATION_NAME); -} - - - - -cssu::Reference<cssu::XInterface> SAL_CALL PanelFactory::createInstance ( - const uno::Reference<lang::XMultiServiceFactory>& rxFactory) -{ - (void)rxFactory; - - ::rtl::Reference<PanelFactory> pPanelFactory (new PanelFactory()); - cssu::Reference<cssu::XInterface> xService (static_cast<XWeak*>(pPanelFactory.get()), cssu::UNO_QUERY); - return xService; -} - - - - -cssu::Sequence<OUString> SAL_CALL PanelFactory::getSupportedServiceNames (void) +class PanelFactory + : private ::boost::noncopyable, + private ::cppu::BaseMutex, + public PanelFactoryInterfaceBase { - cssu::Sequence<OUString> aServiceNames (1); - aServiceNames[0] = SERVICE_NAME; - return aServiceNames; - -} - - - +public: + PanelFactory (void); + virtual ~PanelFactory (void); + + // XUIElementFactory + cssu::Reference<css::ui::XUIElement> SAL_CALL createUIElement ( + const ::rtl::OUString& rsResourceURL, + const ::cssu::Sequence<css::beans::PropertyValue>& rArguments) + throw( + css::container::NoSuchElementException, + css::lang::IllegalArgumentException, + cssu::RuntimeException); +}; PanelFactory::PanelFactory (void) : PanelFactoryInterfaceBase(m_aMutex) @@ -208,6 +202,16 @@ Reference<ui::XUIElement> SAL_CALL PanelFactory::createUIElement ( return Reference<ui::XUIElement>(); } -} } // end of namespace svx::sidebar +} -// eof +extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL +org_apache_openoffice_comp_svx_sidebar_PanelFactory_implementation_getFactory( + SAL_UNUSED_PARAMETER css::uno::XComponentContext *, + uno_Sequence * arguments) +{ + assert(arguments != 0 && arguments->nElements == 0); (void) arguments; + css::uno::Reference<css::uno::XInterface> x( + static_cast<cppu::OWeakObject *>(new PanelFactory)); + x->acquire(); + return x.get(); +} diff --git a/svx/source/unodraw/unoctabl.cxx b/svx/source/unodraw/unoctabl.cxx index 6963cf9b52bc..085b36f87060 100644 --- a/svx/source/unodraw/unoctabl.cxx +++ b/svx/source/unodraw/unoctabl.cxx @@ -230,8 +230,6 @@ uno::Reference< uno::XInterface > SAL_CALL create_EnhancedCustomShapeEngine( con #include "osl/diagnose.h" #include "cppuhelper/factory.hxx" #include <svx/sdr/primitive2d/primitiveFactory2d.hxx> -#include "sidebar/PanelFactory.hxx" - extern "C" { @@ -366,14 +364,6 @@ SAL_DLLPUBLIC_EXPORT void * SAL_CALL svx_component_getFactory ( ::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()) { diff --git a/svx/util/svx.component b/svx/util/svx.component index e5054eb0130c..f087dcb833df 100644 --- a/svx/util/svx.component +++ b/svx/util/svx.component @@ -73,7 +73,8 @@ <implementation name="com.sun.star.svx.ExitFindbarToolboxController"> <service name="com.sun.star.frame.ToolbarController"/> </implementation> - <implementation name="org.apache.openoffice.comp.svx.sidebar.PanelFactory"> + <implementation name="org.apache.openoffice.comp.svx.sidebar.PanelFactory" + constructor="org_apache_openoffice_comp_svx_sidebar_PanelFactory_implementation_getFactory"> <service name="com.sun.star.ui.UIElementFactory"/> </implementation> </component> |