diff options
author | Vladimir Glazounov <vg@openoffice.org> | 2007-01-15 13:28:27 +0000 |
---|---|---|
committer | Vladimir Glazounov <vg@openoffice.org> | 2007-01-15 13:28:27 +0000 |
commit | 42a771f061067447ff4d108398cfaf9e448fc1c2 (patch) | |
tree | a1678767b0e88501f8330f970c3645793bd19b19 /svx/source/svdraw/svdouno.cxx | |
parent | cc5228b9f906ec94ad6cea6c64999c61e41a888f (diff) |
INTEGRATION: CWS dba22b (1.25.42); FILE MERGED
2006/12/12 08:11:06 fs 1.25.42.1: #i71260# GetUnoControl now taking an SdrView, additionally to the output device
Diffstat (limited to 'svx/source/svdraw/svdouno.cxx')
-rw-r--r-- | svx/source/svdraw/svdouno.cxx | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/svx/source/svdraw/svdouno.cxx b/svx/source/svdraw/svdouno.cxx index 0f1b790afe7d..a64415612c5a 100644 --- a/svx/source/svdraw/svdouno.cxx +++ b/svx/source/svdraw/svdouno.cxx @@ -4,9 +4,9 @@ * * $RCSfile: svdouno.cxx,v $ * - * $Revision: 1.25 $ + * $Revision: 1.26 $ * - * last change: $Author: ihi $ $Date: 2006-11-14 13:48:07 $ + * last change: $Author: vg $ $Date: 2007-01-15 14:28:27 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -646,13 +646,21 @@ void SdrUnoObj::SetUnoControlModel( uno::Reference< awt::XControlModel > xModel) } //------------------------------------------------------------------------ -uno::Reference< awt::XControl > SdrUnoObj::GetUnoControl(const OutputDevice* _pDevice) const +uno::Reference< awt::XControl > SdrUnoObj::GetUnoControl(const SdrView& _rView, const OutputDevice& _rOut) const { uno::Reference< awt::XControl > xControl; - ViewContactOfUnoControl* pVC = NULL; - if ( impl_getViewContact( pVC ) ) - xControl = pVC->getUnoControlForDevice( _pDevice, ViewContactOfUnoControl::SdrUnoObjAccessControl() ); + SdrPageView* pPageView = _rView.GetSdrPageView(); + SdrPageWindow* pPageWindow = pPageView ? pPageView->FindPageWindow( _rOut ) : NULL; + OSL_ENSURE( pPageWindow, "SdrUnoObj::GetUnoControl: did not find my SdrPageWindow!" ); + if ( !pPageWindow ) + return NULL; + + ViewObjectContact& rViewObjectContact( GetViewContact().GetViewObjectContact( pPageWindow->GetObjectContact() ) ); + ViewObjectContactOfUnoControl* pUnoContact = dynamic_cast< ViewObjectContactOfUnoControl* >( &rViewObjectContact ); + OSL_ENSURE( pUnoContact, "SdrUnoObj::GetUnoControl: wrong contact type!" ); + if ( pUnoContact ) + xControl = pUnoContact->getControl(); return xControl; } |