diff options
Diffstat (limited to 'sdext/source/minimizer/unodialog.cxx')
-rw-r--r-- | sdext/source/minimizer/unodialog.cxx | 32 |
1 files changed, 13 insertions, 19 deletions
diff --git a/sdext/source/minimizer/unodialog.cxx b/sdext/source/minimizer/unodialog.cxx index a99240926614..878395e26ec3 100644 --- a/sdext/source/minimizer/unodialog.cxx +++ b/sdext/source/minimizer/unodialog.cxx @@ -19,6 +19,7 @@ #include "unodialog.hxx" + #include <com/sun/star/awt/MessageBoxButtons.hpp> #include <com/sun/star/awt/Toolkit.hpp> #include <com/sun/star/awt/UnoControlDialog.hpp> @@ -56,17 +57,24 @@ UnoDialog::UnoDialog( const Reference< XComponentContext > &rxContext, Reference Reference< XFrame > xFrame( mxController->getFrame() ); Reference< XWindow > xContainerWindow( xFrame->getContainerWindow() ); - mxWindowPeer.set( xContainerWindow, UNO_QUERY_THROW ); - createWindowPeer( mxWindowPeer ); -} + Reference< XWindowPeer > xWindowPeer( xContainerWindow, UNO_QUERY_THROW ); + + // set the main loop handle to update GUI while busy + Reference< XToolkit > xToolkit( Toolkit::create( mxContext ), UNO_QUERY_THROW ); + mxReschedule.set( xToolkit, UNO_QUERY ); + // allocate the real window resources + mxDialog->createPeer(xToolkit, + xWindowPeer.is() ? xWindowPeer : xToolkit->getDesktopWindow()); +} UnoDialog::~UnoDialog() { - + // free the resources + Reference<XComponent> xDialogComponent(mxDialog, UNO_QUERY_THROW); + xDialogComponent->dispose(); } - void UnoDialog::execute() { mxDialog->setEnable( true ); @@ -80,20 +88,6 @@ void UnoDialog::endExecute( bool bStatus ) mxDialog->endExecute(); } - -Reference< XWindowPeer > UnoDialog::createWindowPeer( Reference< XWindowPeer > const & xParentPeer ) -{ - mxDialog->setVisible( false ); - Reference< XToolkit > xToolkit( Toolkit::create( mxContext ), UNO_QUERY_THROW ); - mxReschedule.set( xToolkit, UNO_QUERY ); - mxDialog->createPeer( - xToolkit, - xParentPeer.is() ? xParentPeer : xToolkit->getDesktopWindow()); -// xWindowPeer = xControl.getPeer(); - return mxDialog->getPeer(); -} - - Reference< XInterface > UnoDialog::insertControlModel( const OUString& rServiceName, const OUString& rName, const Sequence< OUString >& rPropertyNames, const Sequence< Any >& rPropertyValues ) { |