From d43fa87fbcb46a44e61338105b6da9eb8a1a5b15 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Thu, 12 Apr 2018 09:21:21 +0100 Subject: weld SbiInputDialog MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit this is basically the same as SvRTLInputBox Change-Id: Idbf0f58cf51ea706928e18b81ce80088015dccc4 Reviewed-on: https://gerrit.libreoffice.org/52763 Tested-by: Jenkins Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara --- basic/source/runtime/iosys.cxx | 84 +++++++++++++++--------------------------- 1 file changed, 29 insertions(+), 55 deletions(-) (limited to 'basic') diff --git a/basic/source/runtime/iosys.cxx b/basic/source/runtime/iosys.cxx index 76acd11775a9..47c00c39909b 100644 --- a/basic/source/runtime/iosys.cxx +++ b/basic/source/runtime/iosys.cxx @@ -18,9 +18,6 @@ */ #include -#include -#include -#include #include #include #include @@ -59,65 +56,42 @@ using namespace com::sun::star::bridge; #include -class SbiInputDialog : public ModalDialog { - VclPtr aInput; - VclPtr aOk; - VclPtr aCancel; - OUString aText; - DECL_LINK( Ok, Button *, void ); - DECL_LINK( Cancel, Button *, void ); +class SbiInputDialog : public weld::GenericDialogController +{ + std::unique_ptr m_xInput; + std::unique_ptr m_xOk; + std::unique_ptr m_xCancel; + std::unique_ptr m_xPromptText; + OUString m_aText; + DECL_LINK(Ok, weld::Button&, void); + DECL_LINK(Cancel, weld::Button&, void); public: - SbiInputDialog( vcl::Window*, const OUString& ); - virtual ~SbiInputDialog() override { disposeOnce(); } - virtual void dispose() override; - const OUString& GetInput() { return aText; } + SbiInputDialog(weld::Window*, const OUString&); + const OUString& GetInput() { return m_aText; } }; -SbiInputDialog::SbiInputDialog( vcl::Window* pParent, const OUString& rPrompt ) - :ModalDialog( pParent, WB_3DLOOK | WB_MOVEABLE | WB_CLOSEABLE ), - aInput( VclPtr::Create(this, WB_3DLOOK | WB_LEFT | WB_BORDER) ), - aOk( VclPtr::Create(this) ), aCancel( VclPtr::Create(this) ) -{ - SetText( rPrompt ); - aOk->SetClickHdl( LINK( this, SbiInputDialog, Ok ) ); - aCancel->SetClickHdl( LINK( this, SbiInputDialog, Cancel ) ); - SetMapMode( MapMode( MapUnit::MapAppFont ) ); - - Point aPt = LogicToPixel( Point( 50, 50 ) ); - Size aSz = LogicToPixel( Size( 145, 65 ) ); - SetPosSizePixel( aPt, aSz ); - aPt = LogicToPixel( Point( 10, 10 ) ); - aSz = LogicToPixel( Size( 120, 12 ) ); - aInput->SetPosSizePixel( aPt, aSz ); - aPt = LogicToPixel( Point( 15, 30 ) ); - aSz = LogicToPixel( Size( 45, 15) ); - aOk->SetPosSizePixel( aPt, aSz ); - aPt = LogicToPixel( Point( 80, 30 ) ); - aSz = LogicToPixel( Size( 45, 15) ); - aCancel->SetPosSizePixel( aPt, aSz ); - - aInput->Show(); - aOk->Show(); - aCancel->Show(); -} - -void SbiInputDialog::dispose() +SbiInputDialog::SbiInputDialog(weld::Window* pParent, const OUString& rPrompt) + : GenericDialogController(pParent, "svt/ui/inputbox.ui", "InputBox") + , m_xInput(m_xBuilder->weld_entry("entry")) + , m_xOk(m_xBuilder->weld_button("ok")) + , m_xCancel(m_xBuilder->weld_button("cancel")) + , m_xPromptText(m_xBuilder->weld_label("prompt")) { - aInput.disposeAndClear(); - aOk.disposeAndClear(); - aCancel.disposeAndClear(); - ModalDialog::dispose(); + m_xDialog->set_title(rPrompt); + m_xPromptText->set_label(rPrompt); + m_xOk->connect_clicked( LINK( this, SbiInputDialog, Ok ) ); + m_xCancel->connect_clicked( LINK( this, SbiInputDialog, Cancel ) ); } -IMPL_LINK_NOARG( SbiInputDialog, Ok, Button *, void ) +IMPL_LINK_NOARG( SbiInputDialog, Ok, weld::Button&, void ) { - aText = aInput->GetText(); - EndDialog( 1 ); + m_aText = m_xInput->get_text(); + m_xDialog->response(RET_OK); } -IMPL_LINK_NOARG( SbiInputDialog, Cancel, Button *, void ) +IMPL_LINK_NOARG( SbiInputDialog, Cancel, weld::Button&, void ) { - EndDialog(); + m_xDialog->response(RET_CANCEL); } SbiStream::SbiStream() @@ -817,10 +791,10 @@ void SbiIoSystem::CloseAll() void SbiIoSystem::ReadCon(OString& rIn) { OUString aPromptStr(OStringToOUString(aPrompt, osl_getThreadTextEncoding())); - ScopedVclPtrInstance< SbiInputDialog > aDlg(nullptr, aPromptStr); - if( aDlg->Execute() ) + SbiInputDialog aDlg(nullptr, aPromptStr); + if (aDlg.run() == RET_OK) { - rIn = OUStringToOString(aDlg->GetInput(), osl_getThreadTextEncoding()); + rIn = OUStringToOString(aDlg.GetInput(), osl_getThreadTextEncoding()); } else { -- cgit