ooo-build r13063 - in trunk: . patches/dev300 patches/vba



Author: pflin
Date: Fri Jul  4 08:21:53 2008
New Revision: 13063
URL: http://svn.gnome.org/viewvc/ooo-build?rev=13063&view=rev

Log:
Add to support Application.Union


Added:
   trunk/patches/vba/vba-application-union.diff
Modified:
   trunk/ChangeLog
   trunk/patches/dev300/apply

Modified: trunk/patches/dev300/apply
==============================================================================
--- trunk/patches/dev300/apply	(original)
+++ trunk/patches/dev300/apply	Fri Jul  4 08:21:53 2008
@@ -1525,6 +1525,8 @@
 vba-pagebreak-object.diff, n#405312, Fong
 # Add Worksheet.EnableSelection
 vba-worksheet-enableselection.diff, n#405312, Fong
+# Add to support Application.Union
+vba-application-union.diff, n#405313, Fong
 [ VBAUntested ]
 SectionOwner => noelpwer
 vba-basic-null.diff i#85349, jjiao

Added: trunk/patches/vba/vba-application-union.diff
==============================================================================
--- (empty file)
+++ trunk/patches/vba/vba-application-union.diff	Fri Jul  4 08:21:53 2008
@@ -0,0 +1,140 @@
+--- oovbaapi/org/openoffice/excel/XApplication.idl.orig	2008-07-03 19:25:39.000000000 +0800
++++ oovbaapi/org/openoffice/excel/XApplication.idl	2008-07-04 16:10:14.000000000 +0800
+@@ -106,6 +106,8 @@ interface XApplication
+ 	void Calculate() raises(com::sun::star::script::BasicErrorException);
+ 	XRange Intersect([in] XRange Arg1, [in] XRange Arg2, [in] /*Optional*/ any Arg3, [in] /*Optional*/ any Arg4, [in] /*Optional*/ any Arg5, [in] /*Optional*/ any Arg6, [in] /*Optional*/ any Arg7, [in] /*Optional*/ any Arg8, [in] /*Optional*/ any Arg9, [in] /*Optional*/ any Arg10, [in] /*Optional*/ any Arg11, [in] /*Optional*/ any Arg12, [in] /*Optional*/ any Arg13, [in] /*Optional*/ any Arg14, [in] /*Optional*/ any Arg15, [in] /*Optional*/ any Arg16, [in] /*Optional*/ any Arg17, [in] /*Optional*/ any Arg18, [in] /*Optional*/ any Arg19, [in] /*Optional*/ any Arg20, [in] /*Optional*/ any Arg21, [in] /*Optional*/ any Arg22, [in] /*Optional*/ any Arg23, [in] /*Optional*/ any Arg24, [in] /*Optional*/ any Arg25, [in] /*Optional*/ any Arg26, [in] /*Optional*/ any Arg27, [in] /*Optional*/ any Arg28, [in] /*Optional*/ any Arg29, [in] /*Optional*/ any Arg30)
+         raises(com::sun::star::script::BasicErrorException);
++	XRange Union([in] XRange Arg1, [in] XRange Arg2, [in] /*Optional*/ any Arg3, [in] /*Optional*/ any Arg4, [in] /*Optional*/ any Arg5, [in] /*Optional*/ any Arg6, [in] /*Optional*/ any Arg7, [in] /*Optional*/ any Arg8, [in] /*Optional*/ any Arg9, [in] /*Optional*/ any Arg10, [in] /*Optional*/ any Arg11, [in] /*Optional*/ any Arg12, [in] /*Optional*/ any Arg13, [in] /*Optional*/ any Arg14, [in] /*Optional*/ any Arg15, [in] /*Optional*/ any Arg16, [in] /*Optional*/ any Arg17, [in] /*Optional*/ any Arg18, [in] /*Optional*/ any Arg19, [in] /*Optional*/ any Arg20, [in] /*Optional*/ any Arg21, [in] /*Optional*/ any Arg22, [in] /*Optional*/ any Arg23, [in] /*Optional*/ any Arg24, [in] /*Optional*/ any Arg25, [in] /*Optional*/ any Arg26, [in] /*Optional*/ any Arg27, [in] /*Optional*/ any Arg28, [in] /*Optional*/ any Arg29, [in] /*Optional*/ any Arg30)
++        raises(com::sun::star::script::BasicErrorException);
+ 	void Volatile([in] any Volatile);
+ 	void DoEvents();
+ 	any Caller( [in] any aIndex );
+--- sc/source/ui/vba/vbaapplication.hxx.orig	2008-07-03 19:25:39.000000000 +0800
++++ sc/source/ui/vba/vbaapplication.hxx	2008-07-04 16:06:48.000000000 +0800
+@@ -100,6 +100,7 @@ public:
+ 	virtual void SAL_CALL GoTo( const css::uno::Any& Reference, const css::uno::Any& Scroll ) throw (css::uno::RuntimeException);
+ 	virtual void SAL_CALL Calculate() throw (css::script::BasicErrorException, css::uno::RuntimeException);
+ 	virtual css::uno::Reference< oo::excel::XRange > SAL_CALL Intersect( const css::uno::Reference< oo::excel::XRange >& Arg1, const css::uno::Reference< oo::excel::XRange >& Arg2, const css::uno::Any& Arg3, const css::uno::Any& Arg4, const css::uno::Any& Arg5, const css::uno::Any& Arg6, const css::uno::Any& Arg7, const css::uno::Any& Arg8, const css::uno::Any& Arg9, const css::uno::Any& Arg10, const css::uno::Any& Arg11, const css::uno::Any& Arg12, const css::uno::Any& Arg13, const css::uno::Any& Arg14, const css::uno::Any& Arg15, const css::uno::Any& Arg16, const css::uno::Any& Arg17, const css::uno::Any& Arg18, const css::uno::Any& Arg19, const css::uno::Any& Arg20, const css::uno::Any& Arg21, const css::uno::Any& Arg22, const css::uno::Any& Arg23, const css::uno::Any& Arg24, const css::uno::Any& Arg25, const css::uno::Any& Arg26, const css::uno::Any& Arg27, const css::uno::Any& Arg28, const css::uno::Any& Arg29, const css::uno::Any& Arg30 ) throw (css::script::BasicErrorEx
 ception, css::uno::RuntimeException);
++	virtual css::uno::Reference< oo::excel::XRange > SAL_CALL Union( const css::uno::Reference< oo::excel::XRange >& Arg1, const css::uno::Reference< oo::excel::XRange >& Arg2, const css::uno::Any& Arg3, const css::uno::Any& Arg4, const css::uno::Any& Arg5, const css::uno::Any& Arg6, const css::uno::Any& Arg7, const css::uno::Any& Arg8, const css::uno::Any& Arg9, const css::uno::Any& Arg10, const css::uno::Any& Arg11, const css::uno::Any& Arg12, const css::uno::Any& Arg13, const css::uno::Any& Arg14, const css::uno::Any& Arg15, const css::uno::Any& Arg16, const css::uno::Any& Arg17, const css::uno::Any& Arg18, const css::uno::Any& Arg19, const css::uno::Any& Arg20, const css::uno::Any& Arg21, const css::uno::Any& Arg22, const css::uno::Any& Arg23, const css::uno::Any& Arg24, const css::uno::Any& Arg25, const css::uno::Any& Arg26, const css::uno::Any& Arg27, const css::uno::Any& Arg28, const css::uno::Any& Arg29, const css::uno::Any& Arg30 ) throw (css::script::BasicErrorExcept
 ion, css::uno::RuntimeException);
+ 	virtual void SAL_CALL Volatile( const css::uno::Any& Volatile ) throw (css::uno::RuntimeException );
+ 	virtual void SAL_CALL DoEvents() throw (css::uno::RuntimeException);
+ 	virtual css::uno::Any SAL_CALL Caller( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException);
+--- sc/source/ui/vba/vbaapplication.cxx.orig	2008-07-03 19:25:39.000000000 +0800
++++ sc/source/ui/vba/vbaapplication.cxx	2008-07-04 16:06:48.000000000 +0800
+@@ -42,6 +42,7 @@
+ #include <com/sun/star/task/XStatusIndicator.hpp>
+ #include <org/openoffice/excel/XlMousePointer.hpp>
+ #include <com/sun/star/sheet/XNamedRanges.hpp>
++#include <com/sun/star/sheet/XCellRangeAddressable.hpp>
+ 
+ #include "vbaapplication.hxx"
+ #include "vbaworkbooks.hxx"
+@@ -81,6 +82,10 @@
+ #include <basic/sbuno.hxx>
+ #include <basic/sbmeth.hxx>
+ 
++#include "convuno.hxx"
++#include "cellsuno.hxx"
++#include "docsh.hxx"
++
+ using namespace ::org::openoffice;
+ using namespace ::com::sun::star;
+ 
+@@ -920,6 +925,97 @@ ScVbaApplication::Intersect( const uno::
+ 	return xRefRange;
+ }
+ 
++uno::Reference< excel::XRange > SAL_CALL 
++ScVbaApplication::Union( const uno::Reference< excel::XRange >& Arg1, const uno::Reference< excel::XRange >& Arg2, const uno::Any& Arg3, const uno::Any& Arg4, const uno::Any& Arg5, const uno::Any& Arg6, const uno::Any& Arg7, const uno::Any& Arg8, const uno::Any& Arg9, const uno::Any& Arg10, const uno::Any& Arg11, const uno::Any& Arg12, const uno::Any& Arg13, const uno::Any& Arg14, const uno::Any& Arg15, const uno::Any& Arg16, const uno::Any& Arg17, const uno::Any& Arg18, const uno::Any& Arg19, const uno::Any& Arg20, const uno::Any& Arg21, const uno::Any& Arg22, const uno::Any& Arg23, const uno::Any& Arg24, const uno::Any& Arg25, const uno::Any& Arg26, const uno::Any& Arg27, const uno::Any& Arg28, const uno::Any& Arg29, const uno::Any& Arg30 ) throw (script::BasicErrorException, uno::RuntimeException)
++{
++	std::vector< uno::Reference< excel::XRange > > vRanges;
++	if ( !Arg1.is() || !Arg2.is() )
++		DebugHelper::exception(SbERR_BAD_PARAMETER, rtl::OUString() );
++
++	vRanges.push_back( Arg1 );
++	vRanges.push_back( Arg2 );
++
++	if ( Arg3.hasValue() )
++		vRanges.push_back( uno::Reference< excel::XRange >( Arg3, uno::UNO_QUERY_THROW ) );
++	if ( Arg4.hasValue() )
++		vRanges.push_back( uno::Reference< excel::XRange >( Arg4, uno::UNO_QUERY_THROW ) );
++	if ( Arg5.hasValue() )
++		vRanges.push_back( uno::Reference< excel::XRange >( Arg5, uno::UNO_QUERY_THROW ) );
++	if ( Arg6.hasValue() )
++		vRanges.push_back( uno::Reference< excel::XRange >( Arg6, uno::UNO_QUERY_THROW ) );
++	if ( Arg7.hasValue() )
++		vRanges.push_back( uno::Reference< excel::XRange >( Arg7, uno::UNO_QUERY_THROW ) );
++	if ( Arg8.hasValue() )
++		vRanges.push_back( uno::Reference< excel::XRange >( Arg8, uno::UNO_QUERY_THROW ) );
++	if ( Arg9.hasValue() )
++		vRanges.push_back( uno::Reference< excel::XRange >( Arg9, uno::UNO_QUERY_THROW ) );
++	if ( Arg10.hasValue() )
++		vRanges.push_back( uno::Reference< excel::XRange >( Arg10, uno::UNO_QUERY_THROW ) );
++	if ( Arg11.hasValue() )
++		vRanges.push_back( uno::Reference< excel::XRange >( Arg11, uno::UNO_QUERY_THROW ) );
++	if ( Arg12.hasValue() )
++		vRanges.push_back( uno::Reference< excel::XRange >( Arg12, uno::UNO_QUERY_THROW ) );
++	if ( Arg13.hasValue() )
++		vRanges.push_back( uno::Reference< excel::XRange >( Arg13, uno::UNO_QUERY_THROW ) );
++	if ( Arg14.hasValue() )
++		vRanges.push_back( uno::Reference< excel::XRange >( Arg14, uno::UNO_QUERY_THROW ) );
++	if ( Arg15.hasValue() )
++		vRanges.push_back( uno::Reference< excel::XRange >( Arg15, uno::UNO_QUERY_THROW ) );
++	if ( Arg16.hasValue() )
++		vRanges.push_back( uno::Reference< excel::XRange >( Arg16, uno::UNO_QUERY_THROW ) );
++	if ( Arg17.hasValue() )
++		vRanges.push_back( uno::Reference< excel::XRange >( Arg17, uno::UNO_QUERY_THROW ) );
++	if ( Arg18.hasValue() )
++		vRanges.push_back( uno::Reference< excel::XRange >( Arg18, uno::UNO_QUERY_THROW ) );
++	if ( Arg19.hasValue() )
++		vRanges.push_back( uno::Reference< excel::XRange >( Arg19, uno::UNO_QUERY_THROW ) );
++	if ( Arg20.hasValue() )
++		vRanges.push_back( uno::Reference< excel::XRange >( Arg20, uno::UNO_QUERY_THROW ) );
++	if ( Arg21.hasValue() )
++		vRanges.push_back( uno::Reference< excel::XRange >( Arg21, uno::UNO_QUERY_THROW ) );
++	if ( Arg22.hasValue() )
++		vRanges.push_back( uno::Reference< excel::XRange >( Arg22, uno::UNO_QUERY_THROW ) );
++	if ( Arg23.hasValue() )
++		vRanges.push_back( uno::Reference< excel::XRange >( Arg23, uno::UNO_QUERY_THROW ) );
++	if ( Arg24.hasValue() )
++		vRanges.push_back( uno::Reference< excel::XRange >( Arg24, uno::UNO_QUERY_THROW ) );
++	if ( Arg25.hasValue() )
++		vRanges.push_back( uno::Reference< excel::XRange >( Arg25, uno::UNO_QUERY_THROW ) );
++	if ( Arg26.hasValue() )
++		vRanges.push_back( uno::Reference< excel::XRange >( Arg26, uno::UNO_QUERY_THROW ) );
++	if ( Arg27.hasValue() )
++		vRanges.push_back( uno::Reference< excel::XRange >( Arg27, uno::UNO_QUERY_THROW ) );
++	if ( Arg28.hasValue() )
++		vRanges.push_back( uno::Reference< excel::XRange >( Arg28, uno::UNO_QUERY_THROW ) );
++	if ( Arg29.hasValue() )
++		vRanges.push_back( uno::Reference< excel::XRange >( Arg29, uno::UNO_QUERY_THROW ) );
++	if ( Arg30.hasValue() )
++		vRanges.push_back( uno::Reference< excel::XRange >( Arg30, uno::UNO_QUERY_THROW ) );
++
++	std::vector< uno::Reference< excel::XRange > >::iterator it = vRanges.begin();
++	std::vector< uno::Reference< excel::XRange > >::iterator it_end = vRanges.end();
++
++    uno::Reference< excel::XRange > xRange;
++    ScRangeList aCellRanges;
++    for( ; it != it_end; ++it )
++    {
++        xRange = *it;
++        uno::Reference< table::XCellRange > xRangeParam;
++        xRange->getCellRange() >>= xRangeParam;
++        uno::Reference< sheet::XCellRangeAddressable > xAddressable( xRangeParam, uno::UNO_QUERY_THROW );
++        ScRange refRange;
++        ScUnoConversion::FillScRange( refRange, xAddressable->getRangeAddress() );
++        aCellRanges.Append( refRange );
++    }
++
++	uno::Reference< frame::XModel > xModel( getCurrentDocument(), uno::UNO_QUERY_THROW );
++    ScDocShell* pDocShell = getDocShell( xModel ); 
++    uno::Reference< sheet::XSheetCellRangeContainer > xRanges( new ScCellRangesObj( pDocShell, aCellRanges ) );
++    // #FIXME need proper (WorkSheet) parent
++    xRange = new ScVbaRange( uno::Reference< vba::XHelperInterface >(), mxContext, xRanges );
++	return xRange;
++}
++
+ void
+ ScVbaApplication::Volatile( const uno::Any& aVolatile )  throw ( uno::RuntimeException )
+ {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]