vcl: VclPtr conversion in starmath

Change-Id: I5d43afd893802db44d9d08d8acb64307c63b7eac
diff --git a/starmath/inc/ElementsDockingWindow.hxx b/starmath/inc/ElementsDockingWindow.hxx
index 96dcfd6..bdb57ac 100644
--- a/starmath/inc/ElementsDockingWindow.hxx
+++ b/starmath/inc/ElementsDockingWindow.hxx
@@ -141,6 +141,7 @@ public:
                             SfxChildWindow* pChildWindow,
                             vcl::Window* pParent );
    virtual ~SmElementsDockingWindow();
    virtual void dispose() SAL_OVERRIDE;

    virtual void EndDocking( const Rectangle& rReactangle, bool bFloatMode) SAL_OVERRIDE;
    virtual void ToggleFloatingMode() SAL_OVERRIDE;
diff --git a/starmath/inc/dialog.hxx b/starmath/inc/dialog.hxx
index 9c3987b..970eddd 100644
--- a/starmath/inc/dialog.hxx
+++ b/starmath/inc/dialog.hxx
@@ -224,6 +224,7 @@ class SmDistanceDialog : public ModalDialog
public:
    SmDistanceDialog(vcl::Window *pParent);
    virtual ~SmDistanceDialog();
    virtual void dispose() SAL_OVERRIDE;

    void ReadFrom(const SmFormat &rFormat);
    void WriteTo (SmFormat &rFormat) /*const*/;
@@ -288,19 +289,21 @@ public:

class SmShowSymbolSet : public VclHBox
{
    SmShowSymbolSetWindow aSymbolWindow;
    ScrollBar   aVScrollBar;
    VclPtr<SmShowSymbolSetWindow> aSymbolWindow;
    VclPtr<ScrollBar>             aVScrollBar;

public:
    SmShowSymbolSet(vcl::Window *pParent);
    virtual ~SmShowSymbolSet();
    virtual void dispose() SAL_OVERRIDE;

    void    SetSymbolSet(const SymbolPtrVec_t& rSymbolSet) { aSymbolWindow.SetSymbolSet(rSymbolSet); }
    void    SetSymbolSet(const SymbolPtrVec_t& rSymbolSet) { aSymbolWindow->SetSymbolSet(rSymbolSet); }

    void    SelectSymbol(sal_uInt16 nSymbol) { aSymbolWindow.SelectSymbol(nSymbol); }
    sal_uInt16  GetSelectSymbol() const { return aSymbolWindow.GetSelectSymbol(); }
    void    SelectSymbol(sal_uInt16 nSymbol) { aSymbolWindow->SelectSymbol(nSymbol); }
    sal_uInt16  GetSelectSymbol() const { return aSymbolWindow->GetSelectSymbol(); }

    void SetSelectHdl(const Link& rLink)   { aSymbolWindow.SetSelectHdl(rLink); }
    void SetDblClickHdl(const Link& rLink) { aSymbolWindow.SetDblClickHdl(rLink); }
    void SetSelectHdl(const Link& rLink)   { aSymbolWindow->SetSelectHdl(rLink); }
    void SetDblClickHdl(const Link& rLink) { aSymbolWindow->SetDblClickHdl(rLink); }
};


@@ -455,6 +458,7 @@ class SmSymDefineDialog : public ModalDialog
public:
    SmSymDefineDialog(vcl::Window *pParent, OutputDevice *pFntListDevice, SmSymbolManager &rMgr);
    virtual ~SmSymDefineDialog();
    virtual void dispose() SAL_OVERRIDE;

    using OutputDevice::SetFont;

diff --git a/starmath/inc/edit.hxx b/starmath/inc/edit.hxx
index 601b3b9..2bd99c6 100644
--- a/starmath/inc/edit.hxx
+++ b/starmath/inc/edit.hxx
@@ -91,6 +91,7 @@ class SmEditWindow : public vcl::Window, public DropTargetHelper
public:
    SmEditWindow( SmCmdBoxWindow &rMyCmdBoxWin );
    virtual ~SmEditWindow();
    virtual void         dispose() SAL_OVERRIDE;

    SmDocShell *    GetDoc();
    SmViewShell *   GetView();
diff --git a/starmath/inc/toolbox.hxx b/starmath/inc/toolbox.hxx
index 472fe60..3b3f697 100644
--- a/starmath/inc/toolbox.hxx
+++ b/starmath/inc/toolbox.hxx
@@ -65,6 +65,7 @@ public:
                    SfxChildWindow *pChildWindow,
                    Window         *pParent);
    virtual ~SmToolBoxWindow();
    virtual void dispose() SAL_OVERRIDE;

    // Window
    virtual void    StateChanged( StateChangedType nStateChange ) SAL_OVERRIDE;
diff --git a/starmath/inc/view.hxx b/starmath/inc/view.hxx
index 85bfbdb..8a1fdad 100644
--- a/starmath/inc/view.hxx
+++ b/starmath/inc/view.hxx
@@ -95,6 +95,7 @@ private:
public:
    SmGraphicWindow(SmViewShell* pShell);
    virtual ~SmGraphicWindow();
    virtual void dispose() SAL_OVERRIDE;

    // Window
    virtual void    MouseButtonDown(const MouseEvent &rMEvt) SAL_OVERRIDE;
@@ -159,7 +160,7 @@ public:

class SmCmdBoxWindow : public SfxDockingWindow
{
    SmEditWindow        aEdit;
    VclPtr<SmEditWindow>        aEdit;
    SmEditController    aController;
    bool                bExiting;

@@ -187,10 +188,11 @@ public:
                   Window         *pParent);

    virtual ~SmCmdBoxWindow ();
    virtual void dispose() SAL_OVERRIDE;

    void AdjustPosition();

    SmEditWindow& GetEditWindow() { return aEdit; }
    SmEditWindow& GetEditWindow() { return *aEdit.get(); }
    SmViewShell  *GetView();
};

@@ -231,7 +233,7 @@ class SmViewShell: public SfxViewShell

    std::unique_ptr<SmViewShell_Impl> pImpl;

    SmGraphicWindow     aGraphic;
    VclPtr<SmGraphicWindow>     aGraphic;
    SmGraphicController aGraphicController;
    OUString            aStatusText;

@@ -290,8 +292,8 @@ public:
    }

    SmEditWindow * GetEditWindow();
          SmGraphicWindow & GetGraphicWindow()       { return aGraphic; }
    const SmGraphicWindow & GetGraphicWindow() const { return aGraphic; }
          SmGraphicWindow & GetGraphicWindow()       { return *aGraphic.get(); }
    const SmGraphicWindow & GetGraphicWindow() const { return *aGraphic.get(); }

    void        SetStatusText(const OUString& rText);

diff --git a/starmath/source/ElementsDockingWindow.cxx b/starmath/source/ElementsDockingWindow.cxx
index 907d148..17e0738 100644
--- a/starmath/source/ElementsDockingWindow.cxx
+++ b/starmath/source/ElementsDockingWindow.cxx
@@ -671,7 +671,13 @@ SmElementsDockingWindow::SmElementsDockingWindow(SfxBindings* pInputBindings, Sf

SmElementsDockingWindow::~SmElementsDockingWindow ()
{
    dispose();
}

void SmElementsDockingWindow::dispose()
{
    delete mpElementsControl;
    SfxDockingWindow::dispose();
}

void SmElementsDockingWindow::ToggleFloatingMode()
diff --git a/starmath/source/dialog.cxx b/starmath/source/dialog.cxx
index b942d2b..93b6671 100644
--- a/starmath/source/dialog.cxx
+++ b/starmath/source/dialog.cxx
@@ -891,8 +891,14 @@ SmDistanceDialog::SmDistanceDialog(vcl::Window *pParent)

SmDistanceDialog::~SmDistanceDialog()
{
    dispose();
}

void SmDistanceDialog::dispose()
{
    for (int i = 0; i < NOCATEGORIES; i++)
        DELETEZ(Categories[i]);
    ModalDialog::dispose();
}

void SmDistanceDialog::DataChanged( const DataChangedEvent &rEvt )
@@ -1181,14 +1187,26 @@ void SmShowSymbolSetWindow::setScrollbar(ScrollBar *pVScrollBar)

SmShowSymbolSet::SmShowSymbolSet(vcl::Window *pParent)
    : VclHBox(pParent, false, 6)
    , aSymbolWindow(this, WB_TABSTOP)
    , aVScrollBar(this, WinBits(WB_VSCROLL))
    , aSymbolWindow(new SmShowSymbolSetWindow(this, WB_TABSTOP))
    , aVScrollBar(new ScrollBar(this, WinBits(WB_VSCROLL)))
{
    aSymbolWindow.set_hexpand(true);
    aSymbolWindow.set_vexpand(true);
    aSymbolWindow.setScrollbar(&aVScrollBar);
    aSymbolWindow.calccols();
    aSymbolWindow.Show();
    aSymbolWindow->set_hexpand(true);
    aSymbolWindow->set_vexpand(true);
    aSymbolWindow->setScrollbar(aVScrollBar.get());
    aSymbolWindow->calccols();
    aSymbolWindow->Show();
}

SmShowSymbolSet::~SmShowSymbolSet()
{
    dispose();
}

void SmShowSymbolSet::dispose()
{
    aSymbolWindow.disposeAndClear();
    aVScrollBar.disposeAndClear();
    VclHBox::dispose();
}

extern "C" SAL_DLLPUBLIC_EXPORT vcl::Window* SAL_CALL makeSmShowSymbolSet(vcl::Window *pParent, VclBuilder::stringmap &)
@@ -2032,6 +2050,12 @@ SmSymDefineDialog::SmSymDefineDialog(vcl::Window * pParent,

SmSymDefineDialog::~SmSymDefineDialog()
{
    dispose();
}

void SmSymDefineDialog::dispose()
{
    ModalDialog::dispose();
}

void SmSymDefineDialog::InitColor_Impl()
diff --git a/starmath/source/edit.cxx b/starmath/source/edit.cxx
index da0a420..90fe7a0 100644
--- a/starmath/source/edit.cxx
+++ b/starmath/source/edit.cxx
@@ -123,6 +123,11 @@ SmEditWindow::SmEditWindow( SmCmdBoxWindow &rMyCmdBoxWin ) :

SmEditWindow::~SmEditWindow()
{
    dispose();
}

void SmEditWindow::dispose()
{
    aModifyIdle.Stop();

    StartCursorMove();
@@ -148,6 +153,7 @@ SmEditWindow::~SmEditWindow()
    delete pHScrollBar;
    delete pVScrollBar;
    delete pScrollBox;
    vcl::Window::dispose();
}

void SmEditWindow::StartCursorMove()
diff --git a/starmath/source/toolbox.cxx b/starmath/source/toolbox.cxx
index d6ff88a..01d4994 100644
--- a/starmath/source/toolbox.cxx
+++ b/starmath/source/toolbox.cxx
@@ -139,6 +139,11 @@ SmToolBoxWindow::SmToolBoxWindow(SfxBindings *pTmpBindings,

SmToolBoxWindow::~SmToolBoxWindow()
{
    dispose();
}

void SmToolBoxWindow::dispose()
{
    int i;
    for (i = 0;  i < NUM_TBX_CATEGORIES;  ++i)
    {
@@ -147,6 +152,7 @@ SmToolBoxWindow::~SmToolBoxWindow()
    }
    for (i = 0;  i < NUM_TBX_CATEGORIES + 1;  ++i)
        delete aImageLists[i];
    SfxFloatingWindow::dispose();
}

SmViewShell * SmToolBoxWindow::GetView()
diff --git a/starmath/source/view.cxx b/starmath/source/view.cxx
index 5635f3c..0f7fa5b 100644
--- a/starmath/source/view.cxx
+++ b/starmath/source/view.cxx
@@ -119,11 +119,17 @@ SmGraphicWindow::SmGraphicWindow(SmViewShell* pShell):

SmGraphicWindow::~SmGraphicWindow()
{
    dispose();
}

void SmGraphicWindow::dispose()
{
    if (pAccessible)
        pAccessible->ClearWin();    // make Accessible defunctional
    // Note: memory for pAccessible will be freed when the reference
    // xAccessible is released.
    CaretBlinkStop();
    ScrollableWindow::dispose();
}

void SmGraphicWindow::StateChanged( StateChangedType eType )
@@ -706,8 +712,8 @@ void SmEditController::StateChanged(sal_uInt16 nSID, SfxItemState eState, const 
SmCmdBoxWindow::SmCmdBoxWindow(SfxBindings *pBindings_, SfxChildWindow *pChildWindow,
                               vcl::Window *pParent) :
    SfxDockingWindow(pBindings_, pChildWindow, pParent, WB_MOVEABLE|WB_CLOSEABLE|WB_SIZEABLE|WB_DOCKABLE),
    aEdit       (*this),
    aController (aEdit, SID_TEXT, *pBindings_),
    aEdit       (new SmEditWindow(*this)),
    aController (*(aEdit.get()), SID_TEXT, *pBindings_),
    bExiting    (false)
{
    SetHelpId( HID_SMA_COMMAND_WIN );
@@ -722,8 +728,15 @@ SmCmdBoxWindow::SmCmdBoxWindow(SfxBindings *pBindings_, SfxChildWindow *pChildWi

SmCmdBoxWindow::~SmCmdBoxWindow ()
{
    dispose();
}

void SmCmdBoxWindow::dispose()
{
    aInitialFocusTimer.Stop();
    bExiting = true;
    aEdit.disposeAndClear();
    SfxDockingWindow::dispose();
}

SmViewShell * SmCmdBoxWindow::GetView()
@@ -744,7 +757,7 @@ void SmCmdBoxWindow::Resize()
    DecorationView aView(this);
    aRect = aView.DrawFrame( aRect, FRAME_DRAW_IN | FRAME_DRAW_NODRAW );

    aEdit.SetPosSizePixel(aRect.TopLeft(), aRect.GetSize());
    aEdit->SetPosSizePixel(aRect.TopLeft(), aRect.GetSize());
    SfxDockingWindow::Resize();
    Invalidate();
}
@@ -824,7 +837,7 @@ IMPL_LINK( SmCmdBoxWindow, InitialFocusTimerHdl, Timer *, EMPTYARG /*pTimer*/ )
    {
        uno::Reference< frame::XDesktop2 > xDesktop = frame::Desktop::create( comphelper::getProcessComponentContext() );

        aEdit.GrabFocus();
        aEdit->GrabFocus();

        bool bInPlace = GetView()->GetViewFrame()->GetFrame().IsInPlace();
        uno::Reference< frame::XFrame > xFrame( GetBindings().GetDispatcher()->GetFrame()->GetFrame().GetFrameInterface());
@@ -876,7 +889,7 @@ void SmCmdBoxWindow::ToggleFloatingMode()
void SmCmdBoxWindow::GetFocus()
{
    if (!bExiting)
        aEdit.GrabFocus();
        aEdit->GrabFocus();
}

/**************************************************************************/
@@ -947,7 +960,7 @@ SFX_IMPL_NAMED_VIEWFACTORY(SmViewShell, "Default")

void SmViewShell::AdjustPosSizePixel(const Point &rPos, const Size &rSize)
{
    aGraphic.SetPosSizePixel(rPos, rSize);
    aGraphic->SetPosSizePixel(rPos, rSize);
}


@@ -1519,16 +1532,16 @@ void SmViewShell::Execute(SfxRequest& rReq)
            break;

        case SID_ZOOM_OPTIMAL:
            aGraphic.ZoomToFitInWindow();
            aGraphic->ZoomToFitInWindow();
            break;

        case SID_ZOOMIN:
            aGraphic.SetZoom(aGraphic.GetZoom() + 25);
            aGraphic->SetZoom(aGraphic->GetZoom() + 25);
            break;

        case SID_ZOOMOUT:
            SAL_WARN_IF( aGraphic.GetZoom() < 25, "starmath", "incorrect sal_uInt16 argument" );
            aGraphic.SetZoom(aGraphic.GetZoom() - 25);
            SAL_WARN_IF( aGraphic->GetZoom() < 25, "starmath", "incorrect sal_uInt16 argument" );
            aGraphic->SetZoom(aGraphic->GetZoom() - 25);
            break;

        case SID_COPYOBJECT:
@@ -1743,7 +1756,7 @@ void SmViewShell::Execute(SfxRequest& rReq)
                if ( !pSet )
                {
                    SfxItemSet aSet( GetDoc()->GetPool(), SID_ATTR_ZOOM, SID_ATTR_ZOOM);
                    aSet.Put( SvxZoomItem( SvxZoomType::PERCENT, aGraphic.GetZoom()));
                    aSet.Put( SvxZoomItem( SvxZoomType::PERCENT, aGraphic->GetZoom()));
                    SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
                    if(pFact)
                    {
@@ -1760,11 +1773,11 @@ void SmViewShell::Execute(SfxRequest& rReq)
                    switch( rZoom.GetType() )
                    {
                        case SvxZoomType::PERCENT:
                            aGraphic.SetZoom((sal_uInt16)rZoom.GetValue ());
                            aGraphic->SetZoom((sal_uInt16)rZoom.GetValue ());
                            break;

                        case SvxZoomType::OPTIMAL:
                            aGraphic.ZoomToFitInWindow();
                            aGraphic->ZoomToFitInWindow();
                            break;

                        case SvxZoomType::PAGEWIDTH:
@@ -1779,7 +1792,7 @@ void SmViewShell::Execute(SfxRequest& rReq)
                            Size       GraphicSize(pPrinter->LogicToPixel(GetDoc()->GetSize(), aMap));
                            sal_uInt16     nZ = (sal_uInt16) std::min((long)Fraction(OutputSize.Width()  * 100L, GraphicSize.Width()),
                                                         (long)Fraction(OutputSize.Height() * 100L, GraphicSize.Height()));
                            aGraphic.SetZoom (nZ);
                            aGraphic->SetZoom (nZ);
                            break;
                        }
                        default:
@@ -1798,7 +1811,7 @@ void SmViewShell::Execute(SfxRequest& rReq)
            if ( pArgs && SfxItemState::SET == pArgs->GetItemState(SID_ATTR_ZOOMSLIDER, true, &pItem ) )
            {
                const sal_uInt16 nCurrentZoom = static_cast<const SvxZoomSliderItem *>(pItem)->GetValue();
                aGraphic.SetZoom( nCurrentZoom );
                aGraphic->SetZoom( nCurrentZoom );
            }
        }
        break;
@@ -1871,7 +1884,7 @@ void SmViewShell::GetState(SfxItemSet &rSet)
            break;

        case SID_ATTR_ZOOM:
            rSet.Put(SvxZoomItem( SvxZoomType::PERCENT, aGraphic.GetZoom()));
            rSet.Put(SvxZoomItem( SvxZoomType::PERCENT, aGraphic->GetZoom()));
            /* no break here */
        case SID_ZOOMIN:
        case SID_ZOOMOUT:
@@ -1882,7 +1895,7 @@ void SmViewShell::GetState(SfxItemSet &rSet)

        case SID_ATTR_ZOOMSLIDER :
            {
                const sal_uInt16 nCurrentZoom = aGraphic.GetZoom();
                const sal_uInt16 nCurrentZoom = aGraphic->GetZoom();
                SvxZoomSliderItem aZoomSliderItem( nCurrentZoom, MINZOOM, MAXZOOM );
                aZoomSliderItem.AddSnappingPoint( 100 );
                rSet.Put( aZoomSliderItem );
@@ -1940,13 +1953,13 @@ void SmViewShell::GetState(SfxItemSet &rSet)
SmViewShell::SmViewShell(SfxViewFrame *pFrame_, SfxViewShell *)
    : SfxViewShell(pFrame_, SFX_VIEW_HAS_PRINTOPTIONS | SFX_VIEW_CAN_PRINT)
    , pImpl(new SmViewShell_Impl)
    , aGraphic(this)
    , aGraphicController(aGraphic, SID_GAPHIC_SM, pFrame_->GetBindings())
    , aGraphic(new SmGraphicWindow(this))
    , aGraphicController(*aGraphic.get(), SID_GAPHIC_SM, pFrame_->GetBindings())
    , bPasteState(false)
    , bInsertIntoEditWindow(false)
{
    SetStatusText(OUString());
    SetWindow(&aGraphic);
    SetWindow(aGraphic.get());
    SfxShell::SetName(OUString("SmView"));
    SfxShell::SetUndoManager( &GetDoc()->GetEditEngine().GetUndoManager() );
    SetHelpId( HID_SMA_VIEWSHELL_DOCUMENT );