summaryrefslogtreecommitdiff
path: root/starmath/source/ElementsDockingWindow.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'starmath/source/ElementsDockingWindow.cxx')
-rw-r--r--starmath/source/ElementsDockingWindow.cxx24
1 files changed, 19 insertions, 5 deletions
diff --git a/starmath/source/ElementsDockingWindow.cxx b/starmath/source/ElementsDockingWindow.cxx
index 12eb670136a1..4a5118a5b789 100644
--- a/starmath/source/ElementsDockingWindow.cxx
+++ b/starmath/source/ElementsDockingWindow.cxx
@@ -224,7 +224,7 @@ SmElementsControl::SmElementsControl(vcl::Window *pParent)
, maCurrentSetId(0)
, mpCurrentElement(NULL)
, mbVerticalMode(true)
- , mxScroll(new ScrollBar(this, WB_VERT))
+ , mxScroll(VclPtr<ScrollBar>::Create(this, WB_VERT))
{
SetMapMode( MapMode(MAP_100TH_MM) );
SetDrawMode( DRAWMODE_DEFAULT );
@@ -239,7 +239,14 @@ SmElementsControl::SmElementsControl(vcl::Window *pParent)
SmElementsControl::~SmElementsControl()
{
+ disposeOnce();
+}
+
+void SmElementsControl::dispose()
+{
mpDocShell->DoClose();
+ mxScroll.disposeAndClear();
+ Control::dispose();
}
void SmElementsControl::setVerticalMode(bool bVerticalMode)
@@ -646,7 +653,7 @@ SmElementsDockingWindow::SmElementsDockingWindow(SfxBindings* pInputBindings, Sf
SfxDockingWindow(pInputBindings, pChildWindow, pParent, "DockingElements",
"modules/smath/ui/dockingelements.ui")
{
- mpElementsControl = new SmElementsControl(get<vcl::Window>("box"));
+ mpElementsControl = VclPtr<SmElementsControl>::Create(get<vcl::Window>("box"));
mpElementsControl->set_hexpand(true);
mpElementsControl->set_vexpand(true);
mpElementsControl->Show();
@@ -672,7 +679,14 @@ SmElementsDockingWindow::SmElementsDockingWindow(SfxBindings* pInputBindings, Sf
SmElementsDockingWindow::~SmElementsDockingWindow ()
{
- delete mpElementsControl;
+ disposeOnce();
+}
+
+void SmElementsDockingWindow::dispose()
+{
+ mpElementsControl.disposeAndClear();
+ mpElementListBox.clear();
+ SfxDockingWindow::dispose();
}
void SmElementsDockingWindow::ToggleFloatingMode()
@@ -755,8 +769,8 @@ SmElementsDockingWindowWrapper::SmElementsDockingWindowWrapper(
SfxBindings *pBindings, SfxChildWinInfo *pInfo) :
SfxChildWindow(pParentWindow, nId)
{
- SmElementsDockingWindow* pDialog = new SmElementsDockingWindow(pBindings, this, pParentWindow);
- pWindow = pDialog;
+ VclPtrInstance<SmElementsDockingWindow> pDialog(pBindings, this, pParentWindow);
+ pWindow.reset(pDialog);
pDialog->setDeferredProperties();
pDialog->SetPosSizePixel(Point(0, 0), Size(300, 0));
pDialog->Show();