summaryrefslogtreecommitdiff
path: root/editeng/source/editeng/eerdll.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'editeng/source/editeng/eerdll.cxx')
-rw-r--r--editeng/source/editeng/eerdll.cxx34
1 files changed, 24 insertions, 10 deletions
diff --git a/editeng/source/editeng/eerdll.cxx b/editeng/source/editeng/eerdll.cxx
index 09b990930d82..a73d7eb3d7b0 100644
--- a/editeng/source/editeng/eerdll.cxx
+++ b/editeng/source/editeng/eerdll.cxx
@@ -85,11 +85,8 @@ EditDLL& EditDLL::Get()
}
GlobalEditData::GlobalEditData() :
- ppDefItems(nullptr),
- mpVirDev(VclPtr<VirtualDevice>::Create())
-{
- mpVirDev->SetMapMode(MapUnit::MapTwip);
-}
+ ppDefItems(nullptr)
+{ }
GlobalEditData::~GlobalEditData()
{
@@ -197,11 +194,6 @@ uno::Reference< linguistic2::XLanguageGuessing > const & GlobalEditData::GetLang
return xLanguageGuesser;
}
-VclPtr<VirtualDevice> GlobalEditData::GetStdVirtualDevice()
-{
- return mpVirDev;
-}
-
EditResId::EditResId(sal_uInt16 nId)
: ResId(nId, *EditDLL::GetResMgr())
{
@@ -225,4 +217,26 @@ ResMgr* EditDLL::GetResMgr()
return pResMgr;
}
+
+editeng::SharedVclResources::SharedVclResources()
+ : m_pVirDev(VclPtr<VirtualDevice>::Create())
+{
+ m_pVirDev->SetMapMode(MapUnit::MapTwip);
+}
+
+editeng::SharedVclResources::~SharedVclResources()
+ { m_pVirDev.disposeAndClear(); }
+
+VclPtr<VirtualDevice> editeng::SharedVclResources::GetVirtualDevice()
+ { return m_pVirDev; }
+
+std::shared_ptr<editeng::SharedVclResources> EditDLL::GetSharedVclResources()
+{
+ SolarMutexGuard g;
+ auto pLocked(pSharedVcl.lock());
+ if(!pLocked)
+ pSharedVcl = pLocked = std::shared_ptr<editeng::SharedVclResources>(new editeng::SharedVclResources());
+ return pLocked;
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */