use more XVclWindowPeer

Rather than using it's superclass XWindowPeer and implicitly relying on it being XVclWindowPeer and casting it everywhere.

Change-Id: Icfb46f3b920d00f4a167a31803a71bbb0368d05c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149894
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
This commit is contained in:
Noel Grandin
2023-04-01 14:42:17 +02:00
committed by Noel Grandin
parent cd013e6671
commit bfdf5d290b
48 changed files with 112 additions and 90 deletions
+19 -15
View File
@@ -65,7 +65,7 @@
using namespace com::sun::star;
using namespace ooo::vba;
uno::Reference< css::awt::XWindowPeer >
uno::Reference< css::awt::XVclWindowPeer >
ScVbaControl::getWindowPeer()
{
uno::Reference< drawing::XControlShape > xControlShape( m_xControl, uno::UNO_QUERY );
@@ -76,23 +76,27 @@ ScVbaControl::getWindowPeer()
{
// would seem to be a Userform control
uno::Reference< awt::XControl > xControl( m_xControl, uno::UNO_QUERY_THROW );
xWinPeer = xControl->getPeer();
return xWinPeer;
xWinPeer = xControl->getPeer();
}
// form control
xControlModel.set( xControlShape->getControl(), uno::UNO_SET_THROW );
else
{
// form control
xControlModel.set( xControlShape->getControl(), uno::UNO_SET_THROW );
uno::Reference< view::XControlAccess > xControlAccess( m_xModel->getCurrentController(), uno::UNO_QUERY_THROW );
try
{
uno::Reference< awt::XControl > xControl = xControlAccess->getControl( xControlModel );
xWinPeer = xControl->getPeer();
uno::Reference< view::XControlAccess > xControlAccess( m_xModel->getCurrentController(), uno::UNO_QUERY_THROW );
try
{
uno::Reference< awt::XControl > xControl = xControlAccess->getControl( xControlModel );
xWinPeer = xControl->getPeer();
}
catch(const uno::Exception&)
{
throw uno::RuntimeException( "The Control does not exist" );
}
}
catch(const uno::Exception&)
{
throw uno::RuntimeException( "The Control does not exist" );
}
return xWinPeer;
uno::Reference< css::awt::XVclWindowPeer > xVclWinPeer(xWinPeer, uno::UNO_QUERY);
assert(xVclWinPeer || !xWinPeer);
return xVclWinPeer;
}
namespace {
+2 -2
View File
@@ -23,7 +23,7 @@
#include <com/sun/star/uno/XComponentContext.hpp>
#include <com/sun/star/drawing/XControlShape.hpp>
#include <com/sun/star/awt/XControl.hpp>
#include <com/sun/star/awt/XWindowPeer.hpp>
#include <com/sun/star/awt/XVclWindowPeer.hpp>
#include <com/sun/star/script/ScriptEvent.hpp>
#include <ooo/vba/msforms/XControl.hpp>
@@ -50,7 +50,7 @@ protected:
css::uno::Reference< css::frame::XModel > m_xModel;
/// @throws css::uno::RuntimeException
css::uno::Reference< css::awt::XWindowPeer > getWindowPeer();
css::uno::Reference< css::awt::XVclWindowPeer > getWindowPeer();
void fireChangeEvent();
void fireClickEvent();
public: