summaryrefslogtreecommitdiff
path: root/svx/source/svdraw/svdouno.cxx
diff options
context:
space:
mode:
authorVladimir Glazounov <vg@openoffice.org>2007-01-15 13:28:27 +0000
committerVladimir Glazounov <vg@openoffice.org>2007-01-15 13:28:27 +0000
commit42a771f061067447ff4d108398cfaf9e448fc1c2 (patch)
treea1678767b0e88501f8330f970c3645793bd19b19 /svx/source/svdraw/svdouno.cxx
parentcc5228b9f906ec94ad6cea6c64999c61e41a888f (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.cxx20
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;
}