diff options
Diffstat (limited to 'svx/source/sdr/primitive2d')
-rw-r--r-- | svx/source/sdr/primitive2d/primitivefactory2d.cxx | 71 |
1 files changed, 24 insertions, 47 deletions
diff --git a/svx/source/sdr/primitive2d/primitivefactory2d.cxx b/svx/source/sdr/primitive2d/primitivefactory2d.cxx index e549d79b3565..d04e46d9a5a5 100644 --- a/svx/source/sdr/primitive2d/primitivefactory2d.cxx +++ b/svx/source/sdr/primitive2d/primitivefactory2d.cxx @@ -17,43 +17,29 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ -#include <svx/sdr/primitive2d/primitiveFactory2d.hxx> +#include <com/sun/star/graphic/XPrimitiveFactory2D.hpp> #include <drawinglayer/primitive2d/baseprimitive2d.hxx> #include <svx/svdobj.hxx> #include <svx/svdpage.hxx> #include <svx/unoapi.hxx> #include <svx/sdr/contact/viewcontact.hxx> -////////////////////////////////////////////////////////////////////////////// - using namespace com::sun::star; -////////////////////////////////////////////////////////////////////////////// -// UNO API helper methods - -namespace drawinglayer -{ - namespace primitive2d - { - uno::Reference< uno::XInterface > SAL_CALL XPrimitiveFactory2DProvider_createInstance( - const uno::Reference< lang::XMultiServiceFactory >& /*rSMgr*/) throw( uno::Exception ) - { - return *(new PrimitiveFactory2D()); - } - } // end of namespace primitive2d -} // end of namespace drawinglayer +namespace { -////////////////////////////////////////////////////////////////////////////// -// UNO API helper methods +typedef cppu::WeakComponentImplHelper1< graphic::XPrimitiveFactory2D > PrimitiveFactory2DImplBase; -namespace drawinglayer +// base class for C++ implementation of com::sun::star::graphic::XPrimitiveFactory2D +class PrimitiveFactory2D: protected comphelper::OBaseMutex, public PrimitiveFactory2DImplBase { - namespace primitive2d - { - PrimitiveFactory2D::PrimitiveFactory2D() - : PrimitiveFactory2DImplBase(m_aMutex) - { - } +public: + PrimitiveFactory2D(): PrimitiveFactory2DImplBase(m_aMutex) {} + + // Methods from XPrimitiveFactory2D + virtual uno::Sequence< uno::Reference< graphic::XPrimitive2D > > SAL_CALL createPrimitivesFromXShape( const uno::Reference< drawing::XShape >& xShape, const uno::Sequence< beans::PropertyValue >& aParms ) throw (uno::RuntimeException); + virtual uno::Sequence< uno::Reference< graphic::XPrimitive2D > > SAL_CALL createPrimitivesFromXDrawPage( const uno::Reference< drawing::XDrawPage >& xDrawPage, const uno::Sequence< beans::PropertyValue >& aParms ) throw (uno::RuntimeException); +}; Primitive2DSequence SAL_CALL PrimitiveFactory2D::createPrimitivesFromXShape( const uno::Reference< drawing::XShape >& xShape, @@ -96,27 +82,18 @@ namespace drawinglayer return aRetval; } - OUString PrimitiveFactory2D::getImplementationName_Static() - { - static OUString aRetval("com.sun.star.comp.graphic.PrimitiveFactory2D"); - return aRetval; - } - - uno::Sequence< OUString > PrimitiveFactory2D::getSupportedServiceNames_Static() - { - static uno::Sequence< OUString > aSeq; - osl::Mutex aMutex; - osl::MutexGuard aGuard( aMutex ); +} - if(!aSeq.getLength()) - { - aSeq.realloc(1L); - aSeq[0] = "com.sun.star.graphic.PrimitiveFactory2D"; - } - - return aSeq; - } - } // end of namespace primitive2d -} // end of namespace drawinglayer +extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL +com_sun_star_comp_graphic_PrimitiveFactory2D_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 PrimitiveFactory2D)); + x->acquire(); + return x.get(); +} /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |