summaryrefslogtreecommitdiff
path: root/svx/source/sdr/primitive2d/primitivefactory2d.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'svx/source/sdr/primitive2d/primitivefactory2d.cxx')
-rw-r--r--svx/source/sdr/primitive2d/primitivefactory2d.cxx71
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: */