[Libreoffice-commits] core.git: Branch 'feature/vclref' - include/svx starmath/inc starmath/source svx/inc svx/source

Michael Meeks michael.meeks at collabora.com
Thu Mar 19 11:00:04 PDT 2015


 include/svx/dialcontrol.hxx                              |    6 
 include/svx/dlgctrl.hxx                                  |    4 
 include/svx/float3d.hxx                                  |    2 
 include/svx/numvset.hxx                                  |    2 
 starmath/inc/dialog.hxx                                  |    4 
 starmath/inc/smmod.hxx                                   |    2 
 starmath/inc/visitors.hxx                                |    2 
 starmath/source/smmod.cxx                                |    2 
 svx/inc/sdr/overlay/overlaymanagerbuffered.hxx           |    4 
 svx/source/dialog/dlgctrl.cxx                            |    2 
 svx/source/dialog/fntctrl.cxx                            |    6 
 svx/source/dialog/frmsel.cxx                             |   31 ++--
 svx/source/dialog/svxbmpnumvalueset.cxx                  |    2 
 svx/source/engine3d/float3d.cxx                          |    2 
 svx/source/form/fmobj.cxx                                |    4 
 svx/source/inc/fmobj.hxx                                 |    2 
 svx/source/inc/frmselimpl.hxx                            |    2 
 svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx |    6 
 svx/source/sdr/overlay/overlaymanagerbuffered.cxx        |   98 +++++++--------
 svx/source/sidebar/line/LineWidthValueSet.cxx            |    5 
 svx/source/sidebar/line/LineWidthValueSet.hxx            |    2 
 svx/source/svdraw/svdfmtf.cxx                            |   46 +++----
 svx/source/svdraw/svdfmtf.hxx                            |   36 ++---
 23 files changed, 136 insertions(+), 136 deletions(-)

New commits:
commit 4f56dc7e40baa53f31a454e28a1eae5a7ab3dde2
Author: Michael Meeks <michael.meeks at collabora.com>
Date:   Thu Mar 19 17:47:31 2015 +0000

    Move OutputDevice members to VclPtr: starmath, svx.
    
    Change-Id: I1a5174334f41bc319e0806b9d324be64ba6d0135

diff --git a/include/svx/dialcontrol.hxx b/include/svx/dialcontrol.hxx
index 7519a2c..e8d8a88 100644
--- a/include/svx/dialcontrol.hxx
+++ b/include/svx/dialcontrol.hxx
@@ -126,9 +126,9 @@ public:
 protected:
     struct DialControl_Impl
     {
-        ::boost::scoped_ptr<DialControlBmp>      mpBmpEnabled;
-        ::boost::scoped_ptr<DialControlBmp>      mpBmpDisabled;
-        ::boost::scoped_ptr<DialControlBmp>      mpBmpBuffered;
+        ScopedVclPtr<DialControlBmp> mpBmpEnabled;
+        ScopedVclPtr<DialControlBmp> mpBmpDisabled;
+        ScopedVclPtr<DialControlBmp> mpBmpBuffered;
         Link                maModifyHdl;
         VclPtr<NumericField>       mpLinkField;
         sal_Int32           mnLinkedFieldValueMultiplyer;
diff --git a/include/svx/dlgctrl.hxx b/include/svx/dlgctrl.hxx
index e18d4d6..a3f237f 100644
--- a/include/svx/dlgctrl.hxx
+++ b/include/svx/dlgctrl.hxx
@@ -358,8 +358,8 @@ class SdrModel;
 class SvxPreviewBase : public Control
 {
 private:
-    SdrModel*                                       mpModel;
-    VirtualDevice*                                  mpBufferDevice;
+    SdrModel*             mpModel;
+    VclPtr<VirtualDevice> mpBufferDevice;
 
 protected:
     void InitSettings(bool bForeground, bool bBackground);
diff --git a/include/svx/float3d.hxx b/include/svx/float3d.hxx
index f7912c7..5b47add 100644
--- a/include/svx/float3d.hxx
+++ b/include/svx/float3d.hxx
@@ -191,7 +191,7 @@ private:
 
     // Model, Page, View etc. for favourites
     FmFormModel*        pModel;
-    VirtualDevice*      pVDev;
+    VclPtr<VirtualDevice> pVDev;
     E3dView*            p3DView;
 
     SfxBindings*                pBindings;
diff --git a/include/svx/numvset.hxx b/include/svx/numvset.hxx
index 15161dc..7bd523e 100644
--- a/include/svx/numvset.hxx
+++ b/include/svx/numvset.hxx
@@ -52,7 +52,7 @@ class SVX_DLLPUBLIC SvxNumValueSet : public ValueSet
     sal_uInt16      nPageType;
     bool            bHTMLMode;
     Rectangle       aOrgRect;
-    VirtualDevice*  pVDev;
+    VclPtr<VirtualDevice> pVDev;
 
     com::sun::star::uno::Reference<com::sun::star::text::XNumberingFormatter> xFormatter;
     com::sun::star::lang::Locale aLocale;
diff --git a/starmath/inc/dialog.hxx b/starmath/inc/dialog.hxx
index 776000a..3865c5b 100644
--- a/starmath/inc/dialog.hxx
+++ b/starmath/inc/dialog.hxx
@@ -153,7 +153,7 @@ class SmFontTypeDialog : public ModalDialog
     VclPtr<MenuButton> m_pMenuButton;
     VclPtr<PushButton> m_pDefaultButton;
 
-    OutputDevice       *pFontListDev;
+    VclPtr<OutputDevice> pFontListDev;
 
     DECL_LINK(MenuSelectHdl, Menu *);
     DECL_LINK(DefaultButtonClickHdl, Button *);
@@ -358,7 +358,7 @@ class SmSymbolDialog : public ModalDialog
     OUString       aSymbolSetName;
     SymbolPtrVec_t      aSymbolSet;
 
-    OutputDevice       *pFontListDev;
+    VclPtr<OutputDevice> pFontListDev;
 
     DECL_LINK(SymbolSetChangeHdl, void*);
     DECL_LINK(SymbolChangeHdl, void*);
diff --git a/starmath/inc/smmod.hxx b/starmath/inc/smmod.hxx
index a49d8ca..a2b57ec 100644
--- a/starmath/inc/smmod.hxx
+++ b/starmath/inc/smmod.hxx
@@ -90,7 +90,7 @@ class SmModule : public SfxModule, utl::ConfigurationListener
     SmConfig                *pConfig;
     SmLocalizedSymbolData   *pLocSymbolData;
     SvtSysLocale            *pSysLocale;
-    VirtualDevice           *pVirtualDev;
+    VclPtr<VirtualDevice>    pVirtualDev;
 
     void _CreateSysLocale() const;
     void _CreateVirtualDev() const;
diff --git a/starmath/inc/visitors.hxx b/starmath/inc/visitors.hxx
index cdb6595..cbb8ec6 100644
--- a/starmath/inc/visitors.hxx
+++ b/starmath/inc/visitors.hxx
@@ -144,7 +144,7 @@ public:
     }
 private:
     SmCaretLine line;
-    OutputDevice *pDev;
+    VclPtr<OutputDevice> pDev;
     SmCaretPos pos;
 protected:
     /** Default method for computing lines for pNodes */
diff --git a/starmath/source/smmod.cxx b/starmath/source/smmod.cxx
index 8f0ef42..be1c8e1 100644
--- a/starmath/source/smmod.cxx
+++ b/starmath/source/smmod.cxx
@@ -183,7 +183,7 @@ SmModule::~SmModule()
     delete pColorConfig;
     delete pLocSymbolData;
     delete pSysLocale;
-    delete pVirtualDev;
+    pVirtualDev.disposeAndClear();
 }
 
 void SmModule::_CreateSysLocale() const
diff --git a/svx/inc/sdr/overlay/overlaymanagerbuffered.hxx b/svx/inc/sdr/overlay/overlaymanagerbuffered.hxx
index 7379597..523efdc 100644
--- a/svx/inc/sdr/overlay/overlaymanagerbuffered.hxx
+++ b/svx/inc/sdr/overlay/overlaymanagerbuffered.hxx
@@ -35,11 +35,11 @@ namespace sdr
         protected:
             // The VirtualDevice for draw window content buffering, this
             // is the view content without overlay
-            VirtualDevice                           maBufferDevice;
+            ScopedVclPtr<VirtualDevice>             mpBufferDevice;
 
             // #i73602# The VirtualDevice for OverlayPaint buffering. This
             // is an extra device to avoid flickering of overlay paints
-            VirtualDevice                           maOutputBufferDevice;
+            ScopedVclPtr<VirtualDevice>             mpOutputBufferDevice;
 
             // Timer for buffering
             Idle                                    maBufferIdle;
diff --git a/svx/source/dialog/dlgctrl.cxx b/svx/source/dialog/dlgctrl.cxx
index 875bfac..9e697e7 100644
--- a/svx/source/dialog/dlgctrl.cxx
+++ b/svx/source/dialog/dlgctrl.cxx
@@ -1851,7 +1851,7 @@ SvxPreviewBase::~SvxPreviewBase()
 void SvxPreviewBase::dispose()
 {
     delete mpModel;
-    delete mpBufferDevice;
+    mpBufferDevice.disposeAndClear();
     Control::dispose();
 }
 
diff --git a/svx/source/dialog/fntctrl.cxx b/svx/source/dialog/fntctrl.cxx
index ca01573..e73f74b 100644
--- a/svx/source/dialog/fntctrl.cxx
+++ b/svx/source/dialog/fntctrl.cxx
@@ -128,8 +128,8 @@ class FontPrevWin_Impl
     friend class SvxFontPrevWindow;
 
     SvxFont                         aFont;
-    Printer*                        pPrinter;
-    bool                        bDelPrinter;
+    VclPtr<Printer>                 pPrinter;
+    bool                            bDelPrinter;
 
     Reference < XBreakIterator >    xBreak;
     std::vector<sal_uIntPtr>        aTextWidth;
@@ -183,7 +183,7 @@ public:
         delete pColor;
         delete pBackColor;
         if( bDelPrinter )
-            delete pPrinter;
+            pPrinter.disposeAndClear();
     }
 
     void                CheckScript();
diff --git a/svx/source/dialog/frmsel.cxx b/svx/source/dialog/frmsel.cxx
index 46f04c1..4435309 100644
--- a/svx/source/dialog/frmsel.cxx
+++ b/svx/source/dialog/frmsel.cxx
@@ -209,6 +209,7 @@ FrameBorderType FrameBorder::GetKeyboardNeighbor( sal_uInt16 nKeyCode ) const
 FrameSelectorImpl::FrameSelectorImpl( FrameSelector& rFrameSel ) :
     Resource( SVX_RES( RID_SVXSTR_BORDER_CONTROL ) ),
     mrFrameSel( rFrameSel ),
+    mpVirDev( new VirtualDevice() ),
     maILArrows( 16 ),
     maLeft( FRAMEBORDER_LEFT ),
     maRight( FRAMEBORDER_RIGHT ),
@@ -346,7 +347,7 @@ void FrameSelectorImpl::InitGlobalGeometry()
 
     /*  The final size of the usable area. */
     mnCtrlSize = 2 * nBetwBordersSize + nFixedSize;
-    maVirDev.SetOutputSizePixel( Size( mnCtrlSize, mnCtrlSize ) );
+    mpVirDev->SetOutputSizePixel( Size( mnCtrlSize, mnCtrlSize ) );
 
     /*  Center the virtual device in the control. */
     maVirDevPos = Point( (aCtrlSize.Width() - mnCtrlSize) / 2, (aCtrlSize.Height() - mnCtrlSize) / 2 );
@@ -518,14 +519,14 @@ FrameBorder& FrameSelectorImpl::GetBorderAccess( FrameBorderType eBorder )
 void FrameSelectorImpl::DrawBackground()
 {
     // clear the area
-    maVirDev.SetLineColor();
-    maVirDev.SetFillColor( maBackCol );
-    maVirDev.DrawRect( Rectangle( Point( 0, 0 ), maVirDev.GetOutputSizePixel() ) );
+    mpVirDev->SetLineColor();
+    mpVirDev->SetFillColor( maBackCol );
+    mpVirDev->DrawRect( Rectangle( Point( 0, 0 ), mpVirDev->GetOutputSizePixel() ) );
 
     // draw the inner gray (or whatever color) rectangle
-    maVirDev.SetLineColor();
-    maVirDev.SetFillColor( maMarkCol );
-    maVirDev.DrawRect( Rectangle(
+    mpVirDev->SetLineColor();
+    mpVirDev->SetFillColor( maMarkCol );
+    mpVirDev->DrawRect( Rectangle(
         mnLine1 - mnFocusOffs, mnLine1 - mnFocusOffs, mnLine3 + mnFocusOffs, mnLine3 + mnFocusOffs ) );
 
     // draw the white space for enabled frame borders
@@ -533,9 +534,9 @@ void FrameSelectorImpl::DrawBackground()
     for( FrameBorderCIter aIt( maEnabBorders ); aIt.Is(); ++aIt )
         (*aIt)->MergeFocusToPolyPolygon( aPPoly );
     aPPoly.Optimize( POLY_OPTIMIZE_CLOSE );
-    maVirDev.SetLineColor( maBackCol );
-    maVirDev.SetFillColor( maBackCol );
-    maVirDev.DrawPolyPolygon( aPPoly );
+    mpVirDev->SetLineColor( maBackCol );
+    mpVirDev->SetFillColor( maBackCol );
+    mpVirDev->DrawPolyPolygon( aPPoly );
 }
 
 void FrameSelectorImpl::DrawArrows( const FrameBorder& rBorder )
@@ -588,8 +589,8 @@ void FrameSelectorImpl::DrawArrows( const FrameBorder& rBorder )
 
     // Arrow or marker? Do not draw arrows into disabled control.
     sal_uInt16 nSelectAdd = (mrFrameSel.IsEnabled() && rBorder.IsSelected()) ? 0 : 8;
-    maVirDev.DrawImage( aPos1, maILArrows.GetImage( nImgId1 + nSelectAdd ) );
-    maVirDev.DrawImage( aPos2, maILArrows.GetImage( nImgId2 + nSelectAdd ) );
+    mpVirDev->DrawImage( aPos1, maILArrows.GetImage( nImgId1 + nSelectAdd ) );
+    mpVirDev->DrawImage( aPos2, maILArrows.GetImage( nImgId2 + nSelectAdd ) );
 }
 
 void FrameSelectorImpl::DrawAllArrows()
@@ -657,7 +658,7 @@ void FrameSelectorImpl::DrawAllFrameBorders()
             maArray.SetCellStyleDiag( nCol, nRow, maTLBR.GetUIStyle(), maBLTR.GetUIStyle() );
 
     // Let the helper array draw itself
-    maArray.DrawArray( maVirDev );
+    maArray.DrawArray( *mpVirDev.get() );
 }
 
 void FrameSelectorImpl::DrawVirtualDevice()
@@ -672,7 +673,7 @@ void FrameSelectorImpl::CopyVirDevToControl()
 {
     if( mbFullRepaint )
         DrawVirtualDevice();
-    mrFrameSel.DrawBitmap( maVirDevPos, maVirDev.GetBitmap( Point( 0, 0 ), maVirDev.GetOutputSizePixel() ) );
+    mrFrameSel.DrawBitmap( maVirDevPos, mpVirDev->GetBitmap( Point( 0, 0 ), mpVirDev->GetOutputSizePixel() ) );
 }
 
 void FrameSelectorImpl::DrawAllTrackingRects()
@@ -686,7 +687,7 @@ void FrameSelectorImpl::DrawAllTrackingRects()
     }
     else
         // no frame border selected -> draw tracking rectangle around entire control
-        aPPoly.Insert( Polygon( Rectangle( maVirDevPos, maVirDev.GetOutputSizePixel() ) ) );
+        aPPoly.Insert( Polygon( Rectangle( maVirDevPos, mpVirDev->GetOutputSizePixel() ) ) );
 
     aPPoly.Optimize( POLY_OPTIMIZE_CLOSE );
     for( sal_uInt16 nIdx = 0, nCount = aPPoly.Count(); nIdx < nCount; ++nIdx )
diff --git a/svx/source/dialog/svxbmpnumvalueset.cxx b/svx/source/dialog/svxbmpnumvalueset.cxx
index eae8067..af0a662 100644
--- a/svx/source/dialog/svxbmpnumvalueset.cxx
+++ b/svx/source/dialog/svxbmpnumvalueset.cxx
@@ -428,7 +428,7 @@ SvxNumValueSet::~SvxNumValueSet()
 
 void SvxNumValueSet::dispose()
 {
-    delete pVDev;
+    pVDev.disposeAndClear();
     ValueSet::dispose();
 }
 
diff --git a/svx/source/engine3d/float3d.cxx b/svx/source/engine3d/float3d.cxx
index 5d9ea54..5f9a170 100644
--- a/svx/source/engine3d/float3d.cxx
+++ b/svx/source/engine3d/float3d.cxx
@@ -436,7 +436,7 @@ Svx3DWin::~Svx3DWin()
 void Svx3DWin::dispose()
 {
     delete p3DView;
-    delete pVDev;
+    pVDev.disposeAndClear();
     delete pModel;
 
     delete pControllerItem;
diff --git a/svx/source/form/fmobj.cxx b/svx/source/form/fmobj.cxx
index e0b756c..0fce242 100644
--- a/svx/source/form/fmobj.cxx
+++ b/svx/source/form/fmobj.cxx
@@ -112,7 +112,7 @@ void FmFormObj::impl_checkRefDevice_nothrow( bool _force )
         return;
 
     OutputDevice* pCurrentRefDevice = pFormModel ? pFormModel->GetRefDevice() : NULL;
-    if ( ( m_pLastKnownRefDevice == pCurrentRefDevice ) && !_force )
+    if ( ( m_pLastKnownRefDevice.get() == pCurrentRefDevice ) && !_force )
         return;
 
     Reference< XControlModel > xControlModel( GetUnoControlModel() );
@@ -120,7 +120,7 @@ void FmFormObj::impl_checkRefDevice_nothrow( bool _force )
         return;
 
     m_pLastKnownRefDevice = pCurrentRefDevice;
-    if ( m_pLastKnownRefDevice == NULL )
+    if ( !m_pLastKnownRefDevice )
         return;
 
     try
diff --git a/svx/source/inc/fmobj.hxx b/svx/source/inc/fmobj.hxx
index 9629763..40625df 100644
--- a/svx/source/inc/fmobj.hxx
+++ b/svx/source/inc/fmobj.hxx
@@ -42,7 +42,7 @@ class SVX_DLLPUBLIC FmFormObj: public SdrUnoObj
     ::com::sun::star::uno::Reference< ::com::sun::star::form::XForms >                  m_xEnvironmentHistory;
     sal_Int32           m_nPos;
 
-    OutputDevice*       m_pLastKnownRefDevice;
+    VclPtr<OutputDevice>   m_pLastKnownRefDevice;
                             // the last ref device we know, as set at the model
                             // only to be used for comparison with the current ref device!
 
diff --git a/svx/source/inc/frmselimpl.hxx b/svx/source/inc/frmselimpl.hxx
index 702b2c4..51d94e1 100644
--- a/svx/source/inc/frmselimpl.hxx
+++ b/svx/source/inc/frmselimpl.hxx
@@ -97,7 +97,7 @@ struct FrameSelectorImpl : public Resource
     typedef std::vector< XAccessibleRef >               XAccessibleRefVec;
 
     FrameSelector&      mrFrameSel;     /// The control itself.
-    VirtualDevice       maVirDev;       /// For all buffered drawing operations.
+    ScopedVclPtr<VirtualDevice> mpVirDev; /// For all buffered drawing operations.
     ImageList           maILArrows;     /// Arrows in current system colors.
     Color               maBackCol;      /// Background color.
     Color               maArrowCol;     /// Selection arrow color.
diff --git a/svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx b/svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx
index 7ab6388..74d1f3e 100644
--- a/svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx
+++ b/svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx
@@ -521,7 +521,7 @@ namespace sdr { namespace contact {
         Reference< XContainer >         m_xContainer;
 
         /// the output device for which the control was created
-        const OutputDevice*             m_pOutputDeviceForWindow;
+        VclPtr<OutputDevice>            m_pOutputDeviceForWindow;
 
         /// flag indicating whether the control is currently visible
         bool                            m_bControlIsVisible;
@@ -1038,7 +1038,7 @@ namespace sdr { namespace contact {
 
         if ( m_aControl.is() )
         {
-            if ( m_pOutputDeviceForWindow == &_rDevice )
+            if ( m_pOutputDeviceForWindow.get() == const_cast<OutputDevice *>( &_rDevice ) )
                 return true;
 
             // Somebody requested a control for a new device, which means either of
@@ -1062,7 +1062,7 @@ namespace sdr { namespace contact {
         if ( !createControlForDevice( _rPageView, _rDevice, *pUnoObject, _rInitialViewTransformation, m_aZoomLevelNormalization, aControl ) )
             return false;
 
-        m_pOutputDeviceForWindow = &_rDevice;
+        m_pOutputDeviceForWindow = const_cast< OutputDevice * >( &_rDevice );
         m_aControl = aControl;
         m_xContainer.set(_rPageView.getControlContainer( _rDevice ), css::uno::UNO_QUERY);
         DBG_ASSERT( (   m_xContainer.is()                                           // either have a XControlContainer
diff --git a/svx/source/sdr/overlay/overlaymanagerbuffered.cxx b/svx/source/sdr/overlay/overlaymanagerbuffered.cxx
index 218ad26..db81a40 100644
--- a/svx/source/sdr/overlay/overlaymanagerbuffered.cxx
+++ b/svx/source/sdr/overlay/overlaymanagerbuffered.cxx
@@ -38,46 +38,46 @@ namespace sdr
     {
         void OverlayManagerBuffered::ImpPrepareBufferDevice()
         {
-            // compare size of maBufferDevice with size of visible area
-            if(maBufferDevice.GetOutputSizePixel() != getOutputDevice().GetOutputSizePixel())
+            // compare size of mpBufferDevice with size of visible area
+            if(mpBufferDevice->GetOutputSizePixel() != getOutputDevice().GetOutputSizePixel())
             {
                 // set new buffer size, copy as much content as possible (use bool parameter for vcl).
                 // Newly uncovered regions will be repainted.
-                maBufferDevice.SetOutputSizePixel(getOutputDevice().GetOutputSizePixel(), false);
+                mpBufferDevice->SetOutputSizePixel(getOutputDevice().GetOutputSizePixel(), false);
             }
 
             // compare the MapModes for zoom/scroll changes
-            if(maBufferDevice.GetMapMode() != getOutputDevice().GetMapMode())
+            if(mpBufferDevice->GetMapMode() != getOutputDevice().GetMapMode())
             {
                 const bool bZoomed(
-                    maBufferDevice.GetMapMode().GetScaleX() != getOutputDevice().GetMapMode().GetScaleX()
-                    || maBufferDevice.GetMapMode().GetScaleY() != getOutputDevice().GetMapMode().GetScaleY());
+                    mpBufferDevice->GetMapMode().GetScaleX() != getOutputDevice().GetMapMode().GetScaleX()
+                    || mpBufferDevice->GetMapMode().GetScaleY() != getOutputDevice().GetMapMode().GetScaleY());
 
                 if(!bZoomed)
                 {
-                    const Point& rOriginOld = maBufferDevice.GetMapMode().GetOrigin();
+                    const Point& rOriginOld = mpBufferDevice->GetMapMode().GetOrigin();
                     const Point& rOriginNew = getOutputDevice().GetMapMode().GetOrigin();
                     const bool bScrolled(rOriginOld != rOriginNew);
 
                     if(bScrolled)
                     {
                         // get pixel bounds
-                        const Point aOriginOldPixel(maBufferDevice.LogicToPixel(rOriginOld));
-                        const Point aOriginNewPixel(maBufferDevice.LogicToPixel(rOriginNew));
-                        const Size aOutputSizePixel(maBufferDevice.GetOutputSizePixel());
+                        const Point aOriginOldPixel(mpBufferDevice->LogicToPixel(rOriginOld));
+                        const Point aOriginNewPixel(mpBufferDevice->LogicToPixel(rOriginNew));
+                        const Size aOutputSizePixel(mpBufferDevice->GetOutputSizePixel());
 
                         // remember and switch off MapMode
-                        const bool bMapModeWasEnabled(maBufferDevice.IsMapModeEnabled());
-                        maBufferDevice.EnableMapMode(false);
+                        const bool bMapModeWasEnabled(mpBufferDevice->IsMapModeEnabled());
+                        mpBufferDevice->EnableMapMode(false);
 
                         // scroll internally buffered stuff
                         const Point aDestinationOffsetPixel(aOriginNewPixel - aOriginOldPixel);
-                        maBufferDevice.DrawOutDev(
+                        mpBufferDevice->DrawOutDev(
                             aDestinationOffsetPixel, aOutputSizePixel, // destination
                             Point(), aOutputSizePixel); // source
 
                         // restore MapMode
-                        maBufferDevice.EnableMapMode(bMapModeWasEnabled);
+                        mpBufferDevice->EnableMapMode(bMapModeWasEnabled);
 
                         // scroll remembered region, too.
                         if(!maBufferRememberedRangePixel.isEmpty())
@@ -91,13 +91,13 @@ namespace sdr
                 }
 
                 // copy new MapMode
-                maBufferDevice.SetMapMode(getOutputDevice().GetMapMode());
+                mpBufferDevice->SetMapMode(getOutputDevice().GetMapMode());
             }
 
             // #i29186#
-            maBufferDevice.SetDrawMode(getOutputDevice().GetDrawMode());
-            maBufferDevice.SetSettings(getOutputDevice().GetSettings());
-            maBufferDevice.SetAntialiasing(getOutputDevice().GetAntialiasing());
+            mpBufferDevice->SetDrawMode(getOutputDevice().GetDrawMode());
+            mpBufferDevice->SetSettings(getOutputDevice().GetSettings());
+            mpBufferDevice->SetAntialiasing(getOutputDevice().GetAntialiasing());
         }
 
         void OverlayManagerBuffered::ImpRestoreBackground() const
@@ -114,9 +114,9 @@ namespace sdr
         {
             // MapModes off
             const bool bMapModeWasEnabledDest(getOutputDevice().IsMapModeEnabled());
-            const bool bMapModeWasEnabledSource(maBufferDevice.IsMapModeEnabled());
+            const bool bMapModeWasEnabledSource(mpBufferDevice->IsMapModeEnabled());
             getOutputDevice().EnableMapMode(false);
-            ((OverlayManagerBuffered*)this)->maBufferDevice.EnableMapMode(false);
+            ((OverlayManagerBuffered*)this)->mpBufferDevice->EnableMapMode(false);
 
             // local region
             RectangleVector aRectangles;
@@ -143,7 +143,7 @@ namespace sdr
                 getOutputDevice().DrawOutDev(
                     aTopLeft, aSize, // destination
                     aTopLeft, aSize, // source
-                    maBufferDevice);
+                    *mpBufferDevice.get());
             }
 
             //Region aRegionPixel(rRegionPixel);
@@ -169,14 +169,14 @@ namespace sdr
             //  getOutputDevice().DrawOutDev(
             //      aTopLeft, aSize, // destination
             //      aTopLeft, aSize, // source
-            //      maBufferDevice);
+            //      *mpBufferDevice.get());
             //}
 
             //aRegionPixel.EndEnumRects(aRegionHandle);
 
             // restore MapModes
             getOutputDevice().EnableMapMode(bMapModeWasEnabledDest);
-            ((OverlayManagerBuffered*)this)->maBufferDevice.EnableMapMode(bMapModeWasEnabledSource);
+            ((OverlayManagerBuffered*)this)->mpBufferDevice->EnableMapMode(bMapModeWasEnabledSource);
         }
 
         void OverlayManagerBuffered::ImpSaveBackground(const vcl::Region& rRegion, OutputDevice* pPreRenderDevice)
@@ -204,14 +204,14 @@ namespace sdr
             }
 
             // also limit to buffer size
-            const Rectangle aBufferDeviceRectanglePixel(Point(), maBufferDevice.GetOutputSizePixel());
+            const Rectangle aBufferDeviceRectanglePixel(Point(), mpBufferDevice->GetOutputSizePixel());
             aRegion.Intersect(aBufferDeviceRectanglePixel);
 
             // MapModes off
             const bool bMapModeWasEnabledDest(rSource.IsMapModeEnabled());
-            const bool bMapModeWasEnabledSource(maBufferDevice.IsMapModeEnabled());
+            const bool bMapModeWasEnabledSource(mpBufferDevice->IsMapModeEnabled());
             rSource.EnableMapMode(false);
-            maBufferDevice.EnableMapMode(false);
+            mpBufferDevice->EnableMapMode(false);
 
             // prepare to iterate over the rectangles from the region in pixels
             RectangleVector aRectangles;
@@ -223,7 +223,7 @@ namespace sdr
                 const Point aTopLeft(aRectIter->TopLeft());
                 const Size aSize(aRectIter->GetSize());
 
-                maBufferDevice.DrawOutDev(
+                mpBufferDevice->DrawOutDev(
                     aTopLeft, aSize, // destination
                     aTopLeft, aSize, // source
                     rSource);
@@ -238,7 +238,7 @@ namespace sdr
             //  Point aTopLeft(aRegionRectanglePixel.TopLeft());
             //  Size aSize(aRegionRectanglePixel.GetSize());
 
-            //  maBufferDevice.DrawOutDev(
+            //  mpBufferDevice->DrawOutDev(
             //      aTopLeft, aSize, // destination
             //      aTopLeft, aSize, // source
             //      rSource);
@@ -249,7 +249,7 @@ namespace sdr
 
             // restore MapModes
             rSource.EnableMapMode(bMapModeWasEnabledDest);
-            maBufferDevice.EnableMapMode(bMapModeWasEnabledSource);
+            mpBufferDevice->EnableMapMode(bMapModeWasEnabledSource);
         }
 
         IMPL_LINK(OverlayManagerBuffered, ImpBufferTimerHandler, AutoTimer*, /*pTimer*/)
@@ -287,20 +287,20 @@ namespace sdr
 
                 if(DoRefreshWithPreRendering())
                 {
-                    // #i73602# ensure valid and sized maOutputBufferDevice
-                    const Size aDestinationSizePixel(maBufferDevice.GetOutputSizePixel());
-                    const Size aOutputBufferSizePixel(maOutputBufferDevice.GetOutputSizePixel());
+                    // #i73602# ensure valid and sized mpOutputBufferDevice
+                    const Size aDestinationSizePixel(mpBufferDevice->GetOutputSizePixel());
+                    const Size aOutputBufferSizePixel(mpOutputBufferDevice->GetOutputSizePixel());
 
                     if(aDestinationSizePixel != aOutputBufferSizePixel)
                     {
-                        maOutputBufferDevice.SetOutputSizePixel(aDestinationSizePixel);
+                        mpOutputBufferDevice->SetOutputSizePixel(aDestinationSizePixel);
                     }
 
-                    maOutputBufferDevice.SetMapMode(getOutputDevice().GetMapMode());
-                    maOutputBufferDevice.EnableMapMode(false);
-                    maOutputBufferDevice.SetDrawMode(maBufferDevice.GetDrawMode());
-                    maOutputBufferDevice.SetSettings(maBufferDevice.GetSettings());
-                    maOutputBufferDevice.SetAntialiasing(maBufferDevice.GetAntialiasing());
+                    mpOutputBufferDevice->SetMapMode(getOutputDevice().GetMapMode());
+                    mpOutputBufferDevice->EnableMapMode(false);
+                    mpOutputBufferDevice->SetDrawMode(mpBufferDevice->GetDrawMode());
+                    mpOutputBufferDevice->SetSettings(mpBufferDevice->GetSettings());
+                    mpOutputBufferDevice->SetAntialiasing(mpBufferDevice->GetAntialiasing());
 
                     // calculate sizes
                     Rectangle aRegionRectanglePixel(
@@ -335,23 +335,23 @@ namespace sdr
                     const Size aSize(aRegionRectanglePixel.GetSize());
 
                     {
-                        const bool bMapModeWasEnabledDest(maBufferDevice.IsMapModeEnabled());
-                        maBufferDevice.EnableMapMode(false);
+                        const bool bMapModeWasEnabledDest(mpBufferDevice->IsMapModeEnabled());
+                        mpBufferDevice->EnableMapMode(false);
 
-                        maOutputBufferDevice.DrawOutDev(
+                        mpOutputBufferDevice->DrawOutDev(
                             aTopLeft, aSize, // destination
                             aTopLeft, aSize, // source
-                            maBufferDevice);
+                            *mpBufferDevice.get());
 
                         // restore MapModes
-                        maBufferDevice.EnableMapMode(bMapModeWasEnabledDest);
+                        mpBufferDevice->EnableMapMode(bMapModeWasEnabledDest);
                     }
 
                     // paint overlay content for remembered region, use
                     // method from base class directly
-                    maOutputBufferDevice.EnableMapMode(true);
-                    OverlayManager::ImpDrawMembers(aBufferRememberedRangeLogic, maOutputBufferDevice);
-                    maOutputBufferDevice.EnableMapMode(false);
+                    mpOutputBufferDevice->EnableMapMode(true);
+                    OverlayManager::ImpDrawMembers(aBufferRememberedRangeLogic, *mpOutputBufferDevice.get());
+                    mpOutputBufferDevice->EnableMapMode(false);
 
                     // copy to output
                     {
@@ -361,7 +361,7 @@ namespace sdr
                         getOutputDevice().DrawOutDev(
                             aTopLeft, aSize, // destination
                             aTopLeft, aSize, // source
-                            maOutputBufferDevice);
+                            *mpOutputBufferDevice.get());
 
                         // debug
                         /*getOutputDevice().SetLineColor(COL_RED);
@@ -426,6 +426,8 @@ namespace sdr
             OutputDevice& rOutputDevice,
             bool bRefreshWithPreRendering)
         :   OverlayManager(rOutputDevice),
+            mpBufferDevice(new VirtualDevice()),
+            mpOutputBufferDevice(new VirtualDevice()),
             mbRefreshWithPreRendering(bRefreshWithPreRendering)
         {
             // Init timer
@@ -475,7 +477,7 @@ namespace sdr
         void OverlayManagerBuffered::copyArea(const Point& rDestPt, const Point& rSrcPt, const Size& rSrcSize)
         {
             // scroll local buffered area
-            maBufferDevice.CopyArea(rDestPt, rSrcPt, rSrcSize);
+            mpBufferDevice->CopyArea(rDestPt, rSrcPt, rSrcSize);
         }
 
         void OverlayManagerBuffered::restoreBackground(const vcl::Region& rRegion) const
diff --git a/svx/source/sidebar/line/LineWidthValueSet.cxx b/svx/source/sidebar/line/LineWidthValueSet.cxx
index c57196f..532a11c 100644
--- a/svx/source/sidebar/line/LineWidthValueSet.cxx
+++ b/svx/source/sidebar/line/LineWidthValueSet.cxx
@@ -46,14 +46,11 @@ LineWidthValueSet::~LineWidthValueSet()
 
 void LineWidthValueSet::dispose()
 {
-    delete pVDev;
+    pVDev.disposeAndClear();
     delete[] strUnit;
     ValueSet::dispose();
 }
 
-
-
-
 void LineWidthValueSet::SetUnit(OUString* str)
 {
     for(int i = 0; i < 9; i++)
diff --git a/svx/source/sidebar/line/LineWidthValueSet.hxx b/svx/source/sidebar/line/LineWidthValueSet.hxx
index 55901d2..7cb0203 100644
--- a/svx/source/sidebar/line/LineWidthValueSet.hxx
+++ b/svx/source/sidebar/line/LineWidthValueSet.hxx
@@ -41,7 +41,7 @@ public:
     virtual void    UserDraw( const UserDrawEvent& rUDEvt ) SAL_OVERRIDE;
 
 protected:
-    VirtualDevice*  pVDev;
+    VclPtr<VirtualDevice> pVDev;
     sal_uInt16          nSelItem;
     OUString*      strUnit;
     Image           imgCus;
diff --git a/svx/source/svdraw/svdfmtf.cxx b/svx/source/svdraw/svdfmtf.cxx
index e5a105f..99b98c6 100644
--- a/svx/source/svdraw/svdfmtf.cxx
+++ b/svx/source/svdraw/svdfmtf.cxx
@@ -78,7 +78,7 @@ ImpSdrGDIMetaFileImport::ImpSdrGDIMetaFileImport(
     SdrLayerID nLay,
     const Rectangle& rRect)
 :   maTmpList(),
-    maVD(),
+    mpVD(new VirtualDevice()),
     maScaleRect(rRect),
     mnMapScalingOfs(0),
     mpLineAttr(0),
@@ -105,10 +105,10 @@ ImpSdrGDIMetaFileImport::ImpSdrGDIMetaFileImport(
     mbLastObjWasLine(false),
     maClip()
 {
-    maVD.EnableOutput(false);
-    maVD.SetLineColor();
-    maVD.SetFillColor();
-    maOldLineColor.SetRed( maVD.GetLineColor().GetRed() + 1 );
+    mpVD->EnableOutput(false);
+    mpVD->SetLineColor();
+    mpVD->SetFillColor();
+    maOldLineColor.SetRed( mpVD->GetLineColor().GetRed() + 1 );
     mpLineAttr = new SfxItemSet(rModel.GetItemPool(), XATTR_LINE_FIRST, XATTR_LINE_LAST, 0, 0);
     mpFillAttr = new SfxItemSet(rModel.GetItemPool(), XATTR_FILL_FIRST, XATTR_FILL_LAST, 0, 0);
     mpTextAttr = new SfxItemSet(rModel.GetItemPool(), EE_ITEMS_START, EE_ITEMS_END, 0, 0);
@@ -340,12 +340,12 @@ void ImpSdrGDIMetaFileImport::SetAttributes(SdrObject* pObj, bool bForceTextAttr
             mpLineAttr->Put(XLineWidthItem(0));
         }
 
-        maOldLineColor = maVD.GetLineColor();
+        maOldLineColor = mpVD->GetLineColor();
 
-        if(maVD.IsLineColor())
+        if(mpVD->IsLineColor())
         {
             mpLineAttr->Put(XLineStyleItem(drawing::LineStyle_SOLID));
-            mpLineAttr->Put(XLineColorItem(OUString(), maVD.GetLineColor()));
+            mpLineAttr->Put(XLineColorItem(OUString(), mpVD->GetLineColor()));
         }
         else
         {
@@ -390,10 +390,10 @@ void ImpSdrGDIMetaFileImport::SetAttributes(SdrObject* pObj, bool bForceTextAttr
 
     if(bFill)
     {
-        if(maVD.IsFillColor())
+        if(mpVD->IsFillColor())
         {
             mpFillAttr->Put(XFillStyleItem(drawing::FillStyle_SOLID));
-            mpFillAttr->Put(XFillColorItem(OUString(), maVD.GetFillColor()));
+            mpFillAttr->Put(XFillColorItem(OUString(), mpVD->GetFillColor()));
         }
         else
         {
@@ -407,7 +407,7 @@ void ImpSdrGDIMetaFileImport::SetAttributes(SdrObject* pObj, bool bForceTextAttr
 
     if(bText && mbFntDirty)
     {
-        vcl::Font aFnt(maVD.GetFont());
+        vcl::Font aFnt(mpVD->GetFont());
         const sal_uInt32 nHeight(FRound(aFnt.GetSize().Height() * mfScaleY));
 
         mpTextAttr->Put( SvxFontItem( aFnt.GetFamily(), aFnt.GetName(), aFnt.GetStyleName(), aFnt.GetPitch(), aFnt.GetCharSet(), EE_CHAR_FONTINFO ) );
@@ -429,7 +429,7 @@ void ImpSdrGDIMetaFileImport::SetAttributes(SdrObject* pObj, bool bForceTextAttr
 
         mpTextAttr->Put(SvxWordLineModeItem(aFnt.IsWordLineMode(), EE_CHAR_WLM));
         mpTextAttr->Put(SvxContourItem(aFnt.IsOutline(), EE_CHAR_OUTLINE));
-        mpTextAttr->Put(SvxColorItem(maVD.GetTextColor(), EE_CHAR_COLOR));
+        mpTextAttr->Put(SvxColorItem(mpVD->GetTextColor(), EE_CHAR_COLOR));
         //... svxfont textitem svditext
         mbFntDirty = false;
     }
@@ -787,7 +787,7 @@ bool ImpSdrGDIMetaFileImport::CheckLastLineMerge(const basegfx::B2DPolygon& rSrc
     }
 
     // #i73407# reformulation to use new B2DPolygon classes
-    if(mbLastObjWasLine && (maOldLineColor == maVD.GetLineColor()) && rSrcPoly.count())
+    if(mbLastObjWasLine && (maOldLineColor == mpVD->GetLineColor()) && rSrcPoly.count())
     {
         SdrObject* pTmpObj = maTmpList.size() ? maTmpList[maTmpList.size() - 1] : 0;
         SdrPathObj* pLastPoly = dynamic_cast< SdrPathObj* >(pTmpObj);
@@ -879,9 +879,9 @@ bool ImpSdrGDIMetaFileImport::CheckLastPolyLineAndFillMerge(const basegfx::B2DPo
 
 void ImpSdrGDIMetaFileImport::checkClip()
 {
-    if(maVD.IsClipRegion())
+    if(mpVD->IsClipRegion())
     {
-        maClip = maVD.GetClipRegion().GetAsB2DPolyPolygon();
+        maClip = mpVD->GetClipRegion().GetAsB2DPolyPolygon();
 
         if(isClip())
         {
@@ -992,12 +992,12 @@ void ImpSdrGDIMetaFileImport::ImportText( const Point& rPos, const OUString& rSt
 {
     // calc text box size, add 5% to make it fit safely
 
-    FontMetric aFontMetric( maVD.GetFontMetric() );
-    vcl::Font aFnt( maVD.GetFont() );
+    FontMetric aFontMetric( mpVD->GetFontMetric() );
+    vcl::Font aFnt( mpVD->GetFont() );
     FontAlign eAlg( aFnt.GetAlign() );
 
-    sal_Int32 nTextWidth = (sal_Int32)( maVD.GetTextWidth( rStr ) * mfScaleX );
-    sal_Int32 nTextHeight = (sal_Int32)( maVD.GetTextHeight() * mfScaleY );
+    sal_Int32 nTextWidth = (sal_Int32)( mpVD->GetTextWidth( rStr ) * mfScaleX );
+    sal_Int32 nTextHeight = (sal_Int32)( mpVD->GetTextHeight() * mfScaleY );
 
     Point aPos( FRound(rPos.X() * mfScaleX + maOfs.X()), FRound(rPos.Y() * mfScaleY + maOfs.Y()) );
     Size aSize( nTextWidth, nTextHeight );
@@ -1176,13 +1176,13 @@ void ImpSdrGDIMetaFileImport::DoAction( MetaHatchAction& rAct )
 
 void ImpSdrGDIMetaFileImport::DoAction(MetaLineColorAction& rAct)
 {
-    rAct.Execute(&maVD);
+    rAct.Execute(mpVD);
 }
 
 void ImpSdrGDIMetaFileImport::DoAction(MetaMapModeAction& rAct)
 {
     MapScaling();
-    rAct.Execute(&maVD);
+    rAct.Execute(mpVD);
     mbLastObjWasPolyWithoutLine = false;
     mbLastObjWasLine = false;
 }
@@ -1190,7 +1190,7 @@ void ImpSdrGDIMetaFileImport::DoAction(MetaMapModeAction& rAct)
 void ImpSdrGDIMetaFileImport::MapScaling()
 {
     const size_t nAnz(maTmpList.size());
-    const MapMode& rMap = maVD.GetMapMode();
+    const MapMode& rMap = mpVD->GetMapMode();
     Point aMapOrg( rMap.GetOrigin() );
     bool bMov2(aMapOrg.X() != 0 || aMapOrg.Y() != 0);
 
@@ -1284,7 +1284,7 @@ void ImpSdrGDIMetaFileImport::DoAction(MetaTextRectAction& rAct)
 {
     GDIMetaFile aTemp;
 
-    maVD.AddTextRectActions(rAct.GetRect(), rAct.GetText(), rAct.GetStyle(), aTemp);
+    mpVD->AddTextRectActions(rAct.GetRect(), rAct.GetText(), rAct.GetStyle(), aTemp);
     DoLoopActions(aTemp, 0, 0);
 }
 
diff --git a/svx/source/svdraw/svdfmtf.hxx b/svx/source/svdraw/svdfmtf.hxx
index 5494b1f..7425c4d 100644
--- a/svx/source/svdraw/svdfmtf.hxx
+++ b/svx/source/svdraw/svdfmtf.hxx
@@ -45,7 +45,7 @@ class ImpSdrGDIMetaFileImport
 {
 protected:
     ::std::vector< SdrObject* > maTmpList;
-    VirtualDevice               maVD;
+    ScopedVclPtr<VirtualDevice> mpVD;
     Rectangle                   maScaleRect;
     size_t                      mnMapScalingOfs; // from here on, not edited with MapScaling
     SfxItemSet*                 mpLineAttr;
@@ -108,18 +108,18 @@ protected:
     void DoAction(MetaHatchAction           & rAct);
     void DoAction(MetaLineColorAction       & rAct);
     void DoAction(MetaMapModeAction         & rAct);
-    void DoAction(MetaFillColorAction       & rAct) { rAct.Execute(&maVD); }
-    void DoAction(MetaTextColorAction       & rAct) { rAct.Execute(&maVD); }
-    void DoAction(MetaTextFillColorAction   & rAct) { rAct.Execute(&maVD); }
-    void DoAction(MetaFontAction            & rAct) { rAct.Execute(&maVD); mbFntDirty = true; }
-    void DoAction(MetaTextAlignAction       & rAct) { rAct.Execute(&maVD); mbFntDirty = true; }
-    void DoAction(MetaClipRegionAction      & rAct) { rAct.Execute(&maVD); checkClip(); }
-    void DoAction(MetaRasterOpAction        & rAct) { rAct.Execute(&maVD); }
-    void DoAction(MetaPushAction            & rAct) { rAct.Execute(&maVD); checkClip(); }
-    void DoAction(MetaPopAction             & rAct) { rAct.Execute(&maVD); mbFntDirty = true; checkClip(); }
-    void DoAction(MetaMoveClipRegionAction  & rAct) { rAct.Execute(&maVD); checkClip(); }
-    void DoAction(MetaISectRectClipRegionAction& rAct) { rAct.Execute(&maVD); checkClip(); }
-    void DoAction(MetaISectRegionClipRegionAction& rAct) { rAct.Execute(&maVD); checkClip(); }
+    void DoAction(MetaFillColorAction       & rAct) { rAct.Execute(mpVD); }
+    void DoAction(MetaTextColorAction       & rAct) { rAct.Execute(mpVD); }
+    void DoAction(MetaTextFillColorAction   & rAct) { rAct.Execute(mpVD); }
+    void DoAction(MetaFontAction            & rAct) { rAct.Execute(mpVD); mbFntDirty = true; }
+    void DoAction(MetaTextAlignAction       & rAct) { rAct.Execute(mpVD); mbFntDirty = true; }
+    void DoAction(MetaClipRegionAction      & rAct) { rAct.Execute(mpVD); checkClip(); }
+    void DoAction(MetaRasterOpAction        & rAct) { rAct.Execute(mpVD); }
+    void DoAction(MetaPushAction            & rAct) { rAct.Execute(mpVD); checkClip(); }
+    void DoAction(MetaPopAction             & rAct) { rAct.Execute(mpVD); mbFntDirty = true; checkClip(); }
+    void DoAction(MetaMoveClipRegionAction  & rAct) { rAct.Execute(mpVD); checkClip(); }
+    void DoAction(MetaISectRectClipRegionAction& rAct) { rAct.Execute(mpVD); checkClip(); }
+    void DoAction(MetaISectRegionClipRegionAction& rAct) { rAct.Execute(mpVD); checkClip(); }
 
     // #i125211# The MetaCommentAction needs to advance (if used), thus
     // give current metafile and index which may be changed
@@ -136,14 +136,14 @@ protected:
     void DoAction(MetaWallpaperAction& rAct);
     void DoAction(MetaTransparentAction& rAct);
     void DoAction(MetaEPSAction& rAct);
-    void DoAction(MetaRefPointAction& rAct)  { rAct.Execute(&maVD); }
-    void DoAction(MetaTextLineColorAction& rAct)  { rAct.Execute(&maVD); mbFntDirty = true; }
+    void DoAction(MetaRefPointAction& rAct)  { rAct.Execute(mpVD); }
+    void DoAction(MetaTextLineColorAction& rAct)  { rAct.Execute(mpVD); mbFntDirty = true; }
     void DoAction(MetaTextLineAction& rAct);
     void DoAction(MetaFloatTransparentAction& rAct);
     void DoAction(MetaGradientExAction& rAct);
-    void DoAction(MetaLayoutModeAction& rAct)  { rAct.Execute(&maVD); mbFntDirty = true; }
-    void DoAction(MetaTextLanguageAction& rAct)  { rAct.Execute(&maVD); mbFntDirty = true; }
-    void DoAction(MetaOverlineColorAction& rAct)  { rAct.Execute(&maVD); mbFntDirty = true; }
+    void DoAction(MetaLayoutModeAction& rAct)  { rAct.Execute(mpVD); mbFntDirty = true; }
+    void DoAction(MetaTextLanguageAction& rAct)  { rAct.Execute(mpVD); mbFntDirty = true; }
+    void DoAction(MetaOverlineColorAction& rAct)  { rAct.Execute(mpVD); mbFntDirty = true; }
 
     void ImportText(const Point& rPos, const OUString& rStr, const MetaAction& rAct);
     void SetAttributes(SdrObject* pObj, bool bForceTextAttr = false);


More information about the Libreoffice-commits mailing list