[PATCH 2/7] vba api Application.DisplayScrollBars implementation bnc#757840

Noel Power noel.power at novell.com
Fri Apr 20 09:57:02 PDT 2012


---
 oovbaapi/ooo/vba/excel/XApplication.idl |    1 +
 sc/source/ui/vba/vbaapplication.cxx     |   21 +++++++++++++++++++++
 sc/source/ui/vba/vbaapplication.hxx     |    2 ++
 3 files changed, 24 insertions(+), 0 deletions(-)

diff --git a/oovbaapi/ooo/vba/excel/XApplication.idl b/oovbaapi/ooo/vba/excel/XApplication.idl
index 6453011..866ab21 100644
--- a/oovbaapi/ooo/vba/excel/XApplication.idl
+++ b/oovbaapi/ooo/vba/excel/XApplication.idl
@@ -75,6 +75,7 @@ interface XApplication
     [attribute] boolean Iteration;
     [attribute] long EnableCancelKey;
     [attribute] boolean DisplayFullScreen;
+    [attribute] boolean DisplayScrollBars;
 
     void setDefaultFilePath([in] string DefaultFilePath) raises(com::sun::star::script::BasicErrorException);
 
diff --git a/sc/source/ui/vba/vbaapplication.cxx b/sc/source/ui/vba/vbaapplication.cxx
index 8b5344c..ce8be4e 100644
--- a/sc/source/ui/vba/vbaapplication.cxx
+++ b/sc/source/ui/vba/vbaapplication.cxx
@@ -899,6 +899,27 @@ ScVbaApplication::setDisplayFullScreen( sal_Bool bSet )  throw (uno::RuntimeExce
 }
 
 sal_Bool SAL_CALL
+ScVbaApplication::getDisplayScrollBars()  throw (uno::RuntimeException)
+{
+    ScTabViewShell* pShell  = excel::getCurrentBestViewShell( mxContext );
+    if ( pShell )
+    {
+        return ( pShell->GetViewData()->IsHScrollMode() && pShell->GetViewData()->IsVScrollMode() );
+    }
+    return true;
+}
+
+void SAL_CALL
+ScVbaApplication::setDisplayScrollBars( sal_Bool bSet )  throw (uno::RuntimeException)
+{
+    // use uno here as it does all he repainting etc. magic
+    uno::Reference< sheet::XSpreadsheetView > xView( getCurrentDocument()->getCurrentController(), uno::UNO_QUERY_THROW );
+    uno::Reference< beans::XPropertySet > xProps( xView, uno::UNO_QUERY );
+    xProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HasVerticalScrollBar") ), uno::makeAny( bSet ) );
+    xProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HasHorizontalScrollBar") ), uno::makeAny( bSet ) );
+}
+
+sal_Bool SAL_CALL
 ScVbaApplication::getVisible() throw (uno::RuntimeException)
 {
     sal_Bool bVisible = sal_True;
diff --git a/sc/source/ui/vba/vbaapplication.hxx b/sc/source/ui/vba/vbaapplication.hxx
index 38765e5..9e5d7f7 100644
--- a/sc/source/ui/vba/vbaapplication.hxx
+++ b/sc/source/ui/vba/vbaapplication.hxx
@@ -124,6 +124,8 @@ public:
 
     virtual sal_Bool SAL_CALL getDisplayFullScreen() throw (css::uno::RuntimeException);
     virtual void SAL_CALL setDisplayFullScreen( sal_Bool bSet ) throw (css::uno::RuntimeException);
+    virtual sal_Bool SAL_CALL getDisplayScrollBars() throw (css::uno::RuntimeException);
+    virtual void SAL_CALL setDisplayScrollBars( sal_Bool bSet ) throw (css::uno::RuntimeException);
     virtual css::uno::Any SAL_CALL Windows( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException);
     virtual void SAL_CALL wait( double time ) throw (css::uno::RuntimeException);
     virtual css::uno::Any SAL_CALL Range( const css::uno::Any& Cell1, const css::uno::Any& Cell2 ) throw (css::uno::RuntimeException);
-- 
1.7.3.4


--------------070704010006060703060206
Content-Type: text/plain; charset=UTF-8;
 name="0003-add-stub-vba-implementation-Application-methods.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename*0="0003-add-stub-vba-implementation-Application-methods.patch"



More information about the LibreOffice mailing list