ooo-build r12307 - in trunk: . patches/dev300 patches/src680



Author: noelpwer
Date: Wed Apr 23 14:40:56 2008
New Revision: 12307
URL: http://svn.gnome.org/viewvc/ooo-build?rev=12307&view=rev

Log:
2008-04-23  Noel Power <noel,power novell com>

        * patches/src680/cws-npower11.diff: removed
        * patches/dev300/cws-npower11.diff: added newly generated version



Added:
   trunk/patches/dev300/cws-npower11.diff
Removed:
   trunk/patches/src680/cws-npower11.diff
Modified:
   trunk/ChangeLog

Added: trunk/patches/dev300/cws-npower11.diff
==============================================================================
--- (empty file)
+++ trunk/patches/dev300/cws-npower11.diff	Wed Apr 23 14:40:56 2008
@@ -0,0 +1,7820 @@
+Index: sc/source/ui/vba/makefile.mk
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/makefile.mk,v
+retrieving revision 1.5
+retrieving revision 1.5.42.3
+diff -u -p -u -p -b -w -B -r1.5 -r1.5.42.3
+--- sc/source/ui/vba/makefile.mk	7 Dec 2007 10:42:39 -0000	1.5
++++ sc/source/ui/vba/makefile.mk	22 Apr 2008 19:53:15 -0000	1.5.42.3
+@@ -92,6 +92,7 @@ SLOFILES= \
+                 $(SLO)$/vbabutton.obj \
+                 $(SLO)$/vbalabel.obj \
+                 $(SLO)$/vbatextbox.obj \
++                $(SLO)$/vbatextboxshape.obj \
+                 $(SLO)$/vbaradiobutton.obj \
+                 $(SLO)$/vbalistbox.obj \
+                 $(SLO)$/vbapropvalue.obj \
+@@ -115,6 +116,15 @@ SLOFILES= \
+                 $(SLO)$/vbaformatconditions.obj \
+                 $(SLO)$/vbastyle.obj \
+                 $(SLO)$/vbastyles.obj \
++                $(SLO)$/vbaassistant.obj \
++                $(SLO)$/vbauserform.obj \
++                $(SLO)$/vbacheckbox.obj \
++                $(SLO)$/vbatogglebutton.obj \
++                $(SLO)$/vbaframe.obj \
++                $(SLO)$/vbascrollbar.obj \
++                $(SLO)$/vbaprogressbar.obj \
++		$(SLO)$/vbamultipage.obj \
++		$(SLO)$/vbapages.obj \
+ 		$(SLO)$/service.obj \
+  
+ 
+Index: sc/source/ui/vba/service.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/service.cxx,v
+retrieving revision 1.3
+retrieving revision 1.3.42.1
+diff -u -p -u -p -b -w -B -r1.3 -r1.3.42.1
+--- sc/source/ui/vba/service.cxx	7 Dec 2007 10:42:52 -0000	1.3
++++ sc/source/ui/vba/service.cxx	22 Apr 2008 19:53:15 -0000	1.3.42.1
+@@ -62,7 +62,10 @@ namespace globals
+ {
+ extern sdecl::ServiceDecl const serviceDecl;
+ }
+-
++namespace  userform
++{
++extern sdecl::ServiceDecl const serviceDecl;
++}
+ 
+ 
+ extern "C"
+@@ -81,7 +84,7 @@ extern "C"
+ 
+ 	// Component registration
+         if ( component_writeInfoHelper( pServiceManager, pRegistryKey, 
+-		range::serviceDecl, workbook::serviceDecl, worksheet::serviceDecl, globals::serviceDecl ) )
++		range::serviceDecl, workbook::serviceDecl, worksheet::serviceDecl, globals::serviceDecl, userform::serviceDecl ) )
+ 		{
+ 			// Singleton registration
+ 			try
+@@ -109,7 +112,7 @@ extern "C"
+     {
+ 		OSL_TRACE("In component_getFactory for %s", pImplName );
+ 	void* pRet =  component_getFactoryHelper(
+-        	pImplName, pServiceManager, pRegistryKey, range::serviceDecl, workbook::serviceDecl, worksheet::serviceDecl, globals::serviceDecl );
++        	pImplName, pServiceManager, pRegistryKey, range::serviceDecl, workbook::serviceDecl, worksheet::serviceDecl, globals::serviceDecl, userform::serviceDecl );
+ 	OSL_TRACE("Ret is 0x%x", pRet);
+ 	return pRet;
+     }
+Index: sc/source/ui/vba/vbaapplication.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbaapplication.cxx,v
+retrieving revision 1.5
+retrieving revision 1.5.42.2
+diff -u -p -u -p -b -w -B -r1.5 -r1.5.42.2
+--- sc/source/ui/vba/vbaapplication.cxx	7 Dec 2007 10:43:04 -0000	1.5
++++ sc/source/ui/vba/vbaapplication.cxx	14 Feb 2008 15:15:46 -0000	1.5.42.2
+@@ -62,6 +62,8 @@
+ #include "gridwin.hxx"
+ #include "vbanames.hxx"
+ #include "vbashape.hxx"
++#include "vbatextboxshape.hxx"
++#include "vbaassistant.hxx"
+ #include "sc.hrc"
+ 
+ #include <osl/file.hxx>
+@@ -127,9 +129,16 @@ ScVbaApplication::getThisWorkbook() thro
+ 	return getActiveWorkbook();
+ }
+ 
++uno::Reference< vba::XAssistant > SAL_CALL
++ScVbaApplication::getAssistant() throw (css::uno::RuntimeException)
++{
++    return uno::Reference< vba::XAssistant >( new ScVbaAssistant( this, mxContext ) );
++}
++
+ uno::Any SAL_CALL
+ ScVbaApplication::getSelection() throw (uno::RuntimeException)
+ {
++    OSL_TRACE("** ScVbaApplication::getSelection() ** ");
+     uno::Reference< lang::XServiceInfo > xServiceInfo( getCurrentDocument()->getCurrentSelection(), uno::UNO_QUERY_THROW );
+     rtl::OUString sImpementaionName = xServiceInfo->getImplementationName();
+     if( sImpementaionName.equalsIgnoreAsciiCaseAscii("com.sun.star.drawing.SvxShapeCollection") )
+@@ -137,6 +146,17 @@ ScVbaApplication::getSelection() throw (
+         uno::Reference< drawing::XShapes > xShapes( getCurrentDocument()->getCurrentSelection(), uno::UNO_QUERY_THROW );
+         uno::Reference< container::XIndexAccess > xIndexAccess( xShapes, uno::UNO_QUERY_THROW );
+         uno::Reference< drawing::XShape > xShape( xIndexAccess->getByIndex(0), uno::UNO_QUERY_THROW );
++	// if ScVbaShape::getType( xShape ) == office::MsoShapeType::msoAutoShape
++	// and the uno object implements the com.sun.star.drawing.Text service
++	// return a textboxshape object
++	if ( ScVbaShape::getType( xShape ) == office::MsoShapeType::msoAutoShape )
++	{
++		uno::Reference< lang::XServiceInfo > xShapeServiceInfo( xShape, uno::UNO_QUERY_THROW );
++		if ( xShapeServiceInfo->supportsService( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.drawing.Text" ) ) )  )
++		{
++        		return uno::makeAny( uno::Reference< msforms::XTextBoxShape >(new ScVbaTextBoxShape( mxContext, xShape, xShapes, getCurrentDocument() ) ) );
++		}
++	}
+         return uno::makeAny( uno::Reference< msforms::XShape >(new ScVbaShape( this, mxContext, xShape, xShapes, ScVbaShape::getType( xShape ) ) ) );
+     }
+     else if( xServiceInfo->supportsService( rtl::OUString::createFromAscii("com.sun.star.sheet.SheetCellRange")) ||
+@@ -431,12 +451,17 @@ ScVbaApplication::Range( const uno::Any&
+ }
+ 
+ uno::Any SAL_CALL
+-ScVbaApplication::Names( ) throw ( uno::RuntimeException )
++ScVbaApplication::Names( const css::uno::Any& aIndex ) throw ( uno::RuntimeException )
+ {
+     uno::Reference< frame::XModel > xModel( getCurrentDocument(), uno::UNO_QUERY_THROW );
+-    uno::Reference< sheet::XNamedRanges > xNamedRanges( getActiveSheet() , uno::UNO_QUERY_THROW );
++    uno::Reference< beans::XPropertySet > xPropertySet( xModel, uno::UNO_QUERY_THROW );
++    uno::Reference< sheet::XNamedRanges > xNamedRanges( xPropertySet->getPropertyValue( rtl::OUString::createFromAscii("NamedRanges")) , uno::UNO_QUERY_THROW );
+     css::uno::Reference< excel::XNames > xNames ( new ScVbaNames( this , mxContext , xNamedRanges , xModel ) );
+-        return uno::makeAny( xNames );
++    if (  aIndex.getValueTypeClass() == uno::TypeClass_VOID )
++    {
++        return uno::Any( xNames );
++    }
++    return uno::Any( xNames->Item( aIndex, uno::Any() ) );
+ }
+ 
+ 
+Index: sc/source/ui/vba/vbaapplication.hxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbaapplication.hxx,v
+retrieving revision 1.3
+retrieving revision 1.3.42.1
+diff -u -p -u -p -b -w -B -r1.3 -r1.3.42.1
+--- sc/source/ui/vba/vbaapplication.hxx	7 Dec 2007 10:43:17 -0000	1.3
++++ sc/source/ui/vba/vbaapplication.hxx	18 Jan 2008 16:51:37 -0000	1.3.42.1
+@@ -80,6 +80,7 @@ public:
+ 	virtual ::sal_Bool SAL_CALL getDisplayFormulaBar() throw ( css::uno::RuntimeException );
+ 	virtual void SAL_CALL setDisplayFormulaBar( ::sal_Bool _displayformulabar ) throw ( css::uno::RuntimeException );
+ 
++    virtual css::uno::Reference< oo::vba::XAssistant > SAL_CALL getAssistant() throw (css::uno::RuntimeException);
+ 	virtual css::uno::Reference< oo::excel::XWorkbook > SAL_CALL getThisWorkbook() throw (css::uno::RuntimeException);
+ 	virtual css::uno::Any SAL_CALL Workbooks( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException);
+ 	virtual css::uno::Any SAL_CALL Worksheets( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException);
+@@ -99,7 +100,7 @@ public:
+ 	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);
+-	virtual css::uno::Any SAL_CALL Names( ) throw ( css::uno::RuntimeException );
++	virtual css::uno::Any SAL_CALL Names( const css::uno::Any& aIndex ) throw ( css::uno::RuntimeException );
+ 	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);
+Index: sc/source/ui/vba/vbaassistant.cxx
+===================================================================
+RCS file: sc/source/ui/vba/vbaassistant.cxx
+diff -N sc/source/ui/vba/vbaassistant.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/vbaassistant.cxx	18 Jan 2008 19:27:41 -0000	1.1.2.1
+@@ -0,0 +1,140 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#include <sfx2/app.hxx>
++#include <svtools/helpopt.hxx>
++
++#include <org/openoffice/office/MsoAnimationType.hpp>
++
++#include"vbaassistant.hxx"
++
++
++using namespace com::sun::star;
++using namespace org::openoffice;
++
++using namespace org::openoffice::office::MsoAnimationType;
++
++ScVbaAssistant::ScVbaAssistant( const uno::Reference< vba::XHelperInterface > xParent, const uno::Reference< uno::XComponentContext > xContext ): ScVbaAssistantImpl_BASE( xParent, xContext )
++{
++    m_bIsVisible = sal_False;
++    m_nPointsLeft = 795;
++    m_nPointsTop = 248;
++    m_sName = rtl::OUString::createFromAscii( "Clippit" );
++    m_nAnimation = msoAnimationIdle;
++}
++
++ScVbaAssistant::~ScVbaAssistant()
++{
++}
++
++sal_Bool SAL_CALL ScVbaAssistant::getVisible() throw (uno::RuntimeException)
++{
++    return m_bIsVisible;
++}
++
++void SAL_CALL ScVbaAssistant::setVisible( sal_Bool bVisible ) throw (uno::RuntimeException)
++{
++    m_bIsVisible = bVisible;
++}
++
++sal_Bool SAL_CALL ScVbaAssistant::getOn() throw (uno::RuntimeException)
++{
++    if( SvtHelpOptions().IsHelpAgentAutoStartMode() )
++        return sal_True;
++    else
++        return sal_False;
++}
++
++void SAL_CALL ScVbaAssistant::setOn( sal_Bool bOn ) throw (uno::RuntimeException)
++{
++    SvtHelpOptions().SetHelpAgentAutoStartMode( bOn );
++    setVisible( bOn );
++}
++
++
++::sal_Int32 SAL_CALL 
++ScVbaAssistant::getTop() throw (css::uno::RuntimeException)
++{
++    return m_nPointsTop;
++}
++void SAL_CALL 
++ScVbaAssistant::setTop( ::sal_Int32 _top ) throw (css::uno::RuntimeException)
++{
++    m_nPointsTop = _top;
++}
++::sal_Int32 SAL_CALL 
++ScVbaAssistant::getLeft() throw (css::uno::RuntimeException)
++{
++    return m_nPointsLeft;
++}
++void SAL_CALL 
++ScVbaAssistant::setLeft( ::sal_Int32 _left ) throw (css::uno::RuntimeException)
++{
++    m_nPointsLeft = _left;
++}
++::sal_Int32 SAL_CALL 
++ScVbaAssistant::getAnimation() throw (css::uno::RuntimeException)
++{
++    return m_nAnimation;
++}
++void SAL_CALL 
++ScVbaAssistant::setAnimation( ::sal_Int32 _animation ) throw (css::uno::RuntimeException)
++{
++    m_nAnimation = _animation;
++}
++
++::rtl::OUString SAL_CALL 
++ScVbaAssistant::Name(  ) throw (css::script::BasicErrorException, css::uno::RuntimeException)
++{
++    return m_sName;
++}
++
++rtl::OUString& 
++ScVbaAssistant::getServiceImplName()
++{
++	static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("ScVbaAssistant") );
++	return sImplName;
++}
++
++uno::Sequence< rtl::OUString > 
++ScVbaAssistant::getServiceNames()
++{
++	static uno::Sequence< rtl::OUString > aServiceNames;
++	if ( aServiceNames.getLength() == 0 )
++	{
++		aServiceNames.realloc( 1 );
++		aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("org.openoffice.vba.Assistant" ) );
++	}
++	return aServiceNames;
++}
+Index: sc/source/ui/vba/vbaassistant.hxx
+===================================================================
+RCS file: sc/source/ui/vba/vbaassistant.hxx
+diff -N sc/source/ui/vba/vbaassistant.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/vbaassistant.hxx	18 Jan 2008 19:27:42 -0000	1.1.2.1
+@@ -0,0 +1,78 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#ifndef SC_VBA_ASSISTANT_HXX
++#define SC_VBA_ASSISTANT_HXX
++
++#include <cppuhelper/implbase1.hxx>
++#include <org/openoffice/vba/XAssistant.hpp>
++
++#include <sfx2/sfxhelp.hxx>
++
++#include "vbahelper.hxx"
++#include "vbahelperinterface.hxx"
++
++typedef ::cppu::WeakImplHelper1< oo::vba::XAssistant > Assistant;
++typedef InheritedHelperInterfaceImpl< Assistant > ScVbaAssistantImpl_BASE;
++
++class ScVbaAssistant : public ScVbaAssistantImpl_BASE
++{
++private:
++    sal_Bool        m_bIsVisible;
++    sal_Int32       m_nPointsLeft;
++    sal_Int32       m_nPointsTop;
++    rtl::OUString   m_sName;
++    sal_Int32       m_nAnimation;
++public:
++    ScVbaAssistant( const css::uno::Reference< oo::vba::XHelperInterface > xParent, const css::uno::Reference< css::uno::XComponentContext > xContext );
++    virtual ~ScVbaAssistant();
++    // XAssistant 
++    virtual sal_Bool SAL_CALL getOn() throw (css::uno::RuntimeException);
++    virtual void SAL_CALL setOn( sal_Bool _on ) throw (css::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL getVisible() throw (css::uno::RuntimeException);
++    virtual void SAL_CALL setVisible( sal_Bool _visible ) throw (css::uno::RuntimeException);
++    virtual ::sal_Int32 SAL_CALL getTop() throw (css::uno::RuntimeException);
++    virtual void SAL_CALL setTop( ::sal_Int32 _top ) throw (css::uno::RuntimeException);
++    virtual ::sal_Int32 SAL_CALL getLeft() throw (css::uno::RuntimeException);
++    virtual void SAL_CALL setLeft( ::sal_Int32 _left ) throw (css::uno::RuntimeException);
++    virtual ::sal_Int32 SAL_CALL getAnimation() throw (css::uno::RuntimeException);
++    virtual void SAL_CALL setAnimation( ::sal_Int32 _animation ) throw (css::uno::RuntimeException);
++
++    virtual ::rtl::OUString SAL_CALL Name(  ) throw (css::script::BasicErrorException, css::uno::RuntimeException);
++	// XHelperInterface
++	virtual rtl::OUString& getServiceImplName();
++	virtual css::uno::Sequence<rtl::OUString> getServiceNames();
++};
++
++#endif//SC_VBA_ASSISTANT_HXX
+Index: sc/source/ui/vba/vbaaxis.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbaaxis.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.42.1
+diff -u -p -u -p -b -w -B -r1.2 -r1.2.42.1
+--- sc/source/ui/vba/vbaaxis.cxx	7 Dec 2007 10:43:48 -0000	1.2
++++ sc/source/ui/vba/vbaaxis.cxx	28 Jan 2008 11:00:30 -0000	1.2.42.1
+@@ -47,8 +47,8 @@ using namespace ::org::openoffice::excel
+ 
+ const rtl::OUString ORIGIN( RTL_CONSTASCII_USTRINGPARAM("Origin") );
+ const rtl::OUString AUTOORIGIN( RTL_CONSTASCII_USTRINGPARAM("AutoOrigin") );
+-const rtl::OUString MIN( RTL_CONSTASCII_USTRINGPARAM("AutoOrigin") );
+-const rtl::OUString MAX( RTL_CONSTASCII_USTRINGPARAM("AutoOrigin") );
++const rtl::OUString VBA_MIN( RTL_CONSTASCII_USTRINGPARAM("Max") );
++const rtl::OUString VBA_MAX( RTL_CONSTASCII_USTRINGPARAM("Min") );
+ ScVbaChart* 
+ ScVbaAxis::getChartPtr() throw( uno::RuntimeException )
+ {
+@@ -142,12 +142,12 @@ ScVbaAxis::setCrosses( ::sal_Int32 _nCro
+ 				bCrossesAreCustomized = sal_False;
+ 				return;
+ 			case xlAxisCrossesMinimum:                     // The axis crosses at the minimum value. 
+-				mxPropertySet->getPropertyValue(MIN) >>= fNum;
++				mxPropertySet->getPropertyValue(VBA_MIN) >>= fNum;
+ 				setCrossesAt( fNum );
+ 				bCrossesAreCustomized = sal_False;
+ 				break;
+ 			case xlAxisCrossesMaximum:                     // The axis crosses at the maximum value. 
+-				mxPropertySet->getPropertyValue(MAX) >>= fNum;
++				mxPropertySet->getPropertyValue(VBA_MAX) >>= fNum;
+ 				setCrossesAt(fNum);
+ 				bCrossesAreCustomized = sal_False;
+ 				break;
+@@ -182,7 +182,7 @@ ScVbaAxis::getCrosses(  ) throw (script:
+ 				mxPropertySet->getPropertyValue(ORIGIN) >>= forigin;
+ //obsolete      double fmax = AnyConverter.toDouble(mxPropertySet.getPropertyValue("Max"));
+ 				double fmin = 0.0;
+-				mxPropertySet->getPropertyValue(MIN) >>= fmin;
++				mxPropertySet->getPropertyValue(VBA_MIN) >>= fmin;
+ 				if (forigin == fmin)
+ 					nCrosses = xlAxisCrossesMinimum;
+ 				else
+Index: sc/source/ui/vba/vbabutton.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbabutton.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.42.1
+diff -u -p -u -p -b -w -B -r1.2 -r1.2.42.1
+--- sc/source/ui/vba/vbabutton.cxx	7 Dec 2007 10:44:58 -0000	1.2
++++ sc/source/ui/vba/vbabutton.cxx	22 Apr 2008 19:53:15 -0000	1.2.42.1
+@@ -40,7 +40,7 @@ using namespace org::openoffice;
+ 
+ 
+ const static rtl::OUString LABEL( RTL_CONSTASCII_USTRINGPARAM("Label") );
+-ScVbaButton::ScVbaButton( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< css::drawing::XControlShape >& xControlShape ) : ButtonImpl_BASE( xContext, xControlShape )
++ScVbaButton::ScVbaButton( const uno::Reference< vba::XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< uno::XInterface >& xControl, AbstractGeometryAttributes* pGeomHelper ) : ButtonImpl_BASE( xParent, xContext, xControl, pGeomHelper )
+ {
+ }
+ 
+@@ -58,3 +58,22 @@ ScVbaButton::setCaption( const rtl::OUSt
+ {
+     m_xProps->setPropertyValue( LABEL, uno::makeAny( _caption ) );
+ }
++
++rtl::OUString& 
++ScVbaButton::getServiceImplName()
++{
++	static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("ScVbaButton") );
++	return sImplName;
++}
++
++uno::Sequence< rtl::OUString > 
++ScVbaButton::getServiceNames()
++{
++	static uno::Sequence< rtl::OUString > aServiceNames;
++	if ( aServiceNames.getLength() == 0 )
++	{
++		aServiceNames.realloc( 1 );
++		aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("org.openoffice.msforms.Button" ) );
++	}
++	return aServiceNames;
++}
+Index: sc/source/ui/vba/vbabutton.hxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbabutton.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.42.1
+diff -u -p -u -p -b -w -B -r1.2 -r1.2.42.1
+--- sc/source/ui/vba/vbabutton.hxx	7 Dec 2007 10:45:09 -0000	1.2
++++ sc/source/ui/vba/vbabutton.hxx	22 Apr 2008 19:53:15 -0000	1.2.42.1
+@@ -45,10 +45,12 @@ typedef cppu::ImplInheritanceHelper1< Sc
+ class ScVbaButton : public ButtonImpl_BASE
+ {
+ public:
+-    ScVbaButton( const css::uno::Reference< css::uno::XComponentContext >& xContext,
+-                    const css::uno::Reference< css::drawing::XControlShape >& xControlShape );
++    ScVbaButton( const css::uno::Reference< oo::vba::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::uno::XInterface >& xControl, oo::AbstractGeometryAttributes* pGeomHelper  );
+    // Attributes
+     virtual rtl::OUString SAL_CALL getCaption() throw (css::uno::RuntimeException);
+     virtual void SAL_CALL setCaption( const rtl::OUString& _caption ) throw (css::uno::RuntimeException);
++    //XHelperInterface
++    virtual rtl::OUString& getServiceImplName();
++    virtual css::uno::Sequence<rtl::OUString> getServiceNames();
+ };
+ #endif //SC_VBA_BUTTON_HXX
+Index: sc/source/ui/vba/vbacharacters.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbacharacters.cxx,v
+retrieving revision 1.3
+retrieving revision 1.3.42.1
+diff -u -p -u -p -b -w -B -r1.3 -r1.3.42.1
+--- sc/source/ui/vba/vbacharacters.cxx	7 Dec 2007 10:45:21 -0000	1.3
++++ sc/source/ui/vba/vbacharacters.cxx	14 Feb 2008 15:15:46 -0000	1.3.42.1
+@@ -51,7 +51,11 @@ ScVbaCharacters::ScVbaCharacters( const 
+ 	uno::Reference< text::XTextCursor > xTextCursor( m_xSimpleText->createTextCursor(), uno::UNO_QUERY_THROW );
+ 	xTextCursor->collapseToStart();
+ 	if ( nStart )
++	{
++		if ( ( nStart + 1 ) > xRange->getString().getLength() )
++			nStart = xRange->getString().getLength();
+ 		xTextCursor->goRight( nStart, sal_False );
++	}
+ 	if ( nLength < 0 ) // expand to end
+ 		xTextCursor->gotoEnd( sal_True );
+ 	else
+Index: sc/source/ui/vba/vbacheckbox.cxx
+===================================================================
+RCS file: sc/source/ui/vba/vbacheckbox.cxx
+diff -N sc/source/ui/vba/vbacheckbox.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/vbacheckbox.cxx	22 Apr 2008 19:53:15 -0000	1.1.2.1
+@@ -0,0 +1,110 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#include "vbacheckbox.hxx"
++#include <vector>
++
++using namespace com::sun::star;
++using namespace org::openoffice;
++
++
++const static rtl::OUString LABEL( RTL_CONSTASCII_USTRINGPARAM("Label") );
++const static rtl::OUString STATE( RTL_CONSTASCII_USTRINGPARAM("State") );
++ScVbaCheckbox::ScVbaCheckbox( const uno::Reference< oo::vba::XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< uno::XInterface >& xControl, oo::AbstractGeometryAttributes* pGeomHelper ) : CheckBoxImpl_BASE( xParent, xContext, xControl, pGeomHelper )
++{
++}
++
++// Attributes
++rtl::OUString SAL_CALL 
++ScVbaCheckbox::getCaption() throw (css::uno::RuntimeException)
++{
++    rtl::OUString Label;
++    m_xProps->getPropertyValue( LABEL ) >>= Label;
++    return Label;
++}
++
++void SAL_CALL 
++ScVbaCheckbox::setCaption( const rtl::OUString& _caption ) throw (::com::sun::star::uno::RuntimeException)
++{
++    m_xProps->setPropertyValue( LABEL, uno::makeAny( _caption ) );
++}
++
++uno::Any SAL_CALL 
++ScVbaCheckbox::getValue() throw (css::uno::RuntimeException)
++{
++    sal_Int16 nValue = -1;
++    m_xProps->getPropertyValue( STATE ) >>= nValue;
++    if( nValue != 0 )
++        nValue = -1;
++//    return uno::makeAny( nValue ); 
++// I must be missing something MSO says value should be -1 if selected, 0 if not
++// selected
++    return uno::makeAny( ( nValue == -1 ) ? sal_True : sal_False ); 
++}
++
++void SAL_CALL 
++ScVbaCheckbox::setValue( const uno::Any& _value ) throw (css::uno::RuntimeException)
++{
++    sal_Int16 nValue = 0;
++    sal_Bool bValue = false;
++    if( _value >>= nValue )
++    {
++        if( nValue == -1)
++            nValue = 1;
++    }
++    else if ( _value >>= bValue )
++    {
++        if ( bValue )
++            nValue = 1;
++    }
++    m_xProps->setPropertyValue( STATE, uno::makeAny( nValue ) );
++}
++rtl::OUString& 
++ScVbaCheckbox::getServiceImplName()
++{
++	static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("ScVbaCheckbox") );
++	return sImplName;
++}
++
++uno::Sequence< rtl::OUString > 
++ScVbaCheckbox::getServiceNames()
++{
++	static uno::Sequence< rtl::OUString > aServiceNames;
++	if ( aServiceNames.getLength() == 0 )
++	{
++		aServiceNames.realloc( 1 );
++		aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("org.openoffice.msforms.CheckBox" ) );
++	}
++	return aServiceNames;
++}
+Index: sc/source/ui/vba/vbacheckbox.hxx
+===================================================================
+RCS file: sc/source/ui/vba/vbacheckbox.hxx
+diff -N sc/source/ui/vba/vbacheckbox.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/vbacheckbox.hxx	22 Apr 2008 19:53:15 -0000	1.1.2.1
+@@ -0,0 +1,58 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#ifndef SC_VBA_CHECKBOX_HXX
++#define SC_VBA_CHECKBOX_HXX
++#include <cppuhelper/implbase1.hxx>
++#include <org/openoffice/msforms/XRadioButton.hpp>
++
++#include "vbacontrol.hxx"
++#include "vbahelper.hxx"
++
++typedef cppu::ImplInheritanceHelper1< ScVbaControl, oo::msforms::XRadioButton > CheckBoxImpl_BASE;
++
++class ScVbaCheckbox : public CheckBoxImpl_BASE
++{
++public:
++    ScVbaCheckbox(  const css::uno::Reference< oo::vba::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::uno::XInterface >& xControl, oo::AbstractGeometryAttributes* pGeomHelper );
++   // Attributes
++    virtual rtl::OUString SAL_CALL getCaption() throw (css::uno::RuntimeException);
++    virtual void SAL_CALL setCaption( const rtl::OUString& _caption ) throw (css::uno::RuntimeException);
++    virtual css::uno::Any SAL_CALL getValue() throw (css::uno::RuntimeException);
++    virtual void SAL_CALL setValue( const css::uno::Any& _value ) throw (css::uno::RuntimeException);
++    //XHelperInterface
++    virtual rtl::OUString& getServiceImplName();
++    virtual css::uno::Sequence<rtl::OUString> getServiceNames();
++};
++#endif //SC_VBA_CHECKBOX_HXX
+Index: sc/source/ui/vba/vbacombobox.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbacombobox.cxx,v
+retrieving revision 1.3
+retrieving revision 1.3.42.1
+diff -u -p -u -p -b -w -B -r1.3 -r1.3.42.1
+--- sc/source/ui/vba/vbacombobox.cxx	7 Dec 2007 10:48:18 -0000	1.3
++++ sc/source/ui/vba/vbacombobox.cxx	22 Apr 2008 19:53:15 -0000	1.3.42.1
+@@ -39,34 +39,93 @@ using namespace com::sun::star;
+ using namespace org::openoffice;
+ 
+ 
+-const static rtl::OUString CONTROLSOURCEPROP( RTL_CONSTASCII_USTRINGPARAM("DataFieldProperty") );
++//SelectedItems list of integer indexes
++//StringItemList list of items
++
++const static rtl::OUString TEXT( RTL_CONSTASCII_USTRINGPARAM("Text") );
++const static rtl::OUString SELECTEDITEMS( RTL_CONSTASCII_USTRINGPARAM("SelectedItems") );
+ const static rtl::OUString ITEMS( RTL_CONSTASCII_USTRINGPARAM("StringItemList") );
++const static rtl::OUString CONTROLSOURCEPROP( RTL_CONSTASCII_USTRINGPARAM("DataFieldProperty") );
+ 
+-ScVbaComboBox::ScVbaComboBox( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< css::drawing::XControlShape >& xControlShape ) : ComboBoxImpl_BASE( xContext, xControlShape )
++ScVbaComboBox::ScVbaComboBox( const uno::Reference< vba::XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< uno::XInterface >& xControl, AbstractGeometryAttributes* pGeomHelper, bool bDialogType ) : ComboBoxImpl_BASE( xParent, xContext, xControl, pGeomHelper ), mbDialogType( bDialogType )
+ {
++	if ( !mbDialogType )
+ 	// grab the default value property name
+ 	m_xProps->getPropertyValue( CONTROLSOURCEPROP ) >>= sSourceName;
+ }
+ 
+-ScVbaComboBox::ScVbaComboBox( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< beans::XPropertySet >& xPropSet, const css::uno::Reference< css::drawing::XControlShape > xControlShape ) : ComboBoxImpl_BASE( xContext, xPropSet, xControlShape )
+-{
+-	m_xProps->getPropertyValue( CONTROLSOURCEPROP ) >>= sSourceName;
+-}
++// Attributes
+ 
+ 
+-// Attributes
++// Value, [read] e.g. getValue returns the value of ooo Text propery e.g. the value in
++// the drop down
+ uno::Any SAL_CALL 
+ ScVbaComboBox::getValue() throw (uno::RuntimeException)
+ {
++	if ( mbDialogType )
++		return 	m_xProps->getPropertyValue( TEXT ); 
++	else	
+ 	return m_xProps->getPropertyValue( sSourceName );
+ }
+ 
+ void SAL_CALL 
++ScVbaComboBox::setListIndex( const uno::Any& _value ) throw (uno::RuntimeException)
++{
++// #TODO Test me please
++    uno::Sequence< rtl::OUString > sItems;
++    m_xProps->getPropertyValue( ITEMS ) >>= sItems;
++    uno::Sequence< sal_Int16 > sSelection(1);
++    _value >>= sSelection[ 0 ];
++    if ( mbDialogType )
++    {
++        if ( sItems.getLength() == 0 || sSelection[0] < 0 || sSelection[ 0 ] >= sItems.getLength() )
++            throw uno::RuntimeException( rtl::OUString::createFromAscii("Illegal index"), uno::Reference< uno::XInterface >() );
++        setValue( uno::makeAny( sItems[ sSelection[ 0 ] ] ) ); 
++    }
++    else
++    {
++	m_xProps->setPropertyValue( SELECTEDITEMS, uno::makeAny( sSelection ) );
++    } 
++}
++
++uno::Any SAL_CALL 
++ScVbaComboBox::getListIndex() throw (uno::RuntimeException)
++{
++	uno::Sequence< rtl::OUString > sItems;
++	m_xProps->getPropertyValue( ITEMS ) >>= sItems;
++	// should really return the item that has focus regardless of
++	// it been selected
++	if ( sItems.getLength() > 0 )
++	{
++		rtl::OUString sText = getText();
++		sal_Int32 nLen = sItems.getLength();
++		for ( sal_Int32 index = 0; sText.getLength() && index < nLen; ++index )
++		{
++			if ( sItems[ index ].equals( sText ) )
++			{
++				OSL_TRACE("getListIndex returning %d", index );
++				return uno::makeAny( index );
++			}
++				
++		} 
++ 	} 
++	OSL_TRACE("getListIndex returning %d", -1 );
++	return uno::makeAny( sal_Int32( -1 ) );
++}
++
++// Value, [write]e.g. setValue sets the value in the drop down, and if the value is one
++// of the values in the list then the selection is also set
++void SAL_CALL 
+ ScVbaComboBox::setValue( const uno::Any& _value ) throw (uno::RuntimeException)
+ {
++	if ( mbDialogType )
++		m_xProps->setPropertyValue( TEXT, _value );
++	else
+ 	m_xProps->setPropertyValue( sSourceName, _value );
+ }
+ 
++// see Value
++
+ ::rtl::OUString SAL_CALL 
+ ScVbaComboBox::getText() throw (uno::RuntimeException)
+ {
+@@ -145,3 +204,22 @@ ScVbaComboBox::Clear(  ) throw (uno::Run
+ 	setValue( uno::makeAny( rtl::OUString() ) );
+ 	m_xProps->setPropertyValue( ITEMS, uno::makeAny( uno::Sequence< rtl::OUString >() ) );
+ }
++
++rtl::OUString& 
++ScVbaComboBox::getServiceImplName()
++{
++	static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("ScVbaComboBox") );
++	return sImplName;
++}
++
++uno::Sequence< rtl::OUString > 
++ScVbaComboBox::getServiceNames()
++{
++	static uno::Sequence< rtl::OUString > aServiceNames;
++	if ( aServiceNames.getLength() == 0 )
++	{
++		aServiceNames.realloc( 1 );
++		aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("org.openoffice.msforms.ComboBox" ) );
++	}
++	return aServiceNames;
++}
+Index: sc/source/ui/vba/vbacombobox.hxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbacombobox.hxx,v
+retrieving revision 1.3
+retrieving revision 1.3.42.1
+diff -u -p -u -p -b -w -B -r1.3 -r1.3.42.1
+--- sc/source/ui/vba/vbacombobox.hxx	7 Dec 2007 10:48:31 -0000	1.3
++++ sc/source/ui/vba/vbacombobox.hxx	22 Apr 2008 19:53:15 -0000	1.3.42.1
+@@ -49,22 +49,16 @@
+ typedef cppu::ImplInheritanceHelper2<ScVbaControl, oo::msforms::XComboBox, css::script::XDefaultProperty > ComboBoxImpl_BASE;
+ class ScVbaComboBox : public ComboBoxImpl_BASE
+ {		
+-
+-	//css::uno::Reference< css::uno::XComponentContext > m_xContext;
+-	//css::uno::Reference< css::beans::XPropertySet > m_xProps;
+ 	rtl::OUString sSourceName; 
+ 	rtl::OUString msDftPropName;
+-
++	bool mbDialogType;
+ 	
+ public:
+-	ScVbaComboBox( const css::uno::Reference< css::uno::XComponentContext >& xContext, 
+-                    const css::uno::Reference< css::drawing::XControlShape >& xControlShape );
+-    ScVbaComboBox( const css::uno::Reference< css::uno::XComponentContext >& xContext,
+-                    const css::uno::Reference< css::beans::XPropertySet >& xProps,
+-                    const css::uno::Reference< css::drawing::XControlShape> xControlShape );
+-
++	ScVbaComboBox( const css::uno::Reference< oo::vba::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::uno::XInterface >& xControl, oo::AbstractGeometryAttributes* pGeomHelper, bool bDialogType = false );
+ 
+ 	// Attributes
++	virtual css::uno::Any SAL_CALL getListIndex() throw (css::uno::RuntimeException);
++	virtual void SAL_CALL setListIndex( const css::uno::Any& _value ) throw (css::uno::RuntimeException);
+ 	virtual css::uno::Any SAL_CALL getValue() throw (css::uno::RuntimeException);
+ 	virtual void SAL_CALL setValue( const css::uno::Any& _value ) throw (css::uno::RuntimeException);
+ 	virtual ::rtl::OUString SAL_CALL getText() throw (css::uno::RuntimeException);
+@@ -76,6 +70,9 @@ public:
+ 
+ 	// XDefaultProperty
+         ::rtl::OUString SAL_CALL getDefaultPropertyName(  ) throw (css::uno::RuntimeException) { return ::rtl::OUString::createFromAscii("Value"); }
++	//XHelperInterface
++	virtual rtl::OUString& getServiceImplName();
++	virtual css::uno::Sequence<rtl::OUString> getServiceNames();
+ };
+ 
+ #endif //
+Index: sc/source/ui/vba/vbacontrol.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbacontrol.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.42.1
+diff -u -p -u -p -b -w -B -r1.2 -r1.2.42.1
+--- sc/source/ui/vba/vbacontrol.cxx	7 Dec 2007 10:49:52 -0000	1.2
++++ sc/source/ui/vba/vbacontrol.cxx	22 Apr 2008 19:53:15 -0000	1.2.42.1
+@@ -49,17 +49,25 @@
+ #include "vbatextbox.hxx"
+ #include "vbaradiobutton.hxx"
+ #include "vbalistbox.hxx"
++#include "vbatogglebutton.hxx"
++#include "vbacheckbox.hxx"
++#include "vbaframe.hxx"
++#include "vbascrollbar.hxx"
++#include "vbaprogressbar.hxx"
++#include "vbamultipage.hxx"
+ 
+ 
+ using namespace com::sun::star;
+ using namespace org::openoffice;
+ 
+-sal_Int32 pt2mm( double pt );
+-double mm2pt( sal_Int32 mm );
+-
+ uno::Reference< css::awt::XWindowPeer > 
+-ScVbaControl::getWindowPeer( const uno::Reference< ::drawing::XControlShape >& xControlShape ) throw (uno::RuntimeException)
++ScVbaControl::getWindowPeer() throw (uno::RuntimeException)
+ {
++    // #FIXME why don't we already have the XModel instead of getting it
++    // directly from the controlmodel, probablye we thought there was a reason
++    // at some stage.
++    uno::Reference< drawing::XControlShape > xControlShape( m_xControl, uno::UNO_QUERY );
++
+     uno::Reference< awt::XControlModel > xControlModel( xControlShape->getControl(), uno::UNO_QUERY_THROW );
+     //init m_xWindowPeer 
+     uno::Reference< container::XChild > xChild( xControlModel, uno::UNO_QUERY_THROW );
+@@ -67,17 +75,18 @@ ScVbaControl::getWindowPeer( const uno::
+     xChild.set( xChild->getParent(), uno::UNO_QUERY_THROW );
+     uno::Reference< frame::XModel > xModel( xChild->getParent(), uno::UNO_QUERY_THROW );
+     uno::Reference< view::XControlAccess > xControlAccess( xModel->getCurrentController(), uno::UNO_QUERY_THROW );
+-    uno::Reference< awt::XControl > xControl;
++    uno::Reference< css::awt::XWindowPeer >  xWinPeer;
+     try
+     {
+-        xControl.set( xControlAccess->getControl( xControlModel ), uno::UNO_QUERY );
++        uno::Reference< awt::XControl > xControl( xControlAccess->getControl( xControlModel ), uno::UNO_QUERY );
++        xWinPeer =  xControl->getPeer();
+     }
+     catch( uno::Exception )
+     {
+         throw uno::RuntimeException( rtl::OUString::createFromAscii( "The Control does not exsit" ),
+                 uno::Reference< uno::XInterface >() );
+     }
+-    return xControl->getPeer();
++    return xWinPeer;
+ }
+ 
+ //ScVbaControlListener
+@@ -111,67 +120,44 @@ ScVbaControlListener::disposing( const l
+ 
+ //ScVbaControl
+ 
+-ScVbaControl::ScVbaControl( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< ::drawing::XControlShape >& xControlShape ) : m_xContext( xContext ), m_xControlShape( xControlShape )
++ScVbaControl::ScVbaControl( const uno::Reference< vba::XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< ::uno::XInterface >& xControl, AbstractGeometryAttributes* pGeomHelper ) : ControlImpl_BASE( xParent, xContext ),  m_xControl( xControl )
+ {
+-    //init m_xProps
+-    uno::Reference< awt::XControlModel > xControlModel( xControlShape->getControl(), uno::UNO_QUERY_THROW );
+-    uno::Reference< beans::XPropertySet > xProps( xControlModel, uno::UNO_QUERY_THROW );
+-    m_xProps.set( xProps, uno::UNO_QUERY_THROW );
+     //add listener
+     m_xEventListener.set( new ScVbaControlListener( this ) );
+-    uno::Reference< lang::XComponent > xComponent( m_xControlShape, uno::UNO_QUERY_THROW );
++    setGeometryHelper( pGeomHelper );
++    uno::Reference< lang::XComponent > xComponent( m_xControl, uno::UNO_QUERY_THROW );
+     xComponent->addEventListener( m_xEventListener );
++   
++    //init m_xProps
++    uno::Reference< drawing::XControlShape > xControlShape( m_xControl, uno::UNO_QUERY ) ;
++    uno::Reference< awt::XControl> xUserFormControl( m_xControl, uno::UNO_QUERY ) ;
++    if ( xControlShape.is() ) // form control
++        m_xProps.set( xControlShape->getControl(), uno::UNO_QUERY_THROW );
++    else if ( xUserFormControl.is() ) // userform control
++        m_xProps.set( xUserFormControl->getModel(), uno::UNO_QUERY_THROW );
+ }
+ 
+ ScVbaControl::~ScVbaControl()
+ {
+-    if( m_xControlShape.is() )
+-    {
+-        uno::Reference< lang::XComponent > xComponent( m_xControlShape, uno::UNO_QUERY_THROW );
+-        xComponent->removeEventListener( m_xEventListener );
+-    }
+-}
+-
+-void ScVbaControl::removeResouce() throw( uno::RuntimeException )
++    if( m_xControl.is() )
+ {
+-    uno::Reference< lang::XComponent > xComponent( m_xControlShape, uno::UNO_QUERY_THROW );
++        uno::Reference< lang::XComponent > xComponent( m_xControl, uno::UNO_QUERY_THROW );
+     xComponent->removeEventListener( m_xEventListener );
+-    m_xControlShape = NULL;
+-    m_xProps = NULL;
+ }
+-
+-
+-ScVbaControl::ScVbaControl( const uno::Reference< uno::XComponentContext >& xContext, 
+-        const uno::Reference< beans::XPropertySet >& xProps, 
+-        const uno::Reference< drawing::XControlShape > xControlShape ) : m_xContext( xContext ), 
+-        m_xProps( xProps ), m_xControlShape( xControlShape )
+-{
+-    m_xEventListener.set( new ScVbaControlListener( this ) );
+-    uno::Reference< lang::XComponent > xComponent( m_xControlShape, uno::UNO_QUERY_THROW );
+-    xComponent->addEventListener( m_xEventListener );
+ }
+ 
+-void ScVbaControl::SetControl( const uno::Reference< uno::XComponentContext > xContext, const uno::Reference< ::drawing::XControlShape > xControlShape )
++void 
++ScVbaControl::setGeometryHelper( AbstractGeometryAttributes* pHelper )
+ {
+-    m_xEventListener.set( new ScVbaControlListener( this ) );
+-    uno::Reference< lang::XComponent > xComponent( m_xControlShape, uno::UNO_QUERY_THROW );
+-    m_xContext.set( xContext, uno::UNO_QUERY_THROW );
+-    m_xControlShape.set( xControlShape, uno::UNO_QUERY_THROW );
+-    //init m_xProps
+-    uno::Reference< awt::XControlModel > xControlModel( xControlShape->getControl(), uno::UNO_QUERY_THROW );
+-    uno::Reference< beans::XPropertySet > xProps( xControlModel, uno::UNO_QUERY_THROW );
+-    m_xProps = xProps;
++    mpGeometryHelper.reset( pHelper );
+ }
+ 
+-void ScVbaControl::SetControl( const uno::Reference< uno::XComponentContext > xContext, 
+-        const uno::Reference< beans::XPropertySet > xProps, 
+-        const uno::Reference< drawing::XControlShape > xControlShape )
++void ScVbaControl::removeResouce() throw( uno::RuntimeException )
+ {
+-    m_xEventListener.set( new ScVbaControlListener( this ) );
+-    uno::Reference< lang::XComponent > xComponent( m_xControlShape, uno::UNO_QUERY_THROW );
+-    m_xContext.set( xContext, uno::UNO_QUERY_THROW );
+-    m_xProps.set( xProps, uno::UNO_QUERY_THROW );
+-    m_xControlShape.set( xControlShape, uno::UNO_QUERY_THROW );
++    uno::Reference< lang::XComponent > xComponent( m_xControl, uno::UNO_QUERY_THROW );
++    xComponent->removeEventListener( m_xEventListener );
++    m_xControl= NULL;
++    m_xProps = NULL;
+ }
+ 
+ //In design model has different behavior
+@@ -194,132 +180,169 @@ void SAL_CALL ScVbaControl::setEnabled( 
+ 
+ sal_Bool SAL_CALL ScVbaControl::getVisible() throw (uno::RuntimeException)
+ {
+-    uno::Reference< awt::XWindow2 > xWindow2( getWindowPeer( m_xControlShape ), uno::UNO_QUERY_THROW );
++    uno::Reference< awt::XWindow2 > xWindow2( getWindowPeer(), uno::UNO_QUERY_THROW );
+     return xWindow2->isVisible();
+ }
+ 
+ void SAL_CALL ScVbaControl::setVisible( sal_Bool bVisible ) throw (uno::RuntimeException)
+ {
+-    uno::Reference< awt::XWindow2 > xWindow2( getWindowPeer( m_xControlShape ), uno::UNO_QUERY_THROW );
++    uno::Reference< awt::XWindow2 > xWindow2( getWindowPeer(), uno::UNO_QUERY_THROW );
+     xWindow2->setVisible( bVisible );
+ }
+ double SAL_CALL ScVbaControl::getHeight() throw (uno::RuntimeException)
+ {
+-    uno::Reference< drawing::XShape > xShape( m_xControlShape, uno::UNO_QUERY_THROW );
+-    return mm2pt( xShape->getSize().Height ) / 100;
++    return mpGeometryHelper->getHeight();
+ }
+ void SAL_CALL ScVbaControl::setHeight( double _height ) throw (uno::RuntimeException)
+ {
+-    uno::Reference< drawing::XShape > xShape( m_xControlShape, uno::UNO_QUERY_THROW );
+-    awt::Size aSize( xShape->getSize() );
+-    aSize.Height = pt2mm( _height ) * 100;
+-    xShape->setSize( aSize );
++    mpGeometryHelper->setHeight( _height );
+ }
+ 
+ double SAL_CALL ScVbaControl::getWidth() throw (uno::RuntimeException)
+ {
+-    uno::Reference< drawing::XShape > xShape( m_xControlShape, uno::UNO_QUERY_THROW );
+-    return mm2pt( xShape->getSize().Width ) / 100;
++    return mpGeometryHelper->getWidth();
+ }
+ void SAL_CALL ScVbaControl::setWidth( double _width ) throw (uno::RuntimeException)
+ {
+-    uno::Reference< drawing::XShape > xShape( m_xControlShape, uno::UNO_QUERY_THROW );
+-    awt::Size aSize( xShape->getSize() );
+-    aSize.Width = pt2mm( _width ) * 100;
+-    xShape->setSize( aSize );
++    mpGeometryHelper->setWidth( _width );
+ }
+ 
+ double SAL_CALL
+ ScVbaControl::getLeft() throw (uno::RuntimeException)
+ {
+-    uno::Reference< drawing::XShape > xShape( m_xControlShape, uno::UNO_QUERY_THROW );
+-    return mm2pt( xShape->getPosition().X / 100 );
++    return mpGeometryHelper->getLeft();
+ }
+ 
+ void SAL_CALL
+ ScVbaControl::setLeft( double _left ) throw (uno::RuntimeException)
+ {
+-    awt::Point oldPosition;
+-    uno::Reference< drawing::XShape > xShape( m_xControlShape, uno::UNO_QUERY_THROW );
+-    oldPosition = xShape->getPosition();
+-    oldPosition.X = pt2mm( _left ) * 100;
+-    xShape->setPosition( oldPosition );
++    mpGeometryHelper->setLeft( _left );
+ 
+ }
+ 
+ double SAL_CALL
+ ScVbaControl::getTop() throw (uno::RuntimeException)
+ {
+-    uno::Reference< drawing::XShape > xShape( m_xControlShape, uno::UNO_QUERY_THROW );
+-    return mm2pt( xShape->getPosition().Y / 100 );
++    return mpGeometryHelper->getTop();
+ }
+ 
+ void SAL_CALL
+ ScVbaControl::setTop( double _top ) throw (uno::RuntimeException)
+ {
+-    awt::Point oldPosition;
+-    uno::Reference< drawing::XShape > xShape( m_xControlShape, uno::UNO_QUERY_THROW );
+-    oldPosition = xShape->getPosition();
+-    oldPosition.Y = pt2mm( _top ) * 100;;
+-    xShape->setPosition( oldPosition );
++    mpGeometryHelper->setTop( _top );
++}
++
++void SAL_CALL ScVbaControl::SetFocus() throw (uno::RuntimeException) 
++{
++    uno::Reference< awt::XWindow > xWin( m_xControl, uno::UNO_QUERY_THROW );
++    xWin->setFocus();
+ }
+ 
+ //ScVbaControlFactory
+ 
+-ScVbaControlFactory::ScVbaControlFactory( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< drawing::XControlShape >& xControlShape ): m_xContext( xContext ), m_xControlShape( xControlShape )
++ScVbaControlFactory::ScVbaControlFactory( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< uno::XInterface >& xControl ): m_xContext( xContext ), m_xControl( xControl )
+ {
+-    uno::Reference< awt::XControlModel > xControlModel( xControlShape->getControl(), uno::UNO_QUERY_THROW );
+-    uno::Reference< beans::XPropertySet > xProps( xControlModel, uno::UNO_QUERY_THROW );
+-    m_xProps.set( xProps, uno::UNO_QUERY_THROW );
+ }
+ 
+-ScVbaControlFactory::ScVbaControlFactory( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< beans::XPropertySet >& xProps, const uno::Reference< drawing::XControlShape > xControlShape ): m_xContext( xContext ), m_xProps( xProps ), m_xControlShape( xControlShape )
++ScVbaControl* ScVbaControlFactory::createControl( const uno::Reference< uno::XInterface >& xParent )  throw (uno::RuntimeException)
+ {
++    uno::Reference< drawing::XControlShape > xControlShape( m_xControl, uno::UNO_QUERY );
++    if ( xControlShape.is() ) // form controls
++        return createControl( xControlShape, xParent );
++    uno::Reference< awt::XControl > xControl( m_xControl, uno::UNO_QUERY );
++    if ( !xControl.is() )
++        throw uno::RuntimeException(); // really we should be more informative
++    return createControl( xControl, xParent );
++    
+ }
+ 
+-ScVbaControl* ScVbaControlFactory::createControl( const sal_Int16 nClassId )  throw (uno::RuntimeException)
++ScVbaControl* ScVbaControlFactory::createControl(const uno::Reference< drawing::XControlShape >& xControlShape,  const uno::Reference< uno::XInterface >& /*xParent*/ )  throw (uno::RuntimeException)
+ {
++    uno::Reference< beans::XPropertySet > xProps( xControlShape->getControl(), uno::UNO_QUERY_THROW );
++    sal_Int32 nClassId = -1;
++    const static rtl::OUString sClassId( RTL_CONSTASCII_USTRINGPARAM("ClassId") );
++    xProps->getPropertyValue( sClassId ) >>= nClassId;
++    uno::Reference< vba::XHelperInterface > xVbaParent; // #FIXME - should be worksheet I guess
+     switch( nClassId )
+     {
+         case form::FormComponentType::COMBOBOX:
+-            return new ScVbaComboBox( m_xContext, m_xProps, m_xControlShape );
++            return new ScVbaComboBox( xVbaParent, m_xContext, xControlShape, new ConcreteXShapeGeometryAttributes( m_xContext, uno::Reference< drawing::XShape >( xControlShape, uno::UNO_QUERY_THROW ) ) );
+         case form::FormComponentType::COMMANDBUTTON:
+-            return new ScVbaButton( m_xContext, m_xControlShape );
++            return new ScVbaButton( xVbaParent, m_xContext, xControlShape, new ConcreteXShapeGeometryAttributes( m_xContext, uno::Reference< drawing::XShape >( xControlShape, uno::UNO_QUERY_THROW ) ) );
+         case form::FormComponentType::FIXEDTEXT:
+-            return new ScVbaLabel( m_xContext, m_xControlShape );
++            return new ScVbaLabel( xVbaParent, m_xContext, xControlShape, new ConcreteXShapeGeometryAttributes( m_xContext, uno::Reference< drawing::XShape >( xControlShape, uno::UNO_QUERY_THROW ) ) );
+         case form::FormComponentType::TEXTFIELD:
+-            return new ScVbaTextBox( m_xContext, m_xControlShape );
++            return new ScVbaTextBox( xVbaParent, m_xContext, xControlShape, new ConcreteXShapeGeometryAttributes( m_xContext, uno::Reference< drawing::XShape >( xControlShape, uno::UNO_QUERY_THROW ) ) );
+         case form::FormComponentType::RADIOBUTTON:
+-            return new ScVbaRadioButton( m_xContext, m_xControlShape );
++            return new ScVbaRadioButton( xVbaParent, m_xContext, xControlShape, new ConcreteXShapeGeometryAttributes( m_xContext, uno::Reference< drawing::XShape >( xControlShape, uno::UNO_QUERY_THROW ) ) );
+         case form::FormComponentType::LISTBOX:
+-            return new ScVbaListBox( m_xContext, m_xControlShape );
++            return new ScVbaListBox( xVbaParent, m_xContext, xControlShape, new ConcreteXShapeGeometryAttributes( m_xContext, uno::Reference< drawing::XShape >( xControlShape, uno::UNO_QUERY_THROW ) ) );
+         default:
+             throw uno::RuntimeException( rtl::OUString::createFromAscii(
+                     "Donot surpport this Control Type." ), uno::Reference< uno::XInterface >() );
+     }
+ }
+ 
+-ScVbaControl* ScVbaControlFactory::createControl()  throw (uno::RuntimeException)
++ScVbaControl* ScVbaControlFactory::createControl( const uno::Reference< awt::XControl >& xControl,  const uno::Reference< uno::XInterface >& xParent  )  throw (uno::RuntimeException)
+ {
+-    sal_Int32 nClassId = -1;
+-    const static rtl::OUString sClassId( RTL_CONSTASCII_USTRINGPARAM("ClassId") );
+-    m_xProps->getPropertyValue( sClassId ) >>= nClassId;
+-    switch( nClassId )
++    uno::Reference< beans::XPropertySet > xProps( xControl->getModel(), uno::UNO_QUERY_THROW );
++    uno::Reference< lang::XServiceInfo > xServiceInfo( xProps, uno::UNO_QUERY_THROW );
++    ScVbaControl* pControl = NULL;
++    uno::Reference< vba::XHelperInterface > xVbaParent; // #FIXME - should be worksheet I guess
++    if ( xServiceInfo->supportsService( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlCheckBoxModel") ) ) )
++	pControl = new ScVbaCheckbox( xVbaParent, m_xContext, xControl, new UserFormGeometryHelper( m_xContext, xControl ) );	
++    else if ( xServiceInfo->supportsService( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlRadioButtonModel") ) ) )
++	pControl = new ScVbaRadioButton( xVbaParent, m_xContext, xControl, new UserFormGeometryHelper( m_xContext, xControl ) );	
++    else if ( xServiceInfo->supportsService( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlEditModel") ) ) )
++        pControl = new ScVbaTextBox( xVbaParent, m_xContext, xControl, new UserFormGeometryHelper( m_xContext, xControl ), true );
++    else if ( xServiceInfo->supportsService( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlButtonModel") ) ) )
++    {
++        sal_Bool bToggle = sal_False;
++        xProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Toggle") ) ) >>= bToggle;
++        if ( bToggle )
++            pControl = new ScVbaToggleButton( xVbaParent, m_xContext, xControl, new UserFormGeometryHelper( m_xContext, xControl ) );
++        else
++            pControl = new ScVbaButton( xVbaParent, m_xContext, xControl, new UserFormGeometryHelper( m_xContext, xControl ) );
++    }
++    else if ( xServiceInfo->supportsService( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlComboBoxModel") ) ) )
++        pControl = new ScVbaComboBox( xVbaParent, m_xContext, xControl, new UserFormGeometryHelper( m_xContext, xControl ), true );
++    else if ( xServiceInfo->supportsService( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlListBoxModel") ) ) )
++	pControl = new ScVbaListBox( xVbaParent, m_xContext, xControl, new UserFormGeometryHelper( m_xContext, xControl ) );
++    else if ( xServiceInfo->supportsService( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlFixedTextModel") ) ) )
++	pControl = new ScVbaLabel( xVbaParent, m_xContext, xControl, new UserFormGeometryHelper( m_xContext, xControl ) );
++    else if ( xServiceInfo->supportsService( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlImageControlModel") ) ) )
++	//pControl = new ScVbaImage( m_xContext, xControl );
++        throw uno::RuntimeException();
++    else if ( xServiceInfo->supportsService( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlProgressBarModel") ) ) )
++	pControl = new ScVbaProgressBar( xVbaParent, m_xContext, xControl, new UserFormGeometryHelper( m_xContext, xControl ) );
++    else if ( xServiceInfo->supportsService( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlGroupBoxModel") ) ) )
++	pControl = new ScVbaFrame( xVbaParent, m_xContext, xControl, new UserFormGeometryHelper( m_xContext, xControl ) );
++    else if ( xServiceInfo->supportsService( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlScrollBarModel") ) ) )
++	pControl = new ScVbaScrollBar( xVbaParent, m_xContext, xControl, new UserFormGeometryHelper( m_xContext, xControl ) );
++    else if ( xServiceInfo->supportsService( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoMultiPageModel") ) ) )
++	pControl = new ScVbaMultiPage( xVbaParent, m_xContext, xControl, new UserFormGeometryHelper( m_xContext, xControl ), xParent );
++    else
++        throw uno::RuntimeException( rtl::OUString::createFromAscii("Unsupported control " ), uno::Reference< uno::XInterface >() );
++    return pControl;
++}
++
++rtl::OUString& 
++ScVbaControl::getServiceImplName()
++{
++	static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("ScVbaContro") );
++	return sImplName;
++}
++
++uno::Sequence< rtl::OUString > 
++ScVbaControl::getServiceNames()
+     {
+-        case form::FormComponentType::COMBOBOX:
+-            return new ScVbaComboBox( m_xContext, m_xControlShape );
+-        case form::FormComponentType::COMMANDBUTTON:
+-            return new ScVbaButton( m_xContext, m_xControlShape );
+-        case form::FormComponentType::FIXEDTEXT:
+-            return new ScVbaLabel( m_xContext, m_xControlShape );
+-        case form::FormComponentType::TEXTFIELD:
+-            return new ScVbaTextBox( m_xContext, m_xControlShape );
+-        case form::FormComponentType::RADIOBUTTON:
+-            return new ScVbaRadioButton( m_xContext, m_xControlShape );
+-        case form::FormComponentType::LISTBOX:
+-            return new ScVbaListBox( m_xContext, m_xControlShape );
+-        default:
+-            throw uno::RuntimeException( rtl::OUString::createFromAscii(
+-                    "Donot surpport this Control Type." ), uno::Reference< uno::XInterface >() );
++	static uno::Sequence< rtl::OUString > aServiceNames;
++	if ( aServiceNames.getLength() == 0 )
++	{
++		aServiceNames.realloc( 1 );
++		aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("org.openoffice.excel.Control" ) );
+     }
++	return aServiceNames;
+ }
++
++
+Index: sc/source/ui/vba/vbacontrol.hxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbacontrol.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.42.1
+diff -u -p -u -p -b -w -B -r1.2 -r1.2.42.1
+--- sc/source/ui/vba/vbacontrol.hxx	7 Dec 2007 10:50:07 -0000	1.2
++++ sc/source/ui/vba/vbacontrol.hxx	22 Apr 2008 19:53:15 -0000	1.2.42.1
+@@ -40,40 +40,33 @@
+ #include <com/sun/star/uno/XComponentContext.hpp>
+ #include <com/sun/star/script/XDefaultProperty.hpp>
+ #include <com/sun/star/drawing/XControlShape.hpp>
++#include <com/sun/star/awt/XControl.hpp>
+ #include <com/sun/star/awt/XWindowPeer.hpp>
+ #include <org/openoffice/msforms/XControl.hpp>
+ 
+ #include "vbahelper.hxx"
++#include "vbahelperinterface.hxx"
+ 
+-typedef ::cppu::WeakImplHelper1< oo::msforms::XControl > ControlImpl_BASE;
++//typedef ::cppu::WeakImplHelper1< oo::msforms::XControl > ControlImpl_BASE;
++typedef InheritedHelperInterfaceImpl1< oo::msforms::XControl > ControlImpl_BASE;
+ 
+ class ScVbaControl : public ControlImpl_BASE
+ {
+-/* this will cause error when the sheet is invisible.
+ private:
+-    css::uno::Reference< css::awt::XWindowPeer > m_xWindowPeer;
+-*/
+-private:
+-    css::uno::Reference< css::awt::XWindowPeer > getWindowPeer( const css::uno::Reference< css::drawing::XControlShape >& xControlShape ) throw (css::uno::RuntimeException);
+     com::sun::star::uno::Reference< com::sun::star::lang::XEventListener > m_xEventListener;
+ protected:
+-    css::uno::Reference< css::uno::XComponentContext > m_xContext;
++    std::auto_ptr< oo::AbstractGeometryAttributes > mpGeometryHelper;
+     css::uno::Reference< css::beans::XPropertySet > m_xProps;
+-    css::uno::Reference< css::drawing::XControlShape > m_xControlShape;
+-protected:
+-    ScVbaControl(){ m_xContext = 0; m_xProps = 0; m_xControlShape = 0; }
+-    void SetControl( const css::uno::Reference< css::uno::XComponentContext > xContext, 
+-                const css::uno::Reference< css::drawing::XControlShape > xControlShape );
+-    void SetControl( const css::uno::Reference< css::uno::XComponentContext > xContext, 
+-                const css::uno::Reference< css::beans::XPropertySet > xProps,
+-                const css::uno::Reference< css::drawing::XControlShape > xControlShape );
++    css::uno::Reference< css::uno::XInterface > m_xControl;
++
++    virtual css::uno::Reference< css::awt::XWindowPeer > getWindowPeer() throw (css::uno::RuntimeException);
+ public:
+-    ScVbaControl( const css::uno::Reference< css::uno::XComponentContext >& xContext, 
+-                    const css::uno::Reference< css::drawing::XControlShape >& xControlShape );
+-    ScVbaControl( const css::uno::Reference< css::uno::XComponentContext >& xContext, 
+-                    const css::uno::Reference< css::beans::XPropertySet >& xProps,
+-                    const css::uno::Reference< css::drawing::XControlShape > xControlShape );
++    ScVbaControl( const css::uno::Reference< oo::vba::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext >& xContext, 
++                    const css::uno::Reference< css::uno::XInterface >& xControl, oo::AbstractGeometryAttributes* pHelper );
+     virtual ~ScVbaControl();
++    // This class will own the helper, so make sure it is allocated from 
++    // the heap
++    void setGeometryHelper( oo::AbstractGeometryAttributes* pHelper );
+     // XControl
+     virtual sal_Bool SAL_CALL getEnabled() throw (css::uno::RuntimeException);
+     virtual void SAL_CALL setEnabled( sal_Bool _enabled ) throw (css::uno::RuntimeException);
+@@ -87,9 +80,14 @@ public:
+     virtual void SAL_CALL setLeft( double _left ) throw (css::uno::RuntimeException);
+     virtual double SAL_CALL getTop() throw (css::uno::RuntimeException);
+     virtual void SAL_CALL setTop( double _top ) throw (css::uno::RuntimeException);
++    virtual void SAL_CALL SetFocus(  ) throw (css::uno::RuntimeException);
++
+ 
+     //remove resouce because org.openoffice.excel.XControl is a wrapper of com.sun.star.drawing.XControlShape
+     virtual void removeResouce() throw( css::uno::RuntimeException );
++    //XHelperInterface
++    virtual rtl::OUString& getServiceImplName();
++    virtual css::uno::Sequence<rtl::OUString> getServiceNames();
+ };
+ 
+ 
+@@ -97,16 +95,13 @@ class ScVbaControlFactory
+ {
+ public:
+     ScVbaControlFactory( const css::uno::Reference< css::uno::XComponentContext >& xContext, 
+-                    const css::uno::Reference< css::drawing::XControlShape >& xControlShape );
+-    ScVbaControlFactory( const css::uno::Reference< css::uno::XComponentContext >& xContext, 
+-                    const css::uno::Reference< css::beans::XPropertySet >& xProps,
+-                    const css::uno::Reference< css::drawing::XControlShape > xControlShape );
+-    ScVbaControl* createControl( const sal_Int16 nClassID )  throw ( css::uno::RuntimeException );
+-    ScVbaControl* createControl()  throw ( css::uno::RuntimeException );
++                    const css::uno::Reference< css::uno::XInterface >& xControl );
++    ScVbaControl* createControl( const css::uno::Reference< css::uno::XInterface >& xParent )  throw ( css::uno::RuntimeException );
+ private:
++    ScVbaControl* createControl( const css::uno::Reference< css::awt::XControl >&, const css::uno::Reference< css::uno::XInterface >&  )  throw ( css::uno::RuntimeException );
++    ScVbaControl* createControl( const css::uno::Reference< css::drawing::XControlShape >&, const css::uno::Reference< css::uno::XInterface >& )  throw ( css::uno::RuntimeException );
+     css::uno::Reference< css::uno::XComponentContext > m_xContext;
+-    css::uno::Reference< css::beans::XPropertySet > m_xProps;
+-    css::uno::Reference< css::drawing::XControlShape > m_xControlShape;
++    css::uno::Reference< css::uno::XInterface > m_xControl;
+ };
+ 
+ #endif//SC_VBA_CONTROL_HXX
+Index: sc/source/ui/vba/vbaframe.cxx
+===================================================================
+RCS file: sc/source/ui/vba/vbaframe.cxx
+diff -N sc/source/ui/vba/vbaframe.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/vbaframe.cxx	22 Apr 2008 19:53:15 -0000	1.1.2.1
+@@ -0,0 +1,93 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#include "vbaframe.hxx"
++#include <vector>
++
++using namespace com::sun::star;
++using namespace org::openoffice;
++
++
++const static rtl::OUString LABEL( RTL_CONSTASCII_USTRINGPARAM("Label") );
++ScVbaFrame::ScVbaFrame( const uno::Reference< vba::XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< uno::XInterface >& xControl, oo::AbstractGeometryAttributes* pGeomHelper ) : FrameImpl_BASE( xParent, xContext, xControl, pGeomHelper )
++{
++}
++
++// Attributes
++rtl::OUString SAL_CALL 
++ScVbaFrame::getCaption() throw (css::uno::RuntimeException)
++{
++    rtl::OUString Label;
++    m_xProps->getPropertyValue( LABEL ) >>= Label;
++    return Label;
++}
++
++void SAL_CALL 
++ScVbaFrame::setCaption( const rtl::OUString& _caption ) throw (::com::sun::star::uno::RuntimeException)
++{
++    m_xProps->setPropertyValue( LABEL, uno::makeAny( _caption ) );
++}
++
++uno::Any SAL_CALL 
++ScVbaFrame::getValue() throw (css::uno::RuntimeException)
++{
++    return uno::makeAny( getCaption() );
++}
++
++void SAL_CALL 
++ScVbaFrame::setValue( const uno::Any& _value ) throw (::com::sun::star::uno::RuntimeException)
++{
++    rtl::OUString sCaption;
++    _value >>= sCaption;
++    setCaption( sCaption ); 
++}
++
++rtl::OUString& 
++ScVbaFrame::getServiceImplName()
++{
++	static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("ScVbaFrame") );
++	return sImplName;
++}
++
++uno::Sequence< rtl::OUString > 
++ScVbaFrame::getServiceNames()
++{
++	static uno::Sequence< rtl::OUString > aServiceNames;
++	if ( aServiceNames.getLength() == 0 )
++	{
++		aServiceNames.realloc( 1 );
++		aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("org.openoffice.msforms.Frame" ) );
++	}
++	return aServiceNames;
++}
+Index: sc/source/ui/vba/vbaframe.hxx
+===================================================================
+RCS file: sc/source/ui/vba/vbaframe.hxx
+diff -N sc/source/ui/vba/vbaframe.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/vbaframe.hxx	22 Apr 2008 19:53:15 -0000	1.1.2.1
+@@ -0,0 +1,58 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#ifndef SC_VBA_FRAME_HXX
++#define SC_VBA_FRAME_HXX
++#include <cppuhelper/implbase1.hxx>
++#include <org/openoffice/msforms/XLabel.hpp>
++
++#include "vbacontrol.hxx"
++#include "vbahelper.hxx"
++
++typedef cppu::ImplInheritanceHelper1< ScVbaControl, oo::msforms::XLabel > FrameImpl_BASE;
++
++class ScVbaFrame : public FrameImpl_BASE
++{
++public:
++    ScVbaFrame(  const css::uno::Reference< oo::vba::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::uno::XInterface >& xControl, oo::AbstractGeometryAttributes* pGeomHelper );
++   // Attributes
++    virtual css::uno::Any SAL_CALL getValue() throw (css::uno::RuntimeException);
++    virtual void SAL_CALL setValue( const css::uno::Any& _value ) throw (css::uno::RuntimeException);
++    virtual rtl::OUString SAL_CALL getCaption() throw (css::uno::RuntimeException);
++    virtual void SAL_CALL setCaption( const rtl::OUString& _caption ) throw (css::uno::RuntimeException);
++    //XHelperInterface
++    virtual rtl::OUString& getServiceImplName();
++    virtual css::uno::Sequence<rtl::OUString> getServiceNames();
++};
++#endif //SC_VBA_LABEL_HXX
+Index: sc/source/ui/vba/vbaglobals.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbaglobals.cxx,v
+retrieving revision 1.3
+retrieving revision 1.3.42.1
+diff -u -p -u -p -b -w -B -r1.3 -r1.3.42.1
+--- sc/source/ui/vba/vbaglobals.cxx	7 Dec 2007 10:53:12 -0000	1.3
++++ sc/source/ui/vba/vbaglobals.cxx	18 Jan 2008 16:51:37 -0000	1.3.42.1
+@@ -158,9 +158,9 @@ ScVbaGlobals::Range( const uno::Any& Cel
+ }
+ 
+ uno::Any SAL_CALL
+-ScVbaGlobals::Names( ) throw ( uno::RuntimeException )
++ScVbaGlobals::Names( const css::uno::Any& aIndex ) throw ( uno::RuntimeException )
+ {
+-	return getApplication()->Names();
++	return getApplication()->Names( aIndex );
+ }
+ 
+ namespace globals
+Index: sc/source/ui/vba/vbaglobals.hxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbaglobals.hxx,v
+retrieving revision 1.3
+retrieving revision 1.3.42.1
+diff -u -p -u -p -b -w -B -r1.3 -r1.3.42.1
+--- sc/source/ui/vba/vbaglobals.hxx	7 Dec 2007 10:53:25 -0000	1.3
++++ sc/source/ui/vba/vbaglobals.hxx	18 Jan 2008 16:51:37 -0000	1.3.42.1
+@@ -75,6 +75,6 @@
+ 	virtual css::uno::Any SAL_CALL Sheets( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException);
+ 	virtual css::uno::Sequence< css::uno::Any > SAL_CALL getGlobals(  ) 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);
+-	virtual css::uno::Any SAL_CALL Names( ) throw ( css::uno::RuntimeException );
++	virtual css::uno::Any SAL_CALL Names( const css::uno::Any& aIndex ) throw ( css::uno::RuntimeException );
+     };
+ #endif // 
+Index: sc/source/ui/vba/vbahelper.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbahelper.cxx,v
+<<<<<<< .mine
+retrieving revision 1.4
+retrieving revision 1.3.42.3
+diff -u -p -u -p -b -w -B -r1.4 -r1.3.42.3
+--- sc/source/ui/vba/vbahelper.cxx	29 Jan 2008 15:47:18 -0000	1.4
++++ sc/source/ui/vba/vbahelper.cxx	22 Apr 2008 19:53:15 -0000	1.3.42.3
+@@ -42,6 +42,7 @@
+ #include <com/sun/star/uno/XComponentContext.hpp>
+ #include <com/sun/star/lang/XMultiComponentFactory.hpp>
+ #include <com/sun/star/beans/XPropertySet.hpp>
++#include <com/sun/star/beans/XIntrospection.hpp>
+ 
+ #include <comphelper/processfactory.hxx>
+ 
+@@ -62,7 +63,8 @@
+ #include "tabvwsh.hxx"
+ #include "transobj.hxx"
+ #include "scmod.hxx"
+-
++#include "vbashape.hxx"
++#include "unonames.hxx"
+ using namespace ::com::sun::star;
+ using namespace ::org::openoffice;
+ 
+@@ -79,6 +81,18 @@ namespace openoffice
+ 
+ const double Millimeter::factor =  35.27778;
+ 
++uno::Reference< beans::XIntrospectionAccess >
++getIntrospectionAccess( const uno::Any& aObject ) throw (uno::RuntimeException)
++{
++	static uno::Reference< beans::XIntrospection > xIntrospection;
++	if( !xIntrospection.is() )
++	{
++		uno::Reference< lang::XMultiServiceFactory > xFactory( comphelper::getProcessServiceFactory(), uno::UNO_QUERY_THROW );
++		xIntrospection.set( xFactory->createInstance( rtl::OUString::createFromAscii("com.sun.star.beans.Introspection") ), uno::UNO_QUERY_THROW );
++	}
++	return xIntrospection->inspect( aObject );
++}
++
+ uno::Reference< script::XTypeConverter >
+ getTypeConverter( const uno::Reference< uno::XComponentContext >& xContext ) throw (uno::RuntimeException)
+ {
+@@ -220,6 +234,22 @@ dispatchRequests (uno::Reference< frame:
+=======
+retrieving revision 1.4
+retrieving revision 1.3.42.2
+diff -u -p -u -p -b -w -B -r1.4 -r1.3.42.2
+--- sc/source/ui/vba/vbahelper.cxx	29 Jan 2008 15:47:18 -0000	1.4
++++ sc/source/ui/vba/vbahelper.cxx	13 Mar 2008 18:08:44 -0000	1.3.42.2
+@@ -220,6 +220,22 @@ dispatchRequests (uno::Reference< frame:
+>>>>>>> .r12306
+ }
+ 
+ 
++void dispatchExecute(css::uno::Reference< css::frame::XModel>& xModel, USHORT nSlot, SfxCallMode nCall)
++{
++	ScTabViewShell* pViewShell = getBestViewShell( xModel );
++	SfxViewFrame* pViewFrame = NULL;
++	if ( pViewShell )
++		pViewFrame = pViewShell->GetViewFrame();
++	if ( pViewFrame )
++	{
++		SfxDispatcher* pDispatcher = pViewFrame->GetDispatcher();
++		if( pDispatcher )
++		{
++			pDispatcher->Execute( nSlot , nCall );
++		}
++	}	
++}
++		
+ void
+ implnPaste()
+ {
+<<<<<<< .mine
+@@ -536,6 +566,11 @@ void PrintOutHelper( const uno::Any& Fro
+=======
+@@ -536,6 +552,11 @@ void PrintOutHelper( const uno::Any& Fro
+>>>>>>> .r12306
+ 	//   of this method
+ }
+ 
++ void PrintPreviewHelper( const css::uno::Any& /*EnableChanges*/, css::uno::Reference< css::frame::XModel >& xModel )
++{
++	dispatchExecute( xModel, SID_VIEWSHELL1 );
++}
++
+ rtl::OUString getAnyAsString( const uno::Any& pvargItem ) throw ( uno::RuntimeException )
+ {
+ 	uno::Type aType = pvargItem.getValueType();
+@@ -749,5 +784,56 @@ double PixelsToPoints( css::uno::Referen
+ 	return (fPixels/fConvertFactor)/POINTTO100THMILLIMETERFACTOR;
+ }
+ 
++ConcreteXShapeGeometryAttributes::ConcreteXShapeGeometryAttributes( const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::drawing::XShape >& xShape )
++{
++	m_xShape = new ScVbaShape( xContext, xShape );
++}
++
++#define VBA_LEFT "PositionX"
++#define VBA_TOP "PositionY"
++UserFormGeometryHelper::UserFormGeometryHelper( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< awt::XControl >& xControl )
++{
++    mxModel.set( xControl->getModel(), uno::UNO_QUERY_THROW );
++}
++    double UserFormGeometryHelper::getLeft()
++    {
++	sal_Int32 nLeft = 0;
++	mxModel->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( VBA_LEFT ) ) ) >>= nLeft;	
++	return nLeft;
++    }
++    void UserFormGeometryHelper::setLeft( double nLeft )
++    {
++        mxModel->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( VBA_LEFT ) ), uno::makeAny( static_cast< sal_Int32 >( nLeft ) ) );
++    }
++    double UserFormGeometryHelper::getTop()
++    {
++	sal_Int32 nTop = 0;
++	mxModel->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( 	VBA_TOP ) ) ) >>= nTop;	
++	return nTop;
++    }
++    void UserFormGeometryHelper::setTop( double nTop )
++    {
++	mxModel->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( 	VBA_TOP ) ), uno::makeAny( static_cast< sal_Int32 >( nTop ) ) );
++    }
++    double UserFormGeometryHelper::getHeight()
++    {
++	sal_Int32 nHeight = 0;
++	mxModel->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( 	SC_UNONAME_CELLHGT ) ) ) >>= nHeight;	
++	return static_cast< double >( nHeight );
++    }
++    void UserFormGeometryHelper::setHeight( double nHeight )
++    {
++	mxModel->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( 	SC_UNONAME_CELLHGT ) ), uno::makeAny( static_cast< sal_Int32 >( nHeight ) ) );
++    }
++    double UserFormGeometryHelper::getWidth()
++    {
++	sal_Int32 nWidth = 0;
++	mxModel->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( 	SC_UNONAME_CELLWID ) ) ) >>= nWidth;	
++	return static_cast< sal_Int32 >( nWidth );
++    }
++    void UserFormGeometryHelper::setWidth( double nWidth)
++    {
++	mxModel->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( 	SC_UNONAME_CELLWID ) ), uno::makeAny(  static_cast< sal_Int32 >( nWidth ) ) );
++    }
+ } // openoffice
+ } //org
+Index: sc/source/ui/vba/vbahelper.hxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbahelper.hxx,v
+retrieving revision 1.4
+retrieving revision 1.4.42.2
+diff -u -p -u -p -b -w -B -r1.4 -r1.4.42.2
+--- sc/source/ui/vba/vbahelper.hxx	7 Dec 2007 10:53:50 -0000	1.4
++++ sc/source/ui/vba/vbahelper.hxx	22 Apr 2008 19:53:15 -0000	1.4.42.2
+@@ -36,14 +36,18 @@
+ #define SC_VBA_HELPER_HXX
+ 
+ #include <com/sun/star/drawing/XShape.hpp>
++#include <com/sun/star/beans/XIntrospectionAccess.hpp>
+ #include <com/sun/star/script/BasicErrorException.hpp>
+ #include <com/sun/star/script/XTypeConverter.hpp>
+ #include <com/sun/star/lang/IllegalArgumentException.hpp>
++#include <com/sun/star/awt/XControl.hpp>
+ #include <com/sun/star/awt/XDevice.hpp>
+ #include <basic/sberrors.hxx>
+ #include <cppuhelper/implbase1.hxx>
+ #include <com/sun/star/frame/XModel.hpp>
+ #include <docsh.hxx>
++#include <sfx2/dispatch.hxx>
++#include <org/openoffice/msforms/XShape.hpp>
+ 
+ namespace css = ::com::sun::star;
+ 
+@@ -61,10 +65,12 @@ namespace org 
+ 				throw css::lang::IllegalArgumentException();
+ 			return aSomething;
+ 		}
++		css::uno::Reference< css::beans::XIntrospectionAccess > getIntrospectionAccess( const css::uno::Any& aObject ) throw (css::uno::RuntimeException);
+ 		css::uno::Reference< css::script::XTypeConverter > getTypeConverter( const css::uno::Reference< css::uno::XComponentContext >& xContext ) throw (css::uno::RuntimeException);
+ 
+ 		void dispatchRequests (css::uno::Reference< css::frame::XModel>& xModel,rtl::OUString & aUrl) ;
+ 		void dispatchRequests (css::uno::Reference< css::frame::XModel>& xModel,rtl::OUString & aUrl, css::uno::Sequence< css::beans::PropertyValue >& sProps ) ;
++		void dispatchExecute(css::uno::Reference< css::frame::XModel>& xModel, USHORT nSlot, SfxCallMode nCall = SFX_CALLMODE_SYNCHRON );
+ 		void implnCopy();
+ 		void implnPaste();
+ 		void implnCut();
+@@ -85,6 +91,7 @@ namespace org 
+ 		// contains an empty object reference
+ 		const css::uno::Any& aNULL();
+ 		void PrintOutHelper( const css::uno::Any& From, const css::uno::Any& To, const css::uno::Any& Copies, const css::uno::Any& Preview, const css::uno::Any& ActivePrinter, const css::uno::Any& PrintToFile, const css::uno::Any& Collate, const css::uno::Any& PrToFileName, css::uno::Reference< css::frame::XModel >& xModel, sal_Bool bSelection  );
++		void PrintPreviewHelper( const css::uno::Any& EnableChanges, css::uno::Reference< css::frame::XModel >& xModel );
+ 
+ 		rtl::OUString getAnyAsString( const css::uno::Any& pvargItem ) throw ( css::uno::RuntimeException );
+ 		rtl::OUString VBAToRegexp(const rtl::OUString &rIn, bool bForLike = false); // needs to be in an uno service ( already this code is duplicated in basic )
+@@ -142,6 +149,80 @@ public:
+ 		return points;
+ 	}
+ };
++
++class AbstractGeometryAttributes // probably should replace the ShapeHelper below
++{
++public:
++    virtual ~AbstractGeometryAttributes() {}
++    virtual double getLeft() = 0;
++    virtual void setLeft( double ) = 0;
++    virtual double getTop() = 0;
++    virtual void setTop( double ) = 0;
++    virtual double getHeight() = 0;
++    virtual void setHeight( double ) = 0;
++    virtual double getWidth() = 0;
++    virtual void setWidth( double ) = 0;
++};
++
++class ConcreteXShapeGeometryAttributes : public AbstractGeometryAttributes
++{
++public:
++    css::uno::Reference< org::openoffice::msforms::XShape > m_xShape; 
++    ConcreteXShapeGeometryAttributes( const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::drawing::XShape >& xShape );
++    virtual double getLeft()
++    {
++        return m_xShape->getLeft();
++    }
++    virtual void setLeft( double nLeft )
++    {
++        m_xShape->setLeft( nLeft );
++    }
++    virtual double getTop()
++    {
++        return m_xShape->getTop();
++    }
++    virtual void setTop( double nTop )
++    {
++        m_xShape->setTop( nTop );
++    }
++
++    virtual double getHeight()
++    {
++        return m_xShape->getHeight();
++    }
++    virtual void setHeight( double nHeight )
++    {
++        m_xShape->setHeight( nHeight );
++    }
++    virtual double getWidth()
++    {
++        return m_xShape->getWidth();
++    }
++    virtual void setWidth( double nWidth)
++    {
++        m_xShape->setHeight( nWidth );
++    }
++
++   
++};
++#define VBA_LEFT "PositionX"
++#define VBA_TOP "PositionY"
++class UserFormGeometryHelper : public AbstractGeometryAttributes
++{
++
++    css::uno::Reference< css::beans::XPropertySet > mxModel;
++public:
++    UserFormGeometryHelper( const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::awt::XControl >& xControl );
++    virtual double getLeft();
++    virtual void setLeft( double nLeft );
++    virtual double getTop();
++    virtual void setTop( double nTop );
++    virtual double getHeight();
++    virtual void setHeight( double nHeight );
++    virtual double getWidth();
++    virtual void setWidth( double nWidth);
++};
++
+ class ShapeHelper
+ {
+ protected:
+Index: sc/source/ui/vba/vbalabel.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbalabel.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.42.1
+diff -u -p -u -p -b -w -B -r1.2 -r1.2.42.1
+--- sc/source/ui/vba/vbalabel.cxx	7 Dec 2007 10:54:35 -0000	1.2
++++ sc/source/ui/vba/vbalabel.cxx	22 Apr 2008 19:53:15 -0000	1.2.42.1
+@@ -40,7 +40,7 @@ using namespace org::openoffice;
+ 
+ 
+ const static rtl::OUString LABEL( RTL_CONSTASCII_USTRINGPARAM("Label") );
+-ScVbaLabel::ScVbaLabel( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< css::drawing::XControlShape >& xControlShape ) : LabelImpl_BASE( xContext, xControlShape )
++ScVbaLabel::ScVbaLabel(  const css::uno::Reference< vba::XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< uno::XInterface >& xControl, oo::AbstractGeometryAttributes* pGeomHelper ) : LabelImpl_BASE( xParent, xContext, xControl, pGeomHelper )
+ {
+ }
+ 
+@@ -58,3 +58,36 @@ ScVbaLabel::setCaption( const rtl::OUStr
+ {
+     m_xProps->setPropertyValue( LABEL, uno::makeAny( _caption ) );
+ }
++uno::Any SAL_CALL 
++ScVbaLabel::getValue() throw (css::uno::RuntimeException)
++{
++    return uno::makeAny( getCaption() );
++}
++
++void SAL_CALL 
++ScVbaLabel::setValue( const uno::Any& _value ) throw (::com::sun::star::uno::RuntimeException)
++{
++    rtl::OUString sCaption;
++    _value >>= sCaption;
++    setCaption( sCaption ); 
++}
++
++
++rtl::OUString& 
++ScVbaLabel::getServiceImplName()
++{
++	static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("ScVbaLabel") );
++	return sImplName;
++}
++
++uno::Sequence< rtl::OUString > 
++ScVbaLabel::getServiceNames()
++{
++	static uno::Sequence< rtl::OUString > aServiceNames;
++	if ( aServiceNames.getLength() == 0 )
++	{
++		aServiceNames.realloc( 1 );
++		aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("org.openoffice.msforms.Label" ) );
++	}
++	return aServiceNames;
++}
+Index: sc/source/ui/vba/vbalabel.hxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbalabel.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.42.1
+diff -u -p -u -p -b -w -B -r1.2 -r1.2.42.1
+--- sc/source/ui/vba/vbalabel.hxx	7 Dec 2007 10:54:46 -0000	1.2
++++ sc/source/ui/vba/vbalabel.hxx	22 Apr 2008 19:53:15 -0000	1.2.42.1
+@@ -39,16 +39,23 @@
+ 
+ #include "vbacontrol.hxx"
+ #include "vbahelper.hxx"
++#include <cppuhelper/implbase2.hxx>
+ 
+-typedef cppu::ImplInheritanceHelper1< ScVbaControl, oo::msforms::XLabel > LabelImpl_BASE;
++typedef cppu::ImplInheritanceHelper2< ScVbaControl, oo::msforms::XLabel, css::script::XDefaultProperty  > LabelImpl_BASE;
+ 
+ class ScVbaLabel : public LabelImpl_BASE
+ {
+ public:
+-    ScVbaLabel( const css::uno::Reference< css::uno::XComponentContext >& xContext,
+-                    const css::uno::Reference< css::drawing::XControlShape >& xControlShape );
++    ScVbaLabel( const css::uno::Reference< oo::vba::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::uno::XInterface >& xControl, oo::AbstractGeometryAttributes* pGeomHelper  );
+    // Attributes
++    virtual css::uno::Any SAL_CALL getValue() throw (css::uno::RuntimeException);
++    virtual void SAL_CALL setValue( const css::uno::Any& _value ) throw (css::uno::RuntimeException);
+     virtual rtl::OUString SAL_CALL getCaption() throw (css::uno::RuntimeException);
+     virtual void SAL_CALL setCaption( const rtl::OUString& _caption ) throw (css::uno::RuntimeException);
++    //XHelperInterface
++    virtual rtl::OUString& getServiceImplName();
++    virtual css::uno::Sequence<rtl::OUString> getServiceNames();
++    // XDefaultProperty
++    rtl::OUString SAL_CALL getDefaultPropertyName(  ) throw (css::uno::RuntimeException) { return ::rtl::OUString::createFromAscii("Value"); }
+ };
+ #endif //SC_VBA_LABEL_HXX
+Index: sc/source/ui/vba/vbalistbox.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbalistbox.cxx,v
+retrieving revision 1.3
+retrieving revision 1.3.42.1
+diff -u -p -u -p -b -w -B -r1.3 -r1.3.42.1
+--- sc/source/ui/vba/vbalistbox.cxx	10 Dec 2007 09:31:13 -0000	1.3
++++ sc/source/ui/vba/vbalistbox.cxx	22 Apr 2008 19:53:15 -0000	1.3.42.1
+@@ -42,31 +42,49 @@
+ using namespace com::sun::star;
+ using namespace org::openoffice;
+ 
+-const static rtl::OUString CONTROLSOURCEPROP( RTL_CONSTASCII_USTRINGPARAM("DataFieldProperty") );
++const static rtl::OUString TEXT( RTL_CONSTASCII_USTRINGPARAM("Text") );
++const static rtl::OUString SELECTEDITEMS( RTL_CONSTASCII_USTRINGPARAM("SelectedItems") );
+ const static rtl::OUString ITEMS( RTL_CONSTASCII_USTRINGPARAM("StringItemList") );
+ 
+ 
+-ScVbaListBox::ScVbaListBox( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< css::drawing::XControlShape >& xControlShape ) : ListBoxImpl_BASE( xContext, xControlShape )
++ScVbaListBox::ScVbaListBox( const uno::Reference< vba::XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< css::uno::XInterface >& xControl, AbstractGeometryAttributes* pGeomHelper ) : ListBoxImpl_BASE( xParent, xContext, xControl, pGeomHelper )
+ {
+-	// grab the default value property name
+-	m_xProps->getPropertyValue( CONTROLSOURCEPROP ) >>= sSourceName;
+ }
+ 
+-ScVbaListBox::ScVbaListBox( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< beans::XPropertySet >& xPropSet, const css::uno::Reference< css::drawing::XControlShape > xControlShape ) : ListBoxImpl_BASE( xContext, xPropSet, xControlShape )
++// Attributes
++void SAL_CALL 
++ScVbaListBox::setListIndex( const uno::Any& _value ) throw (uno::RuntimeException)
+ {
+-	m_xProps->getPropertyValue( CONTROLSOURCEPROP ) >>= sSourceName;
++    sal_Int32 nIndex = 0;
++    _value >>= nIndex;
++    Selected( nIndex );
+ }
+ 
++uno::Any SAL_CALL 
++ScVbaListBox::getListIndex() throw (uno::RuntimeException)
++{
++    uno::Sequence< sal_Int16 > sSelection;
++    m_xProps->getPropertyValue( SELECTEDITEMS ) >>= sSelection;
++    if ( sSelection.getLength() == 0 )
++        return uno::Any( sal_Int32( -1 ) );
++    return uno::Any( sSelection[ 0 ] );
++}
+ 
+-// Attributes
+ uno::Any SAL_CALL 
+ ScVbaListBox::getValue() throw (uno::RuntimeException)
+ {
++    uno::Sequence< sal_Int16 > sSelection;
++    uno::Sequence< rtl::OUString > sItems;
++    m_xProps->getPropertyValue( SELECTEDITEMS ) >>= sSelection;
++    m_xProps->getPropertyValue( ITEMS ) >>= sItems;
+     if( getMultiSelect() )
+         throw uno::RuntimeException( rtl::OUString::createFromAscii(
+                     "Attribute use invalid." ), uno::Reference< uno::XInterface >() );
+     uno::Reference< form::validation::XValidatableFormComponent > xValidatableFormComponent( m_xProps, uno::UNO_QUERY_THROW );
+-    return xValidatableFormComponent->getCurrentValue();
++    uno::Any aRet;
++    if ( sSelection.getLength() )
++        aRet = uno::makeAny( sItems[ sSelection[ 0 ] ] ); 
++    return aRet;
+ }
+ 
+ void SAL_CALL 
+@@ -96,18 +114,17 @@ ScVbaListBox::setValue( const uno::Any& 
+         throw uno::RuntimeException( rtl::OUString::createFromAscii(
+                     "Attribute use invalid." ), uno::Reference< uno::XInterface >() );
+ 
+-    nList.realloc( 1 );
+-    nList[0] = nValue;
+-            
+-	m_xProps->setPropertyValue( sSourceName, uno::makeAny( nList ) );
++    uno::Sequence< sal_Int16 > nSelectedIndices(1);
++    nSelectedIndices[ 0 ] = nValue;
++    m_xProps->setPropertyValue( SELECTEDITEMS, uno::makeAny( nSelectedIndices ) ); 
++    m_xProps->setPropertyValue( TEXT, uno::makeAny( sValue ) ); 
+ }
+ 
+ ::rtl::OUString SAL_CALL 
+ ScVbaListBox::getText() throw (uno::RuntimeException)
+ {
+ 	rtl::OUString result;
+-    uno::Reference< form::validation::XValidatableFormComponent > xValidatableFormComponent( m_xProps, uno::UNO_QUERY_THROW );
+-    xValidatableFormComponent->getCurrentValue() >>= result;
++	getValue() >>= result;
+ 	return result;
+ }
+ 
+@@ -130,29 +147,7 @@ ScVbaListBox::setMultiSelect( sal_Bool _
+ {
+     m_xProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "MultiSelection" ) ), uno::makeAny( _multiselect ) );
+ }
+-/*
+-css::uno::Sequence< sal_Bool > SAL_CALL 
+-ScVbaListBox::getSelected() throw (css::uno::RuntimeException)
+-{
+-    uno::Sequence< rtl::OUString > sList;
+-    uno::Sequence< sal_Int16 > nList;
+-    m_xProps->getPropertyValue( ITEMS ) >>= sList;
+-    uno::Sequence< sal_Bool > bSelected( sList.getLength() );
+-    for( sal_Int16 i = 0; i < bSelected.getLength(); i++ )
+-        bSelected[i] = sal_False;
+-    m_xProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "SelectedItems" ) ) ) >>= nList;
+-    for( sal_Int16 i = 0; i < nList.getLength(); i++ )
+-    {
+-        bSelected[nList[i]] = sal_True;
+-    }
+-    return bSelected;
+-}
+ 
+-void SAL_CALL 
+-ScVbaListBox::setSelected( const css::uno::Sequence< sal_Bool >& _selected ) throw (css::uno::RuntimeException)
+-{
+-}
+-*/
+ css::uno::Any SAL_CALL 
+ ScVbaListBox::Selected( sal_Int32 index ) throw (css::uno::RuntimeException)
+ {
+@@ -230,6 +225,10 @@ ScVbaListBox::Clear(  ) throw (uno::Runt
+ 	//setValue( uno::makeAny( sal_Int16() ) );
+ 	m_xProps->setPropertyValue( ITEMS, uno::makeAny( uno::Sequence< rtl::OUString >() ) );
+ }
++
++// this is called when something like the following vba code is used
++// to set the selected state of particular entries in the Listbox
++// ListBox1.Selected( 3 ) = false
+ //PropListener
+ void 
+ ScVbaListBox::setValueEvent( const uno::Any& value )
+@@ -239,7 +238,7 @@ ScVbaListBox::setValueEvent( const uno::
+         throw uno::RuntimeException( rtl::OUString::createFromAscii(
+                     "Invalid type\n. need boolean." ), uno::Reference< uno::XInterface >() );
+     uno::Sequence< sal_Int16 > nList;
+-    m_xProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "SelectedItems" ) ) ) >>= nList;
++    m_xProps->getPropertyValue( SELECTEDITEMS ) >>= nList;
+     sal_Int16 nLength = static_cast<sal_Int16>( nList.getLength() );
+     sal_Int16 nIndex = m_nIndex;
+     for( sal_Int16 i = 0; i < nLength; i++ )
+@@ -255,7 +254,8 @@ ScVbaListBox::setValueEvent( const uno::
+                     nList[i] = nList[i + 1];
+                 }
+                 nList.realloc( nLength - 1 );
+-                m_xProps->setPropertyValue( sSourceName, uno::makeAny( nList ) );
++                //m_xProps->setPropertyValue( sSourceName, uno::makeAny( nList ) );
++		m_xProps->setPropertyValue( SELECTEDITEMS, uno::makeAny( nList ) );
+                 return;
+             }
+         }
+@@ -276,6 +276,10 @@ ScVbaListBox::setValueEvent( const uno::
+     }
+ }
+ 
++// this is called when something like the following vba code is used
++// to determine the selected state of particular entries in the Listbox
++// msgbox ListBox1.Selected( 3 )
++
+ css::uno::Any 
+ ScVbaListBox::getValueEvent()
+ {
+@@ -292,3 +296,22 @@ ScVbaListBox::getValueEvent()
+ 
+     return uno::makeAny( sal_False );
+ }
++
++rtl::OUString& 
++ScVbaListBox::getServiceImplName()
++{
++	static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("ScVbaListBox") );
++	return sImplName;
++}
++
++uno::Sequence< rtl::OUString > 
++ScVbaListBox::getServiceNames()
++{
++	static uno::Sequence< rtl::OUString > aServiceNames;
++	if ( aServiceNames.getLength() == 0 )
++	{
++		aServiceNames.realloc( 1 );
++		aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("org.openoffice.msforms.ScVbaListBox" ) );
++	}
++	return aServiceNames;
++}
+Index: sc/source/ui/vba/vbalistbox.hxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbalistbox.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.42.1
+diff -u -p -u -p -b -w -B -r1.2 -r1.2.42.1
+--- sc/source/ui/vba/vbalistbox.hxx	7 Dec 2007 10:55:31 -0000	1.2
++++ sc/source/ui/vba/vbalistbox.hxx	22 Apr 2008 19:53:15 -0000	1.2.42.1
+@@ -54,14 +54,11 @@ class ScVbaListBox : public ListBoxImpl_
+     sal_Int16 m_nIndex;
+ 	
+ public:
+-	ScVbaListBox( const css::uno::Reference< css::uno::XComponentContext >& xContext, 
+-                    const css::uno::Reference< css::drawing::XControlShape >& xControlShape );
+-    ScVbaListBox( const css::uno::Reference< css::uno::XComponentContext >& xContext,
+-                    const css::uno::Reference< css::beans::XPropertySet >& xProps,
+-                    const css::uno::Reference< css::drawing::XControlShape> xControlShape );
+-
++	ScVbaListBox( const css::uno::Reference< oo::vba::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::uno::XInterface >& xControl, oo::AbstractGeometryAttributes* pGeomHelper );
+ 
+ 	// Attributes
++	virtual css::uno::Any SAL_CALL getListIndex() throw (css::uno::RuntimeException);
++	virtual void SAL_CALL setListIndex( const css::uno::Any& _value ) throw (css::uno::RuntimeException);
+ 	virtual css::uno::Any SAL_CALL getValue() throw (css::uno::RuntimeException);
+ 	virtual void SAL_CALL setValue( const css::uno::Any& _value ) throw (css::uno::RuntimeException);
+ 	virtual rtl::OUString SAL_CALL getText() throw (css::uno::RuntimeException);
+@@ -78,6 +75,10 @@ public:
+ 	// XDefaultProperty
+     rtl::OUString SAL_CALL getDefaultPropertyName(  ) throw (css::uno::RuntimeException) { return ::rtl::OUString::createFromAscii("Value"); }
+     
++    //XHelperInterface
++    virtual rtl::OUString& getServiceImplName();
++    virtual css::uno::Sequence<rtl::OUString> getServiceNames();    
++
+     //PropListener
+     virtual void setValueEvent( const css::uno::Any& value );
+     virtual css::uno::Any getValueEvent();
+Index: sc/source/ui/vba/vbamultipage.cxx
+===================================================================
+RCS file: sc/source/ui/vba/vbamultipage.cxx
+diff -N sc/source/ui/vba/vbamultipage.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/vbamultipage.cxx	22 Apr 2008 19:53:15 -0000	1.1.2.1
+@@ -0,0 +1,132 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#include "vbamultipage.hxx"
++#include <org/openoffice/vba/XCollection.hpp>
++#include "vbapages.hxx"
++#include <vector>
++
++using namespace com::sun::star;
++using namespace org::openoffice;
++
++// uno servicename com.sun.star.awt.UnoControlProgressBarMode
++const rtl::OUString SVALUE( RTL_CONSTASCII_USTRINGPARAM("ProgressValue") );
++const rtl::OUString SVALUEMAX( RTL_CONSTASCII_USTRINGPARAM("ProgressValueMax") );
++const rtl::OUString SSTEP( RTL_CONSTASCII_USTRINGPARAM("Step") );
++
++typedef cppu::WeakImplHelper1< container::XIndexAccess > PagesImpl_Base;
++class PagesImpl : public PagesImpl_Base
++{
++	sal_Int32 mnPages;
++public:
++	PagesImpl( sal_Int32 nPages ) : mnPages( nPages ) {}
++	virtual ::sal_Int32 SAL_CALL getCount() throw (uno::RuntimeException) { return mnPages; }
++	virtual uno::Any SAL_CALL getByIndex( ::sal_Int32 Index ) throw (lang::IndexOutOfBoundsException, lang::WrappedTargetException, ::uno::RuntimeException)
++	{
++		if ( Index < 0 || Index > mnPages )
++			throw lang::IndexOutOfBoundsException();
++		return uno::makeAny( uno::Reference< uno::XInterface >() );
++	}
++	// XElementAccess
++	virtual uno::Type SAL_CALL getElementType() throw (uno::RuntimeException)
++	{
++		// no Pages object yet #FIXME
++		//return msforms::XPage::static_type(0);
++		return uno::XInterface::static_type(0);
++	}
++	virtual ::sal_Bool SAL_CALL hasElements( ) throw (uno::RuntimeException)
++	{
++		return ( mnPages > 0 );
++	}
++};
++uno::Reference< container::XIndexAccess > 
++ScVbaMultiPage::getPages( sal_Int32 nPages )
++{
++	return new PagesImpl( nPages );
++}
++
++ScVbaMultiPage::ScVbaMultiPage( const uno::Reference< oo::vba::XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< uno::XInterface >& xControl, AbstractGeometryAttributes* pGeomHelper, const uno::Reference< uno::XInterface >& xDialog ) : MultiPageImpl_BASE( xParent, xContext, xControl, pGeomHelper )
++{
++    mxDialogProps.set( xDialog, uno::UNO_QUERY_THROW );
++    // set dialog step to value of multipage pseudo model
++    setValue(getValue());
++}
++
++// Attributes
++sal_Int32 SAL_CALL 
++ScVbaMultiPage::getValue() throw (css::uno::RuntimeException)
++{
++    sal_Int32 nValue = 0;
++    m_xProps->getPropertyValue( SVALUE ) >>= nValue;
++    return nValue;
++}
++
++void SAL_CALL 
++ScVbaMultiPage::setValue( const sal_Int32 _value ) throw (::com::sun::star::uno::RuntimeException)
++{
++    // track change in dialog ( dialog value is 1 based, 0 is a special value )
++    m_xProps->setPropertyValue( SVALUE, uno::makeAny( _value ) );
++    mxDialogProps->setPropertyValue( SSTEP, uno::makeAny( _value + 1) );
++}
++
++
++rtl::OUString& 
++ScVbaMultiPage::getServiceImplName()
++{
++	static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("ScVbaMultiPage") );
++	return sImplName;
++}
++
++uno::Any SAL_CALL 
++ScVbaMultiPage::Pages( const uno::Any& index ) throw (uno::RuntimeException)
++{
++	sal_Int32 nValue = 0;
++	m_xProps->getPropertyValue( SVALUEMAX ) >>= nValue;
++	uno::Reference< vba::XCollection > xColl( new ScVbaPages( this, mxContext, getPages( nValue ) ) );
++	if ( !index.hasValue() )
++		return uno::makeAny( xColl );
++	return xColl->Item( uno::makeAny( index ), uno::Any() );
++}
++
++uno::Sequence< rtl::OUString > 
++ScVbaMultiPage::getServiceNames()
++{
++	static uno::Sequence< rtl::OUString > aServiceNames;
++	if ( aServiceNames.getLength() == 0 )
++	{
++		aServiceNames.realloc( 1 );
++		aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("org.openoffice.msforms.MultiPage" ) );
++	}
++	return aServiceNames;
++}
+Index: sc/source/ui/vba/vbamultipage.hxx
+===================================================================
+RCS file: sc/source/ui/vba/vbamultipage.hxx
+diff -N sc/source/ui/vba/vbamultipage.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/vbamultipage.hxx	22 Apr 2008 19:53:16 -0000	1.1.2.1
+@@ -0,0 +1,65 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#ifndef SC_VBA_MULTIPAGE_HXX
++#define SC_VBA_MULTIPAGE_HXX
++#include <cppuhelper/implbase1.hxx>
++#include <org/openoffice/msforms/XMultiPage.hpp>
++#include <com/sun/star/container/XIndexAccess.hpp>
++
++#include "vbacontrol.hxx"
++#include "vbahelper.hxx"
++//#include <cppuhelper/implbase2.hxx>
++#include <cppuhelper/implbase1.hxx>
++
++typedef cppu::ImplInheritanceHelper1< ScVbaControl, oo::msforms::XMultiPage > MultiPageImpl_BASE;
++
++class ScVbaMultiPage : public MultiPageImpl_BASE
++{
++    css::uno::Reference< css::container::XIndexAccess > getPages( sal_Int32 nPages );
++    css::uno::Reference< css::beans::XPropertySet > mxDialogProps;
++public:
++    ScVbaMultiPage( const css::uno::Reference< oo::vba::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::uno::XInterface >& xControl, oo::AbstractGeometryAttributes* pGeomHelper, const css::uno::Reference< css::uno::XInterface >& xDialog );
++   // Attributes
++    virtual sal_Int32 SAL_CALL getValue() throw (css::uno::RuntimeException);
++    virtual void SAL_CALL setValue( const sal_Int32 _value ) throw (css::uno::RuntimeException);
++    virtual css::uno::Any SAL_CALL Pages( const css::uno::Any& index ) throw (css::uno::RuntimeException);
++
++    //XHelperInterface
++    virtual rtl::OUString& getServiceImplName();
++    virtual css::uno::Sequence<rtl::OUString> getServiceNames();
++    // XDefaultProperty
++    rtl::OUString SAL_CALL getDefaultPropertyName(  ) throw (css::uno::RuntimeException) { return ::rtl::OUString::createFromAscii("Value"); }
++};
++#endif //SC_VBA_LABEL_HXX
+Index: sc/source/ui/vba/vbaname.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbaname.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.42.1
+diff -u -p -u -p -b -w -B -r1.2 -r1.2.42.1
+--- sc/source/ui/vba/vbaname.cxx	7 Dec 2007 10:55:43 -0000	1.2
++++ sc/source/ui/vba/vbaname.cxx	18 Jan 2008 16:51:38 -0000	1.2.42.1
+@@ -36,6 +36,7 @@
+ 
+ #include <com/sun/star/table/XCellRange.hpp>
+ #include <com/sun/star/sheet/XCellRangeAddressable.hpp>
++#include <com/sun/star/sheet/XCellRangeReferrer.hpp>
+ 
+ #include "vbaname.hxx"
+ #include "vbarange.hxx"
+@@ -115,17 +116,37 @@ ScVbaName::getValue() throw (css::uno::R
+ {
+ 	::rtl::OUString sValue = mxNamedRange->getContent();
+ 	::rtl::OUString sSheetName = getWorkSheet()->getName();
+-	if ( sValue.toChar() == '$' )
++    ::rtl::OUString sSegmentation = ::rtl::OUString::createFromAscii( ";" );
++    ::rtl::OUString sNewSegmentation = ::rtl::OUString::createFromAscii( "," );
++    ::rtl::OUString sResult;
++    sal_Int32 nFrom = 0;
++    sal_Int32 nTo = 0;
++    nTo = sValue.indexOf( sSegmentation, nFrom );
++    while ( nTo != -1 )
+ 	{
+-		::rtl::OUString sTmp = sValue.copy(1);
+-		sValue = sTmp;
++        ::rtl::OUString sTmpValue = sValue.copy( nFrom, nTo - nFrom );
++        if ( sTmpValue.toChar() == '$' )
++        {
++            ::rtl::OUString sTmp = sTmpValue.copy( 1 );
++            sTmp = sTmp.replaceAt(0, (sSheetName + ::rtl::OUString::createFromAscii(".")).getLength(), sSheetName + ::rtl::OUString::createFromAscii("!"));
++            sResult += sTmp; 
++            sResult += sNewSegmentation;
++        }
++        nFrom = nTo + 1;
++        nTo = sValue.indexOf( sSegmentation, nFrom );
++    }
++    ::rtl::OUString sTmpValue = sValue.copy( nFrom );
++	if ( sTmpValue.toChar() == '$' )
++	{
++		::rtl::OUString sTmp = sTmpValue.copy(1);
++        sTmp = sTmp.replaceAt(0, (sSheetName + ::rtl::OUString::createFromAscii(".")).getLength(), sSheetName + ::rtl::OUString::createFromAscii("!"));
++		sResult += sTmp;
+ 	}
+-	sValue = sValue.replaceAt(0, (sSheetName + ::rtl::OUString::createFromAscii(".")).getLength(), sSheetName + ::rtl::OUString::createFromAscii("!"));
+-	if (sValue.indexOf('=') != 0)
++	if (sResult.indexOf('=') != 0)
+ 	{
+-		sValue = ::rtl::OUString::createFromAscii("=") + sValue;
++		sResult = ::rtl::OUString::createFromAscii("=") + sResult;
+ 	}
+-	return sValue;
++	return sResult;
+ }
+ 
+ void 
+@@ -133,17 +154,38 @@ ScVbaName::setValue( const ::rtl::OUStri
+ {
+ 	::rtl::OUString sSheetName = getWorkSheet()->getName();
+ 	::rtl::OUString sValue = rValue;
++    ::rtl::OUString sSegmentation = ::rtl::OUString::createFromAscii( "," );
++    ::rtl::OUString sNewSegmentation = ::rtl::OUString::createFromAscii( ";" );
++    ::rtl::OUString sResult;
++    sal_Int32 nFrom = 0;
++    sal_Int32 nTo = 0;
+ 	if (sValue.indexOf('=') == 0)
+ 	{
+ 		::rtl::OUString sTmp = sValue.copy(1);
+ 		sValue = sTmp;
+ 	}
+-	if (sValue.copy(0, sSheetName.getLength()).equals(sSheetName))
++    nTo = sValue.indexOf( sSegmentation, nFrom );
++    while ( nTo != -1 )
++    {
++        ::rtl::OUString sTmpValue = sValue.copy( nFrom, nTo - nFrom );
++        sTmpValue = sTmpValue.replaceAt(0, (sSheetName + ::rtl::OUString::createFromAscii("!")).getLength(), sSheetName + ::rtl::OUString::createFromAscii("."));
++        if (sTmpValue.copy(0, sSheetName.getLength()).equals(sSheetName))
++        {
++            sTmpValue = ::rtl::OUString::createFromAscii("$") + sTmpValue;
++        }
++        sTmpValue += sNewSegmentation;
++        sResult += sTmpValue;
++        nFrom = nTo + 1;
++        nTo = sValue.indexOf( sSegmentation, nFrom );
++    }
++    ::rtl::OUString sTmpValue = sValue.copy( nFrom );
++	sTmpValue = sTmpValue.replaceAt(0, (sSheetName + ::rtl::OUString::createFromAscii("!")).getLength(), sSheetName + ::rtl::OUString::createFromAscii("."));
++	if (sTmpValue.copy(0, sSheetName.getLength()).equals(sSheetName))
+ 	{
+-		sValue = ::rtl::OUString::createFromAscii("$") + sSheetName;
++		sTmpValue = ::rtl::OUString::createFromAscii("$") + sTmpValue;
+ 	}
+-	sValue = sValue.replaceAt(0, (sSheetName + ::rtl::OUString::createFromAscii("!")).getLength(), sSheetName + ::rtl::OUString::createFromAscii("."));
+-	mxNamedRange->setContent(sValue);
++    sResult += sTmpValue;
++	mxNamedRange->setContent(sResult);
+ }
+ 
+ ::rtl::OUString 
+@@ -197,7 +239,7 @@ ScVbaName::setRefersToR1C1Local( const :
+ css::uno::Reference< oo::excel::XRange >
+ ScVbaName::getRefersToRange() throw (css::uno::RuntimeException)
+ {
+-	css::uno::Reference< oo::excel::XRange > xRange;
++    uno::Reference< oo::excel::XRange > xRange = ScVbaRange::getRangeObjectForName( mxContext, mxNamedRange->getName(), getDocShell( mxModel ), ScAddress::CONV_XL_R1C1 );
+ 	return xRange;
+ }
+ 
+Index: sc/source/ui/vba/vbanames.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbanames.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.42.1
+diff -u -p -u -p -b -w -B -r1.2 -r1.2.42.1
+--- sc/source/ui/vba/vbanames.cxx	7 Dec 2007 10:56:06 -0000	1.2
++++ sc/source/ui/vba/vbanames.cxx	18 Jan 2008 16:51:38 -0000	1.2.42.1
+@@ -75,6 +75,7 @@ ScVbaNames::ScVbaNames(const css::uno::R
+ 			mxModel( xModel ),
+ 			mxNames( xNames )
+ {
++    m_xNameAccess.set( xNames, uno::UNO_QUERY_THROW );
+ }
+ 
+ ScVbaNames::~ScVbaNames()
+Index: sc/source/ui/vba/vbapages.cxx
+===================================================================
+RCS file: sc/source/ui/vba/vbapages.cxx
+diff -N sc/source/ui/vba/vbapages.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/vbapages.cxx	22 Apr 2008 19:53:16 -0000	1.1.2.1
+@@ -0,0 +1,81 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#include "vbapages.hxx"
++
++using namespace ::org::openoffice;
++using namespace ::com::sun::star;
++using namespace ::vos;
++
++ScVbaPages::ScVbaPages( const uno::Reference< vba::XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< container::XIndexAccess >& xPages ) throw( lang::IllegalArgumentException ) : ScVbaPages_BASE( xParent, xContext, xPages )
++{
++}
++
++uno::Type SAL_CALL 
++ScVbaPages::getElementType() throw (uno::RuntimeException)
++{
++	// return msforms::XPage::static_type(0); 
++	return uno::XInterface::static_type(0); 
++}
++
++uno::Any 
++ScVbaPages::createCollectionObject( const css::uno::Any& aSource )
++{
++	return aSource;
++}
++
++rtl::OUString& 
++ScVbaPages::getServiceImplName()
++{
++	static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("ScVbaPages") );
++	return sImplName;
++}
++
++uno::Reference< container::XEnumeration > SAL_CALL 
++ScVbaPages::createEnumeration() throw (uno::RuntimeException)
++{
++	return uno::Reference< container::XEnumeration >();
++}
++
++uno::Sequence< rtl::OUString > 
++ScVbaPages::getServiceNames()
++{
++	static uno::Sequence< rtl::OUString > aServiceNames;
++	if ( aServiceNames.getLength() == 0 )
++	{
++		aServiceNames.realloc( 1 );
++		aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("org.openoffice.msform.Pages" ) );
++	}
++	return aServiceNames;
++}
+Index: sc/source/ui/vba/vbapages.hxx
+===================================================================
+RCS file: sc/source/ui/vba/vbapages.hxx
+diff -N sc/source/ui/vba/vbapages.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/vbapages.hxx	22 Apr 2008 19:53:16 -0000	1.1.2.1
+@@ -0,0 +1,64 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#ifndef SC_VBA_PAGES_HXX
++#define SC_VBA_PAGES_HXX
++
++#include <org/openoffice/office/MsoShapeType.hpp>
++#include <com/sun/star/lang/XEventListener.hpp>
++#include <com/sun/star/beans/XPropertySet.hpp>
++#include <org/openoffice/msforms/XPages.hpp>
++#include <cppuhelper/implbase2.hxx>
++#include <cppuhelper/implbase1.hxx>
++
++#include "vbacollectionimpl.hxx"
++typedef CollTestImplHelper< 
++oo::msforms::XPages > ScVbaPages_BASE;
++
++class ScVbaPages : public ScVbaPages_BASE
++{
++protected:
++	virtual rtl::OUString& getServiceImplName();
++	virtual css::uno::Sequence<rtl::OUString> getServiceNames();
++public:
++    ScVbaPages( const css::uno::Reference< oo::vba::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::container::XIndexAccess >& xPages ) throw ( css::lang::IllegalArgumentException );
++    virtual ~ScVbaPages() {}
++        // XEnumerationAccess
++    virtual css::uno::Type SAL_CALL getElementType() throw (css::uno::RuntimeException);
++    virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() throw (css::uno::RuntimeException);
++     // ScVbaPages_BASE
++     virtual css::uno::Any createCollectionObject( const css::uno::Any& aSource );
++
++};
++#endif//SC_VBA_SHAPE_HXX
+Index: sc/source/ui/vba/vbaprogressbar.cxx
+===================================================================
+RCS file: sc/source/ui/vba/vbaprogressbar.cxx
+diff -N sc/source/ui/vba/vbaprogressbar.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/vbaprogressbar.cxx	22 Apr 2008 19:53:16 -0000	1.1.2.1
+@@ -0,0 +1,78 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#include "vbaprogressbar.hxx"
++#include <vector>
++
++using namespace com::sun::star;
++using namespace org::openoffice;
++
++// uno servicename com.sun.star.awt.UnoControlProgressBarMode
++const rtl::OUString SVALUE( RTL_CONSTASCII_USTRINGPARAM("ProgressValue") );
++
++ScVbaProgressBar::ScVbaProgressBar( const uno::Reference< oo::vba::XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< uno::XInterface >& xControl, AbstractGeometryAttributes* pGeomHelper ) : ProgressBarImpl_BASE( xParent, xContext, xControl, pGeomHelper )
++{
++}
++
++// Attributes
++uno::Any SAL_CALL 
++ScVbaProgressBar::getValue() throw (css::uno::RuntimeException)
++{
++    return m_xProps->getPropertyValue( SVALUE );
++}
++
++void SAL_CALL 
++ScVbaProgressBar::setValue( const uno::Any& _value ) throw (::com::sun::star::uno::RuntimeException)
++{
++    m_xProps->setPropertyValue( SVALUE,  _value );
++}
++
++rtl::OUString& 
++ScVbaProgressBar::getServiceImplName()
++{
++	static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("ScVbaProgressBar") );
++	return sImplName;
++}
++
++uno::Sequence< rtl::OUString > 
++ScVbaProgressBar::getServiceNames()
++{
++	static uno::Sequence< rtl::OUString > aServiceNames;
++	if ( aServiceNames.getLength() == 0 )
++	{
++		aServiceNames.realloc( 1 );
++		aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("org.openoffice.msforms.Label" ) );
++	}
++	return aServiceNames;
++}
+Index: sc/source/ui/vba/vbaprogressbar.hxx
+===================================================================
+RCS file: sc/source/ui/vba/vbaprogressbar.hxx
+diff -N sc/source/ui/vba/vbaprogressbar.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/vbaprogressbar.hxx	22 Apr 2008 19:53:16 -0000	1.1.2.1
+@@ -0,0 +1,59 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#ifndef SC_VBA_PROGRESSBAR_HXX
++#define SC_VBA_PROGRESSBAR_HXX
++#include <cppuhelper/implbase1.hxx>
++#include <org/openoffice/msforms/XProgressBar.hpp>
++
++#include "vbacontrol.hxx"
++#include "vbahelper.hxx"
++#include <cppuhelper/implbase2.hxx>
++
++typedef cppu::ImplInheritanceHelper2< ScVbaControl, oo::msforms::XProgressBar, css::script::XDefaultProperty  > ProgressBarImpl_BASE;
++
++class ScVbaProgressBar : public ProgressBarImpl_BASE
++{
++public:
++    ScVbaProgressBar( const css::uno::Reference< oo::vba::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::uno::XInterface >& xControl, oo::AbstractGeometryAttributes* pGeomHelper );
++   // Attributes
++    virtual css::uno::Any SAL_CALL getValue() throw (css::uno::RuntimeException);
++    virtual void SAL_CALL setValue( const css::uno::Any& _value ) throw (css::uno::RuntimeException);
++    //XHelperInterface
++    virtual rtl::OUString& getServiceImplName();
++    virtual css::uno::Sequence<rtl::OUString> getServiceNames();
++    // XDefaultProperty
++    rtl::OUString SAL_CALL getDefaultPropertyName(  ) throw (css::uno::RuntimeException) { return ::rtl::OUString::createFromAscii("Value"); }
++};
++#endif //SC_VBA_LABEL_HXX
+Index: sc/source/ui/vba/vbaradiobutton.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbaradiobutton.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.42.1
+diff -u -p -u -p -b -w -B -r1.2 -r1.2.42.1
+--- sc/source/ui/vba/vbaradiobutton.cxx	7 Dec 2007 11:00:34 -0000	1.2
++++ sc/source/ui/vba/vbaradiobutton.cxx	22 Apr 2008 19:53:16 -0000	1.2.42.1
+@@ -41,7 +41,7 @@ using namespace org::openoffice;
+ 
+ const static rtl::OUString LABEL( RTL_CONSTASCII_USTRINGPARAM("Label") );
+ const static rtl::OUString STATE( RTL_CONSTASCII_USTRINGPARAM("State") );
+-ScVbaRadioButton::ScVbaRadioButton( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< css::drawing::XControlShape >& xControlShape ) : RadioButtonImpl_BASE( xContext, xControlShape )
++ScVbaRadioButton::ScVbaRadioButton( const uno::Reference< vba::XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< uno::XInterface >& xControl, AbstractGeometryAttributes* pGeomHelper ) : RadioButtonImpl_BASE( xParent, xContext, xControl, pGeomHelper )
+ {
+ }
+ 
+@@ -60,22 +60,53 @@ ScVbaRadioButton::setCaption( const rtl:
+     m_xProps->setPropertyValue( LABEL, uno::makeAny( _caption ) );
+ }
+ 
+-sal_Bool SAL_CALL 
++uno::Any SAL_CALL 
+ ScVbaRadioButton::getValue() throw (css::uno::RuntimeException)
+ {
+-    sal_Bool bValue = sal_False;
+     sal_Int16 nValue = -1;
+     m_xProps->getPropertyValue( STATE ) >>= nValue;
+     if( nValue != 0 )
+-        bValue = sal_True;
+-    return bValue;
++        nValue = -1;
++//    return uno::makeAny( nValue ); 
++// I must be missing something MSO says value should be -1 if selected, 0 if not
++// selected
++    return uno::makeAny( ( nValue == -1 ) ? sal_True : sal_False ); 
++
+ }
+ 
+ void SAL_CALL 
+-ScVbaRadioButton::setValue( sal_Bool _value ) throw (css::uno::RuntimeException)
++ScVbaRadioButton::setValue( const uno::Any& _value ) throw (uno::RuntimeException)
+ {
+     sal_Int16 nValue = 0;
+-    if( _value )
++    sal_Bool bValue = sal_False;
++    if( _value >>= nValue )
++    {
++        if( nValue == -1)
+         nValue = 1;
++    }
++    else if ( _value >>= bValue )
++    {
++        if ( bValue )
++            nValue = 1;
++    }
+     m_xProps->setPropertyValue( STATE, uno::makeAny( nValue ) );
+ }
++
++rtl::OUString& 
++ScVbaRadioButton::getServiceImplName()
++{
++	static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("ScVbaRadioButton") );
++	return sImplName;
++}
++
++uno::Sequence< rtl::OUString > 
++ScVbaRadioButton::getServiceNames()
++{
++	static uno::Sequence< rtl::OUString > aServiceNames;
++	if ( aServiceNames.getLength() == 0 )
++	{
++		aServiceNames.realloc( 1 );
++		aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("org.openoffice.msforms.RadioButton" ) );
++	}
++	return aServiceNames;
++}
+Index: sc/source/ui/vba/vbaradiobutton.hxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbaradiobutton.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.42.1
+diff -u -p -u -p -b -w -B -r1.2 -r1.2.42.1
+--- sc/source/ui/vba/vbaradiobutton.hxx	7 Dec 2007 11:00:45 -0000	1.2
++++ sc/source/ui/vba/vbaradiobutton.hxx	22 Apr 2008 19:53:16 -0000	1.2.42.1
+@@ -34,24 +34,27 @@
+  ************************************************************************/
+ #ifndef SC_VBA_RADIOBUTTON_HXX
+ #define SC_VBA_RADIOBUTTON_HXX
+-#include <cppuhelper/implbase1.hxx>
+ #include <org/openoffice/msforms/XRadioButton.hpp>
+-
+ #include "vbacontrol.hxx"
+ #include "vbahelper.hxx"
++#include <cppuhelper/implbase2.hxx>
+ 
+-typedef cppu::ImplInheritanceHelper1< ScVbaControl, oo::msforms::XRadioButton > RadioButtonImpl_BASE;
++typedef cppu::ImplInheritanceHelper2< ScVbaControl, oo::msforms::XRadioButton, css::script::XDefaultProperty > RadioButtonImpl_BASE;
+ 
+ class ScVbaRadioButton : public RadioButtonImpl_BASE
+ {
+ public:
+-    ScVbaRadioButton( const css::uno::Reference< css::uno::XComponentContext >& xContext,
+-                    const css::uno::Reference< css::drawing::XControlShape >& xControlShape );
++    ScVbaRadioButton( const css::uno::Reference< oo::vba::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::uno::XInterface >& xControl, oo::AbstractGeometryAttributes* pGeomHelper );
+    // Attributes
+     virtual rtl::OUString SAL_CALL getCaption() throw (css::uno::RuntimeException);
+     virtual void SAL_CALL setCaption( const rtl::OUString& _caption ) throw (css::uno::RuntimeException);
+-    virtual sal_Bool SAL_CALL getValue() throw (css::uno::RuntimeException);
+-    virtual void SAL_CALL setValue( sal_Bool _value ) throw (css::uno::RuntimeException);
++    virtual css::uno::Any SAL_CALL getValue() throw (css::uno::RuntimeException);
++    virtual void SAL_CALL setValue(const com::sun::star::uno::Any&) throw (css::uno::RuntimeException);
++    //XHelperInterface
++    virtual rtl::OUString& getServiceImplName();
++    virtual css::uno::Sequence<rtl::OUString> getServiceNames();
++    // XDefaultProperty
++    rtl::OUString SAL_CALL getDefaultPropertyName(  ) throw (css::uno::RuntimeException) { return ::rtl::OUString::createFromAscii("Value"); }
+ 
+ };
+ #endif //SC_VBA_RADIOBUTTON_HXX
+Index: sc/source/ui/vba/vbarange.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbarange.cxx,v
+retrieving revision 1.6
+retrieving revision 1.5.34.7
+diff -u -p -u -p -b -w -B -r1.6 -r1.5.34.7
+--- sc/source/ui/vba/vbarange.cxx	29 Jan 2008 17:03:20 -0000	1.6
++++ sc/source/ui/vba/vbarange.cxx	16 Apr 2008 10:40:19 -0000	1.5.34.7
+@@ -521,6 +521,34 @@ sal_Int32 m_nArea;
+ typedef ::cppu::WeakImplHelper1< container::XEnumeration > CellsEnumeration_BASE;
+ typedef ::std::vector< CellPos > vCellPos;
+ 
++// #FIXME - QUICK
++// we could probably could and should modify CellsEnumeration below
++// to handle rows and columns ( but I do this seperately for now 
++// and.. this class only handles singe areas ( does it have to handle
++// multi area ranges?? ) 
++class ColumnsRowEnumeration: public CellsEnumeration_BASE
++{
++	uno::Reference< uno::XComponentContext > mxContext;
++        uno::Reference< excel::XRange > mxRange;
++	sal_Int32 mMaxElems;
++	sal_Int32 mCurElem;
++        
++public:
++	ColumnsRowEnumeration( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< excel::XRange >& xRange, sal_Int32 nElems ) : mxContext( xContext ), mxRange( xRange ), mMaxElems( nElems ), mCurElem( 0 )
++        {
++	}
++
++	virtual ::sal_Bool SAL_CALL hasMoreElements() throw (::uno::RuntimeException){ return mCurElem < mMaxElems; }
++
++	virtual uno::Any SAL_CALL nextElement() throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
++	{
++		if ( !hasMoreElements() )
++			throw container::NoSuchElementException();
++		sal_Int32 vbaIndex = 1 + mCurElem++; 
++		return uno::makeAny( mxRange->Item( uno::makeAny( vbaIndex ), uno::Any() ) ); 
++	}
++};
++
+ class CellsEnumeration : public CellsEnumeration_BASE
+ {
+ 	uno::Reference< uno::XComponentContext > mxContext;
+@@ -743,6 +771,7 @@ protected:
+ 	bool processValue( const uno::Any& aValue, const uno::Reference< table::XCell >& xCell )
+ 	{
+ 		rtl::OUString sFormula;
++		double aDblValue;
+ 		if ( aValue >>= sFormula )
+ 		{
+ 			// get current convention
+@@ -769,6 +798,11 @@ protected:
+ 			xCell->setFormula( sFormula );
+ 			return true;
+ 		}
++		else if ( aValue >>= aDblValue )
++		{
++			xCell->setValue( aDblValue );
++			return true;
++		}
+ 		return false;
+ 	}
+ 		
+@@ -1154,10 +1188,19 @@ lcl_setupBorders( const uno::Reference< 
+ }
+ 
+ ScVbaRange::ScVbaRange( uno::Sequence< uno::Any> const & args,
+-    uno::Reference< uno::XComponentContext> const & xContext )  throw ( lang::IllegalArgumentException ) : ScVbaRange_BASE( getXSomethingFromArgs< vba::XHelperInterface >( args, 0 ), xContext, getXSomethingFromArgs< beans::XPropertySet >( args, 1, false ), getModelFromRange( getXSomethingFromArgs< table::XCellRange >( args, 1 ) ), true ), mbIsRows( sal_False ), mbIsColumns( sal_False )
++    uno::Reference< uno::XComponentContext> const & xContext )  throw ( lang::IllegalArgumentException ) : ScVbaRange_BASE( getXSomethingFromArgs< vba::XHelperInterface >( args, 0 ), xContext, getXSomethingFromArgs< beans::XPropertySet >( args, 1, false ), getModelFromXIf( getXSomethingFromArgs< uno::XInterface >( args, 1 ) ), true ), mbIsRows( sal_False ), mbIsColumns( sal_False )
++{
++	mxRange.set( mxPropertySet, uno::UNO_QUERY );
++	mxRanges.set( mxPropertySet, uno::UNO_QUERY );
++	uno::Reference< container::XIndexAccess >  xIndex;
++	if ( mxRange.is() )
++	{
++		xIndex = new SingleRangeIndexAccess( mxContext, mxRange );
++	}
++	else if ( mxRanges.is() )
+ {
+-	mxRange.set( mxPropertySet, uno::UNO_QUERY_THROW );
+-	uno::Reference< container::XIndexAccess > xIndex( new SingleRangeIndexAccess( mxContext, mxRange ) );
++		xIndex.set( mxRanges, uno::UNO_QUERY_THROW );
++	}
+ 	m_Areas = new ScVbaRangeAreas( mxContext, xIndex, mbIsRows, mbIsColumns );
+ }
+ 
+@@ -1838,7 +1881,36 @@ ScVbaRange::Cells( const uno::Any &nRowI
+ 	}
+ 
+ 	sal_Int32 nRow = 0, nColumn = 0;
+-	sal_Bool bIsIndex = nRowIndex >>= nRow, bIsColumnIndex = nColumnIndex >>= nColumn;
++
++	sal_Bool bIsIndex = nRowIndex.hasValue();
++	sal_Bool bIsColumnIndex = nColumnIndex.hasValue();
++
++	// Sometimes we might get a float or a double or whatever
++	// set in the Any, we should convert as appropriate
++	// #FIXME - perhaps worth turning this into some sort of
++	// convertion routine e.g. bSuccess = getValueFromAny( nRow, nRowIndex, getCppuType((sal_Int32*)0) )
++	if ( nRowIndex.hasValue() && !( nRowIndex >>= nRow ) )
++	{
++		uno::Reference< script::XTypeConverter > xConverter = getTypeConverter( mxContext );
++		uno::Any aConverted;
++		try
++		{
++			aConverted = xConverter->convertTo( nRowIndex, getCppuType((sal_Int32*)0) );
++			bIsIndex = ( aConverted >>= nRow );
++		}
++		catch( uno::Exception& ) {} // silence any errors
++	}
++	if ( bIsColumnIndex && !( nColumnIndex >>= nColumn ) )
++	{
++		uno::Reference< script::XTypeConverter > xConverter = getTypeConverter( mxContext );
++		uno::Any aConverted;
++		try
++		{
++			aConverted = xConverter->convertTo( nColumnIndex, getCppuType((sal_Int32*)0) );
++			bIsColumnIndex = ( aConverted >>= nColumn );
++		}
++		catch( uno::Exception& ) {} // silence any errors
++	}
+                                                                                                                        
+ 	RangeHelper thisRange( mxRange );
+ 	table::CellRangeAddress thisRangeAddress =  thisRange.getCellRangeAddressable()->getRangeAddress();
+@@ -3121,6 +3193,18 @@ ScVbaRange::hasElements() throw (uno::Ru
+ uno::Reference< container::XEnumeration > SAL_CALL 
+ ScVbaRange::createEnumeration() throw (uno::RuntimeException)
+ {
++	if ( mbIsColumns || mbIsRows )
++	{
++		uno::Reference< table::XColumnRowRange > xColumnRowRange(mxRange, uno::UNO_QUERY );
++		uno::Reference< excel::XRange > xRange( m_Areas->Item( uno::makeAny( sal_Int32(1) ), uno::Any() ), uno::UNO_QUERY_THROW );
++                sal_Int32 nElems = 0;
++		if ( mbIsColumns )	
++			nElems = xColumnRowRange->getColumns()->getCount();
++		else
++			nElems = xColumnRowRange->getRows()->getCount();
++                return new ColumnsRowEnumeration( mxContext, xRange, nElems );
++		
++	}
+ 	return new CellsEnumeration( mxContext, m_Areas );
+ }
+ 
+@@ -4124,7 +4208,7 @@ ScVbaRange::Autofit() throw (uno::Runtim
+ 		// if the range is a not a row or column range autofit will
+ 		// throw an error
+ 
+-		if ( !mbIsColumns  )
++		if ( !( mbIsColumns || mbIsRows ) )
+ 			DebugHelper::exception(SbERR_METHOD_FAILED, rtl::OUString()); 			
+         ScDocShell* pDocShell = getDocShellFromRange( mxRange );
+         if ( pDocShell )
+@@ -4521,7 +4605,7 @@ ScVbaRange::AutoOutline(  ) throw (scrip
+ {
+ 	// #TODO #FIXME needs to check for summary row/col ( whatever they are )
+ 	// not valid for multi Area Addresses
+-	if ( m_Areas->getCount() )
++	if ( m_Areas->getCount() > 1 )
+ 		DebugHelper::exception(SbERR_METHOD_FAILED, STR_ERRORMESSAGE_APPLIESTOSINGLERANGEONLY); 			
+ 	// So needs to either span an entire Row or a just be a single cell 
+ 	// ( that contains a summary RowColumn )
+@@ -4739,6 +4823,7 @@ ScVbaRange::SpecialCells( const uno::Any
+ 		case excel::XlCellType::xlCellTypeConstants:
+ 		case excel::XlCellType::xlCellTypeFormulas:
+ 		case excel::XlCellType::xlCellTypeVisible:
++		case excel::XlCellType::xlCellTypeLastCell:
+ 		{
+ 			if ( bIsMultiArea )
+ 			{
+Index: sc/source/ui/vba/vbascrollbar.cxx
+===================================================================
+RCS file: sc/source/ui/vba/vbascrollbar.cxx
+diff -N sc/source/ui/vba/vbascrollbar.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/vbascrollbar.cxx	22 Apr 2008 19:53:16 -0000	1.1.2.1
+@@ -0,0 +1,139 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#include "vbascrollbar.hxx"
++#include <vector>
++
++using namespace com::sun::star;
++using namespace org::openoffice;
++
++
++const static rtl::OUString LARGECHANGE( RTL_CONSTASCII_USTRINGPARAM("BlockIncrement") );
++const static rtl::OUString SMALLCHANGE( RTL_CONSTASCII_USTRINGPARAM("LineIncrement") );
++const static rtl::OUString ORIENTATION( RTL_CONSTASCII_USTRINGPARAM("Orientation") );
++const static rtl::OUString SCROLLVALUE( RTL_CONSTASCII_USTRINGPARAM("ScrollValue") );
++const static rtl::OUString SCROLLMAX( RTL_CONSTASCII_USTRINGPARAM("ScrollValueMax") );
++const static rtl::OUString SCROLLMIN( RTL_CONSTASCII_USTRINGPARAM("ScrollValueMin") );
++
++ScVbaScrollBar::ScVbaScrollBar(  const css::uno::Reference< oo::vba::XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< uno::XInterface >& xControl, AbstractGeometryAttributes* pGeomHelper ) : ScrollBarImpl_BASE( xParent, xContext, xControl, pGeomHelper )
++{
++}
++
++// Attributes
++uno::Any SAL_CALL 
++ScVbaScrollBar::getValue() throw (css::uno::RuntimeException)
++{
++    return  m_xProps->getPropertyValue( SCROLLVALUE );
++}
++
++void SAL_CALL 
++ScVbaScrollBar::setValue( const uno::Any& _value ) throw (::com::sun::star::uno::RuntimeException)
++{
++    m_xProps->setPropertyValue( SCROLLVALUE, _value );
++}
++
++::sal_Int32 SAL_CALL 
++ScVbaScrollBar::getMax() throw (uno::RuntimeException)
++{
++    sal_Int32 nMax = 0;
++    m_xProps->getPropertyValue( SCROLLMAX ) >>= nMax;
++    return nMax;
++}
++
++void SAL_CALL 
++ScVbaScrollBar::setMax( sal_Int32 nVal ) throw (uno::RuntimeException)
++{
++    m_xProps->setPropertyValue( SCROLLMAX, uno::makeAny( nVal ) ); 
++}
++
++::sal_Int32 SAL_CALL 
++ScVbaScrollBar::getMin() throw (uno::RuntimeException)
++{
++    sal_Int32 nVal = 0;
++    m_xProps->getPropertyValue( SCROLLMIN ) >>= nVal;
++    return nVal;
++}
++
++void SAL_CALL 
++ScVbaScrollBar::setMin( sal_Int32 nVal ) throw (uno::RuntimeException)
++{
++    m_xProps->setPropertyValue( SCROLLMIN, uno::makeAny( nVal ) ); 
++}
++
++void SAL_CALL 
++ScVbaScrollBar::setLargeChange( ::sal_Int32 _largechange ) throw (uno::RuntimeException)
++{
++    m_xProps->setPropertyValue( LARGECHANGE, uno::makeAny( _largechange ) );
++}
++
++::sal_Int32 SAL_CALL 
++ScVbaScrollBar::getLargeChange() throw (uno::RuntimeException)
++{
++    sal_Int32 nVal = 0;
++    m_xProps->getPropertyValue( LARGECHANGE ) >>= nVal;
++    return nVal;
++}
++
++::sal_Int32 SAL_CALL 
++ScVbaScrollBar::getSmallChange() throw (uno::RuntimeException)
++{
++    sal_Int32 nSmallChange = 0;
++    m_xProps->getPropertyValue( SMALLCHANGE ) >>= nSmallChange;
++    return nSmallChange;
++}
++
++void SAL_CALL 
++ScVbaScrollBar::setSmallChange( ::sal_Int32 _smallchange ) throw (uno::RuntimeException)
++{
++    m_xProps->setPropertyValue( SMALLCHANGE, uno::makeAny( _smallchange ) );
++}
++
++rtl::OUString& 
++ScVbaScrollBar::getServiceImplName()
++{
++	static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("ScVbaScrollBar") );
++	return sImplName;
++}
++
++uno::Sequence< rtl::OUString > 
++ScVbaScrollBar::getServiceNames()
++{
++	static uno::Sequence< rtl::OUString > aServiceNames;
++	if ( aServiceNames.getLength() == 0 )
++	{
++		aServiceNames.realloc( 1 );
++		aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("org.openoffice.msforms.Frame" ) );
++	}
++	return aServiceNames;
++}
+Index: sc/source/ui/vba/vbascrollbar.hxx
+===================================================================
+RCS file: sc/source/ui/vba/vbascrollbar.hxx
+diff -N sc/source/ui/vba/vbascrollbar.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/vbascrollbar.hxx	22 Apr 2008 19:53:16 -0000	1.1.2.1
+@@ -0,0 +1,66 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#ifndef SC_VBA_SCROLLBAR_HXX
++#define SC_VBA_SCROLLBAR_HXX
++#include <cppuhelper/implbase1.hxx>
++#include <org/openoffice/msforms/XScrollBar.hpp>
++
++#include "vbacontrol.hxx"
++#include "vbahelper.hxx"
++
++typedef cppu::ImplInheritanceHelper1< ScVbaControl, oo::msforms::XScrollBar > ScrollBarImpl_BASE;
++
++class ScVbaScrollBar : public ScrollBarImpl_BASE
++{
++public:
++    ScVbaScrollBar( const css::uno::Reference< oo::vba::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::uno::XInterface >& xControl, oo::AbstractGeometryAttributes* pGeomHelper  );
++   // Attributes
++    virtual css::uno::Any SAL_CALL getValue() throw (css::uno::RuntimeException);
++    virtual void SAL_CALL setValue( const css::uno::Any& _value ) throw (css::uno::RuntimeException);
++    virtual ::sal_Int32 SAL_CALL getMax() throw (css::uno::RuntimeException);
++    virtual void SAL_CALL setMax( ::sal_Int32 _max ) throw (css::uno::RuntimeException);
++    virtual ::sal_Int32 SAL_CALL getMin() throw (css::uno::RuntimeException);
++    virtual void SAL_CALL setMin( ::sal_Int32 _min ) throw (css::uno::RuntimeException);
++    virtual ::sal_Int32 SAL_CALL getLargeChange() throw (css::uno::RuntimeException);
++    virtual void SAL_CALL setLargeChange( ::sal_Int32 _largechange ) throw (css::uno::RuntimeException);
++    virtual ::sal_Int32 SAL_CALL getSmallChange() throw (css::uno::RuntimeException);
++    virtual void SAL_CALL setSmallChange( ::sal_Int32 _smallchange ) throw (css::uno::RuntimeException);
++
++
++    //XHelperInterface
++    virtual rtl::OUString& getServiceImplName();
++    virtual css::uno::Sequence<rtl::OUString> getServiceNames();
++};
++#endif //SC_VBA_LABEL_HXX
+Index: sc/source/ui/vba/vbashape.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbashape.cxx,v
+retrieving revision 1.3
+retrieving revision 1.3.34.1
+diff -u -p -u -p -b -w -B -r1.3 -r1.3.34.1
+--- sc/source/ui/vba/vbashape.cxx	14 Dec 2007 12:41:26 -0000	1.3
++++ sc/source/ui/vba/vbashape.cxx	14 Feb 2008 15:15:46 -0000	1.3.34.1
+@@ -55,13 +55,13 @@ using namespace ::org::openoffice;
+ using namespace ::com::sun::star;
+ using namespace ::vos;
+ 
+-ScVbaShape::ScVbaShape( const uno::Reference< vba::XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< drawing::XShape > xShape, const uno::Reference< drawing::XShapes > xShapes, sal_Int32 nType ) throw( lang::IllegalArgumentException ) : ScVbaShape_BASE( xParent, xContext ), m_xShape( xShape ), m_xShapes( xShapes ), m_nType( nType )
++ScVbaShape::ScVbaShape( const uno::Reference< vba::XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< drawing::XShape >& xShape, const uno::Reference< drawing::XShapes >& xShapes, sal_Int32 nType ) throw( lang::IllegalArgumentException ) : ScVbaShape_BASE( xParent, xContext ), m_xShape( xShape ), m_xShapes( xShapes ), m_nType( nType )
+ {
+     m_xPropertySet.set( m_xShape, uno::UNO_QUERY_THROW );
+     addListeners();
+ }
+ 
+-ScVbaShape::ScVbaShape( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< drawing::XShape > xShape ) throw( lang::IllegalArgumentException ) : ScVbaShape_BASE( uno::Reference< vba::XHelperInterface >(), xContext ), m_xShape( xShape )
++ScVbaShape::ScVbaShape( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< drawing::XShape >& xShape ) throw( lang::IllegalArgumentException ) : ScVbaShape_BASE( uno::Reference< vba::XHelperInterface >(), xContext ), m_xShape( xShape )
+ {
+     // add listener
+     addListeners();
+Index: sc/source/ui/vba/vbashape.hxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbashape.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.42.2
+diff -u -p -u -p -b -w -B -r1.2 -r1.2.42.2
+--- sc/source/ui/vba/vbashape.hxx	7 Dec 2007 11:02:09 -0000	1.2
++++ sc/source/ui/vba/vbashape.hxx	22 Apr 2008 19:53:16 -0000	1.2.42.2
+@@ -52,21 +52,22 @@ typedef InheritedHelperInterfaceImpl< Li
+ 
+ class ScVbaShape : public ScVbaShape_BASE
+ {
++friend class ConcreteXShapeHelper; // perhaps an accessor would be better
+ private:
++protected:
+     css::uno::Reference< css::drawing::XShape > m_xShape;
+     css::uno::Reference< css::drawing::XShapes > m_xShapes;
+     css::uno::Reference< css::beans::XPropertySet > m_xPropertySet;
+     sal_Int32 m_nType;
+     css::uno::Any m_aRange;
+-protected:
+ 	virtual void addListeners();
+ 	virtual void removeShapeListener() throw( css::uno::RuntimeException );
+ 	virtual void removeShapesListener() throw( css::uno::RuntimeException );
+ 	virtual rtl::OUString& getServiceImplName();
+ 	virtual css::uno::Sequence<rtl::OUString> getServiceNames();
+ public:
+-    ScVbaShape( const css::uno::Reference< oo::vba::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::drawing::XShape > xShape, const css::uno::Reference< css::drawing::XShapes > xShapes, sal_Int32 nType ) throw ( css::lang::IllegalArgumentException );
+-    ScVbaShape( const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::drawing::XShape > xShape ) throw ( css::lang::IllegalArgumentException );
++    ScVbaShape( const css::uno::Reference< oo::vba::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::drawing::XShape >& xShape, const css::uno::Reference< css::drawing::XShapes >& xShapes, sal_Int32 nType ) throw ( css::lang::IllegalArgumentException );
++    ScVbaShape( const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::drawing::XShape >& xShape ) throw ( css::lang::IllegalArgumentException );
+     virtual ~ScVbaShape();
+     css::uno::Any getRange() { return m_aRange; };
+     void setRange( css::uno::Any aRange ) { m_aRange = aRange; };
+Index: sc/source/ui/vba/vbatextbox.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbatextbox.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.42.1
+diff -u -p -u -p -b -w -B -r1.2 -r1.2.42.1
+--- sc/source/ui/vba/vbatextbox.cxx	7 Dec 2007 11:03:50 -0000	1.2
++++ sc/source/ui/vba/vbatextbox.cxx	22 Apr 2008 19:53:16 -0000	1.2.42.1
+@@ -42,11 +42,24 @@ using namespace org::openoffice;
+ 
+ 
+ 
+-ScVbaTextBox::ScVbaTextBox( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< css::drawing::XControlShape >& xControlShape ) : TextBoxImpl_BASE( xContext, xControlShape )
++ScVbaTextBox::ScVbaTextBox( const uno::Reference< oo::vba::XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< uno::XInterface >& xControl, AbstractGeometryAttributes* pGeomHelper, bool bDialog ) : TextBoxImpl_BASE( xParent, xContext, xControl, pGeomHelper ), mbDialog( bDialog )
+ {
+ }
+ 
+ // Attributes
++uno::Any SAL_CALL 
++ScVbaTextBox::getValue() throw (css::uno::RuntimeException)
++{
++	return uno::makeAny( getText() );
++}
++
++void SAL_CALL 
++ScVbaTextBox::setValue( const uno::Any& _value ) throw (css::uno::RuntimeException)
++{
++	rtl::OUString sVal = getAnyAsString( _value );
++	setText( sVal );
++}
++
+ //getString() will cause some imfo lose.
+ rtl::OUString SAL_CALL 
+ ScVbaTextBox::getText() throw (css::uno::RuntimeException)
+@@ -62,9 +75,14 @@ ScVbaTextBox::getText() throw (css::uno:
+ void SAL_CALL 
+ ScVbaTextBox::setText( const rtl::OUString& _text ) throw (css::uno::RuntimeException)
+ {
++    if ( !mbDialog )
++    {
+     uno::Reference< text::XTextRange > xTextRange( m_xProps, uno::UNO_QUERY_THROW );
+     xTextRange->setString( _text );
+ }
++    else
++        m_xProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Text") ), uno::makeAny( _text ) ); 
++}
+ 
+ sal_Int32 SAL_CALL 
+ ScVbaTextBox::getMaxLength() throw (css::uno::RuntimeException)
+@@ -103,3 +121,22 @@ ScVbaTextBox::setMultiline( sal_Bool _mu
+     m_xProps->setPropertyValue
+             (rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "MultiLine" ) ), aValue);
+ }
++
++rtl::OUString& 
++ScVbaTextBox::getServiceImplName()
++{
++	static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("ScVbaTextBox") );
++	return sImplName;
++}
++
++uno::Sequence< rtl::OUString > 
++ScVbaTextBox::getServiceNames()
++{
++	static uno::Sequence< rtl::OUString > aServiceNames;
++	if ( aServiceNames.getLength() == 0 )
++	{
++		aServiceNames.realloc( 1 );
++		aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("org.openoffice.msforms.TextBox" ) );
++	}
++	return aServiceNames;
++}
+Index: sc/source/ui/vba/vbatextbox.hxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbatextbox.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.42.1
+diff -u -p -u -p -b -w -B -r1.2 -r1.2.42.1
+--- sc/source/ui/vba/vbatextbox.hxx	7 Dec 2007 11:04:01 -0000	1.2
++++ sc/source/ui/vba/vbatextbox.hxx	22 Apr 2008 19:53:16 -0000	1.2.42.1
+@@ -43,16 +43,20 @@ typedef cppu::ImplInheritanceHelper1< Sc
+ 
+ class ScVbaTextBox : public TextBoxImpl_BASE
+ {
++    bool mbDialog;
+ public:
+-    ScVbaTextBox( const css::uno::Reference< css::uno::XComponentContext >& xContext,
+-                    const css::uno::Reference< css::drawing::XControlShape >& xControlShape );
++    ScVbaTextBox( const css::uno::Reference< oo::vba::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::uno::XInterface >& xControl, oo::AbstractGeometryAttributes* pGeomHelper, bool bDialog = false );
+    // Attributes
++    virtual css::uno::Any SAL_CALL getValue() throw (css::uno::RuntimeException);
++    virtual void SAL_CALL setValue( const css::uno::Any& _value ) throw (css::uno::RuntimeException);
+     virtual rtl::OUString SAL_CALL getText() throw (css::uno::RuntimeException);
+     virtual void SAL_CALL setText( const rtl::OUString& _text ) throw (css::uno::RuntimeException);
+     virtual sal_Int32 SAL_CALL getMaxLength() throw (css::uno::RuntimeException);
+     virtual void SAL_CALL setMaxLength( sal_Int32 _maxlength ) throw (css::uno::RuntimeException);
+     virtual sal_Bool SAL_CALL getMultiline() throw (css::uno::RuntimeException);
+     virtual void SAL_CALL setMultiline( sal_Bool _multiline ) throw (css::uno::RuntimeException);
+-
++    //XHelperInterface
++    virtual rtl::OUString& getServiceImplName();
++    virtual css::uno::Sequence<rtl::OUString> getServiceNames();
+ };
+ #endif //SC_VBA_TEXTBOX_HXX
+Index: sc/source/ui/vba/vbatextboxshape.cxx
+===================================================================
+RCS file: sc/source/ui/vba/vbatextboxshape.cxx
+diff -N sc/source/ui/vba/vbatextboxshape.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/vbatextboxshape.cxx	14 Feb 2008 15:27:49 -0000	1.1.2.1
+@@ -0,0 +1,74 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include "vbatextboxshape.hxx"
++#include "vbacharacters.hxx"
++#include <com/sun/star/text/XSimpleText.hpp>
++#include <vector>
++
++using namespace com::sun::star;
++using namespace org::openoffice;
++
++ScVbaTextBoxShape::ScVbaTextBoxShape( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< drawing::XShape >& xShape, const uno::Reference< drawing::XShapes >& xShapes, const uno::Reference< frame::XModel >& xModel ) : TextBoxShapeImpl_BASE( uno::Reference< vba::XHelperInterface >(), xContext, xShape, xShapes, ScVbaShape::getType( xShape )  )
++{
++    m_xTextRange.set( xShape , uno::UNO_QUERY_THROW );
++    m_xModel.set( xModel );
++}
++
++rtl::OUString SAL_CALL 
++ScVbaTextBoxShape::getText() throw (css::uno::RuntimeException)
++{
++    return m_xTextRange->getString();
++}
++
++void SAL_CALL 
++ScVbaTextBoxShape::setText( const rtl::OUString& _text ) throw (css::uno::RuntimeException)
++{
++    m_xTextRange->setString( _text );
++}
++
++uno::Reference< excel::XCharacters > SAL_CALL 
++ScVbaTextBoxShape::characters( const uno::Any& Start, const uno::Any& Length ) throw (uno::RuntimeException)
++{
++    ScDocShell* pDocShell = getDocShell( m_xModel );
++    ScDocument* pDoc = pDocShell ? pDocShell->GetDocument() : NULL;
++
++    if ( !pDoc )
++        throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Failed to access document from shell" ) ), uno::Reference< uno::XInterface >() );
++    uno::Reference< text::XSimpleText > xSimple( m_xTextRange, uno::UNO_QUERY_THROW );
++
++    ScVbaPalette aPalette( pDoc->GetDocumentShell() );
++    return  new ScVbaCharacters( this, mxContext, aPalette, xSimple, Start, Length, sal_True );
++}
+Index: sc/source/ui/vba/vbatextboxshape.hxx
+===================================================================
+RCS file: sc/source/ui/vba/vbatextboxshape.hxx
+diff -N sc/source/ui/vba/vbatextboxshape.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/vbatextboxshape.hxx	14 Feb 2008 15:27:49 -0000	1.1.2.1
+@@ -0,0 +1,58 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#ifndef SC_VBA_TEXTBOX_HXX
++#define SC_VBA_TEXTBOX_HXX
++#include <cppuhelper/implbase1.hxx>
++#include <com/sun/star/text/XTextRange.hpp>
++#include <org/openoffice/msforms/XTextBoxShape.hpp>
++#include "vbashape.hxx"
++#include "vbahelper.hxx"
++#include "vbacharacters.hxx"
++
++typedef cppu::ImplInheritanceHelper1< ScVbaShape, oo::msforms::XTextBoxShape > TextBoxShapeImpl_BASE;
++
++class ScVbaTextBoxShape : public TextBoxShapeImpl_BASE
++{
++    css::uno::Reference< css::text::XTextRange > m_xTextRange;
++    css::uno::Reference< css::frame::XModel > m_xModel;
++public:
++    ScVbaTextBoxShape( const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::drawing::XShape >& xShape, const css::uno::Reference< css::drawing::XShapes >& xShapes, const css::uno::Reference< css::frame::XModel >& xModel );
++                    
++   // Attributes
++    virtual rtl::OUString SAL_CALL getText() throw (css::uno::RuntimeException);
++    virtual void SAL_CALL setText( const rtl::OUString& _text ) throw (css::uno::RuntimeException);
++    virtual css::uno::Reference< oo::excel::XCharacters > SAL_CALL characters( const css::uno::Any& Start, const css::uno::Any& Length ) throw (css::uno::RuntimeException);
++};
++#endif //SC_VBA_TEXTBOX_HXX
+Index: sc/source/ui/vba/vbatogglebutton.cxx
+===================================================================
+RCS file: sc/source/ui/vba/vbatogglebutton.cxx
+diff -N sc/source/ui/vba/vbatogglebutton.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/vbatogglebutton.cxx	22 Apr 2008 19:53:16 -0000	1.1.2.1
+@@ -0,0 +1,108 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#include "vbatogglebutton.hxx"
++#include <vector>
++
++using namespace com::sun::star;
++using namespace org::openoffice;
++
++
++const static rtl::OUString LABEL( RTL_CONSTASCII_USTRINGPARAM("Label") );
++const static rtl::OUString TOGGLE( RTL_CONSTASCII_USTRINGPARAM("Toggle") );
++const static rtl::OUString STATE( RTL_CONSTASCII_USTRINGPARAM("State") );
++ScVbaToggleButton::ScVbaToggleButton( const css::uno::Reference< oo::vba::XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< uno::XInterface >& xControl, oo::AbstractGeometryAttributes* pGeomHelper ) : ToggleButtonImpl_BASE( xParent, xContext, xControl, pGeomHelper )
++{
++    OSL_TRACE("ScVbaToggleButton(ctor)");
++    m_xProps->setPropertyValue( TOGGLE, uno::makeAny( sal_True ) );
++}
++
++ScVbaToggleButton::~ScVbaToggleButton()
++{
++    OSL_TRACE("~ScVbaToggleButton(dtor)");
++}
++
++// Attributes
++rtl::OUString SAL_CALL 
++ScVbaToggleButton::getCaption() throw (css::uno::RuntimeException)
++{
++    rtl::OUString Label;
++    m_xProps->getPropertyValue( LABEL ) >>= Label;
++    return Label;
++}
++
++void SAL_CALL 
++ScVbaToggleButton::setCaption( const rtl::OUString& _caption ) throw (::com::sun::star::uno::RuntimeException)
++{
++    m_xProps->setPropertyValue( LABEL, uno::makeAny( _caption ) );
++}
++
++uno::Any SAL_CALL 
++ScVbaToggleButton::getValue() throw (uno::RuntimeException)
++{
++	sal_Int16 nState = 0;
++    	m_xProps->getPropertyValue( STATE ) >>= nState;
++ 	return uno::makeAny( nState ? sal_Int16( -1 ) : sal_Int16( 0 ) );
++}
++
++void SAL_CALL 
++ScVbaToggleButton::setValue( const uno::Any& _value ) throw (uno::RuntimeException)
++{
++	sal_Int16 nState = 0;
++	_value >>= nState;
++        OSL_TRACE( "nState - %d", nState );
++	nState = ( nState == -1 ) ?  1 : 0;
++        OSL_TRACE( "nState - %d", nState );
++	m_xProps->setPropertyValue( STATE, uno::makeAny(  nState ) );
++}
++
++rtl::OUString& 
++ScVbaToggleButton::getServiceImplName()
++{
++	static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("ScVbaToggleButton") );
++	return sImplName;
++}
++
++uno::Sequence< rtl::OUString > 
++ScVbaToggleButton::getServiceNames()
++{
++	static uno::Sequence< rtl::OUString > aServiceNames;
++	if ( aServiceNames.getLength() == 0 )
++	{
++		aServiceNames.realloc( 1 );
++		aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("org.openoffice.msforms.ToggleButton" ) );
++	}
++	return aServiceNames;
++}
++
+Index: sc/source/ui/vba/vbatogglebutton.hxx
+===================================================================
+RCS file: sc/source/ui/vba/vbatogglebutton.hxx
+diff -N sc/source/ui/vba/vbatogglebutton.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/vbatogglebutton.hxx	22 Apr 2008 19:53:16 -0000	1.1.2.1
+@@ -0,0 +1,63 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#ifndef SC_VBA_TOGGLEBUTTON_HXX
++#define SC_VBA_TOGGLEBUTTON_HXX
++#include <cppuhelper/implbase2.hxx>
++#include <org/openoffice/msforms/XToggleButton.hpp>
++
++#include "vbacontrol.hxx"
++#include "vbahelper.hxx"
++
++typedef cppu::ImplInheritanceHelper2< ScVbaControl, oo::msforms::XToggleButton, css::script::XDefaultProperty  > ToggleButtonImpl_BASE;
++
++class ScVbaToggleButton : public ToggleButtonImpl_BASE
++{
++	rtl::OUString msDftPropName;
++public:
++    ScVbaToggleButton( const css::uno::Reference< oo::vba::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::uno::XInterface >& xControl, oo::AbstractGeometryAttributes* pGeomHelper );
++    ~ScVbaToggleButton();
++   // Attributes
++    virtual css::uno::Any SAL_CALL getValue() throw (css::uno::RuntimeException);
++    virtual void SAL_CALL setValue( const css::uno::Any& _value ) throw (css::uno::RuntimeException);
++
++    virtual rtl::OUString SAL_CALL getCaption() throw (css::uno::RuntimeException);
++    virtual void SAL_CALL setCaption( const rtl::OUString& _caption ) throw (css::uno::RuntimeException);
++    //XHelperInterface
++    virtual rtl::OUString& getServiceImplName();
++    virtual css::uno::Sequence<rtl::OUString> getServiceNames();
++    // XDefaultProperty
++    rtl::OUString SAL_CALL getDefaultPropertyName(  ) throw (css::uno::RuntimeException) { return ::rtl::OUString::createFromAscii("Value"); }
++};
++#endif //SC_VBA_TOGGLEBUTTON_HXX
+Index: sc/source/ui/vba/vbauserform.cxx
+===================================================================
+RCS file: sc/source/ui/vba/vbauserform.cxx
+diff -N sc/source/ui/vba/vbauserform.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/vbauserform.cxx	22 Apr 2008 19:53:16 -0000	1.1.2.1
+@@ -0,0 +1,219 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#include "helperdecl.hxx"
++#include "vbauserform.hxx"
++#include <com/sun/star/awt/XControl.hpp>
++#include <com/sun/star/awt/XControlContainer.hpp>
++#include <com/sun/star/beans/PropertyConcept.hpp>
++#include <basic/sbx.hxx>
++#include <basic/sbstar.hxx>
++#include <basic/sbmeth.hxx>
++#include "unonames.hxx"
++
++using namespace ::org::openoffice;
++using namespace ::com::sun::star;
++
++// some little notes
++// XDialog implementation has the following interesting bits
++// a Controls property ( which is an array of the container controls )
++//   each item in the controls array is a XControl, where the model is 
++//   basically a property bag
++// additionally the XDialog instance has itself a model
++//     this model has a ControlModels ( array of models ) property
++//     the models in ControlModels can be accessed by name
++// also the XDialog is a XControl ( to access the model above
++
++ScVbaUserForm::ScVbaUserForm( uno::Sequence< uno::Any > const& aArgs, uno::Reference< uno::XComponentContext >const& xContext ) throw ( lang::IllegalArgumentException ) :  ScVbaUserForm_BASE( getXSomethingFromArgs< vba::XHelperInterface >( aArgs, 0 ), xContext, getXSomethingFromArgs< uno::XInterface >( aArgs, 1 ), static_cast< org::openoffice::AbstractGeometryAttributes* >(0) ), m_pDocShell( 0 ), mbDispose( true )
++{
++    m_xDialog.set( m_xControl, uno::UNO_QUERY_THROW );
++    uno::Reference< frame::XModel > xModel = getXSomethingFromArgs< frame::XModel >( aArgs, 2 );
++    uno::Reference< awt::XControl > xControl( m_xDialog, uno::UNO_QUERY_THROW );
++    m_pDocShell = getDocShell( xModel );
++    m_xProps.set( xControl->getModel(), uno::UNO_QUERY_THROW );
++    setGeometryHelper( new UserFormGeometryHelper( xContext, xControl ) );
++}
++
++ScVbaUserForm::~ScVbaUserForm()
++{
++}
++
++void SAL_CALL 
++ScVbaUserForm::Show(  ) throw (uno::RuntimeException)
++{
++	OSL_TRACE("ScVbaUserForm::Show(  )");
++	short aRet = 0;
++	if ( m_xDialog.is() )
++		aRet = m_xDialog->execute();
++	OSL_TRACE("ScVbaUserForm::Show() execute returned %d", aRet);
++	if ( mbDispose )
++	{
++		try
++		{
++			uno::Reference< lang::XComponent > xComp( m_xDialog, uno::UNO_QUERY_THROW );
++			m_xDialog = NULL;
++			xComp->dispose();
++			mbDispose = false; 
++		}
++		catch( uno::Exception& )
++		{
++		}
++	}
++}
++
++rtl::OUString SAL_CALL 
++ScVbaUserForm::getCaption() throw (::com::sun::star::uno::RuntimeException)
++{
++    rtl::OUString sCaption;
++    m_xProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Title") ) ) >>= sCaption;
++    return sCaption;
++}
++void
++ScVbaUserForm::setCaption( const ::rtl::OUString& _caption ) throw (::com::sun::star::uno::RuntimeException)
++{
++    m_xProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Title") ), uno::makeAny( _caption ) );
++}
++
++void SAL_CALL 
++ScVbaUserForm::Hide(  ) throw (uno::RuntimeException)
++{
++	mbDispose = false;  // hide not dispose
++	if ( m_xDialog.is() )
++		m_xDialog->endExecute();
++}
++
++void SAL_CALL 
++ScVbaUserForm::RePaint(  ) throw (uno::RuntimeException)
++{
++	// do nothing
++}
++
++void SAL_CALL 
++ScVbaUserForm::UnloadObject(  ) throw (uno::RuntimeException)
++{
++	mbDispose = true;
++	if ( m_xDialog.is() )
++		m_xDialog->endExecute();
++}
++
++rtl::OUString& 
++ScVbaUserForm::getServiceImplName()
++{
++	static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("ScVbaUserForm") );
++	return sImplName;
++}
++
++uno::Sequence< rtl::OUString > 
++ScVbaUserForm::getServiceNames()
++{
++	static uno::Sequence< rtl::OUString > aServiceNames;
++	if ( aServiceNames.getLength() == 0 )
++	{
++		aServiceNames.realloc( 1 );
++		aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("org.openoffice.excel.UserForm" ) );
++	}
++	return aServiceNames;
++}
++
++uno::Reference< beans::XIntrospectionAccess > SAL_CALL 
++ScVbaUserForm::getIntrospection(  ) throw (uno::RuntimeException)
++{
++	return uno::Reference< beans::XIntrospectionAccess >();
++}
++
++uno::Any SAL_CALL 
++ScVbaUserForm::invoke( const ::rtl::OUString& /*aFunctionName*/, const uno::Sequence< uno::Any >& /*aParams*/, uno::Sequence< ::sal_Int16 >& /*aOutParamIndex*/, uno::Sequence< uno::Any >& /*aOutParam*/ ) throw (lang::IllegalArgumentException, script::CannotConvertException, reflection::InvocationTargetException, uno::RuntimeException)
++{
++	throw uno::RuntimeException(); // unsupported operation
++}
++
++void SAL_CALL 
++ScVbaUserForm::setValue( const ::rtl::OUString& aPropertyName, const uno::Any& aValue ) throw (beans::UnknownPropertyException, script::CannotConvertException, reflection::InvocationTargetException, uno::RuntimeException)
++{
++	uno::Any aObject = getValue( aPropertyName );
++	// The Object *must* support XDefaultProperty here because getValue will
++	// only return properties that are Objects ( e.g. controls )
++	// e.g. Userform1.aControl = something
++	// 'aControl' has to support XDefaultProperty to make sense here
++	uno::Reference< script::XDefaultProperty > xDfltProp( aObject, uno::UNO_QUERY_THROW );
++	rtl::OUString aDfltPropName = xDfltProp->getDefaultPropertyName();
++	uno::Reference< beans::XIntrospectionAccess > xUnoAccess( getIntrospectionAccess( aObject ) );
++	uno::Reference< beans::XPropertySet > xPropSet( xUnoAccess->queryAdapter( ::getCppuType( (const uno::Reference< beans::XPropertySet > *)0 ) ), uno::UNO_QUERY_THROW );
++	xPropSet->setPropertyValue( aDfltPropName, aValue );
++}
++
++uno::Any SAL_CALL 
++ScVbaUserForm::getValue( const ::rtl::OUString& aPropertyName ) throw (beans::UnknownPropertyException, uno::RuntimeException)
++{
++	uno::Reference< awt::XControl > xDialogControl( m_xDialog, uno::UNO_QUERY_THROW );
++	uno::Reference< awt::XControlContainer > xContainer( m_xDialog, uno::UNO_QUERY_THROW );
++	uno::Reference< awt::XControl > xControl = xContainer->getControl( aPropertyName );
++	ScVbaControlFactory aFac( mxContext, xControl );
++        uno::Reference< msforms::XControl > xVBAControl( aFac.createControl( xDialogControl->getModel() ) );
++        ScVbaControl* pControl  = dynamic_cast< ScVbaControl* >( xVBAControl.get() );
++        pControl->setGeometryHelper( new UserFormGeometryHelper( mxContext, xControl ) );
++	return uno::makeAny( xVBAControl );
++}
++
++::sal_Bool SAL_CALL 
++ScVbaUserForm::hasMethod( const ::rtl::OUString& /*aName*/ ) throw (uno::RuntimeException)
++{
++	return sal_False;
++}
++
++::sal_Bool SAL_CALL 
++ScVbaUserForm::hasProperty( const ::rtl::OUString& aName ) throw (uno::RuntimeException)
++{
++	uno::Reference< awt::XControl > xControl( m_xDialog, uno::UNO_QUERY );
++	OSL_TRACE("ScVbaUserForm::hasProperty(%s) %d", rtl::OUStringToOString( aName, RTL_TEXTENCODING_UTF8 ).getStr(), xControl.is() );
++	if ( xControl.is() )
++	{
++		uno::Reference< container::XNameAccess > xNameAccess( xControl->getModel(), uno::UNO_QUERY_THROW );	
++		sal_Bool bRes =  xNameAccess->hasByName( aName );
++	OSL_TRACE("ScVbaUserForm::hasProperty(%s) %d ---> %d", rtl::OUStringToOString( aName, RTL_TEXTENCODING_UTF8 ).getStr(), xControl.is(), bRes );
++		return bRes;
++	}
++	return sal_False;
++}
++
++namespace userform
++{
++namespace sdecl = comphelper::service_decl;
++sdecl::vba_service_class_<ScVbaUserForm, sdecl::with_args<true> > serviceImpl;
++extern sdecl::ServiceDecl const serviceDecl(
++    serviceImpl,
++    "ScVbaUserForm",
++    "org.openoffice.excel.UserForm" );
++}
++
+Index: sc/source/ui/vba/vbauserform.hxx
+===================================================================
+RCS file: sc/source/ui/vba/vbauserform.hxx
+diff -N sc/source/ui/vba/vbauserform.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/vbauserform.hxx	22 Apr 2008 19:53:17 -0000	1.1.2.1
+@@ -0,0 +1,77 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#ifndef SC_VBA_USERFORM_HXX
++#define SC_VBA_USERFORM_HXX
++
++#include <cppuhelper/implbase1.hxx>
++#include <org/openoffice/msforms/XUserForm.hpp>
++#include <com/sun/star/awt/XDialog.hpp>
++
++#include "vbahelperinterface.hxx"
++#include "vbacontrol.hxx"
++
++//typedef InheritedHelperInterfaceImpl1< oo::msforms::XUserForm > ScVbaUserForm_BASE;
++typedef cppu::ImplInheritanceHelper1< ScVbaControl, oo::msforms::XUserForm > ScVbaUserForm_BASE;
++
++class ScVbaUserForm : public ScVbaUserForm_BASE
++{
++private:
++    css::uno::Reference< css::awt::XDialog > m_xDialog;
++    ScDocShell* m_pDocShell;
++    bool mbDispose;
++protected:
++public:
++    ScVbaUserForm( css::uno::Sequence< css::uno::Any > const& aArgs, css::uno::Reference< css::uno::XComponentContext >const& xContext ) throw ( css::lang::IllegalArgumentException );
++    virtual ~ScVbaUserForm();
++    // XUserForm
++    virtual void SAL_CALL RePaint(  ) throw (css::uno::RuntimeException);
++    virtual void SAL_CALL Show(  ) throw (css::uno::RuntimeException);
++    // XIntrospection
++    virtual css::uno::Reference< css::beans::XIntrospectionAccess > SAL_CALL getIntrospection(  ) throw (css::uno::RuntimeException);
++    virtual css::uno::Any SAL_CALL invoke( const ::rtl::OUString& aFunctionName, const css::uno::Sequence< css::uno::Any >& aParams, css::uno::Sequence< ::sal_Int16 >& aOutParamIndex, css::uno::Sequence< css::uno::Any >& aOutParam ) throw (css::lang::IllegalArgumentException, css::script::CannotConvertException, css::reflection::InvocationTargetException, css::uno::RuntimeException);
++    virtual void SAL_CALL setValue( const ::rtl::OUString& aPropertyName, const css::uno::Any& aValue ) throw (css::beans::UnknownPropertyException, css::script::CannotConvertException, css::reflection::InvocationTargetException, css::uno::RuntimeException);
++    virtual css::uno::Any SAL_CALL getValue( const ::rtl::OUString& aPropertyName ) throw (css::beans::UnknownPropertyException, css::uno::RuntimeException);
++    virtual ::sal_Bool SAL_CALL hasMethod( const ::rtl::OUString& aName ) throw (css::uno::RuntimeException);
++    virtual ::sal_Bool SAL_CALL hasProperty( const ::rtl::OUString& aName ) throw (css::uno::RuntimeException);
++    virtual ::rtl::OUString SAL_CALL getCaption() throw (::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setCaption( const ::rtl::OUString& _caption ) throw (::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL Hide(  ) throw (css::uno::RuntimeException);
++    virtual void SAL_CALL UnloadObject(  ) throw (css::uno::RuntimeException);
++
++    //XHelperInterface
++    virtual rtl::OUString& getServiceImplName();
++    virtual css::uno::Sequence<rtl::OUString> getServiceNames();
++};
++#endif
+Index: sc/source/ui/vba/vbawindow.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbawindow.cxx,v
+retrieving revision 1.4
+retrieving revision 1.3.42.2
+diff -u -p -u -p -b -w -B -r1.4 -r1.3.42.2
+--- sc/source/ui/vba/vbawindow.cxx	29 Jan 2008 08:02:52 -0000	1.4
++++ sc/source/ui/vba/vbawindow.cxx	13 Mar 2008 18:08:58 -0000	1.3.42.2
+@@ -42,7 +42,11 @@
+ #include <com/sun/star/view/DocumentZoomType.hpp>
+ #include <com/sun/star/table/CellRangeAddress.hpp>
+ #include <org/openoffice/excel/XlWindowState.hpp>
++#include <org/openoffice/excel/XlWindowView.hpp>
+ #include <org/openoffice/excel/Constants.hpp>
++#include <com/sun/star/awt/XWindow.hpp>
++#include <com/sun/star/awt/XWindow2.hpp>
++#include <com/sun/star/awt/PosSize.hpp>
+ 
+ #include <docsh.hxx>
+ #include <tabvwsh.hxx>
+@@ -446,8 +450,8 @@ ScVbaWindow::Close( const uno::Any& Save
+ 	workbook.Close(SaveChanges, FileName, RouteWorkBook );
+ }
+ 
+-uno::Reference< excel::XPane > 
+-ScVbaWindow::ActivePane() 
++uno::Reference< excel::XPane > SAL_CALL
++ScVbaWindow::ActivePane() throw (script::BasicErrorException, uno::RuntimeException) 
+ { 
+ 	return new ScVbaPane( mxContext, m_xViewPane ); 
+ }
+@@ -634,7 +638,8 @@ ScVbaWindow::setSplitColumn( sal_Int32 _
+ 	if( getSplitColumn() != _splitcolumn )
+ 	{
+ 		sal_Bool bFrozen = getFreezePanes();
+-		m_xViewFreezable->freezeAtPosition( _splitcolumn, 0 );
++		sal_Int32 nRow = getSplitRow();
++		m_xViewFreezable->freezeAtPosition( _splitcolumn, nRow );
+ 		SplitAtDefinedPosition( !bFrozen );
+ 	}
+ }
+@@ -666,7 +671,8 @@ ScVbaWindow::setSplitRow( sal_Int32 _spl
+ 	if( getSplitRow() != _splitrow )
+ 	{
+ 		sal_Bool bFrozen = getFreezePanes();
+-		m_xViewFreezable->freezeAtPosition( 0, _splitrow );
++		sal_Int32 nColumn = getSplitColumn();
++		m_xViewFreezable->freezeAtPosition( nColumn , _splitrow );
+ 		SplitAtDefinedPosition( !bFrozen );
+ 	}
+ }
+@@ -741,6 +747,184 @@ ScVbaWindow::setZoom( const uno::Any& _z
+ 	}			
+ }
+ 
++uno::Reference< excel::XWorksheet > SAL_CALL 
++ScVbaWindow::ActiveSheet(  ) throw (script::BasicErrorException, uno::RuntimeException)
++{
++	return ScVbaGlobals::getGlobalsImpl(mxContext)->getApplication()->getActiveSheet();
++}
++
++uno::Any SAL_CALL
++ScVbaWindow::getView() throw (uno::RuntimeException)
++{
++	// not supported now	
++	sal_Int32 nWindowView = excel::XlWindowView::xlNormalView;	
++	return uno::makeAny( nWindowView );	
++}
++
++void SAL_CALL
++ScVbaWindow::setView( const uno::Any& _view) throw (uno::RuntimeException)
++{
++	sal_Int32 nWindowView = excel::XlWindowView::xlNormalView;
++	_view >>= nWindowView;
++	USHORT nSlot = FID_NORMALVIEWMODE;
++	switch ( nWindowView )
++	{
++		case excel::XlWindowView::xlNormalView:
++			nSlot = FID_NORMALVIEWMODE;
++			break;
++		case excel::XlWindowView::xlPageBreakPreview:
++			nSlot = FID_PAGEBREAKMODE;
++			break;
++		default:
++			DebugHelper::exception(SbERR_BAD_PARAMETER, rtl::OUString() );
++	}
++	dispatchExecute( m_xModel, nSlot );
++}
++
++sal_Bool SAL_CALL
++ScVbaWindow::getVisible() throw (uno::RuntimeException)
++{
++	sal_Bool bVisible = sal_True;	
++	uno::Reference< frame::XController > xController( m_xModel->getCurrentController(), uno::UNO_QUERY_THROW );
++	uno::Reference< css::awt::XWindow > xWindow (xController->getFrame()->getContainerWindow(), uno::UNO_QUERY_THROW );
++	uno::Reference< css::awt::XWindow2 > xWindow2 (xWindow, uno::UNO_QUERY_THROW );
++	if( xWindow2.is() )
++	{
++		bVisible = xWindow2->isVisible();	
++	}
++	return bVisible;
++}
++
++void SAL_CALL
++ScVbaWindow::setVisible(sal_Bool _visible) throw (uno::RuntimeException)
++{
++	uno::Reference< frame::XController > xController( m_xModel->getCurrentController(), uno::UNO_QUERY_THROW );
++	uno::Reference< css::awt::XWindow > xWindow (xController->getFrame()->getContainerWindow(), uno::UNO_QUERY_THROW );
++	if( xWindow.is() )
++	{
++		xWindow->setVisible( _visible );	
++	}
++}
++
++css::awt::Rectangle getPosSize( const uno::Reference< frame::XModel >& xModel )
++{
++	css::awt::Rectangle aRect;
++	uno::Reference< frame::XController > xController( xModel->getCurrentController(), uno::UNO_QUERY_THROW );
++	uno::Reference< css::awt::XWindow > xWindow (xController->getFrame()->getContainerWindow(), uno::UNO_QUERY_THROW );
++	if( xWindow.is() )
++	{
++		aRect = xWindow->getPosSize();
++	}
++	return aRect;
++}
++
++void setPosSize( const uno::Reference< frame::XModel >& xModel, sal_Int32 nValue, USHORT nFlag )
++{
++	uno::Reference< frame::XController > xController( xModel->getCurrentController(), uno::UNO_QUERY_THROW );
++	uno::Reference< css::awt::XWindow > xWindow (xController->getFrame()->getContainerWindow(), uno::UNO_QUERY_THROW );
++	if( xWindow.is() )
++	{
++		css::awt::Rectangle aRect = xWindow->getPosSize();
++		switch( nFlag )
++		{
++			case css::awt::PosSize::X:
++				xWindow->setPosSize( nValue, aRect.Y,	0, 0, css::awt::PosSize::X );
++				break;
++			case css::awt::PosSize::Y:
++				xWindow->setPosSize( aRect.X, nValue,	0, 0, css::awt::PosSize::Y );
++				break;
++			case css::awt::PosSize::WIDTH:
++				xWindow->setPosSize( 0, 0,	nValue, aRect.Height, css::awt::PosSize::WIDTH );
++				break;
++			case css::awt::PosSize::HEIGHT:
++				xWindow->setPosSize( 0, 0,	aRect.Width, nValue, css::awt::PosSize::HEIGHT );
++				break;
++			default:
++				break;
++		}
++	}
++}	
++
++sal_Int32 SAL_CALL 
++ScVbaWindow::getHeight() throw (uno::RuntimeException)
++{
++	css::awt::Rectangle aRect = getPosSize(m_xModel);
++	return aRect.Height;
++}
++
++void SAL_CALL 
++ScVbaWindow::setHeight( sal_Int32 _height ) throw (uno::RuntimeException)
++{
++	setPosSize(m_xModel, _height, css::awt::PosSize::HEIGHT);
++}
++
++sal_Int32 SAL_CALL 
++ScVbaWindow::getLeft() throw (uno::RuntimeException)
++{
++	css::awt::Rectangle aRect = getPosSize(m_xModel);
++	return aRect.X;
++}
++
++void SAL_CALL 
++ScVbaWindow::setLeft( sal_Int32 _left ) throw (uno::RuntimeException)
++{
++	setPosSize(m_xModel, _left, css::awt::PosSize::X);
++}
++sal_Int32 SAL_CALL 
++ScVbaWindow::getTop() throw (uno::RuntimeException)
++{
++	css::awt::Rectangle aRect = getPosSize(m_xModel);
++	return aRect.Y;
++}
++
++void SAL_CALL 
++ScVbaWindow::setTop( sal_Int32 _top ) throw (uno::RuntimeException)
++{
++	setPosSize(m_xModel, _top, css::awt::PosSize::Y);
++}
++sal_Int32 SAL_CALL 
++ScVbaWindow::getWidth() throw (uno::RuntimeException)
++{
++	css::awt::Rectangle aRect = getPosSize(m_xModel);
++	return aRect.Width;
++}
++
++void SAL_CALL 
++ScVbaWindow::setWidth( sal_Int32 _width ) throw (uno::RuntimeException)
++{
++	setPosSize(m_xModel, _width, css::awt::PosSize::WIDTH);
++}
++
++sal_Int32 SAL_CALL 
++ScVbaWindow::PointsToScreenPixelsX(sal_Int32 _points) throw (css::script::BasicErrorException, css::uno::RuntimeException)
++{
++	sal_Int32 nHundredthsofOneMillimeters = Millimeter::getInHundredthsOfOneMillimeter( _points );
++	double fConvertFactor = (m_xDevice->getInfo().PixelPerMeterX/100000);
++	return static_cast<sal_Int32>(fConvertFactor * nHundredthsofOneMillimeters );
++}
++
++sal_Int32 SAL_CALL 
++ScVbaWindow::PointsToScreenPixelsY(sal_Int32 _points) throw (css::script::BasicErrorException, css::uno::RuntimeException)
++{
++	sal_Int32 nHundredthsofOneMillimeters = Millimeter::getInHundredthsOfOneMillimeter( _points );
++	double fConvertFactor = (m_xDevice->getInfo().PixelPerMeterY/100000);
++	return static_cast<sal_Int32>(fConvertFactor * nHundredthsofOneMillimeters );
++}
++
++void SAL_CALL 
++ScVbaWindow::PrintOut( const css::uno::Any& From, const css::uno::Any&To, const css::uno::Any& Copies, const css::uno::Any& Preview, const css::uno::Any& ActivePrinter, const css::uno::Any& PrintToFile, const css::uno::Any& Collate, const css::uno::Any& PrToFileName ) throw (css::script::BasicErrorException, css::uno::RuntimeException)
++{
++	// need test, print current active sheet	
++	PrintOutHelper( From, To, Copies, Preview, ActivePrinter, PrintToFile, Collate, PrToFileName, m_xModel, sal_True );
++}
++
++void SAL_CALL 
++ScVbaWindow::PrintPreview( const css::uno::Any& EnableChanges ) throw (css::script::BasicErrorException, css::uno::RuntimeException)
++{
++	// need test, print preview current active sheet	
++	PrintPreviewHelper( EnableChanges, m_xModel );	
++}
++
+ rtl::OUString& 
+ ScVbaWindow::getServiceImplName()
+ {
+Index: sc/source/ui/vba/vbawindow.hxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbawindow.hxx,v
+retrieving revision 1.3
+retrieving revision 1.3.42.1
+diff -u -p -u -p -b -w -B -r1.3 -r1.3.42.1
+--- sc/source/ui/vba/vbawindow.hxx	7 Dec 2007 11:05:26 -0000	1.3
++++ sc/source/ui/vba/vbawindow.hxx	18 Jan 2008 16:51:38 -0000	1.3.42.1
+@@ -64,8 +64,11 @@ public:	
+ 	void  Scroll( const css::uno::Any& Down, const css::uno::Any& Up, const css::uno::Any& ToRight, const css::uno::Any& ToLeft, bool bLargeScroll = false ) throw (css::uno::RuntimeException);	
+ public:
+ 	ScVbaWindow( const css::uno::Reference< oo::vba::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::frame::XModel >& xModel );
+- 	css::uno::Reference< oo::excel::XPane > ActivePane();
++
+ 	// XWindow
++	virtual css::uno::Reference< oo::excel::XRange > SAL_CALL ActiveCell(  ) throw (css::script::BasicErrorException, css::uno::RuntimeException); 
++ 	virtual css::uno::Reference< oo::excel::XPane > SAL_CALL ActivePane() throw (css::script::BasicErrorException, css::uno::RuntimeException);
++	virtual css::uno::Reference< oo::excel::XWorksheet > SAL_CALL ActiveSheet(  ) throw (css::script::BasicErrorException, css::uno::RuntimeException); 
+ 	virtual void SAL_CALL setCaption( const css::uno::Any& _caption ) throw (css::uno::RuntimeException);
+ 	virtual css::uno::Any SAL_CALL getCaption() throw (css::uno::RuntimeException);
+ 	virtual ::sal_Bool SAL_CALL getDisplayGridlines() throw (css::uno::RuntimeException);
+@@ -82,6 +85,10 @@ public:
+ 	virtual void SAL_CALL setDisplayWorkbookTabs( ::sal_Bool _bDisplayWorkbookTabs ) throw (css::uno::RuntimeException);
+ 	virtual ::sal_Bool SAL_CALL getFreezePanes() throw (css::uno::RuntimeException);
+ 	virtual void SAL_CALL setFreezePanes( ::sal_Bool _bFreezePanes ) throw (css::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getHeight() throw (css::uno::RuntimeException) ;
++    virtual void SAL_CALL setHeight( sal_Int32 _height ) throw (css::uno::RuntimeException) ;
++    virtual sal_Int32 SAL_CALL getLeft() throw (css::uno::RuntimeException) ;
++    virtual void SAL_CALL setLeft( sal_Int32 _left ) throw (css::uno::RuntimeException) ;
+ 	virtual ::sal_Bool SAL_CALL getSplit() throw (css::uno::RuntimeException);
+ 	virtual void SAL_CALL setSplit( ::sal_Bool _bSplit ) throw (css::uno::RuntimeException);
+     virtual sal_Int32 SAL_CALL getSplitColumn() throw (css::uno::RuntimeException) ;
+@@ -96,6 +103,14 @@ public:
+     virtual void SAL_CALL setScrollRow( const css::uno::Any& _scrollrow ) throw (css::uno::RuntimeException) ;
+     virtual css::uno::Any SAL_CALL getScrollColumn() throw (css::uno::RuntimeException) ;
+     virtual void SAL_CALL setScrollColumn( const css::uno::Any& _scrollcolumn ) throw (css::uno::RuntimeException) ;
++    virtual sal_Int32 SAL_CALL getTop() throw (css::uno::RuntimeException) ;
++    virtual void SAL_CALL setTop( sal_Int32 _top ) throw (css::uno::RuntimeException) ;
++    virtual css::uno::Any SAL_CALL getView() throw (css::uno::RuntimeException);
++    virtual void SAL_CALL setView( const css::uno::Any& _view ) throw (css::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL getVisible() throw (css::uno::RuntimeException);
++    virtual void SAL_CALL setVisible( sal_Bool _visible ) throw (css::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getWidth() throw (css::uno::RuntimeException) ;
++    virtual void SAL_CALL setWidth( sal_Int32 _width ) throw (css::uno::RuntimeException) ;
+     virtual css::uno::Any SAL_CALL getWindowState() throw (css::uno::RuntimeException);
+     virtual void SAL_CALL setWindowState( const css::uno::Any& _windowstate ) throw (css::uno::RuntimeException);
+     virtual css::uno::Any SAL_CALL getZoom() throw (css::uno::RuntimeException);
+@@ -108,8 +123,11 @@ public:
+ 	virtual void SAL_CALL ScrollWorkbookTabs( const css::uno::Any& Sheets, const css::uno::Any& Position ) throw (css::uno::RuntimeException);
+ 	virtual void SAL_CALL Activate(  ) throw (css::uno::RuntimeException);
+ 	virtual void SAL_CALL Close( const css::uno::Any& SaveChanges, const css::uno::Any& FileName, const css::uno::Any& RouteWorkBook ) throw (css::uno::RuntimeException);
+-	 virtual css::uno::Reference< oo::excel::XRange > SAL_CALL ActiveCell(  ) throw (css::script::BasicErrorException, css::uno::RuntimeException); 
+ 	 virtual css::uno::Any SAL_CALL Selection(  ) throw (css::script::BasicErrorException, css::uno::RuntimeException); 
++	 virtual sal_Int32 SAL_CALL PointsToScreenPixelsX(sal_Int32 _points) throw (css::script::BasicErrorException, css::uno::RuntimeException);
++	 virtual sal_Int32 SAL_CALL PointsToScreenPixelsY(sal_Int32 _points) throw (css::script::BasicErrorException, css::uno::RuntimeException);
++	 virtual void SAL_CALL PrintOut( const css::uno::Any& From, const css::uno::Any&To, const css::uno::Any& Copies, const css::uno::Any& Preview, const css::uno::Any& ActivePrinter, const css::uno::Any& PrintToFile, const css::uno::Any& Collate, const css::uno::Any& PrToFileName ) throw (css::script::BasicErrorException, css::uno::RuntimeException);
++	 virtual void SAL_CALL PrintPreview( const css::uno::Any& EnableChanges ) throw (css::script::BasicErrorException, css::uno::RuntimeException);
+ 	// XHelperInterface
+ 	virtual rtl::OUString& getServiceImplName();
+ 	virtual css::uno::Sequence<rtl::OUString> getServiceNames();
+Index: sc/source/ui/vba/vbaworkbook.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbaworkbook.cxx,v
+retrieving revision 1.4
+retrieving revision 1.4.42.1
+diff -u -p -u -p -b -w -B -r1.4 -r1.4.42.1
+--- sc/source/ui/vba/vbaworkbook.cxx	10 Dec 2007 09:31:05 -0000	1.4
++++ sc/source/ui/vba/vbaworkbook.cxx	18 Jan 2008 16:51:38 -0000	1.4.42.1
+@@ -433,14 +433,18 @@ ScVbaWorkbook::Styles( const::uno::Any& 
+ 
+ // Amelia Wang
+ uno::Any SAL_CALL
+-ScVbaWorkbook::Names( ) throw (uno::RuntimeException)
++ScVbaWorkbook::Names( const css::uno::Any& aIndex ) throw (uno::RuntimeException)
+ {
+ 	uno::Reference< frame::XModel > xModel( getModel() );
+ 	uno::Reference< beans::XPropertySet > xProps( xModel, uno::UNO_QUERY_THROW );
+ 	uno::Reference< sheet::XNamedRanges > xNamedRanges(  xProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("NamedRanges") ) ), uno::UNO_QUERY_THROW );
+ 	uno::Reference< vba::XCollection > xNames( new ScVbaNames( this , mxContext , xNamedRanges , xModel ));
++    if (  aIndex.getValueTypeClass() == uno::TypeClass_VOID )
++    {
+ 	return uno::Any( xNames );
+ }
++    return uno::Any( xNames->Item( aIndex, uno::Any() ) );
++}
+ 
+ rtl::OUString& 
+ ScVbaWorkbook::getServiceImplName()
+Index: sc/source/ui/vba/vbaworkbook.hxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbaworkbook.hxx,v
+retrieving revision 1.3
+retrieving revision 1.3.42.1
+diff -u -p -u -p -b -w -B -r1.3 -r1.3.42.1
+--- sc/source/ui/vba/vbaworkbook.hxx	7 Dec 2007 11:06:17 -0000	1.3
++++ sc/source/ui/vba/vbaworkbook.hxx	18 Jan 2008 16:51:38 -0000	1.3.42.1
+@@ -80,7 +80,7 @@ public:
+ 	virtual void SAL_CALL Save() throw (css::uno::RuntimeException);
+ 	virtual void SAL_CALL Activate() throw (css::uno::RuntimeException);
+     // Amelia Wang
+-    virtual css::uno::Any SAL_CALL Names( ) throw (css::uno::RuntimeException);
++    virtual css::uno::Any SAL_CALL Names( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException);
+ 
+ 	virtual css::uno::Any SAL_CALL Styles( const css::uno::Any& Item ) throw (css::uno::RuntimeException);
+ 	virtual void SAL_CALL ResetColors(  ) throw (css::script::BasicErrorException, css::uno::RuntimeException);
+Index: sc/source/ui/vba/vbaworksheet.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbaworksheet.cxx,v
+<<<<<<< .mine
+retrieving revision 1.4
+retrieving revision 1.3.42.3
+diff -u -p -u -p -b -w -B -r1.4 -r1.3.42.3
+--- sc/source/ui/vba/vbaworksheet.cxx	29 Jan 2008 15:47:58 -0000	1.4
++++ sc/source/ui/vba/vbaworksheet.cxx	22 Apr 2008 19:53:17 -0000	1.3.42.3
+@@ -61,6 +61,7 @@
+ #include <com/sun/star/drawing/XDrawPageSupplier.hpp>
+ #include <com/sun/star/drawing/XControlShape.hpp>
+ #include <com/sun/star/form/FormComponentType.hpp>
++#include <com/sun/star/form/XFormsSupplier.hpp>
+ 
+ #include <comphelper/processfactory.hxx>
+ 
+@@ -421,6 +422,7 @@ ScVbaWorksheet::Delete() throw (uno::Run
+ 		uno::Reference<sheet::XSpreadsheets> xSheets = xSpreadDoc->getSheets();
+ 		uno::Reference<container::XNameContainer> xNameContainer(xSheets,uno::UNO_QUERY_THROW);
+ 		xNameContainer->removeByName(aSheetName);
++        mxSheet.clear();
+ 	}
+ }
+ 
+@@ -661,29 +663,10 @@ ScVbaWorksheet::setValue( const ::rtl::O
+ uno::Any SAL_CALL 
+ ScVbaWorksheet::getValue( const ::rtl::OUString& aPropertyName ) throw (beans::UnknownPropertyException, uno::RuntimeException)
+ {
+-/*	uno::Any aProp = getControl( aPropertyName );
+-
+-	if ( !aProp.hasValue() )
+-		throw beans::UnknownPropertyException(); // unsupported operation
+-	// #TODO we need a factory here when we support
+-	// more control types
+-	sal_Int32 nClassId = -1;	
+-	uno::Reference< beans::XPropertySet > xProps( aProp, uno::UNO_QUERY_THROW );	
+-	const static rtl::OUString sClassId( RTL_CONSTASCII_USTRINGPARAM("ClassId") );
+-	xProps->getPropertyValue( sClassId ) >>= nClassId;
+-    ScVbaControlFactory controlFactory( m_xContext, xProps, xControlShape );
+-    uno::Reference< vba::XControl > xControl( controlFactory.createControl( nClassId ) );
+-	if ( nClassId == form::FormComponentType::COMBOBOX )
+-	{
+-		uno::Reference< msforms::XComboBox > xCbx( new ScVbaComboBox( m_xContext, xProps ) ); 
+-		return uno::makeAny( xCbx );
+-	}
+-*/
+     uno::Reference< drawing::XControlShape > xControlShape( getControlShape( aPropertyName ), uno::UNO_QUERY_THROW );
+     ScVbaControlFactory controlFactory( mxContext, xControlShape );
+-    uno::Reference< msforms::XControl > xControl( controlFactory.createControl() );
++    uno::Reference< msforms::XControl > xControl( controlFactory.createControl( getModel() ) );
+ 	return uno::makeAny( xControl );
+-//	return aProp;
+ }
+ 
+ ::sal_Bool SAL_CALL 
+@@ -691,77 +674,59 @@ ScVbaWorksheet::hasMethod( const ::rtl::
+ {
+ 	return sal_False;
+ }
+-::sal_Bool SAL_CALL 
+-ScVbaWorksheet::hasProperty( const ::rtl::OUString& aName ) throw (uno::RuntimeException)
++
++uno::Reference< container::XNameAccess > 
++ScVbaWorksheet::getFormControls()
+ {
++	uno::Reference< container::XNameAccess > xFormControls;
+ 	try
+ 	{
+-		if ( getControl( aName ).hasValue() )
+-			return sal_True;
++		uno::Reference< sheet::XSpreadsheet > xSpreadsheet( getSheet(), uno::UNO_QUERY_THROW );
++		uno::Reference< drawing::XDrawPageSupplier > xDrawPageSupplier( xSpreadsheet, uno::UNO_QUERY_THROW );
++		uno::Reference< form::XFormsSupplier >  xFormSupplier( xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY_THROW );
++    		uno::Reference< container::XIndexAccess > xIndexAccess( xFormSupplier->getForms(), uno::UNO_QUERY_THROW );
++		// get the www-standard container ( maybe we should access the 
++		// 'www-standard' by name rather than index, this seems an
++		// implementation detail
++		xFormControls.set( xIndexAccess->getByIndex(0), uno::UNO_QUERY_THROW );
++		
+ 	}
+ 	catch( uno::Exception& )
+ 	{
+ 	}
+-	return sal_False;
+-}
+-uno::Any 
+-ScVbaWorksheet::getControl( const ::rtl::OUString& sName )
+-{
+-	uno::Reference< sheet::XScenarioEnhanced > xIf( getSheet(), uno::UNO_QUERY_THROW );
+-	ScTableSheetObj* pTab= static_cast< ScTableSheetObj* >( xIf.get() );
+-	ScDocShell* pShell = NULL;
+-	if ( pTab ) 
+-		pShell = pTab->GetDocShell();
+-	if ( pShell )
+-	{
+-		ScDrawLayer* pDrawLayer = pShell->MakeDrawLayer();
+-		SCTAB nTab = 0;
+-		// make GetTab_Impl() public or this class a friend
+-		const ScRangeList& rRanges = pTab->GetRangeList();
+-		const ScRange* pFirst = rRanges.GetObject(0);
+-		if (pFirst)
+-			nTab = pFirst->aStart.Tab();
++	return xFormControls;
+ 
+-		SdrPage* pPage = pDrawLayer->GetPage(static_cast<sal_uInt16>(nTab));
+-		if ( pPage )
+-		{
+-			ULONG nCount = pPage->GetObjCount(); 
+-			for ( ULONG index=0; index<nCount; ++index )
+-			{
+-				SdrObject* pObj = pPage->GetObj( index );
+-				if ( pObj )
+-				{
+-					
+-					SdrUnoObj* pUnoObj = PTR_CAST(SdrUnoObj, pObj);
+-					if ( pUnoObj )
+-					{
+-						uno::Reference< container::XNamed > xNamed( pUnoObj->GetUnoControlModel(), uno::UNO_QUERY_THROW );
+-						if ( sName.equals( xNamed->getName() ) )
+-							return uno::makeAny( xNamed );
+-					}
+-				}
+ 			}
+-		}
+-	}
+-
+-	return uno::Any();
++::sal_Bool SAL_CALL 
++ScVbaWorksheet::hasProperty( const ::rtl::OUString& aName ) throw (uno::RuntimeException)
++{
++	uno::Reference< container::XNameAccess > xFormControls( getFormControls() );
++	if ( xFormControls.is() )
++		return xFormControls->hasByName( aName );
++	return sal_False;
+ }
+ 
+ uno::Any
+ ScVbaWorksheet::getControlShape( const ::rtl::OUString& sName )
+ {
+-	//uno::Reference< sheet::XScenarioEnhanced > xIf( getSheet(), uno::UNO_QUERY_THROW );
+-    uno::Reference< sheet::XSpreadsheet > xSpreadsheet( getSheet(), uno::UNO_QUERY_THROW );
+-    uno::Reference< drawing::XDrawPageSupplier > xDrawPageSupplier( xSpreadsheet, uno::UNO_QUERY_THROW );
+-    uno::Reference< drawing::XDrawPage > xDrawPage( xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY_THROW );
+-    uno::Reference< container::XIndexAccess > xIndexAccess( xDrawPage, uno::UNO_QUERY_THROW );
++    // ideally we would get an XControl object but it appears an XControl
++    // implementation only exists for a Control implementation optained from the 
++    // view ( e.g. in basic you would get this from
++    // thiscomponent.currentcontroller.getControl( controlModel ) )
++    // and the thing to realise is that it is only possible to get an XControl
++    // for a currently displayed control :-( often we would want to modify 
++    // a control not on the active sheet. But.. you can always access the 
++    // XControlShape from the DrawPage whether that is the active drawpage or not
++
++    uno::Reference< drawing::XDrawPageSupplier > xDrawPageSupplier( getSheet(), uno::UNO_QUERY_THROW );
++    uno::Reference< container::XIndexAccess > xIndexAccess( xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY_THROW );
++
+     sal_Int32 nCount = xIndexAccess->getCount();
+     for( int index = 0; index < nCount; index++ )
+     {
+         uno::Any aUnoObj =  xIndexAccess->getByIndex( index );
+         uno::Reference< drawing::XControlShape > xControlShape( aUnoObj, uno::UNO_QUERY_THROW );
+-        uno::Reference< awt::XControlModel > xControlModel( xControlShape->getControl() );
+-        uno::Reference< container::XNamed > xNamed( xControlModel, uno::UNO_QUERY_THROW );
++        uno::Reference< container::XNamed > xNamed( xControlShape->getControl(), uno::UNO_QUERY_THROW );
+         if( sName.equals( xNamed->getName() ))
+         {
+             return aUnoObj;
+@@ -861,6 +825,29 @@ ScVbaWorksheet::getSheetID() throw (uno:
+=======
+retrieving revision 1.4
+retrieving revision 1.3.42.2
+diff -u -p -u -p -b -w -B -r1.4 -r1.3.42.2
+--- sc/source/ui/vba/vbaworksheet.cxx	29 Jan 2008 15:47:58 -0000	1.4
++++ sc/source/ui/vba/vbaworksheet.cxx	13 Mar 2008 18:08:40 -0000	1.3.42.2
+@@ -861,6 +861,29 @@ ScVbaWorksheet::getSheetID() throw (uno:
+>>>>>>> .r12306
+ 	return xAddressable->getRangeAddress().Sheet;
+ }
+ 
++void SAL_CALL 
++ScVbaWorksheet::PrintOut( const uno::Any& From, const uno::Any& To, const uno::Any& Copies, const uno::Any& Preview, const uno::Any& ActivePrinter, const uno::Any& PrintToFile, const uno::Any& Collate, const uno::Any& PrToFileName, const uno::Any& IgnorePrintAreas ) throw (uno::RuntimeException)
++{
++	sal_Int32 nTo = 0;
++	sal_Int32 nFrom = 0;
++	sal_Int16 nCopies = 1;
++	sal_Bool bCollate = sal_False;
++	sal_Bool bSelection = sal_False;
++    sal_Bool bIgnorePrintAreas = sal_False;
++	From >>= nFrom;
++	To >>= nTo;
++	Copies >>= nCopies;
++    IgnorePrintAreas >>= bIgnorePrintAreas;
++	if ( nCopies > 1 ) // Collate only useful when more that 1 copy
++		Collate >>= bCollate;
++
++	if ( !( nFrom || nTo ) )
++		bSelection = sal_True;
++
++    uno::Reference< frame::XModel > xModel( getModel(), uno::UNO_QUERY_THROW );  
++	PrintOutHelper( From, To, Copies, Preview, ActivePrinter, PrintToFile, Collate, PrToFileName, xModel, bSelection );
++}
++
+ 
+ namespace worksheet
+ {
+Index: sc/source/ui/vba/vbaworksheet.hxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbaworksheet.hxx,v
+retrieving revision 1.3
+retrieving revision 1.3.42.2
+diff -u -p -u -p -b -w -B -r1.3 -r1.3.42.2
+--- sc/source/ui/vba/vbaworksheet.hxx	7 Dec 2007 11:07:07 -0000	1.3
++++ sc/source/ui/vba/vbaworksheet.hxx	22 Apr 2008 19:53:17 -0000	1.3.42.2
+@@ -62,7 +62,7 @@ class ScVbaWorksheet : public WorksheetI
+ 	css::uno::Reference< oo::excel::XWorksheet > getSheetAtOffset(SCTAB offset) throw (css::uno::RuntimeException);
+ 	css::uno::Reference< oo::excel::XRange > getSheetRange() throw (css::uno::RuntimeException);
+ 
+-	css::uno::Any getControl( const rtl::OUString& sName );
++	css::uno::Reference< css::container::XNameAccess > getFormControls();
+ 	css::uno::Any getControlShape( const rtl::OUString& sName );
+ protected:
+ 
+@@ -136,6 +136,7 @@ public:
+     virtual void SAL_CALL setCodeName( const rtl::OUString& sCodeName ) throw (css::uno::RuntimeException);
+     sal_Int16 getSheetID() throw (css::uno::RuntimeException);
+ 
++	virtual void SAL_CALL PrintOut( const css::uno::Any& From, const css::uno::Any& To, const css::uno::Any& Copies, const css::uno::Any& Preview, const css::uno::Any& ActivePrinter, const css::uno::Any& PrintToFile, const css::uno::Any& Collate, const css::uno::Any& PrToFileName, const css::uno::Any& IgnorePrintAreas ) throw (css::uno::RuntimeException);
+ 	// XHelperInterface
+ 	virtual rtl::OUString& getServiceImplName();
+ 	virtual css::uno::Sequence<rtl::OUString> getServiceNames();	
+Index: sc/source/ui/vba/testvba/TestDocuments/AutoFilter.xls
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/AutoFilter.xls
+diff -N sc/source/ui/vba/testvba/TestDocuments/AutoFilter.xls
+<<<<<<< .mine
+Binary files /dev/null and /tmp/cvsnpcFKH differ
+=======
+Binary files /dev/null and /tmp/cvstuairu differ
+>>>>>>> .r12306
+Index: sc/source/ui/vba/testvba/TestDocuments/MiscRangeTests.xls
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/MiscRangeTests.xls
+diff -N sc/source/ui/vba/testvba/TestDocuments/MiscRangeTests.xls
+<<<<<<< .mine
+Binary files /dev/null and /tmp/cvssyCTyd differ
+=======
+Binary files /dev/null and /tmp/cvsuuairu differ
+>>>>>>> .r12306
+Index: sc/source/ui/vba/testvba/TestDocuments/Ranges-2.xls
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/Ranges-2.xls
+diff -N sc/source/ui/vba/testvba/TestDocuments/Ranges-2.xls
+<<<<<<< .mine
+Binary files /dev/null and /tmp/cvszM0ynJ differ
+=======
+Binary files /dev/null and /tmp/cvsvuairu differ
+>>>>>>> .r12306
+Index: sc/source/ui/vba/testvba/TestDocuments/Ranges-3.xls
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/Ranges-3.xls
+diff -N sc/source/ui/vba/testvba/TestDocuments/Ranges-3.xls
+<<<<<<< .mine
+Binary files /dev/null and /tmp/cvspDHQlf differ
+=======
+Binary files /dev/null and /tmp/cvswuairu differ
+>>>>>>> .r12306
+Index: sc/source/ui/vba/testvba/TestDocuments/Ranges.xls
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/Ranges.xls
+diff -N sc/source/ui/vba/testvba/TestDocuments/Ranges.xls
+<<<<<<< .mine
+Binary files /dev/null and /tmp/cvsJTWlkL differ
+=======
+Binary files /dev/null and /tmp/cvsxuairu differ
+>>>>>>> .r12306
+Index: sc/source/ui/vba/testvba/TestDocuments/Shapes.xls
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/Shapes.xls
+diff -N sc/source/ui/vba/testvba/TestDocuments/Shapes.xls
+<<<<<<< .mine
+Binary files /dev/null and /tmp/cvsum2Yrh differ
+=======
+Binary files /dev/null and /tmp/cvsyuairu differ
+>>>>>>> .r12306
+Index: sc/source/ui/vba/testvba/TestDocuments/TestAddress.xls
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/TestAddress.xls
+diff -N sc/source/ui/vba/testvba/TestDocuments/TestAddress.xls
+<<<<<<< .mine
+Binary files /dev/null and /tmp/cvsFBESzN differ
+=======
+Binary files /dev/null and /tmp/cvszuairu differ
+>>>>>>> .r12306
+Index: sc/source/ui/vba/testvba/TestDocuments/TestCalc_Rangetest.xls
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/TestCalc_Rangetest.xls
+diff -N sc/source/ui/vba/testvba/TestDocuments/TestCalc_Rangetest.xls
+<<<<<<< .mine
+Binary files /dev/null and /tmp/cvsQxpYHj differ
+=======
+Binary files /dev/null and /tmp/cvsAuairu differ
+>>>>>>> .r12306
+Index: sc/source/ui/vba/testvba/TestDocuments/TestCalc_Rangetest2.xls
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/TestCalc_Rangetest2.xls
+diff -N sc/source/ui/vba/testvba/TestDocuments/TestCalc_Rangetest2.xls
+<<<<<<< .mine
+Binary files /dev/null and /tmp/cvsnTZiQP differ
+=======
+Binary files /dev/null and /tmp/cvsBuairu differ
+>>>>>>> .r12306
+Index: sc/source/ui/vba/testvba/TestDocuments/logs/excel/AutoFilter.log
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/logs/excel/AutoFilter.log
+diff -N sc/source/ui/vba/testvba/TestDocuments/logs/excel/AutoFilter.log
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/testvba/TestDocuments/logs/excel/AutoFilter.log	28 Jan 2008 17:30:45 -0000	1.1.2.1
+@@ -0,0 +1,20 @@
++Test run started : 17/07/2007 17:36:22
++----------------------------------------------------------------
++TestAddress
++ TEST START : TestAddress
++  ITEM Assertion OK : test1 'starts with' string criteria
++  ITEM Assertion OK : test2 'not equal to' string criteria
++  ITEM Assertion OK : test3 'ends with' string criteria
++  ITEM Assertion OK : test4 field 'all' 
++  ITEM Assertion OK : test5 numeric '<15' 
++  ITEM Assertion OK : test6 numeric '>=15' 
++  ITEM Assertion OK : test7 numeric '<=12' 
++Test Results
++============
++
++Tests passed: 7
++Tests failed: 0
++
++END 'TestAddress
++ TEST OK : TestAddress
++Test run finished : 17/07/2007 17:36:23
+Index: sc/source/ui/vba/testvba/TestDocuments/logs/excel/MiscRangeTests.log
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/logs/excel/MiscRangeTests.log
+diff -N sc/source/ui/vba/testvba/TestDocuments/logs/excel/MiscRangeTests.log
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/testvba/TestDocuments/logs/excel/MiscRangeTests.log	28 Jan 2008 17:30:46 -0000	1.1.2.1
+@@ -0,0 +1,45 @@
++Test run started : 17/07/2007 15:01:37
++----------------------------------------------------------------
++MiscRangeTests
++ TEST START : MiscRangeTests
++  ITEM Assertion OK : test 1
++  ITEM Assertion OK : test 2
++  ITEM Assertion OK : test 3
++  ITEM Assertion OK : test 4
++  ITEM Assertion OK : test 5
++  ITEM Assertion OK : test 6
++  ITEM Assertion OK : test 7
++  ITEM Assertion OK : test 8
++  ITEM Assertion OK : test 9
++  ITEM Assertion OK : test 10
++  ITEM Assertion OK : test 11
++  ITEM Assertion OK : test 12
++  ITEM Assertion OK : test 13
++  ITEM Assertion OK : test 14
++  ITEM Assertion OK : test 15
++  ITEM Assertion OK : test 16
++  ITEM Assertion OK : test 17
++  ITEM Assertion OK : test 18
++  ITEM Assertion OK : test 19
++  ITEM Assertion OK : test 20
++  ITEM Assertion OK : test 21
++  ITEM Assertion OK : test 22
++  ITEM Assertion OK : test 23
++  ITEM Assertion OK : test 24
++  ITEM Assertion OK : test 25
++  ITEM Assertion OK : test 26
++  ITEM Assertion OK : test 27
++  ITEM Assertion OK : test 28
++  ITEM Assertion OK : test 29
++  ITEM Assertion OK : test 30
++  ITEM Assertion OK : test 31
++No. tests: 31
++Summary
++=======
++Run:       31
++Passed:    31
++Failed:    0
++
++END 'MiscRangeTests
++ TEST OK : MiscRangeTests
++Test run finished : 17/07/2007 15:01:39
+Index: sc/source/ui/vba/testvba/TestDocuments/logs/excel/Ranges-2.log
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/logs/excel/Ranges-2.log
+diff -N sc/source/ui/vba/testvba/TestDocuments/logs/excel/Ranges-2.log
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/testvba/TestDocuments/logs/excel/Ranges-2.log	28 Jan 2008 17:30:46 -0000	1.1.2.1
+@@ -0,0 +1,68 @@
++Test run started : 18/06/2007 17:50:04
++----------------------------------------------------------------
++ClearFormtsIssue
++ TEST START : ClearFormtsIssue
++  ITEM Assertion OK : Range.Font.Bold is: True
++  ITEM Assertion OK : Range.Font.Bold is: False
++END 'ClearFormtsIssue' Symbol
++ TEST OK : ClearFormtsIssue
++----------------------------------------------------------------
++VerticalAlignment-Issue
++ TEST START : VerticalAlignment-Issue
++  ITEM Assertion OK : -  Range.VerticalAlignment (get)
++  ITEM Assertion OK : -  Range.VerticalAlignment (set)
++  ITEM Assertion OK : -  Range.VerticalAlignment (get)
++  ITEM Assertion OK : -  Range.VerticalAlignment (get)
++  ITEM Assertion OK : -  Range.VerticalAlignment (set)
++  ITEM Assertion OK : -  Range.VerticalAlignment (get)
++  ITEM Assertion OK : -  Range.VerticalAlignment (set)
++  ITEM Assertion OK : Range.VeritcalAlignment is Null
++END 'VerticalAlignment-Issue' Symbol
++ TEST OK : VerticalAlignment-Issue
++----------------------------------------------------------------
++HorizontalAlignment-Issue
++ TEST START : HorizontalAlignment-Issue
++  ITEM Assertion OK : -  Range.HorizontalAlignment (get)
++  ITEM Assertion OK : -  Range.HorizontalAlignment (set)
++  ITEM Assertion OK : -  Range.HorizontalAlignment (get)
++  ITEM Assertion OK : -  Range.HorizontalAlignment (set)
++  ITEM Assertion OK : -  Range.HorizontalAlignment (get)
++  ITEM Assertion OK : -  Range.HorizontalAlignment (set)
++  ITEM Assertion OK : -  Range.HorizontalAlignment (get)
++  ITEM Assertion OK : -  Range.HorizontalAlignment (set)
++  ITEM Assertion OK : Range.HorizontalAlignment is Null
++END 'HorizontalAlignment-Issue' Symbol
++ TEST OK : HorizontalAlignment-Issue
++----------------------------------------------------------------
++WrapText-Issue
++ TEST START : WrapText-Issue
++  ITEM Assertion OK : -  Range.WrapText (get)
++  ITEM Assertion OK : -  Range.WrapText (get)
++  ITEM Assertion OK : Range.WrapText is Null
++END 'WrapText-Issue' Symbol
++ TEST OK : WrapText-Issue
++----------------------------------------------------------------
++FontBorderIssues
++ TEST START : FontBorderIssues
++  ITEM Assertion OK : -  = Borders.Color (getColor)
++  ITEM Assertion OK : -  = Font.Color (getColor)
++END 'FontBorderIssues' Symbol
++ TEST OK : FontBorderIssues
++----------------------------------------------------------------
++RangeSizeIssues
++ TEST START : RangeSizeIssues
++  ITEM Assertion OK : Range.Left is: 114
++  ITEM Assertion OK : Range.Top is: 95.25
++  ITEM Assertion OK : Range.Width is: 216
++  ITEM Assertion OK : Range.Height is: 271.5
++END 'RangeSizeIssues' Symbol
++ TEST OK : RangeSizeIssues
++----------------------------------------------------------------
++ApplicationIssues
++ TEST START : ApplicationIssues
++  ITEM Assertion OK : Range.Address is: $E$8:$G$13,$G$13:$K$19
++  ITEM Assertion OK : Range.Address is: $E$8:$G$13,$G$13:$K$19
++  ITEM Assertion OK : Application.ActiveSheet.Name: Sheet1
++END 'ApplicationIssues' Symbol
++ TEST OK : ApplicationIssues
++Test run finished : 18/06/2007 17:50:04
+Index: sc/source/ui/vba/testvba/TestDocuments/logs/excel/Ranges-3.log
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/logs/excel/Ranges-3.log
+diff -N sc/source/ui/vba/testvba/TestDocuments/logs/excel/Ranges-3.log
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/testvba/TestDocuments/logs/excel/Ranges-3.log	28 Jan 2008 17:30:46 -0000	1.1.2.1
+@@ -0,0 +1,8 @@
++Test run started : 19/06/2007 11:21:42
++----------------------------------------------------------------
++MyGoalseek-Issue
++ TEST START : MyGoalseek-Issue
++  ITEM Assertion OK : Variable Range value: 15
++END 'MyGoalseek-Issue' Symbol
++ TEST OK : MyGoalseek-Issue
++Test run finished : 19/06/2007 11:21:42
+Index: sc/source/ui/vba/testvba/TestDocuments/logs/excel/Ranges.log
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/logs/excel/Ranges.log
+diff -N sc/source/ui/vba/testvba/TestDocuments/logs/excel/Ranges.log
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/testvba/TestDocuments/logs/excel/Ranges.log	28 Jan 2008 17:30:46 -0000	1.1.2.1
+@@ -0,0 +1,280 @@
++Test run started : 01/06/2007 11:28:58
++----------------------------------------------------------------
++ApplicationMethods
++ TEST START : ApplicationMethods
++  ITEM Assertion OK :  Name of Workbook is: Ranges.xls
++  ITEM Assertion OK :  Address of Application.Columns is: $A:$A
++  ITEM Assertion OK :  Address of Application.Rows is: $1:$1
++  ITEM Assertion OK :  Address of Application.Range is: $1:$1,$5:$7
++  ITEM Assertion OK :  Please check manually: DefaultFilePath is: C:\Documents and Settings\vituosity\My Documents
++  ITEM Assertion OK :  Please check manually: Library Path is: C:\Program Files\Microsoft Office\OFFICE11\LIBRARY
++  ITEM Assertion OK :  Please check manually: Template Path is: C:\Documents and Settings\vituosity\Application Data\Microsoft\Templates\
++  ITEM Assertion OK :  FileSeparator is \
++  ITEM Assertion OK :  Name of ActiveWorkbook is: Ranges.xls
++END 'ApplicationMethods' Symbol
++ TEST OK : ApplicationMethods
++----------------------------------------------------------------
++Insert-Issue
++ TEST START : Insert-Issue
++  ITEM Assertion OK : Insert with xlShiftToRight: 10
++END 'Insert-Issue' Symbol
++ TEST OK : Insert-Issue
++----------------------------------------------------------------
++MergeCells-Issue
++ TEST START : MergeCells-Issue
++  ITEM Assertion OK :  Range.MergeCells is True
++  ITEM Assertion OK : MergeCells is null: True
++  ITEM Assertion OK : RowCount after Merge: 6
++  ITEM Assertion OK :  Range.MergeCells is False
++  ITEM Assertion OK : MergeCells is null: False
++  ITEM Assertion OK : MergeCells of Second Area is null : True
++  ITEM Assertion OK : MergeCells of Ranges is Null: True
++  ITEM Assertion OK : RowCount after Merge: 7
++  ITEM Assertion OK :  Range.MergeCells is False
++  ITEM Assertion OK : MergeCells is null: False
++  ITEM Assertion OK : RowCount after Merge: 7
++END 'MergeCells-Issue' Symbol
++ TEST OK : MergeCells-Issue
++----------------------------------------------------------------
++Areas-Issue
++ TEST START : Areas-Issue
++  ITEM Assertion OK : Range Areas Count is2
++  ITEM Assertion OK : First Range Address is: $E$8:$G$13
++  ITEM Assertion OK : First Row is: 8
++  ITEM Assertion OK : First Column is: 5
++  ITEM Assertion OK : EntireRow Address is: $8:$13,$13:$19
++  ITEM Assertion OK : EntireColumn Address is: $E:$G,$G:$K
++  ITEM Assertion OK : Range Count:53
++END 'Areas-Issue' Symbol
++ TEST OK : Areas-Issue
++----------------------------------------------------------------
++Fill-Methods-Issue
++ TEST START : Fill-Methods-Issue
++  ITEM Assertion OK :  Range Value after FillDown: MyFillValue
++  ITEM Assertion OK :  Range Value after FillDown: MyFillValue
++  ITEM Assertion OK :  Range Value after FillDown: MyRightFillValue
++  ITEM Assertion OK :  Range Value after FillDown: MyBottomFillValue
++END 'Fill-Methods-Issue' Symbol
++ TEST OK : Fill-Methods-Issue
++----------------------------------------------------------------
++Range/Item-Method-Issue
++ TEST START : Range/Item-Method-Issue
++  ITEM Assertion OK :  Range of multiple columns is: $A:$A,$C:$C
++  ITEM Assertion OK :  Range of multiple rows is: $1:$1,$5:$7
++  ITEM Assertion OK :  Range of several columns is: $C:$E,$D:$D
++  ITEM Assertion OK :  Range of several rows is: $5:$8,$6:$10
++  ITEM Assertion OK :  Range of several single cells is: $C$5,$E$8
++  ITEM Assertion OK :  Range of several named ranges is: $L$1:$M$6,$E$8:$G$13,$G$13:$K$19
++  ITEM Assertion OK :  Range of a single Item Cell is: $E$21
++  ITEM Assertion OK :  Range of a single Item Cell is: $F$21
++  ITEM Assertion OK :  Range of a single Item Cell is: $F$10
++END 'Range/Item-Method-Issue' Symbol
++ TEST OK : Range/Item-Method-Issue
++----------------------------------------------------------------
++R1C1-Formulas-Issue
++ TEST START : R1C1-Formulas-Issue
++  ITEM Assertion OK :  R1C1 Range.Formula is: =IF(OR(R[-2]C[1]=0,RC[2]="YES"),"")
++  ITEM Assertion OK :  Range.Formula is: =IF(OR(J8=0,K10="YES"),"")
++END 'R1C1-Formulas-Issue' Symbol
++ TEST OK : R1C1-Formulas-Issue
++----------------------------------------------------------------
++Verify_Delete
++ TEST START : Verify_Delete
++  ITEM Assertion OK : Ranges are intersecting: $G$13
++  ITEM Assertion OK : Delete with Default: $AJ$4
++  ITEM Assertion OK : Delete with ShifttoLeft: $AJ$4
++  ITEM Assertion OK : Delete with ShiftUp: $M$22
++END 'Verify_Delete' Symbol
++ TEST OK : Verify_Delete
++----------------------------------------------------------------
++Value-Issue
++ TEST START : Value-Issue
++  ITEM Assertion OK : Value of Range is: 12.3
++  ITEM Assertion OK : Text of Range is: 12.3
++  ITEM Assertion OK : Range has Formula: False
++  ITEM Assertion OK : Cell has Formula: False
++  ITEM Assertion OK : Text of Range is null: True
++  ITEM Assertion OK : Range has Formula: True
++  ITEM Assertion OK : Cell has Formula: True
++  ITEM Assertion OK : Value of Cell is: 12
++  ITEM Assertion OK : Application.Calculation is : -4135
++  ITEM Assertion OK : Calculation is automated: True
++  ITEM Assertion OK : Range has Formula: True
++  ITEM Assertion OK : Value of Cell is: 16
++  ITEM Assertion OK : Text of Cell is: 16
++  ITEM Assertion OK : Text of Cell is: 16
++  ITEM Assertion OK : Range has Formula after 'ClearContents: False
++  ITEM Assertion OK : Text of Cell is: 
++  ITEM Assertion OK : Text of Cell is: 
++END 'Value-Issue' Symbol
++ TEST OK : Value-Issue
++----------------------------------------------------------------
++AutoFit issue
++ TEST START : AutoFit issue
++  ITEM Assertion OK :  Columns.AutoFit: CurrentWidth is 673
++  ITEM Assertion OK :  Rows.AutoFit: CurrentHeight is 612
++END 'AutoFit issue' Symbol
++ TEST OK : AutoFit issue
++----------------------------------------------------------------
++Selections
++ TEST START : Selections
++  ITEM Assertion OK : ActiveCell is : $E$8
++  ITEM Assertion OK : Active Cell is : $E$8
++  ITEM Assertion OK : Number of Cells in Range: 53
++  ITEM Assertion OK : Number of Cells in Range: 53
++  ITEM Assertion OK : Number of Cells in Range: 53
++END 'Selections' Symbol
++ TEST OK : Selections
++----------------------------------------------------------------
++Offset-Resize
++ TEST START : Offset-Resize
++  ITEM Assertion OK : Offset is : $G$10:$I$15,$I$15:$M$21
++  ITEM Assertion OK : Offset is : $G$7:$I$12,$I$12:$M$18
++  ITEM Assertion OK :   Resized Range is : $A$20:$D$23
++END 'Offset-Resize' Symbol
++ TEST OK : Offset-Resize
++----------------------------------------------------------------
++Ranges-Address
++ TEST START : Ranges-Address
++  ITEM Assertion OK : Range Address is: $E$8:$G$13,$G$13:$K$19
++  ITEM Assertion OK : Range Address is: $E8:$G13,$G13:$K19
++  ITEM Assertion OK : Range Address is: E$8:G$13,G$13:K$19
++  ITEM Assertion OK : Range Address is: R8C5:R13C7,R13C7:R19C11
++  ITEM Assertion OK : Range Address is: $E$8:$G$13,$G$13:$K$19
++  ITEM Assertion OK : Range Address is: R8C5:R13C7,R13C7:R19C11
++  ITEM Assertion OK : Range Address is: R[6]C[3]:R[11]C[5],R[11]C[5]:R[17]C[9]
++  ITEM Assertion OK : RangeAddress is [Ranges.xls]Sheet1!$E$8:$G$13,$G$13:$K$19
++END 'Ranges-Address' Symbol
++ TEST OK : Ranges-Address
++----------------------------------------------------------------
++Range-Address
++ TEST START : Range-Address
++  ITEM Assertion OK : Range Address is: $E$8:$G$13
++  ITEM Assertion OK : Range Address is: $E8:$G13
++  ITEM Assertion OK : Range Address is: E$8:G$13
++  ITEM Assertion OK : Range Address is: R8C5:R13C7
++  ITEM Assertion OK : Range Address is: $E$8:$G$13
++  ITEM Assertion OK : Range Address is: R8C5:R13C7
++  ITEM Assertion OK : Range Address is: R[6]C[3]:R[11]C[5]
++  ITEM Assertion OK : RangeAddress is [Ranges.xls]Sheet1!$E$8:$G$13
++END 'Range-Address' Symbol
++ TEST OK : Range-Address
++----------------------------------------------------------------
++Column-Address
++ TEST START : Column-Address
++  ITEM Assertion OK : Range Address is: $F$8:$F$13
++  ITEM Assertion OK : Range Address is: $F8:$F13
++  ITEM Assertion OK : Range Address is: F$8:F$13
++  ITEM Assertion OK : Range Address is: R8C6:R13C6
++  ITEM Assertion OK : Range Address is: $F$8:$F$13
++  ITEM Assertion OK : Range Address is: R8C6:R13C6
++  ITEM Assertion OK : Range Address is: R[6]C[4]:R[11]C[4]
++  ITEM Assertion OK : RangeAddress is [Ranges.xls]Sheet1!$F$8:$F$13
++END 'Column-Address' Symbol
++ TEST OK : Column-Address
++----------------------------------------------------------------
++Row-Address
++ TEST START : Row-Address
++  ITEM Assertion OK : Range Address is: $E$9:$G$9
++  ITEM Assertion OK : Range Address is: $E9:$G9
++  ITEM Assertion OK : Range Address is: E$9:G$9
++  ITEM Assertion OK : Range Address is: R9C5:R9C7
++  ITEM Assertion OK : Range Address is: $E$9:$G$9
++  ITEM Assertion OK : Range Address is: R9C5:R9C7
++  ITEM Assertion OK : Range Address is: R[7]C[3]:R[7]C[5]
++  ITEM Assertion OK : RangeAddress is [Ranges.xls]Sheet1!$E$9:$G$9
++END 'Row-Address' Symbol
++ TEST OK : Row-Address
++----------------------------------------------------------------
++SingleCell-Address
++ TEST START : SingleCell-Address
++  ITEM Assertion OK : Range Address is: $F$9
++  ITEM Assertion OK : Range Address is: $F9
++  ITEM Assertion OK : Range Address is: F$9
++  ITEM Assertion OK : Range Address is: R9C6
++  ITEM Assertion OK : Range Address is: $F$9
++  ITEM Assertion OK : Range Address is: R9C6
++  ITEM Assertion OK : Range Address is: R[7]C[4]
++  ITEM Assertion OK : RangeAddress is [Ranges.xls]Sheet1!$F$9
++END 'SingleCell-Address' Symbol
++ TEST OK : SingleCell-Address
++----------------------------------------------------------------
++Heights and Widths
++ TEST START : Heights and Widths
++  ITEM Assertion OK : Range RowHeight is 40
++  ITEM Assertion OK : Range ColumnWidth is 50
++  ITEM Assertion OK : Range Height is 238
++  ITEM Assertion OK : Range Width is 798.75
++  ITEM Assertion OK : Range RowHeight is 50
++  ITEM Assertion OK : Range ColumnWidth is 50
++  ITEM Assertion OK : Range Height is 297
++  ITEM Assertion OK : Range Width is 798.75
++  ITEM Assertion OK : RowHeight is null: True
++  ITEM Assertion OK : ColumnWidth is null: True
++END 'Heights and Widths' Symbol
++ TEST OK : Heights and Widths
++----------------------------------------------------------------
++RangeRowColumn-Issue
++ TEST START : RangeRowColumn-Issue
++  ITEM Assertion OK : Row is: 8
++  ITEM Assertion OK : Column is: 5
++  ITEM Assertion OK : EntireRow.Columns.Count = 256
++  ITEM Assertion OK : EntireColumn.Rows.Count = 65536
++END 'RangeRowColumn-Issue' Symbol
++ TEST OK : RangeRowColumn-Issue
++----------------------------------------------------------------
++Replace-Issue
++ TEST START : Replace-Issue
++  ITEM Assertion OK : Value after Replace: YourValue
++  ITEM Assertion OK : Value after Replace: YourValue
++  ITEM Assertion OK : Value after Replace: ReplaceValue
++  ITEM Assertion OK : Value after Replace: New ReplaceValue
++  ITEM Assertion OK : Value after Replace: New ReplaceValue
++  ITEM Assertion OK : Value after Replace: New Replace
++  ITEM Assertion OK : Value after Replace: 
++END 'Replace-Issue' Symbol
++ TEST OK : Replace-Issue
++----------------------------------------------------------------
++Hidden-Issue
++ TEST START : Hidden-Issue
++  ITEM Assertion OK : -  Range.Rows.Hidden (set)
++  ITEM Assertion OK : -  Range.Rows.Hidden (get)
++  ITEM Assertion OK : -  Range.Rows.Item(1).Hidden (set)
++  ITEM Assertion OK : -  Range.Rows.Item(1).Hidden (get)
++  ITEM Assertion OK : -  Range.Columns.Hidden (set)
++  ITEM Assertion OK : -  Range.Columns.Hidden (get)
++  ITEM Assertion OK : -  Range.Columns.Item(1).Hidden (set)
++  ITEM Assertion OK : -  Range.Columns.Item(1).Hidden (get)
++END 'Hidden-Issue' Symbol
++ TEST OK : Hidden-Issue
++----------------------------------------------------------------
++End issue
++ TEST START : End issue
++  ITEM Assertion OK : -  = $E$48
++  ITEM Assertion OK : -  = $E$1
++  ITEM Assertion OK : -  = $E$3
++  ITEM Assertion OK : -  = $A$8
++  ITEM Assertion OK : -  = $B$8
++  ITEM Assertion OK : -  = $IV$8
++  ITEM Assertion OK : -  = $Z$8
++END 'End issue' Symbol
++ TEST OK : End issue
++----------------------------------------------------------------
++Outline issue
++ TEST START : Outline issue
++  ITEM Assertion OK : -  Range.clearOutline - please check visually
++  ITEM Assertion OK : -  Range.AutoOutline - please check visually
++  ITEM Assertion OK : -  Range.AutoOutline - please check visually
++END 'Outline issue' Symbol
++ TEST OK : Outline issue
++----------------------------------------------------------------
++Validation
++ TEST START : Validation
++  ITEM Assertion OK : Validation Input Message is : Attention!
++  ITEM Assertion OK : Validation Input Message is : Enter an integer from five to ten
++  ITEM Assertion OK : Validation Error Title is : You must enter a number from five to ten
++  ITEM Assertion OK : Validation Error Message is : An Error occured
++  ITEM Assertion OK : Validation Error Title is : Microsoft Excel
++END 'Validation' Symbol
++ TEST OK : Validation
++Test run finished : 01/06/2007 11:29:00
+Index: sc/source/ui/vba/testvba/TestDocuments/logs/excel/TestAddress.log
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/logs/excel/TestAddress.log
+diff -N sc/source/ui/vba/testvba/TestDocuments/logs/excel/TestAddress.log
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/testvba/TestDocuments/logs/excel/TestAddress.log	28 Jan 2008 17:30:46 -0000	1.1.2.1
+@@ -0,0 +1,62 @@
++Test run started : 17/07/2007 15:25:17
++----------------------------------------------------------------
++TestAddress
++ TEST START : TestAddress
++  ITEM Assertion OK : test1 Range('e3:f3') A1 style addressing
++  ITEM Assertion OK : test2 Range('e3:f3') R1C1 style addressing
++  ITEM Assertion OK : test3 Range ('e:f')  A1 style addressing
++  ITEM Assertion OK : test4 Range ('e:f')  R1C1 style addressing
++  ITEM Assertion OK : test5 Columns A1 style addressing
++  ITEM Assertion OK : test6 Columns R1C1 style addressing
++  ITEM Assertion OK : test7 Columns(3) A1 style addressing
++  ITEM Assertion OK : test8 Columns(3) R1C1 style addressing
++  ITEM Assertion OK : test9 Columns('e') A1 style addressing
++  ITEM Assertion OK : test10 Columns('e') R1C1 style addressing
++  ITEM Assertion OK : test11 Columns('b:d') A1 style addressing
++  ITEM Assertion OK : test12 Columns('b:d') R1C1 style addressing
++  ITEM Assertion OK : test13 Range('c1:g10').Columns A1 style addressing
++  ITEM Assertion OK : test14 Range('c1:g10').Columns R1C1 style addressing
++  ITEM Assertion OK : test15 Range('c1:g10').Columns(1) A1 style addressing
++  ITEM Assertion OK : test16 Range('c1:g10').Columns(1) R1C1 style addressing
++  ITEM Assertion OK : test17 Range('c1:g10').Columns('a') A1 style addressing
++  ITEM Assertion OK : test18 Range('c1:g10').Columns('a') R1C1 style addressing
++  ITEM Assertion OK : test19 Range('c1:g10').Columns('c') A1 style addressing
++  ITEM Assertion OK : test20 Range('c1:g10').Columns('c') R1C1 style addressing
++  ITEM Assertion OK : test21 Range('c1:g10').Columns('x:z') A1 style addressing
++  ITEM Assertion OK : test22 Range('c1:g10').Columns('x:z') R1C1 style addressing
++  ITEM Assertion OK : test23 Range('c1:g10').Columns(30) A1 style addressing
++  ITEM Assertion OK : test24 Range('c1:g10').Columns(30) R1C1 style addressing
++  ITEM Assertion OK : test25 Worksheets('Sheet2').Cells(1, 1) A1 style addressing
++  ITEM Assertion OK : test26 Worksheets('Sheet2').Cells(1, 1) A1 style addressing, RowAddressAbsolute is false 
++  ITEM Assertion OK : test27 Worksheets('Sheet2').Cells(1, 1) A1 style addressing, ColAddressAbsolute is false 
++  ITEM Assertion OK : test28 Worksheets('Sheet2').Cells(1, 1) R1C1 style addressing
++  ITEM Assertion OK : test29 Worksheets('Sheet2').Range('A1:E5').EntireColumn A1 style addressing
++  ITEM Assertion OK : test30 Worksheets('Sheet2').Range('A1').EntireColumn A1 style addressing
++  ITEM Assertion OK : test31 Worksheets('Sheet2').Range('A1:E5').EntireRow A1 style addressing
++  ITEM Assertion OK : test32 Worksheets('Sheet2').Range('A1') A1 style addressing
++  ITEM Assertion OK : test33 Worksheets('Sheet2').Range('IV65536').EntireRow A1 style addressing
++  ITEM Assertion OK : test34 Worksheets('Sheet2').Range('IU2:IV65536') A1 style addressing
++  ITEM Assertion OK : test35 Range('c1:g10').Columns('x:z') R1C1 style addressing
++  ITEM Assertion OK : test36 Worksheets('Sheet2').Range('A1') A1 style addressing
++  ITEM Assertion OK : test37 Worksheets('Sheet2').Range('A1:E5').EntireColumn A1 style addressing
++  ITEM Assertion OK : test38 Worksheets('Sheet2').Range('10:12') A1 style addressing
++  ITEM Assertion OK : test39 Worksheets('Sheet2').Range('10:12') R1C1 style addressing
++  ITEM Assertion OK : test40 Range('Sheet3!A1:B4') A1 style addressing
++  ITEM Assertion OK : test41 Range('Sheet3!A1,B1,D4:F20') A1 style addressing
++  ITEM Assertion OK : test42 Range('g20:h40').Columns('c:c')
++  ITEM Assertion OK : test43 Range('g20:h40').Columns('c:f')
++  ITEM Assertion OK : test44 Range('g20:h40').Columns(-1)
++  ITEM Assertion OK : test45 Range('c4:g10').Rows(-1)
++  ITEM Assertion OK : test46 Range('a2:b4').Rows('1:1')
++  ITEM Assertion OK : test47 Range('a2:b4').Rows('1:2')
++  ITEM Assertion OK : test48 Range('a2:b4').Rows('2:2')
++  ITEM Assertion OK : test49 Range('a2:b4').Rows('2:3')
++Test Results
++============
++
++Tests passed: 49
++Tests failed: 0
++
++END 'TestAddress
++ TEST OK : TestAddress
++Test run finished : 17/07/2007 15:25:19
+Index: sc/source/ui/vba/testvba/TestDocuments/logs/excel/TestCalc_Rangetest.log
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/logs/excel/TestCalc_Rangetest.log
+diff -N sc/source/ui/vba/testvba/TestDocuments/logs/excel/TestCalc_Rangetest.log
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/testvba/TestDocuments/logs/excel/TestCalc_Rangetest.log	28 Jan 2008 17:30:46 -0000	1.1.2.1
+@@ -0,0 +1,60 @@
++Test run started : 30/05/2007 11:33:13
++BEGIN TestCalc
++ TEST START : RangeTest2
++  ITEM Assertion OK : -  Range("D15").Row 
++  ITEM Assertion OK : -  WorkSheet("D15").Range.Row 
++  ITEM Assertion OK : -  Range("D15").Column 
++  ITEM Assertion OK : -  Worksheet.Range("D15").Column 
++  ITEM Assertion OK : -  Range("D1").EntireRow.Valuer 
++  ITEM Assertion OK : -  Range("D1").EntireRow.Valuer 
++  ITEM Assertion OK : -  Range("D1").EntireRow.Columns.Count 
++  ITEM Assertion OK : -  Range("D1").EntireColumn.Rows.Count 
++  ITEM Assertion OK : -  Range("D15").ClearContent
++  ITEM Assertion OK : -  Range("M1:N2").Rows.Hidden (set)
++  ITEM Assertion OK : -  Range("M1:N2").Rows.Hidden (get)
++  ITEM Assertion OK : -  Range("M1:N2").Rows(1).Hidden (set)
++  ITEM Assertion OK : -  Range("M1:N2").Rows(1).Hidden (get)
++  ITEM Assertion OK : -  Range("M1:N2").Columns.Hidden (set)
++  ITEM Assertion OK : -  Range("M1:N2").Columns.Hidden (get)
++  ITEM Assertion OK : -  Range("M1:N2").Columns(1).Hidden (set)
++  ITEM Assertion OK : -  Range("M1:N2").Columns(1).Hidden (get)
++  ITEM Assertion OK : -  Range("B38").Orientation (get)
++  ITEM Assertion OK : -  Range("B38").Orientation (set)
++  ITEM Assertion OK : -  Range("B38").Orientation (set = xlDownward)
++  ITEM Assertion OK : -  Range("B38").Orientation (set)
++  ITEM Assertion OK : -  Range("B38").Orientation (set = xlUpward)
++  ITEM Assertion OK : -  Range("B38").Orientation (set)
++  ITEM Assertion OK : -  Range("B38").Orientation (set = xlVertical)
++  ITEM Assertion OK : -  Range("B38").Orientation (set)
++  ITEM Assertion OK : -  Range("B38").Orientation (set = xlVertical)
++  ITEM Assertion OK : -  Range("B39").WrapText (get)
++  ITEM Assertion OK : -  Range("B39").WrapText (set)
++  ITEM Assertion OK : -  Range("B39").WrapText (set)
++  ITEM Assertion OK : -  Range("E39").MergeCells (get)
++  ITEM Assertion OK : -  Range("F39").MergeCells (get)
++  ITEM Assertion OK : -  Range("E39").MergeCells (set)
++  ITEM Assertion OK : -  Range("F39").MergeCells (set)
++  ITEM Assertion OK : -  Range("E39").MergeCells (set)
++  ITEM Assertion OK : -  Range("F39").MergeCells (set)
++  ITEM Assertion OK : -  Range("C41:C42").Replace  MatchCase:=True 
++  ITEM Assertion OK : -  Range("C41:C42").Replace  MatchCase:=True 
++  ITEM Assertion OK : -  Range("D41:D42").Replace  MatchCase:=False 
++  ITEM Assertion OK : -  Range("B39").VerticalAlignment (get)
++  ITEM Assertion OK : -  Range("B39").VerticalAlignment (set)
++  ITEM Assertion OK : -  Range("B39").VerticalAlignment (get)
++  ITEM Assertion OK : -  Range("B39").VerticalAlignment (get)
++  ITEM Assertion OK : -  Range("B39").VerticalAlignment (set)
++  ITEM Assertion OK : -  Range("B39").VerticalAlignment (get)
++  ITEM Assertion OK : -  Range("B39").VerticalAlignment (set)
++  ITEM Assertion OK : -  Range("B39").HorizontalAlignment (get)
++  ITEM Assertion OK : -  Range("B39").HorizontalAlignment (set)
++  ITEM Assertion OK : -  Range("B39").HorizontalAlignment (get)
++  ITEM Assertion OK : -  Range("B39").HorizontalAlignment (set)
++  ITEM Assertion OK : -  Range("B39").HorizontalAlignment (get)
++  ITEM Assertion OK : -  Range("B39").HorizontalAlignment (set)
++  ITEM Assertion OK : -  Range("B39").HorizontalAlignment (get)
++  ITEM Assertion OK : -  Range("B39").HorizontalAlignment (set)
++  ITEM OK (RangeTest2)
++ TEST succesfully completed : RangeTest2
++END   TestCalc
++Test run finished : 30/05/2007 11:33:14
+Index: sc/source/ui/vba/testvba/TestDocuments/logs/excel/TestCalc_Rangetest2.log
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/logs/excel/TestCalc_Rangetest2.log
+diff -N sc/source/ui/vba/testvba/TestDocuments/logs/excel/TestCalc_Rangetest2.log
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/testvba/TestDocuments/logs/excel/TestCalc_Rangetest2.log	28 Jan 2008 17:30:46 -0000	1.1.2.1
+@@ -0,0 +1,64 @@
++Test run started : 31/05/2007 11:02:10
++BEGIN TestCalc
++ TEST START : RangeTest3
++  ITEM Assertion OK : - setFormulaR1C1
++  ITEM Assertion OK : - getFormulaR1C1
++  ITEM Assertion OK : - Range.Copy() and Range.PasteSpecial()
++  ITEM Assertion OK : - Range.Copy(Range("I10"))
++  ITEM Assertion OK : PasteSpecial Paste:=xlPasteValues
++  ITEM Assertion OK : PasteSpecial Paste:=xlPasteFormulas
++  ITEM Assertion OK : PasteSpecial Paste:=xlPasteFormats
++  ITEM Assertion OK : PasteSpecial 
++  ITEM Assertion OK : PasteSpecial SkipBlanks:=True
++  ITEM Assertion OK : PasteSpecial Operation:=xlPasteSpecialOperationAdd
++  ITEM Assertion OK : PasteSpecial Operation:=xlPasteSpecialOperationSubtract
++  ITEM Assertion OK : PasteSpecial Operation:=xlPasteSpecialOperationMultiply
++  ITEM Assertion OK : PasteSpecial Operation:=xlPasteSpecialOperationDivide
++  ITEM Assertion OK : PasteSpecial Transpose:=True
++  ITEM Assertion OK : ActiveWorkbook.Name
++  ITEM Assertion OK : ActiveWorkbook.FullName und ActiveWorkbook.Path
++  ITEM Assertion OK : -  = Range("K22").End (xlDown)
++  ITEM Assertion OK : -  = Range("K22").End (xlUo)
++  ITEM Assertion OK : -  = Range("K22").End (xlToLeft)
++  ITEM Assertion OK : -  = Range("K22").End (xlRight)
++  ITEM Assertion OK : -  ActiveSpreadsheet.Next
++  ITEM Assertion OK : -  ActiveSpreadsheet.Next
++  ITEM Assertion OK : -  ActiveSpreadsheet.Previous
++  ITEM Assertion OK : -  ActiveSpreadsheet.Previous
++  ITEM Assertion OK : -  Range("J4:J11").AutoFilter field:=1, Criteria1:="x"
++  ITEM Assertion OK : -  Range("J4:J11").AutoFilter field:=1, Criteria1:="<>"
++  ITEM Assertion OK : -  Range("J4:J11").AutoFilter field:=1, Criteria1:="="
++  ITEM Assertion OK : -  Range("J4:J11").AutoFilter 
++  ITEM Assertion OK : -  ActiveSheet.Resize.Select
++  ITEM Assertion OK : -  Application.GoTo Reference:="R8C2"
++  ITEM Assertion OK : -  Application.GoTo Reference:="R[8]C[2]"
++  ITEM Assertion OK : -  Application.GoTo Reference:="R8C2"
++  ITEM Assertion OK : -  Range.Group - please check visually
++  ITEM Assertion OK : -  Range.Group - please check visually
++  ITEM Assertion OK : -  Range.Ungroup- please check visually
++  ITEM Assertion OK : -  Range.Ungroup - please check visually
++  ITEM Assertion OK : -  Range.Group - please check visually
++  ITEM Assertion OK : -  Range.Group - please check visually
++  ITEM Assertion OK : -  Range.clearOutline - please check visually
++  ITEM Assertion OK : -  Range.AutoOutline - please check visually
++  ITEM Assertion OK : -  Range.AutoOutline - please check visually
++  ITEM Assertion OK : -  ActiveSheet.UsedRange.Select
++  ITEM Assertion FAIL : -  Range("A13").AddIndent
++  ITEM Assertion OK : -  Range("A13").IndentLevel set
++  ITEM Assertion OK : -  Range("A13").IndentLevel get
++  ITEM Assertion OK : -  Range("A13").IndentLevel get
++  ITEM Assertion OK : - Range.Copy() and Range.PasteSpecial()
++  ITEM Assertion OK : - Range.Copy() and Range.PasteSpecial()
++  ITEM Assertion OK : - Range.Copy() and Range.PasteSpecial()
++  ITEM Assertion OK : - Range.Calculate
++  ITEM Assertion OK : Worksheet.Calculate
++  ITEM Assertion OK : - Application.Calculate
++  ITEM Assertion OK : Global.Calculate
++  ITEM Assertion OK : Calculation set
++  ITEM Assertion OK : -  = ActiveWorkbook.Colors(3) set
++  ITEM Assertion OK : -  = ActiveWorkbook.ResetColors
++  ITEM Assertion OK : -  = ActiveWorkbook.Colors(3) get
++  ITEM FAIL (RangeTest3)
++ TEST Not succesfully completed : RangeTest3
++END   TestCalc
++Test run finished : 31/05/2007 11:02:12
+Index: sc/source/ui/vba/testvba/TestDocuments/logs/unix/AutoFilter.log
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/logs/unix/AutoFilter.log
+diff -N sc/source/ui/vba/testvba/TestDocuments/logs/unix/AutoFilter.log
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/testvba/TestDocuments/logs/unix/AutoFilter.log	28 Jan 2008 17:30:46 -0000	1.1.2.1
+@@ -0,0 +1,20 @@
++Test run started : 18/07/2007 10:56:38
++----------------------------------------------------------------
++TestAddress
++ TEST START : TestAddress
++  ITEM Assertion OK : test1 'starts with' string criteria
++  ITEM Assertion OK : test2 'not equal to' string criteria
++  ITEM Assertion OK : test3 'ends with' string criteria
++  ITEM Assertion OK : test4 field 'all' 
++  ITEM Assertion OK : test5 numeric '<15' 
++  ITEM Assertion OK : test6 numeric '>=15' 
++  ITEM Assertion OK : test7 numeric '<=12' 
++Test Results
++============
++
++Tests passed: 7
++Tests failed: 0
++
++END 'TestAddress
++ TEST OK : TestAddress
++Test run finished : 18/07/2007 10:56:44
+Index: sc/source/ui/vba/testvba/TestDocuments/logs/unix/MiscRangeTests.log
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/logs/unix/MiscRangeTests.log
+diff -N sc/source/ui/vba/testvba/TestDocuments/logs/unix/MiscRangeTests.log
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/testvba/TestDocuments/logs/unix/MiscRangeTests.log	28 Jan 2008 17:30:46 -0000	1.1.2.1
+@@ -0,0 +1,45 @@
++Test run started : 17/07/2007 20:54:56
++----------------------------------------------------------------
++MiscRangeTests
++ TEST START : MiscRangeTests
++  ITEM Assertion OK : test 1
++  ITEM Assertion OK : test 2
++  ITEM Assertion OK : test 3
++  ITEM Assertion OK : test 4
++  ITEM Assertion OK : test 5
++  ITEM Assertion OK : test 6
++  ITEM Assertion OK : test 7
++  ITEM Assertion OK : test 8
++  ITEM Assertion OK : test 9
++  ITEM Assertion OK : test 10
++  ITEM Assertion OK : test 11
++  ITEM Assertion OK : test 12
++  ITEM Assertion OK : test 13
++  ITEM Assertion OK : test 14
++  ITEM Assertion OK : test 15
++  ITEM Assertion OK : test 16
++  ITEM Assertion OK : test 17
++  ITEM Assertion OK : test 18
++  ITEM Assertion OK : test 19
++  ITEM Assertion OK : test 20
++  ITEM Assertion OK : test 21
++  ITEM Assertion OK : test 22
++  ITEM Assertion OK : test 23
++  ITEM Assertion OK : test 24
++  ITEM Assertion OK : test 25
++  ITEM Assertion OK : test 26
++  ITEM Assertion OK : test 27
++  ITEM Assertion OK : test 28
++  ITEM Assertion OK : test 29
++  ITEM Assertion OK : test 30
++  ITEM Assertion OK : test 31
++No. tests: 31
++Summary
++=======
++Run:       31
++Passed:    31
++Failed:    0
++
++END 'MiscRangeTests
++ TEST OK : MiscRangeTests
++Test run finished : 17/07/2007 20:55:03
+Index: sc/source/ui/vba/testvba/TestDocuments/logs/unix/Ranges-2.log
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/logs/unix/Ranges-2.log
+diff -N sc/source/ui/vba/testvba/TestDocuments/logs/unix/Ranges-2.log
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/testvba/TestDocuments/logs/unix/Ranges-2.log	28 Jan 2008 17:30:46 -0000	1.1.2.1
+@@ -0,0 +1,68 @@
++Test run started : 19/06/2007 11:14:01
++----------------------------------------------------------------
++ClearFormtsIssue
++ TEST START : ClearFormtsIssue
++  ITEM Assertion OK : Range.Font.Bold is: True
++  ITEM Assertion OK : Range.Font.Bold is: False
++END 'ClearFormtsIssue' Symbol
++ TEST OK : ClearFormtsIssue
++----------------------------------------------------------------
++VerticalAlignment-Issue
++ TEST START : VerticalAlignment-Issue
++  ITEM Assertion OK : -  Range.VerticalAlignment (get)
++  ITEM Assertion OK : -  Range.VerticalAlignment (set)
++  ITEM Assertion OK : -  Range.VerticalAlignment (get)
++  ITEM Assertion OK : -  Range.VerticalAlignment (get)
++  ITEM Assertion OK : -  Range.VerticalAlignment (set)
++  ITEM Assertion OK : -  Range.VerticalAlignment (get)
++  ITEM Assertion OK : -  Range.VerticalAlignment (set)
++  ITEM Assertion OK : Range.VeritcalAlignment is Null
++END 'VerticalAlignment-Issue' Symbol
++ TEST OK : VerticalAlignment-Issue
++----------------------------------------------------------------
++HorizontalAlignment-Issue
++ TEST START : HorizontalAlignment-Issue
++  ITEM Assertion OK : -  Range.HorizontalAlignment (get)
++  ITEM Assertion OK : -  Range.HorizontalAlignment (set)
++  ITEM Assertion OK : -  Range.HorizontalAlignment (get)
++  ITEM Assertion OK : -  Range.HorizontalAlignment (set)
++  ITEM Assertion OK : -  Range.HorizontalAlignment (get)
++  ITEM Assertion OK : -  Range.HorizontalAlignment (set)
++  ITEM Assertion OK : -  Range.HorizontalAlignment (get)
++  ITEM Assertion OK : -  Range.HorizontalAlignment (set)
++  ITEM Assertion OK : Range.HorizontalAlignment is Null
++END 'HorizontalAlignment-Issue' Symbol
++ TEST OK : HorizontalAlignment-Issue
++----------------------------------------------------------------
++WrapText-Issue
++ TEST START : WrapText-Issue
++  ITEM Assertion OK : -  Range.WrapText (get)
++  ITEM Assertion OK : -  Range.WrapText (get)
++  ITEM Assertion OK : Range.WrapText is Null
++END 'WrapText-Issue' Symbol
++ TEST OK : WrapText-Issue
++----------------------------------------------------------------
++FontBorderIssues
++ TEST START : FontBorderIssues
++  ITEM Assertion OK : -  = Borders.Color (getColor)
++  ITEM Assertion OK : -  = Font.Color (getColor)
++END 'FontBorderIssues' Symbol
++ TEST OK : FontBorderIssues
++----------------------------------------------------------------
++RangeSizeIssues
++ TEST START : RangeSizeIssues
++  ITEM Assertion OK : Range.Left is: 118.8432
++  ITEM Assertion OK : Range.Top is: 92.16585
++  ITEM Assertion OK : Range.Width is: 226.2
++  ITEM Assertion OK : Range.Height is: 271.5
++END 'RangeSizeIssues' Symbol
++ TEST OK : RangeSizeIssues
++----------------------------------------------------------------
++ApplicationIssues
++ TEST START : ApplicationIssues
++  ITEM Assertion OK : Range.Address is: $E$8:$G$13,$G$13:$K$19
++  ITEM Assertion OK : Range.Address is: $E$8:$G$13,$G$13:$K$19
++  ITEM Assertion OK : Application.ActiveSheet.Name: Sheet1
++END 'ApplicationIssues' Symbol
++ TEST OK : ApplicationIssues
++Test run finished : 19/06/2007 11:14:02
+Index: sc/source/ui/vba/testvba/TestDocuments/logs/unix/Ranges-3.log
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/logs/unix/Ranges-3.log
+diff -N sc/source/ui/vba/testvba/TestDocuments/logs/unix/Ranges-3.log
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/testvba/TestDocuments/logs/unix/Ranges-3.log	28 Jan 2008 17:30:46 -0000	1.1.2.1
+@@ -0,0 +1,8 @@
++Test run started : 19/06/2007 11:26:09
++----------------------------------------------------------------
++MyGoalseek-Issue
++ TEST START : MyGoalseek-Issue
++  ITEM Assertion OK : Variable Range value: 15
++END 'MyGoalseek-Issue' Symbol
++ TEST OK : MyGoalseek-Issue
++Test run finished : 19/06/2007 11:26:10
+Index: sc/source/ui/vba/testvba/TestDocuments/logs/unix/Ranges.log
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/logs/unix/Ranges.log
+diff -N sc/source/ui/vba/testvba/TestDocuments/logs/unix/Ranges.log
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/testvba/TestDocuments/logs/unix/Ranges.log	28 Jan 2008 17:30:46 -0000	1.1.2.1
+@@ -0,0 +1,280 @@
++Test run started : 19/06/2007 11:17:14
++----------------------------------------------------------------
++ApplicationMethods
++ TEST START : ApplicationMethods
++  ITEM Assertion OK :  Name of Workbook is: Ranges.xls
++  ITEM Assertion OK :  Address of Application.Columns is: $A:$A
++  ITEM Assertion OK :  Address of Application.Rows is: $1:$1
++  ITEM Assertion OK :  Address of Application.Range is: $1:$1,$5:$7
++  ITEM Assertion OK :  Please check manually: DefaultFilePath is: /data4/home/npower/Documents
++  ITEM Assertion OK :  Please check manually: Library Path is: /data4/sles/patchCheckBuild/ooo-build/InstallDir/UserInstallation/user/basic
++  ITEM Assertion OK :  Please check manually: Template Path is: /data4/sles/patchCheckBuild/ooo-build/InstallDir/UserInstallation/user/template
++  ITEM Assertion OK :  FileSeparator is /
++  ITEM Assertion OK :  Name of ActiveWorkbook is: Ranges.xls
++END 'ApplicationMethods' Symbol
++ TEST OK : ApplicationMethods
++----------------------------------------------------------------
++Insert-Issue
++ TEST START : Insert-Issue
++  ITEM Assertion OK : Insert with xlShiftToRight: 10
++END 'Insert-Issue' Symbol
++ TEST OK : Insert-Issue
++----------------------------------------------------------------
++MergeCells-Issue
++ TEST START : MergeCells-Issue
++  ITEM Assertion OK :  Range.MergeCells is True
++  ITEM Assertion FAIL : MergeCells is null: False
++  ITEM Assertion OK : RowCount after Merge: 13
++  ITEM Assertion OK :  Range.MergeCells is False
++  ITEM Assertion OK : MergeCells is null: False
++  ITEM Assertion FAIL : MergeCells of Second Area is null : False
++  ITEM Assertion FAIL : MergeCells of Ranges is Null: False
++  ITEM Assertion OK : RowCount after Merge: 7
++  ITEM Assertion OK :  Range.MergeCells is False
++  ITEM Assertion OK : MergeCells is null: False
++  ITEM Assertion OK : RowCount after Merge: 7
++END 'MergeCells-Issue' Symbol
++ TEST OK : MergeCells-Issue
++----------------------------------------------------------------
++Areas-Issue
++ TEST START : Areas-Issue
++  ITEM Assertion OK : Range Areas Count is2
++  ITEM Assertion OK : First Range Address is: $E$8:$G$13
++  ITEM Assertion OK : First Row is: 8
++  ITEM Assertion OK : First Column is: 5
++  ITEM Assertion OK : EntireRow Address is: $8:$13,$13:$19
++  ITEM Assertion OK : EntireColumn Address is: $E:$G,$G:$K
++  ITEM Assertion OK : Range Count:53
++END 'Areas-Issue' Symbol
++ TEST OK : Areas-Issue
++----------------------------------------------------------------
++Fill-Methods-Issue
++ TEST START : Fill-Methods-Issue
++  ITEM Assertion OK :  Range Value after FillDown: MyFillValue
++  ITEM Assertion OK :  Range Value after FillDown: MyFillValue
++  ITEM Assertion OK :  Range Value after FillDown: MyRightFillValue
++  ITEM Assertion OK :  Range Value after FillDown: MyBottomFillValue
++END 'Fill-Methods-Issue' Symbol
++ TEST OK : Fill-Methods-Issue
++----------------------------------------------------------------
++Range/Item-Method-Issue
++ TEST START : Range/Item-Method-Issue
++  ITEM Assertion OK :  Range of multiple columns is: $A:$A,$C:$C
++  ITEM Assertion OK :  Range of multiple rows is: $1:$1,$5:$7
++  ITEM Assertion OK :  Range of several columns is: $C:$E,$D:$D
++  ITEM Assertion OK :  Range of several rows is: $5:$8,$6:$10
++  ITEM Assertion OK :  Range of several single cells is: $C$5,$E$8
++  ITEM Assertion OK :  Range of several named ranges is: $L$1:$M$6,$E$8:$G$13,$G$13:$K$19
++  ITEM Assertion OK :  Range of a single Item Cell is: $E$21
++  ITEM Assertion OK :  Range of a single Item Cell is: $F$21
++  ITEM Assertion OK :  Range of a single Item Cell is: $F$10
++END 'Range/Item-Method-Issue' Symbol
++ TEST OK : Range/Item-Method-Issue
++----------------------------------------------------------------
++R1C1-Formulas-Issue
++ TEST START : R1C1-Formulas-Issue
++  ITEM Assertion OK :  R1C1 Range.Formula is: =IF(OR(R[-2]C[1]=0,RC[2]="YES"),"")
++  ITEM Assertion FAIL :  Range.Formula is: =IF(OR(J8=0,RC[2]="YES"),"")
++END 'R1C1-Formulas-Issue' Symbol
++ TEST OK : R1C1-Formulas-Issue
++----------------------------------------------------------------
++Verify_Delete
++ TEST START : Verify_Delete
++  ITEM Assertion OK : Ranges are intersecting: $G$13
++  ITEM Assertion OK : Delete with Default: $AJ$4
++  ITEM Assertion OK : Delete with ShifttoLeft: $AJ$4
++  ITEM Assertion OK : Delete with ShiftUp: $M$22
++END 'Verify_Delete' Symbol
++ TEST OK : Verify_Delete
++----------------------------------------------------------------
++Value-Issue
++ TEST START : Value-Issue
++  ITEM Assertion OK : Value of Range is: 12.3
++  ITEM Assertion OK : Text of Range is: 12.3
++  ITEM Assertion OK : Range has Formula: False
++  ITEM Assertion OK : Cell has Formula: False
++  ITEM Assertion FAIL : Text of Range is null: False
++  ITEM Assertion OK : Range has Formula: True
++  ITEM Assertion OK : Cell has Formula: True
++  ITEM Assertion OK : Value of Cell is: 12
++  ITEM Assertion OK : Application.Calculation is : -4135
++  ITEM Assertion OK : Calculation is automated: True
++  ITEM Assertion OK : Range has Formula: True
++  ITEM Assertion OK : Value of Cell is: 16
++  ITEM Assertion OK : Text of Cell is: 16
++  ITEM Assertion OK : Text of Cell is: 16
++  ITEM Assertion OK : Range has Formula after 'ClearContents: False
++  ITEM Assertion OK : Text of Cell is: 
++  ITEM Assertion OK : Text of Cell is: 
++END 'Value-Issue' Symbol
++ TEST OK : Value-Issue
++----------------------------------------------------------------
++AutoFit issue
++ TEST START : AutoFit issue
++  ITEM Assertion OK :  Columns.AutoFit: CurrentWidth is 657
++  ITEM Assertion FAIL :  Rows.AutoFit: CurrentHeight is 78
++END 'AutoFit issue' Symbol
++ TEST OK : AutoFit issue
++----------------------------------------------------------------
++Selections
++ TEST START : Selections
++  ITEM Assertion OK : ActiveCell is : $E$8
++  ITEM Assertion OK : Active Cell is : $E$8
++  ITEM Assertion OK : Number of Cells in Range: 52
++  ITEM Assertion OK : Number of Cells in Range: 52
++  ITEM Assertion OK : Number of Cells in Range: 52
++END 'Selections' Symbol
++ TEST OK : Selections
++----------------------------------------------------------------
++Offset-Resize
++ TEST START : Offset-Resize
++  ITEM Assertion OK : Offset is : $G$10:$I$15,$I$15:$M$21
++  ITEM Assertion OK : Offset is : $G$7:$I$12,$I$12:$M$18
++  ITEM Assertion OK :   Resized Range is : $A$20:$D$23
++END 'Offset-Resize' Symbol
++ TEST OK : Offset-Resize
++----------------------------------------------------------------
++Ranges-Address
++ TEST START : Ranges-Address
++  ITEM Assertion OK : Range Address is: $E$8:$G$13,$G$13:$K$19
++  ITEM Assertion OK : Range Address is: $E8:$G13,$G13:$K19
++  ITEM Assertion OK : Range Address is: E$8:G$13,G$13:K$19
++  ITEM Assertion OK : Range Address is: R8C5:R13C7,R13C7:R19C11
++  ITEM Assertion FAIL : Range Address is: R8C5:R13C7,R13C7:R19C11
++  ITEM Assertion OK : Range Address is: R8C5:R13C7,R13C7:R19C11
++  ITEM Assertion OK : Range Address is: R[6]C[3]:R[11]C[5],R[11]C[5]:R[17]C[9]
++  ITEM Assertion OK : RangeAddress is [Ranges.xls]Sheet1!$E$8:$G$13,$G$13:$K$19
++END 'Ranges-Address' Symbol
++ TEST OK : Ranges-Address
++----------------------------------------------------------------
++Range-Address
++ TEST START : Range-Address
++  ITEM Assertion OK : Range Address is: $E$8:$G$13
++  ITEM Assertion OK : Range Address is: $E8:$G13
++  ITEM Assertion OK : Range Address is: E$8:G$13
++  ITEM Assertion OK : Range Address is: R8C5:R13C7
++  ITEM Assertion FAIL : Range Address is: R8C5:R13C7
++  ITEM Assertion OK : Range Address is: R8C5:R13C7
++  ITEM Assertion OK : Range Address is: R[6]C[3]:R[11]C[5]
++  ITEM Assertion OK : RangeAddress is [Ranges.xls]Sheet1!$E$8:$G$13
++END 'Range-Address' Symbol
++ TEST OK : Range-Address
++----------------------------------------------------------------
++Column-Address
++ TEST START : Column-Address
++  ITEM Assertion OK : Range Address is: $F$8:$F$13
++  ITEM Assertion OK : Range Address is: $F8:$F13
++  ITEM Assertion OK : Range Address is: F$8:F$13
++  ITEM Assertion OK : Range Address is: R8C6:R13C6
++  ITEM Assertion FAIL : Range Address is: R8C6:R13C6
++  ITEM Assertion OK : Range Address is: R8C6:R13C6
++  ITEM Assertion OK : Range Address is: R[6]C[4]:R[11]C[4]
++  ITEM Assertion OK : RangeAddress is [Ranges.xls]Sheet1!$F$8:$F$13
++END 'Column-Address' Symbol
++ TEST OK : Column-Address
++----------------------------------------------------------------
++Row-Address
++ TEST START : Row-Address
++  ITEM Assertion OK : Range Address is: $E$9:$G$9
++  ITEM Assertion OK : Range Address is: $E9:$G9
++  ITEM Assertion OK : Range Address is: E$9:G$9
++  ITEM Assertion OK : Range Address is: R9C5:R9C7
++  ITEM Assertion FAIL : Range Address is: R9C5:R9C7
++  ITEM Assertion OK : Range Address is: R9C5:R9C7
++  ITEM Assertion OK : Range Address is: R[7]C[3]:R[7]C[5]
++  ITEM Assertion OK : RangeAddress is [Ranges.xls]Sheet1!$E$9:$G$9
++END 'Row-Address' Symbol
++ TEST OK : Row-Address
++----------------------------------------------------------------
++SingleCell-Address
++ TEST START : SingleCell-Address
++  ITEM Assertion OK : Range Address is: $F$9
++  ITEM Assertion OK : Range Address is: $F9
++  ITEM Assertion OK : Range Address is: F$9
++  ITEM Assertion OK : Range Address is: R9C6
++  ITEM Assertion FAIL : Range Address is: R9C6
++  ITEM Assertion OK : Range Address is: R9C6
++  ITEM Assertion OK : Range Address is: R[7]C[4]
++  ITEM Assertion OK : RangeAddress is [Ranges.xls]Sheet1!$F$9
++END 'SingleCell-Address' Symbol
++ TEST OK : SingleCell-Address
++----------------------------------------------------------------
++Heights and Widths
++ TEST START : Heights and Widths
++  ITEM Assertion OK : Range RowHeight is 40
++  ITEM Assertion OK : Range ColumnWidth is 50
++  ITEM Assertion OK : Range Height is 240
++  ITEM Assertion OK : Range Width is 795
++  ITEM Assertion OK : Range RowHeight is 50
++  ITEM Assertion OK : Range ColumnWidth is 50
++  ITEM Assertion OK : Range Height is 300
++  ITEM Assertion OK : Range Width is 795
++  ITEM Assertion FAIL : RowHeight is null: False
++  ITEM Assertion OK : ColumnWidth is null: True
++END 'Heights and Widths' Symbol
++ TEST OK : Heights and Widths
++----------------------------------------------------------------
++RangeRowColumn-Issue
++ TEST START : RangeRowColumn-Issue
++  ITEM Assertion OK : Row is: 8
++  ITEM Assertion OK : Column is: 5
++  ITEM Assertion OK : EntireRow.Columns.Count = 256
++  ITEM Assertion OK : EntireColumn.Rows.Count = 131072
++END 'RangeRowColumn-Issue' Symbol
++ TEST OK : RangeRowColumn-Issue
++----------------------------------------------------------------
++Replace-Issue
++ TEST START : Replace-Issue
++  ITEM Assertion OK : Value after Replace: YourValue
++  ITEM Assertion OK : Value after Replace: YourValue
++  ITEM Assertion OK : Value after Replace: ReplaceValue
++  ITEM Assertion OK : Value after Replace: New ReplaceValue
++  ITEM Assertion OK : Value after Replace: New ReplaceValue
++  ITEM Assertion OK : Value after Replace: New Replace
++  ITEM Assertion OK : Value after Replace: 
++END 'Replace-Issue' Symbol
++ TEST OK : Replace-Issue
++----------------------------------------------------------------
++Hidden-Issue
++ TEST START : Hidden-Issue
++  ITEM Assertion OK : -  Range.Rows.Hidden (set)
++  ITEM Assertion OK : -  Range.Rows.Hidden (get)
++  ITEM Assertion OK : -  Range.Rows.Item(1).Hidden (set)
++  ITEM Assertion OK : -  Range.Rows.Item(1).Hidden (get)
++  ITEM Assertion OK : -  Range.Columns.Hidden (set)
++  ITEM Assertion OK : -  Range.Columns.Hidden (get)
++  ITEM Assertion OK : -  Range.Columns.Item(1).Hidden (set)
++  ITEM Assertion OK : -  Range.Columns.Item(1).Hidden (get)
++END 'Hidden-Issue' Symbol
++ TEST OK : Hidden-Issue
++----------------------------------------------------------------
++End issue
++ TEST START : End issue
++  ITEM Assertion OK : -  = $E$48
++  ITEM Assertion OK : -  = $E$1
++  ITEM Assertion OK : -  = $E$3
++  ITEM Assertion OK : -  = $A$8
++  ITEM Assertion OK : -  = $B$8
++  ITEM Assertion OK : -  = $IV$8
++  ITEM Assertion OK : -  = $Z$8
++END 'End issue' Symbol
++ TEST OK : End issue
++----------------------------------------------------------------
++Outline issue
++ TEST START : Outline issue
++  ITEM Assertion OK : -  Range.clearOutline - please check visually
++  ITEM Assertion OK : -  Range.AutoOutline - please check visually
++  ITEM Assertion OK : -  Range.AutoOutline - please check visually
++END 'Outline issue' Symbol
++ TEST OK : Outline issue
++----------------------------------------------------------------
++Validation
++ TEST START : Validation
++  ITEM Assertion OK : Validation Input Message is : Attention!
++  ITEM Assertion OK : Validation Input Message is : Enter an integer from five to ten
++  ITEM Assertion OK : Validation Error Title is : You must enter a number from five to ten
++  ITEM Assertion OK : Validation Error Message is : An Error occured
++  ITEM Assertion OK : Validation Error Title is : Microsoft Excel
++END 'Validation' Symbol
++ TEST OK : Validation
++Test run finished : 19/06/2007 11:17:18
+Index: sc/source/ui/vba/testvba/TestDocuments/logs/unix/Shapes.log
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/logs/unix/Shapes.log
+diff -N sc/source/ui/vba/testvba/TestDocuments/logs/unix/Shapes.log
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/testvba/TestDocuments/logs/unix/Shapes.log	28 Jan 2008 17:30:46 -0000	1.1.2.1
+@@ -0,0 +1,77 @@
++Test run started : 10/16/2007 05:25:21 PM
++BEGIN Shapes_Collection_Behaviour
++ TEST START : Shapes_Collection_Behaviour
++  ITEM Assertion OK : Name of indexed shape should be 'Sheet2Shape1' 
++  ITEM Assertion OK : Name of indexed shape should be 'Sheet2Shape2' 
++ TEST Success. : Shapes_Collection_Behaviour
++END Shapes_Collection_Behaviour
++BEGIN Shapes_Select_Item
++ TEST START : Shapes_Select_Item
++  ITEM Assertion OK : Correctly selected shape through Range
++  ITEM Assertion OK : Correctly selected shape through Item
++  ITEM Assertion OK : Needs to be visually checked. Is there a line on the document?
++  ITEM Assertion OK : Needs to be visually checked. Are All Shapes Selected?
++ TEST Success. : Shapes_Select_Item
++END Shapes_Select_Item
++BEGIN Shapes_Fill
++ TEST START : Shapes_Fill
++  ITEM Assertion OK : correctly set visibility of shape fill
++  ITEM Assertion OK : correctly set transparency of shape line
++  ITEM Assertion OK : correctly set forecolor of shape fill
++  ITEM Assertion FAIL : correctly set backcolor of shape fill
++  ITEM Assertion OK : the success of the TwoColorGradient method needs to be verified visually!
++  ITEM Assertion OK : correctly set forecolor of shape fill
++  ITEM Assertion FAIL : correctly set forecolor of shape fill
++ TEST Success. : Shapes_Fill
++END  Shapes_Fill
++BEGIN Shapes_Line
++ TEST START : Shapes_Line
++  ITEM Assertion FAIL : correctly set weight of shape line
++  ITEM Assertion OK : correctly set visibility of shape line
++  ITEM Assertion OK : correctly set transparency of shape line
++  ITEM Assertion OK : correctly set dash style of shape line
++  ITEM Assertion OK : correctly set dash style of shape line
++  ITEM Assertion OK : correctly set forecolor of shape line
++  ITEM Assertion FAIL : correctly set backcolor of shape line
++ TEST Success. : Shapes_Line
++END  Shapes_Line
++BEGIN Shapes_TextFrame
++ TEST START : Shapes_TextFrame
++  ITEM Assertion OK : correctly set Autosize of Shape TextFrame
++ TEST Success. : Shapes_TextFrame
++END  Shapes_TextFrame
++BEGIN Shapes_SimpleGeometry
++ TEST START : Shapes_SimpleGeometery
++  ITEM Assertion OK : shape height should be 47.0425168477155 and got 46.9984222363199
++  ITEM Assertion OK : shape width should be 101.467710269751 and got 101.423615658355
++  ITEM Assertion OK : shape left should be 68.5574761223637 and got 68.5417279658754
++  ITEM Assertion OK : shape top should be 42.0251943291216 and got 42.0094461726333
++  ITEM Assertion OK : shape rotation should be 0 and got 0
++  ITEM Assertion OK : shape rotation should be 25 and got 25
++  ITEM Assertion OK : shape incrementrotation should be 50 and got 50
++  ITEM Assertion OK : shape incrementleft should be 70.6834602404119 and got 70.6677120839236
++  ITEM Assertion OK : shape incrementtop should be 91.262986503119 and got 91.2472383466307
++ TEST Success. : Shapes_SimpleGeometery
++END Shapes_SimpleGeometry
++BEGIN Shapes_Range
++ TEST START : Shapes_Range
++  ITEM Assertion OK : expected Sheets(2).Shapes.Range(1) to contain 1 element, it contains 1
++  ITEM Assertion OK : expected Sheets(2).Shapes.Range(1) to return Sheet2Shape1 got Sheet2Shape1
++  ITEM Assertion OK : expected Sheets(2).Shapes.Range(Sheet2Shape3) to contain 1 element, it contains 1
++  ITEM Assertion OK : expected Sheets(2).Shapes.Range(Sheet2Shape3) to return Sheet2Shape3 got Sheet2Shape3
++  ITEM Assertion OK : expected Sheets(2).Shapes.Range(Array(3, 1) to contain 2 elements, it contains 2
++  ITEM Assertion OK : expected Sheets(2).Shapes.Range(Array(3, 1) to return concated element/shape names Sheet2Shape3Sheet2Shape1 and got Sheet2Shape3Sheet2Shape1
++  ITEM Assertion OK : expected Sheets(2).Shapes.Range(Array('Sheet2Shape3', 1, 'Sheet2Shape2')) to contain 3 elements, it contains 3
++  ITEM Assertion OK : expected Sheets(2).Shapes.Range(Array('Sheet2Shape3', 1, 'Sheet2Shape2')) to return concated element/shape names Sheet2Shape3Sheet2Shape1Sheet2Shape2 and got Sheet2Shape3Sheet2Shape1Sheet2Shape2
++ TEST Success. : Shapes_Range
++END Shapes_Range
++BEGIN Shapes_ShapeRange
++ TEST START : Shapes_ShapeRange
++  ITEM Assertion OK : ShapeRange.IncrementLeft shp1.left should be 90.6677120839236 and got 90.6519627935771
++  ITEM Assertion OK : ShapeRange.IncrementLeft shp2.left should be 240.02518299054 and got 240.009433700193
++  ITEM Assertion OK : ShapeRange.IncrementTop shp1.Top should be 111.247238346631 and got 111.231489056284
++  ITEM Assertion OK : ShapeRange.IncrementTop shp2.Top should be 65.0708633026228 and got 65.0551140122763
++  ITEM Assertion OK : ShapeRange.IncrementRotation shp1.Rotation should be 70 and got 70
++  ITEM Assertion OK : ShapeRange.IncrementRotation shp2.Rotation should be 20 and got 20
++END Shapes_ShapeRange
++Test run finished : 10/16/2007 05:25:22 PM
+Index: sc/source/ui/vba/testvba/TestDocuments/logs/unix/TestAddress.log
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/logs/unix/TestAddress.log
+diff -N sc/source/ui/vba/testvba/TestDocuments/logs/unix/TestAddress.log
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/testvba/TestDocuments/logs/unix/TestAddress.log	28 Jan 2008 17:30:46 -0000	1.1.2.1
+@@ -0,0 +1,62 @@
++Test run started : 17/07/2007 20:56:04
++----------------------------------------------------------------
++TestAddress
++ TEST START : TestAddress
++  ITEM Assertion OK : test1 Range('e3:f3') A1 style addressing
++  ITEM Assertion OK : test2 Range('e3:f3') R1C1 style addressing
++  ITEM Assertion OK : test3 Range ('e:f')  A1 style addressing
++  ITEM Assertion OK : test4 Range ('e:f')  R1C1 style addressing
++  ITEM Assertion OK : test5 Columns A1 style addressing
++  ITEM Assertion OK : test6 Columns R1C1 style addressing
++  ITEM Assertion OK : test7 Columns(3) A1 style addressing
++  ITEM Assertion OK : test8 Columns(3) R1C1 style addressing
++  ITEM Assertion OK : test9 Columns('e') A1 style addressing
++  ITEM Assertion OK : test10 Columns('e') R1C1 style addressing
++  ITEM Assertion OK : test11 Columns('b:d') A1 style addressing
++  ITEM Assertion OK : test12 Columns('b:d') R1C1 style addressing
++  ITEM Assertion OK : test13 Range('c1:g10').Columns A1 style addressing
++  ITEM Assertion OK : test14 Range('c1:g10').Columns R1C1 style addressing
++  ITEM Assertion OK : test15 Range('c1:g10').Columns(1) A1 style addressing
++  ITEM Assertion OK : test16 Range('c1:g10').Columns(1) R1C1 style addressing
++  ITEM Assertion OK : test17 Range('c1:g10').Columns('a') A1 style addressing
++  ITEM Assertion OK : test18 Range('c1:g10').Columns('a') R1C1 style addressing
++  ITEM Assertion OK : test19 Range('c1:g10').Columns('c') A1 style addressing
++  ITEM Assertion OK : test20 Range('c1:g10').Columns('c') R1C1 style addressing
++  ITEM Assertion OK : test21 Range('c1:g10').Columns('x:z') A1 style addressing
++  ITEM Assertion OK : test22 Range('c1:g10').Columns('x:z') R1C1 style addressing
++  ITEM Assertion OK : test23 Range('c1:g10').Columns(30) A1 style addressing
++  ITEM Assertion OK : test24 Range('c1:g10').Columns(30) R1C1 style addressing
++  ITEM Assertion OK : test25 Worksheets('Sheet2').Cells(1, 1) A1 style addressing
++  ITEM Assertion OK : test26 Worksheets('Sheet2').Cells(1, 1) A1 style addressing, RowAddressAbsolute is false 
++  ITEM Assertion OK : test27 Worksheets('Sheet2').Cells(1, 1) A1 style addressing, ColAddressAbsolute is false 
++  ITEM Assertion OK : test28 Worksheets('Sheet2').Cells(1, 1) R1C1 style addressing
++  ITEM Assertion OK : test29 Worksheets('Sheet2').Range('A1:E5').EntireColumn A1 style addressing
++  ITEM Assertion OK : test30 Worksheets('Sheet2').Range('A1').EntireColumn A1 style addressing
++  ITEM Assertion OK : test31 Worksheets('Sheet2').Range('A1:E5').EntireRow A1 style addressing
++  ITEM Assertion OK : test32 Worksheets('Sheet2').Range('A1') A1 style addressing
++  ITEM Assertion OK : test33 Worksheets('Sheet2').Range('IV65536').EntireRow A1 style addressing
++  ITEM Assertion OK : test34 Worksheets('Sheet2').Range('IU2:IV65536') A1 style addressing
++  ITEM Assertion OK : test35 Range('c1:g10').Columns('x:z') R1C1 style addressing
++  ITEM Assertion OK : test36 Worksheets('Sheet2').Range('A1') A1 style addressing
++  ITEM Assertion OK : test37 Worksheets('Sheet2').Range('A1:E5').EntireColumn A1 style addressing
++  ITEM Assertion OK : test38 Worksheets('Sheet2').Range('10:12') A1 style addressing
++  ITEM Assertion OK : test39 Worksheets('Sheet2').Range('10:12') R1C1 style addressing
++  ITEM Assertion OK : test40 Range('Sheet3!A1:B4') A1 style addressing
++  ITEM Assertion OK : test41 Range('Sheet3!A1,B1,D4:F20') A1 style addressing
++  ITEM Assertion OK : test42 Range('g20:h40').Columns('c:c')
++  ITEM Assertion OK : test43 Range('g20:h40').Columns('c:f')
++  ITEM Assertion OK : test44 Range('g20:h40').Columns(-1)
++  ITEM Assertion OK : test45 Range('c4:g10').Rows(-1)
++  ITEM Assertion OK : test46 Range('a2:b4').Rows('1:1')
++  ITEM Assertion OK : test47 Range('a2:b4').Rows('1:2')
++  ITEM Assertion OK : test48 Range('a2:b4').Rows('2:2')
++  ITEM Assertion OK : test49 Range('a2:b4').Rows('2:3')
++Test Results
++============
++
++Tests passed: 49
++Tests failed: 0
++
++END 'TestAddress
++ TEST OK : TestAddress
++Test run finished : 17/07/2007 20:56:05
+Index: sc/source/ui/vba/testvba/TestDocuments/logs/unix/TestCalc_Rangetest.log
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/logs/unix/TestCalc_Rangetest.log
+diff -N sc/source/ui/vba/testvba/TestDocuments/logs/unix/TestCalc_Rangetest.log
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/testvba/TestDocuments/logs/unix/TestCalc_Rangetest.log	28 Jan 2008 17:30:46 -0000	1.1.2.1
+@@ -0,0 +1,60 @@
++Test run started : 30/05/2007 15:59:40
++BEGIN TestCalc
++ TEST START : RangeTest2
++  ITEM Assertion OK : -  Range("D15").Row 
++  ITEM Assertion OK : -  WorkSheet("D15").Range.Row 
++  ITEM Assertion OK : -  Range("D15").Column 
++  ITEM Assertion OK : -  Worksheet.Range("D15").Column 
++  ITEM Assertion OK : -  Range("D1").EntireRow.Valuer 
++  ITEM Assertion OK : -  Range("D1").EntireRow.Valuer 
++  ITEM Assertion OK : -  Range("D1").EntireRow.Columns.Count 
++  ITEM Assertion OK : -  Range("D1").EntireColumn.Rows.Count 
++  ITEM Assertion OK : -  Range("D15").ClearContent
++  ITEM Assertion OK : -  Range("M1:N2").Rows.Hidden (set)
++  ITEM Assertion OK : -  Range("M1:N2").Rows.Hidden (get)
++  ITEM Assertion OK : -  Range("M1:N2").Rows(1).Hidden (set)
++  ITEM Assertion OK : -  Range("M1:N2").Rows(1).Hidden (get)
++  ITEM Assertion OK : -  Range("M1:N2").Columns.Hidden (set)
++  ITEM Assertion OK : -  Range("M1:N2").Columns.Hidden (get)
++  ITEM Assertion OK : -  Range("M1:N2").Columns(1).Hidden (set)
++  ITEM Assertion OK : -  Range("M1:N2").Columns(1).Hidden (get)
++  ITEM Assertion OK : -  Range("B38").Orientation (get)
++  ITEM Assertion OK : -  Range("B38").Orientation (set)
++  ITEM Assertion OK : -  Range("B38").Orientation (set = xlDownward)
++  ITEM Assertion OK : -  Range("B38").Orientation (set)
++  ITEM Assertion OK : -  Range("B38").Orientation (set = xlUpward)
++  ITEM Assertion OK : -  Range("B38").Orientation (set)
++  ITEM Assertion OK : -  Range("B38").Orientation (set = xlVertical)
++  ITEM Assertion OK : -  Range("B38").Orientation (set)
++  ITEM Assertion OK : -  Range("B38").Orientation (set = xlVertical)
++  ITEM Assertion OK : -  Range("B39").WrapText (get)
++  ITEM Assertion OK : -  Range("B39").WrapText (set)
++  ITEM Assertion OK : -  Range("B39").WrapText (set)
++  ITEM Assertion OK : -  Range("E39").MergeCells (get)
++  ITEM Assertion OK : -  Range("F39").MergeCells (get)
++  ITEM Assertion OK : -  Range("E39").MergeCells (set)
++  ITEM Assertion FAIL : -  Range("F39").MergeCells (set)
++  ITEM Assertion OK : -  Range("E39").MergeCells (set)
++  ITEM Assertion OK : -  Range("F39").MergeCells (set)
++  ITEM Assertion OK : -  Range("C41:C42").Replace  MatchCase:=True 
++  ITEM Assertion OK : -  Range("C41:C42").Replace  MatchCase:=True 
++  ITEM Assertion OK : -  Range("D41:D42").Replace  MatchCase:=False 
++  ITEM Assertion OK : -  Range("B39").VerticalAlignment (get)
++  ITEM Assertion OK : -  Range("B39").VerticalAlignment (set)
++  ITEM Assertion OK : -  Range("B39").VerticalAlignment (get)
++  ITEM Assertion OK : -  Range("B39").VerticalAlignment (get)
++  ITEM Assertion OK : -  Range("B39").VerticalAlignment (set)
++  ITEM Assertion OK : -  Range("B39").VerticalAlignment (get)
++  ITEM Assertion OK : -  Range("B39").VerticalAlignment (set)
++  ITEM Assertion OK : -  Range("B39").HorizontalAlignment (get)
++  ITEM Assertion OK : -  Range("B39").HorizontalAlignment (set)
++  ITEM Assertion OK : -  Range("B39").HorizontalAlignment (get)
++  ITEM Assertion OK : -  Range("B39").HorizontalAlignment (set)
++  ITEM Assertion OK : -  Range("B39").HorizontalAlignment (get)
++  ITEM Assertion OK : -  Range("B39").HorizontalAlignment (set)
++  ITEM Assertion OK : -  Range("B39").HorizontalAlignment (get)
++  ITEM Assertion OK : -  Range("B39").HorizontalAlignment (set)
++  ITEM FAIL (RangeTest2)
++ TEST Not succesfully completed : RangeTest2
++END   TestCalc
++Test run finished : 30/05/2007 15:59:42
+Index: sc/source/ui/vba/testvba/TestDocuments/logs/unix/TestCalc_Rangetest2.log
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/logs/unix/TestCalc_Rangetest2.log
+diff -N sc/source/ui/vba/testvba/TestDocuments/logs/unix/TestCalc_Rangetest2.log
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/testvba/TestDocuments/logs/unix/TestCalc_Rangetest2.log	28 Jan 2008 17:30:46 -0000	1.1.2.1
+@@ -0,0 +1,65 @@
++Test run started : 18/06/2007 16:34:18
++BEGIN TestCalc
++ TEST START : RangeTest3
++  ITEM Assertion FAIL : - setFormulaR1C1
++  ITEM Assertion OK : - getFormulaR1C1
++  ITEM Assertion OK : - Range.Copy() and Range.PasteSpecial()
++  ITEM Assertion OK : - Range.Copy(Range("I10"))
++  ITEM Assertion OK : PasteSpecial Paste:=xlPasteValues
++  ITEM Assertion OK : PasteSpecial Paste:=xlPasteFormulas
++  ITEM Assertion OK : PasteSpecial Paste:=xlPasteFormats
++  ITEM Assertion OK : PasteSpecial 
++  ITEM Assertion OK : PasteSpecial SkipBlanks:=True
++  ITEM Assertion OK : PasteSpecial Operation:=xlPasteSpecialOperationAdd
++  ITEM Assertion OK : PasteSpecial Operation:=xlPasteSpecialOperationSubtract
++  ITEM Assertion OK : PasteSpecial Operation:=xlPasteSpecialOperationMultiply
++  ITEM Assertion OK : PasteSpecial Operation:=xlPasteSpecialOperationDivide
++  ITEM Assertion OK : PasteSpecial Transpose:=True
++  ITEM Assertion FAIL : ActiveWorkbook.FileFormat
++  ITEM Assertion OK : ActiveWorkbook.Name
++  ITEM Assertion OK : ActiveWorkbook.FullName und ActiveWorkbook.Path
++  ITEM Assertion FAIL : -  = ActiveWorkbook.Colors(3) set
++  ITEM Assertion OK : -  = ActiveWorkbook.ResetColors
++  ITEM Assertion OK : -  = ActiveWorkbook.Colors(3) get
++  ITEM Assertion OK : -  = Range("K22").End (xlDown)
++  ITEM Assertion OK : -  = Range("K22").End (xlUo)
++  ITEM Assertion OK : -  = Range("K22").End (xlToLeft)
++  ITEM Assertion OK : -  = Range("K22").End (xlRight)
++  ITEM Assertion OK : -  ActiveSpreadsheet.Next
++  ITEM Assertion OK : -  ActiveSpreadsheet.Next
++  ITEM Assertion OK : -  ActiveSpreadsheet.Previous
++  ITEM Assertion OK : -  ActiveSpreadsheet.Previous
++  ITEM Assertion OK : -  Range("J4:J11").AutoFilter field:=1, Criteria1:="x"
++  ITEM Assertion OK : -  Range("J4:J11").AutoFilter field:=1, Criteria1:="<>"
++  ITEM Assertion OK : -  Range("J4:J11").AutoFilter field:=1, Criteria1:="="
++  ITEM Assertion OK : -  Range("J4:J11").AutoFilter 
++  ITEM Assertion OK : -  ActiveSheet.Resize.Select
++  ITEM Assertion OK : -  Application.GoTo Reference:="R8C2"
++  ITEM Assertion FAIL : -  Application.GoTo Reference:="R[8]C[2]"
++  ITEM Assertion OK : -  Application.GoTo Reference:="R8C2"
++  ITEM Assertion OK : -  Range.Group - please check visually
++  ITEM Assertion OK : -  Range.Group - please check visually
++  ITEM Assertion OK : -  Range.Ungroup- please check visually
++  ITEM Assertion OK : -  Range.Ungroup - please check visually
++  ITEM Assertion OK : -  Range.Group - please check visually
++  ITEM Assertion OK : -  Range.Group - please check visually
++  ITEM Assertion OK : -  Range.clearOutline - please check visually
++  ITEM Assertion OK : -  Range.AutoOutline - please check visually
++  ITEM Assertion OK : -  Range.AutoOutline - please check visually
++  ITEM Assertion OK : -  ActiveSheet.UsedRange.Select
++  ITEM Assertion OK : -  Range("A13").AddIndent
++  ITEM Assertion OK : -  Range("A13").IndentLevel set
++  ITEM Assertion OK : -  Range("A13").IndentLevel get
++  ITEM Assertion OK : -  Range("A13").IndentLevel get
++  ITEM Assertion OK : - Range.Copy() and Range.PasteSpecial()
++  ITEM Assertion OK : - Range.Copy() and Range.PasteSpecial()
++  ITEM Assertion OK : - Range.Copy() and Range.PasteSpecial()
++  ITEM Assertion OK : - Range.Calculate
++  ITEM Assertion OK : Worksheet.Calculate
++  ITEM Assertion OK : - Application.Calculate
++  ITEM Assertion OK : Global.Calculate
++  ITEM Assertion OK : Calculation set
++  ITEM FAIL (RangeTest3)
++ TEST Not succesfully completed : RangeTest3
++END   TestCalc
++Test run finished : 18/06/2007 16:34:20
+Index: sc/source/ui/vba/testvba/TestDocuments/logs/win/AutoFilter.log
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/logs/win/AutoFilter.log
+diff -N sc/source/ui/vba/testvba/TestDocuments/logs/win/AutoFilter.log
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/testvba/TestDocuments/logs/win/AutoFilter.log	28 Jan 2008 17:30:47 -0000	1.1.2.1
+@@ -0,0 +1,20 @@
++Test run started : 16/10/2007 17:42:01
++----------------------------------------------------------------
++TestAddress
++ TEST START : TestAddress
++  ITEM Assertion OK : test1 'starts with' string criteria
++  ITEM Assertion OK : test2 'not equal to' string criteria
++  ITEM Assertion OK : test3 'ends with' string criteria
++  ITEM Assertion OK : test4 field 'all' 
++  ITEM Assertion OK : test5 numeric '<15' 
++  ITEM Assertion OK : test6 numeric '>=15' 
++  ITEM Assertion OK : test7 numeric '<=12' 
++Test Results
++============
++
++Tests passed: 7
++Tests failed: 0
++
++END 'TestAddress
++ TEST OK : TestAddress
++Test run finished : 16/10/2007 17:42:02
+Index: sc/source/ui/vba/testvba/TestDocuments/logs/win/MiscRangeTests.log
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/logs/win/MiscRangeTests.log
+diff -N sc/source/ui/vba/testvba/TestDocuments/logs/win/MiscRangeTests.log
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/testvba/TestDocuments/logs/win/MiscRangeTests.log	28 Jan 2008 17:30:47 -0000	1.1.2.1
+@@ -0,0 +1,45 @@
++Test run started : 17/07/2007 15:08:56
++----------------------------------------------------------------
++MiscRangeTests
++ TEST START : MiscRangeTests
++  ITEM Assertion OK : test 1
++  ITEM Assertion OK : test 2
++  ITEM Assertion OK : test 3
++  ITEM Assertion OK : test 4
++  ITEM Assertion OK : test 5
++  ITEM Assertion OK : test 6
++  ITEM Assertion OK : test 7
++  ITEM Assertion OK : test 8
++  ITEM Assertion OK : test 9
++  ITEM Assertion OK : test 10
++  ITEM Assertion OK : test 11
++  ITEM Assertion OK : test 12
++  ITEM Assertion OK : test 13
++  ITEM Assertion OK : test 14
++  ITEM Assertion OK : test 15
++  ITEM Assertion OK : test 16
++  ITEM Assertion OK : test 17
++  ITEM Assertion OK : test 18
++  ITEM Assertion OK : test 19
++  ITEM Assertion OK : test 20
++  ITEM Assertion OK : test 21
++  ITEM Assertion OK : test 22
++  ITEM Assertion OK : test 23
++  ITEM Assertion OK : test 24
++  ITEM Assertion OK : test 25
++  ITEM Assertion OK : test 26
++  ITEM Assertion OK : test 27
++  ITEM Assertion OK : test 28
++  ITEM Assertion OK : test 29
++  ITEM Assertion OK : test 30
++  ITEM Assertion OK : test 31
++No. tests: 31
++Summary
++=======
++Run:       31
++Passed:    31
++Failed:    0
++
++END 'MiscRangeTests
++ TEST OK : MiscRangeTests
++Test run finished : 17/07/2007 15:08:59
+Index: sc/source/ui/vba/testvba/TestDocuments/logs/win/Ranges-2.log
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/logs/win/Ranges-2.log
+diff -N sc/source/ui/vba/testvba/TestDocuments/logs/win/Ranges-2.log
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/testvba/TestDocuments/logs/win/Ranges-2.log	28 Jan 2008 17:30:47 -0000	1.1.2.1
+@@ -0,0 +1,68 @@
++Test run started : 10/07/2007 01:55:47
++----------------------------------------------------------------
++ClearFormtsIssue
++ TEST START : ClearFormtsIssue
++  ITEM Assertion OK : Range.Font.Bold is: True
++  ITEM Assertion OK : Range.Font.Bold is: False
++END 'ClearFormtsIssue' Symbol
++ TEST OK : ClearFormtsIssue
++----------------------------------------------------------------
++VerticalAlignment-Issue
++ TEST START : VerticalAlignment-Issue
++  ITEM Assertion OK : -  Range.VerticalAlignment (get)
++  ITEM Assertion OK : -  Range.VerticalAlignment (set)
++  ITEM Assertion OK : -  Range.VerticalAlignment (get)
++  ITEM Assertion OK : -  Range.VerticalAlignment (get)
++  ITEM Assertion OK : -  Range.VerticalAlignment (set)
++  ITEM Assertion OK : -  Range.VerticalAlignment (get)
++  ITEM Assertion OK : -  Range.VerticalAlignment (set)
++  ITEM Assertion OK : Range.VeritcalAlignment is Null
++END 'VerticalAlignment-Issue' Symbol
++ TEST OK : VerticalAlignment-Issue
++----------------------------------------------------------------
++HorizontalAlignment-Issue
++ TEST START : HorizontalAlignment-Issue
++  ITEM Assertion OK : -  Range.HorizontalAlignment (get)
++  ITEM Assertion OK : -  Range.HorizontalAlignment (set)
++  ITEM Assertion OK : -  Range.HorizontalAlignment (get)
++  ITEM Assertion OK : -  Range.HorizontalAlignment (set)
++  ITEM Assertion OK : -  Range.HorizontalAlignment (get)
++  ITEM Assertion OK : -  Range.HorizontalAlignment (set)
++  ITEM Assertion OK : -  Range.HorizontalAlignment (get)
++  ITEM Assertion OK : -  Range.HorizontalAlignment (set)
++  ITEM Assertion OK : Range.HorizontalAlignment is Null
++END 'HorizontalAlignment-Issue' Symbol
++ TEST OK : HorizontalAlignment-Issue
++----------------------------------------------------------------
++WrapText-Issue
++ TEST START : WrapText-Issue
++  ITEM Assertion OK : -  Range.WrapText (get)
++  ITEM Assertion OK : -  Range.WrapText (get)
++  ITEM Assertion OK : Range.WrapText is Null
++END 'WrapText-Issue' Symbol
++ TEST OK : WrapText-Issue
++----------------------------------------------------------------
++FontBorderIssues
++ TEST START : FontBorderIssues
++  ITEM Assertion OK : -  = Borders.Color (getColor)
++  ITEM Assertion OK : -  = Font.Color (getColor)
++END 'FontBorderIssues' Symbol
++ TEST OK : FontBorderIssues
++----------------------------------------------------------------
++RangeSizeIssues
++ TEST START : RangeSizeIssues
++  ITEM Assertion OK : Range.Left is: 100.5291
++  ITEM Assertion OK : Range.Top is: 95.39775
++  ITEM Assertion OK : Range.Width is: 191.25
++  ITEM Assertion OK : Range.Height is: 271.5
++END 'RangeSizeIssues' Symbol
++ TEST OK : RangeSizeIssues
++----------------------------------------------------------------
++ApplicationIssues
++ TEST START : ApplicationIssues
++  ITEM Assertion OK : Range.Address is: $E$8:$G$13,$G$13:$K$19
++  ITEM Assertion OK : Range.Address is: $E$8:$G$13,$G$13:$K$19
++  ITEM Assertion OK : Application.ActiveSheet.Name: Sheet1
++END 'ApplicationIssues' Symbol
++ TEST OK : ApplicationIssues
++Test run finished : 10/07/2007 01:55:48
+Index: sc/source/ui/vba/testvba/TestDocuments/logs/win/Ranges-3.log
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/logs/win/Ranges-3.log
+diff -N sc/source/ui/vba/testvba/TestDocuments/logs/win/Ranges-3.log
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/testvba/TestDocuments/logs/win/Ranges-3.log	28 Jan 2008 17:30:48 -0000	1.1.2.1
+@@ -0,0 +1,8 @@
++Test run started : 10/07/2007 01:55:51
++----------------------------------------------------------------
++MyGoalseek-Issue
++ TEST START : MyGoalseek-Issue
++  ITEM Assertion OK : Variable Range value: 15
++END 'MyGoalseek-Issue' Symbol
++ TEST OK : MyGoalseek-Issue
++Test run finished : 10/07/2007 01:55:51
+Index: sc/source/ui/vba/testvba/TestDocuments/logs/win/Ranges.log
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/logs/win/Ranges.log
+diff -N sc/source/ui/vba/testvba/TestDocuments/logs/win/Ranges.log
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/testvba/TestDocuments/logs/win/Ranges.log	28 Jan 2008 17:30:49 -0000	1.1.2.1
+@@ -0,0 +1,280 @@
++Test run started : 10/07/2007 01:55:56
++----------------------------------------------------------------
++ApplicationMethods
++ TEST START : ApplicationMethods
++  ITEM Assertion OK :  Name of Workbook is: Ranges.xls
++  ITEM Assertion OK :  Address of Application.Columns is: $A:$A
++  ITEM Assertion OK :  Address of Application.Rows is: $1:$1
++  ITEM Assertion OK :  Address of Application.Range is: $1:$1,$5:$7
++  ITEM Assertion OK :  Please check manually: DefaultFilePath is: C:\Documents and Settings\vituosity\My Documents
++  ITEM Assertion OK :  Please check manually: Library Path is: C:\Documents and Settings\vituosity\Application Data\OpenOffice.org2\user\basic
++  ITEM Assertion OK :  Please check manually: Template Path is: C:\Documents and Settings\vituosity\Application Data\OpenOffice.org2\user\template
++  ITEM Assertion OK :  FileSeparator is \
++  ITEM Assertion OK :  Name of ActiveWorkbook is: Ranges.xls
++END 'ApplicationMethods' Symbol
++ TEST OK : ApplicationMethods
++----------------------------------------------------------------
++Insert-Issue
++ TEST START : Insert-Issue
++  ITEM Assertion OK : Insert with xlShiftToRight: 10
++END 'Insert-Issue' Symbol
++ TEST OK : Insert-Issue
++----------------------------------------------------------------
++MergeCells-Issue
++ TEST START : MergeCells-Issue
++  ITEM Assertion OK :  Range.MergeCells is True
++  ITEM Assertion FAIL : MergeCells is null: False
++  ITEM Assertion OK : RowCount after Merge: 13
++  ITEM Assertion OK :  Range.MergeCells is False
++  ITEM Assertion OK : MergeCells is null: False
++  ITEM Assertion FAIL : MergeCells of Second Area is null : False
++  ITEM Assertion FAIL : MergeCells of Ranges is Null: False
++  ITEM Assertion OK : RowCount after Merge: 7
++  ITEM Assertion OK :  Range.MergeCells is False
++  ITEM Assertion OK : MergeCells is null: False
++  ITEM Assertion OK : RowCount after Merge: 7
++END 'MergeCells-Issue' Symbol
++ TEST OK : MergeCells-Issue
++----------------------------------------------------------------
++Areas-Issue
++ TEST START : Areas-Issue
++  ITEM Assertion OK : Range Areas Count is2
++  ITEM Assertion OK : First Range Address is: $E$8:$G$13
++  ITEM Assertion OK : First Row is: 8
++  ITEM Assertion OK : First Column is: 5
++  ITEM Assertion OK : EntireRow Address is: $8:$13,$13:$19
++  ITEM Assertion OK : EntireColumn Address is: $E:$G,$G:$K
++  ITEM Assertion OK : Range Count:53
++END 'Areas-Issue' Symbol
++ TEST OK : Areas-Issue
++----------------------------------------------------------------
++Fill-Methods-Issue
++ TEST START : Fill-Methods-Issue
++  ITEM Assertion OK :  Range Value after FillDown: MyFillValue
++  ITEM Assertion OK :  Range Value after FillDown: MyFillValue
++  ITEM Assertion OK :  Range Value after FillDown: MyRightFillValue
++  ITEM Assertion OK :  Range Value after FillDown: MyBottomFillValue
++END 'Fill-Methods-Issue' Symbol
++ TEST OK : Fill-Methods-Issue
++----------------------------------------------------------------
++Range/Item-Method-Issue
++ TEST START : Range/Item-Method-Issue
++  ITEM Assertion OK :  Range of multiple columns is: $A:$A,$C:$C
++  ITEM Assertion OK :  Range of multiple rows is: $1:$1,$5:$7
++  ITEM Assertion OK :  Range of several columns is: $C:$E,$D:$D
++  ITEM Assertion OK :  Range of several rows is: $5:$8,$6:$10
++  ITEM Assertion OK :  Range of several single cells is: $C$5,$E$8
++  ITEM Assertion OK :  Range of several named ranges is: $L$1:$M$6,$E$8:$G$13,$G$13:$K$19
++  ITEM Assertion OK :  Range of a single Item Cell is: $E$21
++  ITEM Assertion OK :  Range of a single Item Cell is: $F$21
++  ITEM Assertion OK :  Range of a single Item Cell is: $F$10
++END 'Range/Item-Method-Issue' Symbol
++ TEST OK : Range/Item-Method-Issue
++----------------------------------------------------------------
++R1C1-Formulas-Issue
++ TEST START : R1C1-Formulas-Issue
++  ITEM Assertion OK :  R1C1 Range.Formula is: =IF(OR(R[-2]C[1]=0,RC[2]="YES"),"")
++  ITEM Assertion FAIL :  Range.Formula is: =IF(OR(J8=0,RC[2]="YES"),"")
++END 'R1C1-Formulas-Issue' Symbol
++ TEST OK : R1C1-Formulas-Issue
++----------------------------------------------------------------
++Verify_Delete
++ TEST START : Verify_Delete
++  ITEM Assertion OK : Ranges are intersecting: $G$13
++  ITEM Assertion OK : Delete with Default: $AJ$4
++  ITEM Assertion OK : Delete with ShifttoLeft: $AJ$4
++  ITEM Assertion OK : Delete with ShiftUp: $M$22
++END 'Verify_Delete' Symbol
++ TEST OK : Verify_Delete
++----------------------------------------------------------------
++Value-Issue
++ TEST START : Value-Issue
++  ITEM Assertion OK : Value of Range is: 12.3
++  ITEM Assertion OK : Text of Range is: 12.3
++  ITEM Assertion OK : Range has Formula: False
++  ITEM Assertion OK : Cell has Formula: False
++  ITEM Assertion FAIL : Text of Range is null: False
++  ITEM Assertion OK : Range has Formula: True
++  ITEM Assertion OK : Cell has Formula: True
++  ITEM Assertion OK : Value of Cell is: 12
++  ITEM Assertion OK : Application.Calculation is : -4135
++  ITEM Assertion OK : Calculation is automated: True
++  ITEM Assertion OK : Range has Formula: True
++  ITEM Assertion OK : Value of Cell is: 16
++  ITEM Assertion OK : Text of Cell is: 16
++  ITEM Assertion OK : Text of Cell is: 16
++  ITEM Assertion OK : Range has Formula after 'ClearContents: False
++  ITEM Assertion OK : Text of Cell is: 
++  ITEM Assertion OK : Text of Cell is: 
++END 'Value-Issue' Symbol
++ TEST OK : Value-Issue
++----------------------------------------------------------------
++AutoFit issue
++ TEST START : AutoFit issue
++  ITEM Assertion OK :  Columns.AutoFit: CurrentWidth is 467
++  ITEM Assertion FAIL :  Rows.AutoFit: CurrentHeight is 78
++END 'AutoFit issue' Symbol
++ TEST OK : AutoFit issue
++----------------------------------------------------------------
++Selections
++ TEST START : Selections
++  ITEM Assertion OK : ActiveCell is : $E$8
++  ITEM Assertion OK : Active Cell is : $E$8
++  ITEM Assertion OK : Number of Cells in Range: 52
++  ITEM Assertion OK : Number of Cells in Range: 52
++  ITEM Assertion OK : Number of Cells in Range: 52
++END 'Selections' Symbol
++ TEST OK : Selections
++----------------------------------------------------------------
++Offset-Resize
++ TEST START : Offset-Resize
++  ITEM Assertion OK : Offset is : $G$10:$I$15,$I$15:$M$21
++  ITEM Assertion OK : Offset is : $G$7:$I$12,$I$12:$M$18
++  ITEM Assertion OK :   Resized Range is : $A$20:$D$23
++END 'Offset-Resize' Symbol
++ TEST OK : Offset-Resize
++----------------------------------------------------------------
++Ranges-Address
++ TEST START : Ranges-Address
++  ITEM Assertion OK : Range Address is: $E$8:$G$13,$G$13:$K$19
++  ITEM Assertion OK : Range Address is: $E8:$G13,$G13:$K19
++  ITEM Assertion OK : Range Address is: E$8:G$13,G$13:K$19
++  ITEM Assertion OK : Range Address is: R8C5:R13C7,R13C7:R19C11
++  ITEM Assertion FAIL : Range Address is: R8C5:R13C7,R13C7:R19C11
++  ITEM Assertion OK : Range Address is: R8C5:R13C7,R13C7:R19C11
++  ITEM Assertion OK : Range Address is: R[6]C[3]:R[11]C[5],R[11]C[5]:R[17]C[9]
++  ITEM Assertion OK : RangeAddress is [Ranges.xls]Sheet1!$E$8:$G$13,$G$13:$K$19
++END 'Ranges-Address' Symbol
++ TEST OK : Ranges-Address
++----------------------------------------------------------------
++Range-Address
++ TEST START : Range-Address
++  ITEM Assertion OK : Range Address is: $E$8:$G$13
++  ITEM Assertion OK : Range Address is: $E8:$G13
++  ITEM Assertion OK : Range Address is: E$8:G$13
++  ITEM Assertion OK : Range Address is: R8C5:R13C7
++  ITEM Assertion FAIL : Range Address is: R8C5:R13C7
++  ITEM Assertion OK : Range Address is: R8C5:R13C7
++  ITEM Assertion OK : Range Address is: R[6]C[3]:R[11]C[5]
++  ITEM Assertion OK : RangeAddress is [Ranges.xls]Sheet1!$E$8:$G$13
++END 'Range-Address' Symbol
++ TEST OK : Range-Address
++----------------------------------------------------------------
++Column-Address
++ TEST START : Column-Address
++  ITEM Assertion OK : Range Address is: $F$8:$F$13
++  ITEM Assertion OK : Range Address is: $F8:$F13
++  ITEM Assertion OK : Range Address is: F$8:F$13
++  ITEM Assertion OK : Range Address is: R8C6:R13C6
++  ITEM Assertion FAIL : Range Address is: R8C6:R13C6
++  ITEM Assertion OK : Range Address is: R8C6:R13C6
++  ITEM Assertion OK : Range Address is: R[6]C[4]:R[11]C[4]
++  ITEM Assertion OK : RangeAddress is [Ranges.xls]Sheet1!$F$8:$F$13
++END 'Column-Address' Symbol
++ TEST OK : Column-Address
++----------------------------------------------------------------
++Row-Address
++ TEST START : Row-Address
++  ITEM Assertion OK : Range Address is: $E$9:$G$9
++  ITEM Assertion OK : Range Address is: $E9:$G9
++  ITEM Assertion OK : Range Address is: E$9:G$9
++  ITEM Assertion OK : Range Address is: R9C5:R9C7
++  ITEM Assertion FAIL : Range Address is: R9C5:R9C7
++  ITEM Assertion OK : Range Address is: R9C5:R9C7
++  ITEM Assertion OK : Range Address is: R[7]C[3]:R[7]C[5]
++  ITEM Assertion OK : RangeAddress is [Ranges.xls]Sheet1!$E$9:$G$9
++END 'Row-Address' Symbol
++ TEST OK : Row-Address
++----------------------------------------------------------------
++SingleCell-Address
++ TEST START : SingleCell-Address
++  ITEM Assertion OK : Range Address is: $F$9
++  ITEM Assertion OK : Range Address is: $F9
++  ITEM Assertion OK : Range Address is: F$9
++  ITEM Assertion OK : Range Address is: R9C6
++  ITEM Assertion FAIL : Range Address is: R9C6
++  ITEM Assertion OK : Range Address is: R9C6
++  ITEM Assertion OK : Range Address is: R[7]C[4]
++  ITEM Assertion OK : RangeAddress is [Ranges.xls]Sheet1!$F$9
++END 'SingleCell-Address' Symbol
++ TEST OK : SingleCell-Address
++----------------------------------------------------------------
++Heights and Widths
++ TEST START : Heights and Widths
++  ITEM Assertion OK : Range RowHeight is 40
++  ITEM Assertion OK : Range ColumnWidth is 50
++  ITEM Assertion OK : Range Height is 240
++  ITEM Assertion FAIL : Range Width is 675
++  ITEM Assertion OK : Range RowHeight is 50
++  ITEM Assertion OK : Range ColumnWidth is 50
++  ITEM Assertion OK : Range Height is 300
++  ITEM Assertion FAIL : Range Width is 675
++  ITEM Assertion FAIL : RowHeight is null: False
++  ITEM Assertion OK : ColumnWidth is null: True
++END 'Heights and Widths' Symbol
++ TEST OK : Heights and Widths
++----------------------------------------------------------------
++RangeRowColumn-Issue
++ TEST START : RangeRowColumn-Issue
++  ITEM Assertion OK : Row is: 8
++  ITEM Assertion OK : Column is: 5
++  ITEM Assertion OK : EntireRow.Columns.Count = 256
++  ITEM Assertion OK : EntireColumn.Rows.Count = 131072
++END 'RangeRowColumn-Issue' Symbol
++ TEST OK : RangeRowColumn-Issue
++----------------------------------------------------------------
++Replace-Issue
++ TEST START : Replace-Issue
++  ITEM Assertion OK : Value after Replace: YourValue
++  ITEM Assertion OK : Value after Replace: YourValue
++  ITEM Assertion OK : Value after Replace: ReplaceValue
++  ITEM Assertion OK : Value after Replace: New ReplaceValue
++  ITEM Assertion OK : Value after Replace: New ReplaceValue
++  ITEM Assertion OK : Value after Replace: New Replace
++  ITEM Assertion OK : Value after Replace: 
++END 'Replace-Issue' Symbol
++ TEST OK : Replace-Issue
++----------------------------------------------------------------
++Hidden-Issue
++ TEST START : Hidden-Issue
++  ITEM Assertion OK : -  Range.Rows.Hidden (set)
++  ITEM Assertion OK : -  Range.Rows.Hidden (get)
++  ITEM Assertion OK : -  Range.Rows.Item(1).Hidden (set)
++  ITEM Assertion OK : -  Range.Rows.Item(1).Hidden (get)
++  ITEM Assertion OK : -  Range.Columns.Hidden (set)
++  ITEM Assertion OK : -  Range.Columns.Hidden (get)
++  ITEM Assertion OK : -  Range.Columns.Item(1).Hidden (set)
++  ITEM Assertion OK : -  Range.Columns.Item(1).Hidden (get)
++END 'Hidden-Issue' Symbol
++ TEST OK : Hidden-Issue
++----------------------------------------------------------------
++End issue
++ TEST START : End issue
++  ITEM Assertion OK : -  = $E$48
++  ITEM Assertion OK : -  = $E$1
++  ITEM Assertion OK : -  = $E$3
++  ITEM Assertion OK : -  = $A$8
++  ITEM Assertion OK : -  = $B$8
++  ITEM Assertion OK : -  = $IV$8
++  ITEM Assertion OK : -  = $Z$8
++END 'End issue' Symbol
++ TEST OK : End issue
++----------------------------------------------------------------
++Outline issue
++ TEST START : Outline issue
++  ITEM Assertion OK : -  Range.clearOutline - please check visually
++  ITEM Assertion OK : -  Range.AutoOutline - please check visually
++  ITEM Assertion OK : -  Range.AutoOutline - please check visually
++END 'Outline issue' Symbol
++ TEST OK : Outline issue
++----------------------------------------------------------------
++Validation
++ TEST START : Validation
++  ITEM Assertion OK : Validation Input Message is : Attention!
++  ITEM Assertion OK : Validation Input Message is : Enter an integer from five to ten
++  ITEM Assertion OK : Validation Error Title is : You must enter a number from five to ten
++  ITEM Assertion OK : Validation Error Message is : An Error occured
++  ITEM Assertion OK : Validation Error Title is : Microsoft Excel
++END 'Validation' Symbol
++ TEST OK : Validation
++Test run finished : 10/07/2007 01:56:04
+Index: sc/source/ui/vba/testvba/TestDocuments/logs/win/Shapes.log
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/logs/win/Shapes.log
+diff -N sc/source/ui/vba/testvba/TestDocuments/logs/win/Shapes.log
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/testvba/TestDocuments/logs/win/Shapes.log	28 Jan 2008 17:30:49 -0000	1.1.2.1
+@@ -0,0 +1,77 @@
++Test run started : 16/10/2007 17:46:03
++BEGIN Shapes_Collection_Behaviour
++ TEST START : Shapes_Collection_Behaviour
++  ITEM Assertion OK : Name of indexed shape should be 'Sheet2Shape1' 
++  ITEM Assertion OK : Name of indexed shape should be 'Sheet2Shape2' 
++ TEST Success. : Shapes_Collection_Behaviour
++END Shapes_Collection_Behaviour
++BEGIN Shapes_Select_Item
++ TEST START : Shapes_Select_Item
++  ITEM Assertion OK : Correctly selected shape through Range
++  ITEM Assertion OK : Correctly selected shape through Item
++  ITEM Assertion OK : Needs to be visually checked. Is there a line on the document?
++  ITEM Assertion OK : Needs to be visually checked. Are All Shapes Selected?
++ TEST Success. : Shapes_Select_Item
++END Shapes_Select_Item
++BEGIN Shapes_Fill
++ TEST START : Shapes_Fill
++  ITEM Assertion OK : correctly set visibility of shape fill
++  ITEM Assertion OK : correctly set transparency of shape line
++  ITEM Assertion OK : correctly set forecolor of shape fill
++  ITEM Assertion FAIL : correctly set backcolor of shape fill
++  ITEM Assertion OK : the success of the TwoColorGradient method needs to be verified visually!
++  ITEM Assertion OK : correctly set forecolor of shape fill
++  ITEM Assertion FAIL : correctly set forecolor of shape fill
++ TEST Success. : Shapes_Fill
++END  Shapes_Fill
++BEGIN Shapes_Line
++ TEST START : Shapes_Line
++  ITEM Assertion FAIL : correctly set weight of shape line
++  ITEM Assertion OK : correctly set visibility of shape line
++  ITEM Assertion OK : correctly set transparency of shape line
++  ITEM Assertion OK : correctly set dash style of shape line
++  ITEM Assertion OK : correctly set dash style of shape line
++  ITEM Assertion OK : correctly set forecolor of shape line
++  ITEM Assertion FAIL : correctly set backcolor of shape line
++ TEST Success. : Shapes_Line
++END  Shapes_Line
++BEGIN Shapes_TextFrame
++ TEST START : Shapes_TextFrame
++  ITEM Assertion OK : correctly set Autosize of Shape TextFrame
++ TEST Success. : Shapes_TextFrame
++END  Shapes_TextFrame
++BEGIN Shapes_SimpleGeometry
++ TEST START : Shapes_SimpleGeometery
++  ITEM Assertion OK : shape height should be 49.4519655148368 and got 49.4078709034412
++  ITEM Assertion OK : shape width should be 101.467710269751 and got 101.423615658355
++  ITEM Assertion OK : shape left should be 68.5574761223637 and got 68.5417279658754
++  ITEM Assertion OK : shape top should be 44.1511784471699 and got 44.1354302906816
++  ITEM Assertion OK : shape rotation should be 0 and got 0
++  ITEM Assertion OK : shape rotation should be 25 and got 25
++  ITEM Assertion OK : shape incrementrotation should be 50 and got 50
++  ITEM Assertion OK : shape incrementleft should be 69.7480272284707 and got 69.7322790719824
++  ITEM Assertion OK : shape incrementtop should be 93.8141674447769 and got 93.7984192882885
++ TEST Success. : Shapes_SimpleGeometery
++END Shapes_SimpleGeometry
++BEGIN Shapes_Range
++ TEST START : Shapes_Range
++  ITEM Assertion OK : expected Sheets(2).Shapes.Range(1) to contain 1 element, it contains 1
++  ITEM Assertion OK : expected Sheets(2).Shapes.Range(1) to return Sheet2Shape1 got Sheet2Shape1
++  ITEM Assertion OK : expected Sheets(2).Shapes.Range(Sheet2Shape3) to contain 1 element, it contains 1
++  ITEM Assertion OK : expected Sheets(2).Shapes.Range(Sheet2Shape3) to return Sheet2Shape3 got Sheet2Shape3
++  ITEM Assertion OK : expected Sheets(2).Shapes.Range(Array(3, 1) to contain 2 elements, it contains 2
++  ITEM Assertion OK : expected Sheets(2).Shapes.Range(Array(3, 1) to return concated element/shape names Sheet2Shape3Sheet2Shape1 and got Sheet2Shape3Sheet2Shape1
++  ITEM Assertion OK : expected Sheets(2).Shapes.Range(Array('Sheet2Shape3', 1, 'Sheet2Shape2')) to contain 3 elements, it contains 3
++  ITEM Assertion OK : expected Sheets(2).Shapes.Range(Array('Sheet2Shape3', 1, 'Sheet2Shape2')) to return concated element/shape names Sheet2Shape3Sheet2Shape1Sheet2Shape2 and got Sheet2Shape3Sheet2Shape1Sheet2Shape2
++ TEST Success. : Shapes_Range
++END Shapes_Range
++BEGIN Shapes_ShapeRange
++ TEST START : Shapes_ShapeRange
++  ITEM Assertion OK : ShapeRange.IncrementLeft shp1.left should be 89.7322790719824 and got 89.7165297816359
++  ITEM Assertion OK : ShapeRange.IncrementLeft shp2.left should be 240.02518299054 and got 240.009433700193
++  ITEM Assertion OK : ShapeRange.IncrementTop shp1.Top should be 113.798419288289 and got 113.782669997942
++  ITEM Assertion OK : ShapeRange.IncrementTop shp2.Top should be 67.4519655148368 and got 67.4362162244903
++  ITEM Assertion OK : ShapeRange.IncrementRotation shp1.Rotation should be 70 and got 70
++  ITEM Assertion OK : ShapeRange.IncrementRotation shp2.Rotation should be 20 and got 20
++END Shapes_ShapeRange
++Test run finished : 16/10/2007 17:46:04
+Index: sc/source/ui/vba/testvba/TestDocuments/logs/win/TestAddress.log
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/logs/win/TestAddress.log
+diff -N sc/source/ui/vba/testvba/TestDocuments/logs/win/TestAddress.log
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/testvba/TestDocuments/logs/win/TestAddress.log	28 Jan 2008 17:30:49 -0000	1.1.2.1
+@@ -0,0 +1,62 @@
++Test run started : 17/07/2007 15:26:54
++----------------------------------------------------------------
++TestAddress
++ TEST START : TestAddress
++  ITEM Assertion OK : test1 Range('e3:f3') A1 style addressing
++  ITEM Assertion OK : test2 Range('e3:f3') R1C1 style addressing
++  ITEM Assertion OK : test3 Range ('e:f')  A1 style addressing
++  ITEM Assertion OK : test4 Range ('e:f')  R1C1 style addressing
++  ITEM Assertion OK : test5 Columns A1 style addressing
++  ITEM Assertion OK : test6 Columns R1C1 style addressing
++  ITEM Assertion OK : test7 Columns(3) A1 style addressing
++  ITEM Assertion OK : test8 Columns(3) R1C1 style addressing
++  ITEM Assertion OK : test9 Columns('e') A1 style addressing
++  ITEM Assertion OK : test10 Columns('e') R1C1 style addressing
++  ITEM Assertion OK : test11 Columns('b:d') A1 style addressing
++  ITEM Assertion OK : test12 Columns('b:d') R1C1 style addressing
++  ITEM Assertion OK : test13 Range('c1:g10').Columns A1 style addressing
++  ITEM Assertion OK : test14 Range('c1:g10').Columns R1C1 style addressing
++  ITEM Assertion OK : test15 Range('c1:g10').Columns(1) A1 style addressing
++  ITEM Assertion OK : test16 Range('c1:g10').Columns(1) R1C1 style addressing
++  ITEM Assertion OK : test17 Range('c1:g10').Columns('a') A1 style addressing
++  ITEM Assertion OK : test18 Range('c1:g10').Columns('a') R1C1 style addressing
++  ITEM Assertion OK : test19 Range('c1:g10').Columns('c') A1 style addressing
++  ITEM Assertion OK : test20 Range('c1:g10').Columns('c') R1C1 style addressing
++  ITEM Assertion OK : test21 Range('c1:g10').Columns('x:z') A1 style addressing
++  ITEM Assertion OK : test22 Range('c1:g10').Columns('x:z') R1C1 style addressing
++  ITEM Assertion OK : test23 Range('c1:g10').Columns(30) A1 style addressing
++  ITEM Assertion OK : test24 Range('c1:g10').Columns(30) R1C1 style addressing
++  ITEM Assertion OK : test25 Worksheets('Sheet2').Cells(1, 1) A1 style addressing
++  ITEM Assertion OK : test26 Worksheets('Sheet2').Cells(1, 1) A1 style addressing, RowAddressAbsolute is false 
++  ITEM Assertion OK : test27 Worksheets('Sheet2').Cells(1, 1) A1 style addressing, ColAddressAbsolute is false 
++  ITEM Assertion OK : test28 Worksheets('Sheet2').Cells(1, 1) R1C1 style addressing
++  ITEM Assertion OK : test29 Worksheets('Sheet2').Range('A1:E5').EntireColumn A1 style addressing
++  ITEM Assertion OK : test30 Worksheets('Sheet2').Range('A1').EntireColumn A1 style addressing
++  ITEM Assertion OK : test31 Worksheets('Sheet2').Range('A1:E5').EntireRow A1 style addressing
++  ITEM Assertion OK : test32 Worksheets('Sheet2').Range('A1') A1 style addressing
++  ITEM Assertion OK : test33 Worksheets('Sheet2').Range('IV65536').EntireRow A1 style addressing
++  ITEM Assertion OK : test34 Worksheets('Sheet2').Range('IU2:IV65536') A1 style addressing
++  ITEM Assertion OK : test35 Range('c1:g10').Columns('x:z') R1C1 style addressing
++  ITEM Assertion OK : test36 Worksheets('Sheet2').Range('A1') A1 style addressing
++  ITEM Assertion OK : test37 Worksheets('Sheet2').Range('A1:E5').EntireColumn A1 style addressing
++  ITEM Assertion OK : test38 Worksheets('Sheet2').Range('10:12') A1 style addressing
++  ITEM Assertion OK : test39 Worksheets('Sheet2').Range('10:12') R1C1 style addressing
++  ITEM Assertion OK : test40 Range('Sheet3!A1:B4') A1 style addressing
++  ITEM Assertion OK : test41 Range('Sheet3!A1,B1,D4:F20') A1 style addressing
++  ITEM Assertion OK : test42 Range('g20:h40').Columns('c:c')
++  ITEM Assertion OK : test43 Range('g20:h40').Columns('c:f')
++  ITEM Assertion OK : test44 Range('g20:h40').Columns(-1)
++  ITEM Assertion OK : test45 Range('c4:g10').Rows(-1)
++  ITEM Assertion OK : test46 Range('a2:b4').Rows('1:1')
++  ITEM Assertion OK : test47 Range('a2:b4').Rows('1:2')
++  ITEM Assertion OK : test48 Range('a2:b4').Rows('2:2')
++  ITEM Assertion OK : test49 Range('a2:b4').Rows('2:3')
++Test Results
++============
++
++Tests passed: 49
++Tests failed: 0
++
++END 'TestAddress
++ TEST OK : TestAddress
++Test run finished : 17/07/2007 15:26:56
+Index: sc/source/ui/vba/testvba/TestDocuments/logs/win/TestCalc_Rangetest.log
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/logs/win/TestCalc_Rangetest.log
+diff -N sc/source/ui/vba/testvba/TestDocuments/logs/win/TestCalc_Rangetest.log
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/testvba/TestDocuments/logs/win/TestCalc_Rangetest.log	28 Jan 2008 17:30:49 -0000	1.1.2.1
+@@ -0,0 +1,60 @@
++Test run started : 10/07/2007 01:56:07
++BEGIN TestCalc
++ TEST START : RangeTest2
++  ITEM Assertion OK : -  Range("D15").Row 
++  ITEM Assertion OK : -  WorkSheet("D15").Range.Row 
++  ITEM Assertion OK : -  Range("D15").Column 
++  ITEM Assertion OK : -  Worksheet.Range("D15").Column 
++  ITEM Assertion OK : -  Range("D1").EntireRow.Valuer 
++  ITEM Assertion OK : -  Range("D1").EntireRow.Valuer 
++  ITEM Assertion OK : -  Range("D1").EntireRow.Columns.Count 
++  ITEM Assertion OK : -  Range("D1").EntireColumn.Rows.Count 
++  ITEM Assertion OK : -  Range("D15").ClearContent
++  ITEM Assertion OK : -  Range("M1:N2").Rows.Hidden (set)
++  ITEM Assertion OK : -  Range("M1:N2").Rows.Hidden (get)
++  ITEM Assertion OK : -  Range("M1:N2").Rows(1).Hidden (set)
++  ITEM Assertion OK : -  Range("M1:N2").Rows(1).Hidden (get)
++  ITEM Assertion OK : -  Range("M1:N2").Columns.Hidden (set)
++  ITEM Assertion OK : -  Range("M1:N2").Columns.Hidden (get)
++  ITEM Assertion OK : -  Range("M1:N2").Columns(1).Hidden (set)
++  ITEM Assertion OK : -  Range("M1:N2").Columns(1).Hidden (get)
++  ITEM Assertion OK : -  Range("B38").Orientation (get)
++  ITEM Assertion OK : -  Range("B38").Orientation (set)
++  ITEM Assertion OK : -  Range("B38").Orientation (set = xlDownward)
++  ITEM Assertion OK : -  Range("B38").Orientation (set)
++  ITEM Assertion OK : -  Range("B38").Orientation (set = xlUpward)
++  ITEM Assertion OK : -  Range("B38").Orientation (set)
++  ITEM Assertion OK : -  Range("B38").Orientation (set = xlVertical)
++  ITEM Assertion OK : -  Range("B38").Orientation (set)
++  ITEM Assertion OK : -  Range("B38").Orientation (set = xlVertical)
++  ITEM Assertion OK : -  Range("B39").WrapText (get)
++  ITEM Assertion OK : -  Range("B39").WrapText (set)
++  ITEM Assertion OK : -  Range("B39").WrapText (set)
++  ITEM Assertion OK : -  Range("E39").MergeCells (get)
++  ITEM Assertion OK : -  Range("F39").MergeCells (get)
++  ITEM Assertion OK : -  Range("E39").MergeCells (set)
++  ITEM Assertion FAIL : -  Range("F39").MergeCells (set)
++  ITEM Assertion OK : -  Range("E39").MergeCells (set)
++  ITEM Assertion OK : -  Range("F39").MergeCells (set)
++  ITEM Assertion OK : -  Range("C41:C42").Replace  MatchCase:=True 
++  ITEM Assertion OK : -  Range("C41:C42").Replace  MatchCase:=True 
++  ITEM Assertion OK : -  Range("D41:D42").Replace  MatchCase:=False 
++  ITEM Assertion OK : -  Range("B39").VerticalAlignment (get)
++  ITEM Assertion OK : -  Range("B39").VerticalAlignment (set)
++  ITEM Assertion OK : -  Range("B39").VerticalAlignment (get)
++  ITEM Assertion OK : -  Range("B39").VerticalAlignment (get)
++  ITEM Assertion OK : -  Range("B39").VerticalAlignment (set)
++  ITEM Assertion OK : -  Range("B39").VerticalAlignment (get)
++  ITEM Assertion OK : -  Range("B39").VerticalAlignment (set)
++  ITEM Assertion OK : -  Range("B39").HorizontalAlignment (get)
++  ITEM Assertion OK : -  Range("B39").HorizontalAlignment (set)
++  ITEM Assertion OK : -  Range("B39").HorizontalAlignment (get)
++  ITEM Assertion OK : -  Range("B39").HorizontalAlignment (set)
++  ITEM Assertion OK : -  Range("B39").HorizontalAlignment (get)
++  ITEM Assertion OK : -  Range("B39").HorizontalAlignment (set)
++  ITEM Assertion OK : -  Range("B39").HorizontalAlignment (get)
++  ITEM Assertion OK : -  Range("B39").HorizontalAlignment (set)
++  ITEM FAIL (RangeTest2)
++ TEST Not succesfully completed : RangeTest2
++END   TestCalc
++Test run finished : 10/07/2007 01:56:12
+Index: sc/source/ui/vba/testvba/TestDocuments/logs/win/TestCalc_Rangetest2.log
+===================================================================
+RCS file: sc/source/ui/vba/testvba/TestDocuments/logs/win/TestCalc_Rangetest2.log
+diff -N sc/source/ui/vba/testvba/TestDocuments/logs/win/TestCalc_Rangetest2.log
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/ui/vba/testvba/TestDocuments/logs/win/TestCalc_Rangetest2.log	28 Jan 2008 17:30:49 -0000	1.1.2.1
+@@ -0,0 +1,65 @@
++Test run started : 10/07/2007 01:56:15
++BEGIN TestCalc
++ TEST START : RangeTest3
++  ITEM Assertion FAIL : - setFormulaR1C1
++  ITEM Assertion OK : - getFormulaR1C1
++  ITEM Assertion OK : - Range.Copy() and Range.PasteSpecial()
++  ITEM Assertion OK : - Range.Copy(Range("I10"))
++  ITEM Assertion OK : PasteSpecial Paste:=xlPasteValues
++  ITEM Assertion OK : PasteSpecial Paste:=xlPasteFormulas
++  ITEM Assertion OK : PasteSpecial Paste:=xlPasteFormats
++  ITEM Assertion OK : PasteSpecial 
++  ITEM Assertion OK : PasteSpecial SkipBlanks:=True
++  ITEM Assertion OK : PasteSpecial Operation:=xlPasteSpecialOperationAdd
++  ITEM Assertion OK : PasteSpecial Operation:=xlPasteSpecialOperationSubtract
++  ITEM Assertion OK : PasteSpecial Operation:=xlPasteSpecialOperationMultiply
++  ITEM Assertion OK : PasteSpecial Operation:=xlPasteSpecialOperationDivide
++  ITEM Assertion OK : PasteSpecial Transpose:=True
++  ITEM Assertion FAIL : ActiveWorkbook.FileFormat
++  ITEM Assertion OK : ActiveWorkbook.Name
++  ITEM Assertion OK : ActiveWorkbook.FullName und ActiveWorkbook.Path
++  ITEM Assertion FAIL : -  = ActiveWorkbook.Colors(3) set
++  ITEM Assertion OK : -  = ActiveWorkbook.ResetColors
++  ITEM Assertion OK : -  = ActiveWorkbook.Colors(3) get
++  ITEM Assertion OK : -  = Range("K22").End (xlDown)
++  ITEM Assertion OK : -  = Range("K22").End (xlUo)
++  ITEM Assertion OK : -  = Range("K22").End (xlToLeft)
++  ITEM Assertion OK : -  = Range("K22").End (xlRight)
++  ITEM Assertion OK : -  ActiveSpreadsheet.Next
++  ITEM Assertion OK : -  ActiveSpreadsheet.Next
++  ITEM Assertion OK : -  ActiveSpreadsheet.Previous
++  ITEM Assertion OK : -  ActiveSpreadsheet.Previous
++  ITEM Assertion OK : -  Range("J4:J11").AutoFilter field:=1, Criteria1:="x"
++  ITEM Assertion OK : -  Range("J4:J11").AutoFilter field:=1, Criteria1:="<>"
++  ITEM Assertion OK : -  Range("J4:J11").AutoFilter field:=1, Criteria1:="="
++  ITEM Assertion OK : -  Range("J4:J11").AutoFilter 
++  ITEM Assertion OK : -  ActiveSheet.Resize.Select
++  ITEM Assertion OK : -  Application.GoTo Reference:="R8C2"
++  ITEM Assertion FAIL : -  Application.GoTo Reference:="R[8]C[2]"
++  ITEM Assertion OK : -  Application.GoTo Reference:="R8C2"
++  ITEM Assertion OK : -  Range.Group - please check visually
++  ITEM Assertion OK : -  Range.Group - please check visually
++  ITEM Assertion OK : -  Range.Ungroup- please check visually
++  ITEM Assertion OK : -  Range.Ungroup - please check visually
++  ITEM Assertion OK : -  Range.Group - please check visually
++  ITEM Assertion OK : -  Range.Group - please check visually
++  ITEM Assertion OK : -  Range.clearOutline - please check visually
++  ITEM Assertion OK : -  Range.AutoOutline - please check visually
++  ITEM Assertion OK : -  Range.AutoOutline - please check visually
++  ITEM Assertion OK : -  ActiveSheet.UsedRange.Select
++  ITEM Assertion OK : -  Range("A13").AddIndent
++  ITEM Assertion OK : -  Range("A13").IndentLevel set
++  ITEM Assertion OK : -  Range("A13").IndentLevel get
++  ITEM Assertion OK : -  Range("A13").IndentLevel get
++  ITEM Assertion OK : - Range.Copy() and Range.PasteSpecial()
++  ITEM Assertion OK : - Range.Copy() and Range.PasteSpecial()
++  ITEM Assertion OK : - Range.Copy() and Range.PasteSpecial()
++  ITEM Assertion OK : - Range.Calculate
++  ITEM Assertion OK : Worksheet.Calculate
++  ITEM Assertion OK : - Application.Calculate
++  ITEM Assertion OK : Global.Calculate
++  ITEM Assertion OK : Calculation set
++  ITEM FAIL (RangeTest3)
++ TEST Not succesfully completed : RangeTest3
++END   TestCalc
++Test run finished : 10/07/2007 01:56:23
+Index: oovbaapi/org/openoffice/excel/XApplication.idl
+===================================================================
+RCS file: /cvs/api/oovbaapi/org/openoffice/excel/XApplication.idl,v
+retrieving revision 1.3
+retrieving revision 1.3.4.1
+diff -u -p -u -p -b -w -B -r1.3 -r1.3.4.1
+--- oovbaapi/org/openoffice/excel/XApplication.idl	7 Dec 2007 11:21:12 -0000	1.3
++++ oovbaapi/org/openoffice/excel/XApplication.idl	18 Jan 2008 16:51:20 -0000	1.3.4.1
+@@ -43,6 +43,10 @@
+ #include <org/openoffice/vba/XHelperInterface.idl>
+ #endif
+ 
++#ifndef __org_openoffice_vba_XAssistant_idl__
++#include <org/openoffice/vba/XAssistant.idl>
++#endif
++
+ module org {  module openoffice {  module excel { 
+ 
+ interface XRange;
+@@ -63,6 +67,7 @@ interface XApplication
+ 	[attribute, readonly] XRange ActiveCell;
+ 	[attribute, readonly] XWindow ActiveWindow;
+ 	[attribute, readonly] XWorksheet ActiveSheet;
++    [attribute, readonly] org::openoffice::vba::XAssistant Assistant;
+ 	[attribute] long Calculation;
+ 	//#TODO #FIXME this is more of a placeholder, will return
+ 	// the value of activeworkbook, in xl 'ThisWorkbook' should return the
+@@ -93,7 +98,7 @@ interface XApplication
+ 	any Evaluate( [in] string Name );
+ 	any Dialogs( [in] any DialogIndex );
+ 	any Range( [in] any Cell1, [in] any Cell2 );
+-	any Names();
++	any Names( [in] any Index );
+ 	void GoTo( [in] any Reference, [in] any Scroll );
+ 	// #FIXME #TODO up to 30 args needed
+ 	double CountA( [in] any arg1 );
+Index: oovbaapi/org/openoffice/excel/XWindow.idl
+===================================================================
+RCS file: /cvs/api/oovbaapi/org/openoffice/excel/XWindow.idl,v
+retrieving revision 1.3
+retrieving revision 1.3.4.1
+diff -u -p -u -p -b -w -B -r1.3 -r1.3.4.1
+--- oovbaapi/org/openoffice/excel/XWindow.idl	7 Dec 2007 11:29:02 -0000	1.3
++++ oovbaapi/org/openoffice/excel/XWindow.idl	18 Jan 2008 16:51:20 -0000	1.3.4.1
+@@ -49,6 +49,8 @@ module org {  module openoffice {  modul
+ 
+ //=============================================================================
+ interface XRange;
++interface XWorksheet;
++interface XPane;
+ interface XWindow
+ {
+ 	interface ::org::openoffice::vba::XHelperInterface;
+@@ -61,6 +63,8 @@ interface XWindow
+ 	[attribute] boolean DisplayVerticalScrollBar; 
+ 	[attribute] boolean DisplayWorkbookTabs; 
+ 	[attribute] boolean FreezePanes; 
++	[attribute] long Height; 
++	[attribute] long Left; 
+ 	[attribute] boolean Split; 
+ 	[attribute] long SplitColumn;
+ 	[attribute] double SplitHorizontal;
+@@ -68,6 +72,10 @@ interface XWindow
+ 	[attribute] double SplitVertical;
+ 	[attribute] any ScrollColumn;
+ 	[attribute] any ScrollRow;
++	[attribute] long Top; 
++	[attribute] any View;
++	[attribute] boolean Visible;
++	[attribute] long Width; 
+ 	[attribute] any WindowState;
+ 	[attribute] any Zoom;
+ 	any SelectedSheets( [in] any aIndex );
+@@ -78,7 +86,21 @@ interface XWindow
+         void Close([in] any SaveChanges, [in] any FileName, [in] any RouteWorkBook);
+ 	XRange ActiveCell() raises(com::sun::star::script::BasicErrorException);
+ 	any Selection() raises(com::sun::star::script::BasicErrorException);
++	long PointsToScreenPixelsX([in] long Points) raises(com::sun::star::script::BasicErrorException);
++	long PointsToScreenPixelsY([in] long Points) raises(com::sun::star::script::BasicErrorException);
++    void PrintOut([in] /*optional short*/ any From,
++        [in] /*optional short*/ any To,
++        [in] /*optional short*/ any Copies,
++        [in] /*optional boolean*/ any Preview,
++        [in] /*optional string*/ any ActivePrinter,
++        [in] /*optional boolean*/ any PrintToFile,
++        [in] /*optional boolean*/ any Collate,
++        [in] /*optional string*/ any PrToFileName
++        ) raises(com::sun::star::script::BasicErrorException);
++     void PrintPreview( [in]  /*Optional*/ any EnableChanges ) raises ( com::sun::star::script::BasicErrorException );
+ 
++	XWorksheet ActiveSheet() raises(com::sun::star::script::BasicErrorException);
++	XPane ActivePane() raises(com::sun::star::script::BasicErrorException);
+ };
+ 
+ //=============================================================================
+Index: oovbaapi/org/openoffice/excel/XWorkbook.idl
+===================================================================
+RCS file: /cvs/api/oovbaapi/org/openoffice/excel/XWorkbook.idl,v
+retrieving revision 1.3
+retrieving revision 1.3.4.1
+diff -u -p -u -p -b -w -B -r1.3 -r1.3.4.1
+--- oovbaapi/org/openoffice/excel/XWorkbook.idl	7 Dec 2007 11:29:28 -0000	1.3
++++ oovbaapi/org/openoffice/excel/XWorkbook.idl	18 Jan 2008 16:51:20 -0000	1.3.4.1
+@@ -76,7 +76,7 @@ interface XWorkbook
+ 	void Activate();
+ 	void ResetColors() raises (com::sun::star::script::BasicErrorException);
+ 
+-	any Names();
++	any Names( [in] any Index );
+ 
+ 	any Colors([in] any Index) raises (com::sun::star::script::BasicErrorException);
+ 	long FileFormat() raises (com::sun::star::script::BasicErrorException);
+Index: oovbaapi/org/openoffice/excel/XWorksheet.idl
+===================================================================
+RCS file: /cvs/api/oovbaapi/org/openoffice/excel/XWorksheet.idl,v
+retrieving revision 1.3
+retrieving revision 1.3.4.1
+diff -u -p -u -p -b -w -B -r1.3 -r1.3.4.1
+--- oovbaapi/org/openoffice/excel/XWorksheet.idl	7 Dec 2007 11:29:52 -0000	1.3
++++ oovbaapi/org/openoffice/excel/XWorksheet.idl	18 Jan 2008 16:51:20 -0000	1.3.4.1
+@@ -103,6 +103,7 @@ interface XWorksheet
+ 
+ 	void setEnableCalculation([in] boolean EnableCalculation) raises(com::sun::star::script::BasicErrorException);
+ 	boolean getEnableCalculation() raises(com::sun::star::script::BasicErrorException);
++	void PrintOut( [in] any From, [in] any To, [in] any Copies, [in] any Preview, [in] any ActivePrinter, [in] any PrintToFile, [in] any Collate, [in] any PrToFileName, [in] any IgnorePrintAreas );
+ 
+ 
+ };
+Index: oovbaapi/org/openoffice/msforms/XComboBox.idl
+===================================================================
+RCS file: /cvs/api/oovbaapi/org/openoffice/msforms/XComboBox.idl,v
+retrieving revision 1.2
+retrieving revision 1.2.8.1
+diff -u -p -u -p -b -w -B -r1.2 -r1.2.8.1
+--- oovbaapi/org/openoffice/msforms/XComboBox.idl	27 Apr 2007 07:35:26 -0000	1.2
++++ oovbaapi/org/openoffice/msforms/XComboBox.idl	22 Apr 2008 19:50:59 -0000	1.2.8.1
+@@ -49,6 +49,7 @@ module org {  module openoffice {  modul
+ interface XComboBox: ::com::sun::star::uno::XInterface
+ {
+ 	[attribute] any Value;
++	[attribute] any ListIndex;
+ 	[attribute] string Text;
+ 	void AddItem( [in] any pvargItem, [in] any pvargIndex );
+ 	void Clear();
+Index: oovbaapi/org/openoffice/msforms/XControl.idl
+===================================================================
+RCS file: /cvs/api/oovbaapi/org/openoffice/msforms/XControl.idl,v
+retrieving revision 1.2
+retrieving revision 1.2.4.1
+diff -u -p -u -p -b -w -B -r1.2 -r1.2.4.1
+--- oovbaapi/org/openoffice/msforms/XControl.idl	7 Dec 2007 12:14:42 -0000	1.2
++++ oovbaapi/org/openoffice/msforms/XControl.idl	22 Apr 2008 19:50:59 -0000	1.2.4.1
+@@ -42,12 +42,17 @@
+ 
+ //=============================================================================
+ 
+-module org {  module openoffice {  module msforms { 
++#ifndef __org_openoffice_vba_XHelperInterface_idl__
++#include <org/openoffice/vba/XHelperInterface.idl>
++#endif
+ 
++module org {  module openoffice {  module msforms { 
+ 
+ //=============================================================================
+-interface XControl: com::sun::star::uno::XInterface
++interface XControl
+ {
++	interface ::org::openoffice::vba::XHelperInterface;
++	void SetFocus();
+ 	[attribute] boolean Enabled;
+ 	[attribute] boolean Visible;
+     //Size. there are some defferent between Mso and OOo.
+Index: oovbaapi/org/openoffice/msforms/XGroupBox.idl
+===================================================================
+RCS file: oovbaapi/org/openoffice/msforms/XGroupBox.idl
+diff -N oovbaapi/org/openoffice/msforms/XGroupBox.idl
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ oovbaapi/org/openoffice/msforms/XGroupBox.idl	22 Apr 2008 19:50:59 -0000	1.1.2.1
+@@ -0,0 +1,56 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#ifndef __org_openoffice_msforms_XGroupBox_idl__
++#define __org_openoffice_msforms_XGroupBox_idl__
++
++#ifndef __com_sun_star_uno_XInterface_idl__
++#include <com/sun/star/uno/XInterface.idl>
++#endif
++//=============================================================================
++
++module org {  module openoffice {  module msforms { 
++//=============================================================================
++interface XGroupBox
++{
++	[attribute] string Caption; 
++};
++
++//=============================================================================
++
++}; }; };
++
++#endif
++
++
+Index: oovbaapi/org/openoffice/msforms/XLabel.idl
+===================================================================
+RCS file: /cvs/api/oovbaapi/org/openoffice/msforms/XLabel.idl,v
+retrieving revision 1.2
+retrieving revision 1.2.4.1
+diff -u -p -u -p -b -w -B -r1.2 -r1.2.4.1
+--- oovbaapi/org/openoffice/msforms/XLabel.idl	7 Dec 2007 12:15:04 -0000	1.2
++++ oovbaapi/org/openoffice/msforms/XLabel.idl	22 Apr 2008 19:50:59 -0000	1.2.4.1
+@@ -46,6 +46,7 @@ module org {  module openoffice {  modul
+ interface XLabel: com::sun::star::uno::XInterface 
+ {
+ 	[attribute] string Caption;
++	[attribute] any Value;
+ };
+ 
+ //=============================================================================
+Index: oovbaapi/org/openoffice/msforms/XListBox.idl
+===================================================================
+RCS file: /cvs/api/oovbaapi/org/openoffice/msforms/XListBox.idl,v
+retrieving revision 1.2
+retrieving revision 1.2.4.1
+diff -u -p -u -p -b -w -B -r1.2 -r1.2.4.1
+--- oovbaapi/org/openoffice/msforms/XListBox.idl	7 Dec 2007 12:15:24 -0000	1.2
++++ oovbaapi/org/openoffice/msforms/XListBox.idl	22 Apr 2008 19:50:59 -0000	1.2.4.1
+@@ -49,6 +49,7 @@ interface XListBox: com::sun::star::uno:
+ 	[attribute] any Value;
+ 	[attribute] string Text;
+ 	[attribute] boolean MultiSelect;
++	[attribute] any ListIndex;
+ 	//[attribute] sequence< boolean > Selected;
+ 	void AddItem( [in] any pvargItem, [in] any pvargIndex );
+ 	void Clear();
+Index: oovbaapi/org/openoffice/msforms/XMultiPage.idl
+===================================================================
+RCS file: oovbaapi/org/openoffice/msforms/XMultiPage.idl
+diff -N oovbaapi/org/openoffice/msforms/XMultiPage.idl
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ oovbaapi/org/openoffice/msforms/XMultiPage.idl	22 Apr 2008 19:50:59 -0000	1.1.2.1
+@@ -0,0 +1,58 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#ifndef __org_openoffice_msforms_XMultiPage_idl__
++#define __org_openoffice_msforms_XMultiPage_idl__
++
++#ifndef __com_sun_star_uno_XInterface_idl__
++#include <com/sun/star/uno/XInterface.idl>
++#endif
++//=============================================================================
++
++module org {  module openoffice {  module msforms { 
++
++//=============================================================================
++interface XMultiPage: com::sun::star::uno::XInterface 
++{
++	[attribute] long Value;
++	any Pages( [in] any index );
++};
++
++//=============================================================================
++
++}; }; };
++
++#endif
++
++
+Index: oovbaapi/org/openoffice/msforms/XPages.idl
+===================================================================
+RCS file: oovbaapi/org/openoffice/msforms/XPages.idl
+diff -N oovbaapi/org/openoffice/msforms/XPages.idl
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ oovbaapi/org/openoffice/msforms/XPages.idl	22 Apr 2008 19:50:59 -0000	1.1.2.1
+@@ -0,0 +1,61 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#ifndef __org_openoffice_msforms_XPage_idl__
++#define __org_openoffice_msforms_XPage_idl__
++
++#ifndef __com_sun_star_uno_XInterface_idl__
++#include <com/sun/star/uno/XInterface.idl>
++#endif
++#ifndef  __org_openoffice_vba_XCollection_idl__
++#include <org/openoffice/vba/XCollection.idl>
++#endif
++
++//=============================================================================
++
++module org {  module openoffice {  module msforms { 
++
++//=============================================================================
++interface XPages
++{
++    interface org::openoffice::vba::XCollection;
++};
++
++//=============================================================================
++
++}; }; };
++
++#endif
++
++
+Index: oovbaapi/org/openoffice/msforms/XProgressBar.idl
+===================================================================
+RCS file: oovbaapi/org/openoffice/msforms/XProgressBar.idl
+diff -N oovbaapi/org/openoffice/msforms/XProgressBar.idl
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ oovbaapi/org/openoffice/msforms/XProgressBar.idl	22 Apr 2008 19:51:00 -0000	1.1.2.1
+@@ -0,0 +1,57 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#ifndef __org_openoffice_msforms_XProgressBar_idl__
++#define __org_openoffice_msforms_XProgressBar_idl__
++
++#ifndef __com_sun_star_uno_XInterface_idl__
++#include <com/sun/star/uno/XInterface.idl>
++#endif
++//=============================================================================
++
++module org {  module openoffice {  module msforms { 
++
++//=============================================================================
++interface XProgressBar: com::sun::star::uno::XInterface 
++{
++	[attribute] any Value;
++};
++
++//=============================================================================
++
++}; }; };
++
++#endif
++
++
+Index: oovbaapi/org/openoffice/msforms/XRadioButton.idl
+===================================================================
+RCS file: /cvs/api/oovbaapi/org/openoffice/msforms/XRadioButton.idl,v
+retrieving revision 1.2
+retrieving revision 1.2.4.1
+diff -u -p -u -p -b -w -B -r1.2 -r1.2.4.1
+--- oovbaapi/org/openoffice/msforms/XRadioButton.idl	7 Dec 2007 12:15:44 -0000	1.2
++++ oovbaapi/org/openoffice/msforms/XRadioButton.idl	22 Apr 2008 19:51:00 -0000	1.2.4.1
+@@ -46,7 +46,7 @@ module org {  module openoffice {  modul
+ interface XRadioButton: com::sun::star::uno::XInterface 
+ {
+ 	[attribute] string Caption;
+-	[attribute] boolean Value;
++	[attribute] any Value;
+ };
+ 
+ //=============================================================================
+Index: oovbaapi/org/openoffice/msforms/XScrollBar.idl
+===================================================================
+RCS file: oovbaapi/org/openoffice/msforms/XScrollBar.idl
+diff -N oovbaapi/org/openoffice/msforms/XScrollBar.idl
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ oovbaapi/org/openoffice/msforms/XScrollBar.idl	22 Apr 2008 19:51:00 -0000	1.1.2.1
+@@ -0,0 +1,61 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#ifndef __org_openoffice_msforms_XRadioButton_idl__
++#define __org_openoffice_msforms_XRadioButton_idl__
++
++#ifndef __com_sun_star_uno_XInterface_idl__
++#include <com/sun/star/uno/XInterface.idl>
++#endif
++//=============================================================================
++
++module org {  module openoffice {  module msforms { 
++
++//=============================================================================
++interface XScrollBar: com::sun::star::uno::XInterface 
++{
++	[attribute] long Max;
++	[attribute] long Min;
++	[attribute] any Value;
++	[attribute] long LargeChange;
++	[attribute] long SmallChange;
++};
++
++//=============================================================================
++
++}; }; };
++
++#endif
++
++
+Index: oovbaapi/org/openoffice/msforms/XTextBox.idl
+===================================================================
+RCS file: /cvs/api/oovbaapi/org/openoffice/msforms/XTextBox.idl,v
+retrieving revision 1.2
+retrieving revision 1.2.4.1
+diff -u -p -u -p -b -w -B -r1.2 -r1.2.4.1
+--- oovbaapi/org/openoffice/msforms/XTextBox.idl	7 Dec 2007 12:16:25 -0000	1.2
++++ oovbaapi/org/openoffice/msforms/XTextBox.idl	22 Apr 2008 19:51:00 -0000	1.2.4.1
+@@ -46,7 +46,7 @@ module org {  module openoffice {  modul
+ interface XTextBox: com::sun::star::uno::XInterface 
+ {
+ 	[attribute] string  Text;
+-//    [attribute] any    Value;
++    [attribute] any    Value;
+     [attribute] long    MaxLength;
+     [attribute] boolean Multiline;
+ };
+Index: oovbaapi/org/openoffice/msforms/XTextBoxShape.idl
+===================================================================
+RCS file: oovbaapi/org/openoffice/msforms/XTextBoxShape.idl
+diff -N oovbaapi/org/openoffice/msforms/XTextBoxShape.idl
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ oovbaapi/org/openoffice/msforms/XTextBoxShape.idl	14 Feb 2008 15:29:05 -0000	1.1.2.2
+@@ -0,0 +1,61 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#ifndef __org_openoffice_msforms_XTextBoxShape_idl__
++#define __org_openoffice_msforms_XTextBoxShape_idl__
++
++#ifndef __com_sun_star_uno_XInterface_idl__
++#include <com/sun/star/uno/XInterface.idl>
++#endif
++#ifndef __org_openoffice_excel_XCharacters_idl
++#include <org/openoffice/excel/XCharacters.idl>
++#endif
++//=============================================================================
++
++module org {  module openoffice {  module msforms { 
++
++//=============================================================================
++interface XTextBoxShape: com::sun::star::uno::XInterface 
++{
++	[attribute] string  Text;
++	::org::openoffice::excel::XCharacters characters([in] any Start, [in] any Length);
++};
++
++//=============================================================================
++
++}; }; };
++
++#endif
++
++
+Index: oovbaapi/org/openoffice/msforms/XToggleButton.idl
+===================================================================
+RCS file: oovbaapi/org/openoffice/msforms/XToggleButton.idl
+diff -N oovbaapi/org/openoffice/msforms/XToggleButton.idl
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ oovbaapi/org/openoffice/msforms/XToggleButton.idl	22 Apr 2008 19:51:00 -0000	1.1.2.1
+@@ -0,0 +1,60 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#ifndef __org_openoffice_msforms_XToggleButton_idl__
++#define __org_openoffice_msforms_XToggleButton_idl__
++
++#ifndef __org_openoffice_msforms_XButton_idl__
++#include <org/openoffice/msforms/XButton.idl>
++#endif
++#ifndef __com_sun_star_uno_XInterface_idl__
++#include <com/sun/star/uno/XInterface.idl>
++#endif
++//=============================================================================
++
++module org {  module openoffice {  module msforms { 
++//=============================================================================
++interface XToggleButton
++{
++	interface XButton;
++	[attribute] any Value; 
++};
++
++//=============================================================================
++
++}; }; };
++
++#endif
++
++
+Index: oovbaapi/org/openoffice/msforms/XUserForm.idl
+===================================================================
+RCS file: oovbaapi/org/openoffice/msforms/XUserForm.idl
+diff -N oovbaapi/org/openoffice/msforms/XUserForm.idl
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ oovbaapi/org/openoffice/msforms/XUserForm.idl	22 Apr 2008 19:51:00 -0000	1.1.2.1
+@@ -0,0 +1,57 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#ifndef __org_openoffice_msforms_XUserForm_idl__
++#define __org_openoffice_msforms_XUserForm_idl__
++
++#ifndef __org_openoffice_vba_XHelperInterface_idl__
++#include <org/openoffice/vba/XHelperInterface.idl>
++#endif
++#ifndef __com_sun_star_script_XInvocation_idl__
++#include <com/sun/star/script/XInvocation.idl>
++#endif
++module org { module openoffice { module msforms {
++interface XUserForm 
++{
++	//interface ::org::openoffice::vba::XHelperInterface;
++	interface ::com::sun::star::script::XInvocation;
++    [attribute] string Caption;
++    void Show();
++    void Hide();
++    void RePaint();
++    void UnloadObject();
++};
++}; }; };
++
++#endif
+Index: oovbaapi/org/openoffice/msforms/makefile.mk
+===================================================================
+RCS file: /cvs/api/oovbaapi/org/openoffice/msforms/makefile.mk,v
+retrieving revision 1.3
+retrieving revision 1.3.4.2
+diff -u -p -u -p -b -w -B -r1.3 -r1.3.4.2
+--- oovbaapi/org/openoffice/msforms/makefile.mk	7 Dec 2007 12:16:38 -0000	1.3
++++ oovbaapi/org/openoffice/msforms/makefile.mk	22 Apr 2008 19:51:00 -0000	1.3.4.2
+@@ -64,7 +64,14 @@ IDLFILES=\
+ 	XFillFormat.idl \
+ 	XPictureFormat.idl \
+ 	XShapeRange.idl \
+-	XListBox.idl 
++	XTextBoxShape.idl \
++	XUserForm.idl \
++	XListBox.idl \
++	XToggleButton.idl \
++	XScrollBar.idl \
++	XProgressBar.idl \
++	XMultiPage.idl \
++	XPages.idl \
+ 
+ # ------------------------------------------------------------------
+ 
+Index: oovbaapi/org/openoffice/vba/XAssistant.idl
+===================================================================
+RCS file: oovbaapi/org/openoffice/vba/XAssistant.idl
+diff -N oovbaapi/org/openoffice/vba/XAssistant.idl
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ oovbaapi/org/openoffice/vba/XAssistant.idl	18 Jan 2008 19:28:17 -0000	1.1.2.1
+@@ -0,0 +1,65 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#ifndef __org_openoffice_vba_XAssistant_idl__
++#define __org_openoffice_vba_XAssistant_idl__
++
++#ifndef __com_sun_star_uno_XInterface_idl__
++#include <com/sun/star/uno/XInterface.idl>
++#endif
++
++#ifndef __org_openoffice_vba_XHelperInterface_idl__
++#include <org/openoffice/vba/XHelperInterface.idl>
++#endif
++//=============================================================================
++
++module org {  module openoffice {  module vba { 
++//=============================================================================
++
++interface XAssistant
++{
++	interface ::org::openoffice::vba::XHelperInterface;
++
++    [attribute] boolean On;
++    [attribute] boolean Visible;
++    [attribute] long Top;
++    [attribute] long Left;
++    [attribute] long Animation;
++    
++    string Name() raises ( com::sun::star::script::BasicErrorException );
++};
++
++}; }; };
++
++#endif
+Index: oovbaapi/org/openoffice/vba/XGlobals.idl
+===================================================================
+RCS file: /cvs/api/oovbaapi/org/openoffice/vba/XGlobals.idl,v
+retrieving revision 1.3
+retrieving revision 1.3.4.1
+diff -u -p -u -p -b -w -B -r1.3 -r1.3.4.1
+--- oovbaapi/org/openoffice/vba/XGlobals.idl	7 Dec 2007 12:17:49 -0000	1.3
++++ oovbaapi/org/openoffice/vba/XGlobals.idl	18 Jan 2008 16:51:21 -0000	1.3.4.1
+@@ -62,7 +62,7 @@ interface XGlobals: com::sun::star::uno:
+ 	any WorkBooks( [in] any aIndex );
+ 	any Sheets( [in] any aIndex );
+ 	any Range( [in] any Cell1, [in] any Cell2 );
+-	any Names( );
++	any Names( [in] any Index );
+ };
+ 
+ }; }; };
+Index: oovbaapi/org/openoffice/vba/makefile.mk
+===================================================================
+RCS file: /cvs/api/oovbaapi/org/openoffice/vba/makefile.mk,v
+retrieving revision 1.3
+retrieving revision 1.3.4.1
+diff -u -p -u -p -b -w -B -r1.3 -r1.3.4.1
+--- oovbaapi/org/openoffice/vba/makefile.mk	7 Dec 2007 12:18:21 -0000	1.3
++++ oovbaapi/org/openoffice/vba/makefile.mk	18 Jan 2008 16:51:21 -0000	1.3.4.1
+@@ -56,6 +56,7 @@ IDLFILES=\
+ 	XVBAToOOEventDescGen.idl\
+ 	XPropValue.idl\
+ 	XHelperInterface.idl\
++	XAssistant.idl\
+ 	Globals.idl\
+ 
+ # ------------------------------------------------------------------



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