diff options
author | Noel Grandin <noel@peralex.com> | 2015-01-13 14:50:52 +0200 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2015-04-09 21:02:13 +0100 |
commit | 28c2cf4f569290095080ded0438cbb99746755d9 (patch) | |
tree | 800641bb75125aac068354564bf2e500e507f217 /basic | |
parent | 0dfcb43dec1fec3861c87870cc0e5e21ebc06b76 (diff) |
vcl: VclPtr conversion in basic
Change-Id: Ia0330d596b696f914a8ee2f81f0399e9456ff87c
Diffstat (limited to 'basic')
-rw-r--r-- | basic/source/runtime/inputbox.cxx | 61 | ||||
-rw-r--r-- | basic/source/runtime/iosys.cxx | 38 |
2 files changed, 60 insertions, 39 deletions
diff --git a/basic/source/runtime/inputbox.cxx b/basic/source/runtime/inputbox.cxx index c15127d45146..739938925ee4 100644 --- a/basic/source/runtime/inputbox.cxx +++ b/basic/source/runtime/inputbox.cxx @@ -30,10 +30,10 @@ class SvRTLInputBox : public ModalDialog { - Edit aEdit; - OKButton aOk; - CancelButton aCancel; - FixedText aPromptText; + VclPtr<Edit> aEdit; + VclPtr<OKButton> aOk; + VclPtr<CancelButton> aCancel; + VclPtr<FixedText> aPromptText; OUString aText; void PositionDialog( long nXTwips, long nYTwips, const Size& rDlgSize ); @@ -46,6 +46,8 @@ class SvRTLInputBox : public ModalDialog public: SvRTLInputBox( vcl::Window* pParent, const OUString& rPrompt, const OUString& rTitle, const OUString& rDefault, long nXTwips = -1, long nYTwips = -1 ); + virtual ~SvRTLInputBox() { dispose(); } + virtual void dispose() SAL_OVERRIDE; OUString GetText() const SAL_OVERRIDE { return aText; } }; @@ -53,8 +55,8 @@ SvRTLInputBox::SvRTLInputBox( vcl::Window* pParent, const OUString& rPrompt, const OUString& rTitle, const OUString& rDefault, long nXTwips, long nYTwips ) : ModalDialog( pParent,WB_3DLOOK | WB_MOVEABLE | WB_CLOSEABLE ), - aEdit( this, WB_LEFT | WB_BORDER ), - aOk( this ), aCancel( this ), aPromptText( this, WB_WORDBREAK ) + aEdit( new Edit(this, WB_LEFT | WB_BORDER) ), + aOk( new OKButton(this) ), aCancel( new CancelButton(this) ), aPromptText( new FixedText(this, WB_WORDBREAK) ) { SetMapMode( MapMode( MAP_APPFONT ) ); Size aDlgSizeApp( 280, 80 ); @@ -62,29 +64,38 @@ SvRTLInputBox::SvRTLInputBox( vcl::Window* pParent, const OUString& rPrompt, InitButtons( aDlgSizeApp ); PositionEdit( aDlgSizeApp ); PositionPrompt( rPrompt, aDlgSizeApp ); - aOk.Show(); - aCancel.Show(); - aEdit.Show(); - aPromptText.Show(); + aOk->Show(); + aCancel->Show(); + aEdit->Show(); + aPromptText->Show(); SetText( rTitle ); vcl::Font aFont( GetFont()); Color aColor( GetBackground().GetColor() ); aFont.SetFillColor( aColor ); - aEdit.SetFont( aFont ); - aEdit.SetText( rDefault ); - aEdit.SetSelection( Selection( SELECTION_MIN, SELECTION_MAX ) ); + aEdit->SetFont( aFont ); + aEdit->SetText( rDefault ); + aEdit->SetSelection( Selection( SELECTION_MIN, SELECTION_MAX ) ); +} + +void SvRTLInputBox::dispose() +{ + aEdit.disposeAndClear(); + aOk.disposeAndClear(); + aCancel.disposeAndClear(); + aPromptText.disposeAndClear(); + ModalDialog::dispose(); } void SvRTLInputBox::InitButtons( const Size& rDlgSize ) { - aOk.SetSizePixel( LogicToPixel( Size( 45, 15) )); - aCancel.SetSizePixel( LogicToPixel( Size( 45, 15) )); + aOk->SetSizePixel( LogicToPixel( Size( 45, 15) )); + aCancel->SetSizePixel( LogicToPixel( Size( 45, 15) )); Point aPos( rDlgSize.Width()-45-10, 5 ); - aOk.SetPosPixel( LogicToPixel( Point(aPos) )); + aOk->SetPosPixel( LogicToPixel( Point(aPos) )); aPos.Y() += 16; - aCancel.SetPosPixel( LogicToPixel( Point(aPos) )); - aOk.SetClickHdl(LINK(this,SvRTLInputBox, OkHdl)); - aCancel.SetClickHdl(LINK(this,SvRTLInputBox,CancelHdl)); + aCancel->SetPosPixel( LogicToPixel( Point(aPos) )); + aOk->SetClickHdl(LINK(this,SvRTLInputBox, OkHdl)); + aCancel->SetClickHdl(LINK(this,SvRTLInputBox,CancelHdl)); } void SvRTLInputBox::PositionDialog(long nXTwips, long nYTwips, const Size& rDlgSize) @@ -99,8 +110,8 @@ void SvRTLInputBox::PositionDialog(long nXTwips, long nYTwips, const Size& rDlgS void SvRTLInputBox::PositionEdit( const Size& rDlgSize ) { - aEdit.SetPosPixel( LogicToPixel( Point( 5,rDlgSize.Height()-35))); - aEdit.SetSizePixel( LogicToPixel( Size(rDlgSize.Width()-15,12))); + aEdit->SetPosPixel( LogicToPixel( Point( 5,rDlgSize.Height()-35))); + aEdit->SetSizePixel( LogicToPixel( Size(rDlgSize.Width()-15,12))); } @@ -109,12 +120,12 @@ void SvRTLInputBox::PositionPrompt(const OUString& rPrompt,const Size& rDlgSize) if ( rPrompt.isEmpty() ) return; OUString aText_(convertLineEnd(rPrompt, LINEEND_CR)); - aPromptText.SetPosPixel( LogicToPixel(Point(5,5))); - aPromptText.SetText( aText_ ); + aPromptText->SetPosPixel( LogicToPixel(Point(5,5))); + aPromptText->SetText( aText_ ); Size aSize( rDlgSize ); aSize.Width() -= 70; aSize.Height() -= 50; - aPromptText.SetSizePixel( LogicToPixel(aSize)); + aPromptText->SetSizePixel( LogicToPixel(aSize)); } @@ -122,7 +133,7 @@ IMPL_LINK_INLINE_START( SvRTLInputBox, OkHdl, Button *, pButton ) { (void)pButton; - aText = aEdit.GetText(); + aText = aEdit->GetText(); EndDialog( 1 ); return 0; } diff --git a/basic/source/runtime/iosys.cxx b/basic/source/runtime/iosys.cxx index 76020c585b4f..01921dadd507 100644 --- a/basic/source/runtime/iosys.cxx +++ b/basic/source/runtime/iosys.cxx @@ -66,25 +66,27 @@ using namespace com::sun::star::bridge; class SbiInputDialog : public ModalDialog { - Edit aInput; - OKButton aOk; - CancelButton aCancel; + VclPtr<Edit> aInput; + VclPtr<OKButton> aOk; + VclPtr<CancelButton> aCancel; OUString aText; DECL_LINK( Ok, vcl::Window * ); DECL_LINK( Cancel, vcl::Window * ); public: SbiInputDialog( vcl::Window*, const OUString& ); + virtual ~SbiInputDialog() { dispose(); } + virtual void dispose() SAL_OVERRIDE; const OUString& GetInput() { return aText; } }; SbiInputDialog::SbiInputDialog( vcl::Window* pParent, const OUString& rPrompt ) :ModalDialog( pParent, WB_3DLOOK | WB_MOVEABLE | WB_CLOSEABLE ), - aInput( this, WB_3DLOOK | WB_LEFT | WB_BORDER ), - aOk( this ), aCancel( this ) + aInput( new Edit(this, WB_3DLOOK | WB_LEFT | WB_BORDER) ), + aOk( new OKButton(this) ), aCancel( new CancelButton(this) ) { SetText( rPrompt ); - aOk.SetClickHdl( LINK( this, SbiInputDialog, Ok ) ); - aCancel.SetClickHdl( LINK( this, SbiInputDialog, Cancel ) ); + aOk->SetClickHdl( LINK( this, SbiInputDialog, Ok ) ); + aCancel->SetClickHdl( LINK( this, SbiInputDialog, Cancel ) ); SetMapMode( MapMode( MAP_APPFONT ) ); Point aPt = LogicToPixel( Point( 50, 50 ) ); @@ -92,24 +94,32 @@ SbiInputDialog::SbiInputDialog( vcl::Window* pParent, const OUString& rPrompt ) SetPosSizePixel( aPt, aSz ); aPt = LogicToPixel( Point( 10, 10 ) ); aSz = LogicToPixel( Size( 120, 12 ) ); - aInput.SetPosSizePixel( aPt, aSz ); + aInput->SetPosSizePixel( aPt, aSz ); aPt = LogicToPixel( Point( 15, 30 ) ); aSz = LogicToPixel( Size( 45, 15) ); - aOk.SetPosSizePixel( aPt, aSz ); + aOk->SetPosSizePixel( aPt, aSz ); aPt = LogicToPixel( Point( 80, 30 ) ); aSz = LogicToPixel( Size( 45, 15) ); - aCancel.SetPosSizePixel( aPt, aSz ); + aCancel->SetPosSizePixel( aPt, aSz ); - aInput.Show(); - aOk.Show(); - aCancel.Show(); + aInput->Show(); + aOk->Show(); + aCancel->Show(); +} + +void SbiInputDialog::dispose() +{ + aInput.disposeAndClear(); + aOk.disposeAndClear(); + aCancel.disposeAndClear(); + ModalDialog::dispose(); } IMPL_LINK_INLINE_START( SbiInputDialog, Ok, vcl::Window *, pWindow ) { (void)pWindow; - aText = aInput.GetText(); + aText = aInput->GetText(); EndDialog( 1 ); return 0; } |