summaryrefslogtreecommitdiff
path: root/sd/source
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2015-01-26 13:20:10 +0200
committerMichael Meeks <michael.meeks@collabora.com>2015-04-09 21:55:41 +0100
commit0cef43d2e425895746392c6f503c660a7ca1241c (patch)
treec7e16b823eaab99379dbebc3347e7b2e3874be25 /sd/source
parente10b12842eb15b3b9bf577b4da036313fa830786 (diff)
vcl: VclPtr conversion in sd
Change-Id: I3cde57acfeec194968a639f8557b17177a94d37f
Diffstat (limited to 'sd/source')
-rw-r--r--sd/source/ui/animations/CustomAnimationCreateDialog.cxx6
-rw-r--r--sd/source/ui/animations/CustomAnimationCreateDialog.hxx1
-rw-r--r--sd/source/ui/animations/CustomAnimationDialog.cxx25
-rw-r--r--sd/source/ui/animations/CustomAnimationDialog.hxx2
-rw-r--r--sd/source/ui/animations/CustomAnimationList.cxx6
-rw-r--r--sd/source/ui/animations/CustomAnimationList.hxx1
-rw-r--r--sd/source/ui/animations/CustomAnimationPane.cxx6
-rw-r--r--sd/source/ui/animations/CustomAnimationPane.hxx1
-rw-r--r--sd/source/ui/animations/SlideTransitionPane.cxx6
-rw-r--r--sd/source/ui/animations/SlideTransitionPane.hxx1
-rw-r--r--sd/source/ui/annotations/annotationwindow.cxx6
-rw-r--r--sd/source/ui/annotations/annotationwindow.hxx1
-rw-r--r--sd/source/ui/dlg/RemoteDialogClientBox.cxx88
-rw-r--r--sd/source/ui/dlg/RemoteDialogClientBox.hxx11
-rw-r--r--sd/source/ui/dlg/animobjs.cxx7
-rw-r--r--sd/source/ui/dlg/brkdlg.cxx6
-rw-r--r--sd/source/ui/dlg/copydlg.cxx7
-rw-r--r--sd/source/ui/dlg/dlgass.cxx6
-rw-r--r--sd/source/ui/dlg/dlgassim.cxx6
-rw-r--r--sd/source/ui/dlg/dlgassim.hxx1
-rw-r--r--sd/source/ui/dlg/dlgctrls.cxx6
-rw-r--r--sd/source/ui/dlg/dlgolbul.cxx6
-rw-r--r--sd/source/ui/dlg/docprev.cxx6
-rw-r--r--sd/source/ui/dlg/headerfooterdlg.cxx6
-rw-r--r--sd/source/ui/dlg/navigatr.cxx253
-rw-r--r--sd/source/ui/dlg/prltempl.cxx6
-rw-r--r--sd/source/ui/dlg/sdtreelb.cxx6
-rw-r--r--sd/source/ui/inc/BreakDlg.hxx1
-rw-r--r--sd/source/ui/inc/DrawViewShell.hxx6
-rw-r--r--sd/source/ui/inc/OutlineBulletDlg.hxx1
-rw-r--r--sd/source/ui/inc/Ruler.hxx1
-rw-r--r--sd/source/ui/inc/Window.hxx1
-rw-r--r--sd/source/ui/inc/animobjs.hxx1
-rw-r--r--sd/source/ui/inc/copydlg.hxx1
-rw-r--r--sd/source/ui/inc/dlgass.hxx1
-rw-r--r--sd/source/ui/inc/dlgctrls.hxx3
-rw-r--r--sd/source/ui/inc/docprev.hxx1
-rw-r--r--sd/source/ui/inc/headerfooterdlg.hxx1
-rw-r--r--sd/source/ui/inc/navigatr.hxx7
-rw-r--r--sd/source/ui/inc/prltempl.hxx1
-rw-r--r--sd/source/ui/inc/sdtreelb.hxx1
-rw-r--r--sd/source/ui/sidebar/CurrentMasterPagesSelector.cxx7
-rw-r--r--sd/source/ui/sidebar/CurrentMasterPagesSelector.hxx1
-rw-r--r--sd/source/ui/sidebar/LayoutMenu.cxx6
-rw-r--r--sd/source/ui/sidebar/LayoutMenu.hxx1
-rw-r--r--sd/source/ui/sidebar/MasterPagesSelector.cxx6
-rw-r--r--sd/source/ui/sidebar/MasterPagesSelector.hxx1
-rw-r--r--sd/source/ui/sidebar/NavigatorWrapper.cxx23
-rw-r--r--sd/source/ui/sidebar/NavigatorWrapper.hxx3
-rw-r--r--sd/source/ui/sidebar/PanelBase.cxx6
-rw-r--r--sd/source/ui/sidebar/PanelBase.hxx1
-rw-r--r--sd/source/ui/slideshow/showwin.cxx6
-rw-r--r--sd/source/ui/slideshow/showwindow.hxx1
-rw-r--r--sd/source/ui/view/ViewShellBase.cxx7
-rw-r--r--sd/source/ui/view/drviews1.cxx62
-rw-r--r--sd/source/ui/view/drviews2.cxx6
-rw-r--r--sd/source/ui/view/drviews3.cxx2
-rw-r--r--sd/source/ui/view/drviews4.cxx2
-rw-r--r--sd/source/ui/view/drviews5.cxx4
-rw-r--r--sd/source/ui/view/drviews7.cxx2
-rw-r--r--sd/source/ui/view/drviewsa.cxx6
-rw-r--r--sd/source/ui/view/drviewsb.cxx4
-rw-r--r--sd/source/ui/view/drviewse.cxx2
-rw-r--r--sd/source/ui/view/sdruler.cxx6
-rw-r--r--sd/source/ui/view/sdwindow.cxx6
65 files changed, 452 insertions, 229 deletions
diff --git a/sd/source/ui/animations/CustomAnimationCreateDialog.cxx b/sd/source/ui/animations/CustomAnimationCreateDialog.cxx
index b258ba270f0b..5e7c988e148e 100644
--- a/sd/source/ui/animations/CustomAnimationCreateDialog.cxx
+++ b/sd/source/ui/animations/CustomAnimationCreateDialog.cxx
@@ -532,6 +532,11 @@ CustomAnimationCreateDialog::CustomAnimationCreateDialog( vcl::Window* pParent,
CustomAnimationCreateDialog::~CustomAnimationCreateDialog()
{
+ dispose();
+}
+
+void CustomAnimationCreateDialog::dispose()
+{
storePosition();
SdOptions* pOptions = SD_MOD()->GetSdOptions(DOCUMENT_TYPE_IMPRESS);
@@ -543,6 +548,7 @@ CustomAnimationCreateDialog::~CustomAnimationCreateDialog()
delete mpTabPages[MOTIONPATH];
delete mpTabPages[MISCEFFECTS];
+ TabDialog::dispose();
}
CustomAnimationCreateTabPage* CustomAnimationCreateDialog::getCurrentPage() const
diff --git a/sd/source/ui/animations/CustomAnimationCreateDialog.hxx b/sd/source/ui/animations/CustomAnimationCreateDialog.hxx
index b17be8894781..7ae2ec75a9fd 100644
--- a/sd/source/ui/animations/CustomAnimationCreateDialog.hxx
+++ b/sd/source/ui/animations/CustomAnimationCreateDialog.hxx
@@ -41,6 +41,7 @@ class CustomAnimationCreateDialog : public TabDialog
public:
CustomAnimationCreateDialog( vcl::Window* pParent, CustomAnimationPane* pPane, const std::vector< ::com::sun::star::uno::Any >& rTargets, bool bHasText, const OUString& rsPresetId, double fDuration );
virtual ~CustomAnimationCreateDialog();
+ virtual void dispose() SAL_OVERRIDE;
PathKind getCreatePathKind() const;
CustomAnimationPresetPtr getSelectedPreset() const;
diff --git a/sd/source/ui/animations/CustomAnimationDialog.cxx b/sd/source/ui/animations/CustomAnimationDialog.cxx
index 891bef9270fe..fd21601d8665 100644
--- a/sd/source/ui/animations/CustomAnimationDialog.cxx
+++ b/sd/source/ui/animations/CustomAnimationDialog.cxx
@@ -320,8 +320,9 @@ Control* FontPropertyBox::getControl()
class DropdownMenuBox : public Edit
{
public:
- DropdownMenuBox( vcl::Window* pParent, const VclPtr<Edit> &pSubControl, PopupMenu* pMenu );
+ DropdownMenuBox( vcl::Window* pParent, Edit* pSubControl, PopupMenu* pMenu );
virtual ~DropdownMenuBox();
+ virtual void dispose() SAL_OVERRIDE;
void Resize() SAL_OVERRIDE;
bool PreNotify( NotifyEvent& rNEvt ) SAL_OVERRIDE;
@@ -334,7 +335,7 @@ private:
PopupMenu* mpMenu;
};
-DropdownMenuBox::DropdownMenuBox( vcl::Window* pParent, const VclPtr<Edit> &pSubControl, PopupMenu* pMenu )
+DropdownMenuBox::DropdownMenuBox( vcl::Window* pParent, Edit* pSubControl, PopupMenu* pMenu )
: Edit( pParent, WB_BORDER|WB_TABSTOP| WB_DIALOGCONTROL ),
mpSubControl(pSubControl),mpDropdownButton(0),mpMenu(pMenu)
{
@@ -350,9 +351,16 @@ DropdownMenuBox::DropdownMenuBox( vcl::Window* pParent, const VclPtr<Edit> &pSub
DropdownMenuBox::~DropdownMenuBox()
{
+ dispose();
+}
+
+void DropdownMenuBox::dispose()
+{
SetSubEdit(VclPtr<Edit>());
delete mpDropdownButton;
delete mpMenu;
+ mpSubControl.disposeAndClear();
+ Edit::dispose();
}
void DropdownMenuBox::Resize()
@@ -2138,12 +2146,19 @@ CustomAnimationDialog::CustomAnimationDialog(vcl::Window* pParent, STLPropertySe
CustomAnimationDialog::~CustomAnimationDialog()
{
+ dispose();
+}
+
+void CustomAnimationDialog::dispose()
+{
delete mpEffectTabPage;
delete mpDurationTabPage;
delete mpTextAnimTabPage;
delete mpSet;
delete mpResultSet;
+
+ TabDialog::dispose();
}
STLPropertySet* CustomAnimationDialog::getResultSet()
@@ -2221,8 +2236,14 @@ extern "C" SAL_DLLPUBLIC_EXPORT vcl::Window* SAL_CALL makePropertyControl( vcl::
PropertyControl::~PropertyControl()
{
+ dispose();
+}
+
+void PropertyControl::dispose()
+{
if( mpSubControl )
delete mpSubControl;
+ ListBox::dispose();
}
void PropertyControl::setSubControl( PropertySubControl* pSubControl )
diff --git a/sd/source/ui/animations/CustomAnimationDialog.hxx b/sd/source/ui/animations/CustomAnimationDialog.hxx
index 2fcdc742073a..897a22946c9d 100644
--- a/sd/source/ui/animations/CustomAnimationDialog.hxx
+++ b/sd/source/ui/animations/CustomAnimationDialog.hxx
@@ -123,6 +123,7 @@ class PropertyControl : public ListBox
public:
PropertyControl( vcl::Window* pParent );
virtual ~PropertyControl();
+ virtual void dispose() SAL_OVERRIDE;
void setSubControl( PropertySubControl* pSubControl );
PropertySubControl* getSubControl() const { return mpSubControl; }
@@ -143,6 +144,7 @@ class CustomAnimationDialog : public TabDialog
public:
CustomAnimationDialog(vcl::Window* pParent, STLPropertySet* pSet, const OString& Page = OString());
virtual ~CustomAnimationDialog();
+ virtual void dispose() SAL_OVERRIDE;
STLPropertySet* getDefaultSet() { return mpSet; }
STLPropertySet* getResultSet();
diff --git a/sd/source/ui/animations/CustomAnimationList.cxx b/sd/source/ui/animations/CustomAnimationList.cxx
index c7f62dad3a59..43f3c3451bb8 100644
--- a/sd/source/ui/animations/CustomAnimationList.cxx
+++ b/sd/source/ui/animations/CustomAnimationList.cxx
@@ -444,10 +444,16 @@ const Image& CustomAnimationList::getImage( sal_uInt16 nId )
CustomAnimationList::~CustomAnimationList()
{
+ dispose();
+}
+
+void CustomAnimationList::dispose()
+{
if( mpMainSequence.get() )
mpMainSequence->removeListener( this );
clear();
+ SvTreeListBox::dispose();
}
void CustomAnimationList::KeyInput( const KeyEvent& rKEvt )
diff --git a/sd/source/ui/animations/CustomAnimationList.hxx b/sd/source/ui/animations/CustomAnimationList.hxx
index b28f4cf138c5..891016be4c65 100644
--- a/sd/source/ui/animations/CustomAnimationList.hxx
+++ b/sd/source/ui/animations/CustomAnimationList.hxx
@@ -48,6 +48,7 @@ class CustomAnimationList : public SvTreeListBox, public ISequenceListener
public:
CustomAnimationList( vcl::Window* pParent );
virtual ~CustomAnimationList();
+ virtual void dispose() SAL_OVERRIDE;
// methods
diff --git a/sd/source/ui/animations/CustomAnimationPane.cxx b/sd/source/ui/animations/CustomAnimationPane.cxx
index f327dc95bfc5..c64a1f28bcf2 100644
--- a/sd/source/ui/animations/CustomAnimationPane.cxx
+++ b/sd/source/ui/animations/CustomAnimationPane.cxx
@@ -225,6 +225,11 @@ CustomAnimationPane::CustomAnimationPane( Window* pParent, ViewShellBase& rBase,
CustomAnimationPane::~CustomAnimationPane()
{
+ dispose();
+}
+
+void CustomAnimationPane::dispose()
+{
maLateInitTimer.Stop();
removeListener();
@@ -235,6 +240,7 @@ CustomAnimationPane::~CustomAnimationPane()
for( aIter = aTags.begin(); aIter != aTags.end(); ++aIter )
(*aIter)->Dispose();
+ PanelLayout::dispose();
}
void CustomAnimationPane::addUndo()
diff --git a/sd/source/ui/animations/CustomAnimationPane.hxx b/sd/source/ui/animations/CustomAnimationPane.hxx
index 0cbd137a1441..bdf29dd1cf9e 100644
--- a/sd/source/ui/animations/CustomAnimationPane.hxx
+++ b/sd/source/ui/animations/CustomAnimationPane.hxx
@@ -64,6 +64,7 @@ class CustomAnimationPane : public PanelLayout, public ICustomAnimationListContr
public:
CustomAnimationPane( vcl::Window* pParent, ViewShellBase& rBase, const css::uno::Reference<css::frame::XFrame>& rxFrame, const Size& rMinSize );
virtual ~CustomAnimationPane();
+ virtual void dispose() SAL_OVERRIDE;
// callbacks
void onSelectionChanged();
diff --git a/sd/source/ui/animations/SlideTransitionPane.cxx b/sd/source/ui/animations/SlideTransitionPane.cxx
index 7548ad9e0b88..a58a444048e1 100644
--- a/sd/source/ui/animations/SlideTransitionPane.cxx
+++ b/sd/source/ui/animations/SlideTransitionPane.cxx
@@ -483,8 +483,14 @@ SlideTransitionPane::SlideTransitionPane(
SlideTransitionPane::~SlideTransitionPane()
{
+ dispose();
+}
+
+void SlideTransitionPane::dispose()
+{
maLateInitTimer.Stop();
removeListener();
+ PanelLayout::dispose();
}
void SlideTransitionPane::DataChanged (const DataChangedEvent& rEvent)
diff --git a/sd/source/ui/animations/SlideTransitionPane.hxx b/sd/source/ui/animations/SlideTransitionPane.hxx
index a75ca210a19c..1cf22541dc68 100644
--- a/sd/source/ui/animations/SlideTransitionPane.hxx
+++ b/sd/source/ui/animations/SlideTransitionPane.hxx
@@ -58,6 +58,7 @@ public:
SdDrawDocument* pDoc,
const css::uno::Reference<css::frame::XFrame>& rxFrame );
virtual ~SlideTransitionPane();
+ virtual void dispose() SAL_OVERRIDE;
// Window
virtual void DataChanged (const DataChangedEvent& rEvent) SAL_OVERRIDE;
diff --git a/sd/source/ui/annotations/annotationwindow.cxx b/sd/source/ui/annotations/annotationwindow.cxx
index 24ce6a43e0e5..491142fb8895 100644
--- a/sd/source/ui/annotations/annotationwindow.cxx
+++ b/sd/source/ui/annotations/annotationwindow.cxx
@@ -284,11 +284,17 @@ AnnotationWindow::AnnotationWindow( AnnotationManagerImpl& rManager, DrawDocShel
AnnotationWindow::~AnnotationWindow()
{
+ dispose();
+}
+
+void AnnotationWindow::dispose()
+{
delete mpMeta;
delete mpOutlinerView;
delete mpOutliner;
delete mpVScrollbar;
delete mpTextWindow;
+ FloatingWindow::dispose();
}
void AnnotationWindow::InitControls()
diff --git a/sd/source/ui/annotations/annotationwindow.hxx b/sd/source/ui/annotations/annotationwindow.hxx
index ed2c13ee39d6..a29ca421e522 100644
--- a/sd/source/ui/annotations/annotationwindow.hxx
+++ b/sd/source/ui/annotations/annotationwindow.hxx
@@ -102,6 +102,7 @@ class AnnotationWindow : public FloatingWindow
public:
AnnotationWindow( AnnotationManagerImpl& rManager, DrawDocShell* pDocShell, vcl::Window* pParent );
virtual ~AnnotationWindow();
+ virtual void dispose() SAL_OVERRIDE;
void StartEdit();
diff --git a/sd/source/ui/dlg/RemoteDialogClientBox.cxx b/sd/source/ui/dlg/RemoteDialogClientBox.cxx
index c3f4ebafb86b..3853a98d0dbe 100644
--- a/sd/source/ui/dlg/RemoteDialogClientBox.cxx
+++ b/sd/source/ui/dlg/RemoteDialogClientBox.cxx
@@ -73,16 +73,16 @@ ClientBox::ClientBox( vcl::Window* pParent, WinBits nStyle ) :
m_nTopIndex( 0 ),
m_nActiveHeight( 0 ),
m_nExtraHeight( 2 ),
- m_aPinBox( this, 0 ),
- m_aDeauthoriseButton( this ),
- m_aScrollBar( this, WB_VERT )
+ m_aPinBox( new NumericBox( this, 0 ) ),
+ m_aDeauthoriseButton( new PushButton( this ) ),
+ m_aScrollBar( new ScrollBar( this, WB_VERT ) )
{
- m_aScrollBar.SetScrollHdl( LINK( this, ClientBox, ScrollHdl ) );
- m_aScrollBar.EnableDrag();
+ m_aScrollBar->SetScrollHdl( LINK( this, ClientBox, ScrollHdl ) );
+ m_aScrollBar->EnableDrag();
- m_aPinBox.SetUseThousandSep(false);
- m_aDeauthoriseButton.SetText( SD_RESSTR(STR_DEAUTHORISE_CLIENT) );
- m_aDeauthoriseButton.SetClickHdl( LINK( this, ClientBox, DeauthoriseHdl ) );
+ m_aPinBox->SetUseThousandSep(false);
+ m_aDeauthoriseButton->SetText( SD_RESSTR(STR_DEAUTHORISE_CLIENT) );
+ m_aDeauthoriseButton->SetClickHdl( LINK( this, ClientBox, DeauthoriseHdl ) );
SetPosPixel( Point( RSC_SP_DLG_INNERBORDER_LEFT, RSC_SP_DLG_INNERBORDER_TOP ) );
long nIconHeight = 2*TOP_OFFSET + SMALL_ICON_SIZE;
@@ -124,6 +124,11 @@ Size ClientBox::GetOptimalSize() const
ClientBox::~ClientBox()
{
+ dispose();
+}
+
+void ClientBox::dispose()
+{
if ( ! m_bInDelete )
DeleteRemoved();
@@ -132,6 +137,11 @@ ClientBox::~ClientBox()
m_vEntries.clear();
m_xRemoveListener.clear();
+
+ m_aPinBox.disposeAndClear();
+ m_aDeauthoriseButton.disposeAndClear();
+ m_aScrollBar.disposeAndClear();
+ Control::dispose();
}
// Title + description
@@ -152,7 +162,7 @@ void ClientBox::CalcActiveHeight( const long nPos )
// Text entry height
Size aSize = GetOutputSizePixel();
if ( m_bHasScrollBar )
- aSize.Width() -= m_aScrollBar.GetSizePixel().Width();
+ aSize.Width() -= m_aScrollBar->GetSizePixel().Width();
aSize.Width() -= ICON_OFFSET;
@@ -173,7 +183,7 @@ Rectangle ClientBox::GetEntryRect( const long nPos ) const
Size aSize( GetOutputSizePixel() );
if ( m_bHasScrollBar )
- aSize.Width() -= m_aScrollBar.GetSizePixel().Width();
+ aSize.Width() -= m_aScrollBar->GetSizePixel().Width();
if ( m_vEntries[ nPos ]->m_bActive )
aSize.Height() = m_nActiveHeight;
@@ -246,7 +256,7 @@ void ClientBox::selectEntry( const long nPos )
// We empty the pin box now too, just in case the user previously
// entered a pin, but then changed their selected device.
- m_aPinBox.SetText( "" );
+ m_aPinBox->SetText( "" );
if ( m_bHasActive )
{
bool bAlreadyAuthorised =
@@ -254,11 +264,11 @@ void ClientBox::selectEntry( const long nPos )
if ( bAlreadyAuthorised )
{
- m_aDeauthoriseButton.GetFocus();
+ m_aDeauthoriseButton->GetFocus();
}
else
{
- m_aPinBox.GetFocus();
+ m_aPinBox->GetFocus();
}
}
@@ -350,19 +360,19 @@ void ClientBox::RecalcAll()
Size aPBSize = LogicToPixel(
Size( RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT ),
MapMode( MAP_APPFONT ) );
- m_aPinBox.SetSizePixel( aPBSize );
- m_aDeauthoriseButton.SetSizePixel( m_aDeauthoriseButton.GetOptimalSize() );
+ m_aPinBox->SetSizePixel( aPBSize );
+ m_aDeauthoriseButton->SetSizePixel( m_aDeauthoriseButton->GetOptimalSize() );
if ( !m_bHasActive )
{
- m_aPinBox.Show( false );
- m_aDeauthoriseButton.Show( false );
+ m_aPinBox->Show( false );
+ m_aDeauthoriseButton->Show( false );
}
else
{
Rectangle aEntryRect = GetEntryRect( m_nActive );
- Size aPinBoxSize( m_aPinBox.GetSizePixel() );
+ Size aPinBoxSize( m_aPinBox->GetSizePixel() );
Point aPos( aEntryRect.Left(),
aEntryRect.Bottom() - TOP_OFFSET - aPinBoxSize.Height() );
@@ -378,7 +388,7 @@ void ClientBox::RecalcAll()
aPos = Point( aEntryRect.Left() + GetTextWidth( sPinText ),
aEntryRect.Bottom() - TOP_OFFSET - aPinBoxSize.Height() );
- m_aPinBox.SetPosPixel( aPos );
+ m_aPinBox->SetPosPixel( aPos );
// The text would have it's TOP aligned with the top of
// the pin box -- hence we push it down to align baselines.
m_sPinTextRect += Point( 0, 4 );
@@ -386,11 +396,11 @@ void ClientBox::RecalcAll()
else
{
aPos += Point( 20, 0 );
- m_aDeauthoriseButton.SetPosPixel( aPos );
+ m_aDeauthoriseButton->SetPosPixel( aPos );
}
- m_aPinBox.Show( !bAlreadyAuthorised );
- m_aDeauthoriseButton.Show( bAlreadyAuthorised );
+ m_aPinBox->Show( !bAlreadyAuthorised );
+ m_aDeauthoriseButton->Show( bAlreadyAuthorised );
if ( m_bAdjustActive )
{
@@ -424,7 +434,7 @@ void ClientBox::RecalcAll()
}
if ( m_bHasScrollBar )
- m_aScrollBar.SetThumbPos( m_nTopIndex );
+ m_aScrollBar->SetThumbPos( m_nTopIndex );
}
}
@@ -487,7 +497,7 @@ void ClientBox::Paint( const Rectangle &/*rPaintRect*/ )
Size aSize( GetOutputSizePixel() );
if ( m_bHasScrollBar )
- aSize.Width() -= m_aScrollBar.GetSizePixel().Width();
+ aSize.Width() -= m_aScrollBar->GetSizePixel().Width();
const ::osl::MutexGuard aGuard( m_entriesMutex );
@@ -525,20 +535,20 @@ void ClientBox::SetupScrollBar()
if ( m_nTopIndex + aSize.Height() > nTotalHeight )
m_nTopIndex = nTotalHeight - aSize.Height();
- m_aScrollBar.SetPosSizePixel( Point( aSize.Width() - nScrBarSize, 0 ),
+ m_aScrollBar->SetPosSizePixel( Point( aSize.Width() - nScrBarSize, 0 ),
Size( nScrBarSize, aSize.Height() ) );
- m_aScrollBar.SetRangeMax( nTotalHeight );
- m_aScrollBar.SetVisibleSize( aSize.Height() );
- m_aScrollBar.SetPageSize( ( aSize.Height() * 4 ) / 5 );
- m_aScrollBar.SetLineSize( m_nStdHeight );
- m_aScrollBar.SetThumbPos( m_nTopIndex );
+ m_aScrollBar->SetRangeMax( nTotalHeight );
+ m_aScrollBar->SetVisibleSize( aSize.Height() );
+ m_aScrollBar->SetPageSize( ( aSize.Height() * 4 ) / 5 );
+ m_aScrollBar->SetLineSize( m_nStdHeight );
+ m_aScrollBar->SetThumbPos( m_nTopIndex );
if ( !m_bHasScrollBar )
- m_aScrollBar.Show();
+ m_aScrollBar->Show();
}
else if ( m_bHasScrollBar )
{
- m_aScrollBar.Hide();
+ m_aScrollBar->Hide();
m_nTopIndex = 0;
}
@@ -567,7 +577,7 @@ long ClientBox::PointToPos( const Point& rPos )
OUString ClientBox::getPin()
{
- return OUString::number( m_aPinBox.GetValue() );
+ return OUString::number( m_aPinBox->GetValue() );
}
void ClientBox::MouseButtonDown( const MouseEvent& rMEvt )
@@ -608,11 +618,11 @@ bool ClientBox::Notify( NotifyEvent& rNEvt )
const CommandWheelData* pData = rNEvt.GetCommandEvent()->GetWheelData();
if ( pData->GetMode() == CommandWheelMode::SCROLL )
{
- long nThumbPos = m_aScrollBar.GetThumbPos();
+ long nThumbPos = m_aScrollBar->GetThumbPos();
if ( pData->GetDelta() < 0 )
- m_aScrollBar.DoScroll( nThumbPos + m_nStdHeight );
+ m_aScrollBar->DoScroll( nThumbPos + m_nStdHeight );
else
- m_aScrollBar.DoScroll( nThumbPos - m_nStdHeight );
+ m_aScrollBar->DoScroll( nThumbPos - m_nStdHeight );
bHandled = true;
}
}
@@ -702,13 +712,13 @@ void ClientBox::populateEntries()
void ClientBox::DoScroll( long nDelta )
{
m_nTopIndex += nDelta;
- Point aNewSBPt( m_aScrollBar.GetPosPixel() );
+ Point aNewSBPt( m_aScrollBar->GetPosPixel() );
Rectangle aScrRect( Point(), GetOutputSizePixel() );
- aScrRect.Right() -= m_aScrollBar.GetSizePixel().Width();
+ aScrRect.Right() -= m_aScrollBar->GetSizePixel().Width();
Scroll( 0, -nDelta, aScrRect );
- m_aScrollBar.SetPosPixel( aNewSBPt );
+ m_aScrollBar->SetPosPixel( aNewSBPt );
}
IMPL_LINK( ClientBox, ScrollHdl, ScrollBar*, pScrBar )
diff --git a/sd/source/ui/dlg/RemoteDialogClientBox.hxx b/sd/source/ui/dlg/RemoteDialogClientBox.hxx
index 1dc481ebd79a..c40ac96212c1 100644
--- a/sd/source/ui/dlg/RemoteDialogClientBox.hxx
+++ b/sd/source/ui/dlg/RemoteDialogClientBox.hxx
@@ -101,11 +101,11 @@ class ClientBox:
Link m_aClickHdl;
Link m_aDeauthoriseHdl;
- NumericBox m_aPinBox;
- PushButton m_aDeauthoriseButton;
- Rectangle m_sPinTextRect;
+ VclPtr<NumericBox> m_aPinBox;
+ VclPtr<PushButton> m_aDeauthoriseButton;
+ Rectangle m_sPinTextRect;
- ScrollBar m_aScrollBar;
+ VclPtr<ScrollBar> m_aScrollBar;
com::sun::star::uno::Reference< ClientRemovedListener > m_xRemoveListener;
@@ -136,7 +136,8 @@ class ClientBox:
public:
ClientBox( vcl::Window* pParent, WinBits nStyle );
- virtual ~ClientBox();
+ virtual ~ClientBox();
+ virtual void dispose() SAL_OVERRIDE;
void MouseButtonDown( const MouseEvent& rMEvt ) SAL_OVERRIDE;
void Paint( const Rectangle &rPaintRect ) SAL_OVERRIDE;
diff --git a/sd/source/ui/dlg/animobjs.cxx b/sd/source/ui/dlg/animobjs.cxx
index 2881e392c239..2be1601d3c67 100644
--- a/sd/source/ui/dlg/animobjs.cxx
+++ b/sd/source/ui/dlg/animobjs.cxx
@@ -206,6 +206,11 @@ AnimationWindow::AnimationWindow(SfxBindings* pInBindings, SfxChildWindow *pCW,
AnimationWindow::~AnimationWindow()
{
+ dispose();
+}
+
+void AnimationWindow::dispose()
+{
delete pControllerItem;
for (size_t i = 0; i < m_FrameList.size(); ++i)
@@ -220,6 +225,8 @@ AnimationWindow::~AnimationWindow()
delete pMyDoc;
delete m_pCtlDisplay;
+
+ SfxDockingWindow::dispose();
}
IMPL_LINK_NOARG(AnimationWindow, ClickFirstHdl)
diff --git a/sd/source/ui/dlg/brkdlg.cxx b/sd/source/ui/dlg/brkdlg.cxx
index 6f1ebc68b54d..e36c5648c987 100644
--- a/sd/source/ui/dlg/brkdlg.cxx
+++ b/sd/source/ui/dlg/brkdlg.cxx
@@ -67,8 +67,14 @@ BreakDlg::BreakDlg(
BreakDlg::~BreakDlg()
{
+ dispose();
+}
+
+void BreakDlg::dispose()
+{
delete mpProgress;
delete pProgrInfo;
+ SfxModalDialog::dispose();
}
// Control-Handler for cancel button
diff --git a/sd/source/ui/dlg/copydlg.cxx b/sd/source/ui/dlg/copydlg.cxx
index c0b9b05f0b02..a66d6a041807 100644
--- a/sd/source/ui/dlg/copydlg.cxx
+++ b/sd/source/ui/dlg/copydlg.cxx
@@ -84,6 +84,11 @@ CopyDlg::CopyDlg(vcl::Window* pWindow, const SfxItemSet& rInAttrs,
CopyDlg::~CopyDlg()
{
+ dispose();
+}
+
+void CopyDlg::dispose()
+{
OUString& rStr = GetExtraData();
rStr = OUString::number(m_pNumFldCopies->GetValue());
@@ -108,6 +113,8 @@ CopyDlg::~CopyDlg()
rStr += OUString( TOKEN );
rStr += OUString::number( m_pLbEndColor->GetSelectEntryColor().GetColor() );
+
+ SfxModalDialog::dispose();
}
/**
diff --git a/sd/source/ui/dlg/dlgass.cxx b/sd/source/ui/dlg/dlgass.cxx
index 8ed91666fbd3..757028a0f4fc 100644
--- a/sd/source/ui/dlg/dlgass.cxx
+++ b/sd/source/ui/dlg/dlgass.cxx
@@ -1769,7 +1769,13 @@ IMPL_LINK_NOARG(AssistentDlg, FinishHdl)
AssistentDlg::~AssistentDlg()
{
+ dispose();
+}
+
+void AssistentDlg::dispose()
+{
delete mpImpl;
+ ModalDialog::dispose();
}
SfxObjectShellLock AssistentDlg::GetDocument()
diff --git a/sd/source/ui/dlg/dlgassim.cxx b/sd/source/ui/dlg/dlgassim.cxx
index 5eaab0185c9f..331c1afb0ddb 100644
--- a/sd/source/ui/dlg/dlgassim.cxx
+++ b/sd/source/ui/dlg/dlgassim.cxx
@@ -78,7 +78,13 @@ IMPL_LINK_NOARG(SdPageListControl, CheckButtonClickHdl)
SdPageListControl::~SdPageListControl()
{
+ dispose();
+}
+
+void SdPageListControl::dispose()
+{
delete m_pCheckButton;
+ SvTreeListBox::dispose();
}
void SdPageListControl::Clear()
diff --git a/sd/source/ui/dlg/dlgassim.hxx b/sd/source/ui/dlg/dlgassim.hxx
index 8e966f856323..ee39788cb136 100644
--- a/sd/source/ui/dlg/dlgassim.hxx
+++ b/sd/source/ui/dlg/dlgassim.hxx
@@ -37,6 +37,7 @@ private:
public:
SdPageListControl( vcl::Window* pParent, const WinBits nStyle );
virtual ~SdPageListControl();
+ virtual void dispose() SAL_OVERRIDE;
void Fill( SdDrawDocument* pDoc );
void Clear();
diff --git a/sd/source/ui/dlg/dlgctrls.cxx b/sd/source/ui/dlg/dlgctrls.cxx
index 10923287ac1b..0fc35a678fc2 100644
--- a/sd/source/ui/dlg/dlgctrls.cxx
+++ b/sd/source/ui/dlg/dlgctrls.cxx
@@ -40,7 +40,13 @@ FadeEffectLB::FadeEffectLB(vcl::Window* pParent, WinBits nStyle)
FadeEffectLB::~FadeEffectLB()
{
+ dispose();
+}
+
+void FadeEffectLB::dispose()
+{
delete mpImpl;
+ ListBox::dispose();
}
void FadeEffectLB::Fill()
diff --git a/sd/source/ui/dlg/dlgolbul.cxx b/sd/source/ui/dlg/dlgolbul.cxx
index c3a77103b247..b8fb42d9a9c7 100644
--- a/sd/source/ui/dlg/dlgolbul.cxx
+++ b/sd/source/ui/dlg/dlgolbul.cxx
@@ -138,7 +138,13 @@ OutlineBulletDlg::OutlineBulletDlg(
OutlineBulletDlg::~OutlineBulletDlg()
{
+ dispose();
+}
+
+void OutlineBulletDlg::dispose()
+{
delete pOutputSet;
+ SfxTabDialog::dispose();
}
void OutlineBulletDlg::PageCreated( sal_uInt16 nId, SfxTabPage &rPage )
diff --git a/sd/source/ui/dlg/docprev.cxx b/sd/source/ui/dlg/docprev.cxx
index e3f9a2a394c5..2929f46bed55 100644
--- a/sd/source/ui/dlg/docprev.cxx
+++ b/sd/source/ui/dlg/docprev.cxx
@@ -83,7 +83,13 @@ SdDocPreviewWin::SdDocPreviewWin( vcl::Window* pParent, const WinBits nStyle )
SdDocPreviewWin::~SdDocPreviewWin()
{
+ dispose();
+}
+
+void SdDocPreviewWin::dispose()
+{
delete pMetaFile;
+ Control::dispose();
}
Size SdDocPreviewWin::GetOptimalSize() const
diff --git a/sd/source/ui/dlg/headerfooterdlg.cxx b/sd/source/ui/dlg/headerfooterdlg.cxx
index e7590357f67e..b7c95485fff2 100644
--- a/sd/source/ui/dlg/headerfooterdlg.cxx
+++ b/sd/source/ui/dlg/headerfooterdlg.cxx
@@ -240,8 +240,14 @@ HeaderFooterDialog::HeaderFooterDialog( ViewShell* pViewShell, vcl::Window* pPar
HeaderFooterDialog::~HeaderFooterDialog()
{
+ dispose();
+}
+
+void HeaderFooterDialog::dispose()
+{
delete mpSlideTabPage;
delete mpNotesHandoutsTabPage;
+ TabDialog::dispose();
}
IMPL_LINK( HeaderFooterDialog, ActivatePageHdl, TabControl *, pTabCtrl )
diff --git a/sd/source/ui/dlg/navigatr.cxx b/sd/source/ui/dlg/navigatr.cxx
index f7b479162026..60e107404917 100644
--- a/sd/source/ui/dlg/navigatr.cxx
+++ b/sd/source/ui/dlg/navigatr.cxx
@@ -68,9 +68,9 @@ SdNavigatorWin::SdNavigatorWin(
SfxBindings* pInBindings,
const UpdateRequestFunctor& rUpdateRequest)
: vcl::Window( pParent, rSdResId )
- , maToolbox ( this, SdResId( 1 ) )
- , maTlbObjects( this, SdResId( TLB_OBJECTS ) )
- , maLbDocs ( this, SdResId( LB_DOCS ) )
+ , maToolbox ( new ToolBox( this, SdResId( 1 ) ) )
+ , maTlbObjects( new SdPageObjsTLB( this, SdResId( TLB_OBJECTS ) ) )
+ , maLbDocs ( new ListBox( this, SdResId( LB_DOCS ) ) )
, mpChildWinContext( pChWinCtxt )
, mbDocImported ( false )
// On changes of the DragType: adjust SelectionMode of TLB!
@@ -78,58 +78,58 @@ SdNavigatorWin::SdNavigatorWin(
, mpBindings ( pInBindings )
, maImageList ( SdResId( IL_NAVIGATR ) )
{
- maTlbObjects.SetViewFrame( mpBindings->GetDispatcher()->GetFrame() );
+ maTlbObjects->SetViewFrame( mpBindings->GetDispatcher()->GetFrame() );
FreeResource();
- maTlbObjects.SetAccessibleName(SD_RESSTR(STR_OBJECTS_TREE));
+ maTlbObjects->SetAccessibleName(SD_RESSTR(STR_OBJECTS_TREE));
mpNavigatorCtrlItem = new SdNavigatorControllerItem( SID_NAVIGATOR_STATE, this, mpBindings, rUpdateRequest);
mpPageNameCtrlItem = new SdPageNameControllerItem( SID_NAVIGATOR_PAGENAME, this, mpBindings, rUpdateRequest);
ApplyImageList(); // load images *before* calculating sizes to get something useful !!!
- Size aTbxSize( maToolbox.CalcWindowSizePixel() );
- maToolbox.SetOutputSizePixel( aTbxSize );
- maToolbox.SetSelectHdl( LINK( this, SdNavigatorWin, SelectToolboxHdl ) );
- maToolbox.SetClickHdl( LINK( this, SdNavigatorWin, ClickToolboxHdl ) );
- maToolbox.SetDropdownClickHdl( LINK(this, SdNavigatorWin, DropdownClickToolBoxHdl) );
- maToolbox.SetItemBits( TBI_DRAGTYPE, maToolbox.GetItemBits( TBI_DRAGTYPE ) | ToolBoxItemBits::DROPDOWNONLY );
+ Size aTbxSize( maToolbox->CalcWindowSizePixel() );
+ maToolbox->SetOutputSizePixel( aTbxSize );
+ maToolbox->SetSelectHdl( LINK( this, SdNavigatorWin, SelectToolboxHdl ) );
+ maToolbox->SetClickHdl( LINK( this, SdNavigatorWin, ClickToolboxHdl ) );
+ maToolbox->SetDropdownClickHdl( LINK(this, SdNavigatorWin, DropdownClickToolBoxHdl) );
+ maToolbox->SetItemBits( TBI_DRAGTYPE, maToolbox->GetItemBits( TBI_DRAGTYPE ) | ToolBoxItemBits::DROPDOWNONLY );
// Shape filter drop down menu.
- maToolbox.SetItemBits(
+ maToolbox->SetItemBits(
TBI_SHAPE_FILTER,
- maToolbox.GetItemBits(TBI_SHAPE_FILTER) | ToolBoxItemBits::DROPDOWNONLY);
+ maToolbox->GetItemBits(TBI_SHAPE_FILTER) | ToolBoxItemBits::DROPDOWNONLY);
// TreeListBox
// set position below toolbox
- long nListboxYPos = maToolbox.GetPosPixel().Y() + maToolbox.GetSizePixel().Height() + 4;
- maTlbObjects.setPosSizePixel( 0, nListboxYPos, 0, 0, WINDOW_POSSIZE_Y );
- maTlbObjects.SetDoubleClickHdl( LINK( this, SdNavigatorWin, ClickObjectHdl ) );
- maTlbObjects.SetSelectionMode( SINGLE_SELECTION );
+ long nListboxYPos = maToolbox->GetPosPixel().Y() + maToolbox->GetSizePixel().Height() + 4;
+ maTlbObjects->setPosSizePixel( 0, nListboxYPos, 0, 0, WINDOW_POSSIZE_Y );
+ maTlbObjects->SetDoubleClickHdl( LINK( this, SdNavigatorWin, ClickObjectHdl ) );
+ maTlbObjects->SetSelectionMode( SINGLE_SELECTION );
// set focus to listbox, otherwise it is in the toolbox which is only useful
// for keyboard navigation
- maTlbObjects.GrabFocus();
- maTlbObjects.SetSdNavigatorWinFlag(true);
+ maTlbObjects->GrabFocus();
+ maTlbObjects->SetSdNavigatorWinFlag(true);
// DragTypeListBox
- maLbDocs.SetSelectHdl( LINK( this, SdNavigatorWin, SelectDocumentHdl ) );
+ maLbDocs->SetSelectHdl( LINK( this, SdNavigatorWin, SelectDocumentHdl ) );
// set position below treelistbox
- nListboxYPos = maTlbObjects.GetPosPixel().Y() + maTlbObjects.GetSizePixel().Height() + 4;
- maLbDocs.setPosSizePixel( 0, nListboxYPos, 0, 0, WINDOW_POSSIZE_Y );
+ nListboxYPos = maTlbObjects->GetPosPixel().Y() + maTlbObjects->GetSizePixel().Height() + 4;
+ maLbDocs->setPosSizePixel( 0, nListboxYPos, 0, 0, WINDOW_POSSIZE_Y );
// assure that tool box is at least as wide as the tree list box
{
- const Size aTlbSize( maTlbObjects.GetOutputSizePixel() );
+ const Size aTlbSize( maTlbObjects->GetOutputSizePixel() );
if ( aTlbSize.Width() > aTbxSize.Width() )
{
- maToolbox.setPosSizePixel( 0, 0, aTlbSize.Width(), 0, WINDOW_POSSIZE_WIDTH );
- aTbxSize = maToolbox.GetOutputSizePixel();
+ maToolbox->setPosSizePixel( 0, 0, aTlbSize.Width(), 0, WINDOW_POSSIZE_WIDTH );
+ aTbxSize = maToolbox->GetOutputSizePixel();
}
}
// set min outputsize after all sizes are known
- const long nFullHeight = nListboxYPos + maLbDocs.GetSizePixel().Height() + 4;
+ const long nFullHeight = nListboxYPos + maLbDocs->GetSizePixel().Height() + 4;
maSize = GetOutputSizePixel();
if( maSize.Height() < nFullHeight )
{
@@ -137,7 +137,7 @@ SdNavigatorWin::SdNavigatorWin(
SetOutputSizePixel( maSize );
}
maMinSize = maSize;
- const long nMinWidth = 2*maToolbox.GetPosPixel().X() + aTbxSize.Width(); // never clip the toolbox
+ const long nMinWidth = 2*maToolbox->GetPosPixel().X() + aTbxSize.Width(); // never clip the toolbox
if( nMinWidth > maMinSize.Width() )
maMinSize.Width() = nMinWidth;
maMinSize.Height() -= 40;
@@ -152,8 +152,17 @@ SdNavigatorWin::SdNavigatorWin(
SdNavigatorWin::~SdNavigatorWin()
{
+ dispose();
+}
+
+void SdNavigatorWin::dispose()
+{
delete mpNavigatorCtrlItem;
delete mpPageNameCtrlItem;
+ maToolbox.disposeAndClear();
+ maTlbObjects.disposeAndClear();
+ maLbDocs.disposeAndClear();
+ vcl::Window::dispose();
}
//when object is marked , fresh the corresponding entry tree .
@@ -163,17 +172,17 @@ void SdNavigatorWin::FreshTree( const SdDrawDocument* pDoc )
sd::DrawDocShell* pDocShell = pNonConstDoc->GetDocSh();
OUString aDocShName( pDocShell->GetName() );
OUString aDocName = pDocShell->GetMedium()->GetName();
- maTlbObjects.SetSaveTreeItemStateFlag(true); //Added by yanjun for sym2_6385
- maTlbObjects.Clear();
- maTlbObjects.Fill( pDoc, false, aDocName ); // Nur normale Seiten
- maTlbObjects.SetSaveTreeItemStateFlag(false); //Added by yanjun for sym2_6385
+ maTlbObjects->SetSaveTreeItemStateFlag(true); //Added by yanjun for sym2_6385
+ maTlbObjects->Clear();
+ maTlbObjects->Fill( pDoc, false, aDocName ); // Nur normale Seiten
+ maTlbObjects->SetSaveTreeItemStateFlag(false); //Added by yanjun for sym2_6385
RefreshDocumentLB();
- maLbDocs.SelectEntry( aDocShName );
+ maLbDocs->SelectEntry( aDocShName );
}
void SdNavigatorWin::FreshEntry( )
{
- maTlbObjects.FreshCurEntry();
+ maTlbObjects->FreshCurEntry();
}
void SdNavigatorWin::InitTreeLB( const SdDrawDocument* pDoc )
@@ -189,35 +198,35 @@ void SdNavigatorWin::InitTreeLB( const SdDrawDocument* pDoc )
{
::sd::FrameView* pFrameView = pViewShell->GetFrameView();
if (pFrameView != NULL)
- maTlbObjects.SetShowAllShapes(pFrameView->IsNavigatorShowingAllShapes(), false);
+ maTlbObjects->SetShowAllShapes(pFrameView->IsNavigatorShowingAllShapes(), false);
}
// Disable the shape filter drop down menu when there is a running slide
// show.
if (pViewShell!=NULL && sd::SlideShow::IsRunning( pViewShell->GetViewShellBase() ))
- maToolbox.EnableItem(TBI_SHAPE_FILTER, false);
+ maToolbox->EnableItem(TBI_SHAPE_FILTER, false);
else
- maToolbox.EnableItem(TBI_SHAPE_FILTER);
+ maToolbox->EnableItem(TBI_SHAPE_FILTER);
- if( !maTlbObjects.IsEqualToDoc( pDoc ) )
+ if( !maTlbObjects->IsEqualToDoc( pDoc ) )
{
OUString aDocName = pDocShell->GetMedium()->GetName();
- maTlbObjects.Clear();
- maTlbObjects.Fill( pDoc, false, aDocName ); // only normal pages
+ maTlbObjects->Clear();
+ maTlbObjects->Fill( pDoc, false, aDocName ); // only normal pages
RefreshDocumentLB();
- maLbDocs.SelectEntry( aDocShName );
+ maLbDocs->SelectEntry( aDocShName );
}
else
{
- maLbDocs.SetNoSelection();
- maLbDocs.SelectEntry( aDocShName );
+ maLbDocs->SetNoSelection();
+ maLbDocs->SelectEntry( aDocShName );
// commented in order to fix 30246
-// if( maLbDocs.GetSelectEntryCount() == 0 )
+// if( maLbDocs->GetSelectEntryCount() == 0 )
{
RefreshDocumentLB();
- maLbDocs.SelectEntry( aDocShName );
+ maLbDocs->SelectEntry( aDocShName );
}
}
@@ -235,7 +244,7 @@ NavigatorDragType SdNavigatorWin::GetNavigatorDragType()
NavigatorDragType eDT = meDragType;
NavDocInfo* pInfo = GetDocInfo();
- if( ( eDT == NAVIGATOR_DRAGTYPE_LINK ) && ( ( pInfo && !pInfo->HasName() ) || !maTlbObjects.IsLinkableSelected() ) )
+ if( ( eDT == NAVIGATOR_DRAGTYPE_LINK ) && ( ( pInfo && !pInfo->HasName() ) || !maTlbObjects->IsLinkableSelected() ) )
eDT = NAVIGATOR_DRAGTYPE_NONE;
return eDT;
@@ -252,7 +261,7 @@ sd::DrawDocShell* SdNavigatorWin::GetDrawDocShell( const SdDrawDocument* pDoc )
IMPL_LINK_NOARG(SdNavigatorWin, SelectToolboxHdl)
{
- sal_uInt16 nId = maToolbox.GetCurItemId();
+ sal_uInt16 nId = maToolbox->GetCurItemId();
sal_uInt16 nSId = 0;
PageJump ePage = PAGE_NONE;
@@ -307,7 +316,7 @@ IMPL_LINK_NOARG(SdNavigatorWin, ClickToolboxHdl)
IMPL_LINK( SdNavigatorWin, DropdownClickToolBoxHdl, ToolBox*, pBox )
{
- sal_uInt16 nId = maToolbox.GetCurItemId();
+ sal_uInt16 nId = maToolbox->GetCurItemId();
switch( nId )
{
@@ -339,7 +348,7 @@ IMPL_LINK( SdNavigatorWin, DropdownClickToolBoxHdl, ToolBox*, pBox )
}
NavDocInfo* pInfo = GetDocInfo();
- if( ( pInfo && !pInfo->HasName() ) || !maTlbObjects.IsLinkableSelected() )
+ if( ( pInfo && !pInfo->HasName() ) || !maTlbObjects->IsLinkableSelected() )
{
pMenu->EnableItem( NAVIGATOR_DRAGTYPE_LINK, false );
pMenu->EnableItem( NAVIGATOR_DRAGTYPE_URL, false );
@@ -349,7 +358,7 @@ IMPL_LINK( SdNavigatorWin, DropdownClickToolBoxHdl, ToolBox*, pBox )
pMenu->CheckItem( (sal_uInt16)meDragType );
pMenu->SetSelectHdl( LINK( this, SdNavigatorWin, MenuSelectHdl ) );
- pMenu->Execute( this, maToolbox.GetItemRect( nId ), POPUPMENU_EXECUTE_DOWN );
+ pMenu->Execute( this, maToolbox->GetItemRect( nId ), POPUPMENU_EXECUTE_DOWN );
pBox->EndSelection();
delete pMenu;
}
@@ -366,13 +375,13 @@ IMPL_LINK( SdNavigatorWin, DropdownClickToolBoxHdl, ToolBox*, pBox )
nShowAllShapesFilter,
SD_RESSTR(STR_NAVIGATOR_SHOW_ALL_SHAPES));
- if (maTlbObjects.GetShowAllShapes())
+ if (maTlbObjects->GetShowAllShapes())
pMenu->CheckItem(nShowAllShapesFilter);
else
pMenu->CheckItem(nShowNamedShapesFilter);
pMenu->SetSelectHdl( LINK( this, SdNavigatorWin, ShapeFilterCallback ) );
- pMenu->Execute( this, maToolbox.GetItemRect( nId ), POPUPMENU_EXECUTE_DOWN );
+ pMenu->Execute( this, maToolbox->GetItemRect( nId ), POPUPMENU_EXECUTE_DOWN );
pBox->EndSelection();
delete pMenu;
}
@@ -383,14 +392,14 @@ IMPL_LINK( SdNavigatorWin, DropdownClickToolBoxHdl, ToolBox*, pBox )
IMPL_LINK_NOARG(SdNavigatorWin, ClickObjectHdl)
{
- if( !mbDocImported || maLbDocs.GetSelectEntryPos() != 0 )
+ if( !mbDocImported || maLbDocs->GetSelectEntryPos() != 0 )
{
NavDocInfo* pInfo = GetDocInfo();
// if it is the active window, we jump to the page
if( pInfo && pInfo->IsActive() )
{
- OUString aStr( maTlbObjects.GetSelectEntry() );
+ OUString aStr( maTlbObjects->GetSelectEntry() );
if( !aStr.isEmpty() )
{
@@ -398,7 +407,7 @@ IMPL_LINK_NOARG(SdNavigatorWin, ClickObjectHdl)
mpBindings->GetDispatcher()->Execute(
SID_NAVIGATOR_OBJECT, SfxCallMode::SLOT | SfxCallMode::RECORD, &aItem, 0L );
//set sign variable
- maTlbObjects.MarkCurEntry(aStr);
+ maTlbObjects->MarkCurEntry(aStr);
// moved here from SetGetFocusHdl. Reset the
// focus only if something has been selected in the
@@ -419,8 +428,8 @@ IMPL_LINK_NOARG(SdNavigatorWin, ClickObjectHdl)
IMPL_LINK_NOARG(SdNavigatorWin, SelectDocumentHdl)
{
- OUString aStrLb = maLbDocs.GetSelectEntry();
- long nPos = maLbDocs.GetSelectEntryPos();
+ OUString aStrLb = maLbDocs->GetSelectEntry();
+ long nPos = maLbDocs->GetSelectEntryPos();
bool bFound = false;
::sd::DrawDocShell* pDocShell = NULL;
NavDocInfo* pInfo = GetDocInfo();
@@ -441,18 +450,18 @@ IMPL_LINK_NOARG(SdNavigatorWin, SelectDocumentHdl)
if( bFound )
{
SdDrawDocument* pDoc = pDocShell->GetDoc();
- if( !maTlbObjects.IsEqualToDoc( pDoc ) )
+ if( !maTlbObjects->IsEqualToDoc( pDoc ) )
{
SdDrawDocument* pNonConstDoc = (SdDrawDocument*) pDoc; // const as const can...
::sd::DrawDocShell* pNCDocShell = pNonConstDoc->GetDocSh();
OUString aDocName = pNCDocShell->GetMedium()->GetName();
- maTlbObjects.Clear();
- maTlbObjects.Fill( pDoc, false, aDocName ); // only normal pages
+ maTlbObjects->Clear();
+ maTlbObjects->Fill( pDoc, false, aDocName ); // only normal pages
}
}
// check if link or url is possible
- if( ( pInfo && !pInfo->HasName() ) || !maTlbObjects.IsLinkableSelected() || ( meDragType != NAVIGATOR_DRAGTYPE_EMBEDDED ) )
+ if( ( pInfo && !pInfo->HasName() ) || !maTlbObjects->IsLinkableSelected() || ( meDragType != NAVIGATOR_DRAGTYPE_EMBEDDED ) )
{
meDragType = NAVIGATOR_DRAGTYPE_EMBEDDED;
SetDragImage();
@@ -484,13 +493,13 @@ IMPL_LINK( SdNavigatorWin, MenuSelectHdl, Menu *, pMenu )
if( meDragType == NAVIGATOR_DRAGTYPE_URL )
{
// patch, prevents endless loop
- if( maTlbObjects.GetSelectionCount() > 1 )
- maTlbObjects.SelectAll( false );
+ if( maTlbObjects->GetSelectionCount() > 1 )
+ maTlbObjects->SelectAll( false );
- maTlbObjects.SetSelectionMode( SINGLE_SELECTION );
+ maTlbObjects->SetSelectionMode( SINGLE_SELECTION );
}
else
- maTlbObjects.SetSelectionMode( MULTIPLE_SELECTION );
+ maTlbObjects->SetSelectionMode( MULTIPLE_SELECTION );
}
}
return 0;
@@ -500,7 +509,7 @@ IMPL_LINK( SdNavigatorWin, ShapeFilterCallback, Menu *, pMenu )
{
if (pMenu != NULL)
{
- bool bShowAllShapes (maTlbObjects.GetShowAllShapes());
+ bool bShowAllShapes (maTlbObjects->GetShowAllShapes());
sal_uInt16 nMenuId (pMenu->GetCurItemId());
switch (nMenuId)
{
@@ -518,7 +527,7 @@ IMPL_LINK( SdNavigatorWin, ShapeFilterCallback, Menu *, pMenu )
break;
}
- maTlbObjects.SetShowAllShapes(bShowAllShapes, true);
+ maTlbObjects->SetShowAllShapes(bShowAllShapes, true);
// Remember the selection in the FrameView.
NavDocInfo* pInfo = GetDocInfo();
@@ -554,26 +563,26 @@ void SdNavigatorWin::Resize()
aDiffSize.Height() = aWinSize.Height() - maSize.Height();
// change size of Toolbox
- Size aObjSize( maToolbox.GetOutputSizePixel() );
+ Size aObjSize( maToolbox->GetOutputSizePixel() );
aObjSize.Width() += aDiffSize.Width();
- maToolbox.SetOutputSizePixel( aObjSize );
+ maToolbox->SetOutputSizePixel( aObjSize );
// change size of TreeLB
- aObjSize = maTlbObjects.GetSizePixel();
+ aObjSize = maTlbObjects->GetSizePixel();
aObjSize.Width() += aDiffSize.Width();
- aObjSize.Height() = maLbDocs.GetPosPixel().Y() + aDiffSize.Height() -
- maTlbObjects.GetPosPixel().Y() - 4;
- maTlbObjects.SetSizePixel( aObjSize );
+ aObjSize.Height() = maLbDocs->GetPosPixel().Y() + aDiffSize.Height() -
+ maTlbObjects->GetPosPixel().Y() - 4;
+ maTlbObjects->SetSizePixel( aObjSize );
Point aPt( 0, aDiffSize.Height() );
// move other controls (DocumentLB)
- maLbDocs.Hide();
- aObjSize = maLbDocs.GetOutputSizePixel();
+ maLbDocs->Hide();
+ aObjSize = maLbDocs->GetOutputSizePixel();
aObjSize.Width() += aDiffSize.Width();
- maLbDocs.SetPosPixel( maLbDocs.GetPosPixel() + aPt );
- maLbDocs.SetOutputSizePixel( aObjSize );
- maLbDocs.Show();
+ maLbDocs->SetPosPixel( maLbDocs->GetPosPixel() + aPt );
+ maLbDocs->SetOutputSizePixel( aObjSize );
+ maLbDocs->Show();
maSize = aWinSize;
}
@@ -623,19 +632,19 @@ bool SdNavigatorWin::InsertFile(const OUString& rFileName)
if (pMedium->IsStorage())
{
// Now depending on mode:
- // maTlbObjects.SetSelectionMode(MULTIPLE_SELECTION);
+ // maTlbObjects->SetSelectionMode(MULTIPLE_SELECTION);
// handover of ownership of pMedium;
- SdDrawDocument* pDropDoc = maTlbObjects.GetBookmarkDoc(pMedium);
+ SdDrawDocument* pDropDoc = maTlbObjects->GetBookmarkDoc(pMedium);
if (pDropDoc)
{
- maTlbObjects.Clear();
+ maTlbObjects->Clear();
maDropFileName = aFileName;
- if( !maTlbObjects.IsEqualToDoc( pDropDoc ) )
+ if( !maTlbObjects->IsEqualToDoc( pDropDoc ) )
{
// only normal pages
- maTlbObjects.Fill(pDropDoc, false, maDropFileName);
+ maTlbObjects->Fill(pDropDoc, false, maDropFileName);
RefreshDocumentLB( &maDropFileName );
}
}
@@ -662,28 +671,28 @@ void SdNavigatorWin::RefreshDocumentLB( const OUString* pDocName )
if( pDocName )
{
if( mbDocImported )
- maLbDocs.RemoveEntry( 0 );
+ maLbDocs->RemoveEntry( 0 );
- maLbDocs.InsertEntry( *pDocName, 0 );
+ maLbDocs->InsertEntry( *pDocName, 0 );
mbDocImported = true;
}
else
{
- nPos = maLbDocs.GetSelectEntryPos();
+ nPos = maLbDocs->GetSelectEntryPos();
if( nPos == LISTBOX_ENTRY_NOTFOUND )
nPos = 0;
OUString aStr;
if( mbDocImported )
- aStr = maLbDocs.GetEntry( 0 );
+ aStr = maLbDocs->GetEntry( 0 );
- maLbDocs.Clear();
+ maLbDocs->Clear();
// delete list of DocInfos
maDocList.clear();
if( mbDocImported )
- maLbDocs.InsertEntry( aStr, 0 );
+ maLbDocs->InsertEntry( aStr, 0 );
::sd::DrawDocShell* pCurrentDocShell =
PTR_CAST(::sd::DrawDocShell, SfxObjectShell::Current() );
@@ -707,7 +716,7 @@ void SdNavigatorWin::RefreshDocumentLB( const OUString* pDocName )
// is shown in url notation!
aStr = pDocShell->GetName();
- maLbDocs.InsertEntry( aStr, LISTBOX_APPEND );
+ maLbDocs->InsertEntry( aStr, LISTBOX_APPEND );
if( pDocShell == pCurrentDocShell )
aInfo.SetActive();
@@ -719,7 +728,7 @@ void SdNavigatorWin::RefreshDocumentLB( const OUString* pDocName )
pSfxDocShell = SfxObjectShell::GetNext( *pSfxDocShell, 0, false );
}
}
- maLbDocs.SelectEntryPos( nPos );
+ maLbDocs->SelectEntryPos( nPos );
}
sal_uInt16 SdNavigatorWin::GetDragTypeSdResId( NavigatorDragType eDT, bool bImage )
@@ -741,7 +750,7 @@ sal_uInt16 SdNavigatorWin::GetDragTypeSdResId( NavigatorDragType eDT, bool bImag
NavDocInfo* SdNavigatorWin::GetDocInfo()
{
- sal_uInt32 nPos = maLbDocs.GetSelectEntryPos();
+ sal_uInt32 nPos = maLbDocs->GetSelectEntryPos();
if( mbDocImported )
{
@@ -834,14 +843,14 @@ void SdNavigatorWin::DataChanged( const DataChangedEvent& rDCEvt )
void SdNavigatorWin::SetDragImage()
{
- maToolbox.SetItemImage( TBI_DRAGTYPE, maToolbox.GetImageList().GetImage( GetDragTypeSdResId( meDragType, true ) ) );
+ maToolbox->SetItemImage( TBI_DRAGTYPE, maToolbox->GetImageList().GetImage( GetDragTypeSdResId( meDragType, true ) ) );
}
void SdNavigatorWin::ApplyImageList()
{
- maToolbox.SetImageList( maImageList );
- maToolbox.SetItemImage(TBI_SHAPE_FILTER, Image(BitmapEx(SdResId(BMP_GRAPHIC))));
+ maToolbox->SetImageList( maImageList );
+ maToolbox->SetItemImage(TBI_SHAPE_FILTER, Image(BitmapEx(SdResId(BMP_GRAPHIC))));
SetDragImage();
}
@@ -871,17 +880,17 @@ void SdNavigatorControllerItem::StateChanged( sal_uInt16 nSId,
// pen
if( nState & NAVBTN_PEN_ENABLED &&
- !pNavigatorWin->maToolbox.IsItemEnabled( TBI_PEN ) )
- pNavigatorWin->maToolbox.EnableItem( TBI_PEN );
+ !pNavigatorWin->maToolbox->IsItemEnabled( TBI_PEN ) )
+ pNavigatorWin->maToolbox->EnableItem( TBI_PEN );
if( nState & NAVBTN_PEN_DISABLED &&
- pNavigatorWin->maToolbox.IsItemEnabled( TBI_PEN ) )
- pNavigatorWin->maToolbox.EnableItem( TBI_PEN, false );
+ pNavigatorWin->maToolbox->IsItemEnabled( TBI_PEN ) )
+ pNavigatorWin->maToolbox->EnableItem( TBI_PEN, false );
if( nState & NAVBTN_PEN_CHECKED &&
- !pNavigatorWin->maToolbox.IsItemChecked( TBI_PEN ) )
- pNavigatorWin->maToolbox.CheckItem( TBI_PEN );
+ !pNavigatorWin->maToolbox->IsItemChecked( TBI_PEN ) )
+ pNavigatorWin->maToolbox->CheckItem( TBI_PEN );
if( nState & NAVBTN_PEN_UNCHECKED &&
- pNavigatorWin->maToolbox.IsItemChecked( TBI_PEN ) )
- pNavigatorWin->maToolbox.CheckItem( TBI_PEN, false );
+ pNavigatorWin->maToolbox->IsItemChecked( TBI_PEN ) )
+ pNavigatorWin->maToolbox->CheckItem( TBI_PEN, false );
// only if doc in LB is the active
NavDocInfo* pInfo = pNavigatorWin->GetDocInfo();
@@ -889,35 +898,35 @@ void SdNavigatorControllerItem::StateChanged( sal_uInt16 nSId,
{
// First
if( nState & NAVBTN_FIRST_ENABLED &&
- !pNavigatorWin->maToolbox.IsItemEnabled( TBI_FIRST ) )
- pNavigatorWin->maToolbox.EnableItem( TBI_FIRST );
+ !pNavigatorWin->maToolbox->IsItemEnabled( TBI_FIRST ) )
+ pNavigatorWin->maToolbox->EnableItem( TBI_FIRST );
if( nState & NAVBTN_FIRST_DISABLED &&
- pNavigatorWin->maToolbox.IsItemEnabled( TBI_FIRST ) )
- pNavigatorWin->maToolbox.EnableItem( TBI_FIRST, false );
+ pNavigatorWin->maToolbox->IsItemEnabled( TBI_FIRST ) )
+ pNavigatorWin->maToolbox->EnableItem( TBI_FIRST, false );
// Prev
if( nState & NAVBTN_PREV_ENABLED &&
- !pNavigatorWin->maToolbox.IsItemEnabled( TBI_PREVIOUS ) )
- pNavigatorWin->maToolbox.EnableItem( TBI_PREVIOUS );
+ !pNavigatorWin->maToolbox->IsItemEnabled( TBI_PREVIOUS ) )
+ pNavigatorWin->maToolbox->EnableItem( TBI_PREVIOUS );
if( nState & NAVBTN_PREV_DISABLED &&
- pNavigatorWin->maToolbox.IsItemEnabled( TBI_PREVIOUS ) )
- pNavigatorWin->maToolbox.EnableItem( TBI_PREVIOUS, false );
+ pNavigatorWin->maToolbox->IsItemEnabled( TBI_PREVIOUS ) )
+ pNavigatorWin->maToolbox->EnableItem( TBI_PREVIOUS, false );
// Last
if( nState & NAVBTN_LAST_ENABLED &&
- !pNavigatorWin->maToolbox.IsItemEnabled( TBI_LAST ) )
- pNavigatorWin->maToolbox.EnableItem( TBI_LAST );
+ !pNavigatorWin->maToolbox->IsItemEnabled( TBI_LAST ) )
+ pNavigatorWin->maToolbox->EnableItem( TBI_LAST );
if( nState & NAVBTN_LAST_DISABLED &&
- pNavigatorWin->maToolbox.IsItemEnabled( TBI_LAST ) )
- pNavigatorWin->maToolbox.EnableItem( TBI_LAST, false );
+ pNavigatorWin->maToolbox->IsItemEnabled( TBI_LAST ) )
+ pNavigatorWin->maToolbox->EnableItem( TBI_LAST, false );
// Next
if( nState & NAVBTN_NEXT_ENABLED &&
- !pNavigatorWin->maToolbox.IsItemEnabled( TBI_NEXT ) )
- pNavigatorWin->maToolbox.EnableItem( TBI_NEXT );
+ !pNavigatorWin->maToolbox->IsItemEnabled( TBI_NEXT ) )
+ pNavigatorWin->maToolbox->EnableItem( TBI_NEXT );
if( nState & NAVBTN_NEXT_DISABLED &&
- pNavigatorWin->maToolbox.IsItemEnabled( TBI_NEXT ) )
- pNavigatorWin->maToolbox.EnableItem( TBI_NEXT, false );
+ pNavigatorWin->maToolbox->IsItemEnabled( TBI_NEXT ) )
+ pNavigatorWin->maToolbox->EnableItem( TBI_NEXT, false );
if( nState & NAVTLB_UPDATE )
{
@@ -956,14 +965,14 @@ void SdPageNameControllerItem::StateChanged( sal_uInt16 nSId,
DBG_ASSERT( pStateItem, "SfxStringItem expected");
OUString aPageName = pStateItem->GetValue();
- if( !pNavigatorWin->maTlbObjects.HasSelectedChildren( aPageName ) )
+ if( !pNavigatorWin->maTlbObjects->HasSelectedChildren( aPageName ) )
{
- if( pNavigatorWin->maTlbObjects.GetSelectionMode() == MULTIPLE_SELECTION )
+ if( pNavigatorWin->maTlbObjects->GetSelectionMode() == MULTIPLE_SELECTION )
{
// because otherwise it is always additional select
- pNavigatorWin->maTlbObjects.SelectAll( false );
+ pNavigatorWin->maTlbObjects->SelectAll( false );
}
- pNavigatorWin->maTlbObjects.SelectEntry( aPageName );
+ pNavigatorWin->maTlbObjects->SelectEntry( aPageName );
}
}
}
diff --git a/sd/source/ui/dlg/prltempl.cxx b/sd/source/ui/dlg/prltempl.cxx
index e2330f9f6b2f..0d8520b5ad66 100644
--- a/sd/source/ui/dlg/prltempl.cxx
+++ b/sd/source/ui/dlg/prltempl.cxx
@@ -223,7 +223,13 @@ SdPresLayoutTemplateDlg::SdPresLayoutTemplateDlg( SfxObjectShell* pDocSh,
SdPresLayoutTemplateDlg::~SdPresLayoutTemplateDlg()
{
+ dispose();
+}
+
+void SdPresLayoutTemplateDlg::dispose()
+{
delete pOutSet;
+ SfxTabDialog::dispose();
}
void SdPresLayoutTemplateDlg::PageCreated( sal_uInt16 nId, SfxTabPage &rPage )
diff --git a/sd/source/ui/dlg/sdtreelb.cxx b/sd/source/ui/dlg/sdtreelb.cxx
index 12c2bcb08ebc..4b8d11f6728f 100644
--- a/sd/source/ui/dlg/sdtreelb.cxx
+++ b/sd/source/ui/dlg/sdtreelb.cxx
@@ -255,11 +255,17 @@ SdPageObjsTLB::SdPageObjsTLB( vcl::Window* pParentWin, WinBits nStyle )
SdPageObjsTLB::~SdPageObjsTLB()
{
+ dispose();
+}
+
+void SdPageObjsTLB::dispose()
+{
if ( mpBookmarkDoc )
CloseBookmarkDoc();
else
// no document was created from mpMedium, so this object is still the owner of it
delete mpMedium;
+ SvTreeListBox::dispose();
}
// helper function for GetEntryAltText and GetEntryLongDescription
diff --git a/sd/source/ui/inc/BreakDlg.hxx b/sd/source/ui/inc/BreakDlg.hxx
index bddf639c16a3..13aab79c025b 100644
--- a/sd/source/ui/inc/BreakDlg.hxx
+++ b/sd/source/ui/inc/BreakDlg.hxx
@@ -53,6 +53,7 @@ public:
sal_uLong nSumActionCount,
sal_uLong nObjCount);
virtual ~BreakDlg();
+ virtual void dispose() SAL_OVERRIDE;
short Execute() SAL_OVERRIDE;
diff --git a/sd/source/ui/inc/DrawViewShell.hxx b/sd/source/ui/inc/DrawViewShell.hxx
index 1eb4498b423b..75be3ef8606a 100644
--- a/sd/source/ui/inc/DrawViewShell.hxx
+++ b/sd/source/ui/inc/DrawViewShell.hxx
@@ -279,7 +279,7 @@ public:
void UnlockInput();
bool IsInputLocked() const { return mnLockCount > 0UL; }
- sal_uInt16 GetCurPageId() { return( maTabControl.GetCurPageId() ); }
+ sal_uInt16 GetCurPageId() { return maTabControl->GetCurPageId(); }
/** Show controls of the UI or hide them, depending on the given flag.
Do not call this method directly. Call the method at ViewShellBase
@@ -345,7 +345,7 @@ public:
/** Return a pointer to the tab control for pages.
*/
- TabControl& GetPageTabControl (void) { return maTabControl;}
+ TabControl& GetPageTabControl() { return *maTabControl.get(); }
/** Return a pointer to the tab control for layers.
*/
@@ -384,7 +384,7 @@ protected:
Rectangle maMarkRect;
Point maMousePos;
bool mbMousePosFreezed;
- TabControl maTabControl;
+ VclPtr<TabControl> maTabControl;
EditMode meEditMode;
PageKind mePageKind;
bool mbZoomOnPage;
diff --git a/sd/source/ui/inc/OutlineBulletDlg.hxx b/sd/source/ui/inc/OutlineBulletDlg.hxx
index 19ae1f8cad0e..5a88788bfc73 100644
--- a/sd/source/ui/inc/OutlineBulletDlg.hxx
+++ b/sd/source/ui/inc/OutlineBulletDlg.hxx
@@ -38,6 +38,7 @@ public:
const SfxItemSet* pAttr,
::sd::View* pView );
virtual ~OutlineBulletDlg ();
+ virtual void dispose() SAL_OVERRIDE;
const SfxItemSet* GetOutputItemSet() const;
diff --git a/sd/source/ui/inc/Ruler.hxx b/sd/source/ui/inc/Ruler.hxx
index 956585e3a35e..5ca70571aa6b 100644
--- a/sd/source/ui/inc/Ruler.hxx
+++ b/sd/source/ui/inc/Ruler.hxx
@@ -41,6 +41,7 @@ public:
SfxBindings& rBindings,
WinBits nWinStyle);
virtual ~Ruler (void);
+ virtual void dispose() SAL_OVERRIDE;
void SetNullOffset(const Point& rOffset);
diff --git a/sd/source/ui/inc/Window.hxx b/sd/source/ui/inc/Window.hxx
index dca72fbdc519..9e81c7645184 100644
--- a/sd/source/ui/inc/Window.hxx
+++ b/sd/source/ui/inc/Window.hxx
@@ -46,6 +46,7 @@ class Window
public:
Window (vcl::Window* pParent);
virtual ~Window (void);
+ virtual void dispose() SAL_OVERRIDE;
void SetViewShell (ViewShell* pViewSh);
diff --git a/sd/source/ui/inc/animobjs.hxx b/sd/source/ui/inc/animobjs.hxx
index 45a9a3e8d354..24ec9e859dd4 100644
--- a/sd/source/ui/inc/animobjs.hxx
+++ b/sd/source/ui/inc/animobjs.hxx
@@ -85,6 +85,7 @@ class AnimationWindow : public SfxDockingWindow
public:
AnimationWindow(SfxBindings* pBindings, SfxChildWindow *pCW, vcl::Window* pParent);
virtual ~AnimationWindow();
+ virtual void dispose() SAL_OVERRIDE;
void AddObj( ::sd::View& rView );
void CreateAnimObj( ::sd::View& rView );
diff --git a/sd/source/ui/inc/copydlg.hxx b/sd/source/ui/inc/copydlg.hxx
index 7a9d696f62e1..e0d1237218c4 100644
--- a/sd/source/ui/inc/copydlg.hxx
+++ b/sd/source/ui/inc/copydlg.hxx
@@ -42,6 +42,7 @@ public:
CopyDlg( vcl::Window* pWindow, const SfxItemSet& rInAttrs,
const XColorListRef &pColList, ::sd::View* pView );
virtual ~CopyDlg();
+ virtual void dispose() SAL_OVERRIDE;
void GetAttr( SfxItemSet& rOutAttrs );
void Reset();
diff --git a/sd/source/ui/inc/dlgass.hxx b/sd/source/ui/inc/dlgass.hxx
index 4ee19ec4abe2..b9f9136e2fd3 100644
--- a/sd/source/ui/inc/dlgass.hxx
+++ b/sd/source/ui/inc/dlgass.hxx
@@ -43,6 +43,7 @@ private:
public:
AssistentDlg(vcl::Window* pParent, bool bAutoPilot);
virtual ~AssistentDlg();
+ virtual void dispose() SAL_OVERRIDE;
DECL_LINK( FinishHdl, void * );
diff --git a/sd/source/ui/inc/dlgctrls.hxx b/sd/source/ui/inc/dlgctrls.hxx
index daa1ad28ac4f..5cb90587b76b 100644
--- a/sd/source/ui/inc/dlgctrls.hxx
+++ b/sd/source/ui/inc/dlgctrls.hxx
@@ -37,7 +37,8 @@ class SD_DLLPUBLIC FadeEffectLB : public ListBox
public:
FadeEffectLB(vcl::Window* pParent, WinBits nStyle);
virtual ~FadeEffectLB();
- void Fill();
+ virtual void dispose() SAL_OVERRIDE;
+ void Fill();
/* void selectEffectFromPage( SdPage* pPage ); */
void applySelected( SdPage* pSlide ) const;
diff --git a/sd/source/ui/inc/docprev.hxx b/sd/source/ui/inc/docprev.hxx
index b4d3b28a8c73..ea1e5876211d 100644
--- a/sd/source/ui/inc/docprev.hxx
+++ b/sd/source/ui/inc/docprev.hxx
@@ -65,6 +65,7 @@ protected:
public:
SdDocPreviewWin( vcl::Window* pParent, const WinBits nStyle );
virtual ~SdDocPreviewWin();
+ virtual void dispose() SAL_OVERRIDE;
void SetObjectShell( SfxObjectShell* pObj, sal_uInt16 nShowPage = 0 );
virtual void Resize() SAL_OVERRIDE;
void startPreview();
diff --git a/sd/source/ui/inc/headerfooterdlg.hxx b/sd/source/ui/inc/headerfooterdlg.hxx
index 6f19a555b962..558e6487878b 100644
--- a/sd/source/ui/inc/headerfooterdlg.hxx
+++ b/sd/source/ui/inc/headerfooterdlg.hxx
@@ -69,6 +69,7 @@ private:
public:
HeaderFooterDialog( ViewShell* pViewShell, vcl::Window* pParent, SdDrawDocument* pDoc, SdPage* pCurrentPage );
virtual ~HeaderFooterDialog();
+ virtual void dispose() SAL_OVERRIDE;
void ApplyToAll();
void Apply();
diff --git a/sd/source/ui/inc/navigatr.hxx b/sd/source/ui/inc/navigatr.hxx
index fa388da27ea7..96654145ac78 100644
--- a/sd/source/ui/inc/navigatr.hxx
+++ b/sd/source/ui/inc/navigatr.hxx
@@ -98,6 +98,7 @@ public:
SfxBindings* pBindings,
const UpdateRequestFunctor& rUpdateRequest);
virtual ~SdNavigatorWin();
+ virtual void dispose() SAL_OVERRIDE;
virtual void KeyInput( const KeyEvent& rKEvt ) SAL_OVERRIDE;
@@ -118,9 +119,9 @@ private:
friend class SdNavigatorControllerItem;
friend class SdPageNameControllerItem;
- ToolBox maToolbox;
- SdPageObjsTLB maTlbObjects;
- ListBox maLbDocs;
+ VclPtr<ToolBox> maToolbox;
+ VclPtr<SdPageObjsTLB> maTlbObjects;
+ VclPtr<ListBox> maLbDocs;
::sd::NavigatorChildWindow* mpChildWinContext;
Size maSize;
diff --git a/sd/source/ui/inc/prltempl.hxx b/sd/source/ui/inc/prltempl.hxx
index 71c6c3f9b8ef..a4e5cca4e2e8 100644
--- a/sd/source/ui/inc/prltempl.hxx
+++ b/sd/source/ui/inc/prltempl.hxx
@@ -86,6 +86,7 @@ private:
public:
SdPresLayoutTemplateDlg( SfxObjectShell* pDocSh, vcl::Window* pParent, SdResId DlgId, SfxStyleSheetBase& rStyleBase, PresentationObjects ePO, SfxStyleSheetBasePool* pSSPool );
virtual ~SdPresLayoutTemplateDlg();
+ virtual void dispose() SAL_OVERRIDE;
const SfxItemSet* GetOutputItemSet() const;
};
diff --git a/sd/source/ui/inc/sdtreelb.hxx b/sd/source/ui/inc/sdtreelb.hxx
index 1d2a5bbdbe73..6e683855cfc4 100644
--- a/sd/source/ui/inc/sdtreelb.hxx
+++ b/sd/source/ui/inc/sdtreelb.hxx
@@ -187,6 +187,7 @@ public:
SdPageObjsTLB( vcl::Window* pParent, const SdResId& rSdResId );
SdPageObjsTLB( vcl::Window* pParent, WinBits nStyle );
virtual ~SdPageObjsTLB();
+ virtual void dispose() SAL_OVERRIDE;
// helper function for GetEntryAltText and GetEntryLongDescription
OUString getAltLongDescText( SvTreeListEntry* pEntry , bool isAltText) const;
diff --git a/sd/source/ui/sidebar/CurrentMasterPagesSelector.cxx b/sd/source/ui/sidebar/CurrentMasterPagesSelector.cxx
index 5e01b5fa66e4..cb77dd3b09a4 100644
--- a/sd/source/ui/sidebar/CurrentMasterPagesSelector.cxx
+++ b/sd/source/ui/sidebar/CurrentMasterPagesSelector.cxx
@@ -91,6 +91,11 @@ CurrentMasterPagesSelector::CurrentMasterPagesSelector (
CurrentMasterPagesSelector::~CurrentMasterPagesSelector (void)
{
+ dispose();
+}
+
+void CurrentMasterPagesSelector::dispose()
+{
if (mrDocument.GetDocSh() != NULL)
{
EndListening(*mrDocument.GetDocSh());
@@ -102,6 +107,8 @@ CurrentMasterPagesSelector::~CurrentMasterPagesSelector (void)
Link aLink (LINK(this,CurrentMasterPagesSelector,EventMultiplexerListener));
mrBase.GetEventMultiplexer()->RemoveEventListener(aLink);
+
+ MasterPagesSelector::dispose();
}
void CurrentMasterPagesSelector::LateInit (void)
diff --git a/sd/source/ui/sidebar/CurrentMasterPagesSelector.hxx b/sd/source/ui/sidebar/CurrentMasterPagesSelector.hxx
index e5c2932b90be..e1d2bb2e3e5f 100644
--- a/sd/source/ui/sidebar/CurrentMasterPagesSelector.hxx
+++ b/sd/source/ui/sidebar/CurrentMasterPagesSelector.hxx
@@ -68,6 +68,7 @@ private:
const ::boost::shared_ptr<MasterPageContainer>& rpContainer,
const css::uno::Reference<css::ui::XSidebar>& rxSidebar);
virtual ~CurrentMasterPagesSelector (void);
+ virtual void dispose() SAL_OVERRIDE;
virtual void LateInit (void) SAL_OVERRIDE;
diff --git a/sd/source/ui/sidebar/LayoutMenu.cxx b/sd/source/ui/sidebar/LayoutMenu.cxx
index b421ac01bf29..800943c702e1 100644
--- a/sd/source/ui/sidebar/LayoutMenu.cxx
+++ b/sd/source/ui/sidebar/LayoutMenu.cxx
@@ -194,8 +194,14 @@ void LayoutMenu::implConstruct( DrawDocShell& rDocumentShell )
LayoutMenu::~LayoutMenu (void)
{
+ dispose();
+}
+
+void LayoutMenu::dispose()
+{
SAL_INFO("sd.ui", "destroying LayoutMenu at " << this);
Dispose();
+ ValueSet::dispose();
}
void LayoutMenu::Dispose (void)
diff --git a/sd/source/ui/sidebar/LayoutMenu.hxx b/sd/source/ui/sidebar/LayoutMenu.hxx
index 7eb77fc38f46..c0fd9754eb86 100644
--- a/sd/source/ui/sidebar/LayoutMenu.hxx
+++ b/sd/source/ui/sidebar/LayoutMenu.hxx
@@ -73,6 +73,7 @@ public:
ViewShellBase& rViewShellBase,
const css::uno::Reference<css::ui::XSidebar>& rxSidebar);
virtual ~LayoutMenu (void);
+ virtual void dispose() SAL_OVERRIDE;
void Dispose (void);
diff --git a/sd/source/ui/sidebar/MasterPagesSelector.cxx b/sd/source/ui/sidebar/MasterPagesSelector.cxx
index 6a0e7b35082b..154f742f05dc 100644
--- a/sd/source/ui/sidebar/MasterPagesSelector.cxx
+++ b/sd/source/ui/sidebar/MasterPagesSelector.cxx
@@ -104,11 +104,17 @@ MasterPagesSelector::MasterPagesSelector (
MasterPagesSelector::~MasterPagesSelector (void)
{
+ dispose();
+}
+
+void MasterPagesSelector::dispose()
+{
Clear();
UpdateLocks(ItemList());
Link aChangeListener (LINK(this,MasterPagesSelector,ContainerChangeListener));
mpContainer->RemoveChangeListener(aChangeListener);
+ PreviewValueSet::dispose();
}
void MasterPagesSelector::LateInit (void)
diff --git a/sd/source/ui/sidebar/MasterPagesSelector.hxx b/sd/source/ui/sidebar/MasterPagesSelector.hxx
index 46e6f72c95d1..7c642d83b37a 100644
--- a/sd/source/ui/sidebar/MasterPagesSelector.hxx
+++ b/sd/source/ui/sidebar/MasterPagesSelector.hxx
@@ -63,6 +63,7 @@ public:
const ::boost::shared_ptr<MasterPageContainer>& rpContainer,
const css::uno::Reference<css::ui::XSidebar>& rxSidebar);
virtual ~MasterPagesSelector (void);
+ virtual void dispose() SAL_OVERRIDE;
virtual void LateInit (void);
diff --git a/sd/source/ui/sidebar/NavigatorWrapper.cxx b/sd/source/ui/sidebar/NavigatorWrapper.cxx
index 3197ffcb7daa..276d8d8d7e17 100644
--- a/sd/source/ui/sidebar/NavigatorWrapper.cxx
+++ b/sd/source/ui/sidebar/NavigatorWrapper.cxx
@@ -33,27 +33,34 @@ NavigatorWrapper::NavigatorWrapper (
SfxBindings* pBindings)
: Control(pParent, 0),
mrViewShellBase(rViewShellBase),
- maNavigator(
+ maNavigator(new SdNavigatorWin(
this,
NULL,
SdResId(FLT_NAVIGATOR),
pBindings,
- ::boost::bind(&NavigatorWrapper::UpdateNavigator, this))
+ ::boost::bind(&NavigatorWrapper::UpdateNavigator, this)))
{
- maNavigator.SetPosSizePixel(
+ maNavigator->SetPosSizePixel(
Point(0,0),
GetSizePixel());
- maNavigator.SetBackground(sfx2::sidebar::Theme::GetWallpaper(sfx2::sidebar::Theme::Paint_PanelBackground));
- maNavigator.Show();
+ maNavigator->SetBackground(sfx2::sidebar::Theme::GetWallpaper(sfx2::sidebar::Theme::Paint_PanelBackground));
+ maNavigator->Show();
}
NavigatorWrapper::~NavigatorWrapper (void)
{
+ dispose();
+}
+
+void NavigatorWrapper::dispose()
+{
+ maNavigator.disposeAndClear();
+ Control::dispose();
}
void NavigatorWrapper::Resize (void)
{
- maNavigator.SetSizePixel(GetSizePixel());
+ maNavigator->SetSizePixel(GetSizePixel());
}
css::ui::LayoutSize NavigatorWrapper::GetHeightForWidth (const sal_Int32 nWidth)
@@ -65,12 +72,12 @@ css::ui::LayoutSize NavigatorWrapper::GetHeightForWidth (const sal_Int32 nWidth)
void NavigatorWrapper::UpdateNavigator (void)
{
- maNavigator.InitTreeLB(mrViewShellBase.GetDocument());
+ maNavigator->InitTreeLB(mrViewShellBase.GetDocument());
}
void NavigatorWrapper::GetFocus (void)
{
- maNavigator.GrabFocus();
+ maNavigator->GrabFocus();
}
} } // end of namespace sd::sidebar
diff --git a/sd/source/ui/sidebar/NavigatorWrapper.hxx b/sd/source/ui/sidebar/NavigatorWrapper.hxx
index edc258ffae64..b56ef223c2f2 100644
--- a/sd/source/ui/sidebar/NavigatorWrapper.hxx
+++ b/sd/source/ui/sidebar/NavigatorWrapper.hxx
@@ -46,6 +46,7 @@ public:
SfxBindings* pBindings);
virtual ~NavigatorWrapper (void);
+ virtual void dispose() SAL_OVERRIDE;
// Control
virtual void Resize (void) SAL_OVERRIDE;
@@ -56,7 +57,7 @@ public:
private:
ViewShellBase& mrViewShellBase;
- SdNavigatorWin maNavigator;
+ VclPtr<SdNavigatorWin> maNavigator;
void UpdateNavigator (void);
};
diff --git a/sd/source/ui/sidebar/PanelBase.cxx b/sd/source/ui/sidebar/PanelBase.cxx
index 90c4a49a2907..3fa745103ab6 100644
--- a/sd/source/ui/sidebar/PanelBase.cxx
+++ b/sd/source/ui/sidebar/PanelBase.cxx
@@ -38,9 +38,15 @@ PanelBase::PanelBase (
PanelBase::~PanelBase (void)
{
+ dispose();
+}
+
+void PanelBase::dispose()
+{
OSL_TRACE("deleting wrapped control at %p", mpWrappedControl.get());
mpWrappedControl.reset();
OSL_TRACE("deleting PanelBase at %p from parent %p", this, GetParent());
+ Control::dispose();
}
void PanelBase::Dispose (void)
diff --git a/sd/source/ui/sidebar/PanelBase.hxx b/sd/source/ui/sidebar/PanelBase.hxx
index 672112fa57d7..d14940fa0c41 100644
--- a/sd/source/ui/sidebar/PanelBase.hxx
+++ b/sd/source/ui/sidebar/PanelBase.hxx
@@ -45,6 +45,7 @@ public:
vcl::Window* pParentWindow,
ViewShellBase& rViewShellBase);
virtual ~PanelBase (void);
+ virtual void dispose() SAL_OVERRIDE;
virtual void Resize (void) SAL_OVERRIDE;
diff --git a/sd/source/ui/slideshow/showwin.cxx b/sd/source/ui/slideshow/showwin.cxx
index db00687631e4..757573419608 100644
--- a/sd/source/ui/slideshow/showwin.cxx
+++ b/sd/source/ui/slideshow/showwin.cxx
@@ -79,8 +79,14 @@ ShowWindow::ShowWindow( const ::rtl::Reference< SlideshowImpl >& xController, vc
ShowWindow::~ShowWindow(void)
{
+ dispose();
+}
+
+void ShowWindow::dispose()
+{
maPauseTimer.Stop();
maMouseTimer.Stop();
+ ::sd::Window::dispose();
}
void ShowWindow::KeyInput(const KeyEvent& rKEvt)
diff --git a/sd/source/ui/slideshow/showwindow.hxx b/sd/source/ui/slideshow/showwindow.hxx
index b55876a0fc36..6814c2003d16 100644
--- a/sd/source/ui/slideshow/showwindow.hxx
+++ b/sd/source/ui/slideshow/showwindow.hxx
@@ -51,6 +51,7 @@ class ShowWindow
public:
ShowWindow ( const ::rtl::Reference< ::sd::SlideshowImpl >& xController, vcl::Window* pParent );
virtual ~ShowWindow (void);
+ virtual void dispose() SAL_OVERRIDE;
bool SetEndMode();
bool SetPauseMode( sal_Int32 nPageIndexToRestart, sal_Int32 nTimeoutSec = SLIDE_NO_TIMEOUT, Graphic* pLogo = NULL );
diff --git a/sd/source/ui/view/ViewShellBase.cxx b/sd/source/ui/view/ViewShellBase.cxx
index 1f175917e4da..c0ab66f3f210 100644
--- a/sd/source/ui/view/ViewShellBase.cxx
+++ b/sd/source/ui/view/ViewShellBase.cxx
@@ -204,6 +204,7 @@ class FocusForwardingWindow : public vcl::Window
public:
FocusForwardingWindow (vcl::Window& rParentWindow, ViewShellBase& rBase);
virtual ~FocusForwardingWindow (void);
+ virtual void dispose() SAL_OVERRIDE;
virtual void KeyInput (const KeyEvent& rEvent) SAL_OVERRIDE;
virtual void Command (const CommandEvent& rEvent) SAL_OVERRIDE;
@@ -1385,7 +1386,13 @@ FocusForwardingWindow::FocusForwardingWindow (
FocusForwardingWindow::~FocusForwardingWindow (void)
{
+ dispose();
+}
+
+void FocusForwardingWindow::dispose()
+{
SAL_INFO("sd.view", "destroyed FocusForwardingWindow at " << this);
+ vcl::Window::dispose();
}
void FocusForwardingWindow::KeyInput (const KeyEvent& rKEvt)
diff --git a/sd/source/ui/view/drviews1.cxx b/sd/source/ui/view/drviews1.cxx
index 606fae612bfe..74c2a964ba90 100644
--- a/sd/source/ui/view/drviews1.cxx
+++ b/sd/source/ui/view/drviews1.cxx
@@ -105,7 +105,7 @@ void DrawViewShell::UIActivating( SfxInPlaceClient* pCli )
ViewShell::UIActivating(pCli);
// Disable own controls
- maTabControl.Disable();
+ maTabControl->Disable();
if (GetLayerTabControl() != NULL)
GetLayerTabControl()->Disable();
}
@@ -113,7 +113,7 @@ void DrawViewShell::UIActivating( SfxInPlaceClient* pCli )
void DrawViewShell::UIDeactivated( SfxInPlaceClient* pCli )
{
// Enable own controls
- maTabControl.Enable();
+ maTabControl->Enable();
if (GetLayerTabControl() != NULL)
GetLayerTabControl()->Enable();
@@ -339,7 +339,7 @@ void DrawViewShell::ChangeEditMode(EditMode eEMode, bool bIsLayerModeActive)
LayerTabBar* pLayerBar = GetLayerTabControl();
if (pLayerBar != NULL)
pLayerBar->EndEditMode();
- maTabControl.EndEditMode();
+ maTabControl->EndEditMode();
if (mePageKind == PK_HANDOUT)
{
@@ -379,7 +379,7 @@ void DrawViewShell::ChangeEditMode(EditMode eEMode, bool bIsLayerModeActive)
* PAGEMODE
******************************************************************/
- maTabControl.Clear();
+ maTabControl->Clear();
SdPage* pPage;
sal_uInt16 nPageCnt = GetDoc()->GetSdPageCount(mePageKind);
@@ -388,7 +388,7 @@ void DrawViewShell::ChangeEditMode(EditMode eEMode, bool bIsLayerModeActive)
{
pPage = GetDoc()->GetSdPage(i, mePageKind);
OUString aPageName = pPage->GetName();
- maTabControl.InsertPage(i + 1, aPageName);
+ maTabControl->InsertPage(i + 1, aPageName);
if ( pPage->IsSelected() && nActualPageNum == 0 )
{
@@ -396,7 +396,7 @@ void DrawViewShell::ChangeEditMode(EditMode eEMode, bool bIsLayerModeActive)
}
}
- maTabControl.SetCurPageId(nActualPageNum + 1);
+ maTabControl->SetCurPageId(nActualPageNum + 1);
SwitchPage(nActualPageNum);
}
@@ -414,7 +414,7 @@ void DrawViewShell::ChangeEditMode(EditMode eEMode, bool bIsLayerModeActive)
mpActualPage = GetDoc()->GetSdPage(0, mePageKind);
}
- maTabControl.Clear();
+ maTabControl->Clear();
sal_uInt16 nActualMasterPageNum = 0;
sal_uInt16 nMasterPageCnt = GetDoc()->GetMasterSdPageCount(mePageKind);
@@ -426,7 +426,7 @@ void DrawViewShell::ChangeEditMode(EditMode eEMode, bool bIsLayerModeActive)
if (nPos != -1)
aLayoutName = aLayoutName.copy(0, nPos);
- maTabControl.InsertPage(i + 1, aLayoutName);
+ maTabControl->InsertPage(i + 1, aLayoutName);
if (&(mpActualPage->TRG_GetMasterPage()) == pMaster)
{
@@ -434,7 +434,7 @@ void DrawViewShell::ChangeEditMode(EditMode eEMode, bool bIsLayerModeActive)
}
}
- maTabControl.SetCurPageId(nActualMasterPageNum + 1);
+ maTabControl->SetCurPageId(nActualMasterPageNum + 1);
SwitchPage(nActualMasterPageNum);
}
@@ -451,11 +451,11 @@ void DrawViewShell::ChangeEditMode(EditMode eEMode, bool bIsLayerModeActive)
if ( ! mbIsLayerModeActive)
{
- maTabControl.Show();
+ maTabControl->Show();
// Set the tab control only for draw pages. For master page
// this has been done already above.
if (meEditMode == EM_PAGE)
- maTabControl.SetCurPageId (nActualPageNum + 1);
+ maTabControl->SetCurPageId (nActualPageNum + 1);
}
ResetActualLayer();
@@ -590,19 +590,19 @@ void DrawViewShell::SetUIUnit(FieldUnit eUnit)
IMPL_LINK( DrawViewShell, TabSplitHdl, TabBar *, pTab )
{
const long int nMax = maViewSize.Width() - maScrBarWH.Width()
- - maTabControl.GetPosPixel().X() ;
+ - maTabControl->GetPosPixel().X() ;
- Size aTabSize = maTabControl.GetSizePixel();
+ Size aTabSize = maTabControl->GetSizePixel();
aTabSize.Width() = std::min(pTab->GetSplitSize(), (long)(nMax-1));
- maTabControl.SetSizePixel(aTabSize);
+ maTabControl->SetSizePixel(aTabSize);
if(GetLayerTabControl()) // #i87182#
{
GetLayerTabControl()->SetSizePixel(aTabSize);
}
- Point aPos = maTabControl.GetPosPixel();
+ Point aPos = maTabControl->GetPosPixel();
aPos.X() += aTabSize.Width();
Size aScrSize(nMax - aTabSize.Width(), maScrBarWH.Height());
@@ -618,7 +618,7 @@ SdPage* DrawViewShell::getCurrentPage() const
GetDoc()->GetSdPageCount(mePageKind):
GetDoc()->GetMasterSdPageCount(mePageKind);
- sal_Int32 nCurrentPage = maTabControl.GetCurPageId() - 1;
+ sal_Int32 nCurrentPage = maTabControl->GetCurPageId() - 1;
DBG_ASSERT( (nPageCount>0) && (nCurrentPage<nPageCount), "sd::DrawViewShell::getCurrentPage(), illegal page index!" );
if( (nPageCount < 0) || (nCurrentPage>=nPageCount) )
nCurrentPage = 0; // play safe here
@@ -642,7 +642,7 @@ void DrawViewShell::ResetActualPage()
if (!GetDoc())
return;
- sal_uInt16 nCurrentPage = maTabControl.GetCurPageId() - 1;
+ sal_uInt16 nCurrentPage = maTabControl->GetCurPageId() - 1;
sal_uInt16 nPageCount = (meEditMode == EM_PAGE)?GetDoc()->GetSdPageCount(mePageKind):GetDoc()->GetMasterSdPageCount(mePageKind);
if (nPageCount > 0)
nCurrentPage = std::min((sal_uInt16)(nPageCount - 1), nCurrentPage);
@@ -653,7 +653,7 @@ void DrawViewShell::ResetActualPage()
{
// Update for TabControl
- maTabControl.Clear();
+ maTabControl->Clear();
SdPage* pPage = NULL;
@@ -661,18 +661,18 @@ void DrawViewShell::ResetActualPage()
{
pPage = GetDoc()->GetSdPage(i, mePageKind);
OUString aPageName = pPage->GetName();
- maTabControl.InsertPage(i + 1, aPageName);
+ maTabControl->InsertPage(i + 1, aPageName);
// correct selection recognition of the pages
GetDoc()->SetSelected(pPage, i == nCurrentPage);
}
- maTabControl.SetCurPageId(nCurrentPage + 1);
+ maTabControl->SetCurPageId(nCurrentPage + 1);
}
else // EM_MASTERPAGE
{
SdPage* pActualPage = GetDoc()->GetMasterSdPage(nCurrentPage, mePageKind);
- maTabControl.Clear();
+ maTabControl->Clear();
sal_uInt16 nActualMasterPageNum = 0;
sal_uInt16 nMasterPageCnt = GetDoc()->GetMasterSdPageCount(mePageKind);
@@ -683,13 +683,13 @@ void DrawViewShell::ResetActualPage()
sal_Int32 nPos = aLayoutName.indexOf(SD_LT_SEPARATOR);
if (nPos != -1)
aLayoutName = aLayoutName.copy(0, nPos);
- maTabControl.InsertPage(i + 1, aLayoutName);
+ maTabControl->InsertPage(i + 1, aLayoutName);
if (pActualPage == pMaster)
nActualMasterPageNum = i;
}
- maTabControl.SetCurPageId(nActualMasterPageNum + 1);
+ maTabControl->SetCurPageId(nActualMasterPageNum + 1);
SwitchPage(nActualMasterPageNum);
}
@@ -828,7 +828,7 @@ bool DrawViewShell::SwitchPage(sal_uInt16 nSelectedPage)
sPageText = sPageText.copy(0, nPos);
if (pPV
&& pNewPage == dynamic_cast< SdPage* >( pPV->GetPage() )
- && sPageText == maTabControl.GetPageText(nSelectedPage+1))
+ && sPageText == maTabControl->GetPageText(nSelectedPage+1))
{
// this slide is already visible
return true;
@@ -850,7 +850,7 @@ bool DrawViewShell::SwitchPage(sal_uInt16 nSelectedPage)
SdPage* pCurrentPage = pPV ? dynamic_cast<SdPage*>(pPV->GetPage()) : NULL;
if (pCurrentPage
&& pNewPage == pCurrentPage
- && maTabControl.GetPageText(nSelectedPage+1).equals(pNewPage->GetName()))
+ && maTabControl->GetPageText(nSelectedPage+1).equals(pNewPage->GetName()))
{
// this slide is already visible
return true;
@@ -979,12 +979,12 @@ bool DrawViewShell::SwitchPage(sal_uInt16 nSelectedPage)
}
}
- maTabControl.SetCurPageId(nSelectedPage+1);
+ maTabControl->SetCurPageId(nSelectedPage+1);
OUString aPageName = mpActualPage->GetName();
- if (maTabControl.GetPageText(nSelectedPage+1) != aPageName)
+ if (maTabControl->GetPageText(nSelectedPage+1) != aPageName)
{
- maTabControl.SetPageText(nSelectedPage+1, aPageName);
+ maTabControl->SetPageText(nSelectedPage+1, aPageName);
}
}
else
@@ -1053,11 +1053,11 @@ bool DrawViewShell::SwitchPage(sal_uInt16 nSelectedPage)
if (nPos != -1)
aLayoutName = aLayoutName.copy(0, nPos);
- maTabControl.SetCurPageId(nSelectedPage+1);
+ maTabControl->SetCurPageId(nSelectedPage+1);
- if (maTabControl.GetPageText(nSelectedPage+1) != aLayoutName)
+ if (maTabControl->GetPageText(nSelectedPage+1) != aLayoutName)
{
- maTabControl.SetPageText(nSelectedPage+1, aLayoutName);
+ maTabControl->SetPageText(nSelectedPage+1, aLayoutName);
}
if( mePageKind == PK_HANDOUT )
diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx
index c1b2096778ae..c210857b6482 100644
--- a/sd/source/ui/view/drviews2.cxx
+++ b/sd/source/ui/view/drviews2.cxx
@@ -373,7 +373,7 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
{
mpDrawView->SdrEndTextEdit();
}
- sal_uInt16 nPage = maTabControl.GetCurPageId() - 1;
+ sal_uInt16 nPage = maTabControl->GetCurPageId() - 1;
mpActualPage = GetDoc()->GetSdPage(nPage, mePageKind);
::sd::ViewShell::mpImpl->ProcessModifyPageSlot (
rReq,
@@ -410,7 +410,7 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
mpDrawView->SdrEndTextEdit();
}
- sal_uInt16 nPageId = maTabControl.GetCurPageId();
+ sal_uInt16 nPageId = maTabControl->GetCurPageId();
SdPage* pCurrentPage = ( GetEditMode() == EM_PAGE )
? GetDoc()->GetSdPage( nPageId - 1, GetPageKind() )
: GetDoc()->GetMasterSdPage( nPageId - 1, GetPageKind() );
@@ -456,7 +456,7 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
mpDrawView->SdrEndTextEdit();
}
- maTabControl.StartEditMode( maTabControl.GetCurPageId() );
+ maTabControl->StartEditMode( maTabControl->GetCurPageId() );
}
Cancel();
diff --git a/sd/source/ui/view/drviews3.cxx b/sd/source/ui/view/drviews3.cxx
index 56b6cadd4560..31b4e4dfb211 100644
--- a/sd/source/ui/view/drviews3.cxx
+++ b/sd/source/ui/view/drviews3.cxx
@@ -142,7 +142,7 @@ void DrawViewShell::ExecCtrl(SfxRequest& rReq)
if (! pArgs)
{
- nSelectedPage = maTabControl.GetCurPageId() - 1;
+ nSelectedPage = maTabControl->GetCurPageId() - 1;
}
else if (pArgs->Count () == 2)
{
diff --git a/sd/source/ui/view/drviews4.cxx b/sd/source/ui/view/drviews4.cxx
index a4bf08bb6afa..9a6b58553aec 100644
--- a/sd/source/ui/view/drviews4.cxx
+++ b/sd/source/ui/view/drviews4.cxx
@@ -74,7 +74,7 @@ using namespace ::com::sun::star::drawing;
void DrawViewShell::DeleteActualPage()
{
- sal_uInt16 nPage = maTabControl.GetCurPageId() - 1;
+ sal_uInt16 nPage = maTabControl->GetCurPageId() - 1;
mpDrawView->SdrEndTextEdit();
diff --git a/sd/source/ui/view/drviews5.cxx b/sd/source/ui/view/drviews5.cxx
index 8d9b045e55ca..092bff9f68c7 100644
--- a/sd/source/ui/view/drviews5.cxx
+++ b/sd/source/ui/view/drviews5.cxx
@@ -114,7 +114,7 @@ void DrawViewShell::ArrangeGUIElements (void)
ViewShell::ArrangeGUIElements ();
- maTabControl.Hide();
+ maTabControl->Hide();
OSL_ASSERT (GetViewShell()!=NULL);
Client* pIPClient = static_cast<Client*>(GetViewShell()->GetIPClient());
@@ -352,7 +352,7 @@ void DrawViewShell::WriteFrameViewData()
mpFrameView->SetSelectedPage(0);
else
{
- mpFrameView->SetSelectedPage( maTabControl.GetCurPageId() - 1 );
+ mpFrameView->SetSelectedPage( maTabControl->GetCurPageId() - 1 );
}
mpFrameView->SetViewShEditMode(meEditMode, mePageKind);
diff --git a/sd/source/ui/view/drviews7.cxx b/sd/source/ui/view/drviews7.cxx
index 055dcd865ddb..17adf690e01a 100644
--- a/sd/source/ui/view/drviews7.cxx
+++ b/sd/source/ui/view/drviews7.cxx
@@ -912,7 +912,7 @@ void DrawViewShell::GetMenuState( SfxItemSet &rSet )
if( SfxItemState::DEFAULT == rSet.GetItemState( SID_DELETE_PAGE )
|| SfxItemState::DEFAULT == rSet.GetItemState( SID_DELETE_MASTER_PAGE ) )
{
- if (maTabControl.GetPageCount() == 1 ||
+ if (maTabControl->GetPageCount() == 1 ||
meEditMode == EM_MASTERPAGE ||
mePageKind == PK_NOTES ||
mePageKind == PK_HANDOUT ||
diff --git a/sd/source/ui/view/drviewsa.cxx b/sd/source/ui/view/drviewsa.cxx
index d3421cbd4157..2f08b039c687 100644
--- a/sd/source/ui/view/drviewsa.cxx
+++ b/sd/source/ui/view/drviewsa.cxx
@@ -109,7 +109,7 @@ void SAL_CALL ScannerEventListener::disposing( const lang::EventObject& rEventOb
DrawViewShell::DrawViewShell( SfxViewFrame* pFrame, ViewShellBase& rViewShellBase, vcl::Window* pParentWindow, PageKind ePageKind, FrameView* pFrameViewArgument )
: ViewShell (pFrame, pParentWindow, rViewShellBase)
- , maTabControl(this, pParentWindow)
+ , maTabControl(new sd::TabControl(this, pParentWindow))
, mbIsLayerModeActive(false)
, mbIsInSwitchPage(false)
, mpSelectionChangeHandler(new svx::sidebar::SelectionChangeHandler(
@@ -288,7 +288,7 @@ void DrawViewShell::Construct(DrawDocShell* pDocSh, PageKind eInitialPageKind)
GetDoc()->SetMaxObjSize(aSize);
// Split-Handler for TabControls
- maTabControl.SetSplitHdl( LINK( this, DrawViewShell, TabSplitHdl ) );
+ maTabControl->SetSplitHdl( LINK( this, DrawViewShell, TabSplitHdl ) );
/* In order to set the correct EditMode of the FrameView, we select another
one (small trick). */
@@ -702,7 +702,7 @@ void DrawViewShell::GetStatusBarState(SfxItemSet& rSet)
// Always show the slide/page number.
OUString aOUString = SD_RESSTR(STR_SD_PAGE);
aOUString += " ";
- aOUString += OUString::number( maTabControl.GetCurPageId() );
+ aOUString += OUString::number( maTabControl->GetCurPageId() );
aOUString += " / " ;
aOUString += OUString::number( nPageCount );
if (nPageCount != nActivePageCount)
diff --git a/sd/source/ui/view/drviewsb.cxx b/sd/source/ui/view/drviewsb.cxx
index c3485e76ca9e..03c5a49e4cdd 100644
--- a/sd/source/ui/view/drviewsb.cxx
+++ b/sd/source/ui/view/drviewsb.cxx
@@ -114,7 +114,7 @@ bool DrawViewShell::RenameSlide( sal_uInt16 nPageId, const OUString & rName )
if( bSuccess )
{
// user edited page names may be changed by the page so update control
- maTabControl.SetPageText( nPageId, rName );
+ maTabControl->SetPageText( nPageId, rName );
// set document to modified state
GetDoc()->SetChanged( true );
@@ -146,7 +146,7 @@ IMPL_LINK( DrawViewShell, RenameSlideHdl, AbstractSvxNameDialog*, pDialog )
OUString aNewName;
pDialog->GetName( aNewName );
- SdPage* pCurrentPage = GetDoc()->GetSdPage( maTabControl.GetCurPageId() - 1, GetPageKind() );
+ SdPage* pCurrentPage = GetDoc()->GetSdPage( maTabControl->GetCurPageId() - 1, GetPageKind() );
return long(pCurrentPage && ( aNewName == pCurrentPage->GetName() || GetDocSh()->IsNewPageNameValid( aNewName ) ));
}
diff --git a/sd/source/ui/view/drviewse.cxx b/sd/source/ui/view/drviewse.cxx
index 96b7c65adc77..402dbda474f4 100644
--- a/sd/source/ui/view/drviewse.cxx
+++ b/sd/source/ui/view/drviewse.cxx
@@ -1721,7 +1721,7 @@ void DrawViewShell::InsertURLButton(const OUString& rURL, const OUString& rText,
void DrawViewShell::ShowUIControls (bool bVisible)
{
ViewShell::ShowUIControls (bVisible);
- maTabControl.Show (bVisible);
+ maTabControl->Show (bVisible);
}
namespace slideshowhelp
diff --git a/sd/source/ui/view/sdruler.cxx b/sd/source/ui/view/sdruler.cxx
index 2df86286e921..e4592649694c 100644
--- a/sd/source/ui/view/sdruler.cxx
+++ b/sd/source/ui/view/sdruler.cxx
@@ -92,10 +92,16 @@ Ruler::Ruler( DrawViewShell& rViewSh, vcl::Window* pParent, ::sd::Window* pWin,
Ruler::~Ruler()
{
+ dispose();
+}
+
+void Ruler::dispose()
+{
SfxBindings& rBindings = pCtrlItem->GetBindings();
rBindings.EnterRegistrations();
delete pCtrlItem;
rBindings.LeaveRegistrations();
+ SvxRuler::dispose();
}
void Ruler::MouseButtonDown(const MouseEvent& rMEvt)
diff --git a/sd/source/ui/view/sdwindow.cxx b/sd/source/ui/view/sdwindow.cxx
index 8506ec0d492e..a8e0fa33a188 100644
--- a/sd/source/ui/view/sdwindow.cxx
+++ b/sd/source/ui/view/sdwindow.cxx
@@ -94,12 +94,18 @@ Window::Window(vcl::Window* pParent)
Window::~Window (void)
{
+ dispose();
+}
+
+void Window::dispose()
+{
if (mpViewShell != NULL)
{
WindowUpdater* pWindowUpdater = mpViewShell->GetWindowUpdater();
if (pWindowUpdater != NULL)
pWindowUpdater->UnregisterWindow (this);
}
+ vcl::Window::dispose();
}
void Window::SetViewShell (ViewShell* pViewSh)