diff options
Diffstat (limited to 'svx/source/sdr/primitive2d/primitivefactory2d.cxx')
-rw-r--r-- | svx/source/sdr/primitive2d/primitivefactory2d.cxx | 71 |
1 files changed, 47 insertions, 24 deletions
diff --git a/svx/source/sdr/primitive2d/primitivefactory2d.cxx b/svx/source/sdr/primitive2d/primitivefactory2d.cxx index d04e46d9a5a5..e549d79b3565 100644 --- a/svx/source/sdr/primitive2d/primitivefactory2d.cxx +++ b/svx/source/sdr/primitive2d/primitivefactory2d.cxx @@ -17,29 +17,43 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ -#include <com/sun/star/graphic/XPrimitiveFactory2D.hpp> +#include <svx/sdr/primitive2d/primitiveFactory2d.hxx> #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; +////////////////////////////////////////////////////////////////////////////// -namespace { +using namespace com::sun::star; -typedef cppu::WeakComponentImplHelper1< graphic::XPrimitiveFactory2D > PrimitiveFactory2DImplBase; +////////////////////////////////////////////////////////////////////////////// +// UNO API helper methods -// base class for C++ implementation of com::sun::star::graphic::XPrimitiveFactory2D -class PrimitiveFactory2D: protected comphelper::OBaseMutex, public PrimitiveFactory2DImplBase +namespace drawinglayer { -public: - PrimitiveFactory2D(): PrimitiveFactory2DImplBase(m_aMutex) {} + 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 - // 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); -}; +////////////////////////////////////////////////////////////////////////////// +// UNO API helper methods + +namespace drawinglayer +{ + namespace primitive2d + { + PrimitiveFactory2D::PrimitiveFactory2D() + : PrimitiveFactory2DImplBase(m_aMutex) + { + } Primitive2DSequence SAL_CALL PrimitiveFactory2D::createPrimitivesFromXShape( const uno::Reference< drawing::XShape >& xShape, @@ -82,18 +96,27 @@ public: 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 ); -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(); -} + if(!aSeq.getLength()) + { + aSeq.realloc(1L); + aSeq[0] = "com.sun.star.graphic.PrimitiveFactory2D"; + } + + return aSeq; + } + } // end of namespace primitive2d +} // end of namespace drawinglayer /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |