diff options
-rw-r--r-- | oovbaapi/ooo/vba/word/XApplication.idl | 1 | ||||
-rw-r--r-- | sw/source/ui/vba/vbaapplication.cxx | 17 | ||||
-rw-r--r-- | sw/source/ui/vba/vbaapplication.hxx | 4 |
3 files changed, 20 insertions, 2 deletions
diff --git a/oovbaapi/ooo/vba/word/XApplication.idl b/oovbaapi/ooo/vba/word/XApplication.idl index ea709e7ec2b2..ce047e0d08ac 100644 --- a/oovbaapi/ooo/vba/word/XApplication.idl +++ b/oovbaapi/ooo/vba/word/XApplication.idl @@ -43,6 +43,7 @@ interface XApplication : XConnectable any ListGalleries( [in] any aIndex ); float CentimetersToPoints([in] float Centimeters ); void ShowMe(); + void Resize( [in] long Width, [in] long Height ); }; }; }; }; diff --git a/sw/source/ui/vba/vbaapplication.cxx b/sw/source/ui/vba/vbaapplication.cxx index d9d245a12d49..ee743252c698 100644 --- a/sw/source/ui/vba/vbaapplication.cxx +++ b/sw/source/ui/vba/vbaapplication.cxx @@ -99,8 +99,8 @@ SwVbaApplication::getActiveDocument() return new SwVbaDocument( this, mxContext, getCurrentDocument() ); } -uno::Reference< word::XWindow > SAL_CALL -SwVbaApplication::getActiveWindow() +SwVbaWindow * +SwVbaApplication::getActiveSwVbaWindow() { // #FIXME so far can't determine Parent uno::Reference< frame::XModel > xModel( getCurrentDocument(), uno::UNO_SET_THROW ); @@ -108,6 +108,12 @@ SwVbaApplication::getActiveWindow() return new SwVbaWindow( uno::Reference< XHelperInterface >(), mxContext, xModel, xController ); } +uno::Reference< word::XWindow > SAL_CALL +SwVbaApplication::getActiveWindow() +{ + return getActiveSwVbaWindow(); +} + uno::Reference<word::XSystem > SAL_CALL SwVbaApplication::getSystem() { @@ -225,6 +231,13 @@ void SAL_CALL SwVbaApplication::ShowMe() // No idea what we should or could do } +void SAL_CALL SwVbaApplication::Resize( sal_Int32 Width, sal_Int32 Height ) +{ + auto pWindow = getActiveSwVbaWindow(); + pWindow->setWidth( Width ); + pWindow->setHeight( Height ); +} + // XInterfaceWithIID OUString SAL_CALL diff --git a/sw/source/ui/vba/vbaapplication.hxx b/sw/source/ui/vba/vbaapplication.hxx index 808f7c1c10b8..137db4d95591 100644 --- a/sw/source/ui/vba/vbaapplication.hxx +++ b/sw/source/ui/vba/vbaapplication.hxx @@ -34,6 +34,8 @@ #include <vbahelper/vbaapplicationbase.hxx> #include <cppuhelper/implbase.hxx> +#include "vbawindow.hxx" + typedef cppu::ImplInheritanceHelper< VbaApplicationBase, ooo::vba::word::XApplication, ooo::vba::XSinkCaller > SwVbaApplication_BASE; // This class is currently not a singleton. One instance is created per document with (potential?) @@ -47,6 +49,7 @@ typedef cppu::ImplInheritanceHelper< VbaApplicationBase, ooo::vba::word::XApplic class SwVbaApplication : public SwVbaApplication_BASE { std::vector<css::uno::Reference< ooo::vba::XSink >> mvSinks; + SwVbaWindow* getActiveSwVbaWindow(); public: explicit SwVbaApplication( css::uno::Reference< css::uno::XComponentContext >& m_xContext ); @@ -75,6 +78,7 @@ public: virtual void SAL_CALL setWindowState( sal_Int32 _windowstate ) override; virtual float SAL_CALL CentimetersToPoints( float Centimeters ) override; virtual void SAL_CALL ShowMe() override; + virtual void SAL_CALL Resize( sal_Int32 Width, sal_Int32 Height ) override; // XInterfaceWithIID virtual OUString SAL_CALL getIID() override; |