summaryrefslogtreecommitdiff
path: root/forms/source
diff options
context:
space:
mode:
Diffstat (limited to 'forms/source')
-rw-r--r--forms/source/richtext/richtextcontrol.cxx14
-rw-r--r--forms/source/richtext/richtextimplcontrol.cxx27
-rw-r--r--forms/source/richtext/richtextimplcontrol.hxx14
-rw-r--r--forms/source/richtext/richtextvclcontrol.cxx6
-rw-r--r--forms/source/richtext/richtextvclcontrol.hxx1
-rw-r--r--forms/source/runtime/formoperations.cxx4
-rw-r--r--forms/source/solar/component/navbarcontrol.cxx10
-rw-r--r--forms/source/solar/control/navtoolbar.cxx31
-rw-r--r--forms/source/solar/inc/navtoolbar.hxx6
9 files changed, 57 insertions, 56 deletions
diff --git a/forms/source/richtext/richtextcontrol.cxx b/forms/source/richtext/richtextcontrol.cxx
index 39a29a2b9651..03d708752ae5 100644
--- a/forms/source/richtext/richtextcontrol.cxx
+++ b/forms/source/richtext/richtextcontrol.cxx
@@ -290,7 +290,7 @@ namespace frm
pPeer->acquire(); // by definition, the returned object is acquired once
// the VCL control for the peer
- RichTextControl* pRichTextControl = new RichTextControl( pEngine, _pParentWindow, _nStyle, NULL, pPeer );
+ VclPtrInstance<RichTextControl> pRichTextControl( pEngine, _pParentWindow, _nStyle, nullptr, pPeer );
// some knittings
pRichTextControl->SetComponentInterface( pPeer );
@@ -314,7 +314,7 @@ namespace frm
{
{
SolarMutexGuard aGuard;
- RichTextControl* pRichTextControl = static_cast< RichTextControl* >( GetWindow() );
+ VclPtr< RichTextControl > pRichTextControl = GetAs< RichTextControl >();
if ( pRichTextControl )
{
@@ -340,7 +340,7 @@ namespace frm
{
SolarMutexGuard aGuard;
- RichTextControl* pControl = static_cast< RichTextControl* >( GetWindow() );
+ VclPtr< RichTextControl > pControl = GetAs< RichTextControl >();
if ( !pControl )
return;
@@ -375,7 +375,7 @@ namespace frm
if ( _rPropertyName == PROPERTY_BACKGROUNDCOLOR )
{
- RichTextControl* pControl = static_cast< RichTextControl* >( GetWindow() );
+ VclPtr< RichTextControl > pControl = GetAs< RichTextControl >();
if ( !_rValue.hasValue() )
{
pControl->SetBackgroundColor( );
@@ -401,7 +401,7 @@ namespace frm
}
else if ( _rPropertyName == PROPERTY_READONLY )
{
- RichTextControl* pControl = static_cast< RichTextControl* >( GetWindow() );
+ VclPtr< RichTextControl > pControl = GetAs< RichTextControl >();
bool bReadOnly( pControl->IsReadOnly() );
OSL_VERIFY( _rValue >>= bReadOnly );
pControl->SetReadOnly( bReadOnly );
@@ -417,7 +417,7 @@ namespace frm
}
else if ( _rPropertyName == PROPERTY_HIDEINACTIVESELECTION )
{
- RichTextControl* pRichTextControl = static_cast< RichTextControl* >( GetWindow() );
+ VclPtr< RichTextControl > pRichTextControl = GetAs< RichTextControl >();
bool bHide = pRichTextControl->GetHideInactiveSelection();
OSL_VERIFY( _rValue >>= bHide );
pRichTextControl->SetHideInactiveSelection( bHide );
@@ -469,7 +469,7 @@ namespace frm
ORichTextPeer::SingleAttributeDispatcher ORichTextPeer::implCreateDispatcher( SfxSlotId _nSlotId, const ::com::sun::star::util::URL& _rURL )
{
- RichTextControl* pRichTextControl = static_cast< RichTextControl* >( GetWindow() );
+ VclPtr< RichTextControl > pRichTextControl = GetAs< RichTextControl >();
OSL_PRECOND( pRichTextControl, "ORichTextPeer::implCreateDispatcher: invalid window!" );
if ( !pRichTextControl )
return SingleAttributeDispatcher( NULL );
diff --git a/forms/source/richtext/richtextimplcontrol.cxx b/forms/source/richtext/richtextimplcontrol.cxx
index a29f626749af..50c483b97151 100644
--- a/forms/source/richtext/richtextimplcontrol.cxx
+++ b/forms/source/richtext/richtextimplcontrol.cxx
@@ -56,7 +56,7 @@ namespace frm
OSL_ENSURE( m_pAntiImpl, "RichTextControlImpl::RichTextControlImpl: invalid window!" );
OSL_ENSURE( m_pEngine, "RichTextControlImpl::RichTextControlImpl: invalid edit engine! This will *definitely* crash!" );
- m_pViewport = new RichTextViewPort( m_pAntiImpl );
+ m_pViewport = VclPtr<RichTextViewPort>::Create( m_pAntiImpl );
m_pViewport->setAttributeInvalidationHandler( LINK( this, RichTextControlImpl, OnInvalidateAllAttributes ) );
m_pViewport->Show();
@@ -91,10 +91,10 @@ namespace frm
m_pEngine->RemoveView( m_pView );
m_pEngine->revokeEngineStatusListener( this );
delete m_pView;
- delete m_pViewport;
- delete m_pHScroll;
- delete m_pVScroll;
- delete m_pScrollCorner;
+ m_pViewport.disposeAndClear();
+ m_pHScroll.disposeAndClear();
+ m_pVScroll.disposeAndClear();
+ m_pScrollCorner.disposeAndClear();
}
@@ -344,38 +344,35 @@ namespace frm
// create or delete the scrollbars, as necessary
if ( !bNeedVScroll )
{
- delete m_pVScroll;
- m_pVScroll = NULL;
+ m_pVScroll.disposeAndClear();
}
else
{
- m_pVScroll = new ScrollBar( m_pAntiImpl, WB_VSCROLL | WB_DRAG | WB_REPEAT );
+ m_pVScroll = VclPtr<ScrollBar>::Create( m_pAntiImpl, WB_VSCROLL | WB_DRAG | WB_REPEAT );
m_pVScroll->SetScrollHdl ( LINK( this, RichTextControlImpl, OnVScroll ) );
m_pVScroll->Show();
}
if ( !bNeedHScroll )
{
- delete m_pHScroll;
- m_pHScroll = NULL;
+ m_pHScroll.disposeAndClear();
}
else
{
- m_pHScroll = new ScrollBar( m_pAntiImpl, WB_HSCROLL | WB_DRAG | WB_REPEAT );
+ m_pHScroll = VclPtr<ScrollBar>::Create( m_pAntiImpl, WB_HSCROLL | WB_DRAG | WB_REPEAT );
m_pHScroll->SetScrollHdl ( LINK( this, RichTextControlImpl, OnHScroll ) );
m_pHScroll->Show();
}
if ( m_pHScroll && m_pVScroll )
{
- delete m_pScrollCorner;
- m_pScrollCorner = new ScrollBarBox( m_pAntiImpl );
+ m_pScrollCorner.disposeAndClear();
+ m_pScrollCorner = VclPtr<ScrollBarBox>::Create( m_pAntiImpl );
m_pScrollCorner->Show();
}
else
{
- delete m_pScrollCorner;
- m_pScrollCorner = NULL;
+ m_pScrollCorner.disposeAndClear();
}
layoutWindow();
diff --git a/forms/source/richtext/richtextimplcontrol.hxx b/forms/source/richtext/richtextimplcontrol.hxx
index 0b6c42cc63ad..2f0acb1da700 100644
--- a/forms/source/richtext/richtextimplcontrol.hxx
+++ b/forms/source/richtext/richtextimplcontrol.hxx
@@ -52,11 +52,11 @@ namespace frm
ESelection m_aLastKnownSelection;
- Control* m_pAntiImpl;
- RichTextViewPort* m_pViewport;
- ScrollBar* m_pHScroll;
- ScrollBar* m_pVScroll;
- ScrollBarBox* m_pScrollCorner;
+ VclPtr<Control> m_pAntiImpl;
+ VclPtr<RichTextViewPort> m_pViewport;
+ VclPtr<ScrollBar> m_pHScroll;
+ VclPtr<ScrollBar> m_pVScroll;
+ VclPtr<ScrollBarBox> m_pScrollCorner;
RichTextEngine* m_pEngine;
EditView* m_pView;
ITextAttributeListener* m_pTextAttrListener;
@@ -166,8 +166,8 @@ namespace frm
/// ensures that our "automatic line break" setting matches the current WinBits of the window
void ensureLineBreakSetting();
- inline bool hasVScrollBar( ) const { return m_pVScroll != NULL; }
- inline bool hasHScrollBar( ) const { return m_pHScroll != NULL; }
+ inline bool hasVScrollBar( ) const { return m_pVScroll != nullptr; }
+ inline bool hasHScrollBar( ) const { return m_pHScroll != nullptr; }
// IEngineStatusListener overridables
virtual void EditEngineStatusChanged( const EditStatus& _rStatus ) SAL_OVERRIDE;
diff --git a/forms/source/richtext/richtextvclcontrol.cxx b/forms/source/richtext/richtextvclcontrol.cxx
index 722bdefa52d7..d7286204921c 100644
--- a/forms/source/richtext/richtextvclcontrol.cxx
+++ b/forms/source/richtext/richtextvclcontrol.cxx
@@ -59,7 +59,13 @@ namespace frm
RichTextControl::~RichTextControl( )
{
+ disposeOnce();
+ }
+
+ void RichTextControl::dispose()
+ {
delete m_pImpl;
+ Control::dispose();
}
diff --git a/forms/source/richtext/richtextvclcontrol.hxx b/forms/source/richtext/richtextvclcontrol.hxx
index 4e3123d0b75a..b5532ca4bc0f 100644
--- a/forms/source/richtext/richtextvclcontrol.hxx
+++ b/forms/source/richtext/richtextvclcontrol.hxx
@@ -52,6 +52,7 @@ namespace frm
);
virtual ~RichTextControl( );
+ virtual void dispose() SAL_OVERRIDE;
/* enables the change notifications for a particular attribute
diff --git a/forms/source/runtime/formoperations.cxx b/forms/source/runtime/formoperations.cxx
index e6e831d27539..880fa0f405ba 100644
--- a/forms/source/runtime/formoperations.cxx
+++ b/forms/source/runtime/formoperations.cxx
@@ -445,8 +445,8 @@ namespace frm
if(needConfirmation)
{
// TODO: shouldn't this be done with an interaction handler?
- QueryBox aQuery( NULL, WB_YES_NO_CANCEL | WB_DEF_YES, FRM_RES_STRING( RID_STR_QUERY_SAVE_MODIFIED_ROW ) );
- switch ( aQuery.Execute() )
+ ScopedVclPtrInstance< QueryBox > aQuery( nullptr, WB_YES_NO_CANCEL | WB_DEF_YES, FRM_RES_STRING( RID_STR_QUERY_SAVE_MODIFIED_ROW ) );
+ switch ( aQuery->Execute() )
{
case RET_NO:
shouldCommit = false;
diff --git a/forms/source/solar/component/navbarcontrol.cxx b/forms/source/solar/component/navbarcontrol.cxx
index 3f2afea11653..6d335d9bf3de 100644
--- a/forms/source/solar/component/navbarcontrol.cxx
+++ b/forms/source/solar/component/navbarcontrol.cxx
@@ -223,7 +223,7 @@ namespace frm
// the VCL control for the peer
Reference< XModel > xContextDocument( getXModel( _rxModel ) );
- NavigationToolBar* pNavBar = new NavigationToolBar(
+ VclPtrInstance<NavigationToolBar> pNavBar(
_pParentWindow,
lcl_getWinBits_nothrow( _rxModel ),
createDocumentCommandImageProvider( _rxORB, xContextDocument ),
@@ -275,7 +275,7 @@ namespace frm
{
SolarMutexGuard aGuard;
- NavigationToolBar* pNavBar = static_cast< NavigationToolBar* >( GetWindow() );
+ VclPtr< NavigationToolBar > pNavBar = GetAs< NavigationToolBar >();
if ( !pNavBar )
{
VCLXWindow::setProperty( _rPropertyName, _rValue );
@@ -356,7 +356,7 @@ namespace frm
SolarMutexGuard aGuard;
Any aReturn;
- NavigationToolBar* pNavBar = static_cast< NavigationToolBar* >( GetWindow() );
+ VclPtr< NavigationToolBar > pNavBar = GetAs< NavigationToolBar >();
if ( _rPropertyName == PROPERTY_BACKGROUNDCOLOR )
{
@@ -408,7 +408,7 @@ namespace frm
void ONavigationBarPeer::featureStateChanged( sal_Int16 _nFeatureId, bool _bEnabled )
{
// enable this button on the toolbox
- NavigationToolBar* pNavBar = static_cast< NavigationToolBar* >( GetWindow() );
+ VclPtr< NavigationToolBar > pNavBar = GetAs< NavigationToolBar >();
if ( pNavBar )
{
pNavBar->enableFeature( _nFeatureId, _bEnabled );
@@ -436,7 +436,7 @@ namespace frm
void ONavigationBarPeer::allFeatureStatesChanged( )
{
// force the control to update it's states
- NavigationToolBar* pNavBar = static_cast< NavigationToolBar* >( GetWindow() );
+ VclPtr< NavigationToolBar > pNavBar = GetAs< NavigationToolBar >();
if ( pNavBar )
pNavBar->setDispatcher( this );
diff --git a/forms/source/solar/control/navtoolbar.cxx b/forms/source/solar/control/navtoolbar.cxx
index 3ccbf2eb8457..19bcd6937d5f 100644
--- a/forms/source/solar/control/navtoolbar.cxx
+++ b/forms/source/solar/control/navtoolbar.cxx
@@ -147,14 +147,16 @@ namespace frm
NavigationToolBar::~NavigationToolBar( )
{
- for ( ::std::vector< vcl::Window* >::iterator loopChildWins = m_aChildWins.begin();
- loopChildWins != m_aChildWins.end();
- ++loopChildWins
- )
- {
- delete *loopChildWins;
- }
- delete m_pToolbar;
+ disposeOnce();
+ }
+
+ void NavigationToolBar::dispose()
+ {
+ for (auto i = m_aChildWins.begin(); i != m_aChildWins.end(); ++i)
+ i->disposeAndClear();
+ m_aChildWins.clear();
+ m_pToolbar.disposeAndClear();
+ vcl::Window::dispose();
}
@@ -234,7 +236,7 @@ namespace frm
void NavigationToolBar::implInit( )
{
- m_pToolbar = new ImplNavToolBar( this );
+ m_pToolbar = VclPtr<ImplNavToolBar>::Create( this );
m_pToolbar->SetOutStyle( TOOLBOX_STYLE_FLAT );
m_pToolbar->Show();
@@ -299,17 +301,17 @@ namespace frm
vcl::Window* pItemWindow = NULL;
if ( FormFeature::MoveAbsolute == pSupportedFeatures->nId )
{
- pItemWindow = new RecordPositionInput( m_pToolbar );
+ pItemWindow = VclPtr<RecordPositionInput>::Create( m_pToolbar );
static_cast< RecordPositionInput* >( pItemWindow )->setDispatcher( m_pDispatcher );
}
else if ( LID_RECORD_FILLER == pSupportedFeatures->nId )
{
- pItemWindow = new FixedText( m_pToolbar, WB_CENTER | WB_VCENTER );
+ pItemWindow = VclPtr<FixedText>::Create( m_pToolbar, WB_CENTER | WB_VCENTER );
pItemWindow->SetBackground(Wallpaper(Color(COL_TRANSPARENT)));
}
else
{
- pItemWindow = new FixedText( m_pToolbar, WB_VCENTER );
+ pItemWindow = VclPtr<FixedText>::Create( m_pToolbar, WB_VCENTER );
pItemWindow->SetBackground();
pItemWindow->SetPaintTransparent(true);
}
@@ -658,11 +660,6 @@ namespace frm
}
- RecordPositionInput::~RecordPositionInput()
- {
- }
-
-
void RecordPositionInput::setDispatcher( const IFeatureDispatcher* _pDispatcher )
{
m_pDispatcher = _pDispatcher;
diff --git a/forms/source/solar/inc/navtoolbar.hxx b/forms/source/solar/inc/navtoolbar.hxx
index 5be47c86c5f1..79d126655a03 100644
--- a/forms/source/solar/inc/navtoolbar.hxx
+++ b/forms/source/solar/inc/navtoolbar.hxx
@@ -60,8 +60,8 @@ namespace frm
const ::boost::shared_ptr< const ICommandDescriptionProvider >
m_pDescriptionProvider;
ImageSize m_eImageSize;
- ImplNavToolBar* m_pToolbar;
- ::std::vector< vcl::Window* > m_aChildWins;
+ VclPtr<ImplNavToolBar> m_pToolbar;
+ ::std::vector< VclPtr<vcl::Window> > m_aChildWins;
public:
NavigationToolBar(
@@ -71,6 +71,7 @@ namespace frm
const ::boost::shared_ptr< const ICommandDescriptionProvider >& _pDescriptionProvider
);
virtual ~NavigationToolBar( );
+ virtual void dispose() SAL_OVERRIDE;
/** sets the dispatcher which is to be used for the features
@@ -158,7 +159,6 @@ namespace frm
public:
RecordPositionInput( vcl::Window* _pParent );
- virtual ~RecordPositionInput();
/** sets the dispatcher which is to be used for the features
*/