[Libreoffice-commits] core.git: oovbaapi/ooo sw/source

Tor Lillqvist tml at collabora.com
Thu May 31 11:27:56 UTC 2018


 oovbaapi/ooo/vba/word/XApplication.idl |    1 +
 sw/source/ui/vba/vbaapplication.cxx    |   17 +++++++++++++++--
 sw/source/ui/vba/vbaapplication.hxx    |    4 ++++
 3 files changed, 20 insertions(+), 2 deletions(-)

New commits:
commit 5abf9d268d51afeaea2ed6f2a81a92ad46dea1cd
Author: Tor Lillqvist <tml at collabora.com>
Date:   Mon Apr 16 21:50:55 2018 +0300

    Add Resize() method to ooo.vba.word.XApplication
    
    Seems to be commonly called by 3rd-party Automation (and VB6) client
    code.
    
    Change-Id: I29ee5e7d95f3da2ffae0fac44151148be6e272ee

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;


More information about the Libreoffice-commits mailing list