summaryrefslogtreecommitdiffstats
path: root/include/svx/svdobj.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'include/svx/svdobj.hxx')
-rw-r--r--include/svx/svdobj.hxx43
1 files changed, 21 insertions, 22 deletions
diff --git a/include/svx/svdobj.hxx b/include/svx/svdobj.hxx
index a762127bdc79..9d913bc71cb4 100644
--- a/include/svx/svdobj.hxx
+++ b/include/svx/svdobj.hxx
@@ -20,7 +20,6 @@
#ifndef INCLUDED_SVX_SVDOBJ_HXX
#define INCLUDED_SVX_SVDOBJ_HXX
-#include <typeinfo>
#include <com/sun/star/uno/Any.hxx>
#include <cppuhelper/weakref.hxx>
#include <rtl/ustring.hxx>
@@ -35,6 +34,8 @@
#include <tools/weakbase.hxx>
#include <tools/mapunit.hxx>
#include <tools/gen.hxx>
+#include <typeinfo>
+#include <functional>
class SfxBroadcaster;
class Pointer;
@@ -972,6 +973,18 @@ private:
bool mbDoNotInsertIntoPageAutomatically;
};
+struct SdrObjCreatorParams
+{
+ sal_uInt32 nInventor;
+ sal_uInt16 nObjIdentifier;
+};
+struct SdrObjUserDataCreatorParams
+{
+ sal_uInt32 nInventor;
+ sal_uInt16 nObjIdentifier;
+ SdrObject* pObject;
+};
+
/**
* Whoever creates his own objects must set a link in the SdrObjFactory class.
* The handler must have the following signature:
@@ -983,32 +996,18 @@ private:
class SVX_DLLPUBLIC SdrObjFactory
{
public:
- sal_uInt32 nInventor;
- sal_uInt16 nIdentifier;
-
- // for MakeNewObj():
- SdrPage* pPage;
- SdrModel* pModel;
- SdrObject* pNewObj;
-
- // for MakeNewObjUserData():
- SdrObject* pObj;
- SdrObjUserData* pNewData;
+ static SdrObject* MakeNewObject(sal_uInt32 nInventor, sal_uInt16 nObjIdentifier, SdrPage* pPage, SdrModel* pModel=nullptr);
+ static SdrObject* MakeNewObject(sal_uInt32 nInventor, sal_uInt16 nObjIdentifier, const Rectangle& rSnapRect, SdrPage* pPage);
+ static void InsertMakeObjectHdl(Link<SdrObjCreatorParams, SdrObject*> const & rLink);
+ static void RemoveMakeObjectHdl(Link<SdrObjCreatorParams, SdrObject*> const & rLink);
+ static void InsertMakeUserDataHdl(Link<SdrObjUserDataCreatorParams, SdrObjUserData*> const & rLink);
+ static void RemoveMakeUserDataHdl(Link<SdrObjUserDataCreatorParams, SdrObjUserData*> const & rLink);
private:
-
static SVX_DLLPRIVATE SdrObject* CreateObjectFromFactory(
sal_uInt32 nInventor, sal_uInt16 nIdentifier, SdrPage* pPage, SdrModel* pModel );
- SVX_DLLPRIVATE SdrObjFactory(sal_uInt32 nInvent, sal_uInt16 nIdent, SdrPage* pNewPage, SdrModel* pNewModel);
-
-public:
- static SdrObject* MakeNewObject(sal_uInt32 nInvent, sal_uInt16 nIdent, SdrPage* pPage, SdrModel* pModel=nullptr);
- static SdrObject* MakeNewObject( sal_uInt32 nInventor, sal_uInt16 nIdentifier, const Rectangle& rSnapRect, SdrPage* pPage );
- static void InsertMakeObjectHdl(const Link<SdrObjFactory*,void>& rLink);
- static void RemoveMakeObjectHdl(const Link<SdrObjFactory*,void>& rLink);
- static void InsertMakeUserDataHdl(const Link<SdrObjFactory*,void>& rLink);
- static void RemoveMakeUserDataHdl(const Link<SdrObjFactory*,void>& rLink);
+ SdrObjFactory() = delete;
};
typedef tools::WeakReference< SdrObject > SdrObjectWeakRef;