summaryrefslogtreecommitdiff
path: root/basic
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2015-01-13 14:50:52 +0200
committerMichael Meeks <michael.meeks@collabora.com>2015-04-09 21:02:13 +0100
commit28c2cf4f569290095080ded0438cbb99746755d9 (patch)
tree800641bb75125aac068354564bf2e500e507f217 /basic
parent0dfcb43dec1fec3861c87870cc0e5e21ebc06b76 (diff)
vcl: VclPtr conversion in basic
Change-Id: Ia0330d596b696f914a8ee2f81f0399e9456ff87c
Diffstat (limited to 'basic')
-rw-r--r--basic/source/runtime/inputbox.cxx61
-rw-r--r--basic/source/runtime/iosys.cxx38
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;
}