diff options
author | Jens-Heiner Rechtien <hr@openoffice.org> | 2000-09-18 16:07:07 +0000 |
---|---|---|
committer | Jens-Heiner Rechtien <hr@openoffice.org> | 2000-09-18 16:07:07 +0000 |
commit | 9ae5a91f7955e44d3b24a3f7741f9bca02ac7f24 (patch) | |
tree | 13c111a6380728f470fa177e679b80089a01efc4 /sc/inc |
initial import
Diffstat (limited to 'sc/inc')
118 files changed, 38283 insertions, 0 deletions
diff --git a/sc/inc/addincol.hxx b/sc/inc/addincol.hxx new file mode 100644 index 000000000000..33291d05b54f --- /dev/null +++ b/sc/inc/addincol.hxx @@ -0,0 +1,187 @@ +/************************************************************************* + * + * $RCSfile: addincol.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:47 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_ADDINCOL_HXX +#define SC_ADDINCOL_HXX + + +#ifndef _COM_SUN_STAR_SHEET_XVOLATILERESULT_HPP_ +#include <com/sun/star/sheet/XVolatileResult.hpp> +#endif + +#ifndef _COM_SUN_STAR_SHEET_XADDIN_HPP_ +#include <com/sun/star/sheet/XAddIn.hpp> +#endif + +#ifndef _COM_SUN_STAR_SHEET_XRESULTLISTENER_HPP_ +#include <com/sun/star/sheet/XResultListener.hpp> +#endif + +#ifndef _COM_SUN_STAR_SHEET_RESULTEVENT_HPP_ +#include <com/sun/star/sheet/ResultEvent.hpp> +#endif + +#ifndef _COM_SUN_STAR_CONTAINER_XNAMEACCESS_HPP_ +#include <com/sun/star/container/XNameAccess.hpp> +#endif + + +class String; +class SfxObjectShell; +class ScUnoAddInFuncData; +class ScMatrix; +class ScFuncDesc; + + +enum ScAddInArgumentType +{ + SC_ADDINARG_NONE, // - + SC_ADDINARG_INTEGER, // long + SC_ADDINARG_DOUBLE, // double + SC_ADDINARG_STRING, // string + SC_ADDINARG_INTEGER_ARRAY, // sequence<sequence<long>> + SC_ADDINARG_DOUBLE_ARRAY, // sequence<sequence<double>> + SC_ADDINARG_STRING_ARRAY, // sequence<sequence<string>> + SC_ADDINARG_MIXED_ARRAY, // sequence<sequence<any>> + SC_ADDINARG_VALUE_OR_ARRAY, // any + SC_ADDINARG_CELLRANGE, // XCellRange + SC_ADDINARG_CALLER, // XPropertySet + SC_ADDINARG_VARARGS // sequence<any> +}; + + +class ScUnoAddInCollection +{ +private: + long nFuncCount; + ScUnoAddInFuncData** ppFuncData; + BOOL bInitialized; + + void Initialize(); + void ReadFromAddIn( const com::sun::star::uno::Reference< + com::sun::star::uno::XInterface>& xInterface ); + +public: + ScUnoAddInCollection(); + ~ScUnoAddInCollection(); + + String FindFunction( const String& rName, BOOL bLocalFirst ); // user entered name + ScUnoAddInFuncData* GetFuncData( const String& rName ); // exact name + + void LocalizeString( String& rName ); // modify rName - input: exact name + + long GetFuncCount(); + BOOL FillFunctionDesc( long nFunc, ScFuncDesc& rDesc ); +}; + + +class ScUnoAddInCall +{ +private: + const ScUnoAddInFuncData* pFuncData; + com::sun::star::uno::Sequence<com::sun::star::uno::Any> aArgs; + com::sun::star::uno::Sequence<com::sun::star::uno::Any> aVarArg; + com::sun::star::uno::Reference<com::sun::star::uno::XInterface> xCaller; + BOOL bValidCount; + // result: + USHORT nErrCode; + BOOL bHasString; + double fValue; + String aString; + ScMatrix* pMatrix; + com::sun::star::uno::Reference<com::sun::star::sheet::XVolatileResult> xVarRes; + + void ExecuteCallWithArgs( + com::sun::star::uno::Sequence<com::sun::star::uno::Any>& rCallArgs); + +public: + // exact name + ScUnoAddInCall( ScUnoAddInCollection& rColl, const String& rName, + long nParamCount ); + ~ScUnoAddInCall(); + + BOOL NeedsCaller() const; + void SetCaller( const com::sun::star::uno::Reference< + com::sun::star::uno::XInterface>& rInterface ); + void SetCallerFromObjectShell( SfxObjectShell* pSh ); + + BOOL ValidParamCount(); + ScAddInArgumentType GetArgType( long nPos ); + void SetParam( long nPos, const com::sun::star::uno::Any& rValue ); + + void ExecuteCall(); + + void SetResult( const com::sun::star::uno::Any& rNewRes ); + + USHORT GetErrCode() const { return nErrCode; } + BOOL HasString() const { return bHasString; } + BOOL HasMatrix() const { return ( pMatrix != NULL ); } + BOOL HasVarRes() const { return ( xVarRes.is() ); } + double GetValue() const { return fValue; } + const String& GetString() const { return aString; } + const ScMatrix* GetMatrix() const { return pMatrix; } + com::sun::star::uno::Reference<com::sun::star::sheet::XVolatileResult> + GetVarRes() const { return xVarRes; } +}; + + +#endif + diff --git a/sc/inc/afmtuno.hxx b/sc/inc/afmtuno.hxx new file mode 100644 index 000000000000..aac4ab2a9298 --- /dev/null +++ b/sc/inc/afmtuno.hxx @@ -0,0 +1,383 @@ +/************************************************************************* + * + * $RCSfile: afmtuno.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:47 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_AFMTUNO_HXX +#define SC_AFMTUNO_HXX + +#ifndef _SFXLSTNER_HXX //autogen +#include <svtools/lstner.hxx> +#endif + +#ifndef _SFX_ITEMPROP_HXX +#include <svtools/itemprop.hxx> +#endif + +#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_ +#include <com/sun/star/lang/XServiceInfo.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XCONTAINER_HPP_ +#include <com/sun/star/container/XContainer.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XINDEXCONTAINER_HPP_ +#include <com/sun/star/container/XIndexContainer.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XNAMEREPLACE_HPP_ +#include <com/sun/star/container/XNameReplace.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XCONTAINERLISTENER_HPP_ +#include <com/sun/star/container/XContainerListener.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XSET_HPP_ +#include <com/sun/star/container/XSet.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_CONTAINEREVENT_HPP_ +#include <com/sun/star/container/ContainerEvent.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XINDEXREPLACE_HPP_ +#include <com/sun/star/container/XIndexReplace.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XNAMECONTAINER_HPP_ +#include <com/sun/star/container/XNameContainer.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XNAMED_HPP_ +#include <com/sun/star/container/XNamed.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_ +#include <com/sun/star/beans/XPropertySet.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XUNOTUNNEL_HPP_ +#include <com/sun/star/lang/XUnoTunnel.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_ +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#endif + +#ifndef _CPPUHELPER_IMPLBASE2_HXX_ +#include <cppuhelper/implbase2.hxx> +#endif +#ifndef _CPPUHELPER_IMPLBASE4_HXX_ +#include <cppuhelper/implbase4.hxx> +#endif +#ifndef _CPPUHELPER_IMPLBASE6_HXX_ +#include <cppuhelper/implbase6.hxx> +#endif + +class ScAutoFormatFieldObj; +class ScAutoFormatObj; + + +#define SC_AFMTOBJ_INVALID USHRT_MAX + + +::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL + ScAutoFormatsObj_CreateInstance( + const ::com::sun::star::uno::Reference< + ::com::sun::star::lang::XMultiServiceFactory >& ); + + +class ScAutoFormatsObj : public ::cppu::WeakImplHelper4< + ::com::sun::star::container::XNameContainer, + ::com::sun::star::container::XEnumerationAccess, + ::com::sun::star::container::XIndexAccess, + ::com::sun::star::lang::XServiceInfo > +{ +private: + ScAutoFormatObj* GetObjectByIndex_Impl(USHORT nIndex); + ScAutoFormatObj* GetObjectByName_Impl(const ::rtl::OUString& aName); + +public: + ScAutoFormatsObj(); + virtual ~ScAutoFormatsObj(); + + static ::rtl::OUString getImplementationName_Static(); + static ::com::sun::star::uno::Sequence< ::rtl::OUString> getSupportedServiceNames_Static(); + + // XNameContainer + virtual void SAL_CALL insertByName( const ::rtl::OUString& aName, + const ::com::sun::star::uno::Any& aElement ) + throw(::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::container::ElementExistException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeByName( const ::rtl::OUString& Name ) + throw(::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XNameReplace + virtual void SAL_CALL replaceByName( const ::rtl::OUString& aName, + const ::com::sun::star::uno::Any& aElement ) + throw(::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XNameAccess + virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XEnumerationAccess + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL + createEnumeration() throw(::com::sun::star::uno::RuntimeException); + + // XIndexAccess + virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) + throw(::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScAutoFormatObj : public ::cppu::WeakImplHelper6< + ::com::sun::star::container::XIndexAccess, + ::com::sun::star::container::XEnumerationAccess, + ::com::sun::star::container::XNamed, + ::com::sun::star::beans::XPropertySet, + ::com::sun::star::lang::XUnoTunnel, + ::com::sun::star::lang::XServiceInfo >, + public SfxListener +{ +private: + SfxItemPropertySet aPropSet; + USHORT nFormatIndex; + + ScAutoFormatFieldObj* GetObjectByIndex_Impl(USHORT nIndex); + +public: + ScAutoFormatObj(USHORT nIndex); + virtual ~ScAutoFormatObj(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // per getImplementation gerufen: + sal_Bool IsInserted() const { return nFormatIndex != SC_AFMTOBJ_INVALID; } + void InitFormat( USHORT nNewIndex ); + + // XIndexAccess + virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) + throw(::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XEnumerationAccess + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL + createEnumeration() throw(::com::sun::star::uno::RuntimeException); + + // XNamed + virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XPropertySet + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > + SAL_CALL getPropertySetInfo() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Any& aValue ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::beans::PropertyVetoException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( + const ::rtl::OUString& PropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& xListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); + + // XUnoTunnel + virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< + sal_Int8 >& aIdentifier ) + throw(::com::sun::star::uno::RuntimeException); + + static const ::com::sun::star::uno::Sequence<sal_Int8>& getUnoTunnelId(); + static ScAutoFormatObj* getImplementation( const ::com::sun::star::uno::Reference< + ::com::sun::star::uno::XInterface> xObj ); +}; + + +class ScAutoFormatFieldObj : public ::cppu::WeakImplHelper2< + ::com::sun::star::beans::XPropertySet, + ::com::sun::star::lang::XServiceInfo >, + public SfxListener +{ +private: + SfxItemPropertySet aPropSet; + USHORT nFormatIndex; + USHORT nFieldIndex; + +public: + ScAutoFormatFieldObj(USHORT nFormat, USHORT nField); + virtual ~ScAutoFormatFieldObj(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // XPropertySet + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > + SAL_CALL getPropertySetInfo() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Any& aValue ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::beans::PropertyVetoException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( + const ::rtl::OUString& PropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& xListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +#endif + diff --git a/sc/inc/appluno.hxx b/sc/inc/appluno.hxx new file mode 100644 index 000000000000..d409db663726 --- /dev/null +++ b/sc/inc/appluno.hxx @@ -0,0 +1,265 @@ +/************************************************************************* + * + * $RCSfile: appluno.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:47 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_APPLUNO_HXX +#define SC_APPLUNO_HXX + +#ifndef _SFX_ITEMPROP_HXX +#include <svtools/itemprop.hxx> +#endif + +#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_ +#include <com/sun/star/lang/XServiceInfo.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_ +#include <com/sun/star/beans/XPropertySet.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XRECENTFUNCTIONS_HPP_ +#include <com/sun/star/sheet/XRecentFunctions.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XFUNCTIONDESCRIPTIONS_HPP_ +#include <com/sun/star/sheet/XFunctionDescriptions.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XENUMERATIONACCESS_HPP_ +#include <com/sun/star/container/XEnumerationAccess.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XNAMEACCESS_HPP_ +#include <com/sun/star/container/XNameAccess.hpp> +#endif + +#ifndef _CPPUHELPER_IMPLBASE2_HXX_ +#include <cppuhelper/implbase2.hxx> +#endif +#ifndef _CPPUHELPER_IMPLBASE4_HXX_ +#include <cppuhelper/implbase4.hxx> +#endif + +class ScFunctionDescriptionObj; + + + +com::sun::star::uno::Reference<com::sun::star::uno::XInterface> SAL_CALL + ScSpreadsheetSettings_CreateInstance( + const com::sun::star::uno::Reference< + com::sun::star::lang::XMultiServiceFactory>& rSMgr ); +com::sun::star::uno::Reference<com::sun::star::uno::XInterface> SAL_CALL + ScRecentFunctionsObj_CreateInstance( + const com::sun::star::uno::Reference< + com::sun::star::lang::XMultiServiceFactory>& rSMgr ); +com::sun::star::uno::Reference<com::sun::star::uno::XInterface> SAL_CALL + ScFunctionListObj_CreateInstance( + const com::sun::star::uno::Reference< + com::sun::star::lang::XMultiServiceFactory>& rSMgr ); + + +class ScSpreadsheetSettings : public cppu::WeakImplHelper2< + com::sun::star::beans::XPropertySet, + com::sun::star::lang::XServiceInfo> +{ +private: + SfxItemPropertySet aPropSet; + +public: + ScSpreadsheetSettings(); + virtual ~ScSpreadsheetSettings(); + + static ::rtl::OUString getImplementationName_Static(); + static ::com::sun::star::uno::Sequence< ::rtl::OUString > getSupportedServiceNames_Static(); + + // XPropertySet + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > + SAL_CALL getPropertySetInfo() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Any& aValue ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::beans::PropertyVetoException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( + const ::rtl::OUString& PropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& xListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScRecentFunctionsObj : public cppu::WeakImplHelper2< + com::sun::star::sheet::XRecentFunctions, + com::sun::star::lang::XServiceInfo> +{ +public: + ScRecentFunctionsObj(); + virtual ~ScRecentFunctionsObj(); + + static ::rtl::OUString getImplementationName_Static(); + static ::com::sun::star::uno::Sequence< ::rtl::OUString > getSupportedServiceNames_Static(); + + // XRecentFunctions + virtual ::com::sun::star::uno::Sequence< sal_Int32 > SAL_CALL getRecentFunctionIds() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setRecentFunctionIds( const ::com::sun::star::uno::Sequence< + sal_Int32 >& aRecentFunctionIds ) + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Int32 SAL_CALL getMaxRecentFunctions() + throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScFunctionListObj : public cppu::WeakImplHelper4< + com::sun::star::sheet::XFunctionDescriptions, + com::sun::star::container::XEnumerationAccess, + com::sun::star::container::XNameAccess, + com::sun::star::lang::XServiceInfo> +{ +public: + ScFunctionListObj(); + virtual ~ScFunctionListObj(); + + static ::rtl::OUString getImplementationName_Static(); + static ::com::sun::star::uno::Sequence< ::rtl::OUString > getSupportedServiceNames_Static(); + + // XFunctionDescriptions + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL + getById( sal_Int32 nId ) + throw(::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::uno::RuntimeException); + + // XNameAccess + virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XIndexAccess + virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) + throw(::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XEnumerationAccess + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL + createEnumeration() throw(::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + + +#endif + diff --git a/sc/inc/appoptio.hxx b/sc/inc/appoptio.hxx new file mode 100644 index 000000000000..b5e279c23b7e --- /dev/null +++ b/sc/inc/appoptio.hxx @@ -0,0 +1,162 @@ +/************************************************************************* + * + * $RCSfile: appoptio.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:47 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_APPOPTIO_HXX +#define SC_APPOPTIO_HXX + + +#ifndef _SV_FIELD_HXX //autogen +#include <vcl/field.hxx> +#endif + +#ifndef _SVX_ZOOMITEM_HXX //autogen +#include <svx/zoomitem.hxx> +#endif + +#ifndef _SFXCFGITEM_HXX //autogen +#include <sfx2/cfgitem.hxx> +#endif + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" +#endif + +class ScAppOptions +{ +public: + ScAppOptions(); + ScAppOptions( const ScAppOptions& rCpy ); + ~ScAppOptions(); + + void SetDefaults(); + + void SetAppMetric( FieldUnit eUnit ) { eMetric = eUnit; } + FieldUnit GetAppMetric() const { return eMetric; } + void SetZoom( USHORT nNew ) { nZoom = nNew; } + USHORT GetZoom() const { return nZoom; } + void SetZoomType( SvxZoomType eNew ) { eZoomType = eNew; } + SvxZoomType GetZoomType() const { return eZoomType; } + USHORT GetLRUFuncListCount() const { return nLRUFuncCount; } + USHORT* GetLRUFuncList() const { return pLRUList; } + void SetLRUFuncList( const USHORT* pList, + const USHORT nCount ); + void SetStatusFunc( USHORT nNew ) { nStatusFunc = nNew; } + USHORT GetStatusFunc() const { return nStatusFunc; } + void SetAutoComplete( BOOL bNew ) { bAutoComplete = bNew; } + BOOL GetAutoComplete() const { return bAutoComplete; } + void SetDetectiveAuto( BOOL bNew ) { bDetectiveAuto = bNew; } + BOOL GetDetectiveAuto() const { return bDetectiveAuto; } + + void SetTrackContentColor(ULONG nNew) { nTrackContentColor = nNew; } + ULONG GetTrackContentColor() const { return nTrackContentColor; } + void SetTrackInsertColor(ULONG nNew) { nTrackInsertColor = nNew; } + ULONG GetTrackInsertColor() const { return nTrackInsertColor; } + void SetTrackDeleteColor(ULONG nNew) { nTrackDeleteColor = nNew; } + ULONG GetTrackDeleteColor() const { return nTrackDeleteColor; } + void SetTrackMoveColor(ULONG nNew) { nTrackMoveColor = nNew; } + ULONG GetTrackMoveColor() const { return nTrackMoveColor; } + + ScLkUpdMode GetLinkMode() const { return eLinkMode ;} + void SetLinkMode( ScLkUpdMode nSet ) { eLinkMode = nSet;} + + + const ScAppOptions& operator= ( const ScAppOptions& rOpt ); + friend SvStream& operator>> ( SvStream& rStream, ScAppOptions& rOpt ); + friend SvStream& operator<< ( SvStream& rStream, const ScAppOptions& rOpt ); + +private: + FieldUnit eMetric; + USHORT nLRUFuncCount; + USHORT* pLRUList; + SvxZoomType eZoomType; + USHORT nZoom; + USHORT nStatusFunc; + BOOL bAutoComplete; + BOOL bDetectiveAuto; + ULONG nTrackContentColor; + ULONG nTrackInsertColor; + ULONG nTrackDeleteColor; + ULONG nTrackMoveColor; + ScLkUpdMode eLinkMode; +}; + + +//================================================================== +// CfgItem fuer App-Optionen +//================================================================== + +class ScAppCfg : public ScAppOptions, + public SfxConfigItem +{ +public: + ScAppCfg(); + + virtual String GetName() const; + +protected: + virtual int Load (SvStream& rStream); + virtual BOOL Store (SvStream& rStream); + virtual void UseDefault (); +}; + + +#endif + diff --git a/sc/inc/arealink.hxx b/sc/inc/arealink.hxx new file mode 100644 index 000000000000..4c02701cf32a --- /dev/null +++ b/sc/inc/arealink.hxx @@ -0,0 +1,120 @@ +/************************************************************************* + * + * $RCSfile: arealink.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:47 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_AREALINK_HXX +#define SC_AREALINK_HXX + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" +#endif + +#ifndef _LNKBASE_HXX //autogen +#include <so3/lnkbase.hxx> +#endif + +class ScDocShell; +class SfxObjectShell; + +class ScAreaLink : public SvBaseLink +{ +private: + ScDocShell* pDocShell; // Container + String aFileName; + String aFilterName; + String aOptions; + String aSourceArea; + ScRange aDestArea; + BOOL bAddUndo; + BOOL bInCreate; + BOOL bDoInsert; // wird fuer das erste Update auf FALSE gesetzt + +public: + TYPEINFO(); + ScAreaLink( SfxObjectShell* pShell, const String& rFile, + const String& rFilter, const String& rOpt, + const String& rArea, const ScRange& rDest ); + virtual ~ScAreaLink(); + + virtual void Closed(); + virtual void DataChanged(SvData& rData); + + virtual BOOL Edit(Window* pParent); + + BOOL Refresh( const String& rNewFile, const String& rNewFilter, const String& rNewArea ); + + void SetInCreate(BOOL bSet) { bInCreate = bSet; } + void SetDoInsert(BOOL bSet) { bDoInsert = bSet; } + void SetDestArea(const ScRange& rNew); + void SetSource(const String& rDoc, const String& rFlt, const String& rOpt, + const String& rArea); + + BOOL IsEqual( const String& rFile, const String& rFilter, const String& rOpt, + const String& rSource, const ScRange& rDest ) const; + + const String& GetFile() const { return aFileName; } + const String& GetFilter() const { return aFilterName; } + const String& GetOptions() const { return aOptions; } + const String& GetSource() const { return aSourceArea; } + const ScRange& GetDestArea() const { return aDestArea; } +}; + + +#endif diff --git a/sc/inc/attarray.hxx b/sc/inc/attarray.hxx new file mode 100644 index 000000000000..2371f23e993c --- /dev/null +++ b/sc/inc/attarray.hxx @@ -0,0 +1,265 @@ +/************************************************************************* + * + * $RCSfile: attarray.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:47 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_ATRARR_HXX +#define SC_ATRARR_HXX + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" +#endif + +#ifndef SC_SCATTR_HXX +#include "attrib.hxx" +#endif + +class ScDocument; +class ScMarkArray; +class ScPatternAttr; +class ScStyleSheet; + +class Rectangle; +class SfxItemPoolCache; +class SfxStyleSheetBase; +class SvxBorderLine; +class SvxBoxItem; +class SvxBoxInfoItem; + +#define SC_LINE_EMPTY 0 +#define SC_LINE_SET 1 +#define SC_LINE_DONTCARE 2 + +struct ScLineFlags +{ + BYTE nLeft; + BYTE nRight; + BYTE nTop; + BYTE nBottom; + BYTE nHori; + BYTE nVert; + + ScLineFlags() : nLeft(SC_LINE_EMPTY),nRight(SC_LINE_EMPTY),nTop(SC_LINE_EMPTY), + nBottom(SC_LINE_EMPTY),nHori(SC_LINE_EMPTY),nVert(SC_LINE_EMPTY) {} +}; + +struct ScAttrEntry +{ + USHORT nRow; + const ScPatternAttr* pPattern; +}; + + +class ScAttrArray +{ +private: + USHORT nCol; + USHORT nTab; + ScDocument* pDocument; + + USHORT nCount; + ScAttrEntry* pData; + +friend class ScDocument; // fuer FillInfo +friend class ScDocumentIterator; +friend class ScAttrIterator; +friend class ScHorizontalAttrIterator; +friend void lcl_IterGetNumberFormat( ULONG& nFormat, + const ScAttrArray*& rpArr, USHORT& nAttrEndRow, + const ScAttrArray* pNewArr, USHORT nRow, ScDocument* pDoc ); + + BOOL ApplyFrame( const SvxBoxItem* pLineOuter, const SvxBoxInfoItem* pLineInner, + USHORT nStartRow, USHORT nEndRow, + BOOL bLeft, USHORT nDistRight, BOOL bTop, USHORT nDistBottom ); + +public: + ScAttrArray( USHORT nNewCol, USHORT nNewTab, ScDocument* pDoc ); + ~ScAttrArray(); + + void SetTab(USHORT nNewTab) { nTab = nNewTab; } + void SetCol(USHORT nNewCol) { nCol = nNewCol; } + + void TestData() const; + void Reset( const ScPatternAttr* pPattern, BOOL bAlloc = TRUE ); + BOOL Concat(USHORT nPos); + + const ScPatternAttr* GetPattern( USHORT nRow ) const; + const ScPatternAttr* GetPatternRange( USHORT& rStartRow, USHORT& rEndRow, USHORT nRow ) const; + void MergePatternArea( USHORT nStartRow, USHORT nEndRow, SfxItemSet** ppSet, BOOL bDeep ) const; + + void MergeBlockFrame( SvxBoxItem* pLineOuter, SvxBoxInfoItem* pLineInner, ScLineFlags& rFlags, + USHORT nStartRow, USHORT nEndRow, BOOL bLeft, USHORT nDistRight ) const; + void ApplyBlockFrame( const SvxBoxItem* pLineOuter, const SvxBoxInfoItem* pLineInner, + USHORT nStartRow, USHORT nEndRow, BOOL bLeft, USHORT nDistRight ); + + void SetPattern( USHORT nRow, const ScPatternAttr* pPattern, BOOL bPutToPool = FALSE ); + void SetPatternArea( USHORT nStartRow, USHORT nEndRow, const ScPatternAttr* pPattern, BOOL bPutToPool = FALSE); + void ApplyStyleArea( USHORT nStartRow, USHORT nEndRow, ScStyleSheet* pStyle ); + void ApplyCacheArea( USHORT nStartRow, USHORT nEndRow, SfxItemPoolCache* pCache ); + void ApplyLineStyleArea( USHORT nStartRow, USHORT nEndRow, + const SvxBorderLine* pLine, BOOL bColorOnly ); + + void ClearItems( USHORT nStartRow, USHORT nEndRow, const USHORT* pWhich ); + void ChangeIndent( USHORT nStartRow, USHORT nEndRow, BOOL bIncrement ); + + short GetNextUnprotected( short nRow, BOOL bUp ) const; // inkl. aktuelle + + short SearchStyle( short nRow, const ScStyleSheet* pSearchStyle, + BOOL bUp, ScMarkArray* pMarkArray = NULL ); + BOOL SearchStyleRange( short& rRow, short& rEndRow, const ScStyleSheet* pSearchStyle, + BOOL bUp, ScMarkArray* pMarkArray = NULL ); + + BOOL ApplyFlags( USHORT nStartRow, USHORT nEndRow, INT16 nFlags ); + BOOL RemoveFlags( USHORT nStartRow, USHORT nEndRow, INT16 nFlags ); + + BOOL Search( USHORT nRow, short& nIndex ) const; + + BOOL HasLines( USHORT nRow1, USHORT nRow2, Rectangle& rSizes, + BOOL bLeft, BOOL bRight ) const; + BOOL HasAttrib( USHORT nRow1, USHORT nRow2, USHORT nMask ) const; + BOOL ExtendMerge( USHORT nThisCol, USHORT nStartRow, USHORT nEndRow, + USHORT& rPaintCol, USHORT& rPaintRow, + BOOL bRefresh, BOOL bAttrs ); + BOOL RemoveAreaMerge( USHORT nStartRow, USHORT nEndRow ); + + void FindStyleSheet( const SfxStyleSheetBase* pStyleSheet, BOOL* pUsed, BOOL bReset ); + BOOL IsStyleSheetUsed( const SfxStyleSheetBase& rStyle ) const; + + void DeleteAreaSafe(USHORT nStartRow, USHORT nEndRow); + void SetPatternAreaSafe( USHORT nStartRow, USHORT nEndRow, + const ScPatternAttr* pWantedPattern, BOOL bDefault ); + void CopyAreaSafe( USHORT nStartRow, USHORT nEndRow, short nDy, ScAttrArray& rAttrArray ); + + BOOL IsEmpty() const; + + USHORT GetFirstEntryPos() const; + USHORT GetLastEntryPos( BOOL bIncludeBottom ) const; + + BOOL HasVisibleAttr( USHORT& rFirstRow, USHORT& rLastRow, BOOL bSkipFirst ) const; + BOOL HasVisibleAttrIn( USHORT nStartRow, USHORT nEndRow ) const; + BOOL IsVisibleEqual( const ScAttrArray& rOther, + USHORT nStartRow, USHORT nEndRow ) const; + BOOL IsAllEqual( const ScAttrArray& rOther, USHORT nStartRow, USHORT nEndRow ) const; + + BOOL TestInsertCol( USHORT nStartRow, USHORT nEndRow) const; + BOOL TestInsertRow( USHORT nSize ) const; + void InsertRow( USHORT nStartRow, USHORT nSize ); + void DeleteRow( USHORT nStartRow, USHORT nSize ); + void DeleteRange( USHORT nStartIndex, USHORT nEndIndex ); + void DeleteArea( USHORT nStartRow, USHORT nEndRow ); + void MoveTo( USHORT nStartRow, USHORT nEndRow, ScAttrArray& rAttrArray ); + void CopyArea( USHORT nStartRow, USHORT nEndRow, short nDy, ScAttrArray& rAttrArray, + INT16 nStripFlags = 0 ); + + void DeleteHardAttr( USHORT nStartRow, USHORT nEndRow ); + + void Save( SvStream& rStream ) const; + void Load( SvStream& rStream ); +}; + + +// ------------------------------------------------------------------------------ +// Iterator fuer Attribute +// ------------------------------------------------------------------------------ + +class ScAttrIterator +{ + const ScAttrArray* pArray; + short nPos; + USHORT nRow; + USHORT nEndRow; +public: + inline ScAttrIterator( const ScAttrArray* pNewArray, USHORT nStart, USHORT nEnd ); + inline const ScPatternAttr* Next( USHORT& rTop, USHORT& rBottom ); + USHORT GetNextRow() const { return nRow; } +}; + + +inline ScAttrIterator::ScAttrIterator( const ScAttrArray* pNewArray, USHORT nStart, USHORT nEnd ) : + pArray( pNewArray ), + nRow( nStart ), + nEndRow( nEnd ) +{ + if ( nStart ) + pArray->Search( nStart, nPos ); + else + nPos = 0; +} + +inline const ScPatternAttr* ScAttrIterator::Next( USHORT& rTop, USHORT& rBottom ) +{ + const ScPatternAttr* pRet; + if ( nPos < (short) pArray->nCount && nRow <= nEndRow ) + { + rTop = nRow; + rBottom = Min( pArray->pData[nPos].nRow, nEndRow ); + pRet = pArray->pData[nPos].pPattern; + nRow = rBottom + 1; + ++nPos; + } + else + pRet = NULL; + return pRet; +} + + + +#endif + + diff --git a/sc/inc/attrib.hxx b/sc/inc/attrib.hxx new file mode 100644 index 000000000000..9e906eca0d0b --- /dev/null +++ b/sc/inc/attrib.hxx @@ -0,0 +1,406 @@ +/************************************************************************* + * + * $RCSfile: attrib.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:47 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_SCATTR_HXX +#define SC_SCATTR_HXX + +#ifndef _SFXPOOLITEM_HXX //autogen +#include <svtools/poolitem.hxx> +#endif + +#ifndef _SFXINTITEM_HXX //autogen +#include <svtools/intitem.hxx> +#endif + +#ifndef _SFXENUMITEM_HXX //autogen +#include <svtools/eitem.hxx> +#endif + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" +#endif + +//------------------------------------------------------------------------ + + // Flags fuer durch Merge verdeckte Zellen + // und Control fuer Auto-Filter +#define SC_MF_HOR 1 +#define SC_MF_VER 2 +#define SC_MF_AUTO 4 +#define SC_MF_BUTTON 8 +#define SC_MF_SCENARIO 16 + +#define SC_MF_ALL 31 + + +class EditTextObject; +class SvxBorderLine; + +BOOL HasPriority( const SvxBorderLine* pThis, const SvxBorderLine* pOther ); + +//------------------------------------------------------------------------ + +class ScMergeAttr: public SfxPoolItem +{ + INT16 nColMerge; + INT16 nRowMerge; +public: + TYPEINFO(); + ScMergeAttr(); + ScMergeAttr( INT16 nCol, INT16 nRow = 0); + ScMergeAttr( const ScMergeAttr& ); + ~ScMergeAttr(); + + virtual String GetValueText() const; + + virtual int operator==( const SfxPoolItem& ) const; + virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; + virtual SfxPoolItem* Create( SvStream& rStream, USHORT nVer ) const; + virtual SvStream& Store( SvStream& rStream, USHORT nVer ) const; + + INT16 GetColMerge() const {return nColMerge; } + INT16 GetRowMerge() const {return nRowMerge; } + + BOOL IsMerged() const { return nColMerge>1 || nRowMerge>1; } + + inline ScMergeAttr& operator=(const ScMergeAttr& rMerge) + { + nColMerge = rMerge.nColMerge; + nRowMerge = rMerge.nRowMerge; + return *this; + } +}; + +//------------------------------------------------------------------------ + +class ScMergeFlagAttr: public SfxInt16Item +{ +public: + ScMergeFlagAttr(); + ScMergeFlagAttr(INT16 nFlags); + ~ScMergeFlagAttr(); + + BOOL IsHorOverlapped() const { return ( GetValue() & SC_MF_HOR ) != 0; } + BOOL IsVerOverlapped() const { return ( GetValue() & SC_MF_VER ) != 0; } + BOOL IsOverlapped() const { return ( GetValue() & ( SC_MF_HOR | SC_MF_VER ) ) != 0; } + + BOOL HasAutoFilter() const { return ( GetValue() & SC_MF_AUTO ) != 0; } + BOOL HasButton() const { return ( GetValue() & SC_MF_BUTTON ) != 0; } + + BOOL IsScenario() const { return ( GetValue() & SC_MF_SCENARIO ) != 0; } +}; + +//------------------------------------------------------------------------ +class ScProtectionAttr: public SfxPoolItem +{ + BOOL bProtection; // Zelle schuetzen + BOOL bHideFormula; // Formel nicht Anzeigen + BOOL bHideCell; // Zelle nicht Anzeigen + BOOL bHidePrint; // Zelle nicht Ausdrucken +public: + TYPEINFO(); + ScProtectionAttr(); + ScProtectionAttr( BOOL bProtect, + BOOL bHFormula = FALSE, + BOOL bHCell = FALSE, + BOOL bHPrint = FALSE); + ScProtectionAttr( const ScProtectionAttr& ); + ~ScProtectionAttr(); + + virtual String GetValueText() const; + virtual SfxItemPresentation GetPresentation( + SfxItemPresentation ePres, + SfxMapUnit eCoreMetric, + SfxMapUnit ePresMetric, + String& rText, + const International* pIntl = 0 ) const; + + virtual int operator==( const SfxPoolItem& ) const; + virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; + virtual SfxPoolItem* Create( SvStream& rStream, USHORT nVer ) const; + virtual SvStream& Store( SvStream& rStream, USHORT nVer ) const; + + virtual BOOL QueryValue( com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 ) const; + virtual BOOL PutValue( const com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 ); + + BOOL GetProtection() const { return bProtection; } + BOOL SetProtection( BOOL bProtect); + BOOL GetHideFormula() const { return bHideFormula; } + BOOL SetHideFormula( BOOL bHFormula); + BOOL GetHideCell() const { return bHideCell; } + BOOL SetHideCell( BOOL bHCell); + BOOL GetHidePrint() const { return bHidePrint; } + BOOL SetHidePrint( BOOL bHPrint); + inline ScProtectionAttr& operator=(const ScProtectionAttr& rProtection) + { + bProtection = rProtection.bProtection; + bHideFormula = rProtection.bHideFormula; + bHideCell = rProtection.bHideCell; + bHidePrint = rProtection.bHidePrint; + return *this; + } +}; + + +//---------------------------------------------------------------------------- +// ScRangeItem: verwaltet einen Tabellenbereich + +#define SCR_INVALID 0x01 +#define SCR_ALLTABS 0x02 +#define SCR_TONEWTAB 0x04 + +class ScRangeItem : public SfxPoolItem +{ +public: + TYPEINFO(); + + inline ScRangeItem( const USHORT nWhich ); + inline ScRangeItem( const USHORT nWhich, + const ScRange& rRange, + const USHORT nNewFlags = 0 ); + inline ScRangeItem( const ScRangeItem& rCpy ); + + inline ScRangeItem& operator=( const ScRangeItem &rCpy ); + + // "pure virtual Methoden" vom SfxPoolItem + virtual int operator==( const SfxPoolItem& ) const; + virtual void Record( SfxArguments &rArgs ) const; + virtual SfxArgumentError Construct( USHORT nId, const SfxArguments &rArgs ); + virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres, + SfxMapUnit eCoreMetric, + SfxMapUnit ePresMetric, + String &rText, + const International* pIntl = 0 ) const; + virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; + virtual USHORT GetVersion( USHORT nFileVersion ) const; + virtual SfxPoolItem* Create(SvStream &, USHORT) const; + virtual SvStream& Store( SvStream& rStream, USHORT nVer ) const; + + const ScRange& GetRange() const { return aRange; } + void SetRange( const ScRange& rNew ) { aRange = rNew; } + + USHORT GetFlags() const { return nFlags; } + void SetFlags( USHORT nNew ) { nFlags = nNew; } + +private: + ScRange aRange; + USHORT nFlags; +}; + +inline ScRangeItem::ScRangeItem( const USHORT nWhich ) + : SfxPoolItem( nWhich ), nFlags( SCR_INVALID ) // == ungueltige Area +{ +} + +inline ScRangeItem::ScRangeItem( const USHORT nWhich, + const ScRange& rRange, + const USHORT nNew ) + : SfxPoolItem( nWhich ), aRange( rRange ), nFlags( nNew ) +{ +} + +inline ScRangeItem::ScRangeItem( const ScRangeItem& rCpy ) + : SfxPoolItem( rCpy.Which() ), aRange( rCpy.aRange ), nFlags( rCpy.nFlags ) +{} + +inline ScRangeItem& ScRangeItem::operator=( const ScRangeItem &rCpy ) +{ + aRange = rCpy.aRange; + return *this; +} + +//---------------------------------------------------------------------------- +// ScTableListItem: verwaltet eine Liste von Tabellen +//---------------------------------------------------------------------------- +class ScTableListItem : public SfxPoolItem +{ +public: + TYPEINFO(); + + inline ScTableListItem( const USHORT nWhich ); + ScTableListItem( const ScTableListItem& rCpy ); + ScTableListItem( const USHORT nWhich, const List& rList ); + ~ScTableListItem(); + + ScTableListItem& operator=( const ScTableListItem &rCpy ); + + // "pure virtual Methoden" vom SfxPoolItem + virtual int operator==( const SfxPoolItem& ) const; + virtual void Record( SfxArguments &rArgs ) const; + virtual SfxArgumentError Construct( USHORT nId, const SfxArguments &rArgs ); + virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres, + SfxMapUnit eCoreMetric, + SfxMapUnit ePresMetric, + String &rText, + const International* pIntl = 0 ) const; + virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; + virtual SfxPoolItem* Create(SvStream &, USHORT) const; + virtual SvStream& Store( SvStream& rStream, USHORT nVer ) const; + + BOOL GetTableList( List& aList ) const; + void SetTableList( const List& aList ); + +public: + USHORT nCount; + USHORT* pTabArr; +}; + +inline ScTableListItem::ScTableListItem( const USHORT nWhich ) + : SfxPoolItem(nWhich), nCount(0), pTabArr(NULL) +{} + +//---------------------------------------------------------------------------- +// Seitenformat-Item: Kopf-/Fusszeileninhalte + +#define SC_HF_LEFTAREA 1 +#define SC_HF_CENTERAREA 2 +#define SC_HF_RIGHTAREA 3 + +class ScPageHFItem : public SfxPoolItem +{ + EditTextObject* pLeftArea; + EditTextObject* pCenterArea; + EditTextObject* pRightArea; + +public: + TYPEINFO(); + ScPageHFItem( USHORT nWhich ); + ScPageHFItem( const ScPageHFItem& rItem ); + ~ScPageHFItem(); + + virtual String GetValueText() const; + virtual int operator==( const SfxPoolItem& ) const; + virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; + + virtual SfxPoolItem* Create( SvStream& rStream, USHORT nVer ) const; + virtual SvStream& Store( SvStream& rStream, USHORT nVer ) const; + + virtual USHORT GetVersion( USHORT nFileVersion ) const; + + virtual BOOL QueryValue( com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 ) const; + virtual BOOL PutValue( const com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 ); + + const EditTextObject* GetLeftArea() const { return pLeftArea; } + const EditTextObject* GetCenterArea() const { return pCenterArea; } + const EditTextObject* GetRightArea() const { return pRightArea; } + + void SetLeftArea( const EditTextObject& rNew ); + void SetCenterArea( const EditTextObject& rNew ); + void SetRightArea( const EditTextObject& rNew ); + + //Set mit Uebereignung der Pointer, nArea siehe defines oben + void SetArea( EditTextObject *pNew, int nArea ); +}; + + +//---------------------------------------------------------------------------- +// Seitenformat-Item: Kopf-/Fusszeileninhalte + +class ScViewObjectModeItem: public SfxEnumItem +{ +public: + TYPEINFO(); + + ScViewObjectModeItem( USHORT nWhich ); + ScViewObjectModeItem( USHORT nWhich, ScVObjMode eMode ); + ~ScViewObjectModeItem(); + + virtual USHORT GetValueCount() const; + virtual String GetValueText( USHORT nVal ) const; + virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; + virtual SfxPoolItem* Create(SvStream &, USHORT) const; + virtual USHORT GetVersion( USHORT nFileVersion ) const; + virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres, + SfxMapUnit eCoreMetric, + SfxMapUnit ePresMetric, + String& rText, + const International* pIntl = 0 ) const; +}; + +//---------------------------------------------------------------------------- +// + +class ScDoubleItem : public SfxPoolItem +{ +public: + TYPEINFO(); + ScDoubleItem( USHORT nWhich, double nVal=0 ); + ScDoubleItem( const ScDoubleItem& rItem ); + ~ScDoubleItem(); + + virtual String GetValueText() const; + virtual int operator==( const SfxPoolItem& ) const; + virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; + + virtual SfxPoolItem* Create( SvStream& rStream, USHORT nVer ) const; + virtual SvStream& Store( SvStream& rStream, USHORT nVer ) const; + + double GetValue() const { return nValue; } + + void SetValue( const double nVal ) { nValue = nVal;} + +private: + double nValue; +}; + + +#endif + diff --git a/sc/inc/autoform.hxx b/sc/inc/autoform.hxx new file mode 100644 index 000000000000..cc6a135fd843 --- /dev/null +++ b/sc/inc/autoform.hxx @@ -0,0 +1,277 @@ +/************************************************************************* + * + * $RCSfile: autoform.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:47 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_AUTOFORM_HXX +#define SC_AUTOFORM_HXX + +/************************************************************************* +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +JP 20.07.95: + + Die akt. Struktur der Autoformatierung darf nicht mehr veraendert werden. + Diese wird durch unterschiedlichen Code vom StartWriter und vom StarCalc + eingelesen/geschrieben. + Sollte sich doch mal eine Aenderung nicht vermeiden lassen, dann auf + jedenfall in beiden Applikationen aendern. + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +**************************************************************************/ + +#ifndef SC_ITEMS_HXX +#include "scitems.hxx" +#endif + +#ifndef SC_COLLECT_HXX +#include "collect.hxx" +#endif + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" +#endif + +class SfxBoolItem; +class SvxHorJustifyItem; +class SvxVerJustifyItem; +class SvxMarginItem; +class SvxOrientationItem; +class SvxFontItem; +class SvxPostureItem; +class SvxWeightItem; +class SvxFontHeightItem; +class SvxUnderlineItem; +class SvxCrossedOutItem; +class SvxShadowedItem; +class SvxContourItem; +class SvxColorItem; +class SvxBoxItem; +class SvxAdjustItem; +class SfxInt32Item; +class SvxRotateModeItem; + + +class ScNumFormatAbbrev; +struct ScAfVersions; + +class ScAutoFormatData : public DataObject +{ +private: + String aName; + USHORT nStrResId; + // gemeinsame Flags von StarCalc und StarWriter + BOOL bIncludeFont : 1; + BOOL bIncludeJustify : 1; + BOOL bIncludeFrame : 1; + BOOL bIncludeBackground : 1; + + // StarCalc spezifisches + BOOL bIncludeValueFormat : 1; + BOOL bIncludeWidthHeight : 1; + + // gemeinsame Attribute von StarCalc und StarWriter + SvxFontItem* pFont[16]; + SvxFontHeightItem* pFontHeight[16]; + SvxWeightItem* pFontWeight[16]; + SvxPostureItem* pFontPosture[16]; + SvxUnderlineItem* pFontUnderline[16]; + SvxCrossedOutItem* pFontCrossedOut[16]; + SvxContourItem* pFontContour[16]; + SvxShadowedItem* pFontShadowed[16]; + SvxColorItem* pFontColor[16]; + SvxBoxItem* pBox[16]; + SvxBrushItem* pBackground[16]; + + // StarWriter spezifisches + SvxAdjustItem* pAdjust[16]; + + // StarCalc spezifisches + SvxHorJustifyItem* pHorJustify[16]; + SvxVerJustifyItem* pVerJustify[16]; + SvxOrientationItem* pOrientation[16]; + SvxMarginItem* pMargin[16]; + SfxBoolItem* pLinebreak[16]; + // ab SO5, 504k, gedrehter Text + SfxInt32Item* pRotateAngle[16]; + SvxRotateModeItem* pRotateMode[16]; + + // Zahlenformat + ScNumFormatAbbrev* pNumFormat[16]; + +public: + ScAutoFormatData(); + ScAutoFormatData( const ScAutoFormatData& rData ); + virtual ~ScAutoFormatData(); + + virtual DataObject* Clone() const { return new ScAutoFormatData(*this); } + + void SetName(const String& rName) { aName = rName; nStrResId = USHRT_MAX; } + void GetName(String& rName) const { rName = aName; } + + BOOL GetIncludeValueFormat() const { return bIncludeValueFormat; } + void SetIncludeValueFormat(const BOOL bValueFormat) { bIncludeValueFormat = bValueFormat; } + + BOOL GetIncludeFont() const { return bIncludeFont; } + void SetIncludeFont(const BOOL bFont) { bIncludeFont = bFont; } + + BOOL GetIncludeJustify() const { return bIncludeJustify; } + void SetIncludeJustify(const BOOL bJustify) { bIncludeJustify = bJustify; } + + BOOL GetIncludeFrame() const { return bIncludeFrame; } + void SetIncludeFrame(const BOOL bFrame) { bIncludeFrame = bFrame; } + + BOOL GetIncludeBackground() const { return bIncludeBackground; } + void SetIncludeBackground(const BOOL bBackground) { bIncludeBackground = bBackground; } + + BOOL GetIncludeWidthHeight() const { return bIncludeWidthHeight; } + void SetIncludeWidthHeight(const BOOL bWidthHeight) { bIncludeWidthHeight = bWidthHeight; } + + void GetNumFormat(USHORT nIndex, ScNumFormatAbbrev& rNumFormat) const; + void SetNumFormat(USHORT nIndex, const ScNumFormatAbbrev& rNumFormat); + + void GetFont(USHORT nIndex, SvxFontItem& rFont) const; + void SetFont(USHORT nIndex, const SvxFontItem& rFont); + + void GetFontHeight(USHORT nIndex, SvxFontHeightItem& rFontHeight) const; + void SetFontHeight(USHORT nIndex, const SvxFontHeightItem& rFontHeight); + + void GetFontWeight(USHORT nIndex, SvxWeightItem& rFontWeight) const; + void SetFontWeight(USHORT nIndex, const SvxWeightItem& rFontWeight); + + void GetFontPosture(USHORT nIndex, SvxPostureItem& rFontPosture) const; + void SetFontPosture(USHORT nIndex, const SvxPostureItem& rFontPosture); + + void GetFontUnderline(USHORT nIndex, SvxUnderlineItem& rFontUnderline) const; + void SetFontUnderline(USHORT nIndex, const SvxUnderlineItem& rFontUnderline); + + void GetFontCrossedOut(USHORT nIndex, SvxCrossedOutItem& rFontCrossedOut) const; + void SetFontCrossedOut(USHORT nIndex, const SvxCrossedOutItem& rFontCrossedOut); + + void GetFontContour(USHORT nIndex, SvxContourItem& rFontContour) const; + void SetFontContour(USHORT nIndex, const SvxContourItem& rFontContour); + + void GetFontShadowed(USHORT nIndex, SvxShadowedItem& rFontShadowed) const; + void SetFontShadowed(USHORT nIndex, const SvxShadowedItem& rFontShadowed); + + void GetFontColor(USHORT nIndex, SvxColorItem& rFontColor) const; + void SetFontColor(USHORT nIndex, const SvxColorItem& rFontColor); + + void GetHorJustify(USHORT nIndex, SvxHorJustifyItem& rHorJustify) const; + void SetHorJustify(USHORT nIndex, const SvxHorJustifyItem& rHorJustify); + + void GetVerJustify(USHORT nIndex, SvxVerJustifyItem& rVerJustify) const; + void SetVerJustify(USHORT nIndex, const SvxVerJustifyItem& rVerJustify); + + void GetOrientation(USHORT nIndex, SvxOrientationItem& rOrientation) const; + void SetOrientation(USHORT nIndex, const SvxOrientationItem& rOrientation); + + void GetLinebreak(USHORT nIndex, SfxBoolItem& rLinebreak) const; + void SetLinebreak(USHORT nIndex, const SfxBoolItem& rLinebreak); + + void GetMargin(USHORT nIndex, SvxMarginItem& rMargin) const; + void SetMargin(USHORT nIndex, const SvxMarginItem& rMargin); + + void GetBox(USHORT nIndex, SvxBoxItem& rBox) const; + void SetBox(USHORT nIndex, const SvxBoxItem& rBox); + + void GetBackground(USHORT nIndex, SvxBrushItem& rBackground) const; + void SetBackground(USHORT nIndex, const SvxBrushItem& rBackground); + + void GetRotateAngle( USHORT nIndex, SfxInt32Item& rRotateAngle ) const; + void SetRotateAngle( USHORT nIndex, const SfxInt32Item& rRotateAngle ); + + void GetRotateMode( USHORT nIndex, SvxRotateModeItem& rRotateMode ) const; + void SetRotateMode( USHORT nIndex, const SvxRotateModeItem& rRotateMode ); + + const SfxPoolItem* GetItem( USHORT nIndex, USHORT nWhich ) const; + void PutItem( USHORT nIndex, const SfxPoolItem& rItem ); + + BOOL IsEqualData(USHORT nIndex1, USHORT nIndex2); + + BOOL Load(SvStream& rStream, const ScAfVersions& rVersions); + BOOL Save(SvStream& rStream); + +#ifdef READ_OLDVERS + BOOL LoadOld( SvStream& rStream, const ScAfVersions& rVersions ); +#endif +}; + +class ScAutoFormat : public SortedCollection +{ +private: + BOOL bSaveLater; + +public: + ScAutoFormat(USHORT nLim = 4, USHORT nDel = 4, BOOL bDup = FALSE); + ScAutoFormat(const ScAutoFormat& AutoFormat); + virtual ~ScAutoFormat(); + virtual DataObject* Clone() const { return new ScAutoFormat(*this); } + ScAutoFormatData* operator[]( const USHORT nIndex) const {return (ScAutoFormatData*)At(nIndex);} + virtual short Compare(DataObject* pKey1, DataObject* pKey2) const; + BOOL Load(); + BOOL Save(); + USHORT FindIndexPerName( const String& rName ) const; + void SetSaveLater( BOOL bSet ); + BOOL IsSaveLater() const { return bSaveLater; } +}; + + +#endif + diff --git a/sc/inc/bigrange.hxx b/sc/inc/bigrange.hxx new file mode 100644 index 000000000000..ae8f049f0bc2 --- /dev/null +++ b/sc/inc/bigrange.hxx @@ -0,0 +1,309 @@ +/************************************************************************* + * + * $RCSfile: bigrange.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_BIGRANGE_HXX +#define SC_BIGRANGE_HXX + + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" +#endif +#ifndef SC_DOCUMENT_HXX +#include "document.hxx" +#endif + + +static const INT32 nInt32Min = 0x80000000; +static const INT32 nInt32Max = 0x7fffffff; + + +class ScBigAddress +{ + INT32 nRow; + INT32 nCol; + INT32 nTab; + +public: + ScBigAddress() : nCol(0), nRow(0), nTab(0) {} + ScBigAddress( INT32 nColP, INT32 nRowP, INT32 nTabP ) + : nCol( nColP ), nRow( nRowP ), nTab( nTabP ) {} + ScBigAddress( const ScBigAddress& r ) + : nCol( r.nCol ), nRow( r.nRow ), nTab( r.nTab ) {} + ScBigAddress( const ScAddress& r ) + : nCol( r.Col() ), nRow( r.Row() ), nTab( r.Tab() ) {} + + INT32 Col() const { return nCol; } + INT32 Row() const { return nRow; } + INT32 Tab() const { return nTab; } + + void Set( INT32 nColP, INT32 nRowP, INT32 nTabP ) + { nCol = nColP; nRow = nRowP; nTab = nTabP; } + void SetCol( INT32 nColP ) { nCol = nColP; } + void SetRow( INT32 nRowP ) { nRow = nRowP; } + void SetTab( INT32 nTabP ) { nTab = nTabP; } + void IncCol( INT32 n = 1 ) { nCol += n; } + void IncRow( INT32 n = 1 ) { nRow += n; } + void IncTab( INT32 n = 1 ) { nTab += n; } + + void GetVars( INT32& nColP, INT32& nRowP, INT32& nTabP ) const + { nColP = nCol; nRowP = nRow; nTabP = nTab; } + + inline void PutInOrder( ScBigAddress& r ); + inline BOOL IsValid( const ScDocument* ) const; + inline ScAddress MakeAddress() const; + + ScBigAddress& operator=( const ScBigAddress& r ) + { nCol = r.nCol; nRow = r.nRow; nTab = r.nTab; return *this; } + ScBigAddress& operator=( const ScAddress& r ) + { nCol = r.Col(); nRow = r.Row(); nTab = r.Tab(); return *this; } + int operator==( const ScBigAddress& r ) const + { return nCol == r.nCol && nRow == r.nRow && nTab == r.nTab; } + int operator!=( const ScBigAddress& r ) const + { return !operator==( r ); } + + friend inline SvStream& operator<< ( SvStream& rStream, const ScBigAddress& rAdr ); + friend inline SvStream& operator>> ( SvStream& rStream, ScBigAddress& rAdr ); +}; + + +inline void ScBigAddress::PutInOrder( ScBigAddress& r ) +{ + INT32 nTmp; + if ( r.nCol < nCol ) + { + nTmp = r.nCol; + r.nCol = nCol; + nCol = nTmp; + } + if ( r.nRow < nRow ) + { + nTmp = r.nRow; + r.nRow = nRow; + nRow = nTmp; + } + if ( r.nTab < nTab ) + { + nTmp = r.nTab; + r.nTab = nTab; + nTab = nTmp; + } +} + + +inline BOOL ScBigAddress::IsValid( const ScDocument* pDoc ) const +{ //! Min/Max sind ok, kennzeichnen ganze Col/Row/Tab + return + ((0 <= nCol && nCol <= MAXCOL) + || nCol == nInt32Min || nCol == nInt32Max) && + ((0 <= nRow && nRow <= MAXROW) + || nRow == nInt32Min || nRow == nInt32Max) && + ((0 <= nTab && nTab < pDoc->GetTableCount()) + || nTab == nInt32Min || nTab == nInt32Max) + ; +} + + +inline ScAddress ScBigAddress::MakeAddress() const +{ + USHORT nColA, nRowA, nTabA; + + if ( nCol < 0 ) + nColA = 0; + else if ( nCol > MAXCOL ) + nColA = MAXCOL; + else + nColA = (USHORT) nCol; + + if ( nRow < 0 ) + nRowA = 0; + else if ( nRow > MAXROW ) + nRowA = MAXROW; + else + nRowA = (USHORT) nRow; + + if ( nTab < 0 ) + nTabA = 0; + else if ( nTab > MAXTAB ) + nTabA = MAXTAB; + else + nTabA = (USHORT) nTab; + + return ScAddress( nColA, nRowA, nTabA ); +} + + +inline SvStream& operator<< ( SvStream& rStream, const ScBigAddress& rAdr ) +{ + rStream << rAdr.nCol << rAdr.nRow << rAdr.nTab; + return rStream; +} + + +inline SvStream& operator>> ( SvStream& rStream, ScBigAddress& rAdr ) +{ + rStream >> rAdr.nCol >> rAdr.nRow >> rAdr.nTab; + return rStream; +} + + +class ScBigRange +{ +public: + + ScBigAddress aStart; + ScBigAddress aEnd; + + ScBigRange() : aStart(), aEnd() {} + ScBigRange( const ScBigAddress& s, const ScBigAddress& e ) + : aStart( s ), aEnd( e ) { aStart.PutInOrder( aEnd ); } + ScBigRange( const ScBigRange& r ) + : aStart( r.aStart ), aEnd( r.aEnd ) {} + ScBigRange( const ScRange& r ) + : aStart( r.aStart ), aEnd( r.aEnd ) {} + ScBigRange( const ScBigAddress& r ) + : aStart( r ), aEnd( r ) {} + ScBigRange( const ScAddress& r ) + : aStart( r ), aEnd( r ) {} + ScBigRange( INT32 nCol, INT32 nRow, INT32 nTab ) + : aStart( nCol, nRow, nTab ), aEnd( aStart ) {} + ScBigRange( INT32 nCol1, INT32 nRow1, INT32 nTab1, + INT32 nCol2, INT32 nRow2, INT32 nTab2 ) + : aStart( nCol1, nRow1, nTab1 ), + aEnd( nCol2, nRow2, nTab2 ) {} + + void Set( INT32 nCol1, INT32 nRow1, INT32 nTab1, + INT32 nCol2, INT32 nRow2, INT32 nTab2 ) + { aStart.Set( nCol1, nRow1, nTab1 ); + aEnd.Set( nCol2, nRow2, nTab2 ); } + + void GetVars( INT32& nCol1, INT32& nRow1, INT32& nTab1, + INT32& nCol2, INT32& nRow2, INT32& nTab2 ) const + { aStart.GetVars( nCol1, nRow1, nTab1 ); + aEnd.GetVars( nCol2, nRow2, nTab2 ); } + + BOOL IsValid( const ScDocument* pDoc ) const + { return aStart.IsValid( pDoc ) && aEnd.IsValid( pDoc ); } + inline ScRange MakeRange() const + { return ScRange( aStart.MakeAddress(), + aEnd.MakeAddress() ); } + + inline BOOL In( const ScBigAddress& ) const; // ist Address& in Range? + inline BOOL In( const ScBigRange& ) const; // ist Range& in Range? + inline BOOL Intersects( const ScBigRange& ) const; // ueberschneiden sich zwei Ranges? + + ScBigRange& operator=( const ScBigRange& r ) + { aStart = r.aStart; aEnd = r.aEnd; return *this; } + int operator==( const ScBigRange& r ) const + { return (aStart == r.aStart) && (aEnd == r.aEnd); } + int operator!=( const ScBigRange& r ) const + { return !operator==( r ); } + + friend inline SvStream& operator<< ( SvStream& rStream, const ScBigRange& rRange ); + friend inline SvStream& operator>> ( SvStream& rStream, ScBigRange& rRange ); +}; + + +inline BOOL ScBigRange::In( const ScBigAddress& rAddr ) const +{ + return + aStart.Col() <= rAddr.Col() && rAddr.Col() <= aEnd.Col() && + aStart.Row() <= rAddr.Row() && rAddr.Row() <= aEnd.Row() && + aStart.Tab() <= rAddr.Tab() && rAddr.Tab() <= aEnd.Tab(); +} + + +inline BOOL ScBigRange::In( const ScBigRange& r ) const +{ + return + aStart.Col() <= r.aStart.Col() && r.aEnd.Col() <= aEnd.Col() && + aStart.Row() <= r.aStart.Row() && r.aEnd.Row() <= aEnd.Row() && + aStart.Tab() <= r.aStart.Tab() && r.aEnd.Tab() <= aEnd.Tab(); +} + + +inline BOOL ScBigRange::Intersects( const ScBigRange& r ) const +{ + return !( + Min( aEnd.Col(), r.aEnd.Col() ) < Max( aStart.Col(), r.aStart.Col() ) + || Min( aEnd.Row(), r.aEnd.Row() ) < Max( aStart.Row(), r.aStart.Row() ) + || Min( aEnd.Tab(), r.aEnd.Tab() ) < Max( aStart.Tab(), r.aStart.Tab() ) + ); +} + + +inline SvStream& operator<< ( SvStream& rStream, const ScBigRange& rRange ) +{ + rStream << rRange.aStart; + rStream << rRange.aEnd; + return rStream; +} + + +inline SvStream& operator>> ( SvStream& rStream, ScBigRange& rRange ) +{ + rStream >> rRange.aStart; + rStream >> rRange.aEnd; + return rStream; +} + + + +#endif diff --git a/sc/inc/brdcst.hxx b/sc/inc/brdcst.hxx new file mode 100644 index 000000000000..48da9616900c --- /dev/null +++ b/sc/inc/brdcst.hxx @@ -0,0 +1,107 @@ +/************************************************************************* + * + * $RCSfile: brdcst.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#ifndef _SC_BRDCST_HXX +#define _SC_BRDCST_HXX + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" +#endif + +#ifndef _RTTI_HXX //autogen +#include <tools/rtti.hxx> +#endif +#ifndef _SFXHINT_HXX //autogen +#include <svtools/hint.hxx> +#endif +#ifndef _SFXSMPLHINT_HXX //autogen +#include <svtools/smplhint.hxx> +#endif +class ScBaseCell; + +#define SC_HINT_DYING SFX_HINT_DYING +#define SC_HINT_DATACHANGED SFX_HINT_DATACHANGED + +class ScHint : public SfxSimpleHint +{ +private: + ScAddress aAddress; + ScBaseCell* pCell; + +public: + TYPEINFO(); + ScHint( ULONG n, const ScAddress& a, ScBaseCell* p ) + : SfxSimpleHint( n ), aAddress( a ), pCell( p ) {} + ScBaseCell* GetCell() const { return pCell; } + const ScAddress& GetAddress() const { return aAddress; } +}; + +class ScAreaChangedHint : public SfxHint +{ +private: + ScRange aNewRange; +public: + TYPEINFO(); + ScAreaChangedHint(const ScRange& rRange) : aNewRange(rRange) {} + const ScRange& GetRange() const { return aNewRange; } +}; + + +#endif diff --git a/sc/inc/callform.hxx b/sc/inc/callform.hxx new file mode 100644 index 000000000000..35f5d952cc82 --- /dev/null +++ b/sc/inc/callform.hxx @@ -0,0 +1,161 @@ +/************************************************************************* + * + * $RCSfile: callform.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_CALLFORM_HXX +#define SC_CALLFORM_HXX + +#ifndef SC_COLLECT_HXX +#include "collect.hxx" +#endif + +//------------------------------------------------------------------------ +#define MAXFUNCPARAM 16 +#define MAXARRSIZE 0xfffe + +//------------------------------------------------------------------------ +#ifndef WIN +#ifndef WNT +#define CALLTYPE +#else +#define CALLTYPE __cdecl +#endif +#else +#define PASCAL _pascal +#define FAR _far +#define CALLTYPE FAR PASCAL +#endif + +extern "C" { +typedef void (CALLTYPE* AdvData)( double& nHandle, void* pData ); +} + +//------------------------------------------------------------------------ +enum ParamType +{ + PTR_DOUBLE, + PTR_STRING, + PTR_DOUBLE_ARR, + PTR_STRING_ARR, + PTR_CELL_ARR, + NONE +}; + +//------------------------------------------------------------------------ +class ModuleData; +class FuncData : public DataObject +{ +friend class FuncCollection; + const ModuleData* pModuleData; + String aInternalName; + String aFuncName; + USHORT nNumber; + USHORT nParamCount; + ParamType eAsyncType; + ParamType eParamType[MAXFUNCPARAM]; +private: + FuncData(const String& rIName); +public: + FuncData(const ModuleData*pModule, + const String& rIName, + const String& rFName, + USHORT nNo, + USHORT nCount, + const ParamType* peType, + ParamType eType); + FuncData(const FuncData& rData); + virtual DataObject* Clone() const { return new FuncData(*this); } + + const String& GetModuleName() const; + const String& GetInternalName() const { return aInternalName; } + const String& GetFuncName() const { return aFuncName; } + USHORT GetParamCount() const { return nParamCount; } + ParamType GetParamType(USHORT nIndex) const { return eParamType[nIndex]; } + ParamType GetReturnType() const { return eParamType[0]; } + ParamType GetAsyncType() const { return eAsyncType; } + BOOL Call(void** ppParam); + BOOL Advice(AdvData pfCallback); + BOOL Unadvice(double nHandle); + + // Name und Beschreibung des Parameters nParam. + // nParam==0 => Desc := Funktions-Beschreibung, + // Name := n/a + BOOL GetParamDesc( String& aName, String& aDesc, USHORT nParam ); +}; + + +//------------------------------------------------------------------------ +class FuncCollection : public SortedCollection +{ +public: + FuncCollection(USHORT nLim = 4, USHORT nDel = 4, BOOL bDup = FALSE) : SortedCollection ( nLim, nDel, bDup ) {} + FuncCollection(const FuncCollection& rFuncCollection) : SortedCollection ( rFuncCollection ) {} + + virtual DataObject* Clone() const { return new FuncCollection(*this); } + FuncData* operator[]( const USHORT nIndex) const {return (FuncData*)At(nIndex);} + virtual short Compare(DataObject* pKey1, DataObject* pKey2) const; + BOOL SearchFunc( const String& rName, USHORT& rIndex ) const; +}; + + +BOOL InitExternalFunc(const rtl::OUString& rModuleName); +void ExitExternalFunc(); + +#endif diff --git a/sc/inc/cell.hxx b/sc/inc/cell.hxx new file mode 100644 index 000000000000..a5e2473671ac --- /dev/null +++ b/sc/inc/cell.hxx @@ -0,0 +1,596 @@ +/************************************************************************* + * + * $RCSfile: cell.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_CELL_HXX +#define SC_CELL_HXX + +#include <stddef.h> + +#ifndef _SVMEMPOOL_HXX //autogen +#include <tools/mempool.hxx> +#endif +#ifndef _SFXLSTNER_HXX //autogen +#include <svtools/lstner.hxx> +#endif +#ifndef SC_SCGLOB_HXX +#include "global.hxx" +#endif +#ifndef SC_COMPILER_HXX +#include "compiler.hxx" +#endif + +#define USE_MEMPOOL +#define TEXTWIDTH_DIRTY 0xffff + +class ScDocument; +class EditTextObject; +class ScMatrix; +class ScCompiler; +class SfxBroadcaster; +class ScBroadcasterList; +class ScCodeArray; +class ScTokenArray; + +class ScMultipleReadHeader; +class ScMultipleWriteHeader; + +class ScBaseCell +{ +protected: + ScPostIt* pNote; + ScBroadcasterList* pBroadcaster; + USHORT nTextWidth; + BYTE eCellType; // enum CellType - BYTE spart Speicher + +public: // fuer Idle-Berechnung + USHORT GetTextWidth() const { return nTextWidth; } + void SetTextWidth( USHORT nNew ) { nTextWidth = nNew; } + +protected: + ~ScBaseCell(); // nicht virtuell -> darf nicht direkt aufgerufen werden + +public: + inline ScBaseCell( CellType eNewType ); + inline ScBaseCell( const ScBaseCell& rBaseCell ); + + ScBaseCell* Clone(ScDocument* pDoc) const; + void Delete(); // simulierter virtueller Destructor + CellType GetCellType() const; + + void SetNote( const ScPostIt& rNote ); + BOOL GetNote( ScPostIt& rNote ) const; + const ScPostIt* GetNotePtr() const; + inline void DeleteNote(); + + inline ScBroadcasterList* GetBroadcaster() const; + void SetBroadcaster(ScBroadcasterList* pNew); + inline void ForgetBroadcaster(); + inline void SwapBroadcaster(ScBaseCell& rOther); // zum Sortieren + + void LoadNote( SvStream& rStream ); + + // String- oder EditCell + static ScBaseCell* CreateTextCell( const String& rString, ScDocument* ); + + void StartListeningTo( ScDocument* pDoc, + BOOL bOnlyRelNames = FALSE ); + void EndListeningTo( ScDocument* pDoc, + BOOL bOnlyRelNames = FALSE, + ScTokenArray* pArr = NULL, + ScAddress aPos = ScAddress() ); + + BOOL HasValueData() const; + BOOL HasStringData() const; + String GetStringData() const; // nur echte Strings + + static BOOL CellEqual( const ScBaseCell* pCell1, const ScBaseCell* pCell2 ); +}; + + + +class ScValueCell : public ScBaseCell +{ +private: + double aValue; + +public: + +#ifdef USE_MEMPOOL + DECL_FIXEDMEMPOOL_NEWDEL( ScValueCell ) +#endif + ~ScValueCell(); + + ScValueCell(); + ScValueCell( const double& rValue ); + ScValueCell( const ScValueCell& rScValueCell ); + ScValueCell( SvStream& rStream, USHORT nVer ); + ScBaseCell* Clone() const; + + void SetValue( const double& rValue ); + double GetValue() const; + + void Save( SvStream& rStream ) const; +}; + + +class ScStringCell : public ScBaseCell +{ +private: + String aString; + +public: + +#ifdef USE_MEMPOOL + DECL_FIXEDMEMPOOL_NEWDEL( ScStringCell ) +#endif +#ifdef DBG_UTIL + ~ScStringCell(); +#endif + + ScStringCell(); + ScStringCell( const String& rString ); + ScStringCell( const ScStringCell& rScStringCell ); + ScStringCell( SvStream& rStream, USHORT nVer ); + ScBaseCell* Clone() const; + + void SetString( const String& rString ); + void GetString( String& rString ) const; + + void Save( SvStream& rStream ) const; +}; + + +class ScEditCell : public ScBaseCell +{ +private: + EditTextObject* pData; + String* pString; // fuer schnelleren Zugriff von Formeln + ScDocument* pDoc; // fuer EditEngine Zugriff mit Pool + + void SetTextObject( const EditTextObject* pObject, + const SfxItemPool* pFromPool ); + + // not implemented + ScEditCell( const ScEditCell& ); + ScEditCell& operator=( const ScEditCell& ); + +public: + +#ifdef USE_MEMPOOL + DECL_FIXEDMEMPOOL_NEWDEL( ScEditCell ) +#endif + + ~ScEditCell(); // wegen pData immer! + + ScEditCell( ScDocument* ); + ScEditCell( const EditTextObject* pObject, ScDocument*, + const SfxItemPool* pFromPool /* = NULL */ ); + ScEditCell( const ScEditCell& rEditCell, ScDocument* ); + ScEditCell( SvStream& rStream, USHORT nVer, ScDocument* ); + // fuer Zeilenumbrueche + ScEditCell( const String& rString, ScDocument* ); + ScBaseCell* Clone( ScDocument* ) const; + + void SetData( const EditTextObject* pObject, + const SfxItemPool* pFromPool /* = NULL */ ); + void GetData( const EditTextObject*& rpObject ) const; + void GetString( String& rString ) const; + + const EditTextObject* GetData() const { return pData; } + + void Save( SvStream& rStream ) const; +}; + +enum ScMatrixMode { + MM_NONE = 0, // keine Matrixformel + MM_FORMULA = 1, // Matrixformel + MM_REFERENCE = 2, // Referenz auf Matrixformel (MATVALUE) + MM_FAKE = 3 // Formel als Matrixformel +}; + + +class ScIndexMap; + +class ScFormulaCell : public ScBaseCell, public SfxListener +{ +private: + static INT8 nIterMode; // Markiert cirk. Iteration + String aErgString; + double nErgValue; + ScTokenArray* pCode; // das neue Token-Array + ScDocument* pDocument; + ScMatrix* pMatrix; // Pointer auf Ergebnis-Matrix + ScFormulaCell* pPrevious; + ScFormulaCell* pNext; + ScFormulaCell* pPreviousTrack; + ScFormulaCell* pNextTrack; + ULONG nFormatIndex; // durch Berechnung gesetztes Format + USHORT nMatCols; // wenn MM_FORMULA Matrixzelle + USHORT nMatRows; // belegte Area + short nFormatType; + BOOL bIsValue : 1; // Ergebnis ist numerisches + BOOL bDirty : 1; // muss berechnet werden + BOOL bChanged : 1; // hat sich fuer die Darstellung was geaendert + BOOL bRunning : 1; // wird gerade interpretiert + BOOL bCompile : 1; // muss compiliert werden + BOOL bSubTotal : 1; // ist ein SubTotal + BOOL bIsIterCell : 1; // kennzeichnet Zellen mit cirk. Refs. + BOOL bInChangeTrack: 1; // Zelle ist im ChangeTrack + BYTE cMatrixFlag; // 1 = links oben, 2 = Restmatrix, 0 = keine + +public: + +#ifdef USE_MEMPOOL + DECL_FIXEDMEMPOOL_NEWDEL( ScFormulaCell ) +#endif + + ScAddress aPos; + + ~ScFormulaCell(); + ScFormulaCell(); + + // leere Zelle, ggf. mit fertigem TokenArray + ScFormulaCell( ScDocument*, const ScAddress&, const ScTokenArray* = NULL, BYTE=0 ); + // mit Formel + ScFormulaCell( ScDocument* pDoc, const ScAddress&, + const String& rFormula, BYTE bMatInd = 0 ); + // copy-ctor + ScFormulaCell( ScDocument* pDoc, const ScAddress& rPos, + const ScFormulaCell& rScFormulaCell ); + // lesender ctor + ScFormulaCell( ScDocument* pDoc, const ScAddress&, + SvStream& rStream, ScMultipleReadHeader& rHdr ); + + ScBaseCell* Clone(ScDocument* pDoc, const ScAddress&, + BOOL bNoListening = FALSE ) const; + + void GetFormula( String& rFormula ) const; + void GetEnglishFormula( String& rFormula, BOOL bCompileXML = FALSE ) const; + + void Save( SvStream& rStream, ScMultipleWriteHeader& rHdr ) const; + + void SetDirty(); + inline void SetDirtyVar() { bDirty = TRUE; } + BOOL GetDirty() const { return bDirty; } + void Compile(const String& rFormula, BOOL bNoListening = FALSE ); + void CompileTokenArray( BOOL bNoListening = FALSE ); + void CompileXML(); // compile temporary string tokens + void CalcAfterLoad(); + void Interpret(); + + BOOL HasOneReference( ScRange& r ) const; + BOOL HasRelNameReference() const; + BOOL HasDBArea() const; + BOOL HasColRowName() const; + + void UpdateReference(UpdateRefMode eUpdateRefMode, + const ScRange& r, + short nDx, short nDy, short nDz, + ScDocument* pUndoDoc = NULL ); + + void TransposeReference(); + void UpdateTranspose( const ScRange& rSource, const ScAddress& rDest, + ScDocument* pUndoDoc ); + + void UpdateGrow( const ScRange& rArea, USHORT nGrowX, USHORT nGrowY ); + + void UpdateInsertTab(USHORT nTable); + void UpdateInsertTabAbs(USHORT nTable); + BOOL UpdateDeleteTab(USHORT nTable, BOOL bIsMove = FALSE); + void UpdateMoveTab(USHORT nOldPos, USHORT nNewPos, USHORT nTabNo); + void UpdateRenameTab(USHORT nTable, const String& rName); + BOOL TestTabRefAbs(USHORT nTable); + void UpdateCompile( BOOL bForceIfNameInUse = FALSE ); + BOOL IsRangeNameInUse(USHORT nIndex) const; + void ReplaceRangeNamesInUse( const ScIndexMap& rMap ); + BOOL IsSubTotal() const { return bSubTotal; } + BOOL IsChanged() const { return bChanged; } + void ResetChanged() { bChanged = FALSE; } + BOOL IsValue(); + double GetValue(); + void GetString( String& rString ); + void GetMatrix( ScMatrix** pMatrix ); + BOOL GetMatrixOrigin( ScAddress& rPos ) const; + void GetResultDimensions( USHORT& rCols, USHORT& rRows ); + USHORT GetMatrixEdge( ScAddress& rOrgPos ); + USHORT GetErrCode(); + short GetFormatType() const { return nFormatType; } + ULONG GetFormatIndex() const { return nFormatIndex; } + void GetFormatInfo( short& nType, ULONG& nIndex ) const + { nType = nFormatType; nIndex = nFormatIndex; } + BYTE GetMatrixFlag() const { return cMatrixFlag; } + ScTokenArray* GetCode() const { return pCode; } + + BOOL IsRunning() const { return bRunning; } + void SetRunning( BOOL bVal ) { bRunning = bVal; } + void CompileDBFormula(); + void CompileDBFormula( BOOL bCreateFormulaString ); + void CompileNameFormula( BOOL bCreateFormulaString ); + void CompileColRowNameFormula(); + ScFormulaCell* GetPrevious() const { return pPrevious; } + ScFormulaCell* GetNext() const { return pNext; } + void SetPrevious( ScFormulaCell* pF ) { pPrevious = pF; } + void SetNext( ScFormulaCell* pF ) { pNext = pF; } + ScFormulaCell* GetPreviousTrack() const { return pPreviousTrack; } + ScFormulaCell* GetNextTrack() const { return pNextTrack; } + void SetPreviousTrack( ScFormulaCell* pF ) { pPreviousTrack = pF; } + void SetNextTrack( ScFormulaCell* pF ) { pNextTrack = pF; } + + virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType, + const SfxHint& rHint, const TypeId& rHintType ); + void SetCompile( BOOL bVal ) { bCompile = bVal; } + ScDocument* GetDocument() const { return pDocument; } + void SetMatColsRows( USHORT nCols, USHORT nRows ) + { nMatCols = nCols; nMatRows = nRows; } + void GetMatColsRows( USHORT& nCols, USHORT& nRows ) const + { nCols = nMatCols; nRows = nMatRows; } + + // ob Zelle im ChangeTrack und nicht im echten Dokument ist + void SetInChangeTrack( BOOL bVal ) { bInChangeTrack = bVal; } + BOOL IsInChangeTrack() const { return bInChangeTrack; } + + // Zu Typ und Format das entsprechende Standardformat. + // Bei Format "Standard" evtl. das in die Formelzelle + // uebernommene Format. + ULONG GetStandardFormat( SvNumberFormatter& rFormatter, ULONG nFormat ) const; + + // fuer die Importfilter! + void AddRecalcMode( ScRecalcMode ); + void SetDouble( double n ) { nErgValue = n; bIsValue = TRUE; } + void SetString( const String& r ) { aErgString = r; bIsValue = FALSE; } + void SetErrCode( USHORT n ); +}; + +// Iterator fuer Referenzen in einer Formelzelle +class ScDetectiveRefIter +{ +private: + ScTokenArray* pCode; + ScAddress aPos; +public: + ScDetectiveRefIter( ScFormulaCell* pCell ); + BOOL GetNextRef( ScTripel& rStart, ScTripel& rEnd ); +}; + +class ScNoteCell : public ScBaseCell +{ +public: + +#ifdef USE_MEMPOOL + DECL_FIXEDMEMPOOL_NEWDEL( ScNoteCell ) +#endif +#ifdef DBG_UTIL + ~ScNoteCell(); +#endif + + ScNoteCell(); + ScNoteCell( const ScPostIt& rNote ); + ScNoteCell( const ScNoteCell& rScNoteCell ); + ScNoteCell( SvStream& rStream, USHORT nVer ); + ScBaseCell* Clone() const; + + void Save( SvStream& rStream ) const; +}; + + +// ScBaseCell + +inline ScBaseCell::ScBaseCell( CellType eNewType ) : + eCellType( eNewType ), + pNote( NULL ), + pBroadcaster( NULL ), nTextWidth( TEXTWIDTH_DIRTY ) +{ +} + +inline ScBaseCell::ScBaseCell( const ScBaseCell& rBaseCell ) : + eCellType( rBaseCell.eCellType ), + pBroadcaster( NULL ), nTextWidth( rBaseCell.nTextWidth ) +{ + if (rBaseCell.pNote) + pNote = new ScPostIt( *rBaseCell.pNote ); + else + pNote = NULL; +} + + +inline CellType ScBaseCell::GetCellType() const +{ + return (CellType)eCellType; +} + +inline const ScPostIt* ScBaseCell::GetNotePtr() const +{ + return pNote; +} + +inline void ScBaseCell::DeleteNote() +{ + delete pNote; + pNote = NULL; +} + +inline ScBroadcasterList* ScBaseCell::GetBroadcaster() const +{ + return pBroadcaster; +} + +inline void ScBaseCell::ForgetBroadcaster() +{ + pBroadcaster = NULL; +} + +inline void ScBaseCell::SwapBroadcaster(ScBaseCell& rOther) +{ + ScBroadcasterList* pTemp = pBroadcaster; + pBroadcaster = rOther.pBroadcaster; + rOther.pBroadcaster = pTemp; +} + +// ScValueCell + +inline ScValueCell::ScValueCell() : + ScBaseCell( CELLTYPE_VALUE ) +{ + aValue = 0.0; +} + +inline ScValueCell::ScValueCell( const double& rValue ) : + ScBaseCell( CELLTYPE_VALUE ) +{ + aValue = rValue; +} + +inline ScValueCell::ScValueCell(const ScValueCell& rScValueCell) : + ScBaseCell( rScValueCell ), + aValue( rScValueCell.aValue ) +{ +} + +inline ScBaseCell* ScValueCell::Clone() const +{ + return new ScValueCell(*this); +} + +inline void ScValueCell::SetValue( const double& rValue ) +{ + aValue = rValue; +} + +inline double ScValueCell::GetValue() const +{ + return aValue; +} + + + +// ScStringCell + +inline ScStringCell::ScStringCell() : + ScBaseCell( CELLTYPE_STRING ) +{ +} + +inline ScStringCell::ScStringCell( const ScStringCell& rScStringCell ) : + ScBaseCell( rScStringCell ), + aString( rScStringCell.aString ) +{ +} + +inline ScStringCell::ScStringCell( const String& rString ) : + ScBaseCell( CELLTYPE_STRING ), + aString( rString ) +{ +} + +inline ScBaseCell* ScStringCell::Clone() const +{ + return new ScStringCell(*this); +} + +inline void ScStringCell::GetString( String& rString ) const +{ + rString = aString; +} + +inline void ScStringCell::SetString( const String& rString ) +{ + aString = rString; +} + + +/* + +// ScFormulaCell + +inline ScBaseCell* ScFormulaCell::Clone(ScDocument* pDoc) const +{ + return new ScFormulaCell(pDoc, *this); +} +*/ + + + +// ScNoteCell + +inline ScNoteCell::ScNoteCell() : + ScBaseCell( CELLTYPE_NOTE ) +{ +} + +inline ScNoteCell::ScNoteCell( const ScNoteCell& rScNoteCell ) : + ScBaseCell( rScNoteCell ) +{ +} + +inline ScNoteCell::ScNoteCell( const ScPostIt& rNote ) : + ScBaseCell( CELLTYPE_NOTE ) +{ + ScBaseCell::SetNote(rNote); +} + +inline ScBaseCell* ScNoteCell::Clone() const +{ + return new ScNoteCell(*this); +} + + +#endif + diff --git a/sc/inc/cellform.hxx b/sc/inc/cellform.hxx new file mode 100644 index 000000000000..db9615dd3241 --- /dev/null +++ b/sc/inc/cellform.hxx @@ -0,0 +1,100 @@ +/************************************************************************* + * + * $RCSfile: cellform.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_CELLFORM_HXX +#define SC_CELLFORM_HXX + +#ifndef _SOLAR_H +#include <tools/solar.h> +#endif + +class String; + +class ScBaseCell; +class SvNumberFormatter; +class Color; + +enum ScForceTextFmt { + ftDontForce, // Zahlen als Zahlen + ftForce, // Zahlen als Text + ftCheck // ist das Zahlenformat ein Textformat? +}; + +//------------------------------------------------------------------------ + +class ScCellFormat +{ +public: + static void GetString( ScBaseCell* pCell, ULONG nFormat, String& rString, + Color** ppColor, SvNumberFormatter& rFormatter, + BOOL bNullVals = TRUE, + BOOL bFormula = FALSE, + ScForceTextFmt eForceTextFmt = ftDontForce ); + + static void GetInputString( ScBaseCell* pCell, ULONG nFormat, String& rString, + SvNumberFormatter& rFormatter ); +}; + + + + +#endif + diff --git a/sc/inc/cellsuno.hxx b/sc/inc/cellsuno.hxx new file mode 100644 index 000000000000..0c3992a32e33 --- /dev/null +++ b/sc/inc/cellsuno.hxx @@ -0,0 +1,1405 @@ +/************************************************************************* + * + * $RCSfile: cellsuno.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_CELLSUNO_HXX +#define SC_CELLSUNO_HXX + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" // ScRange, ScAddress +#endif + +#ifndef SC_RANGELST_HXX +#include "rangelst.hxx" // ScRangeList +#endif + +#ifndef _SFXLSTNER_HXX //autogen +#include <svtools/lstner.hxx> +#endif + +#ifndef _SFX_ITEMPROP_HXX +#include <svtools/itemprop.hxx> +#endif + +#ifndef _COM_SUN_STAR_TABLE_XTABLECHARTSSUPPLIER_HPP_ +#include <com/sun/star/table/XTableChartsSupplier.hpp> +#endif +#ifndef _COM_SUN_STAR_CHART_XCHARTDATAARRAY_HPP_ +#include <com/sun/star/chart/XChartDataArray.hpp> +#endif +#ifndef _COM_SUN_STAR_TEXT_XTEXTFIELDSSUPPLIER_HPP_ +#include <com/sun/star/text/XTextFieldsSupplier.hpp> +#endif +#ifndef _COM_SUN_STAR_DRAWING_XDRAWPAGESUPPLIER_HPP_ +#include <com/sun/star/drawing/XDrawPageSupplier.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XSHEETCELLRANGE_HPP_ +#include <com/sun/star/sheet/XSheetCellRange.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XFORMULAQUERY_HPP_ +#include <com/sun/star/sheet/XFormulaQuery.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XCELLRANGEADDRESSABLE_HPP_ +#include <com/sun/star/sheet/XCellRangeAddressable.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XSHEETOPERATION_HPP_ +#include <com/sun/star/sheet/XSheetOperation.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XSHEETCELLRANGES_HPP_ +#include <com/sun/star/sheet/XSheetCellRanges.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XCELLFORMATRANGESSUPPLIER_HPP_ +#include <com/sun/star/sheet/XCellFormatRangesSupplier.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XCELLRANGESQUERY_HPP_ +#include <com/sun/star/sheet/XCellRangesQuery.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XSHEETFILTERABLEEX_HPP_ +#include <com/sun/star/sheet/XSheetFilterableEx.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XSPREADSHEET_HPP_ +#include <com/sun/star/sheet/XSpreadsheet.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XSHEETPAGEBREAK_HPP_ +#include <com/sun/star/sheet/XSheetPageBreak.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XCELLRANGEMOVEMENT_HPP_ +#include <com/sun/star/sheet/XCellRangeMovement.hpp> +#endif +#ifndef _COM_SUN_STAR_TEXT_XTEXT_HPP_ +#include <com/sun/star/text/XText.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XPRINTAREAS_HPP_ +#include <com/sun/star/sheet/XPrintAreas.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XSHEETLINKABLE_HPP_ +#include <com/sun/star/sheet/XSheetLinkable.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XSUBTOTALCALCULATABLE_HPP_ +#include <com/sun/star/sheet/XSubTotalCalculatable.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XARRAYFORMULARANGE_HPP_ +#include <com/sun/star/sheet/XArrayFormulaRange.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XCELLSERIES_HPP_ +#include <com/sun/star/sheet/XCellSeries.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XMULTIPLEOPERATION_HPP_ +#include <com/sun/star/sheet/XMultipleOperation.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XCELLADDRESSABLE_HPP_ +#include <com/sun/star/sheet/XCellAddressable.hpp> +#endif +#ifndef _COM_SUN_STAR_UTIL_XREPLACEABLE_HPP_ +#include <com/sun/star/util/XReplaceable.hpp> +#endif +#ifndef _COM_SUN_STAR_UTIL_XINDENT_HPP_ +#include <com/sun/star/util/XIndent.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_ +#include <com/sun/star/lang/XServiceInfo.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XNAMECONTAINER_HPP_ +#include <com/sun/star/container/XNameContainer.hpp> +#endif +#ifndef _COM_SUN_STAR_UTIL_XMERGEABLE_HPP_ +#include <com/sun/star/util/XMergeable.hpp> +#endif +#ifndef _COM_SUN_STAR_TABLE_XAUTOFORMATTABLE_HPP_ +#include <com/sun/star/table/XAutoFormattable.hpp> +#endif +#ifndef _COM_SUN_STAR_UTIL_XSORTABLE_HPP_ +#include <com/sun/star/util/XSortable.hpp> +#endif +#ifndef _COM_SUN_STAR_UTIL_XIMPORTABLE_HPP_ +#include <com/sun/star/util/XImportable.hpp> +#endif +#ifndef _COM_SUN_STAR_TABLE_XCOLUMNROWRANGE_HPP_ +#include <com/sun/star/table/XColumnRowRange.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XDATAPILOTTABLESSUPPLIER_HPP_ +#include <com/sun/star/sheet/XDataPilotTablesSupplier.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XSHEETANNOTATIONANCHOR_HPP_ +#include <com/sun/star/sheet/XSheetAnnotationAnchor.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XSCENARIOSSUPPLIER_HPP_ +#include <com/sun/star/sheet/XScenariosSupplier.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XSHEETANNOTATIONSSUPPLIER_HPP_ +#include <com/sun/star/sheet/XSheetAnnotationsSupplier.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XSHEETAUDITING_HPP_ +#include <com/sun/star/sheet/XSheetAuditing.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XSHEETOUTLINE_HPP_ +#include <com/sun/star/sheet/XSheetOutline.hpp> +#endif +#ifndef _COM_SUN_STAR_UTIL_XPROTECTABLE_HPP_ +#include <com/sun/star/util/XProtectable.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XSCENARIO_HPP_ +#include <com/sun/star/sheet/XScenario.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSTATE_HPP_ +#include <com/sun/star/beans/XPropertyState.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XUNOTUNNEL_HPP_ +#include <com/sun/star/lang/XUnoTunnel.hpp> +#endif + +#ifndef _CPPUHELPER_IMPLBASE2_HXX_ +#include <cppuhelper/implbase2.hxx> +#endif +#ifndef _CPPUHELPER_IMPLBASE3_HXX_ +#include <cppuhelper/implbase3.hxx> +#endif + +class ScDocShell; +class ScMarkData; +class SchMemChart; +class ScPrintRangeSaver; +class ScAttrRectIterator; +class ScCellRangeObj; +class SvxUnoText; +class ScLinkListener; +class ScPatternAttr; + + +typedef ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >* XPropertyChangeListenerPtr; +SV_DECL_PTRARR_DEL( XPropertyChangeListenerArr_Impl, XPropertyChangeListenerPtr, 4, 4 ); + +class ScNamedEntry; +typedef ScNamedEntry* ScNamedEntryPtr; +SV_DECL_PTRARR_DEL( ScNamedEntryArr_Impl, ScNamedEntryPtr, 4, 4 ); + + +// ScCellRangesBase - Basisklasse fuer ScCellRangesObj (mit Index-Access) +// und ScCellRangeObj (ohne Index-Access) + +// XServiceInfo ist in den Ableitungen implementiert + +class ScCellRangesBase : public com::sun::star::beans::XPropertySet, + public com::sun::star::beans::XPropertyState, + public com::sun::star::sheet::XSheetOperation, + public com::sun::star::chart::XChartDataArray, + public com::sun::star::util::XIndent, + public com::sun::star::sheet::XCellRangesQuery, + public com::sun::star::sheet::XFormulaQuery, + public com::sun::star::util::XReplaceable, + public com::sun::star::lang::XServiceInfo, + public com::sun::star::lang::XUnoTunnel, + public com::sun::star::lang::XTypeProvider, + public cppu::OWeakObject, + public SfxListener +{ + friend class ScTabViewObj; // fuer select() + friend class ScTableSheetObj; // fuer createCursorByRange() + +private: + SfxItemPropertySet aPropSet; + ScDocShell* pDocShell; + ScLinkListener* pValueListener; + ScPatternAttr* pCurrentFlat; + ScPatternAttr* pCurrentDeep; + ScRangeList aRanges; + BOOL bChartColAsHdr; + BOOL bChartRowAsHdr; + BOOL bValueChangePosted; + XPropertyChangeListenerArr_Impl aValueListeners; + + DECL_LINK( ValueListenerHdl, SfxHint* ); + DECL_LINK( ValueChanged, com::sun::star::beans::PropertyChangeEvent* ); + +private: + void PaintRanges_Impl( USHORT nPart ); + SchMemChart* CreateMemChart_Impl() const; + + const ScPatternAttr* GetCurrentAttrsFlat(); + const ScPatternAttr* GetCurrentAttrsDeep(); + void ForgetCurrentAttrs(); + + com::sun::star::uno::Reference<com::sun::star::sheet::XSheetCellRanges> + QueryDifferences_Impl(const com::sun::star::table::CellAddress& aCompare, + BOOL bColumnDiff); + com::sun::star::uno::Reference<com::sun::star::uno::XInterface> + Find_Impl(const com::sun::star::uno::Reference< + com::sun::star::util::XSearchDescriptor>& xDesc, + const ScAddress* pLastPos); + +public: + ScCellRangesBase(); // fuer SMART_REFLECTION Krempel + ScCellRangesBase(ScDocShell* pDocSh, const ScRange& rR); + ScCellRangesBase(ScDocShell* pDocSh, const ScRangeList& rR); + virtual ~ScCellRangesBase(); + + virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( + const ::com::sun::star::uno::Type & rType ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL acquire() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL release() throw(::com::sun::star::uno::RuntimeException); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + virtual void RefChanged(); + + // aus Ableitungen, aber auch per getImplementation + ScDocShell* GetDocShell() const { return pDocShell; } + ScDocument* GetDocument() const; + const ScRangeList& GetRangeList() const { return aRanges; } + + // per Service erzeugtes Objekt zum Leben erwecken: + void InitInsertRange(ScDocShell* pDocSh, const ScRange& rR); + + void SetNewRange(const ScRange& rNew); // fuer Cursor + void SetNewRanges(const ScRangeList& rNew); + + // XSheetOperation + virtual double SAL_CALL computeFunction( ::com::sun::star::sheet::GeneralFunction nFunction ) + throw(::com::sun::star::uno::Exception, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL clearContents( sal_Int32 nContentFlags ) + throw(::com::sun::star::uno::RuntimeException); + + // XPropertySet + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > + SAL_CALL getPropertySetInfo() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Any& aValue ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::beans::PropertyVetoException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( + const ::rtl::OUString& PropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& xListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XPropertyState + virtual ::com::sun::star::beans::PropertyState SAL_CALL getPropertyState( + const ::rtl::OUString& PropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyState > SAL_CALL + getPropertyStates( const ::com::sun::star::uno::Sequence< + ::rtl::OUString >& aPropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPropertyToDefault( const ::rtl::OUString& PropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getPropertyDefault( + const ::rtl::OUString& aPropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XIndent + virtual void SAL_CALL decrementIndent() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL incrementIndent() throw(::com::sun::star::uno::RuntimeException); + + // XChartData + virtual void SAL_CALL addChartDataChangeEventListener( + const ::com::sun::star::uno::Reference< + ::com::sun::star::chart::XChartDataChangeEventListener >& aListener ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeChartDataChangeEventListener( const ::com::sun::star::uno::Reference< + ::com::sun::star::chart::XChartDataChangeEventListener >& aListener ) + throw(::com::sun::star::uno::RuntimeException); + virtual double SAL_CALL getNotANumber() throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL isNotANumber( double nNumber ) + throw(::com::sun::star::uno::RuntimeException); + + // XChartDataArray + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< double > > SAL_CALL + getData() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setData( const ::com::sun::star::uno::Sequence< + ::com::sun::star::uno::Sequence< double > >& aData ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getRowDescriptions() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setRowDescriptions( const ::com::sun::star::uno::Sequence< + ::rtl::OUString >& aRowDescriptions ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getColumnDescriptions() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setColumnDescriptions( const ::com::sun::star::uno::Sequence< + ::rtl::OUString >& aColumnDescriptions ) + throw(::com::sun::star::uno::RuntimeException); + + // XCellRangesQuery + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSheetCellRanges > SAL_CALL + queryVisibleCells() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSheetCellRanges > SAL_CALL + queryEmptyCells() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSheetCellRanges > SAL_CALL + queryContentCells( sal_Int16 nContentFlags ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSheetCellRanges > SAL_CALL + queryFormulaCells( sal_Int32 nResultFlags ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSheetCellRanges > SAL_CALL + queryColumnDifferences( + const ::com::sun::star::table::CellAddress& aCompare ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSheetCellRanges > SAL_CALL + queryRowDifferences( + const ::com::sun::star::table::CellAddress& aCompare ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSheetCellRanges > SAL_CALL + queryIntersection( + const ::com::sun::star::table::CellRangeAddress& aRange ) + throw(::com::sun::star::uno::RuntimeException); + + // XFormulaQuery + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSheetCellRanges > SAL_CALL + queryDependents( sal_Bool bRecursive ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSheetCellRanges > SAL_CALL + queryPrecedents( sal_Bool bRecursive ) + throw(::com::sun::star::uno::RuntimeException); + + // XSearchable + virtual ::com::sun::star::uno::Reference< ::com::sun::star::util::XSearchDescriptor > SAL_CALL + createSearchDescriptor() + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL + findAll( const ::com::sun::star::uno::Reference< + ::com::sun::star::util::XSearchDescriptor >& xDesc ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL + findFirst( const ::com::sun::star::uno::Reference< + ::com::sun::star::util::XSearchDescriptor >& xDesc ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL + findNext( const ::com::sun::star::uno::Reference< + ::com::sun::star::uno::XInterface >& xStartAt, + const ::com::sun::star::uno::Reference< + ::com::sun::star::util::XSearchDescriptor >& xDesc ) + throw(::com::sun::star::uno::RuntimeException); + + // XReplaceable + virtual ::com::sun::star::uno::Reference< ::com::sun::star::util::XReplaceDescriptor > SAL_CALL + createReplaceDescriptor() throw(::com::sun::star::uno::RuntimeException); + virtual sal_Int32 SAL_CALL replaceAll( const ::com::sun::star::uno::Reference< + ::com::sun::star::util::XSearchDescriptor >& xDesc ) + throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); + + // XUnoTunnel + virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< + sal_Int8 >& aIdentifier ) + throw(::com::sun::star::uno::RuntimeException); + + static const com::sun::star::uno::Sequence<sal_Int8>& getUnoTunnelId(); + static ScCellRangesBase* getImplementation( const com::sun::star::uno::Reference< + com::sun::star::uno::XInterface> xObj ); + + // XTypeProvider + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScCellRangesObj : public ScCellRangesBase, + public com::sun::star::sheet::XSheetCellRanges, + public com::sun::star::container::XNameContainer, + public com::sun::star::container::XEnumerationAccess +{ +private: + ScNamedEntryArr_Impl aNamedEntries; + + ScCellRangeObj* GetObjectByIndex_Impl(USHORT nIndex) const; + +public: + ScCellRangesObj(ScDocShell* pDocSh, const ScRangeList& rR); + virtual ~ScCellRangesObj(); + + virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( + const ::com::sun::star::uno::Type & rType ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL acquire() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL release() throw(::com::sun::star::uno::RuntimeException); + + virtual void RefChanged(); + + // XSheetCellRanges + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumerationAccess > SAL_CALL + getCells() throw(::com::sun::star::uno::RuntimeException); + virtual ::rtl::OUString SAL_CALL getRangeAddressesAsString() + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::table::CellRangeAddress > SAL_CALL + getRangeAddresses() throw(::com::sun::star::uno::RuntimeException); + + // XNameContainer + virtual void SAL_CALL insertByName( const ::rtl::OUString& aName, + const ::com::sun::star::uno::Any& aElement ) + throw(::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::container::ElementExistException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeByName( const ::rtl::OUString& Name ) + throw(::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XNameReplace + virtual void SAL_CALL replaceByName( const ::rtl::OUString& aName, + const ::com::sun::star::uno::Any& aElement ) + throw(::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XNameAccess + virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XIndexAccess + virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) + throw(::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XEnumerationAccess + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL + createEnumeration() throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); + + // XTypeProvider + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScCellRangeObj : public ScCellRangesBase, + public com::sun::star::sheet::XCellRangeAddressable, + public com::sun::star::sheet::XSheetCellRange, + public com::sun::star::sheet::XArrayFormulaRange, + public com::sun::star::sheet::XMultipleOperation, + public com::sun::star::util::XMergeable, + public com::sun::star::sheet::XCellSeries, + public com::sun::star::table::XAutoFormattable, + public com::sun::star::util::XSortable, + public com::sun::star::sheet::XSheetFilterableEx, + public com::sun::star::sheet::XSubTotalCalculatable, + public com::sun::star::util::XImportable, + public com::sun::star::sheet::XCellFormatRangesSupplier, + public com::sun::star::table::XColumnRowRange +{ +private: + SfxItemPropertySet aRangePropSet; + ScRange aRange; + +protected: + const ScRange& GetRange() const { return aRange; } + +public: + ScCellRangeObj(ScDocShell* pDocSh, const ScRange& rR); + virtual ~ScCellRangeObj(); + + // uses ObjectShell from document, if set (returns NULL otherwise) + static com::sun::star::uno::Reference<com::sun::star::table::XCellRange> + CreateRangeFromDoc( ScDocument* pDoc, const ScRange& rR ); + + virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( + const ::com::sun::star::uno::Type & rType ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL acquire() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL release() throw(::com::sun::star::uno::RuntimeException); + + virtual void RefChanged(); + + // XCellRange ist Basisklasse von XSheetCellRange und XSheetOperation +// operator XCellRangeRef() const { return (XSheetCellRange*)this; } + + // XCellRangeAddressable + virtual ::com::sun::star::table::CellRangeAddress SAL_CALL getRangeAddress() + throw(::com::sun::star::uno::RuntimeException); + + // XSheetCellRange + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSpreadsheet > SAL_CALL + getSpreadsheet() throw(::com::sun::star::uno::RuntimeException); + + // XArrayFormulaRange + virtual ::rtl::OUString SAL_CALL getArrayFormula() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setArrayFormula( const ::rtl::OUString& aFormula ) + throw(::com::sun::star::uno::RuntimeException); + + // XMultipleOperation + virtual void SAL_CALL setTableOperation( + const ::com::sun::star::table::CellRangeAddress& aFormulaRange, + ::com::sun::star::sheet::TableOperationMode nMode, + const ::com::sun::star::table::CellAddress& aColumnCell, + const ::com::sun::star::table::CellAddress& aRowCell ) + throw(::com::sun::star::uno::RuntimeException); + + // XMergeable + virtual void SAL_CALL merge( sal_Bool bMerge ) throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL getIsMerged() throw(::com::sun::star::uno::RuntimeException); + + // XCellSeries + virtual void SAL_CALL fillSeries( ::com::sun::star::sheet::FillDirection nFillDirection, + ::com::sun::star::sheet::FillMode nFillMode, + ::com::sun::star::sheet::FillDateMode nFillDateMode, + double fStep, double fEndValue ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL fillAuto( ::com::sun::star::sheet::FillDirection nFillDirection, + sal_Int32 nSourceCount ) + throw(::com::sun::star::uno::RuntimeException); + + // XAutoFormattable + virtual void SAL_CALL autoFormat( const ::rtl::OUString& aName ) + throw(::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::uno::RuntimeException); + + // XSortable + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL + createSortDescriptor() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL sort( const ::com::sun::star::uno::Sequence< + ::com::sun::star::beans::PropertyValue >& xDescriptor ) + throw(::com::sun::star::uno::RuntimeException); + + // XSheetFilterableEx + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSheetFilterDescriptor > SAL_CALL + createFilterDescriptorByObject( const ::com::sun::star::uno::Reference< + ::com::sun::star::sheet::XSheetFilterable >& xObject ) + throw(::com::sun::star::uno::RuntimeException); + + // XSheetFilterable + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSheetFilterDescriptor > SAL_CALL + createFilterDescriptor( sal_Bool bEmpty ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL filter( const ::com::sun::star::uno::Reference< + ::com::sun::star::sheet::XSheetFilterDescriptor >& xDescriptor ) + throw(::com::sun::star::uno::RuntimeException); + + // XSubTotalCalculatable + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSubTotalDescriptor > SAL_CALL + createSubTotalDescriptor( sal_Bool bEmpty ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL applySubTotals( const ::com::sun::star::uno::Reference< + ::com::sun::star::sheet::XSubTotalDescriptor >& xDescriptor, + sal_Bool bReplace ) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeSubTotals() throw(::com::sun::star::uno::RuntimeException); + + // XImportable + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL + createImportDescriptor( sal_Bool bEmpty ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL doImport( const ::com::sun::star::uno::Sequence< + ::com::sun::star::beans::PropertyValue >& aDescriptor ) + throw(::com::sun::star::uno::RuntimeException); + + // XCellFormatRangesSupplier + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL + getCellFormatRanges() throw(::com::sun::star::uno::RuntimeException); + + // XColumnRowRange + virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XTableColumns > SAL_CALL + getColumns() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XTableRows > SAL_CALL + getRows() throw(::com::sun::star::uno::RuntimeException); + + // XCellRange + virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XCell > SAL_CALL + getCellByPosition( sal_Int32 nColumn, sal_Int32 nRow ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XCellRange > SAL_CALL + getCellRangeByPosition( sal_Int32 nLeft, sal_Int32 nTop, + sal_Int32 nRight, sal_Int32 nBottom ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XCellRange > SAL_CALL + getCellRangeByName( const ::rtl::OUString& aRange ) + throw(::com::sun::star::uno::RuntimeException); + + // XPropertySet ueberladen wegen Range-Properties + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > + SAL_CALL getPropertySetInfo() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Any& aValue ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::beans::PropertyVetoException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( + const ::rtl::OUString& PropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); + + // XTypeProvider + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() + throw(::com::sun::star::uno::RuntimeException); +}; + + +//! really derive cell from range? + +class ScCellObj : public ScCellRangeObj, + public com::sun::star::text::XText, + public com::sun::star::container::XEnumerationAccess, + public com::sun::star::table::XCell, + public com::sun::star::sheet::XCellAddressable, + public com::sun::star::sheet::XSheetAnnotationAnchor, + public com::sun::star::text::XTextFieldsSupplier +{ +private: + SvxUnoText* pUnoText; + SfxItemPropertySet aCellPropSet; + ScAddress aCellPos; + +private: + SvxUnoText& GetUnoText(); + String GetInputString_Impl(BOOL bEnglish) const; + String GetOutputString_Impl() const; + void SetString_Impl(const String& rString, BOOL bInterpret, BOOL bEnglish); + double GetValue_Impl() const; + void SetValue_Impl(double fValue); + com::sun::star::table::CellContentType GetResultType_Impl(); + +public: + static const SfxItemPropertyMap* GetEditPropertyMap(); + + ScCellObj(ScDocShell* pDocSh, const ScAddress& rP); + virtual ~ScCellObj(); + + virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( + const ::com::sun::star::uno::Type & rType ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL acquire() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL release() throw(::com::sun::star::uno::RuntimeException); + + virtual void RefChanged(); + + // XML import needs to set results at formula cells, + // not meant for any other purpose. + void SetFormulaResultString( const ::rtl::OUString& rResult ); + void SetFormulaResultDouble( double fResult ); + const ScAddress& GetPosition() const { return aCellPos; } + + // XText + virtual void SAL_CALL insertTextContent( const ::com::sun::star::uno::Reference< + ::com::sun::star::text::XTextRange >& xRange, + const ::com::sun::star::uno::Reference< + ::com::sun::star::text::XTextContent >& xContent, + sal_Bool bAbsorb ) + throw(::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeTextContent( const ::com::sun::star::uno::Reference< + ::com::sun::star::text::XTextContent >& xContent ) + throw(::com::sun::star::container::NoSuchElementException, + ::com::sun::star::uno::RuntimeException); + + // XSimpleText + virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextCursor > SAL_CALL + createTextCursor() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextCursor > SAL_CALL + createTextCursorByRange( const ::com::sun::star::uno::Reference< + ::com::sun::star::text::XTextRange >& aTextPosition ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL insertString( const ::com::sun::star::uno::Reference< + ::com::sun::star::text::XTextRange >& xRange, + const ::rtl::OUString& aString, sal_Bool bAbsorb ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL insertControlCharacter( const ::com::sun::star::uno::Reference< + ::com::sun::star::text::XTextRange >& xRange, + sal_Int16 nControlCharacter, sal_Bool bAbsorb ) + throw(::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::uno::RuntimeException); + + // XTextRange + virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XText > SAL_CALL + getText() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > SAL_CALL + getStart() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > SAL_CALL + getEnd() throw(::com::sun::star::uno::RuntimeException); + virtual ::rtl::OUString SAL_CALL getString() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setString( const ::rtl::OUString& aString ) + throw(::com::sun::star::uno::RuntimeException); + + // XEnumerationAccess + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL + createEnumeration() throw(::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XCell + virtual ::rtl::OUString SAL_CALL getFormula() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setFormula( const ::rtl::OUString& aFormula ) + throw(::com::sun::star::uno::RuntimeException); + virtual double SAL_CALL getValue() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setValue( double nValue ) throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::table::CellContentType SAL_CALL getType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Int32 SAL_CALL getError() throw(::com::sun::star::uno::RuntimeException); + + // XCellAddressable + virtual ::com::sun::star::table::CellAddress SAL_CALL getCellAddress() + throw(::com::sun::star::uno::RuntimeException); + + // XSheetAnnotationAnchor + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSheetAnnotation > SAL_CALL + getAnnotation() throw(::com::sun::star::uno::RuntimeException); + + // XTextFieldsSupplier + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumerationAccess > SAL_CALL + getTextFields() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > SAL_CALL + getTextFieldMasters() throw(::com::sun::star::uno::RuntimeException); + + // XPropertySet ueberladen wegen Zell-Properties + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > + SAL_CALL getPropertySetInfo() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Any& aValue ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::beans::PropertyVetoException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( + const ::rtl::OUString& PropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + //! Listener-Krempel ??!? + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); + + // XTypeProvider + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScTableSheetObj : public ScCellRangeObj, + public com::sun::star::sheet::XSpreadsheet, + public com::sun::star::container::XNamed, + public com::sun::star::sheet::XSheetPageBreak, + public com::sun::star::sheet::XCellRangeMovement, + public com::sun::star::table::XTableChartsSupplier, + public com::sun::star::sheet::XDataPilotTablesSupplier, + public com::sun::star::sheet::XScenariosSupplier, + public com::sun::star::sheet::XSheetAnnotationsSupplier, + public com::sun::star::drawing::XDrawPageSupplier, + public com::sun::star::sheet::XPrintAreas, + public com::sun::star::sheet::XSheetLinkable, + public com::sun::star::sheet::XSheetAuditing, + public com::sun::star::sheet::XSheetOutline, + public com::sun::star::util::XProtectable, + public com::sun::star::sheet::XScenario +{ + friend class ScTableSheetsObj; // fuer insertByName() + +private: + SfxItemPropertySet aSheetPropSet; + + USHORT GetTab_Impl() const; + void PrintAreaUndo_Impl( ScPrintRangeSaver* pOldRanges ); + +public: + ScTableSheetObj(ScDocShell* pDocSh, USHORT nTab); + virtual ~ScTableSheetObj(); + + void InitInsertSheet(ScDocShell* pDocSh, USHORT nTab); + + virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( + const ::com::sun::star::uno::Type & rType ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL acquire() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL release() throw(::com::sun::star::uno::RuntimeException); + + // XSpreadsheet + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSheetCellCursor > + SAL_CALL createCursor() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSheetCellCursor > SAL_CALL + createCursorByRange( const ::com::sun::star::uno::Reference< + ::com::sun::star::sheet::XSheetCellRange >& aRange ) + throw(::com::sun::star::uno::RuntimeException); + + // XSheetCellRange + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSpreadsheet > SAL_CALL + getSpreadsheet() throw(::com::sun::star::uno::RuntimeException); + + // XCellRange + virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XCell > SAL_CALL + getCellByPosition( sal_Int32 nColumn, sal_Int32 nRow ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XCellRange > SAL_CALL + getCellRangeByPosition( sal_Int32 nLeft, sal_Int32 nTop, + sal_Int32 nRight, sal_Int32 nBottom ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XCellRange > SAL_CALL + getCellRangeByName( const ::rtl::OUString& aRange ) + throw(::com::sun::star::uno::RuntimeException); + + // XNamed + virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XSheetPageBreak + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::sheet::TablePageBreakData > SAL_CALL + getColumnPageBreaks() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::sheet::TablePageBreakData > SAL_CALL + getRowPageBreaks() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeAllManualPageBreaks() throw(::com::sun::star::uno::RuntimeException); + + // XCellRangeMovement + virtual void SAL_CALL insertCells( const ::com::sun::star::table::CellRangeAddress& aRange, + ::com::sun::star::sheet::CellInsertMode nMode ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeRange( const ::com::sun::star::table::CellRangeAddress& aRange, + ::com::sun::star::sheet::CellDeleteMode nMode ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL moveRange( const ::com::sun::star::table::CellAddress& aDestination, + const ::com::sun::star::table::CellRangeAddress& aSource ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL copyRange( const ::com::sun::star::table::CellAddress& aDestination, + const ::com::sun::star::table::CellRangeAddress& aSource ) + throw(::com::sun::star::uno::RuntimeException); + + // XTableChartsSupplier + virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XTableCharts > SAL_CALL + getCharts() throw(::com::sun::star::uno::RuntimeException); + + // XDataPilotTablesSupplier + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XDataPilotTables > SAL_CALL + getDataPilotTables() throw(::com::sun::star::uno::RuntimeException); + + // XScenariosSupplier + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XScenarios > SAL_CALL + getScenarios() throw(::com::sun::star::uno::RuntimeException); + + // XSheetAnnotationsSupplier + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSheetAnnotations > SAL_CALL + getAnnotations() throw(::com::sun::star::uno::RuntimeException); + + // XDrawPageSupplier + virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage > SAL_CALL + getDrawPage() throw(::com::sun::star::uno::RuntimeException); + + // XPrintAreas + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::table::CellRangeAddress > SAL_CALL + getPrintAreas() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPrintAreas( const ::com::sun::star::uno::Sequence< + ::com::sun::star::table::CellRangeAddress >& aPrintAreas ) + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL getPrintTitleColumns() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPrintTitleColumns( sal_Bool bPrintTitleColumns ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::table::CellRangeAddress SAL_CALL getTitleColumns() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setTitleColumns( + const ::com::sun::star::table::CellRangeAddress& aTitleColumns ) + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL getPrintTitleRows() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPrintTitleRows( sal_Bool bPrintTitleRows ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::table::CellRangeAddress SAL_CALL getTitleRows() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setTitleRows( + const ::com::sun::star::table::CellRangeAddress& aTitleRows ) + throw(::com::sun::star::uno::RuntimeException); + + // XSheetLinkable + virtual ::com::sun::star::sheet::SheetLinkMode SAL_CALL getLinkMode() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setLinkMode( ::com::sun::star::sheet::SheetLinkMode nLinkMode ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::rtl::OUString SAL_CALL getLinkUrl() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setLinkUrl( const ::rtl::OUString& aLinkUrl ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::rtl::OUString SAL_CALL getLinkSheetName() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setLinkSheetName( const ::rtl::OUString& aLinkSheetName ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL link( const ::rtl::OUString& aUrl, + const ::rtl::OUString& aSheetName, + const ::rtl::OUString& aFilterName, + const ::rtl::OUString& aFilterOptions, + ::com::sun::star::sheet::SheetLinkMode nMode ) + throw(::com::sun::star::uno::RuntimeException); + + // XSheetAuditing + virtual sal_Bool SAL_CALL hideDependents( const ::com::sun::star::table::CellAddress& aPosition ) + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hidePrecedents( const ::com::sun::star::table::CellAddress& aPosition ) + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL showDependents( const ::com::sun::star::table::CellAddress& aPosition ) + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL showPrecedents( const ::com::sun::star::table::CellAddress& aPosition ) + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL showErrors( const ::com::sun::star::table::CellAddress& aPosition ) + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL showInvalid() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL clearArrows() throw(::com::sun::star::uno::RuntimeException); + + // XSheetOutline + virtual void SAL_CALL group( const ::com::sun::star::table::CellRangeAddress& aRange, + ::com::sun::star::table::TableOrientation nOrientation ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL ungroup( const ::com::sun::star::table::CellRangeAddress& aRange, + ::com::sun::star::table::TableOrientation nOrientation ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL autoOutline( const ::com::sun::star::table::CellRangeAddress& aRange ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL clearOutline() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL hideDetail( const ::com::sun::star::table::CellRangeAddress& aRange ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL showDetail( const ::com::sun::star::table::CellRangeAddress& aRange ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL showLevel( sal_Int16 nLevel, + ::com::sun::star::table::TableOrientation nOrientation ) + throw(::com::sun::star::uno::RuntimeException); + + // XProtectable + virtual void SAL_CALL protect( const ::rtl::OUString& aPassword ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL unprotect( const ::rtl::OUString& aPassword ) + throw(::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL isProtected() throw(::com::sun::star::uno::RuntimeException); + + // XScenario + virtual sal_Bool SAL_CALL getIsScenario() throw(::com::sun::star::uno::RuntimeException); + virtual ::rtl::OUString SAL_CALL getScenarioComment() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setScenarioComment( const ::rtl::OUString& aScenarioComment ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addRanges( const ::com::sun::star::uno::Sequence< + ::com::sun::star::table::CellRangeAddress >& aRanges ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL apply() throw(::com::sun::star::uno::RuntimeException); + + // XPropertySet ueberladen wegen Sheet-Properties + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > + SAL_CALL getPropertySetInfo() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Any& aValue ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::beans::PropertyVetoException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( + const ::rtl::OUString& PropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); + + // XUnoTunnel + virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< + sal_Int8 >& aIdentifier ) + throw(::com::sun::star::uno::RuntimeException); + + static const com::sun::star::uno::Sequence<sal_Int8>& getUnoTunnelId(); + static ScTableSheetObj* getImplementation( const com::sun::star::uno::Reference< + com::sun::star::uno::XInterface> xObj ); + + // XTypeProvider + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScTableColumnObj : public ScCellRangeObj, + public com::sun::star::container::XNamed +{ +private: + SfxItemPropertySet aColPropSet; + +public: + ScTableColumnObj(ScDocShell* pDocSh, USHORT nCol, USHORT nTab); + virtual ~ScTableColumnObj(); + + virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( + const ::com::sun::star::uno::Type & rType ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL acquire() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL release() throw(::com::sun::star::uno::RuntimeException); + + // XNamed + virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XPropertySet ueberladen wegen Spalten-Properties + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > + SAL_CALL getPropertySetInfo() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Any& aValue ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::beans::PropertyVetoException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( + const ::rtl::OUString& PropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + //! Listener-Krempel ??!? + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); + + // XTypeProvider + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScTableRowObj : public ScCellRangeObj +{ +private: + SfxItemPropertySet aRowPropSet; + +public: + ScTableRowObj(ScDocShell* pDocSh, USHORT nRow, USHORT nTab); + virtual ~ScTableRowObj(); + + // XPropertySet ueberladen wegen Zeilen-Properties + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > + SAL_CALL getPropertySetInfo() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Any& aValue ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::beans::PropertyVetoException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( + const ::rtl::OUString& PropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + //! Listener-Krempel ??!? + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScCellsObj : public cppu::WeakImplHelper2< + com::sun::star::container::XEnumerationAccess, + com::sun::star::lang::XServiceInfo >, + public SfxListener +{ +private: + ScDocShell* pDocShell; + ScRangeList aRanges; + +public: + ScCellsObj(ScDocShell* pDocSh, const ScRangeList& rR); + virtual ~ScCellsObj(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // XEnumerationAccess + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL + createEnumeration() throw(::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScCellsEnumeration : public cppu::WeakImplHelper2< + com::sun::star::container::XEnumeration, + com::sun::star::lang::XServiceInfo >, + public SfxListener +{ +private: + ScDocShell* pDocShell; + ScRangeList aRanges; + ScAddress aPos; + ScMarkData* pMark; + BOOL bAtEnd; + +private: + void Advance_Impl(); + void CheckPos_Impl(); + +public: + ScCellsEnumeration(ScDocShell* pDocSh, const ScRangeList& rR); + virtual ~ScCellsEnumeration(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // XEnumeration + virtual sal_Bool SAL_CALL hasMoreElements() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL nextElement() + throw(::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + +class ScCellFormatsObj : public cppu::WeakImplHelper3< + com::sun::star::container::XIndexAccess, + com::sun::star::container::XEnumerationAccess, + com::sun::star::lang::XServiceInfo >, + public SfxListener +{ +private: + ScDocShell* pDocShell; + ScRange aTotalRange; + +private: + ScCellRangeObj* GetObjectByIndex_Impl(long nIndex) const; + +public: + ScCellFormatsObj(ScDocShell* pDocSh, const ScRange& rR); + virtual ~ScCellFormatsObj(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // XIndexAccess + virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) + throw(::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XEnumerationAccess + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL + createEnumeration() throw(::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScCellFormatsEnumeration : public cppu::WeakImplHelper2< + com::sun::star::container::XEnumeration, + com::sun::star::lang::XServiceInfo >, + public SfxListener +{ +private: + ScDocShell* pDocShell; + USHORT nTab; + ScAttrRectIterator* pIter; + ScRange aNext; + BOOL bAtEnd; + BOOL bDirty; + +private: + void Advance_Impl(); + ScCellRangeObj* NextObject_Impl(); + +public: + ScCellFormatsEnumeration(ScDocShell* pDocSh, const ScRange& rR); + virtual ~ScCellFormatsEnumeration(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // XEnumeration + virtual sal_Bool SAL_CALL hasMoreElements() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL nextElement() + throw(::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +#endif + diff --git a/sc/inc/cfgids.hxx b/sc/inc/cfgids.hxx new file mode 100644 index 000000000000..3817b7401003 --- /dev/null +++ b/sc/inc/cfgids.hxx @@ -0,0 +1,78 @@ +/************************************************************************* + * + * $RCSfile: cfgids.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#ifndef _CFGID_HXX +#define _CFGID_HXX + +#define SCCFG_DOC SFX_ITEMTYPE_SC_BEGIN +#define SCCFG_VIEW (SFX_ITEMTYPE_SC_BEGIN + 1) +#define SCCFG_APP (SFX_ITEMTYPE_SC_BEGIN + 2) +#define SCCFG_SPELLCHECK (SFX_ITEMTYPE_SC_BEGIN + 3) +#define SCCFG_PRINT (SFX_ITEMTYPE_SC_BEGIN + 4) +#define SCCFG_STATUSBAR (SFX_ITEMTYPE_SC_BEGIN + 5) +#define SCCFG_ACCELERATOR (SFX_ITEMTYPE_SC_BEGIN + 6) +#define SCCFG_MENUBAR (SFX_ITEMTYPE_SC_BEGIN + 7) +#define SCCFG_INPUT (SFX_ITEMTYPE_SC_BEGIN + 8) +#define SCCFG_NAVIPI (SFX_ITEMTYPE_SC_BEGIN + 9) +#define SCCFG_PLUGINMENU (SFX_ITEMTYPE_SC_BEGIN + 10) + + +#endif + diff --git a/sc/inc/chartarr.hxx b/sc/inc/chartarr.hxx new file mode 100644 index 000000000000..8e85ceba3096 --- /dev/null +++ b/sc/inc/chartarr.hxx @@ -0,0 +1,244 @@ +/************************************************************************* + * + * $RCSfile: chartarr.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_CHARTARR_HXX +#define SC_CHARTARR_HXX + +// ----------------------------------------------------------------------- + +#ifndef SC_COLLECT_HXX +#include "collect.hxx" +#endif +#ifndef SC_RANGELST_HXX +#include "rangelst.hxx" +#endif + + +class ScAddress; +class Table; + +class ScChartPositionMap +{ + friend class ScChartArray; + + ScAddress** ppData; + ScAddress** ppColHeader; + ScAddress** ppRowHeader; + ULONG nCount; + USHORT nColCount; + USHORT nRowCount; + + ScChartPositionMap( USHORT nChartCols, USHORT nChartRows, + USHORT nColAdd, // Header-Spalten + USHORT nRowAdd, // Header-Zeilen + Table& rCols // Table mit Col-Tables mit Address* + ); + ~ScChartPositionMap(); //! deletes all ScAddress* + + const ScAddress* GetPosition( ULONG nIndex ) const + { + if ( nIndex < nCount ) + return ppData[ nIndex ]; + return NULL; + } + + // not implemented + ScChartPositionMap( const ScChartPositionMap& ); + ScChartPositionMap& operator=( const ScChartPositionMap& ); + +public: + + ULONG GetCount() const { return nCount; } + USHORT GetColCount() const { return nColCount; } + USHORT GetRowCount() const { return nRowCount; } + + BOOL IsValid( USHORT nCol, USHORT nRow ) const + { return nCol < nColCount && nRow < nRowCount; } + // Daten spaltenweise + ULONG GetIndex( USHORT nCol, USHORT nRow ) const + { return (ULONG) nCol * nRowCount + nRow; } + + //! kann NULL sein und damit "kein Wert" + const ScAddress* GetPosition( USHORT nChartCol, USHORT nChartRow ) const + { + if ( IsValid( nChartCol, nChartRow ) ) + return ppData[ GetIndex( nChartCol, nChartRow ) ]; + return NULL; + } + const ScAddress* GetColHeaderPosition( USHORT nChartCol ) const + { + if ( nChartCol < nColCount ) + return ppColHeader[ nChartCol ]; + return NULL; + } + const ScAddress* GetRowHeaderPosition( USHORT nChartRow ) const + { + if ( nChartRow < nRowCount ) + return ppRowHeader[ nChartRow ]; + return NULL; + } + ScRangeListRef GetColRanges( USHORT nChartCol ) const; + ScRangeListRef GetRowRanges( USHORT nChartRow ) const; +}; + + +enum ScChartGlue { + SC_CHARTGLUE_NA, + SC_CHARTGLUE_NONE, // alte Mimik + SC_CHARTGLUE_COLS, // alte Mimik + SC_CHARTGLUE_ROWS, + SC_CHARTGLUE_BOTH +}; + +class ScDocument; +class ScMultipleReadHeader; +class SchMemChart; + +class ScChartArray : public DataObject // nur noch Parameter-Struct +{ + ScRangeListRef aRangeListRef; + String aName; + ScDocument* pDocument; + ScChartPositionMap* pPositionMap; + ScChartGlue eGlue; + USHORT nStartCol; + USHORT nStartRow; + BOOL bColHeaders; + BOOL bRowHeaders; + BOOL bDummyUpperLeft; + BOOL bValid; // fuer Erzeugung aus SchMemChart + +private: + void CheckColRowHeaders(); + SchMemChart* CreateMemChartSingle() const; + SchMemChart* CreateMemChartMulti(); + + void GlueState(); // zusammengefasste Bereiche + void CreatePositionMap(); + +public: + ScChartArray( ScDocument* pDoc, USHORT nTab, + USHORT nStartCol, USHORT nStartRow, + USHORT nEndCol, USHORT nEndRow, + const String& rChartName ); + ScChartArray( ScDocument* pDoc, const ScRangeListRef& rRangeList, + const String& rChartName ); + ScChartArray( const ScChartArray& rArr ); + ScChartArray( ScDocument* pDoc, SvStream& rStream, ScMultipleReadHeader& rHdr ); + ScChartArray( ScDocument* pDoc, const SchMemChart& rData ); + + virtual ~ScChartArray(); + virtual DataObject* Clone() const; + + const ScRangeListRef& GetRangeList() const { return aRangeListRef; } + void SetRangeList( const ScRangeListRef& rNew ) { aRangeListRef = rNew; } + void SetRangeList( const ScRange& rNew ); + void AddToRangeList( const ScRange& rRange ); + void AddToRangeList( const ScRangeListRef& rAdd ); + + void SetHeaders(BOOL bCol, BOOL bRow) { bColHeaders=bCol; bRowHeaders=bRow; } + BOOL HasColHeaders() const { return bColHeaders; } + BOOL HasRowHeaders() const { return bRowHeaders; } + BOOL IsValid() const { return bValid; } + void SetName(const String& rNew) { aName = rNew; } + const String& GetName() const { return aName; } + + BOOL IsAtCursor(const ScAddress& rPos) const; + + BOOL operator==(const ScChartArray& rCmp) const; + + SchMemChart* CreateMemChart(); + void SetExtraStrings(SchMemChart& rMem) const; + + void InvalidateGlue() + { + eGlue = SC_CHARTGLUE_NA; + if ( pPositionMap ) + { + delete pPositionMap; + pPositionMap = NULL; + } + } + const ScChartPositionMap* GetPositionMap(); + + static void CopySettings( SchMemChart& rDest, const SchMemChart& rSource ); +}; + +class ScChartCollection : public Collection +{ +public: + ScChartCollection() : Collection( 4,4 ) {} + ScChartCollection( const ScChartCollection& rColl ): + Collection( rColl ) {} + + virtual DataObject* Clone() const; + ScChartArray* operator[](USHORT nIndex) const + { return (ScChartArray*)At(nIndex); } + + BOOL operator==(const ScChartCollection& rCmp) const; + + BOOL Load( ScDocument* pDoc, SvStream& rStream ); +}; + + + +#endif + diff --git a/sc/inc/chartlis.hxx b/sc/inc/chartlis.hxx new file mode 100644 index 000000000000..409c35d40bd6 --- /dev/null +++ b/sc/inc/chartlis.hxx @@ -0,0 +1,176 @@ +/************************************************************************* + * + * $RCSfile: chartlis.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_CHARTLIS_HXX +#define SC_CHARTLIS_HXX + + +#ifndef _TIMER_HXX //autogen +#include <vcl/timer.hxx> +#endif + +#ifndef _SFXLSTNER_HXX //autogen +#include <svtools/lstner.hxx> +#endif +#ifndef SC_COLLECT_HXX +#include "collect.hxx" +#endif +#ifndef SC_RANGELST_HXX +#include "rangelst.hxx" +#endif + +class ScDocument; +class ScChartUnoData; + +#ifndef _COM_SUN_STAR_CHART_XCHARTDATA_HPP_ +#include <com/sun/star/chart/XChartData.hpp> +#endif +#ifndef _COM_SUN_STAR_CHART_XCHARTDATACHANGEEVENTLISTENER_HPP_ +#include <com/sun/star/chart/XChartDataChangeEventListener.hpp> +#endif + +class ScChartListener : public StrData, public SfxListener +{ +private: + ScRangeListRef aRangeListRef; + ScChartUnoData* pUnoData; + ScDocument* pDoc; + BOOL bUsed; // fuer ScChartListenerCollection::FreeUnused + BOOL bDirty; + + // not implemented + ScChartListener& operator=( const ScChartListener& ); + +public: + ScChartListener( const String& rName, ScDocument* pDoc, + const ScRange& rRange ); + ScChartListener( const String& rName, ScDocument* pDoc, + const ScRangeListRef& rRangeListRef ); + ScChartListener( const ScChartListener& ); + virtual ~ScChartListener(); + virtual DataObject* Clone() const; + + void SetUno( const com::sun::star::uno::Reference< com::sun::star::chart::XChartDataChangeEventListener >& rListener, + const com::sun::star::uno::Reference< com::sun::star::chart::XChartData >& rSource ); + com::sun::star::uno::Reference< com::sun::star::chart::XChartDataChangeEventListener > GetUnoListener() const; + com::sun::star::uno::Reference< com::sun::star::chart::XChartData > GetUnoSource() const; + + BOOL IsUno() const { return (pUnoData != NULL); } + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + void StartListeningTo(); + void EndListeningTo(); + void ChangeListening( const ScRangeListRef& rRangeListRef, + BOOL bDirty = FALSE ); + void Update(); + const ScRangeListRef& GetRangeList() const { return aRangeListRef; } + void SetRangeList( const ScRangeListRef& rNew ) { aRangeListRef = rNew; } + void SetRangeList( const ScRange& rNew ); + BOOL IsUsed() const { return bUsed; } + void SetUsed( BOOL bFlg ) { bUsed = bFlg; } + BOOL IsDirty() const { return bDirty; } + void SetDirty( BOOL bFlg ) { bDirty = bFlg; } + + BOOL operator==( const ScChartListener& ); + BOOL operator!=( const ScChartListener& r ) + { return !operator==( r ); } +}; + +class ScChartListenerCollection : public StrCollection +{ +private: + Timer aTimer; + ScDocument* pDoc; + + DECL_LINK( TimerHdl, Timer* ); + + // not implemented + ScChartListenerCollection& operator=( const ScChartListenerCollection& ); + +public: + ScChartListenerCollection( ScDocument* pDoc ); + ScChartListenerCollection( const ScChartListenerCollection& ); + virtual DataObject* Clone() const; + + // nur nach copy-ctor noetig, wenn neu ins Dok gehaengt + void StartAllListeners(); + + void ChangeListening( const String& rName, + const ScRangeListRef& rRangeListRef, + BOOL bDirty = FALSE ); + // FreeUnused nur wie in ScDocument::UpdateChartListenerCollection verwenden! + void FreeUnused(); + void FreeUno( const com::sun::star::uno::Reference< com::sun::star::chart::XChartDataChangeEventListener >& rListener, + const com::sun::star::uno::Reference< com::sun::star::chart::XChartData >& rSource ); + void StartTimer(); + void UpdateDirtyCharts(); + void SetDirty(); + void SetDiffDirty( const ScChartListenerCollection&, + BOOL bSetChartRangeLists = FALSE ); + + void SetRangeDirty( const ScRange& rRange ); // z.B. Zeilen/Spalten + + BOOL operator==( const ScChartListenerCollection& ); +}; + + +#endif + diff --git a/sc/inc/chartuno.hxx b/sc/inc/chartuno.hxx new file mode 100644 index 000000000000..6128ee196932 --- /dev/null +++ b/sc/inc/chartuno.hxx @@ -0,0 +1,214 @@ +/************************************************************************* + * + * $RCSfile: chartuno.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_CHARTUNO_HXX +#define SC_CHARTUNO_HXX + +#ifndef _SFXLSTNER_HXX //autogen +#include <svtools/lstner.hxx> +#endif + +#ifndef _COM_SUN_STAR_TABLE_XTABLECHART_HPP_ +#include <com/sun/star/table/XTableChart.hpp> +#endif +#ifndef _COM_SUN_STAR_TABLE_XTABLECHARTS_HPP_ +#include <com/sun/star/table/XTableCharts.hpp> +#endif +#ifndef _COM_SUN_STAR_DOCUMENT_XEMBEDDEDOBJECTSUPPLIER_HPP_ +#include <com/sun/star/document/XEmbeddedObjectSupplier.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_ +#include <com/sun/star/lang/XServiceInfo.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XENUMERATIONACCESS_HPP_ +#include <com/sun/star/container/XEnumerationAccess.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XINDEXACCESS_HPP_ +#include <com/sun/star/container/XIndexAccess.hpp> +#endif + +#ifndef _CPPUHELPER_IMPLBASE4_HXX_ +#include <cppuhelper/implbase4.hxx> +#endif +#ifndef _CPPUHELPER_IMPLBASE3_HXX_ +#include <cppuhelper/implbase3.hxx> +#endif + + +class ScDocShell; +class ScRangeListRef; +class ScChartObj; + + +class ScChartsObj : public cppu::WeakImplHelper4< + com::sun::star::table::XTableCharts, + com::sun::star::container::XEnumerationAccess, + com::sun::star::container::XIndexAccess, + com::sun::star::lang::XServiceInfo >, + public SfxListener +{ +private: + ScDocShell* pDocShell; + USHORT nTab; // Charts sind pro Sheet + + ScChartObj* GetObjectByIndex_Impl(long nIndex) const; + ScChartObj* GetObjectByName_Impl(const ::rtl::OUString& aName) const; + +public: + ScChartsObj(ScDocShell* pDocSh, USHORT nT); + virtual ~ScChartsObj(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // XTableCharts + virtual void SAL_CALL addNewByName( const ::rtl::OUString& aName, + const ::com::sun::star::awt::Rectangle& aRect, + const ::com::sun::star::uno::Sequence< + ::com::sun::star::table::CellRangeAddress >& aRanges, + sal_Bool bColumnHeaders, sal_Bool bRowHeaders ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XNameAccess + virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XIndexAccess + virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) + throw(::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XEnumerationAccess + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL + createEnumeration() throw(::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScChartObj : public cppu::WeakImplHelper3< + com::sun::star::table::XTableChart, + com::sun::star::document::XEmbeddedObjectSupplier, + com::sun::star::lang::XServiceInfo >, + public SfxListener +{ +private: + ScDocShell* pDocShell; + USHORT nTab; // Charts sind pro Sheet + String aChartName; + + void Update_Impl( const ScRangeListRef& rRanges, BOOL bColHeaders, BOOL bRowHeaders ); + void GetData_Impl( ScRangeListRef& rRanges, BOOL& rColHeaders, BOOL& rRowHeaders ) const; + +public: + ScChartObj(ScDocShell* pDocSh, USHORT nT, const String& rN); + virtual ~ScChartObj(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // XTableChart + virtual sal_Bool SAL_CALL getHasColumnHeaders() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setHasColumnHeaders( sal_Bool bHasColumnHeaders ) + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL getHasRowHeaders() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setHasRowHeaders( sal_Bool bHasRowHeaders ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::table::CellRangeAddress > SAL_CALL + getRanges( ) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setRanges( const ::com::sun::star::uno::Sequence< + ::com::sun::star::table::CellRangeAddress >& aRanges ) + throw(::com::sun::star::uno::RuntimeException); + + // XEmbeddedObjectSupplier + virtual ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > SAL_CALL + getEmbeddedObject() throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + +#endif + diff --git a/sc/inc/chgtrack.hxx b/sc/inc/chgtrack.hxx new file mode 100644 index 000000000000..6d28a7da203c --- /dev/null +++ b/sc/inc/chgtrack.hxx @@ -0,0 +1,1248 @@ +/************************************************************************* + * + * $RCSfile: chgtrack.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_CHGTRACK_HXX +#define SC_CHGTRACK_HXX + + +#ifndef _STRING_HXX //autogen +#include <tools/string.hxx> +#endif +#ifndef _DATETIME_HXX //autogen +#include <tools/datetime.hxx> +#endif +#ifndef _TOOLS_TABLE_HXX //autogen +#include <tools/table.hxx> +#endif +#ifndef _STACK_HXX //autogen +#include <tools/stack.hxx> +#endif +#ifndef _QUEUE_HXX //autogen +#include <tools/queue.hxx> +#endif +#ifndef _SVMEMPOOL_HXX //autogen +#include <tools/mempool.hxx> +#endif +#ifndef _LINK_HXX //autogen +#include <tools/link.hxx> +#endif +#ifndef _SFXLSTNER_HXX //autogen +#include <svtools/lstner.hxx> +#endif + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" +#endif +#ifndef SC_BIGRANGE_HXX +#include "bigrange.hxx" +#endif +#ifndef SC_COLLECT_HXX +#include "collect.hxx" +#endif + +#ifdef SC_CHGTRACK_CXX +// core/inc +#ifndef SC_REFUPDAT_HXX +#include "refupdat.hxx" +#endif +#endif + + +class ScBaseCell; +class ScDocument; + + +enum ScChangeActionType +{ + SC_CAT_NONE, + SC_CAT_INSERT_COLS, + SC_CAT_INSERT_ROWS, + SC_CAT_INSERT_TABS, + SC_CAT_DELETE_COLS, + SC_CAT_DELETE_ROWS, + SC_CAT_DELETE_TABS, + SC_CAT_MOVE, + SC_CAT_CONTENT, + SC_CAT_REJECT +}; + + +enum ScChangeActionState +{ + SC_CAS_VIRGIN, + SC_CAS_ACCEPTED, + SC_CAS_REJECTED +}; + + +enum ScChangeActionClipMode +{ + SC_CACM_NONE, + SC_CACM_CUT, + SC_CACM_COPY, + SC_CACM_PASTE +}; + +class SvStream; +class ScMultipleReadHeader; +class ScMultipleWriteHeader; + +// --- ScChangeActionLinkEntry --------------------------------------------- + +// Fuegt sich selbst am Beginn einer Kette ein, bzw. vor einem anderen +// LinkEntry, on delete selbstaendiges ausklinken auch des gelinkten. +// ppPrev == &previous->pNext oder Adresse des Pointers auf Beginn der Kette, +// *ppPrev == this + +class ScChangeAction; + +class ScChangeActionLinkEntry +{ + // not implemented, prevent usage + ScChangeActionLinkEntry( + const ScChangeActionLinkEntry& ); + ScChangeActionLinkEntry& operator=( const ScChangeActionLinkEntry& ); + +protected: + + ScChangeActionLinkEntry* pNext; + ScChangeActionLinkEntry** ppPrev; + ScChangeAction* pAction; + ScChangeActionLinkEntry* pLink; + +public: + + DECL_FIXEDMEMPOOL_NEWDEL( ScChangeActionLinkEntry ) + + ScChangeActionLinkEntry( + ScChangeActionLinkEntry** ppPrevP, + ScChangeAction* pActionP ) + : ppPrev( ppPrevP ), + pNext( *ppPrevP ), + pAction( pActionP ), + pLink( NULL ) + { + if ( pNext ) + pNext->ppPrev = &pNext; + *ppPrevP = this; + } + + virtual ~ScChangeActionLinkEntry() + { + ScChangeActionLinkEntry* p = pLink; + UnLink(); + Remove(); + if ( p ) + delete p; + } + + void SetLink( ScChangeActionLinkEntry* pLinkP ) + { + UnLink(); + if ( pLinkP ) + { + pLink = pLinkP; + pLinkP->pLink = this; + } + } + + void UnLink() + { + if ( pLink ) + { + pLink->pLink = NULL; + pLink = NULL; + } + } + + void Remove() + { + if ( ppPrev ) + { + if ( *ppPrev = pNext ) + pNext->ppPrev = ppPrev; + ppPrev = NULL; // not inserted + } + } + + void Insert( ScChangeActionLinkEntry** ppPrevP ) + { + if ( !ppPrev ) + { + ppPrev = ppPrevP; + if ( pNext = *ppPrevP ) + pNext->ppPrev = &pNext; + *ppPrevP = this; + } + } + + const ScChangeActionLinkEntry* GetLink() const { return pLink; } + ScChangeActionLinkEntry* GetLink() { return pLink; } + const ScChangeActionLinkEntry* GetNext() const { return pNext; } + ScChangeActionLinkEntry* GetNext() { return pNext; } + const ScChangeAction* GetAction() const { return pAction; } + ScChangeAction* GetAction() { return pAction; } +}; + + +// --- ScChangeAction ------------------------------------------------------- + +class ScChangeTrack; +class ScChangeActionIns; +class ScChangeActionDel; +class ScChangeActionContent; +class ScChangeActionCellListEntry; + +class ScChangeAction +{ + friend class ScChangeTrack; + friend class ScChangeActionIns; + friend class ScChangeActionDel; + friend class ScChangeActionMove; + friend class ScChangeActionContent; + + // not implemented, prevent usage + ScChangeAction( const ScChangeAction& ); + ScChangeAction& operator=( const ScChangeAction& ); + +protected: + + ScBigRange aBigRange; // Ins/Del/MoveTo/ContentPos + DateTime aDateTime; //! UTC + String aUser; // wer war's + String aComment; // Benutzerkommentar + ScChangeAction* pNext; // naechster in Kette + ScChangeAction* pPrev; // vorheriger in Kette + ScChangeActionLinkEntry* pLinkAny; // irgendwelche Links + ScChangeActionLinkEntry* pLinkDeletedIn; // Zuordnung zu + // geloeschten oder + // druebergemoveten oder + // rejecteten Insert + // Bereichen + ScChangeActionLinkEntry* pLinkDeleted; // Links zu geloeschten + ScChangeActionLinkEntry* pLinkDependent; // Links zu abhaengigen + ULONG nAction; + ULONG nRejectAction; + ScChangeActionType eType; + ScChangeActionState eState; + + + ScChangeAction( ScChangeActionType, + const ScRange& ); + ScChangeAction( SvStream&, + ScMultipleReadHeader&, ScChangeTrack* ); + virtual ~ScChangeAction(); + + static void StoreCell( ScBaseCell*, SvStream&, + ScMultipleWriteHeader& ); + static ScBaseCell* LoadCell( SvStream&, ScMultipleReadHeader&, + ScDocument*, USHORT nVer ); + + static BOOL StoreLinkChain( ScChangeActionLinkEntry*, + SvStream& ); + static BOOL LoadLinkChain( ScChangeAction*, + ScChangeActionLinkEntry**, + SvStream&, ScChangeTrack*, + BOOL bLinkDeleted ); + + static BOOL StoreCellList( ScChangeActionCellListEntry*, + SvStream& ); + static BOOL LoadCellList( ScChangeAction* pOfAction, + ScChangeActionCellListEntry*&, SvStream&, + ScChangeTrack* ); + + String GetRefString( const ScBigRange&, + ScDocument*, BOOL bFlag3D = FALSE ) const; + + void SetActionNumber( ULONG n ) { nAction = n; } + void SetRejectAction( ULONG n ) { nRejectAction = n; } + void SetUser( const String& r ) { aUser = r; } + void SetType( ScChangeActionType e ) { eType = e; } + void SetState( ScChangeActionState e ) { eState = e; } + void SetRejected(); + + ScBigRange& GetBigRange() { return aBigRange; } + + ScChangeActionLinkEntry* AddLink( ScChangeAction* p, + ScChangeActionLinkEntry* pL ) + { + ScChangeActionLinkEntry* pLnk = + new ScChangeActionLinkEntry( + &pLinkAny, p ); + pLnk->SetLink( pL ); + return pLnk; + } + void RemoveLink( ScChangeAction* p ); + void RemoveAllAnyLinks(); + // zeigt ein AnyLink auf p? + BOOL DependsOn( ScChangeAction* p ) const; + + virtual ScChangeActionLinkEntry* GetDeletedIn() const + { return pLinkDeletedIn; } + virtual ScChangeActionLinkEntry** GetDeletedInAddress() + { return &pLinkDeletedIn; } + ScChangeActionLinkEntry* AddDeletedIn( ScChangeAction* p ) + { + return new ScChangeActionLinkEntry( + GetDeletedInAddress(), p ); + } + BOOL RemoveDeletedIn( const ScChangeAction* ); + void RemoveAllDeletedIn(); + void SetDeletedIn( ScChangeAction* ); + + ScChangeActionLinkEntry* AddDeleted( ScChangeAction* p ) + { + return new ScChangeActionLinkEntry( + &pLinkDeleted, p ); + } + BOOL RemoveDeleted( const ScChangeAction* p ); + void RemoveAllDeleted(); + + ScChangeActionLinkEntry* AddDependent( ScChangeAction* p ) + { + return new ScChangeActionLinkEntry( + &pLinkDependent, p ); + } + void RemoveDependent( ScChangeAction* p ); + void RemoveAllDependent(); + + void RemoveAllLinks(); + + virtual void AddContent( ScChangeActionContent* ) = 0; + virtual void DeleteCellEntries() = 0; + + virtual void UpdateReference( const ScChangeTrack*, + UpdateRefMode, const ScBigRange&, + INT32 nDx, INT32 nDy, INT32 nDz ); + + void Accept(); + virtual BOOL Reject( ScDocument* ) = 0; + void RejectRestoreContents( ScChangeTrack*, + short nDx, short nDy ); + + virtual BOOL Store( SvStream&, ScMultipleWriteHeader& ) const; + virtual BOOL StoreLinks( SvStream& ) const; + virtual BOOL LoadLinks( SvStream&, ScChangeTrack* ); + +public: + + BOOL IsInsertType() const + { + return eType == SC_CAT_INSERT_COLS || + eType == SC_CAT_INSERT_ROWS || + eType == SC_CAT_INSERT_TABS; + } + BOOL IsDeleteType() const + { + return eType == SC_CAT_DELETE_COLS || + eType == SC_CAT_DELETE_ROWS || + eType == SC_CAT_DELETE_TABS; + } + BOOL IsMasterType() const + { // alles was echte Abhaengige haben kann + return IsInsertType() || + eType == SC_CAT_MOVE; + } + BOOL IsVirgin() const + { return eState == SC_CAS_VIRGIN; } + BOOL IsAccepted() const + { return eState == SC_CAS_ACCEPTED; } + BOOL IsRejected() const + { return eState == SC_CAS_REJECTED; } + + // Action rejects another Action + BOOL IsRejecting() const + { return nRejectAction != 0; } + + // ob Action im Dokument sichtbar ist + BOOL IsVisible() const; + + // ob Action anfassbar ist + BOOL IsTouchable() const; + + // ob Action ein Eintrag in Dialog-Root ist + BOOL IsDialogRoot() const; + + // ob ein Eintrag im Dialog aufklappbar sein soll + BOOL IsDialogParent() const; + + // ob Action ein Delete ist, unter dem + // aufgeklappt mehrere einzelne Deletes sind + BOOL IsMasterDelete() const; + + // ob Action akzeptiert/selektiert/abgelehnt + // werden kann + BOOL IsClickable() const; + + // ob Action abgelehnt werden kann + BOOL IsRejectable() const; + + const ScBigRange& GetBigRange() const { return aBigRange; } + DateTime GetDateTime() const; // local time + const DateTime& GetDateTimeUTC() const // UTC time + { return aDateTime; } + const String& GetUser() const { return aUser; } + const String& GetComment() const { return aComment; } + ScChangeActionType GetType() const { return eType; } + ScChangeActionState GetState() const { return eState; } + ULONG GetActionNumber() const { return nAction; } + ULONG GetRejectAction() const { return nRejectAction; } + + ScChangeAction* GetNext() const { return pNext; } + ScChangeAction* GetPrev() const { return pPrev; } + + BOOL IsDeletedIn() const + { return GetDeletedIn() != NULL; } + BOOL IsDeleted() const + { return IsDeleteType() || IsDeletedIn(); } + BOOL IsDeletedIn( const ScChangeAction* ) const; + BOOL IsDeletedInDelType( ScChangeActionType ) const; + + const ScChangeActionLinkEntry* GetFirstDeletedEntry() const + { return pLinkDeleted; } + const ScChangeActionLinkEntry* GetFirstDependentEntry() const + { return pLinkDependent; } + BOOL HasDependent() const + { return pLinkDependent != NULL; } + BOOL HasDeleted() const + { return pLinkDeleted != NULL; } + + // Description wird an String angehaengt. + // Mit bSplitRange wird bei Delete nur + // eine Spalte/Zeile beruecksichtigt (fuer + // Auflistung der einzelnen Eintraege). + virtual void GetDescription( String&, ScDocument*, + BOOL bSplitRange = FALSE ) const {} + + virtual void GetRefString( String&, ScDocument*, + BOOL bFlag3D = FALSE ) const; + + // fuer DocumentMerge altes Datum einer anderen + // Action setzen, mit GetDateTimeUTC geholt + void SetDateTimeUTC( const DateTime& rDT ) + { aDateTime = rDT; } + + // Benutzerkommentar setzen + void SetComment( const String& rStr ) + { aComment = rStr; } +}; + + +// --- ScChangeActionIns ---------------------------------------------------- + +class ScChangeActionIns : public ScChangeAction +{ + friend class ScChangeTrack; + + ScChangeActionIns( const ScRange& rRange ); + ScChangeActionIns( SvStream&, + ScMultipleReadHeader&, ScChangeTrack* ); + virtual ~ScChangeActionIns(); + + virtual void AddContent( ScChangeActionContent* ) {} + virtual void DeleteCellEntries() {} + + virtual BOOL Reject( ScDocument* ); + + virtual BOOL Store( SvStream&, ScMultipleWriteHeader& ) const; + +public: + + virtual void GetDescription( String&, ScDocument*, + BOOL bSplitRange = FALSE ) const; +}; + + +// --- ScChangeActionDel ---------------------------------------------------- + +class ScChangeActionMove; + +class ScChangeActionDelMoveEntry : public ScChangeActionLinkEntry +{ + friend class ScChangeActionDel; + friend class ScChangeTrack; + + short nCutOffFrom; + short nCutOffTo; + + + ScChangeActionDelMoveEntry( + ScChangeActionDelMoveEntry** ppPrev, + ScChangeActionMove* pMove, + short nFrom, short nTo ) + : ScChangeActionLinkEntry( + (ScChangeActionLinkEntry**) + ppPrev, + (ScChangeAction*) pMove ), + nCutOffFrom( nFrom ), + nCutOffTo( nTo ) + {} + + ScChangeActionDelMoveEntry* GetNext() + { + return (ScChangeActionDelMoveEntry*) + ScChangeActionLinkEntry::GetNext(); + } + ScChangeActionMove* GetMove() + { + return (ScChangeActionMove*) + ScChangeActionLinkEntry::GetAction(); + } + +public: + const ScChangeActionDelMoveEntry* GetNext() const + { + return (const ScChangeActionDelMoveEntry*) + ScChangeActionLinkEntry::GetNext(); + } + const ScChangeActionMove* GetMove() const + { + return (const ScChangeActionMove*) + ScChangeActionLinkEntry::GetAction(); + } + short GetCutOffFrom() const { return nCutOffFrom; } + short GetCutOffTo() const { return nCutOffTo; } +}; + + +class ScChangeActionDel : public ScChangeAction +{ + friend class ScChangeTrack; + friend void ScChangeAction::Accept(); + + ScChangeTrack* pTrack; + ScChangeActionCellListEntry* pFirstCell; + ScChangeActionIns* pCutOff; // abgeschnittener Insert + short nCutOff; // +: Start -: End + ScChangeActionDelMoveEntry* pLinkMove; + short nDx; + short nDy; + + ScChangeActionDel( const ScRange& rRange, + short nDx, short nDy, ScChangeTrack* ); + ScChangeActionDel( SvStream&, + ScMultipleReadHeader&, ScDocument*, + USHORT nVer, ScChangeTrack* ); + virtual ~ScChangeActionDel(); + + void SetCutOffInsert( ScChangeActionIns* p, short n ) + { pCutOff = p; nCutOff = n; } + ScChangeActionIns* GetCutOffInsert() { return pCutOff; } + + virtual void AddContent( ScChangeActionContent* ); + virtual void DeleteCellEntries(); + + ScChangeActionDelMoveEntry* AddCutOffMove( ScChangeActionMove* pMove, + short nFrom, short nTo ) + { + return new ScChangeActionDelMoveEntry( + &pLinkMove, pMove, nFrom, nTo ); + } + void UndoCutOffMoves(); + void UndoCutOffInsert(); + + virtual void UpdateReference( const ScChangeTrack*, + UpdateRefMode, const ScBigRange&, + INT32 nDx, INT32 nDy, INT32 nDz ); + + virtual BOOL Reject( ScDocument* ); + + virtual BOOL Store( SvStream&, ScMultipleWriteHeader& ) const; + virtual BOOL StoreLinks( SvStream& ) const; + virtual BOOL LoadLinks( SvStream&, ScChangeTrack* ); + +public: + + // ob dieses das unterste einer Reihe (oder + // auch einzeln) ist + BOOL IsBaseDelete() const; + + // ob dieses das oberste einer Reihe (oder + // auch einzeln) ist + BOOL IsTopDelete() const; + + // ob dieses ein Teil einer Reihe ist + BOOL IsMultiDelete() const; + + // ob es eine Col ist, die zu einem TabDelete gehoert + BOOL IsTabDeleteCol() const; + + short GetDx() const { return nDx; } + short GetDy() const { return nDy; } + ScBigRange GetOverAllRange() const; // BigRange + (nDx, nDy) + + const ScChangeActionCellListEntry* GetFirstCellEntry() const + { return pFirstCell; } + const ScChangeActionDelMoveEntry* GetFirstMoveEntry() const + { return pLinkMove; } + const ScChangeActionIns* GetCutOffInsert() const { return pCutOff; } + short GetCutOffCount() const { return nCutOff; } + + virtual void GetDescription( String&, ScDocument*, + BOOL bSplitRange = FALSE ) const; +}; + + +// --- ScChangeActionMove --------------------------------------------------- + +class ScChangeActionMove : public ScChangeAction +{ + friend class ScChangeTrack; + friend void ScChangeActionDel::UndoCutOffMoves(); + + ScBigRange aFromRange; + ScChangeTrack* pTrack; + ScChangeActionCellListEntry* pFirstCell; + ULONG nStartLastCut; // fuer PasteCut Undo + ULONG nEndLastCut; + + ScChangeActionMove( const ScRange& rFromRange, + const ScRange& rToRange, + ScChangeTrack* pTrackP ) + : ScChangeAction( SC_CAT_MOVE, rToRange ), + aFromRange( rFromRange ), + pTrack( pTrackP ), + pFirstCell( NULL ), + nStartLastCut(0), + nEndLastCut(0) + {} + ScChangeActionMove( SvStream&, + ScMultipleReadHeader&, ScChangeTrack* ); + virtual ~ScChangeActionMove(); + + virtual void AddContent( ScChangeActionContent* ); + virtual void DeleteCellEntries(); + + ScBigRange& GetFromRange() { return aFromRange; } + + void SetStartLastCut( ULONG nVal ) { nStartLastCut = nVal; } + ULONG GetStartLastCut() const { return nStartLastCut; } + void SetEndLastCut( ULONG nVal ) { nEndLastCut = nVal; } + ULONG GetEndLastCut() const { return nEndLastCut; } + + virtual void UpdateReference( const ScChangeTrack*, + UpdateRefMode, const ScBigRange&, + INT32 nDx, INT32 nDy, INT32 nDz ); + + virtual BOOL Reject( ScDocument* ); + + virtual BOOL Store( SvStream&, ScMultipleWriteHeader& ) const; + virtual BOOL StoreLinks( SvStream& ) const; + virtual BOOL LoadLinks( SvStream&, ScChangeTrack* ); + +public: + const ScBigRange& GetFromRange() const { return aFromRange; } + void GetDelta( INT32& nDx, INT32& nDy, INT32& nDz ) const; + + virtual void GetDescription( String&, ScDocument*, + BOOL bSplitRange = FALSE ) const; + + virtual void GetRefString( String&, ScDocument*, + BOOL bFlag3D = FALSE ) const; +}; + + +// --- ScChangeActionContent ------------------------------------------------ + +class ScChangeActionContent : public ScChangeAction +{ + friend class ScChangeTrack; + + String aOldValue; + String aNewValue; + ScBaseCell* pOldCell; + ScBaseCell* pNewCell; + ScChangeActionContent* pNextContent; // an gleicher Position + ScChangeActionContent* pPrevContent; + ScChangeActionContent* pNextInSlot; // in gleichem Slot + ScChangeActionContent** ppPrevInSlot; + + ScChangeActionContent( SvStream&, + ScMultipleReadHeader&, ScDocument*, + USHORT nVer, ScChangeTrack* ); + + void SetNextContent( ScChangeActionContent* p ) + { pNextContent = p; } + void SetPrevContent( ScChangeActionContent* p ) + { pPrevContent = p; } + + void InsertInSlot( ScChangeActionContent** pp ) + { + if ( !ppPrevInSlot ) + { + ppPrevInSlot = pp; + if ( pNextInSlot = *pp ) + pNextInSlot->ppPrevInSlot = &pNextInSlot; + *pp = this; + } + } + void RemoveFromSlot() + { + if ( ppPrevInSlot ) + { + if ( *ppPrevInSlot = pNextInSlot ) + pNextInSlot->ppPrevInSlot = ppPrevInSlot; + ppPrevInSlot = NULL; // not inserted + } + } + ScChangeActionContent* GetNextInSlot() { return pNextInSlot; } + + void ClearTrack(); + + static void GetStringOfCell( String& rStr, + const ScBaseCell* pCell, + const ScDocument* pDoc, + const ScAddress& rPos ); + + static void GetStringOfCell( String& rStr, + const ScBaseCell* pCell, + const ScDocument* pDoc, + ULONG nFormat ); + + static void SetValue( String& rStr, ScBaseCell*& pCell, + const ScAddress& rPos, + const ScBaseCell* pOrgCell, + const ScDocument* pFromDoc, + ScDocument* pToDoc ); + + static void SetValue( String& rStr, ScBaseCell*& pCell, + ULONG nFormat, + const ScBaseCell* pOrgCell, + const ScDocument* pFromDoc, + ScDocument* pToDoc ); + + static BOOL IsContentCellType( const ScBaseCell* ); + + static BOOL NeedsNumberFormat( const ScBaseCell* ); + + void SetValueString( String& rValue, + ScBaseCell*& pCell, const String& rStr, + ScDocument* pDoc ); + + void GetValueString( String& rStr, + const String& rValue, + const ScBaseCell* pCell ) const; + + void GetFormulaString( String& rStr, + const ScFormulaCell* pCell ) const; + + virtual void AddContent( ScChangeActionContent* ) {} + virtual void DeleteCellEntries() {} + + virtual void UpdateReference( const ScChangeTrack*, + UpdateRefMode, const ScBigRange&, + INT32 nDx, INT32 nDy, INT32 nDz ); + + virtual BOOL Reject( ScDocument* ); + BOOL Select( ScDocument*, ScChangeTrack*, BOOL bOldest ); + + void PutValueToDoc( ScBaseCell*, const String&, + ScDocument*, short nDx, short nDy ) const; + + virtual BOOL Store( SvStream&, ScMultipleWriteHeader& ) const; + virtual BOOL StoreLinks( SvStream& ) const; + virtual BOOL LoadLinks( SvStream&, ScChangeTrack* ); + +public: + + DECL_FIXEDMEMPOOL_NEWDEL( ScChangeActionContent ) + + ScChangeActionContent( const ScRange& rRange ) + : ScChangeAction( SC_CAT_CONTENT, rRange ), + pOldCell( NULL ), + pNewCell( NULL ), + pNextContent( NULL ), + pPrevContent( NULL ), + pNextInSlot( NULL ), + ppPrevInSlot( NULL ) + {} + virtual ~ScChangeActionContent(); + + ScChangeActionContent* GetNextContent() const { return pNextContent; } + ScChangeActionContent* GetPrevContent() const { return pPrevContent; } + ScChangeActionContent* GetTopContent() const; + BOOL IsTopContent() const + { return pNextContent == NULL; } + + virtual ScChangeActionLinkEntry* GetDeletedIn() const; + virtual ScChangeActionLinkEntry** GetDeletedInAddress(); + + void PutOldValueToDoc( ScDocument*, + short nDx, short nDy ) const; + void PutNewValueToDoc( ScDocument*, + short nDx, short nDy ) const; + + void SetOldValue( const ScBaseCell*, + const ScDocument* pFromDoc, + ScDocument* pToDoc, + ULONG nFormat ); + void SetOldValue( const ScBaseCell*, + const ScDocument* pFromDoc, + ScDocument* pToDoc ); + void SetNewValue( const ScBaseCell*, ScDocument* ); + + // moeglichst nicht verwenden, + // setzt nur String bzw. generiert Formelzelle + void SetOldValue( const String& rOld, ScDocument* ); + void SetNewValue( const String& rNew, ScDocument* ); + + void GetOldString( String& ) const; + void GetNewString( String& ) const; + const ScBaseCell* GetNewCell() const { return pNewCell; } + virtual void GetDescription( String&, ScDocument*, + BOOL bSplitRange = FALSE ) const; + virtual void GetRefString( String&, ScDocument*, + BOOL bFlag3D = FALSE ) const; +}; + + +// --- ScChangeActionReject ------------------------------------------------- + +class ScChangeActionReject : public ScChangeAction +{ + friend class ScChangeTrack; + friend BOOL ScChangeActionContent::Select( ScDocument*, ScChangeTrack*, BOOL ); + + ScChangeActionReject( ULONG nReject ) + : ScChangeAction( SC_CAT_REJECT, ScRange() ) + { + SetRejectAction( nReject ); + SetState( SC_CAS_ACCEPTED ); + } + ScChangeActionReject( SvStream&, + ScMultipleReadHeader&, ScChangeTrack* ); + + virtual void AddContent( ScChangeActionContent* ) {} + virtual void DeleteCellEntries() {} + + virtual BOOL Reject( ScDocument* p ) { return FALSE; } + + virtual BOOL Store( SvStream&, ScMultipleWriteHeader& ) const; +}; + + +// --- ScChangeTrack -------------------------------------------------------- + +enum ScChangeTrackMsgType +{ + SC_CTM_NONE, + SC_CTM_APPEND, // Actions angehaengt + SC_CTM_REMOVE, // Actions weggenommen + SC_CTM_CHANGE, // Actions geaendert + SC_CTM_PARENT // war kein Parent und ist jetzt einer +}; + +struct ScChangeTrackMsgInfo +{ + DECL_FIXEDMEMPOOL_NEWDEL( ScChangeTrackMsgInfo ) + + ScChangeTrackMsgType eMsgType; + ULONG nStartAction; + ULONG nEndAction; +}; + +// MsgQueue fuer Benachrichtigung via ModifiedLink +DECLARE_QUEUE( ScChangeTrackMsgQueue, ScChangeTrackMsgInfo* ); +DECLARE_STACK( ScChangeTrackMsgStack, ScChangeTrackMsgInfo* ); + +enum ScChangeTrackMergeState +{ + SC_CTMS_NONE, + SC_CTMS_PREPARE, + SC_CTMS_OWN, + SC_CTMS_OTHER +}; + +// zusaetzlich zu pFirst/pNext/pLast/pPrev eine Table, um schnell sowohl +// per ActionNumber als auch ueber Liste zugreifen zu koennen +DECLARE_TABLE( ScChangeActionTable, ScChangeAction* ); + +// Intern generierte Actions beginnen bei diesem Wert (fast alle Bits gesetzt) +// und werden runtergezaehlt, um sich in einer Table wertemaessig nicht mit den +// "normalen" Actions in die Quere zu kommen. +#define SC_CHGTRACK_GENERATED_START ((UINT32) 0xfffffff0) + +// SfxListener an der Applikation, um Aenderungen des Usernamens mitzubekommen + +class ScChangeTrack : public SfxListener +{ + friend void ScChangeAction::RejectRestoreContents( ScChangeTrack*, short, short ); + friend BOOL ScChangeActionDel::Reject( ScDocument* pDoc ); + friend void ScChangeActionDel::DeleteCellEntries(); + friend void ScChangeActionMove::DeleteCellEntries(); + friend BOOL ScChangeActionMove::Reject( ScDocument* pDoc ); + + static const USHORT nContentRowsPerSlot; + static const USHORT nContentSlots; + + ScChangeActionTable aTable; + ScChangeActionTable aGeneratedTable; + ScChangeActionTable aPasteCutTable; + ScChangeTrackMsgQueue aMsgQueue; + ScChangeTrackMsgStack aMsgStackTmp; + ScChangeTrackMsgStack aMsgStackFinal; + StrCollection aUserCollection; + String aUser; + Link aModifiedLink; + ScRange aInDeleteRange; + DateTime aFixDateTime; + ScChangeAction* pFirst; + ScChangeAction* pLast; + ScChangeActionContent* pFirstGeneratedDelContent; + ScChangeActionContent** ppContentSlots; + ScChangeActionMove* pLastCutMove; + ScChangeActionLinkEntry* pLinkInsertCol; + ScChangeActionLinkEntry* pLinkInsertRow; + ScChangeActionLinkEntry* pLinkInsertTab; + ScChangeActionLinkEntry* pLinkMove; + ScChangeTrackMsgInfo* pBlockModifyMsg; + ScDocument* pDoc; + ULONG nActionMax; + ULONG nGeneratedMin; + ULONG nMarkLastSaved; + ULONG nStartLastCut; + ULONG nEndLastCut; + ULONG nLastMerge; + ScChangeTrackMergeState eMergeState; + USHORT nLoadedFileFormatVersion; + BOOL bLoadSave; + BOOL bInDelete; + BOOL bInDeleteUndo; + BOOL bInDeleteTop; + BOOL bInPasteCut; + BOOL bUseFixDateTime; + + // not implemented, prevent usage + ScChangeTrack( const ScChangeTrack& ); + ScChangeTrack& operator=( const ScChangeTrack& ); + +#ifdef SC_CHGTRACK_CXX + static USHORT InitContentRowsPerSlot(); + virtual void Notify( SfxBroadcaster&, const SfxHint& ); + void Init(); + void DtorClear(); + void SetLoadSave( BOOL bVal ) { bLoadSave = bVal; } + void SetInDeleteRange( const ScRange& rRange ) + { aInDeleteRange = rRange; } + void SetInDelete( BOOL bVal ) + { bInDelete = bVal; } + void SetInDeleteTop( BOOL bVal ) + { bInDeleteTop = bVal; } + void SetInDeleteUndo( BOOL bVal ) + { bInDeleteUndo = bVal; } + void SetInPasteCut( BOOL bVal ) + { bInPasteCut = bVal; } + void SetMergeState( ScChangeTrackMergeState eState ) + { eMergeState = eState; } + ScChangeTrackMergeState GetMergeState() const { return eMergeState; } + void SetLastMerge( ULONG nVal ) { nLastMerge = nVal; } + ULONG GetLastMerge() const { return nLastMerge; } + + void SetLastCutMoveRange( const ScRange&, ScDocument* ); + + // ModifyMsg blockweise und nicht einzeln erzeugen + void StartBlockModify( ScChangeTrackMsgType, + ULONG nStartAction ); + void EndBlockModify( ULONG nEndAction ); + + void AddDependentWithNotify( ScChangeAction* pParent, + ScChangeAction* pDependent ); + + void Dependencies( ScChangeAction* ); + void UpdateReference( ScChangeAction*, BOOL bUndo ); + void UpdateReference( ScChangeAction** ppFirstAction, + ScChangeAction* pAct, BOOL bUndo ); + void Append( ScChangeAction* pAppend, ULONG nAction ); + void AppendDeleteRange( const ScRange&, + ScDocument* pRefDoc, short nDz, + ULONG nRejectingInsert ); + void AppendOneDeleteRange( const ScRange& rOrgRange, + ScDocument* pRefDoc, + short nDx, short nDy, short nDz, + ULONG nRejectingInsert ); + void LookUpContents( const ScRange& rOrgRange, + ScDocument* pRefDoc, + short nDx, short nDy, short nDz ); + void Remove( ScChangeAction* ); + void MasterLinks( ScChangeAction* ); + void AppendLoaded( ScChangeAction* pAppend ); + + // Content on top an Position + ScChangeActionContent* SearchContentAt( const ScBigAddress&, + ScChangeAction* pButNotThis ) const; + // das gleiche fuer generierte Del-Eintraege, + // wobei der Content nicht in der angegebenen + // Richtung geloescht sein darf + ScChangeActionContent* SearchGeneratedDelContentAt( + const ScBigAddress&, + ScChangeActionType eNotInDelType ) const; + ScChangeActionContent* GenerateDelContent( const ScAddress&, + const ScBaseCell*, + const ScDocument* pFromDoc ); + void DeleteGeneratedDelContent( + ScChangeActionContent* ); + void DeleteCellEntries( + ScChangeActionCellListEntry*&, + ScChangeAction* pDeletor ); + + // Action und alle abhaengigen rejecten, + // Table stammt aus vorherigem GetDependents, + // ist nur bei Insert und Move (MasterType) + // noetig, kann ansonsten NULL sein. + // bRecursion == Aufruf aus Reject mit Table + BOOL Reject( ScChangeAction*, + ScChangeActionTable*, BOOL bRecursion ); +#endif // SC_CHGTRACK_CXX + + void ClearMsgQueue(); + +public: + + static USHORT ComputeContentSlot( INT32 nRow ) + { + if ( nRow < 0 || nRow > MAXROW ) + return nContentSlots - 1; + return nRow / nContentRowsPerSlot; + } + + ScChangeTrack( ScDocument* ); + virtual ~ScChangeTrack(); + void Clear(); + + ScChangeAction* GetFirst() const { return pFirst; } + ScChangeAction* GetLast() const { return pLast; } + ULONG GetActionMax() const { return nActionMax; } + BOOL IsGenerated( ULONG nAction ) const + { return nAction >= nGeneratedMin; } + ScChangeAction* GetAction( ULONG nAction ) const + { return aTable.Get( nAction ); } + ScChangeAction* GetGenerated( ULONG nGenerated ) const + { return aGeneratedTable.Get( nGenerated ); } + ScChangeAction* GetActionOrGenerated( ULONG nAction ) const + { + return IsGenerated( nAction ) ? + GetGenerated( nAction ) : + GetAction( nAction ); + } + ULONG GetLastSavedActionNumber() const + { return nMarkLastSaved; } + ScChangeAction* GetLastSaved() const + { return aTable.Get( nMarkLastSaved ); } + ScChangeActionContent** GetContentSlots() const { return ppContentSlots; } + + BOOL IsLoadSave() const { return bLoadSave; } + const ScRange& GetInDeleteRange() const + { return aInDeleteRange; } + BOOL IsInDelete() const { return bInDelete; } + BOOL IsInDeleteTop() const { return bInDeleteTop; } + BOOL IsInDeleteUndo() const { return bInDeleteUndo; } + BOOL IsInPasteCut() const { return bInPasteCut; } + void SetUser( const String& ); + const String& GetUser() const { return aUser; } + const StrCollection& GetUserCollection() const + { return aUserCollection; } + ScDocument* GetDocument() const { return pDoc; } + + // fuer MergeDocument, Original-Datum uebernehmen + void SetFixDateTimeUTC( const DateTime& rDT ) + { aFixDateTime = rDT; } + void SetUseFixDateTime( BOOL bVal ) + { bUseFixDateTime = bVal; } + + void Append( ScChangeAction* ); + + void AppendDeleteRange( const ScRange&, + ScDocument* pRefDoc, + ULONG& nStartAction, ULONG& nEndAction, + short nDz = 0 ); + // nDz: Multi-TabDel, LookUpContent ist + // um -nDz verschoben zu suchen + + // nachdem neuer Wert im Dokument gesetzt wurde, + // alter Wert aus RefDoc/UndoDoc + void AppendContent( const ScAddress& rPos, + ScDocument* pRefDoc ); + // nachdem neue Werte im Dokument gesetzt wurden, + // alte Werte aus RefDoc/UndoDoc + void AppendContentRange( const ScRange& rRange, + ScDocument* pRefDoc, + ULONG& nStartAction, ULONG& nEndAction, + ScChangeActionClipMode eMode = SC_CACM_NONE ); + // nachdem neuer Wert im Dokument gesetzt wurde, + // alter Wert aus pOldCell, nOldFormat, + // RefDoc==NULL => Doc + void AppendContent( const ScAddress& rPos, + const ScBaseCell* pOldCell, + ULONG nOldFormat, ScDocument* pRefDoc = NULL ); + // nachdem neuer Wert im Dokument gesetzt wurde, + // alter Wert aus pOldCell, Format aus Doc + void AppendContent( const ScAddress& rPos, + const ScBaseCell* pOldCell ); + // nachdem neuer Wert im Dokument gesetzt wurde, + // alter Wert aus pOldCell, Format aus RefDoc + void AppendContent( const ScAddress& rPos, + const ScBaseCell* pOldCell, + ScDocument* pRefDoc ); + // nachdem neue Werte im Dokument gesetzt wurden, + // alte Werte aus RefDoc/UndoDoc. + // Alle Contents, wo im RefDoc eine Zelle steht. + void AppendContentsIfInRefDoc( ScDocument* pRefDoc, + ULONG& nStartAction, ULONG& nEndAction ); + + // die folgenden beiden nur benutzen wenn's + // nicht anders geht (setzen nur String fuer + // NewValue bzw. Formelerzeugung) + + // bevor neuer Wert im Dokument gesetzt wird + void AppendContent( const ScAddress& rPos, + const String& rNewValue ); + // bevor neuer Wert im Dokument gesetzt wird + void AppendContent( const ScAddress& rPos, + const String& rNewValue, + ScBaseCell* pOldCell ); + + void AppendInsert( const ScRange& ); + + void AppendMove( const ScRange& rFromRange, + const ScRange& rToRange, + ScDocument* pRefDoc ); + + // Cut to Clipboard + void ResetLastCut() + { + nStartLastCut = nEndLastCut = 0; + if ( pLastCutMove ) + { + delete pLastCutMove; + pLastCutMove = NULL; + } + } + BOOL HasLastCut() const + { + return nEndLastCut > 0 && + nStartLastCut <= nEndLastCut && + pLastCutMove; + } + + void Undo( ULONG nStartAction, ULONG nEndAction ); + + // fuer MergeDocument, Referenzen anpassen, + //! darf nur in einem temporaer geoeffneten + //! Dokument verwendet werden, der Track + //! ist danach verhunzt + void MergePrepare( ScChangeAction* pFirstMerge ); + void MergeOwn( ScChangeAction* pAct, ULONG nFirstMerge ); + static BOOL MergeIgnore( const ScChangeAction&, ULONG nFirstMerge ); + + // Abhaengige in Table einfuegen. + // Bei Insert sind es echte Abhaengige, + // bei Move abhaengige Contents im FromRange + // und geloeschte im ToRange bzw. Inserts in + // FromRange oder ToRange, + // bei Delete eine Liste der geloeschten, + // bei Content andere Contents an gleicher Pos. + // Mit bListMasterDelete werden unter einem + // MasterDelete alle zu diesem Delete gehoerenden + // Deletes einer Reihe gelistet. + // Mit bAllFlat werden auch alle Abhaengigen + // der Abhaengigen flach eingefuegt. + void GetDependents( ScChangeAction*, + ScChangeActionTable&, + BOOL bListMasterDelete = FALSE, + BOOL bAllFlat = FALSE ); + + // Reject visible Action (und abhaengige) + BOOL Reject( ScChangeAction* ); + + // Accept visible Action (und abhaengige) + BOOL Accept( ScChangeAction* ); + + void AcceptAll(); // alle Virgins + BOOL RejectAll(); // alle Virgins + + // Selektiert einen Content von mehreren an + // gleicher Position und akzeptiert diesen und + // die aelteren, rejected die neueren. + // Mit bOldest==TRUE wird der erste OldValue + // einer Virgin-Content-Kette restauriert. + BOOL SelectContent( ScChangeAction*, + BOOL bOldest = FALSE ); + + // wenn ModifiedLink gesetzt, landen + // Aenderungen in ScChangeTrackMsgQueue + void SetModifiedLink( const Link& r ) + { aModifiedLink = r; ClearMsgQueue(); } + const Link& GetModifiedLink() const { return aModifiedLink; } + ScChangeTrackMsgQueue& GetMsgQueue() { return aMsgQueue; } + + void NotifyModified( ScChangeTrackMsgType eMsgType, + ULONG nStartAction, ULONG nEndAction ); + + BOOL Load( SvStream& rStrm, USHORT nVer ); + BOOL Store( SvStream& rStrm ); + USHORT GetLoadedFileFormatVersion() const + { return nLoadedFileFormatVersion; } +}; + + +#endif + + diff --git a/sc/inc/chgviset.hxx b/sc/inc/chgviset.hxx new file mode 100644 index 000000000000..ecc3f0691d05 --- /dev/null +++ b/sc/inc/chgviset.hxx @@ -0,0 +1,179 @@ +/************************************************************************* + * + * $RCSfile: chgviset.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#ifndef SC_CHGVISET_HXX +#define SC_CHGVISET_HXX + +#ifndef _DATETIME_HXX //autogen +#include <tools/datetime.hxx> +#endif + +#ifndef _STRING_HXX //autogen +#include <tools/string.hxx> +#endif + +#ifndef SC_RANGELST_HXX +#include "rangelst.hxx" +#endif + +enum ScChgsDateMode{ SCDM_DATE_BEFORE=0,SCDM_DATE_SINCE=1,SCDM_DATE_EQUAL=2, + SCDM_DATE_NOTEQUAL=3,SCDM_DATE_BETWEEN=4, SCDM_DATE_SAVE=5, + SCDM_NO_DATEMODE=6}; + +class SearchText; + +class ScChangeViewSettings +{ +private: + + SearchText* pCommentSearcher; + DateTime aFirstDateTime; + DateTime aLastDateTime; + String aAuthorToShow; + String aComment; + ScRangeList aRangeList; + ScChgsDateMode eDateMode; + BOOL bShowIt; + BOOL bIsDate; + BOOL bIsAuthor; + BOOL bIsComment; + BOOL bIsRange; + BOOL bEveryoneButMe; + BOOL bShowAccepted; + BOOL bShowRejected; + +public: + + ScChangeViewSettings() + { + pCommentSearcher=NULL; + bIsDate=FALSE; + bIsAuthor=FALSE; + bIsRange=FALSE; + bIsComment=FALSE; + bShowIt=FALSE; + eDateMode=SCDM_DATE_BEFORE; + bEveryoneButMe=FALSE; + bShowAccepted=FALSE; + bShowRejected=FALSE; + } + + ScChangeViewSettings( const ScChangeViewSettings& r ); + + ~ScChangeViewSettings(); + + BOOL ShowChanges() const {return bShowIt;} + void SetShowChanges(BOOL nFlag=TRUE){bShowIt=nFlag;} + + BOOL HasDate() const {return bIsDate;} + void SetHasDate(BOOL nFlag=TRUE) {bIsDate=nFlag;} + + void SetTheDateMode(ScChgsDateMode eDatMod){ eDateMode=eDatMod; } + ScChgsDateMode GetTheDateMode() const { return eDateMode; } + + void SetTheFirstDateTime(const DateTime& aDateTime) {aFirstDateTime=aDateTime;} + const DateTime& GetTheFirstDateTime()const {return aFirstDateTime;} + + void SetTheLastDateTime(const DateTime& aDateTime) {aLastDateTime=aDateTime;} + const DateTime& GetTheLastDateTime()const {return aLastDateTime;} + + + BOOL HasAuthor() const {return bIsAuthor;} + void SetHasAuthor(BOOL nFlag=TRUE) {bIsAuthor=nFlag;} + + String GetTheAuthorToShow()const {return aAuthorToShow;} + void SetTheAuthorToShow(const String& aString){aAuthorToShow=aString;} + + BOOL HasComment() const {return bIsComment;} + void SetHasComment(BOOL nFlag=TRUE) {bIsComment=nFlag;} + + String GetTheComment()const {return aComment;} + void SetTheComment(const String& aString); + + BOOL IsValidComment(const String* pCommentStr) const; + + BOOL IsEveryoneButMe() const {return bEveryoneButMe;} + void SetEveryoneButMe(BOOL nFlag=TRUE) {bEveryoneButMe=nFlag;} + + + BOOL HasRange() const {return bIsRange;} + void SetHasRange(BOOL nFlag=TRUE) {bIsRange=nFlag;} + + const ScRangeList& GetTheRangeList()const {return aRangeList;} + void SetTheRangeList(const ScRangeList& aRl){aRangeList=aRl;} + + BOOL IsShowAccepted() const { return bShowAccepted; } + void SetShowAccepted( BOOL bVal ) { bShowAccepted = bVal; } + + BOOL IsShowRejected() const { return bShowRejected; } + void SetShowRejected( BOOL bVal ) { bShowRejected = bVal; } + + + void Load( SvStream& rStream, USHORT nVer ); + void Store( SvStream& rStream ) const; + + ScChangeViewSettings& operator= ( const ScChangeViewSettings& r ); + +}; + + + +#endif + diff --git a/sc/inc/collect.hxx b/sc/inc/collect.hxx new file mode 100644 index 000000000000..0d225cfae490 --- /dev/null +++ b/sc/inc/collect.hxx @@ -0,0 +1,241 @@ +/************************************************************************* + * + * $RCSfile: collect.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_COLLECT_HXX +#define SC_COLLECT_HXX + +#ifndef _STRING_HXX //autogen +#include <tools/string.hxx> +#endif + +#include <limits.h> + +#define MAXCOLLECTIONSIZE 16384 +#define MAXDELTA 1024 +#define SCPOS_INVALID USHRT_MAX + +#define SC_STRTYPE_VALUE 0 +#define SC_STRTYPE_STANDARD 1 + +class ScDocument; + +class DataObject +{ +public: + DataObject() {} + virtual ~DataObject(); + virtual DataObject* Clone() const = 0; +}; + +class Collection : public DataObject +{ +protected: + USHORT nCount; + USHORT nLimit; + USHORT nDelta; + DataObject** pItems; +public: + Collection(USHORT nLim = 4, USHORT nDel = 4); + Collection(const Collection& rCollection); + virtual ~Collection(); + + virtual DataObject* Clone() const; + + void AtFree(USHORT nIndex); + void Free(DataObject* pDataObject); + void FreeAll(); + + BOOL AtInsert(USHORT nIndex, DataObject* pDataObject); + virtual BOOL Insert(DataObject* pDataObject); + + DataObject* At(USHORT nIndex) const; + virtual USHORT IndexOf(DataObject* pDataObject) const; + USHORT GetCount() const { return nCount; } + + DataObject* operator[]( const USHORT nIndex) const {return At(nIndex);} + Collection& operator=( const Collection& rCol ); +}; + + +class SortedCollection : public Collection +{ +private: + BOOL bDuplicates; +protected: + // fuer StrCollection Load/Store + void SetDups( BOOL bVal ) { bDuplicates = bVal; } + BOOL IsDups() const { return bDuplicates; } +public: + SortedCollection(USHORT nLim = 4, USHORT nDel = 4, BOOL bDup = FALSE); + SortedCollection(const SortedCollection& rSortedCollection) : + Collection(rSortedCollection), + bDuplicates(rSortedCollection.bDuplicates) {} + + virtual USHORT IndexOf(DataObject* pDataObject) const; + virtual short Compare(DataObject* pKey1, DataObject* pKey2) const = 0; + virtual BOOL IsEqual(DataObject* pKey1, DataObject* pKey2) const; + BOOL Search(DataObject* pDataObject, USHORT& rIndex) const; + virtual BOOL Insert(DataObject* pDataObject); + virtual BOOL InsertPos(DataObject* pDataObject, USHORT& nIndex); + + BOOL operator==(const SortedCollection& rCmp) const; +}; + + + +//------------------------------------------------------------------------ +class StrData : public DataObject +{ +friend class StrCollection; + String aStr; +public: + StrData(const String& rStr) : aStr(rStr) {} + StrData(const StrData& rData) :aStr(rData.aStr) {} + virtual DataObject* Clone() const; + const String& GetString() const { return aStr; } + // SetString nur, wenn StrData nicht in StrCollection ist! !!! + // z.B. fuer Searcher + void SetString( const String& rNew ) { aStr = rNew; } +}; + +//------------------------------------------------------------------------ + +class SvStream; + +class StrCollection : public SortedCollection +{ +public: + StrCollection(USHORT nLim = 4, USHORT nDel = 4, BOOL bDup = FALSE) : + SortedCollection ( nLim, nDel, bDup ) {} + StrCollection(const StrCollection& rStrCollection) : + SortedCollection ( rStrCollection ) {} + + virtual DataObject* Clone() const; + StrData* operator[]( const USHORT nIndex) const {return (StrData*)At(nIndex);} + virtual short Compare(DataObject* pKey1, DataObject* pKey2) const; + + void Load( SvStream& ); + void Store( SvStream& ) const; +}; + +//------------------------------------------------------------------------ +// TypedStrCollection: wie StrCollection, nur, dass Zahlen vor Strings +// sortiert werden + +class TypedStrData : public DataObject +{ +public: + TypedStrData( const String& rStr, double nVal = 0.0, + USHORT nType = SC_STRTYPE_STANDARD ) + : aStrValue(rStr), + nValue(nVal), + nStrType(nType) {} + + TypedStrData( ScDocument* pDoc, USHORT nCol, USHORT nRow, USHORT nTab, + BOOL bAllStrings ); + + TypedStrData( const TypedStrData& rCpy ) + : aStrValue(rCpy.aStrValue), + nValue(rCpy.nValue), + nStrType(rCpy.nStrType) {} + + virtual DataObject* Clone() const; + + BOOL IsStrData() const { return nStrType != 0; } + const String& GetString() const { return aStrValue; } + double GetValue () const { return nValue; } + +private: + friend class TypedStrCollection; + friend class PivotStrCollection; + + String aStrValue; + double nValue; + USHORT nStrType; // 0 = Value +}; + +class TypedStrCollection : public SortedCollection +{ +private: + BOOL bCaseSensitive; + +public: + TypedStrCollection( USHORT nLim = 4, USHORT nDel = 4, BOOL bDup = FALSE ) + : SortedCollection( nLim, nDel, bDup ) { bCaseSensitive = FALSE; } + + TypedStrCollection( const TypedStrCollection& rCpy ) + : SortedCollection( rCpy ) { bCaseSensitive = rCpy.bCaseSensitive; } + + virtual DataObject* Clone() const; + virtual short Compare( DataObject* pKey1, DataObject* pKey2 ) const; + + TypedStrData* operator[]( const USHORT nIndex) const + { return (TypedStrData*)At(nIndex); } + + void SetCaseSensitive( BOOL bSet ) { bCaseSensitive = bSet; } + + BOOL FindText( const String& rStart, String& rResult, USHORT& rPos, BOOL bBack ) const; + BOOL GetExactMatch( String& rString ) const; +}; + +#endif + + diff --git a/sc/inc/column.hxx b/sc/inc/column.hxx new file mode 100644 index 000000000000..db3248695ba8 --- /dev/null +++ b/sc/inc/column.hxx @@ -0,0 +1,474 @@ +/************************************************************************* + * + * $RCSfile: column.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_COLUMN_HXX +#define SC_COLUMN_HXX + +#ifndef SC_MARKARR_HXX +#include "markarr.hxx" +#endif + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" +#endif + +class Fraction; +class OutputDevice; +class Rectangle; +class SfxBroadcaster; +class SfxItemPoolCache; +class SfxItemSet; +class SfxListener; +class SfxPoolItem; +class SfxStyleSheetBase; +class SvxBorderLine; +class SvxBoxInfoItem; +class SvxBoxItem; + +class ScAttrIterator; +class ScAttrArray; +class ScBaseCell; +class ScDocument; +class ScFormulaCell; +class ScMarkData; +class ScMultipleReadHeader; +class ScMultipleWriteHeader; +class ScPatternAttr; +class ScStyleSheet; +class ScBroadcasterList; +class TypedStrCollection; +struct ScFunctionData; +struct ScLineFlags; + + +#define COLUMN_DELTA 4 + + +struct ScNeededSizeOptions +{ + const ScPatternAttr* pPattern; + BOOL bFormula; + BOOL bSkipMerged; + BOOL bGetFont; + BOOL bTotalSize; + + ScNeededSizeOptions() + { + pPattern = NULL; + bFormula = FALSE; + bSkipMerged = TRUE; + bGetFont = TRUE; + bTotalSize = FALSE; + } +}; + +struct ColEntry +{ + USHORT nRow; + ScBaseCell* pCell; +}; + + +class ScIndexMap; + +class ScColumn +{ +private: + USHORT nCol; + USHORT nTab; + + USHORT nCount; + USHORT nLimit; + ColEntry* pItems; + + ScAttrArray* pAttrArray; + ScDocument* pDocument; + +friend class ScDocument; // fuer FillInfo +friend class ScDocumentIterator; +friend class ScValueIterator; +friend class ScQueryValueIterator; +friend class ScColumnIterator; +friend class ScQueryCellIterator; +friend class ScMarkedDataIter; +friend class ScCellIterator; +friend class ScHorizontalCellIterator; +friend class ScHorizontalAttrIterator; + +public: +static BOOL bDoubleAlloc; // fuer Import: Groesse beim Allozieren verdoppeln + +public: + ScColumn(); + ~ScColumn(); + + void Init(USHORT nNewCol, USHORT nNewTab, ScDocument* pDoc); + + BOOL Search( USHORT nRow, USHORT& nIndex ) const; + ScBaseCell* GetCell( USHORT nRow ) const; + void Insert( USHORT nRow, ScBaseCell* pCell ); + void Insert( USHORT nRow, ULONG nFormatIndex, ScBaseCell* pCell ); + void Append( USHORT nRow, ScBaseCell* pCell ); + void Delete( USHORT nRow ); + void DeleteAtIndex( USHORT nIndex ); + void FreeAll(); + void Resize( USHORT nSize ); + void SetNewRow( USHORT nRow1, USHORT nRow2 ); + void SwapRow( USHORT nRow1, USHORT nRow2 ); + void SwapCell( USHORT nRow, ScColumn& rCol); + + BOOL HasLines( USHORT nRow1, USHORT nRow2, Rectangle& rSizes, + BOOL bLeft, BOOL bRight ) const; + BOOL HasAttrib( USHORT nRow1, USHORT nRow2, USHORT nMask ) const; + BOOL HasAttribSelection( const ScMarkData& rMark, USHORT nMask ) const; + BOOL ExtendMerge( USHORT nThisCol, USHORT nStartRow, USHORT nEndRow, + USHORT& rPaintCol, USHORT& rPaintRow, + BOOL bRefresh, BOOL bAttrs ); + + BOOL IsEmptyVisData(BOOL bNotes) const; // ohne Broadcaster + BOOL IsEmptyData() const; + BOOL IsEmptyAttr() const; + BOOL IsEmpty() const; + + // nur Daten: + BOOL IsEmptyBlock(USHORT nStartRow, USHORT nEndRow) const; + USHORT GetEmptyLinesInBlock( USHORT nStartRow, USHORT nEndRow, ScDirection eDir ) const; + BOOL HasDataAt(USHORT nRow) const; + BOOL HasVisibleDataAt(USHORT nRow) const; + USHORT GetFirstDataPos() const; + USHORT GetLastDataPos() const; + USHORT GetLastVisDataPos(BOOL bNotes) const; // ohne Broadcaster + USHORT GetFirstVisDataPos(BOOL bNotes) const; + BOOL GetPrevDataPos(USHORT& rRow) const; + BOOL GetNextDataPos(USHORT& rRow) const; + void FindDataAreaPos(USHORT& rRow, short nMovY) const; // (ohne Broadcaster) + void FindUsed( USHORT nStartRow, USHORT nEndRow, BOOL* pUsed ) const; + + USHORT VisibleCount( USHORT nStartRow, USHORT nEndRow ) const; + + USHORT GetBlockMatrixEdges( USHORT nRow1, USHORT nRow2, USHORT nMask ) const; + BOOL HasSelectionMatrixFragment(const ScMarkData& rMark) const; + + // Daten oder Attribute: + USHORT GetFirstEntryPos() const; + USHORT GetLastEntryPos() const; + + // nur Attribute: + USHORT GetLastAttrPos() const; + BOOL HasVisibleAttr( USHORT& rFirstRow, USHORT& rLastRow, BOOL bSkipFirst ) const; + BOOL HasVisibleAttrIn( USHORT nStartRow, USHORT nEndRow ) const; + BOOL IsVisibleAttrEqual( const ScColumn& rCol, USHORT nStartRow = 0, + USHORT nEndRow = MAXROW ) const; + BOOL IsAllAttrEqual( const ScColumn& rCol, USHORT nStartRow, USHORT nEndRow ) const; + + BOOL TestInsertCol( USHORT nStartRow, USHORT nEndRow) const; + BOOL TestInsertRow( USHORT nSize ) const; + void InsertRow( USHORT nStartRow, USHORT nSize ); + void DeleteRow( USHORT nStartRow, USHORT nSize ); + void DeleteRange( USHORT nStartIndex, USHORT nEndIndex, USHORT nDelFlag ); + void DeleteArea(USHORT nStartRow, USHORT nEndRow, USHORT nDelFlag ); + void CopyToClip(USHORT nRow1, USHORT nRow2, ScColumn& rColumn, BOOL bKeepScenarioFlags); + void CopyFromClip(USHORT nRow1, USHORT nRow2, short nDy, + USHORT nInsFlag, BOOL bAsLink, ScColumn& rColumn); + void StartListeningInArea( USHORT nRow1, USHORT nRow2 ); + void BroadcastInArea( USHORT nRow1, USHORT nRow2 ); + + void RemoveEditAttribs( USHORT nStartRow, USHORT nEndRow ); + + // Markierung von diesem Dokument + void MixMarked( const ScMarkData& rMark, USHORT nFunction, + BOOL bSkipEmpty, ScColumn& rSrcCol ); + void MixData( USHORT nRow1, USHORT nRow2, USHORT nFunction, BOOL bSkipEmpty, + ScColumn& rSrcCol ); + + ScFormulaCell* CreateRefCell( ScDocument* pDestDoc, const ScAddress& rDestPos, + USHORT nIndex, USHORT nFlags ) const; + + ScAttrIterator* CreateAttrIterator( USHORT nStartRow, USHORT nEndRow ) const; + + USHORT GetCol() const { return nCol; } + + // UpdateSelectionFunction: Mehrfachselektion + void UpdateSelectionFunction( const ScMarkData& rMark, + ScFunctionData& rData, const BYTE* pRowFlags, + BOOL bDoExclude, USHORT nExStartRow, USHORT nExEndRow ); + void UpdateAreaFunction( ScFunctionData& rData, BYTE* pRowFlags, + USHORT nStartRow, USHORT nEndRow ); + + void CopyToColumn(USHORT nRow1, USHORT nRow2, USHORT nFlags, BOOL bMarked, + ScColumn& rColumn, const ScMarkData* pMarkData = NULL, + BOOL bAsLink = FALSE ); + void UndoToColumn(USHORT nRow1, USHORT nRow2, USHORT nFlags, BOOL bMarked, + ScColumn& rColumn, const ScMarkData* pMarkData = NULL ); + + void CopyScenarioFrom( const ScColumn& rSrcCol ); + void CopyScenarioTo( ScColumn& rDestCol ) const; + BOOL TestCopyScenarioTo( const ScColumn& rDestCol ) const; + void MarkScenarioIn( ScMarkData& rDestMark ) const; + + void CopyUpdated( const ScColumn& rPosCol, ScColumn& rDestCol ) const; + + void SwapCol(ScColumn& rCol); + void MoveTo(USHORT nStartRow, USHORT nEndRow, ScColumn& rCol); + + BOOL HasEditCells(USHORT nStartRow, USHORT nEndRow, USHORT& rFirst) const; + + // TRUE = Zahlformat gesetzt + BOOL SetString( USHORT nRow, USHORT nTab, const String& rString ); + void SetValue( USHORT nRow, const double& rVal); + void SetNote( USHORT nRow, const ScPostIt& rNote ); + void SetError( USHORT nRow, const USHORT nError); + + void GetString( USHORT nRow, String& rString ) const; + void GetInputString( USHORT nRow, String& rString ) const; + double GetValue( USHORT nRow ) const; + void GetFormula( USHORT nRow, String& rFormula, + BOOL bAsciiExport = FALSE ) const; + BOOL GetNote( USHORT nRow, ScPostIt& rNote ) const; + CellType GetCellType( USHORT nRow ) const; + USHORT GetCellCount() const { return nCount; } + long GetWeightedCount() const; + ULONG GetCodeCount() const; // RPN-Code in Formeln + USHORT GetErrCode( USHORT nRow ) const; + + BOOL HasStringData( USHORT nRow ) const; + BOOL HasValueData( USHORT nRow ) const; + USHORT GetErrorData(USHORT nCol) const; + BOOL HasStringCells( USHORT nStartRow, USHORT nEndRow ) const; + + void SetDirty(); + void SetDirty( const ScRange& ); + void SetDirtyVar(); + void SetDirtyAfterLoad(); + void CalcAll(); + void CalcAfterLoad(); + void CompileAll(); + void CompileXML(); + + void ResetChanged( USHORT nStartRow, USHORT nEndRow ); + + void UpdateReference( UpdateRefMode eUpdateRefMode, USHORT nCol1, USHORT nRow1, USHORT nTab1, + USHORT nCol2, USHORT nRow2, USHORT nTab2, + short nDx, short nDy, short nDz, + ScDocument* pUndoDoc = NULL ); + void UpdateInsertTab( USHORT nTable); + void UpdateInsertTabOnlyCells( USHORT nTable); + void UpdateDeleteTab( USHORT nTable, BOOL bIsMove, ScColumn* pRefUndo = NULL ); + void UpdateMoveTab(USHORT nOldPos, USHORT nNewPos, USHORT nTabNo); + void UpdateCompile( BOOL bForceIfNameInUse = FALSE ); + void UpdateTranspose( const ScRange& rSource, const ScAddress& rDest, + ScDocument* pUndoDoc ); + void UpdateGrow( const ScRange& rArea, USHORT nGrowX, USHORT nGrowY ); + + void SetTabNo(USHORT nNewTab); + BOOL IsRangeNameInUse(USHORT nRow1, USHORT nRow2, USHORT nIndex) const; + void ReplaceRangeNamesInUse( USHORT nRow1, USHORT nRow2, const ScIndexMap& rMap ); + + const SfxPoolItem* GetAttr( USHORT nRow, USHORT nWhich ) const; + const ScPatternAttr* GetPattern( USHORT nRow ) const; + ULONG GetNumberFormat( USHORT nRow ) const; + + void MergeSelectionPattern( SfxItemSet** ppSet, const ScMarkData& rMark, BOOL bDeep ) const; + void MergePatternArea( SfxItemSet** ppSet, USHORT nRow1, USHORT nRow2, BOOL bDeep ) const; + void MergeBlockFrame( SvxBoxItem* pLineOuter, SvxBoxInfoItem* pLineInner, + ScLineFlags& rFlags, + USHORT nStartRow, USHORT nEndRow, BOOL bLeft, USHORT nDistRight ) const; + void ApplyBlockFrame( const SvxBoxItem* pLineOuter, const SvxBoxInfoItem* pLineInner, + USHORT nStartRow, USHORT nEndRow, BOOL bLeft, USHORT nDistRight ); + + void ApplyAttr( USHORT nRow, const SfxPoolItem& rAttr ); + void ApplyPattern( USHORT nRow, const ScPatternAttr& rPatAttr ); + void ApplyPatternArea( USHORT nStartRow, USHORT nEndRow, const ScPatternAttr& rPatAttr ); + void SetPattern( USHORT nRow, const ScPatternAttr& rPatAttr, BOOL bPutToPool = FALSE ); + void SetPatternArea( USHORT nStartRow, USHORT nEndRow, + const ScPatternAttr& rPatAttr, BOOL bPutToPool = FALSE ); + void ApplyPatternIfNumberformatIncompatible( const ScRange& rRange, + const ScPatternAttr& rPattern, short nNewType ); + + void ApplyStyle( USHORT nRow, const ScStyleSheet& rStyle ); + void ApplyStyleArea( USHORT nStartRow, USHORT nEndRow, const ScStyleSheet& rStyle ); + void ApplySelectionStyle(const ScStyleSheet& rStyle, const ScMarkData& rMark); + void ApplySelectionLineStyle( const ScMarkData& rMark, + const SvxBorderLine* pLine, BOOL bColorOnly ); + + const ScStyleSheet* GetStyle( USHORT nRow ) const; + const ScStyleSheet* GetSelectionStyle( const ScMarkData& rMark, BOOL& rFound ) const; + const ScStyleSheet* GetAreaStyle( BOOL& rFound, USHORT nRow1, USHORT nRow2 ) const; + + void FindStyleSheet( const SfxStyleSheetBase* pStyleSheet, BOOL* pUsed, BOOL bReset ); + BOOL IsStyleSheetUsed( const SfxStyleSheetBase& rStyle ) const; + + short SearchStyle( short nRow, const ScStyleSheet* pSearchStyle, + BOOL bUp, BOOL bInSelection, const ScMarkData& rMark ); + BOOL SearchStyleRange( short& rRow, short& rEndRow, const ScStyleSheet* pSearchStyle, + BOOL bUp, BOOL bInSelection, const ScMarkData& rMark ); + + BOOL ApplyFlags( USHORT nStartRow, USHORT nEndRow, INT16 nFlags ); + BOOL RemoveFlags( USHORT nStartRow, USHORT nEndRow, INT16 nFlags ); + + void RemoveProtected( USHORT nStartRow, USHORT nEndRow ); + + short ApplySelectionCache( SfxItemPoolCache* pCache, const ScMarkData& rMark ); + void DeleteSelection( USHORT nDelFlag, const ScMarkData& rMark ); + + void ClearSelectionItems( const USHORT* pWhich, const ScMarkData& rMark ); + void ChangeSelectionIndent( BOOL bIncrement, const ScMarkData& rMark ); + + long GetNeededSize( USHORT nRow, OutputDevice* pDev, + double nPPTX, double nPPTY, + const Fraction& rZoomX, const Fraction& rZoomY, + BOOL bWidth, const ScNeededSizeOptions& rOptions ); + USHORT GetOptimalColWidth( OutputDevice* pDev, double nPPTX, double nPPTY, + const Fraction& rZoomX, const Fraction& rZoomY, + BOOL bFormula, USHORT nOldWidth, + const ScMarkData* pMarkData, + BOOL bSimpleTextImport ); + void GetOptimalHeight( USHORT nStartRow, USHORT nEndRow, USHORT* pHeight, + OutputDevice* pDev, + double nPPTX, double nPPTY, + const Fraction& rZoomX, const Fraction& rZoomY, + BOOL bShrink, USHORT nMinHeight, USHORT nMinStart ); +private: + long GetSimpleTextNeededSize( USHORT nIndex, OutputDevice* pDev, + BOOL bWidth ); +public: + + short GetNextUnprotected( short nRow, BOOL bUp ) const; // inkl. aktuelle + + void GetFilterEntries(USHORT nStartRow, USHORT nEndRow, TypedStrCollection& rStrings); + BOOL GetDataEntries(USHORT nRow, TypedStrCollection& rStrings, BOOL bLimit); + + USHORT NoteCount( USHORT nMaxRow = MAXROW ) const; + + void LoadData( SvStream& rStream ); + void SaveData( SvStream& rStream ) const; + + void LoadNotes( SvStream& rStream ); + void SaveNotes( SvStream& rStream ) const; + + BOOL Load( SvStream& rStream, ScMultipleReadHeader& rHdr ); + BOOL Save( SvStream& rStream, ScMultipleWriteHeader& rHdr ) const; + void UpdateInsertTabAbs(USHORT nNewPos); + BOOL TestTabRefAbs(USHORT nTable); + BOOL GetNextSpellingCell(USHORT& nRow, BOOL bInSel, const ScMarkData& rData) const; + + void RemoveAutoSpellObj(); + + void StartListening( SfxListener& rLst, USHORT nRow ); + void EndListening( SfxListener& rLst, USHORT nRow ); + void MoveListeners( ScBroadcasterList& rSource, USHORT nDestRow ); + void StartAllListeners(); + void StartRelNameListeners(); + void SetRelNameDirty(); + + void CompileDBFormula(); + void CompileDBFormula( BOOL bCreateFormulaString ); + void CompileNameFormula( BOOL bCreateFormulaString ); + void CompileColRowNameFormula(); + + // maximale Stringlaengen einer Column, fuer z.B. dBase Export + xub_StrLen GetMaxStringLen( USHORT nRowStart, USHORT nRowEnd ) const; + xub_StrLen GetMaxNumberStringLen( USHORT& nPrecision, + USHORT nRowStart, USHORT nRowEnd ) const; + +private: + ScBaseCell* CloneCell(USHORT nIndex, USHORT nFlags, + ScDocument* pDestDoc, const ScAddress& rDestPos); +}; + + +class ScColumnIterator // alle Daten eines Bereichs durchgehen +{ + const ScColumn* pColumn; + USHORT nPos; + USHORT nTop; + USHORT nBottom; +public: + ScColumnIterator( const ScColumn* pCol, USHORT nStart=0, USHORT nEnd=MAXROW ); + ~ScColumnIterator(); + + BOOL Next( USHORT& rRow, ScBaseCell*& rpCell ); + USHORT GetIndex() const; +}; + + +class ScMarkedDataIter // Daten in selektierten Bereichen durchgehen +{ + const ScColumn* pColumn; + USHORT nPos; + ScMarkArrayIter* pMarkIter; + USHORT nTop; + USHORT nBottom; + BOOL bNext; + BOOL bAll; + +public: + ScMarkedDataIter( const ScColumn* pCol, const ScMarkData* pMarkData, + BOOL bAllIfNone = FALSE ); + ~ScMarkedDataIter(); + + BOOL Next( USHORT& rIndex ); +}; + + +#endif + + diff --git a/sc/inc/compiler.hrc b/sc/inc/compiler.hrc new file mode 100644 index 000000000000..e895a11f7e06 --- /dev/null +++ b/sc/inc/compiler.hrc @@ -0,0 +1,401 @@ +/************************************************************************* + * + * $RCSfile: compiler.hrc,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_COMPILER_HRC +#define SC_COMPILER_HRC + +/* zentrale Definition der OpCodes fuer StarCalc-Funktionen */ +/* rj 15.07.96 */ + +/*** Spezielle Kommandos ***/ +#define SC_OPCODE_PUSH 0 /* interne Kommandos */ +#define SC_OPCODE_JUMP 1 +#define SC_OPCODE_STOP 2 +#define SC_OPCODE_EXTERNAL 3 +#define SC_OPCODE_NAME 4 +#define SC_OPCODE_IF 5 /* Sprung Kommandos */ +#define SC_OPCODE_CHOSE 6 +#define SC_OPCODE_OPEN 7 /* Klammern und Seps */ +#define SC_OPCODE_CLOSE 8 +#define SC_OPCODE_SEP 9 +#define SC_OPCODE_MISSING 10 /* Spezial-Opcodes */ +#define SC_OPCODE_BAD 11 +#define SC_OPCODE_SPACES 12 +#define SC_OPCODE_MAT_REF 13 +#define SC_OPCODE_DB_AREA 14 /* weitere Zugriffs-Operanden */ +#define SC_OPCODE_MACRO 15 +#define SC_OPCODE_COL_ROW_NAME 16 +#define SC_OPCODE_COL_ROW_NAME_AUTO 17 +#define SC_OPCODE_END_DIV 20 + +/*** Binaere Operatoren ***/ +#define SC_OPCODE_ADD 21 +#define SC_OPCODE_SUB 22 +#define SC_OPCODE_MUL 23 +#define SC_OPCODE_DIV 24 +#define SC_OPCODE_AMPERSAND 25 +#define SC_OPCODE_POW 26 +#define SC_OPCODE_EQUAL 27 +#define SC_OPCODE_NOT_EQUAL 28 +#define SC_OPCODE_LESS 29 +#define SC_OPCODE_GREATER 30 +#define SC_OPCODE_LESS_EQUAL 31 +#define SC_OPCODE_GREATER_EQUAL 32 +#define SC_OPCODE_AND 33 +#define SC_OPCODE_OR 34 +#define SC_OPCODE_INTERSECT 35 +#define SC_OPCODE_UNION 36 +#define SC_OPCODE_RANGE 37 +#define SC_OPCODE_END_BIN_OP 40 + +/*** Unaere Operatoren ***/ +#define SC_OPCODE_NOT 41 +#define SC_OPCODE_NEG 42 +#define SC_OPCODE_NEG_SUB 43 +#define SC_OPCODE_END_UN_OP 45 + +/*** Funktionen ohne Parameter ***/ +#define SC_OPCODE_PI 46 +#define SC_OPCODE_RANDOM 47 +#define SC_OPCODE_TRUE 48 +#define SC_OPCODE_FALSE 49 +#define SC_OPCODE_GET_ACT_DATE 50 +#define SC_OPCODE_GET_ACT_TIME 51 +#define SC_OPCODE_NO_VALUE 52 +#define SC_OPCODE_CURRENT 53 +#define SC_OPCODE_END_NO_PAR 60 + +/*** Funktionen mit einem Parameter ***/ +#define SC_OPCODE_DEG 61 /* Trigonometrie */ +#define SC_OPCODE_RAD 62 +#define SC_OPCODE_SIN 63 +#define SC_OPCODE_COS 64 +#define SC_OPCODE_TAN 65 +#define SC_OPCODE_COT 66 +#define SC_OPCODE_ARC_SIN 67 +#define SC_OPCODE_ARC_COS 68 +#define SC_OPCODE_ARC_TAN 69 +#define SC_OPCODE_ARC_COT 70 +#define SC_OPCODE_SIN_HYP 71 +#define SC_OPCODE_COS_HYP 72 +#define SC_OPCODE_TAN_HYP 73 +#define SC_OPCODE_COT_HYP 74 +#define SC_OPCODE_ARC_SIN_HYP 75 /* transzendente */ +#define SC_OPCODE_ARC_COS_HYP 76 +#define SC_OPCODE_ARC_TAN_HYP 77 +#define SC_OPCODE_ARC_COT_HYP 78 +#define SC_OPCODE_EXP 79 +#define SC_OPCODE_LN 80 +#define SC_OPCODE_SQRT 81 +#define SC_OPCODE_FACT 82 +#define SC_OPCODE_GET_YEAR 83 /* Datum und Uhrzeit */ +#define SC_OPCODE_GET_MONTH 84 +#define SC_OPCODE_GET_DAY 85 +#define SC_OPCODE_GET_HOUR 86 +#define SC_OPCODE_GET_MIN 87 +#define SC_OPCODE_GET_SEC 88 +#define SC_OPCODE_PLUS_MINUS 89 /* diverse */ +#define SC_OPCODE_ABS 90 +#define SC_OPCODE_INT 91 +#define SC_OPCODE_PHI 92 +#define SC_OPCODE_GAUSS 93 +#define SC_OPCODE_IS_EMPTY 94 /* Feldtyp abfragen */ +#define SC_OPCODE_IS_STRING 95 +#define SC_OPCODE_IS_NON_STRING 96 +#define SC_OPCODE_IS_LOGICAL 97 +#define SC_OPCODE_TYPE 98 +#define SC_OPCODE_IS_REF 99 +#define SC_OPCODE_IS_VALUE 100 +#define SC_OPCODE_IS_FORMULA 101 +#define SC_OPCODE_IS_NV 102 +#define SC_OPCODE_IS_ERR 103 +#define SC_OPCODE_IS_ERROR 104 +#define SC_OPCODE_IS_EVEN 105 +#define SC_OPCODE_IS_ODD 106 +#define SC_OPCODE_N 107 +#define SC_OPCODE_GET_DATE_VALUE 108 /* String-Funktionen */ +#define SC_OPCODE_GET_TIME_VALUE 109 +#define SC_OPCODE_CODE 110 +#define SC_OPCODE_TRIM 111 +#define SC_OPCODE_UPPER 112 +#define SC_OPCODE_PROPPER 113 +#define SC_OPCODE_LOWER 114 +#define SC_OPCODE_LEN 115 +#define SC_OPCODE_T 116 /* diverse, Teil 2 */ +#define SC_OPCODE_VALUE 117 +#define SC_OPCODE_CLEAN 118 +#define SC_OPCODE_CHAR 119 +#define SC_OPCODE_LOG10 120 +#define SC_OPCODE_EVEN 121 +#define SC_OPCODE_ODD 122 +#define SC_OPCODE_STD_NORM_DIST 123 +#define SC_OPCODE_FISHER 124 +#define SC_OPCODE_FISHER_INV 125 +#define SC_OPCODE_S_NORM_INV 126 +#define SC_OPCODE_GAMMA_LN 127 +#define SC_OPCODE_ERROR_TYPE 128 +#define SC_OPCODE_ERR_CELL 129 +#define SC_OPCODE_FORMULA 130 +#define SC_OPCODE_END_1_PAR 200 + +/*** Funktionen mit mehreren Parametern ***/ +#define SC_OPCODE_ARC_TAN_2 201 +#define SC_OPCODE_CEIL 202 +#define SC_OPCODE_FLOOR 203 +#define SC_OPCODE_ROUND 204 +#define SC_OPCODE_ROUND_UP 205 +#define SC_OPCODE_ROUND_DOWN 206 +#define SC_OPCODE_TRUNC 207 +#define SC_OPCODE_LOG 208 +#define SC_OPCODE_POWER 209 +#define SC_OPCODE_GGT 210 +#define SC_OPCODE_KGV 211 +#define SC_OPCODE_MOD 212 +#define SC_OPCODE_SUM_PRODUCT 213 +#define SC_OPCODE_SUM_SQ 214 +#define SC_OPCODE_SUM_X2MY2 215 +#define SC_OPCODE_SUM_X2DY2 216 +#define SC_OPCODE_SUM_XMY2 217 +#define SC_OPCODE_GET_DATE 218 +#define SC_OPCODE_GET_TIME 219 +#define SC_OPCODE_GET_DIFF_DATE 220 +#define SC_OPCODE_GET_DIFF_DATE_360 221 +#define SC_OPCODE_MIN 222 +#define SC_OPCODE_MAX 223 +#define SC_OPCODE_SUM 224 +#define SC_OPCODE_PRODUCT 225 +#define SC_OPCODE_AVERAGE 226 +#define SC_OPCODE_COUNT 227 +#define SC_OPCODE_COUNT_2 228 +#define SC_OPCODE_NBW 229 +#define SC_OPCODE_IKV 230 +#define SC_OPCODE_VAR 231 +#define SC_OPCODE_VAR_P 232 +#define SC_OPCODE_ST_DEV 233 +#define SC_OPCODE_ST_DEV_P 234 +#define SC_OPCODE_B 235 +#define SC_OPCODE_NORM_DIST 236 +#define SC_OPCODE_EXP_DIST 237 +#define SC_OPCODE_BINOM_DIST 238 +#define SC_OPCODE_POISSON_DIST 239 +#define SC_OPCODE_KOMBIN 240 +#define SC_OPCODE_KOMBIN_2 241 +#define SC_OPCODE_VARIATIONEN 242 +#define SC_OPCODE_VARIATIONEN_2 243 +#define SC_OPCODE_BW 244 +#define SC_OPCODE_DIA 245 +#define SC_OPCODE_GDA 246 +#define SC_OPCODE_GDA_2 247 +#define SC_OPCODE_VBD 248 +#define SC_OPCODE_LAUFZ 249 +#define SC_OPCODE_LIA 250 +#define SC_OPCODE_RMZ 251 +#define SC_OPCODE_COLUMNS 252 +#define SC_OPCODE_ROWS 253 +#define SC_OPCODE_COLUMN 254 +#define SC_OPCODE_ROW 255 +#define SC_OPCODE_ZGZ 256 +#define SC_OPCODE_ZW 257 +#define SC_OPCODE_ZZR 258 +#define SC_OPCODE_ZINS 259 +#define SC_OPCODE_ZINS_Z 260 +#define SC_OPCODE_KAPZ 261 +#define SC_OPCODE_KUM_ZINS_Z 262 +#define SC_OPCODE_KUM_KAP_Z 263 +#define SC_OPCODE_EFFEKTIV 264 +#define SC_OPCODE_NOMINAL 265 +#define SC_OPCODE_SUB_TOTAL 266 /* Spezialfunktion fr Teilergebnisse */ +#define SC_OPCODE_DB_SUM 267 /* Datenbankfunktionen */ +#define SC_OPCODE_DB_COUNT 268 +#define SC_OPCODE_DB_COUNT_2 269 +#define SC_OPCODE_DB_AVERAGE 270 +#define SC_OPCODE_DB_GET 271 +#define SC_OPCODE_DB_MAX 272 +#define SC_OPCODE_DB_MIN 273 +#define SC_OPCODE_DB_PRODUCT 274 +#define SC_OPCODE_DB_STD_DEV 275 +#define SC_OPCODE_DB_STD_DEV_P 276 +#define SC_OPCODE_DB_VAR 277 +#define SC_OPCODE_DB_VAR_P 278 +#define SC_OPCODE_INDIRECT 279 /* Verwaltungsfunktionen */ +#define SC_OPCODE_ADRESS 280 +#define SC_OPCODE_MATCH 281 +#define SC_OPCODE_COUNT_EMPTY_CELLS 282 +#define SC_OPCODE_COUNT_IF 283 +#define SC_OPCODE_SUM_IF 284 +#define SC_OPCODE_LOOKUP 285 +#define SC_OPCODE_V_LOOKUP 286 +#define SC_OPCODE_H_LOOKUP 287 +#define SC_OPCODE_MULTI_AREA 288 +#define SC_OPCODE_OFFSET 289 +#define SC_OPCODE_INDEX 290 +#define SC_OPCODE_AREAS 291 +#define SC_OPCODE_CURRENCY 292 /* String-Funktionen */ +#define SC_OPCODE_REPLACE 293 +#define SC_OPCODE_FIXED 294 +#define SC_OPCODE_FIND 295 +#define SC_OPCODE_EXACT 296 +#define SC_OPCODE_LEFT 297 +#define SC_OPCODE_RIGHT 298 +#define SC_OPCODE_SEARCH 299 +#define SC_OPCODE_MID 300 +#define SC_OPCODE_TEXT 301 +#define SC_OPCODE_SUBSTITUTE 302 +#define SC_OPCODE_REPT 303 +#define SC_OPCODE_CONCAT 304 +#define SC_OPCODE_MAT_VALUE 305 /* Matrix-Funktionen */ +#define SC_OPCODE_MAT_DET 306 +#define SC_OPCODE_MAT_INV 307 +#define SC_OPCODE_MAT_MULT 308 +#define SC_OPCODE_MAT_TRANS 309 +#define SC_OPCODE_MATRIX_UNIT 310 +#define SC_OPCODE_BACK_SOLVER 311 /* BackSolver */ +#define SC_OPCODE_HYP_GEOM_DIST 312 /* Statistik-Funktionen */ +#define SC_OPCODE_LOG_NORM_DIST 313 +#define SC_OPCODE_T_DIST 314 +#define SC_OPCODE_F_DIST 315 +#define SC_OPCODE_CHI_DIST 316 +#define SC_OPCODE_WEIBULL 317 +#define SC_OPCODE_NEG_BINOM_VERT 318 +#define SC_OPCODE_KRIT_BINOM 319 +#define SC_OPCODE_KURT 320 +#define SC_OPCODE_HAR_MEAN 321 +#define SC_OPCODE_GEO_MEAN 322 +#define SC_OPCODE_STANDARD 323 +#define SC_OPCODE_AVE_DEV 324 +#define SC_OPCODE_SCHIEFE 325 +#define SC_OPCODE_DEV_SQ 326 +#define SC_OPCODE_MEDIAN 327 +#define SC_OPCODE_MODAL_VALUE 328 +#define SC_OPCODE_Z_TEST 329 +#define SC_OPCODE_T_TEST 330 +#define SC_OPCODE_RANK 331 +#define SC_OPCODE_PERCENTILE 332 +#define SC_OPCODE_PERCENT_RANK 333 +#define SC_OPCODE_LARGE 334 +#define SC_OPCODE_SMALL 335 +#define SC_OPCODE_FREQUENCY 336 +#define SC_OPCODE_QUARTILE 337 +#define SC_OPCODE_NORM_INV 338 +#define SC_OPCODE_CONFIDENCE 339 +#define SC_OPCODE_F_TEST 340 +#define SC_OPCODE_TRIM_MEAN 341 +#define SC_OPCODE_PROB 342 +#define SC_OPCODE_CORREL 343 +#define SC_OPCODE_COVAR 344 +#define SC_OPCODE_PEARSON 345 +#define SC_OPCODE_RSQ 346 +#define SC_OPCODE_STEYX 347 +#define SC_OPCODE_SLOPE 348 +#define SC_OPCODE_INTERCEPT 349 +#define SC_OPCODE_TREND 350 +#define SC_OPCODE_GROWTH 351 +#define SC_OPCODE_RGP 352 +#define SC_OPCODE_RKP 353 +#define SC_OPCODE_FORECAST 354 +#define SC_OPCODE_CHI_INV 355 +#define SC_OPCODE_GAMMA_DIST 356 +#define SC_OPCODE_GAMMA_INV 357 +#define SC_OPCODE_T_INV 358 +#define SC_OPCODE_F_INV 359 +#define SC_OPCODE_CHI_TEST 360 +#define SC_OPCODE_LOG_INV 361 +#define SC_OPCODE_TABLE_OP 362 +#define SC_OPCODE_BETA_DIST 363 +#define SC_OPCODE_BETA_INV 364 +#define SC_OPCODE_WEEK 365 /* sonstige */ +#define SC_OPCODE_GET_DAY_OF_WEEK 366 +#define SC_OPCODE_NO_NAME 367 +#define SC_OPCODE_STYLE 368 +#define SC_OPCODE_DDE 369 +#define SC_OPCODE_BASE 370 +#define SC_OPCODE_TABLE 371 +#define SC_OPCODE_TABLES 372 +#define SC_OPCODE_MIN_A 373 +#define SC_OPCODE_MAX_A 374 +#define SC_OPCODE_AVERAGE_A 375 +#define SC_OPCODE_ST_DEV_A 376 +#define SC_OPCODE_ST_DEV_P_A 377 +#define SC_OPCODE_VAR_A 378 +#define SC_OPCODE_VAR_P_A 379 +#define SC_OPCODE_EASTERSUNDAY 380 +#define SC_OPCODE_DECIMAL 381 +#define SC_OPCODE_CONVERT 382 +#define SC_OPCODE_END_2_PAR 383 + +#define SC_OPCODE_LAST_OPCODE_ID 382 /* letzter OpCode */ + +/*** Interna ***/ +#define SC_OPCODE_INTERNAL_BEGIN 9995 +#define SC_OPCODE_GAME 9995 +#define SC_OPCODE_SPEW 9996 +#define SC_OPCODE_TTT 9997 +#define SC_OPCODE_TEAM 9998 +#define SC_OPCODE_ANSWER 9999 +#define SC_OPCODE_INTERNAL_END 9999 + +/*** ab hier sind Extradaten drin **/ +#define SC_OPCODE_DATA_TOKEN_1 10000 + +#define SC_OPCODE_NONE 0xFFFF + + +#endif /* SC_COMPILER_HRC */ diff --git a/sc/inc/compiler.hxx b/sc/inc/compiler.hxx new file mode 100644 index 000000000000..306456a1e343 --- /dev/null +++ b/sc/inc/compiler.hxx @@ -0,0 +1,1123 @@ +/************************************************************************* + * + * $RCSfile: compiler.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_COMPILER_HXX +#define SC_COMPILER_HXX + +#include <string.h> // wg. memcpy() und bitte nicht memory.h (WKC) + +#ifndef _INC_CDATA +#define _INC_CDATA + +#ifndef _SVMEMPOOL_HXX //autogen +#include <tools/mempool.hxx> +#endif + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" // fuer UpdateRefMode +#endif +#ifndef SC_COMPILER_HRC +#include "compiler.hrc" // fuer OpCodes +#endif + +#ifndef _UNOTOOLS_CHARCLASS_HXX +#include <unotools/charclass.hxx> +#endif + +#define _NEW_COMPILER + +//----------------------------------------------- + +// Konstanten und Datentypen auch fuer externe Module (Interpreter etc.): + +#define MAXCODE 512 // Maximale Anzahl Tokens +#define MAXSTRLEN 256 // Maximale Laenge fuer Eingabestring + // (auch Formeln), "Verlaengerung" durch + // Namensvergabe moeglich +#define MAXJUMPCOUNT 32 +#define MAXMATSIZE 100 +#define SC_DOUBLE_MAXVALUE 1.7e307 + +#define errIllegalChar 501 +#define errIllegalArgument 502 +#define errIllegalFPOperation 503 +#define errIllegalParameter 504 +#define errIllegalJump 505 +#define errSeparator 506 +#define errPair 507 +#define errPairExpected 508 +#define errOperatorExpected 509 +#define errVariableExpected 510 +#define errParameterExpected 511 +#define errCodeOverflow 512 +#define errStringOverflow 513 +#define errStackOverflow 514 +#define errUnknownState 515 +#define errUnknownVariable 516 +#define errUnknownOpCode 517 +#define errUnknownStackVariable 518 +#define errNoValue 519 +#define errUnknownToken 520 +#define errNoCode 521 +#define errCircularReference 522 +#define errNoConvergence 523 +#define errNoRef 524 +#define errNoName 525 +#define errDoubleRef 526 +#define errInterpOverflow 527 +// wird nicht angezeigt, temporaer fuer TrackFormulas +// Zelle haengt von einer ab, die errCircularReference ist +#define errTrackFromCircRef 528 + +#define NOVALUE 0x7fff + + +// flag values of CharTable +#define SC_COMPILER_C_ILLEGAL 0x0000 +#define SC_COMPILER_C_CHAR 0x0001 +#define SC_COMPILER_C_CHAR_BOOL 0x0002 +#define SC_COMPILER_C_CHAR_WORD 0x0004 +#define SC_COMPILER_C_CHAR_VALUE 0x0008 +#define SC_COMPILER_C_CHAR_STRING 0x0010 +#define SC_COMPILER_C_CHAR_DONTCARE 0x0020 +#define SC_COMPILER_C_BOOL 0x0040 +#define SC_COMPILER_C_WORD 0x0080 // auch in spstring.cxx dekl. +#define SC_COMPILER_C_WORD_SEP 0x0100 // und rangenam.cxx (WORD und CHAR_WORD) +#define SC_COMPILER_C_VALUE 0x0200 +#define SC_COMPILER_C_VALUE_SEP 0x0400 +#define SC_COMPILER_C_VALUE_EXP 0x0800 +#define SC_COMPILER_C_VALUE_SIGN 0x1000 +#define SC_COMPILER_C_VALUE_VALUE 0x2000 +#define SC_COMPILER_C_STRING_SEP 0x4000 +#define SC_COMPILER_C_NAME_SEP 0x8000 // es kann nur einen geben! '\'' + +#define SC_COMPILER_FILE_TAB_SEP '#' // 'Doc'#Tab auch in global2.cxx + + +enum OpCode + { + // Spezielle Kommandos + ocPush = SC_OPCODE_PUSH, + ocJump = SC_OPCODE_JUMP, + ocStop = SC_OPCODE_STOP, + ocExternal = SC_OPCODE_EXTERNAL, + ocName = SC_OPCODE_NAME, + // Sprung Kommandos + ocIf = SC_OPCODE_IF, + ocChose = SC_OPCODE_CHOSE, + // Klammern und Seps + ocOpen = SC_OPCODE_OPEN, + ocClose = SC_OPCODE_CLOSE, + ocSep = SC_OPCODE_SEP, + // Spezial-Opcodes + ocMissing = SC_OPCODE_MISSING, + ocBad = SC_OPCODE_BAD, + ocSpaces = SC_OPCODE_SPACES, + ocMatRef = SC_OPCODE_MAT_REF, + // weitere Zugriffs-Operanden + ocDBArea = SC_OPCODE_DB_AREA, + ocMacro = SC_OPCODE_MACRO, + ocColRowName = SC_OPCODE_COL_ROW_NAME, + ocColRowNameAuto = SC_OPCODE_COL_ROW_NAME_AUTO, + ocEndDiv = SC_OPCODE_END_DIV, + // Binaere Operatoren + ocAdd = SC_OPCODE_ADD, + ocSub = SC_OPCODE_SUB, + ocMul = SC_OPCODE_MUL, + ocDiv = SC_OPCODE_DIV, + ocAmpersand = SC_OPCODE_AMPERSAND, + ocPow = SC_OPCODE_POW, + ocEqual = SC_OPCODE_EQUAL, + ocNotEqual = SC_OPCODE_NOT_EQUAL, + ocLess = SC_OPCODE_LESS, + ocGreater = SC_OPCODE_GREATER, + ocLessEqual = SC_OPCODE_LESS_EQUAL, + ocGreaterEqual = SC_OPCODE_GREATER_EQUAL, + ocAnd = SC_OPCODE_AND, + ocOr = SC_OPCODE_OR, + ocIntersect = SC_OPCODE_INTERSECT, + ocUnion = SC_OPCODE_UNION, + ocRange = SC_OPCODE_RANGE, + ocEndBinOp = SC_OPCODE_END_BIN_OP, + // Unaere Operatoren + ocNot = SC_OPCODE_NOT, + ocNeg = SC_OPCODE_NEG, + ocNegSub = SC_OPCODE_NEG_SUB, + ocEndUnOp = SC_OPCODE_END_UN_OP, + // Funktionen mit keinem Parameter + ocPi = SC_OPCODE_PI, + ocRandom = SC_OPCODE_RANDOM, + ocTrue = SC_OPCODE_TRUE, + ocFalse = SC_OPCODE_FALSE, + ocGetActDate = SC_OPCODE_GET_ACT_DATE, + ocGetActTime = SC_OPCODE_GET_ACT_TIME, + ocNoValue = SC_OPCODE_NO_VALUE, + ocCurrent = SC_OPCODE_CURRENT, + ocEndNoPar = SC_OPCODE_END_NO_PAR, + // Funktionen mit einem Parameter + ocDeg = SC_OPCODE_DEG, + ocRad = SC_OPCODE_RAD, + ocSin = SC_OPCODE_SIN, + ocCos = SC_OPCODE_COS, + ocTan = SC_OPCODE_TAN, + ocCot = SC_OPCODE_COT, + ocArcSin = SC_OPCODE_ARC_SIN, + ocArcCos = SC_OPCODE_ARC_COS, + ocArcTan = SC_OPCODE_ARC_TAN, + ocArcCot = SC_OPCODE_ARC_COT, + ocSinHyp = SC_OPCODE_SIN_HYP, + ocCosHyp = SC_OPCODE_COS_HYP, + ocTanHyp = SC_OPCODE_TAN_HYP, + ocCotHyp = SC_OPCODE_COT_HYP, + ocArcSinHyp = SC_OPCODE_ARC_SIN_HYP, + ocArcCosHyp = SC_OPCODE_ARC_COS_HYP, + ocArcTanHyp = SC_OPCODE_ARC_TAN_HYP, + ocArcCotHyp = SC_OPCODE_ARC_COT_HYP, + ocExp = SC_OPCODE_EXP, + ocLn = SC_OPCODE_LN, + ocSqrt = SC_OPCODE_SQRT, + ocFact = SC_OPCODE_FACT, + ocGetYear = SC_OPCODE_GET_YEAR, + ocGetMonth = SC_OPCODE_GET_MONTH, + ocGetDay = SC_OPCODE_GET_DAY, + ocGetHour = SC_OPCODE_GET_HOUR, + ocGetMin = SC_OPCODE_GET_MIN, + ocGetSec = SC_OPCODE_GET_SEC, + ocPlusMinus = SC_OPCODE_PLUS_MINUS, + ocAbs = SC_OPCODE_ABS, + ocInt = SC_OPCODE_INT, + ocPhi = SC_OPCODE_PHI, + ocGauss = SC_OPCODE_GAUSS, + ocIsEmpty = SC_OPCODE_IS_EMPTY, + ocIsString = SC_OPCODE_IS_STRING, + ocIsNonString = SC_OPCODE_IS_NON_STRING, + ocIsLogical = SC_OPCODE_IS_LOGICAL, + ocType = SC_OPCODE_TYPE, + ocIsRef = SC_OPCODE_IS_REF, + ocIsValue = SC_OPCODE_IS_VALUE, + ocIsFormula = SC_OPCODE_IS_FORMULA, + ocIsNV = SC_OPCODE_IS_NV, + ocIsErr = SC_OPCODE_IS_ERR, + ocIsError = SC_OPCODE_IS_ERROR, + ocIsEven = SC_OPCODE_IS_EVEN, + ocIsOdd = SC_OPCODE_IS_ODD, + ocN = SC_OPCODE_N, + // String-Funktionen + ocGetDateValue = SC_OPCODE_GET_DATE_VALUE, + ocGetTimeValue = SC_OPCODE_GET_TIME_VALUE, + ocCode = SC_OPCODE_CODE, + ocTrim = SC_OPCODE_TRIM, + ocUpper = SC_OPCODE_UPPER, + ocPropper = SC_OPCODE_PROPPER, + ocLower = SC_OPCODE_LOWER, + ocLen = SC_OPCODE_LEN, + ocT = SC_OPCODE_T, + ocValue = SC_OPCODE_VALUE, + ocClean = SC_OPCODE_CLEAN, + ocChar = SC_OPCODE_CHAR, + ocLog10 = SC_OPCODE_LOG10, + ocEven = SC_OPCODE_EVEN, + ocOdd = SC_OPCODE_ODD, + ocStdNormDist = SC_OPCODE_STD_NORM_DIST, + ocFisher = SC_OPCODE_FISHER, + ocFisherInv = SC_OPCODE_FISHER_INV, + ocSNormInv = SC_OPCODE_S_NORM_INV, + ocGammaLn = SC_OPCODE_GAMMA_LN, + ocErrorType = SC_OPCODE_ERROR_TYPE, + ocErrCell = SC_OPCODE_ERR_CELL, + ocFormula = SC_OPCODE_FORMULA, + ocEnd1Par = SC_OPCODE_END_1_PAR, + // Funktionen mit mehreren Parametern + ocArcTan2 = SC_OPCODE_ARC_TAN_2, + ocCeil = SC_OPCODE_CEIL, + ocFloor = SC_OPCODE_FLOOR, + ocRound = SC_OPCODE_ROUND, + ocRoundUp = SC_OPCODE_ROUND_UP, + ocRoundDown = SC_OPCODE_ROUND_DOWN, + ocTrunc = SC_OPCODE_TRUNC, + ocLog = SC_OPCODE_LOG, + ocPower = SC_OPCODE_POWER, + ocGGT = SC_OPCODE_GGT, + ocKGV = SC_OPCODE_KGV, + ocMod = SC_OPCODE_MOD, + ocSumProduct = SC_OPCODE_SUM_PRODUCT, + ocSumSQ = SC_OPCODE_SUM_SQ, + ocSumX2MY2 = SC_OPCODE_SUM_X2MY2, + ocSumX2DY2 = SC_OPCODE_SUM_X2DY2, + ocSumXMY2 = SC_OPCODE_SUM_XMY2, + ocGetDate = SC_OPCODE_GET_DATE, + ocGetTime = SC_OPCODE_GET_TIME, + ocGetDiffDate = SC_OPCODE_GET_DIFF_DATE, + ocGetDiffDate360 = SC_OPCODE_GET_DIFF_DATE_360, + ocMin = SC_OPCODE_MIN, + ocMax = SC_OPCODE_MAX, + ocSum = SC_OPCODE_SUM, + ocProduct = SC_OPCODE_PRODUCT, + ocAverage = SC_OPCODE_AVERAGE, + ocCount = SC_OPCODE_COUNT, + ocCount2 = SC_OPCODE_COUNT_2, + ocNBW = SC_OPCODE_NBW, + ocIKV = SC_OPCODE_IKV, + ocVar = SC_OPCODE_VAR, + ocVarP = SC_OPCODE_VAR_P, + ocStDev = SC_OPCODE_ST_DEV, + ocStDevP = SC_OPCODE_ST_DEV_P, + ocB = SC_OPCODE_B, + ocNormDist = SC_OPCODE_NORM_DIST, + ocExpDist = SC_OPCODE_EXP_DIST, + ocBinomDist = SC_OPCODE_BINOM_DIST, + ocPoissonDist = SC_OPCODE_POISSON_DIST, + ocKombin = SC_OPCODE_KOMBIN, + ocKombin2 = SC_OPCODE_KOMBIN_2, + ocVariationen = SC_OPCODE_VARIATIONEN, + ocVariationen2 = SC_OPCODE_VARIATIONEN_2, + ocBW = SC_OPCODE_BW, + ocDIA = SC_OPCODE_DIA, + ocGDA = SC_OPCODE_GDA, + ocGDA2 = SC_OPCODE_GDA_2, + ocVBD = SC_OPCODE_VBD, + ocLaufz = SC_OPCODE_LAUFZ, + ocLIA = SC_OPCODE_LIA, + ocRMZ = SC_OPCODE_RMZ, + ocColumns = SC_OPCODE_COLUMNS, + ocRows = SC_OPCODE_ROWS, + ocColumn = SC_OPCODE_COLUMN, + ocRow = SC_OPCODE_ROW, + ocZGZ = SC_OPCODE_ZGZ, + ocZW = SC_OPCODE_ZW, + ocZZR = SC_OPCODE_ZZR, + ocZins = SC_OPCODE_ZINS, + ocZinsZ = SC_OPCODE_ZINS_Z, + ocKapz = SC_OPCODE_KAPZ, + ocKumZinsZ = SC_OPCODE_KUM_ZINS_Z, + ocKumKapZ = SC_OPCODE_KUM_KAP_Z, + ocEffektiv = SC_OPCODE_EFFEKTIV, + ocNominal = SC_OPCODE_NOMINAL, + // Spezialfunktion fr Teilergebnisse + ocSubTotal = SC_OPCODE_SUB_TOTAL, + // Datenbankfunktionen + ocDBSum = SC_OPCODE_DB_SUM, + ocDBCount = SC_OPCODE_DB_COUNT, + ocDBCount2 = SC_OPCODE_DB_COUNT_2, + ocDBAverage = SC_OPCODE_DB_AVERAGE, + ocDBGet = SC_OPCODE_DB_GET, + ocDBMax = SC_OPCODE_DB_MAX, + ocDBMin = SC_OPCODE_DB_MIN, + ocDBProduct = SC_OPCODE_DB_PRODUCT, + ocDBStdDev = SC_OPCODE_DB_STD_DEV, + ocDBStdDevP = SC_OPCODE_DB_STD_DEV_P, + ocDBVar = SC_OPCODE_DB_VAR, + ocDBVarP = SC_OPCODE_DB_VAR_P, + // Verwaltungsfunktionen + ocIndirect = SC_OPCODE_INDIRECT, + ocAdress = SC_OPCODE_ADRESS, + ocMatch = SC_OPCODE_MATCH, + ocCountEmptyCells = SC_OPCODE_COUNT_EMPTY_CELLS, + ocCountIf = SC_OPCODE_COUNT_IF, + ocSumIf = SC_OPCODE_SUM_IF, + ocLookup = SC_OPCODE_LOOKUP, + ocVLookup = SC_OPCODE_V_LOOKUP, + ocHLookup = SC_OPCODE_H_LOOKUP, + ocMultiArea = SC_OPCODE_MULTI_AREA, + ocOffset = SC_OPCODE_OFFSET, + ocIndex = SC_OPCODE_INDEX, + ocAreas = SC_OPCODE_AREAS, + // String-Funktionen + ocCurrency = SC_OPCODE_CURRENCY, + ocReplace = SC_OPCODE_REPLACE, + ocFixed = SC_OPCODE_FIXED, + ocFind = SC_OPCODE_FIND, + ocExact = SC_OPCODE_EXACT, + ocLeft = SC_OPCODE_LEFT, + ocRight = SC_OPCODE_RIGHT, + ocSearch = SC_OPCODE_SEARCH, + ocMid = SC_OPCODE_MID, + ocText = SC_OPCODE_TEXT, + ocSubstitute = SC_OPCODE_SUBSTITUTE, + ocRept = SC_OPCODE_REPT, + ocConcat = SC_OPCODE_CONCAT, + // Matrix-Funktionen + ocMatValue = SC_OPCODE_MAT_VALUE, + ocMatDet = SC_OPCODE_MAT_DET, + ocMatInv = SC_OPCODE_MAT_INV, + ocMatMult = SC_OPCODE_MAT_MULT, + ocMatTrans = SC_OPCODE_MAT_TRANS, + ocMatrixUnit = SC_OPCODE_MATRIX_UNIT, + // BackSolver + ocBackSolver = SC_OPCODE_BACK_SOLVER, + // Statistik-Funktionen + ocHypGeomDist = SC_OPCODE_HYP_GEOM_DIST, + ocLogNormDist = SC_OPCODE_LOG_NORM_DIST, + ocTDist = SC_OPCODE_T_DIST, + ocFDist = SC_OPCODE_F_DIST, + ocChiDist = SC_OPCODE_CHI_DIST, + ocWeibull = SC_OPCODE_WEIBULL, + ocNegBinomVert = SC_OPCODE_NEG_BINOM_VERT, + ocKritBinom = SC_OPCODE_KRIT_BINOM, + ocKurt = SC_OPCODE_KURT, + ocHarMean = SC_OPCODE_HAR_MEAN, + ocGeoMean = SC_OPCODE_GEO_MEAN, + ocStandard = SC_OPCODE_STANDARD, + ocAveDev = SC_OPCODE_AVE_DEV, + ocSchiefe = SC_OPCODE_SCHIEFE, + ocDevSq = SC_OPCODE_DEV_SQ, + ocMedian = SC_OPCODE_MEDIAN, + ocModalValue = SC_OPCODE_MODAL_VALUE, + ocZTest = SC_OPCODE_Z_TEST, + ocTTest = SC_OPCODE_T_TEST, + ocRank = SC_OPCODE_RANK, + ocPercentile = SC_OPCODE_PERCENTILE, + ocPercentrank = SC_OPCODE_PERCENT_RANK, + ocLarge = SC_OPCODE_LARGE, + ocSmall = SC_OPCODE_SMALL, + ocFrequency = SC_OPCODE_FREQUENCY, + ocQuartile = SC_OPCODE_QUARTILE, + ocNormInv = SC_OPCODE_NORM_INV, + ocConfidence = SC_OPCODE_CONFIDENCE, + ocFTest = SC_OPCODE_F_TEST, + ocTrimMean = SC_OPCODE_TRIM_MEAN, + ocProb = SC_OPCODE_PROB, + ocCorrel = SC_OPCODE_CORREL, + ocCovar = SC_OPCODE_COVAR, + ocPearson = SC_OPCODE_PEARSON, + ocRSQ = SC_OPCODE_RSQ, + ocSTEYX = SC_OPCODE_STEYX, + ocSlope = SC_OPCODE_SLOPE, + ocIntercept = SC_OPCODE_INTERCEPT, + ocTrend = SC_OPCODE_TREND, + ocGrowth = SC_OPCODE_GROWTH, + ocRGP = SC_OPCODE_RGP, + ocRKP = SC_OPCODE_RKP, + ocForecast = SC_OPCODE_FORECAST, + ocChiInv = SC_OPCODE_CHI_INV, + ocGammaDist = SC_OPCODE_GAMMA_DIST, + ocGammaInv = SC_OPCODE_GAMMA_INV, + ocTInv = SC_OPCODE_T_INV, + ocFInv = SC_OPCODE_F_INV, + ocChiTest = SC_OPCODE_CHI_TEST, + ocLogInv = SC_OPCODE_LOG_INV, + ocTableOp = SC_OPCODE_TABLE_OP, + ocBetaDist = SC_OPCODE_BETA_DIST, + ocBetaInv = SC_OPCODE_BETA_INV, + // sonstige + ocWeek = SC_OPCODE_WEEK, + ocGetDayOfWeek = SC_OPCODE_GET_DAY_OF_WEEK, + ocNoName = SC_OPCODE_NO_NAME, + ocStyle = SC_OPCODE_STYLE, + ocDde = SC_OPCODE_DDE, + ocBase = SC_OPCODE_BASE, + ocTable = SC_OPCODE_TABLE, + ocTables = SC_OPCODE_TABLES, + ocMinA = SC_OPCODE_MIN_A, + ocMaxA = SC_OPCODE_MAX_A, + ocAverageA = SC_OPCODE_AVERAGE_A, + ocStDevA = SC_OPCODE_ST_DEV_A, + ocStDevPA = SC_OPCODE_ST_DEV_P_A, + ocVarA = SC_OPCODE_VAR_A, + ocVarPA = SC_OPCODE_VAR_P_A, + ocEasterSunday = SC_OPCODE_EASTERSUNDAY, + ocDecimal = SC_OPCODE_DECIMAL, + ocConvert = SC_OPCODE_CONVERT, + ocEnd2Par = SC_OPCODE_END_2_PAR, + // internes Allerlei + ocInternalBegin = SC_OPCODE_INTERNAL_BEGIN, + ocGame = SC_OPCODE_GAME, + ocSpew = SC_OPCODE_SPEW, + ocTTT = SC_OPCODE_TTT, + ocTeam = SC_OPCODE_TEAM, + ocAnswer = SC_OPCODE_ANSWER, + ocInternalEnd = SC_OPCODE_INTERNAL_END, + // ab hier sind Extradaten drin + ocDataToken1 = SC_OPCODE_DATA_TOKEN_1, + // kein OpCode + ocNone = SC_OPCODE_NONE + }; + +enum StackVar + { + svByte, + svDouble, + svString, + svSingleRef, + svDoubleRef, + svMatrix, + svIndex, + svJump, + svExternal, // Byte + String + + svMissing = 0x70, // liefert 0 oder "" + svErr // unbekannter StackType + }; + +#endif + +class ScDocument; +class ScMatrix; +class ScRangeData; + +// Konstanten und Datentypen compilerintern: + + +// Ref-Flags fuer alte (bis Release 3.1) Dokumente + +struct OldSingleRefBools +{ + BYTE bRelCol; // Flagwerte (s.u.), jeweils 2 Bits im Dateiformat + BYTE bRelRow; + BYTE bRelTab; + BYTE bOldFlag3D; // zwei BOOL Flags (s.u.) +}; + +#define SR_ABSOLUTE 0 // Absolutwert +#define SR_RELABS 1 // Relativwert als Absolutwert (bis Release 3.1) +#define SR_RELATIVE 2 // Relativwert als Deltawert (nach Release 3.1) +#define SR_DELETED 3 // Gelschte Zeile/Spalte/Tabelle + +#define SRF_3D 0x01 // 3D Ref, war frueher (vor 304a) der BOOL +#define SRF_RELNAME 0x02 // Ref ist aus RangeName mit relativen Angaben entstanden +#define SRF_BITS 0x03 // Maske der moeglichen Bits + + +struct SingleRefData // Referenzen auf die Tabelle +{ + INT16 nCol; // absolute Angaben + INT16 nRow; + INT16 nTab; + INT16 nRelCol; // Angaben relativ zur Position + INT16 nRelRow; + INT16 nRelTab; + + union + { + BOOL bFlags; + struct + { + BOOL bColRel :1; + BOOL bColDeleted :1; + BOOL bRowRel :1; + BOOL bRowDeleted :1; + BOOL bTabRel :1; + BOOL bTabDeleted :1; + BOOL bFlag3D :1; // 3D-Ref + BOOL bRelName :1; // Ref aus RangeName mit relativen Angaben + }Flags; + }; + + // kein default cTor, da in ScToken union verwendet, InitFlags setzen! + inline void InitFlags() { bFlags = 0; } // alles FALSE + // InitAddress: InitFlags und setzt Adresse + inline void InitAddress( const ScAddress& rAdr ); + // InitAddressRel: InitFlags und setzt Adresse, alles relativ zu rPos + inline void InitAddressRel( const ScAddress& rAdr, const ScAddress& rPos ); + inline void SetColRel( BOOL bVal ) { Flags.bColRel = (bVal ? TRUE : FALSE ); } + inline BOOL IsColRel() const { return Flags.bColRel; } + inline void SetRowRel( BOOL bVal ) { Flags.bRowRel = (bVal ? TRUE : FALSE ); } + inline BOOL IsRowRel() const { return Flags.bRowRel; } + inline void SetTabRel( BOOL bVal ) { Flags.bTabRel = (bVal ? TRUE : FALSE ); } + inline BOOL IsTabRel() const { return Flags.bTabRel; } + + inline void SetColDeleted( BOOL bVal ) { Flags.bColDeleted = (bVal ? TRUE : FALSE ); } + inline BOOL IsColDeleted() const { return Flags.bColDeleted; } + inline void SetRowDeleted( BOOL bVal ) { Flags.bRowDeleted = (bVal ? TRUE : FALSE ); } + inline BOOL IsRowDeleted() const { return Flags.bRowDeleted; } + inline void SetTabDeleted( BOOL bVal ) { Flags.bTabDeleted = (bVal ? TRUE : FALSE ); } + inline BOOL IsTabDeleted() const { return Flags.bTabDeleted; } + + inline void SetFlag3D( BOOL bVal ) { Flags.bFlag3D = (bVal ? TRUE : FALSE ); } + inline BOOL IsFlag3D() const { return Flags.bFlag3D; } + inline void SetRelName( BOOL bVal ) { Flags.bRelName = (bVal ? TRUE : FALSE ); } + inline BOOL IsRelName() const { return Flags.bRelName; } + + inline BOOL Valid() const; + + void SmartRelAbs( const ScAddress& rPos ); + void CalcRelFromAbs( const ScAddress& rPos ); + void CalcAbsIfRel( const ScAddress& rPos ); + void OldBoolsToNewFlags( const OldSingleRefBools& ); + BYTE CreateStoreByteFromFlags() const; + void CreateFlagsFromLoadByte( BYTE ); +}; + +inline void SingleRefData::InitAddress( const ScAddress& rAdr ) +{ + InitFlags(); + nCol = rAdr.Col(); + nRow = rAdr.Row(); + nTab = rAdr.Tab(); +} + +inline void SingleRefData::InitAddressRel( const ScAddress& rAdr, + const ScAddress& rPos ) +{ + InitFlags(); + nCol = rAdr.Col(); + nRow = rAdr.Row(); + nTab = rAdr.Tab(); + SetColRel( TRUE ); + SetRowRel( TRUE ); + SetTabRel( TRUE ); + CalcRelFromAbs( rPos ); +} + +inline BOOL SingleRefData::Valid() const +{ + return nCol >= 0 && nCol <= MAXCOL && + nRow >= 0 && nRow <= MAXROW && + nTab >= 0 && nTab <= MAXTAB; +} + + +struct ComplRefData // Komplette Referenz +{ + SingleRefData Ref1; + SingleRefData Ref2; + + inline void InitFlags() + { Ref1.InitFlags(); Ref2.InitFlags(); } + inline void InitRange( const ScRange& rRange ) + { + Ref1.InitAddress( rRange.aStart ); + Ref2.InitAddress( rRange.aEnd ); + } + inline void InitRangeRel( const ScRange& rRange, const ScAddress& rPos ) + { + Ref1.InitAddressRel( rRange.aStart, rPos ); + Ref2.InitAddressRel( rRange.aEnd, rPos ); + } + inline void SmartRelAbs( const ScAddress& rPos ) + { Ref1.SmartRelAbs( rPos ); Ref2.SmartRelAbs( rPos ); } + inline void CalcRelFromAbs( const ScAddress& rPos ) + { Ref1.CalcRelFromAbs( rPos ); Ref2.CalcRelFromAbs( rPos ); } + inline void CalcAbsIfRel( const ScAddress& rPos ) + { Ref1.CalcAbsIfRel( rPos ); Ref2.CalcAbsIfRel( rPos ); } + inline BOOL Valid() const + { return Ref1.Valid() && Ref2.Valid(); } + void PutInOrder(); +}; + + +#if 0 +/* + OpCode eOp; // Op-Code + StackVar eType; // Art der Daten + USHORT nRefCnt; // Ref-Count + BOOL bRaw; // nicht per Clone auf passende Groesse getrimmt + */ +#endif + +#ifndef PRODUCT +#define SC_TOKEN_FIX_MEMBERS \ + OpCode eOp; \ + StackVar eType; \ + USHORT nRefCnt; \ + BOOL bRaw; +#else +#define SC_TOKEN_FIX_MEMBERS \ + USHORT eOp; \ + USHORT eType; \ + USHORT nRefCnt; \ + BOOL bRaw; +#endif + +struct ScDoubleToken +{ +private: + SC_TOKEN_FIX_MEMBERS +public: + union + { // union nur um gleiches Alignment wie ScToken sicherzustellen + double nValue; + BYTE cByte; + }; + DECL_FIXEDMEMPOOL_NEWDEL( ScDoubleToken ); +}; + +struct ScToken +{ + friend class ScCompiler; + // Friends, die temporaere Raw-Tokens auf dem Stack benutzen (und deswegen + // den private dtor brauchen) und wissen, was sie tun.. + friend class ScTokenArray; + friend class ScInterpreter; +private: + SC_TOKEN_FIX_MEMBERS +public: + union { + double nValue; + ComplRefData aRef; + BYTE cByte; + ScMatrix* pMat; + USHORT nIndex; // Index fuer Name-Tabelle + sal_Unicode cStr[ MAXSTRLEN+1 ]; // String (bis 255 Zeichen + 0) + short nJump[MAXJUMPCOUNT+1]; // If/Chose-Token + }; + + ScToken() : bRaw( TRUE ) {} +private: + ~ScToken() {} //! nur via Delete() loeschen +public: + DECL_FIXEDMEMPOOL_NEWDEL( ScToken ); // Raw-ScToken + StackVar GetType() const { return (StackVar) eType; } + OpCode GetOpCode() const { return (OpCode) eOp; } + BOOL IsFunction() const; // reine Funktionen, keine Operatoren + BOOL IsMatrixFunction() const; // ob Funktion _immer_ eine Matrix returnt + BYTE GetParamCount() const; + void NewOpCode( OpCode e ) { eOp = e; } + void IncRef() { nRefCnt++; } + void DecRef() { if( !--nRefCnt ) Delete(); } + USHORT GetRef() const { return nRefCnt; } + void Delete(); + + // Diese Methoden nur auf Tokens, die nicht im TokenArray stehen, + // anwenden, da der RefCount auf 0 gesetzt wird! + void SetOpCode( OpCode eCode ); + void SetString( const sal_Unicode* pStr ); + void SetSingleReference( const SingleRefData& rRef ); + void SetDoubleReference( const ComplRefData& rRef ); + void SetByte( BYTE c ); + void SetDouble( double fVal ); + void SetInt( int nVal ); + void SetName( USHORT n ); + void SetMatrix( ScMatrix* p ); + void SetExternal(const sal_Unicode* pStr); + // Diese Methoden sind hingegen OK. + ComplRefData& GetReference(); + void SetReference( ComplRefData& rRef ); + + ScToken* Clone() const; // echte Kopie! + void Load30( SvStream& ); + void Load( SvStream&, USHORT nVer ); + void Store( SvStream& ) const; + + BOOL operator== (const ScToken& rToken) const; + BOOL TextEqual(const ScToken& rToken) const; + + static xub_StrLen GetStrLen( const sal_Unicode* pStr ); // as long as a "string" is an array + static size_t GetStrLenBytes( xub_StrLen nLen ) + { return nLen * sizeof(sal_Unicode); } + static size_t GetStrLenBytes( const sal_Unicode* pStr ) + { return GetStrLenBytes( GetStrLen( pStr ) ); } +}; + + +class ScTokenRef +{ + ScToken* p; +public: + inline ScTokenRef() { p = NULL; } + inline ScTokenRef( const ScTokenRef& r ) { if( ( p = r.p ) != NULL ) p->IncRef(); } + inline ScTokenRef( ScToken *t ) { if( ( p = t ) != NULL ) t->IncRef(); } + inline void Clear() { if( p ) p->DecRef(); } + inline ~ScTokenRef() { if( p ) p->DecRef(); } + inline ScTokenRef& operator=( const ScTokenRef& r ) { return *this = r.p; } + inline ScTokenRef& operator=( ScToken* t ) + { if( t ) t->IncRef(); if( p ) p->DecRef(); p = t; return *this; } + inline BOOL Is() const { return p != NULL; } + inline BOOL operator ! () const { return p == NULL; } + inline ScToken* operator&() const { return p; } + inline ScToken* operator->() const { return p; } + inline ScToken& operator*() const { return *p; } + inline operator ScToken*() const { return p; } +}; + + +enum ScRecalcMode40 +{ // alter RecalcMode bis einschliesslich 4.0 + RC_NORMAL, + RC_ALWAYS, + RC_ONLOAD, // immer nach dem Laden + RC_ONLOAD_ONCE, // einmal nach dem Laden + RC_FORCED, // auch wenn Zelle nicht sichtbar + RC_ONREFMOVE // wenn Referenz bewegt wurde (ab SP3, 05.11.97) +}; + +// neuer (ab 5.0, 14.01.98) RecalcMode Zugriff nur noch noch via TokenArray +// SetRecalcMode / IsRecalcMode... + +typedef BYTE ScRecalcMode; +// von den exklusiven Bits kann nur eins gesetzt sein +// wird von TokenArray SetRecalcMode... Methoden gehandelt +#define RECALCMODE_NORMAL 0x01 // exklusiv +#define RECALCMODE_ALWAYS 0x02 // exklusiv, immer +#define RECALCMODE_ONLOAD 0x04 // exklusiv, immer nach dem Laden +#define RECALCMODE_ONLOAD_ONCE 0x08 // exklusiv, einmal nach dem Laden +#define RECALCMODE_FORCED 0x10 // kombiniert, auch wenn Zelle nicht sichtbar +#define RECALCMODE_ONREFMOVE 0x20 // kombiniert, wenn Referenz bewegt wurde +#define RECALCMODE_EMASK 0x0F // Maske der exklusiven Bits +// werden neue Bits definiert, muessen ExportRecalcMode40 und AddRecalcMode +// angepasst werden! + +class ScTokenArray +{ + friend class ScCompiler; + friend class ScTokenIterator; + + ScToken** pCode; // Token->Array + ScToken** pRPN; // RPN-Array + USHORT nLen; // Laenge des TokenArrays + USHORT nRPN; // Laenge des RPN-Arrays + USHORT nIndex; // aktueller Step-Index + USHORT nError; // Fehlercode + short nRefs; // Anzahl Referenzen + ScRecalcMode nMode; // wann muss berechnet werden? + + void Assign( const ScTokenArray& ); + + ScToken* Add( ScToken* ); + void ImportRecalcMode40( ScRecalcMode40 ); + ScRecalcMode40 ExportRecalcMode40() const; + inline void SetCombinedBitsRecalcMode( ScRecalcMode nBits ) + { nMode |= (nBits & ~RECALCMODE_EMASK); } + inline ScRecalcMode GetCombinedBitsRecalcMode() const + { return nMode & ~RECALCMODE_EMASK; } + inline void SetMaskedRecalcMode( ScRecalcMode nBits ) + { nMode = GetCombinedBitsRecalcMode() | nBits; } + // in nMode gesetzte exklusive Bits werden genullt, + // nVal kann auch kombinierte Bits enthalten, + // aber nur ein exklusives Bit darf gesetzt sein! + +public: + ScTokenArray(); + ScTokenArray( const ScTokenArray& ); // Zuweisung mit Referenzen auf Tokens + ~ScTokenArray(); + ScTokenArray* Clone() const; // echte Kopie! + void Clear(); + void DelRPN(); + ScToken* First() { nIndex = 0; return Next(); } + ScToken* Next(); + ScToken* GetNextName(); + ScToken* GetNextDBArea(); + ScToken* GetNextReference(); + ScToken* GetNextReferenceRPN(); + ScToken* GetNextReferenceOrName(); + ScToken* GetNextColRowName(); + ScToken* GetNextOpCodeRPN( OpCode ); + ScToken* PeekNext(); + ScToken* PeekPrevNoSpaces(); // nur nach First/Next/Last/Prev ! + ScToken* PeekNextNoSpaces(); // nur nach First/Next/Last/Prev ! + ScToken* FirstRPN() { nIndex = 0; return NextRPN(); } + ScToken* NextRPN(); + ScToken* LastRPN() { nIndex = nRPN; return PrevRPN(); } + ScToken* PrevRPN(); + + BOOL HasOpCodeRPN( OpCode ) const; + BOOL HasName() const; // token of type svIndex + BOOL IsReference( ScRange& rRange ) const; // exactly and only one range + + ScToken** GetArray() const { return pCode; } + ScToken** GetCode() const { return pRPN; } + USHORT GetLen() const { return nLen; } + USHORT GetCodeLen() const { return nRPN; } + void Reset() { nIndex = 0; } + USHORT GetError() const { return nError; } + void SetError( USHORT n ) { nError = n; } + short GetRefs() const { return nRefs; } + + inline ScRecalcMode GetRecalcMode() const { return nMode; } + void AddRecalcMode( ScRecalcMode nBits ); + // Bits werden nicht direkt gesetzt sondern + // geprueft und evtl. nach Prio behandelt, + // wenn mehrere exklusive gesetzt sind! + + inline void ClearRecalcMode() { nMode = RECALCMODE_NORMAL; } + inline void SetRecalcModeNormal() + { SetMaskedRecalcMode( RECALCMODE_NORMAL ); } + inline void SetRecalcModeAlways() + { SetMaskedRecalcMode( RECALCMODE_ALWAYS ); } + inline void SetRecalcModeOnLoad() + { SetMaskedRecalcMode( RECALCMODE_ONLOAD ); } + inline void SetRecalcModeOnLoadOnce() + { SetMaskedRecalcMode( RECALCMODE_ONLOAD_ONCE ); } + inline void SetRecalcModeForced() + { nMode |= RECALCMODE_FORCED; } + inline void ClearRecalcModeForced() + { nMode &= ~RECALCMODE_FORCED; } + inline void SetRecalcModeOnRefMove() + { nMode |= RECALCMODE_ONREFMOVE; } + inline void ClearRecalcModeOnRefMove() + { nMode &= ~RECALCMODE_ONREFMOVE; } + inline BOOL IsRecalcModeNormal() const + { return (nMode & RECALCMODE_NORMAL) != 0; } + inline BOOL IsRecalcModeAlways() const + { return (nMode & RECALCMODE_ALWAYS) != 0; } + inline BOOL IsRecalcModeOnLoad() const + { return (nMode & RECALCMODE_ONLOAD) != 0; } + inline BOOL IsRecalcModeOnLoadOnce() const + { return (nMode & RECALCMODE_ONLOAD_ONCE) != 0; } + inline BOOL IsRecalcModeForced() const + { return (nMode & RECALCMODE_FORCED) != 0; } + inline BOOL IsRecalcModeOnRefMove() const + { return (nMode & RECALCMODE_ONREFMOVE) != 0; } + + inline OpCode GetOuterFuncOpCode(); // OpCode der aeusseren Funktion + // ermittelt Ausdehnung direkt angrenzender Refs + // nur auf echte Funcs wie z.B. GetOuterFuncOpCode() == ocSum anwenden! + BOOL GetAdjacentExtendOfOuterFuncRefs( USHORT& nExtend, + const ScAddress& rPos, ScDirection ); + + // Operatoren +,-,*,/,^,&,=,<>,<,>,<=,>= + // mit DoubleRef in Formel? + BOOL HasMatrixDoubleRefOps(); + + void Load30( SvStream&, const ScAddress& ); + void Load( SvStream&, USHORT, const ScAddress& ); + void Store( SvStream&, const ScAddress& ) const; + + ScToken* AddToken( const ScToken& ); + ScToken* AddOpCode( OpCode eCode ); + ScToken* AddString( const sal_Unicode* pStr ); + ScToken* AddDouble( double fVal ); + ScToken* AddSingleReference( const SingleRefData& rRef ); + ScToken* AddDoubleReference( const ComplRefData& rRef ); + ScToken* AddName( USHORT n ); + ScToken* AddMatrix( ScMatrix* p ); + ScToken* AddExternal( const sal_Unicode* pStr ); + ScToken* AddBad( const sal_Unicode* pStr ); // ocBad mit String + + // Zuweisung mit Referenzen auf Tokens + ScTokenArray& operator=( const ScTokenArray& ); +}; + +inline OpCode ScTokenArray::GetOuterFuncOpCode() +{ + if ( pRPN && nRPN ) + return pRPN[nRPN-1]->GetOpCode(); + return (OpCode) SC_OPCODE_NONE; +} + +struct ImpTokenIterator; + +class ScTokenIterator +{ + friend class ScInterpreter; // fuer Jump() + ImpTokenIterator* pCur; + void Jump( short nStart, short nNext ); + void Push( ScTokenArray* ); + void Pop(); +public: + ScTokenIterator( const ScTokenArray& ); + ~ScTokenIterator(); + void Reset(); + const ScToken* First(); + const ScToken* Next(); +}; + +struct ScArrayStack; + +class ScCompiler +{ +public: + static String* pSymbolTableNative; // Liste der Symbole: String[] + static String* pSymbolTableEnglish; // Liste der Symbole English + static USHORT nAnzStrings; // Anzahl der Symbole +private: + static USHORT* pCharTable; // char[]; + ScDocument* pDoc; + ScAddress aPos; + String cFormula; // String -> TokenArray + String aCorrectedFormula; // autocorrected Formula + String aCorrectedSymbol; // autocorrected Symbol + sal_Unicode cSymbol[MAXSTRLEN]; // current Symbol + String aFormula; // formula source code + xub_StrLen nSrcPos; // tokenizer position (source code) + ScTokenArray* pArr; + ScTokenRef pToken; + OpCode eLastOp; + ScToken** pCode; + ScArrayStack* pStack; + String* pSymbolTable; // welche SymbolTable benutzt wird + USHORT pc; + short nNumFmt; // bei CompileTokenArray() gesetzt + short nMaxTab; // letzte Tabelle im Doc + short nRecursion; // GetToken Rekursionen + BOOL glSubTotal; // Merkvariablen fuer Zelle + BOOL bAutoCorrect; // AutoCorrection ausfuehren + BOOL bCorrected; // AutoCorrection ausgefuehrt + BOOL bCompileForFAP; //! kein echtes RPN sondern Namen + // werden nicht aufgeloest + BOOL bIgnoreErrors; // bei AutoCorrect und CompileForFAP + // trotz Fehler RPN erzeugen + BOOL bCompileXML; + BOOL bImportXML; + + BOOL GetToken(); + BOOL NextNewToken(); + OpCode NextToken(); + ScToken* PersistToken( ScToken* ); + void PutCode( ScToken* ); + void Factor(); + void UnionCutLine(); + void Unary(); + void PowLine(); + void MulDivLine(); + void AddSubLine(); + void CompareLine(); + void NotLine(); + OpCode Expression(); + + String MakeColStr( USHORT nCol ); + String MakeRowStr( USHORT nRow ); + String MakeTabStr( USHORT nTab, String& aDoc ); + String MakeRefStr( ComplRefData& rRefData, BOOL bSingleRef ); + + void SetError(USHORT nError); + xub_StrLen NextSymbol(); + BOOL IsValue( const String& ); + BOOL IsOpCode( const String& ); + BOOL IsOpCode2( const String& ); + BOOL IsString(); + BOOL IsReference( const String& ); + BOOL IsMacro( const String& ); + BOOL IsNamedRange( const String& ); + BOOL IsDBRange( const String& ); + BOOL IsColRowName( const String& ); + void AutoCorrectParsedSymbol(); + void AdjustReference( SingleRefData& r ); + void PushTokenArray( ScTokenArray*, BOOL = FALSE ); + void PopTokenArray(); + void SetRelNameReference(); +public: + ScCompiler(ScDocument* pDocument, const ScAddress& ); + + ScCompiler( ScDocument* pDocument, const ScAddress&, + const ScTokenArray& rArr ); + + static void Init(); + static void DeInit(); + static void CheckTabQuotes( String& ); // fuer ScAddress::Format() + + // schliesst String in Quotes ein, wenn nicht-alphanumerische Zeichen + // enthalten sind, bestehende Quotes werden escaped + static BOOL EnQuote( String& ); + // entfernt Quotes, escaped Quotes werden unescaped + static BOOL DeQuote( String& ); + + //! _entweder_ CompileForFAP _oder_ AutoCorrection, _nicht_ beides + void SetCompileForFAP( BOOL bVal ) + { bCompileForFAP = bVal; bIgnoreErrors = bVal; } + void SetAutoCorrection( BOOL bVal ) + { bAutoCorrect = bVal; bIgnoreErrors = bVal; } + void SetCompileEnglish( BOOL bVal ); // use English SymbolTable + void SetCompileXML( BOOL bVal ) + { bCompileXML = bVal; } + void SetImportXML( BOOL bVal ) + { bImportXML = bVal; } + BOOL IsCorrected() { return bCorrected; } + const String& GetCorrectedFormula() { return aCorrectedFormula; } + ScTokenArray* CompileString( const String& rFormula ); + BOOL CompileTokenArray(); + short GetNumFormatType() { return nNumFmt; } + + ScToken* CreateStringFromToken( String& rFormula, ScToken* pToken, + BOOL bAllowArrAdvance = FALSE ); + void CreateStringFromTokenArray( String& rFormula ); + + void MoveRelWrap(); + static void MoveRelWrap( ScTokenArray& rArr, ScDocument* pDoc, + const ScAddress& rPos ); + + BOOL UpdateNameReference( UpdateRefMode eUpdateRefMode, + const ScRange&, + short nDx, short nDy, short nDz, + BOOL& rChanged); + + ScRangeData* UpdateReference( UpdateRefMode eUpdateRefMode, + const ScAddress& rOldPos, const ScRange&, + short nDx, short nDy, short nDz, + BOOL& rChanged); + + /// Only once for converted shared formulas, + /// token array has to be compiled afterwards. + void UpdateSharedFormulaReference( UpdateRefMode eUpdateRefMode, + const ScAddress& rOldPos, const ScRange&, + short nDx, short nDy, short nDz ); + + ScRangeData* UpdateInsertTab(USHORT nTable, BOOL bIsName ); + ScRangeData* UpdateDeleteTab(USHORT nTable, BOOL bIsMove, BOOL bIsName, BOOL& bCompile); + ScRangeData* UpdateMoveTab(USHORT nOldPos, USHORT nNewPos, BOOL bIsName ); + + BOOL HasModifiedRange(); + + /// Is the CharTable initialized? If not call Init() yourself! + static inline BOOL HasCharTable() { return pCharTable != NULL; } + + /// Access the CharTable flags + static inline USHORT GetCharTableFlags( sal_Unicode c ) + { return c < 128 ? pCharTable[ UINT8(c) ] : 0; } + + /// If the character is allowed as first character in sheet names or references + static inline BOOL IsCharWordChar( sal_Unicode c ) + { + return c < 128 ? + ((pCharTable[ UINT8(c) ] & SC_COMPILER_C_CHAR_WORD) == SC_COMPILER_C_CHAR_WORD) : + ScGlobal::pCharClass->isLetterNumeric( c ); + } + + /// If the character is allowed in sheet names or references + static inline BOOL IsWordChar( sal_Unicode c ) + { + return c < 128 ? + ((pCharTable[ UINT8(c) ] & SC_COMPILER_C_WORD) == SC_COMPILER_C_WORD) : + ScGlobal::pCharClass->isLetterNumeric( c ); + } +}; + +#endif diff --git a/sc/inc/conditio.hxx b/sc/inc/conditio.hxx new file mode 100644 index 000000000000..b1e86e832706 --- /dev/null +++ b/sc/inc/conditio.hxx @@ -0,0 +1,318 @@ +/************************************************************************* + * + * $RCSfile: conditio.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_CONDITIO_HXX +#define SC_CONDITIO_HXX + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" +#endif + +#ifndef _SVARRAY_HXX //autogen +#include <svtools/svarray.hxx> +#endif + +class ScBaseCell; +class ScFormulaCell; +class ScTokenArray; +class ScMultipleReadHeader; +class ScMultipleWriteHeader; +class ScRangeList; + + +#define SC_COND_GROW 16 + +// nOptions Flags +#define SC_COND_NOBLANKS 1 + + + // Reihenfolge von ScConditionMode wie ScQueryOp, + // damit einmal zusammengefasst werden kann: + +enum ScConditionMode +{ + SC_COND_EQUAL, + SC_COND_LESS, + SC_COND_GREATER, + SC_COND_EQLESS, + SC_COND_EQGREATER, + SC_COND_NOTEQUAL, + SC_COND_BETWEEN, + SC_COND_NOTBETWEEN, + SC_COND_DIRECT, + SC_COND_NONE +}; + +enum ScConditionValType +{ + SC_VAL_VALUE, + SC_VAL_STRING, + SC_VAL_FORMULA +}; + +class ScConditionEntry +{ + // gespeicherte Daten: + ScConditionMode eOp; + USHORT nOptions; + double nVal1; // eingegeben oder berechnet + double nVal2; + String aStrVal1; // eingegeben oder berechnet + String aStrVal2; + BOOL bIsStr1; // um auch leere Strings zu erkennen + BOOL bIsStr2; + ScTokenArray* pFormula1; // eingegebene Formel + ScTokenArray* pFormula2; + ScAddress aSrcPos; // Quell-Adresse fuer Formeln + // temporaere Daten: + ScFormulaCell* pFCell1; + ScFormulaCell* pFCell2; + ScDocument* pDoc; + BOOL bRelRef1; + BOOL bRelRef2; + BOOL bFirstRun; + + void MakeCells( const ScAddress& rPos ); + void Compile( const String& rExpr1, const String& rExpr2, BOOL bEnglish ); + void Interpret( const ScAddress& rPos ); + + BOOL IsValid( double nArg ) const; + BOOL IsValidStr( const String& rArg ) const; + +protected: + ScConditionEntry( SvStream& rStream, ScMultipleReadHeader& rHdr, + ScDocument* pDocument ); + void StoreCondition(SvStream& rStream, ScMultipleWriteHeader& rHdr) const; + +public: + ScConditionEntry( ScConditionMode eOper, + const String& rExpr1, const String& rExpr2, + ScDocument* pDocument, const ScAddress& rPos, + BOOL bCompileEnglish ); + ScConditionEntry( ScConditionMode eOper, + const ScTokenArray* pArr1, const ScTokenArray* pArr2, + ScDocument* pDocument, const ScAddress& rPos ); + ScConditionEntry( const ScConditionEntry& r ); // flache Kopie der Formeln + // echte Kopie der Formeln (fuer Ref-Undo): + ScConditionEntry( ScDocument* pDocument, const ScConditionEntry& r ); + ~ScConditionEntry(); + + int operator== ( const ScConditionEntry& r ) const; + + BOOL IsCellValid( ScBaseCell* pCell, const ScAddress& rPos ) const; + + ScConditionMode GetOperation() const { return eOp; } + BOOL IsIgnoreBlank() const { return ( nOptions & SC_COND_NOBLANKS ) == 0; } + void SetIgnoreBlank(BOOL bSet); + ScAddress GetSrcPos() const { return aSrcPos; } + + String GetExpression( const ScAddress& rCursor, USHORT nPos, + ULONG nNumFmt = 0, BOOL bEnglish = FALSE ) const; + + ScTokenArray* CreateTokenArry( USHORT nPos ) const; + + void CompileAll(); + void UpdateReference( UpdateRefMode eUpdateRefMode, + const ScRange& rRange, short nDx, short nDy, short nDz ); + void UpdateMoveTab( USHORT nOldPos, USHORT nNewPos ); + + void SourceChanged( const ScAddress& rChanged ); + +protected: + virtual void DataChanged( const ScRange* pModified ) const; + ScDocument* GetDocument() const { return pDoc; } +}; + +// +// einzelner Eintrag fuer bedingte Formatierung +// + +class ScConditionalFormat; + +class ScCondFormatEntry : public ScConditionEntry +{ + String aStyleName; + ScConditionalFormat* pParent; + +public: + ScCondFormatEntry( ScConditionMode eOper, + const String& rExpr1, const String& rExpr2, + ScDocument* pDocument, const ScAddress& rPos, + const String& rStyle, BOOL bCompileEnglish = FALSE ); + ScCondFormatEntry( ScConditionMode eOper, + const ScTokenArray* pArr1, const ScTokenArray* pArr2, + ScDocument* pDocument, const ScAddress& rPos, + const String& rStyle ); + ScCondFormatEntry( const ScCondFormatEntry& r ); + ScCondFormatEntry( ScDocument* pDocument, const ScCondFormatEntry& r ); + ScCondFormatEntry( SvStream& rStream, ScMultipleReadHeader& rHdr, + ScDocument* pDocument ); + ~ScCondFormatEntry(); + + void SetParent( ScConditionalFormat* pNew ) { pParent = pNew; } + + void Store(SvStream& rStream, ScMultipleWriteHeader& rHdr) const; + + int operator== ( const ScCondFormatEntry& r ) const; + + const String& GetStyle() const { return aStyleName; } + +protected: + virtual void DataChanged( const ScRange* pModified ) const; +}; + +// +// komplette bedingte Formatierung +// + +class ScConditionalFormat +{ + ScDocument* pDoc; + ScRangeList* pAreas; // Bereiche fuer Paint + ULONG nKey; // Index in Attributen + ScCondFormatEntry** ppEntries; + USHORT nEntryCount; + BOOL bIsUsed; // temporaer beim Speichern + +public: + ScConditionalFormat(ULONG nNewKey, ScDocument* pDocument); + ScConditionalFormat(const ScConditionalFormat& r); + ScConditionalFormat(SvStream& rStream, ScMultipleReadHeader& rHdr, + ScDocument* pDocument); + ~ScConditionalFormat(); + + // echte Kopie der Formeln (fuer Ref-Undo / zwischen Dokumenten) + ScConditionalFormat* Clone(ScDocument* pNewDoc = NULL) const; + + void Store(SvStream& rStream, ScMultipleWriteHeader& rHdr) const; + + void AddEntry( const ScCondFormatEntry& rNew ); + + BOOL IsEmpty() const { return (nEntryCount == 0); } + USHORT Count() const { return nEntryCount; } + + void CompileAll(); + void UpdateReference( UpdateRefMode eUpdateRefMode, + const ScRange& rRange, short nDx, short nDy, short nDz ); + void UpdateMoveTab( USHORT nOldPos, USHORT nNewPos ); + + void SourceChanged( const ScAddress& rAddr ); + + const ScCondFormatEntry* GetEntry( USHORT nPos ) const; + + const String& GetCellStyle( ScBaseCell* pCell, const ScAddress& rPos ) const; + + BOOL EqualEntries( const ScConditionalFormat& r ) const; + + void DoRepaint( const ScRange* pModified ); + void InvalidateArea(); + + ULONG GetKey() const { return nKey; } + void SetKey(ULONG nNew) { nKey = nNew; } // nur wenn nicht eingefuegt! + + void SetUsed(BOOL bSet) { bIsUsed = bSet; } + BOOL IsUsed() const { return bIsUsed; } + + // sortiert (per PTRARR) nach Index + // operator== nur fuer die Sortierung + BOOL operator ==( const ScConditionalFormat& r ) const { return nKey == r.nKey; } + BOOL operator < ( const ScConditionalFormat& r ) const { return nKey < r.nKey; } +}; + +// +// Liste der Bereiche und Formate: +// + +typedef ScConditionalFormat* ScConditionalFormatPtr; + +SV_DECL_PTRARR_SORT(ScConditionalFormats_Impl, ScConditionalFormatPtr, + SC_COND_GROW, SC_COND_GROW); + +class ScConditionalFormatList : public ScConditionalFormats_Impl +{ +public: + ScConditionalFormatList() {} + ScConditionalFormatList(const ScConditionalFormatList& rList); + ScConditionalFormatList(ScDocument* pNewDoc, const ScConditionalFormatList& rList); + ~ScConditionalFormatList() {} + + void InsertNew( ScConditionalFormat* pNew ) + { if (!Insert(pNew)) delete pNew; } + + ScConditionalFormat* GetFormat( ULONG nKey ); + + void Load( SvStream& rStream, ScDocument* pDocument ); + void Store( SvStream& rStream ) const; + void ResetUsed(); + + void CompileAll(); + void UpdateReference( UpdateRefMode eUpdateRefMode, + const ScRange& rRange, short nDx, short nDy, short nDz ); + void UpdateMoveTab( USHORT nOldPos, USHORT nNewPos ); + + void SourceChanged( const ScAddress& rAddr ); + + BOOL operator==( const ScConditionalFormatList& r ) const; // fuer Ref-Undo +}; + +#endif + + diff --git a/sc/inc/consoli.hxx b/sc/inc/consoli.hxx new file mode 100644 index 000000000000..f1643dd5a3a5 --- /dev/null +++ b/sc/inc/consoli.hxx @@ -0,0 +1,169 @@ +/************************************************************************* + * + * $RCSfile: consoli.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_CONSOLI_HXX +#define SC_CONSOLI_HXX + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" +#endif + +class ScDocument; + +// ----------------------------------------------------------------------- + +struct ScReferenceEntry // ohne Constructor ! +{ + USHORT nCol; + USHORT nRow; + USHORT nTab; +}; + + +//! Delta-Wert fuer Daten benutzen? + +class ScReferenceList // ohne Constructor ! +{ +private: + USHORT nCount; + USHORT nFullSize; // inkl. Fuell-Eintraege + ScReferenceEntry* pData; + +public: + void Init() { nCount=0; nFullSize=0; pData=NULL; } + void Clear() { delete[] pData; } + + USHORT GetCount() { return nCount; } + const ScReferenceEntry& GetEntry( USHORT nPos ) { return pData[nPos]; } + void SetFullSize( USHORT nNew ) { nFullSize = nNew; } + + void AddEntry( USHORT nCol, USHORT nRow, USHORT nTab ); +}; + +// ----------------------------------------------------------------------- + + +// +// Reihenfolge: +// 1) ScConsData anlegen +// 2) Parameter (Size/Flags) +// 3) AddFields fuer alle Bereiche (nur noetig bei bColByName oder bRowByName) +// 4) DoneFields ( " " ) +// 5) AddData fuer alle Bereiche +// evtl. AddName nach jedem Bereich +// 6) OutputToDocument +// + +//! ab bestimmter Groesse ScDocument Struktur benutzen? + + +class ScConsData +{ +private: + ScSubTotalFunc eFunction; + BOOL bReference; + BOOL bColByName; + BOOL bRowByName; + BOOL bSubTitles; + USHORT nColCount; + USHORT nRowCount; + BOOL** ppUsed; + double** ppSum; + double** ppCount; + double** ppSumSqr; + ScReferenceList** ppRefs; + String** ppColHeaders; + String** ppRowHeaders; + USHORT nDataCount; + USHORT nTitleCount; + String** ppTitles; + USHORT** ppTitlePos; + BOOL bCornerUsed; + String aCornerText; // nur bei bColByName && bRowByName + +public: + ScConsData(); + ~ScConsData(); + + void SetSize( USHORT nCols, USHORT nRows ); + void SetFlags( ScSubTotalFunc eFunc, BOOL bColName, BOOL bRowName, BOOL bRef ); + + void InitData(BOOL bDelete=TRUE); + void DeleteData(); + + void AddFields( ScDocument* pSrcDoc, USHORT nTab, + USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2 ); + void DoneFields(); + + void AddData( ScDocument* pSrcDoc, USHORT nTab, + USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2 ); + void AddName( const String& rName ); + + void OutputToDocument( ScDocument* pDestDoc, USHORT nCol, USHORT nRow, USHORT nTab ); + + void GetSize( USHORT& rCols, USHORT& rRows ) const; + USHORT GetInsertCount() const; +}; + + +#endif + + diff --git a/sc/inc/convuno.hxx b/sc/inc/convuno.hxx new file mode 100644 index 000000000000..41423fb7326c --- /dev/null +++ b/sc/inc/convuno.hxx @@ -0,0 +1,90 @@ +/************************************************************************* + * + * $RCSfile: convuno.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_CONVUNO_HXX +#define SC_CONVUNO_HXX + +#ifndef _LANG_HXX +#include <tools/lang.hxx> +#endif + +#ifndef _COM_SUN_STAR_TABLE_CELLRANGEADDRESS_HPP_ +#include <com/sun/star/table/CellRangeAddress.hpp> +#endif + +#ifndef _COM_SUN_STAR_LANG_LOCALE_HPP_ +#include <com/sun/star/lang/Locale.hpp> +#endif + +class ScRange; + +class ScUnoConversion +{ +public: + static void FillRange( ScRange& rDest, const com::sun::star::table::CellRangeAddress& rSource ); + static void FillAddress( com::sun::star::table::CellRangeAddress& rDest, const ScRange& rSource ); + static LanguageType GetLanguage( const com::sun::star::lang::Locale& rLocale ); + static void FillLocale( com::sun::star::lang::Locale& rLocale, LanguageType eLang ); +}; + + +#endif + diff --git a/sc/inc/cursuno.hxx b/sc/inc/cursuno.hxx new file mode 100644 index 000000000000..a9cfede7b752 --- /dev/null +++ b/sc/inc/cursuno.hxx @@ -0,0 +1,150 @@ +/************************************************************************* + * + * $RCSfile: cursuno.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_CURSUNO_HXX +#define SC_CURSUNO_HXX + +#ifndef SC_CELLSUNO_HXX +#include "cellsuno.hxx" +#endif + +#ifndef _COM_SUN_STAR_TABLE_XCELLCURSOR_HPP_ +#include <com/sun/star/table/XCellCursor.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XSHEETCELLCURSOR_HPP_ +#include <com/sun/star/sheet/XSheetCellCursor.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XUSEDAREACURSOR_HPP_ +#include <com/sun/star/sheet/XUsedAreaCursor.hpp> +#endif + +class ScCellCursorObj : public ScCellRangeObj, + public com::sun::star::sheet::XSheetCellCursor, + public com::sun::star::sheet::XUsedAreaCursor, + public com::sun::star::table::XCellCursor +{ +public: + ScCellCursorObj(ScDocShell* pDocSh, const ScRange& rR); + virtual ~ScCellCursorObj(); + + virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( + const ::com::sun::star::uno::Type & rType ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL acquire() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL release() throw(::com::sun::star::uno::RuntimeException); + + // XSheetCellCursor + virtual void SAL_CALL collapseToCurrentRegion() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL collapseToCurrentArray() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL collapseToMergedArea() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL expandToEntireColumns() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL expandToEntireRows() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL collapseToSize( sal_Int32 nColumns, sal_Int32 nRows ) + throw(::com::sun::star::uno::RuntimeException); + + // XUsedAreaCursor + virtual void SAL_CALL gotoStartOfUsedArea( sal_Bool bExpand ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL gotoEndOfUsedArea( sal_Bool bExpand ) + throw(::com::sun::star::uno::RuntimeException); + + // XCellCursor + virtual void SAL_CALL gotoStart() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL gotoEnd() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL gotoNext() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL gotoPrevious() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL gotoOffset( sal_Int32 nColumnOffset, sal_Int32 nRowOffset ) + throw(::com::sun::star::uno::RuntimeException); + + // XSheetCellRange + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSpreadsheet > SAL_CALL + getSpreadsheet() throw(::com::sun::star::uno::RuntimeException); + + // XCellRange + virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XCell > SAL_CALL + getCellByPosition( sal_Int32 nColumn, sal_Int32 nRow ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XCellRange > SAL_CALL + getCellRangeByPosition( sal_Int32 nLeft, sal_Int32 nTop, + sal_Int32 nRight, sal_Int32 nBottom ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XCellRange > SAL_CALL + getCellRangeByName( const ::rtl::OUString& aRange ) + throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); + + // XTypeProvider + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() + throw(::com::sun::star::uno::RuntimeException); +}; + + +#endif + diff --git a/sc/inc/dapiuno.hxx b/sc/inc/dapiuno.hxx new file mode 100644 index 000000000000..f35eb73fa83b --- /dev/null +++ b/sc/inc/dapiuno.hxx @@ -0,0 +1,495 @@ +/************************************************************************* + * + * $RCSfile: dapiuno.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_DAPIUNO_HXX +#define SC_DAPIUNO_HXX + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" +#endif + +#ifndef SC_RANGEUTL_HXX +#include "rangeutl.hxx" // ScArea +#endif + +#ifndef _SFXLSTNER_HXX //autogen +#include <svtools/lstner.hxx> +#endif + +#ifndef _SFX_ITEMPROP_HXX +#include <svtools/itemprop.hxx> +#endif + +#ifndef _COM_SUN_STAR_SHEET_XDATAPILOTTABLE_HPP_ +#include <com/sun/star/sheet/XDataPilotTable.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XDATAPILOTTABLES_HPP_ +#include <com/sun/star/sheet/XDataPilotTables.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XDATAPILOTDESCRIPTOR_HPP_ +#include <com/sun/star/sheet/XDataPilotDescriptor.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_ +#include <com/sun/star/lang/XServiceInfo.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XENUMERATIONACCESS_HPP_ +#include <com/sun/star/container/XEnumerationAccess.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_GENERALFUNCTION_HPP_ +#include <com/sun/star/sheet/GeneralFunction.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_DATAPILOTFIELDORIENTATION_HPP_ +#include <com/sun/star/sheet/DataPilotFieldOrientation.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XUNOTUNNEL_HPP_ +#include <com/sun/star/lang/XUnoTunnel.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_ +#include <com/sun/star/beans/XPropertySet.hpp> +#endif + +#ifndef _CPPUHELPER_IMPLBASE3_HXX_ +#include <cppuhelper/implbase3.hxx> +#endif +#ifndef _CPPUHELPER_IMPLBASE4_HXX_ +#include <cppuhelper/implbase4.hxx> +#endif + + +class ScDocShell; +class ScPivot; + +class ScDataPilotTableObj; +class ScDataPilotFieldObj; + + +#define SC_FIELDORIENT_ALL USHRT_MAX + + +class ScDataPilotConversion +{ +public: + static com::sun::star::sheet::GeneralFunction FirstFunc( USHORT nBits ); + static USHORT FunctionBit( com::sun::star::sheet::GeneralFunction eFunc ); +}; + + + +// DataPilotTables Collection ist pro Tabelle + +class ScDataPilotTablesObj : public cppu::WeakImplHelper4< + com::sun::star::sheet::XDataPilotTables, + com::sun::star::container::XEnumerationAccess, + com::sun::star::container::XIndexAccess, + com::sun::star::lang::XServiceInfo>, + public SfxListener +{ +private: + ScDocShell* pDocShell; + USHORT nTab; + + ScDataPilotTableObj* GetObjectByIndex_Impl(USHORT nIndex); + ScDataPilotTableObj* GetObjectByName_Impl(const ::rtl::OUString& aName); + +public: + ScDataPilotTablesObj(ScDocShell* pDocSh, USHORT nT); + virtual ~ScDataPilotTablesObj(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // XDataPilotTables + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XDataPilotDescriptor > SAL_CALL + createDataPilotDescriptor() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL insertNewByName( const ::rtl::OUString& aName, + const ::com::sun::star::table::CellAddress& aOutputAddress, + const ::com::sun::star::uno::Reference< + ::com::sun::star::sheet::XDataPilotDescriptor >& xDescriptor ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XNameAccess + virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XIndexAccess + virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) + throw(::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XEnumerationAccess + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL + createEnumeration() throw(::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +// ScDataPilotDescriptorBase is never instantiated directly +class ScDataPilotDescriptorBase : public com::sun::star::sheet::XDataPilotDescriptor, + public com::sun::star::lang::XServiceInfo, + public com::sun::star::lang::XUnoTunnel, + public com::sun::star::lang::XTypeProvider, + public cppu::OWeakObject, + public SfxListener +{ +private: + ScDocShell* pDocShell; + +public: + ScDataPilotDescriptorBase(ScDocShell* pDocSh); + virtual ~ScDataPilotDescriptorBase(); + + virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( + const ::com::sun::star::uno::Type & rType ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL acquire() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL release() throw(::com::sun::star::uno::RuntimeException); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + ScDocShell* GetDocShell() const { return pDocShell; } + + // in den Ableitungen: + virtual void GetParam( ScPivotParam& rParam, ScQueryParam& rQuery, + ScArea& rSrcArea ) const = 0; + virtual void SetParam( const ScPivotParam& rParam, const ScQueryParam& rQuery, + const ScArea& rSrcArea ) = 0; + + // XDataPilotDescriptor + // getName, setName, getTag, setTag in derived classes + + virtual ::com::sun::star::table::CellRangeAddress SAL_CALL getSourceRange() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setSourceRange( const ::com::sun::star::table::CellRangeAddress& aSourceRange ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSheetFilterDescriptor > SAL_CALL + getFilterDescriptor() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL + getDataPilotFields() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL + getColumnFields() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL + getRowFields() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL + getPageFields() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL + getDataFields() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL + getHiddenFields() throw(::com::sun::star::uno::RuntimeException); + + // XUnoTunnel + virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< + sal_Int8 >& aIdentifier ) + throw(::com::sun::star::uno::RuntimeException); + + static const com::sun::star::uno::Sequence<sal_Int8>& getUnoTunnelId(); + static ScDataPilotDescriptorBase* getImplementation( const com::sun::star::uno::Reference< + com::sun::star::sheet::XDataPilotDescriptor> xObj ); + + // XTypeProvider (overloaded in ScDataPilotTableObj) + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() + throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo is in derived classes +}; + + +class ScDataPilotDescriptor : public ScDataPilotDescriptorBase +{ +private: + ScPivotParam aParam; + ScQueryParam aQuery; + ScArea aSrcArea; + String aNameStr; + String aTagStr; + +public: + ScDataPilotDescriptor(ScDocShell* pDocSh); + virtual ~ScDataPilotDescriptor(); + + virtual void GetParam( ScPivotParam& rParam, ScQueryParam& rQuery, ScArea& rSrcArea ) const; + virtual void SetParam( const ScPivotParam& rParam, + const ScQueryParam& rQuery, const ScArea& rSrcArea ); + + // rest of XDataPilotDescriptor (incl. XNamed) + virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::rtl::OUString SAL_CALL getTag() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setTag( const ::rtl::OUString& aTag ) + throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScDataPilotTableObj : public ScDataPilotDescriptorBase, + public com::sun::star::sheet::XDataPilotTable +{ +private: + USHORT nTab; + String aName; + +public: + ScDataPilotTableObj(ScDocShell* pDocSh, USHORT nT, const String& rN); + virtual ~ScDataPilotTableObj(); + + virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( + const ::com::sun::star::uno::Type & rType ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL acquire() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL release() throw(::com::sun::star::uno::RuntimeException); + + virtual void GetParam( ScPivotParam& rParam, ScQueryParam& rQuery, ScArea& rSrcArea ) const; + virtual void SetParam( const ScPivotParam& rParam, + const ScQueryParam& rQuery, const ScArea& rSrcArea ); + + // rest of XDataPilotDescriptor (incl. XNamed) + virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::rtl::OUString SAL_CALL getTag() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setTag( const ::rtl::OUString& aTag ) + throw(::com::sun::star::uno::RuntimeException); + + // XDataPilotTable + virtual ::com::sun::star::table::CellRangeAddress SAL_CALL getOutputRange() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL refresh() throw(::com::sun::star::uno::RuntimeException); + + // XTypeProvider (overloaded) + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() + throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScDataPilotFieldsObj : public cppu::WeakImplHelper4< + com::sun::star::container::XEnumerationAccess, + com::sun::star::container::XIndexAccess, + com::sun::star::container::XNameAccess, + com::sun::star::lang::XServiceInfo> +{ +private: + ScDataPilotDescriptorBase* pParent; + USHORT nType; // DataPilotFieldOrientation oder SC_FIELDORIENT_ALL + + ScDataPilotFieldObj* GetObjectByIndex_Impl(USHORT nIndex) const; + ScDataPilotFieldObj* GetObjectByName_Impl(const ::rtl::OUString& aName) const; + +public: + ScDataPilotFieldsObj(ScDataPilotDescriptorBase* pPar, USHORT nTy); + virtual ~ScDataPilotFieldsObj(); + + // XNameAccess + virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XIndexAccess + virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) + throw(::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XEnumerationAccess + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL + createEnumeration() throw(::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScDataPilotFieldObj : public cppu::WeakImplHelper3< + com::sun::star::container::XNamed, + com::sun::star::beans::XPropertySet, + com::sun::star::lang::XServiceInfo> +{ +private: + SfxItemPropertySet aPropSet; + ScDataPilotDescriptorBase* pParent; + USHORT nField; // Spalte im Datenbereich + USHORT nSourceType; + USHORT nSourcePos; + +public: + ScDataPilotFieldObj(ScDataPilotDescriptorBase* pPar, + USHORT nF, USHORT nST, USHORT nSP); + virtual ~ScDataPilotFieldObj(); + + // XNamed + virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XPropertySet + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > + SAL_CALL getPropertySetInfo( ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Any& aValue ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::beans::PropertyVetoException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( + const ::rtl::OUString& PropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& xListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // nur noch aus Property-Funktionen gerufen: + com::sun::star::sheet::DataPilotFieldOrientation getOrientation(void) const; + void setOrientation(com::sun::star::sheet::DataPilotFieldOrientation Orientation); + com::sun::star::sheet::GeneralFunction getFunction(void) const; + void setFunction(com::sun::star::sheet::GeneralFunction Function); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +#endif + diff --git a/sc/inc/datauno.hxx b/sc/inc/datauno.hxx new file mode 100644 index 000000000000..c62a0d361e9f --- /dev/null +++ b/sc/inc/datauno.hxx @@ -0,0 +1,719 @@ +/************************************************************************* + * + * $RCSfile: datauno.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_DATAUNO_HXX +#define SC_DATAUNO_HXX + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" +#endif + +#ifndef _SFX_ITEMPROP_HXX +#include <svtools/itemprop.hxx> +#endif + +#ifndef _SFXLSTNER_HXX //autogen +#include <svtools/lstner.hxx> +#endif + +#ifndef _COM_SUN_STAR_SHEET_TABLEFILTERFIELD_HPP_ +#include <com/sun/star/sheet/TableFilterField.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_GENERALFUNCTION_HPP_ +#include <com/sun/star/sheet/GeneralFunction.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XCELLRANGEREFERRER_HPP_ +#include <com/sun/star/sheet/XCellRangeReferrer.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XSHEETFILTERDESCRIPTOR_HPP_ +#include <com/sun/star/sheet/XSheetFilterDescriptor.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XCONSOLIDATIONDESCRIPTOR_HPP_ +#include <com/sun/star/sheet/XConsolidationDescriptor.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XDATABASERANGES_HPP_ +#include <com/sun/star/sheet/XDatabaseRanges.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XDATABASERANGE_HPP_ +#include <com/sun/star/sheet/XDatabaseRange.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XSUBTOTALDESCRIPTOR_HPP_ +#include <com/sun/star/sheet/XSubTotalDescriptor.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XSUBTOTALFIELD_HPP_ +#include <com/sun/star/sheet/XSubTotalField.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_ +#include <com/sun/star/lang/XServiceInfo.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XENUMERATIONACCESS_HPP_ +#include <com/sun/star/container/XEnumerationAccess.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XINDEXACCESS_HPP_ +#include <com/sun/star/container/XIndexAccess.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_ +#include <com/sun/star/beans/XPropertySet.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XUNOTUNNEL_HPP_ +#include <com/sun/star/lang/XUnoTunnel.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XNAMED_HPP_ +#include <com/sun/star/container/XNamed.hpp> +#endif + +#ifndef _CPPUHELPER_IMPLBASE2_HXX_ +#include <cppuhelper/implbase2.hxx> +#endif +#ifndef _CPPUHELPER_IMPLBASE3_HXX_ +#include <cppuhelper/implbase3.hxx> +#endif +#ifndef _CPPUHELPER_IMPLBASE4_HXX_ +#include <cppuhelper/implbase4.hxx> +#endif +#ifndef _CPPUHELPER_IMPLBASE5_HXX_ +#include <cppuhelper/implbase5.hxx> +#endif +#ifndef _CPPUHELPER_IMPLBASE6_HXX_ +#include <cppuhelper/implbase6.hxx> +#endif + +class ScDBData; +class ScDocShell; + +class ScSubTotalFieldObj; +class ScDatabaseRangeObj; +class ScDataPilotDescriptorBase; + + +class ScDataUnoConversion +{ +public: + static ScSubTotalFunc GeneralToSubTotal( com::sun::star::sheet::GeneralFunction eSummary ); + static com::sun::star::sheet::GeneralFunction SubTotalToGeneral( ScSubTotalFunc eSubTotal ); +}; + + +// ImportDescriptor gibt's nicht mehr als Uno-Objekt, nur noch Property-Sequence + +class ScImportDescriptor +{ +public: + static void FillImportParam( + ScImportParam& rParam, + const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& rSeq ); + static void FillProperties( + com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& rSeq, + const ScImportParam& rParam ); + static long GetPropertyCount(); +}; + +// SortDescriptor gibt's nicht mehr als Uno-Objekt, nur noch Property-Sequence + +class ScSortDescriptor +{ +public: + static void FillSortParam( + ScSortParam& rParam, + const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& rSeq ); + static void FillProperties( + com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& rSeq, + const ScSortParam& rParam ); + static long GetPropertyCount(); +}; + + +// ScSubTotalDescriptorBase - Basisklasse fuer SubTotalDescriptor alleine und im DB-Bereich + +// to uno, both look the same + +class ScSubTotalDescriptorBase : public cppu::WeakImplHelper6< + com::sun::star::sheet::XSubTotalDescriptor, + com::sun::star::container::XEnumerationAccess, + com::sun::star::container::XIndexAccess, + com::sun::star::beans::XPropertySet, + com::sun::star::lang::XUnoTunnel, + com::sun::star::lang::XServiceInfo > +{ +private: + SfxItemPropertySet aPropSet; + + ScSubTotalFieldObj* GetObjectByIndex_Impl(USHORT nIndex); + +public: + ScSubTotalDescriptorBase(); + virtual ~ScSubTotalDescriptorBase(); + + // in derived classes: + // (Fields are within the range) + virtual void GetData( ScSubTotalParam& rParam ) const = 0; + virtual void PutData( const ScSubTotalParam& rParam ) = 0; + + // XSubTotalDescriptor + virtual void SAL_CALL addNew( const ::com::sun::star::uno::Sequence< + ::com::sun::star::sheet::SubTotalColumn >& aSubTotalColumns, + sal_Int32 nGroupColumn ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL clear() throw(::com::sun::star::uno::RuntimeException); + + // XIndexAccess + virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) + throw(::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XEnumerationAccess + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL + createEnumeration() throw(::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XPropertySet + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > + SAL_CALL getPropertySetInfo() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Any& aValue ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::beans::PropertyVetoException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( + const ::rtl::OUString& PropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& xListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XUnoTunnel + virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< + sal_Int8 >& aIdentifier ) + throw(::com::sun::star::uno::RuntimeException); + + static const com::sun::star::uno::Sequence<sal_Int8>& getUnoTunnelId(); + static ScSubTotalDescriptorBase* getImplementation( const com::sun::star::uno::Reference< + com::sun::star::sheet::XSubTotalDescriptor> xObj ); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +// ScSubTotalDescriptor - dummer Container zur Benutzung mit XImportTarget + +class ScSubTotalDescriptor : public ScSubTotalDescriptorBase +{ +private: + ScSubTotalParam aStoredParam; + +public: + ScSubTotalDescriptor(); + virtual ~ScSubTotalDescriptor(); + + // von ScSubTotalDescriptorBase: + virtual void GetData( ScSubTotalParam& rParam ) const; + virtual void PutData( const ScSubTotalParam& rParam ); + + // Zugriff von aussen: + void SetParam( const ScSubTotalParam& rNew ); +// const ScSubTotalParam& GetParam() const { return aStoredParam; } +}; + + +// ScRangeSubTotalDescriptor - SubTotalDescriptor eines Datenbank-Bereichs + +class ScRangeSubTotalDescriptor : public ScSubTotalDescriptorBase +{ +private: + ScDatabaseRangeObj* pParent; + +public: + ScRangeSubTotalDescriptor(ScDatabaseRangeObj* pPar); + virtual ~ScRangeSubTotalDescriptor(); + + // von ScSubTotalDescriptorBase: + virtual void GetData( ScSubTotalParam& rParam ) const; + virtual void PutData( const ScSubTotalParam& rParam ); +}; + + +class ScSubTotalFieldObj : public cppu::WeakImplHelper2< + com::sun::star::sheet::XSubTotalField, + com::sun::star::lang::XServiceInfo > +{ +private: + com::sun::star::uno::Reference<com::sun::star::sheet::XSubTotalDescriptor> xRef; + ScSubTotalDescriptorBase& rParent; + USHORT nPos; + +public: + ScSubTotalFieldObj( ScSubTotalDescriptorBase* pDesc, USHORT nP ); + virtual ~ScSubTotalFieldObj(); + + // XSubTotalField + virtual sal_Int32 SAL_CALL getGroupColumn() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setGroupColumn( sal_Int32 nGroupColumn ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::sheet::SubTotalColumn > SAL_CALL + getSubTotalColumns() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setSubTotalColumns( const ::com::sun::star::uno::Sequence< + ::com::sun::star::sheet::SubTotalColumn >& aSubTotalColumns ) + throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScConsolidationDescriptor : public cppu::WeakImplHelper2< + com::sun::star::sheet::XConsolidationDescriptor, + com::sun::star::lang::XServiceInfo > +{ +private: + ScConsolidateParam aParam; + +public: + ScConsolidationDescriptor(); + virtual ~ScConsolidationDescriptor(); + + void SetParam( const ScConsolidateParam& rNew ); + const ScConsolidateParam& GetParam() const { return aParam; } + + // XConsolidationDescriptor + virtual ::com::sun::star::sheet::GeneralFunction SAL_CALL getFunction() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setFunction( ::com::sun::star::sheet::GeneralFunction nFunction ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::table::CellRangeAddress > SAL_CALL + getSources( ) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setSources( const ::com::sun::star::uno::Sequence< + ::com::sun::star::table::CellRangeAddress >& aSources ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::table::CellAddress SAL_CALL getStartOutputPosition() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setStartOutputPosition( + const ::com::sun::star::table::CellAddress& aStartOutputPosition ) + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL getUseColumnHeaders() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setUseColumnHeaders( sal_Bool bUseColumnHeaders ) + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL getUseRowHeaders() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setUseRowHeaders( sal_Bool bUseRowHeaders ) + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL getInsertLinks() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setInsertLinks( sal_Bool bInsertLinks ) + throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +// ScFilterDescriptorBase - Basisklasse fuer FilterDescriptor +// alleine, im DB-Bereich und im DataPilot + +// to uno, all three look the same + +class ScFilterDescriptorBase : public cppu::WeakImplHelper3< + com::sun::star::sheet::XSheetFilterDescriptor, + com::sun::star::beans::XPropertySet, + com::sun::star::lang::XServiceInfo > +{ +private: + SfxItemPropertySet aPropSet; + +public: + ScFilterDescriptorBase(); + virtual ~ScFilterDescriptorBase(); + + // in den Ableitungen: + // (nField[] hier innerhalb des Bereichs) + virtual void GetData( ScQueryParam& rParam ) const = 0; + virtual void PutData( const ScQueryParam& rParam ) = 0; + + // XSheetFilterDescriptor + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::sheet::TableFilterField > SAL_CALL + getFilterFields() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setFilterFields( const ::com::sun::star::uno::Sequence< + ::com::sun::star::sheet::TableFilterField >& aFilterFields ) + throw(::com::sun::star::uno::RuntimeException); + + // XPropertySet + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > + SAL_CALL getPropertySetInfo() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Any& aValue ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::beans::PropertyVetoException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( + const ::rtl::OUString& PropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& xListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +// ScFilterDescriptor - dummer Container zur Benutzung mit XFilterable + +class ScFilterDescriptor : public ScFilterDescriptorBase +{ +private: + ScQueryParam aStoredParam; // nField[] hier innerhalb des Bereichs + +public: + ScFilterDescriptor(); + virtual ~ScFilterDescriptor(); + + // von ScFilterDescriptorBase: + virtual void GetData( ScQueryParam& rParam ) const; + virtual void PutData( const ScQueryParam& rParam ); + + // Zugriff von aussen: + void SetParam( const ScQueryParam& rNew ); + const ScQueryParam& GetParam() const { return aStoredParam; } +}; + + +// ScRangeFilterDescriptor - FilterDescriptor eines Datenbank-Bereichs + +class ScRangeFilterDescriptor : public ScFilterDescriptorBase +{ +private: + ScDatabaseRangeObj* pParent; + +public: + ScRangeFilterDescriptor(ScDatabaseRangeObj* pPar); + virtual ~ScRangeFilterDescriptor(); + + // von ScFilterDescriptorBase: + virtual void GetData( ScQueryParam& rParam ) const; + virtual void PutData( const ScQueryParam& rParam ); +}; + + +// ScDataPilotFilterDescriptor - FilterDescriptor eines DataPilotDescriptors + +class ScDataPilotFilterDescriptor : public ScFilterDescriptorBase +{ +private: + ScDataPilotDescriptorBase* pParent; + +public: + ScDataPilotFilterDescriptor(ScDataPilotDescriptorBase* pPar); + virtual ~ScDataPilotFilterDescriptor(); + + // von ScFilterDescriptorBase: + virtual void GetData( ScQueryParam& rParam ) const; + virtual void PutData( const ScQueryParam& rParam ); +}; + + +class ScDatabaseRangeObj : public cppu::WeakImplHelper5< + com::sun::star::sheet::XDatabaseRange, + com::sun::star::container::XNamed, + com::sun::star::sheet::XCellRangeReferrer, + com::sun::star::beans::XPropertySet, + com::sun::star::lang::XServiceInfo >, + public SfxListener +{ +private: + ScDocShell* pDocShell; + String aName; + SfxItemPropertySet aPropSet; + +private: + ScDBData* GetDBData_Impl() const; + +public: + ScDatabaseRangeObj(ScDocShell* pDocSh, const String& rNm); + virtual ~ScDatabaseRangeObj(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // nField[] hier innerhalb des Bereichs: + void GetQueryParam(ScQueryParam& rQueryParam) const; + void SetQueryParam(const ScQueryParam& rQueryParam); + void GetSortParam(ScSortParam& rSortParam) const; + void SetSortParam(const ScSortParam& rSortParam); + void GetImportParam(ScImportParam& rImportParam) const; + void SetImportParam(const ScImportParam& rImportParam); + void GetSubTotalParam(ScSubTotalParam& rSubTotalParam) const; + void SetSubTotalParam(const ScSubTotalParam& rSubTotalParam); + + // XNamed + virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XDatabaseRange + virtual ::com::sun::star::table::CellRangeAddress SAL_CALL getDataArea() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setDataArea( const ::com::sun::star::table::CellRangeAddress& aDataArea ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL + getSortDescriptor() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSheetFilterDescriptor > SAL_CALL + getFilterDescriptor() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSubTotalDescriptor > SAL_CALL + getSubTotalDescriptor() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL + getImportDescriptor() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL refresh() throw(::com::sun::star::uno::RuntimeException); + + // XCellRangeReferrer + virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XCellRange > SAL_CALL + getReferredCells() throw(::com::sun::star::uno::RuntimeException); + + // XPropertySet + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > + SAL_CALL getPropertySetInfo() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Any& aValue ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::beans::PropertyVetoException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( + const ::rtl::OUString& PropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& xListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScDatabaseRangesObj : public cppu::WeakImplHelper4< + com::sun::star::sheet::XDatabaseRanges, + com::sun::star::container::XEnumerationAccess, + com::sun::star::container::XIndexAccess, + com::sun::star::lang::XServiceInfo >, + public SfxListener +{ +private: + ScDocShell* pDocShell; + + ScDatabaseRangeObj* GetObjectByIndex_Impl(USHORT nIndex); + ScDatabaseRangeObj* GetObjectByName_Impl(const ::rtl::OUString& aName); + +public: + ScDatabaseRangesObj(ScDocShell* pDocSh); + virtual ~ScDatabaseRangesObj(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // XDatabaseRanges + virtual void SAL_CALL addNewByName( const ::rtl::OUString& aName, + const ::com::sun::star::table::CellRangeAddress& aRange ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XEnumerationAccess + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL + createEnumeration() throw(::com::sun::star::uno::RuntimeException); + + // XIndexAccess + virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) + throw(::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XNameAccess + virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + + +#endif + diff --git a/sc/inc/dbcolect.hxx b/sc/inc/dbcolect.hxx new file mode 100644 index 000000000000..70bf65fa07e5 --- /dev/null +++ b/sc/inc/dbcolect.hxx @@ -0,0 +1,280 @@ +/************************************************************************* + * + * $RCSfile: dbcolect.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_DBCOLECT_HXX +#define SC_DBCOLECT_HXX + +#ifndef SC_COLLECT_HXX +#include "collect.hxx" +#endif + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" // ->Konstanten (MAXSORT, MAXQUERY) +#endif + + +//------------------------------------------------------------------------ + +class ScDocument; +class ScMultipleReadHeader; +class ScMultipleWriteHeader; + +//------------------------------------------------------------------------ + +class ScDBData : public DataObject +{ + +private: + // DBParam + String aName; + USHORT nTable; + USHORT nStartCol; + USHORT nStartRow; + USHORT nEndCol; + USHORT nEndRow; + BOOL bByRow; + BOOL bHasHeader; + BOOL bDoSize; + BOOL bKeepFmt; + BOOL bStripData; + // SortParam + BOOL bSortCaseSens; + BOOL bIncludePattern; + BOOL bSortInplace; + BOOL bSortUserDef; + USHORT nSortUserIndex; + USHORT nSortDestTab; + USHORT nSortDestCol; + USHORT nSortDestRow; + BOOL bDoSort[MAXSORT]; + USHORT nSortField[MAXSORT]; + BOOL bAscending[MAXSORT]; + // QueryParam + BOOL bQueryInplace; + BOOL bQueryCaseSens; + BOOL bQueryRegExp; + BOOL bQueryDuplicate; + USHORT nQueryDestTab; + USHORT nQueryDestCol; + USHORT nQueryDestRow; + BOOL bDoQuery[MAXQUERY]; + USHORT nQueryField[MAXQUERY]; + ScQueryOp eQueryOp[MAXQUERY]; + BOOL bQueryByString[MAXQUERY]; + String* pQueryStr[MAXQUERY]; + double nQueryVal[MAXQUERY]; + ScQueryConnect eQueryConnect[MAXQUERY]; + BOOL bIsAdvanced; // TRUE if created by advanced filter + ScRange aAdvSource; // source range + // SubTotalParam + BOOL bSubRemoveOnly; + BOOL bSubReplace; + BOOL bSubPagebreak; + BOOL bSubCaseSens; + BOOL bSubDoSort; + BOOL bSubAscending; + BOOL bSubIncludePattern; + BOOL bSubUserDef; + USHORT nSubUserIndex; + BOOL bDoSubTotal[MAXSUBTOTAL]; + USHORT nSubField[MAXSUBTOTAL]; + USHORT nSubTotals[MAXSUBTOTAL]; + USHORT* pSubTotals[MAXSUBTOTAL]; + ScSubTotalFunc* pFunctions[MAXSUBTOTAL]; + // Datenbank-Import + BOOL bDBImport; + String aDBName; + String aDBStatement; + BOOL bDBNative; + BOOL bDBSelection; // nicht im Param: Wenn Selektion, Update sperren + BOOL bDBSql; // aDBStatement ist SQL und kein Name + BYTE nDBType; // enum DBObject (bisher nur dbTable, dbQuery) + + USHORT nIndex; // eindeutiger Index fuer Formeln + USHORT nExportIndex; // used by Xcl export + BOOL bAutoFilter; // AutoFilter? (nicht gespeichert) + BOOL bModified; // wird bei UpdateReference gesetzt/geloescht + +public: + ScDBData(const String& rName, + USHORT nTab, + USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2, + BOOL bByR = TRUE, BOOL bHasH = TRUE); + ScDBData(const ScDBData& rData); + ScDBData( SvStream& rStream, ScMultipleReadHeader& rHdr ); + ~ScDBData(); + + virtual DataObject* Clone() const; + + ScDBData& operator= (const ScDBData& rData); + + BOOL operator== (const ScDBData& rData) const; + + BOOL Store( SvStream& rStream, ScMultipleWriteHeader& rHdr ) const; + + const String& GetName() const { return aName; } + void GetName(String& rName) const { rName = aName; } + void SetName(const String& rName) { aName = rName; } + void GetArea(USHORT& rTab, USHORT& rCol1, USHORT& rRow1, USHORT& rCol2, USHORT& rRow2) const; + void GetArea(ScRange& rRange) const; + void SetArea(USHORT nTab, USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2); + void MoveTo(USHORT nTab, USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2); + BOOL IsByRow() const { return bByRow; } + void SetByRow(BOOL bByR) { bByRow = bByR; } + BOOL HasHeader() const { return bHasHeader; } + void SetHeader(BOOL bHasH) { bHasHeader = bHasH; } + void SetIndex(USHORT nInd) { nIndex = nExportIndex = nInd; } + USHORT GetIndex() const { return nIndex; } + BOOL IsDoSize() const { return bDoSize; } + void SetDoSize(BOOL bSet) { bDoSize = bSet; } + BOOL IsKeepFmt() const { return bKeepFmt; } + void SetKeepFmt(BOOL bSet) { bKeepFmt = bSet; } + BOOL IsStripData() const { return bStripData; } + void SetStripData(BOOL bSet) { bStripData = bSet; } + + BOOL IsBeyond(USHORT nMaxRow) const; + + String GetSourceString() const; + String GetOperations() const; + + void GetSortParam(ScSortParam& rSortParam) const; + void SetSortParam(const ScSortParam& rSortParam); + + void GetQueryParam(ScQueryParam& rQueryParam) const; + void SetQueryParam(const ScQueryParam& rQueryParam); + BOOL GetAdvancedQuerySource(ScRange& rSource) const; + void SetAdvancedQuerySource(const ScRange* pSource); + + void GetSubTotalParam(ScSubTotalParam& rSubTotalParam) const; + void SetSubTotalParam(const ScSubTotalParam& rSubTotalParam); + + void GetImportParam(ScImportParam& rImportParam) const; + void SetImportParam(const ScImportParam& rImportParam); + + BOOL IsDBAtCursor(USHORT nCol, USHORT nRow, USHORT nTab, BOOL bStartOnly) const; + BOOL IsDBAtArea(USHORT nTab, USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2) const; + + String GetTargetName(const String& rDocName) const; + + BOOL HasImportParam() const { return bDBImport; } + BOOL HasQueryParam() const { return bDoQuery[0]; } + BOOL HasSortParam() const { return bDoSort[0]; } + BOOL HasSubTotalParam() const { return bDoSubTotal[0]; } + + BOOL HasImportSelection() const { return bDBSelection; } + void SetImportSelection(BOOL bSet) { bDBSelection = bSet; } + + BOOL HasAutoFilter() const { return bAutoFilter; } + void SetAutoFilter(BOOL bSet) { bAutoFilter = bSet; } + + BOOL IsModified() const { return bModified; } + void SetModified(BOOL bMod) { bModified = bMod; } + + void SetExportIndex( USHORT nIdx ) { nExportIndex = nIdx; } + USHORT GetExportIndex() const { return nExportIndex; } +}; + + +//------------------------------------------------------------------------ +class ScDBCollection : public SortedCollection +{ + +private: + ScDocument* pDoc; + USHORT nEntryIndex; // Zaehler fuer die eindeutigen Indizes + +public: + ScDBCollection(USHORT nLim = 4, USHORT nDel = 4, BOOL bDup = FALSE, ScDocument* pDocument = NULL) : + SortedCollection ( nLim, nDel, bDup ), + pDoc ( pDocument ), + nEntryIndex ( SC_START_INDEX_DB_COLL ) // oberhalb der Namen + {} + ScDBCollection(const ScDBCollection& rScDBCollection) : + SortedCollection ( rScDBCollection ), + pDoc ( rScDBCollection.pDoc ), + nEntryIndex ( rScDBCollection.nEntryIndex) + {} + + virtual DataObject* Clone() const { return new ScDBCollection(*this); } + ScDBData* operator[]( const USHORT nIndex) const {return (ScDBData*)At(nIndex);} + virtual short Compare(DataObject* pKey1, DataObject* pKey2) const; + virtual BOOL IsEqual(DataObject* pKey1, DataObject* pKey2) const; + ScDBData* GetDBAtCursor(USHORT nCol, USHORT nRow, USHORT nTab, BOOL bStartOnly) const; + ScDBData* GetDBAtArea(USHORT nTab, USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2) const; + + BOOL Load( SvStream& rStream ); + BOOL Store( SvStream& rStream ) const; + + BOOL SearchName( const String& rName, USHORT& rIndex ) const; + + void UpdateReference(UpdateRefMode eUpdateRefMode, + USHORT nCol1, USHORT nRow1, USHORT nTab1, + USHORT nCol2, USHORT nRow2, USHORT nTab2, + short nDx, short nDy, short nDz ); + void UpdateMoveTab( USHORT nOldPos, USHORT nNewPos ); + + ScDBData* FindIndex(USHORT nIndex); + USHORT GetEntryIndex() { return nEntryIndex; } + void SetEntryIndex(USHORT nInd) { nEntryIndex = nInd; } + virtual BOOL Insert(DataObject* pDataObject); +}; + +#endif diff --git a/sc/inc/dbtoken.hxx b/sc/inc/dbtoken.hxx new file mode 100644 index 000000000000..0c8b8b57062a --- /dev/null +++ b/sc/inc/dbtoken.hxx @@ -0,0 +1,90 @@ +/************************************************************************* + * + * $RCSfile: dbtoken.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef _DBTOKEN_HXX +#define _DBTOKEN_HXX + +#ifndef SC_COMPILER_HXX +#include "compiler.hxx" +#endif + + +// SET DBG_TOKEN=string +// + - make new data +// - - do not make old data +// aA - dump old/new token array +// uU - dump old/new UPN array + +BOOL DbgToken( char ); +ScTokenArray* DbgMakeTokenArray + ( ScDocument* pDoc, USHORT nTab, const String& r, USHORT& rErr ); +void DbgDumpTokenArray( const BYTE* pArr, USHORT nLen, const char* pMsg ); +void DbgDelTokenArray( ScTokenArray* ); +StackVar DbgInterpret( ScDocument* pDok, const ScTokenArray* pToken, + USHORT nCOL, USHORT nROW, USHORT nTAB, + StackVar eStackVar, + char* &rStringErgPtr, + double& rDoubleErg, + USHORT& rError, + ScMatrix** ppMat); + +#endif + diff --git a/sc/inc/detdata.hxx b/sc/inc/detdata.hxx new file mode 100644 index 000000000000..757bc99770d7 --- /dev/null +++ b/sc/inc/detdata.hxx @@ -0,0 +1,142 @@ +/************************************************************************* + * + * $RCSfile: detdata.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_DETDATA_HXX +#define SC_DETDATA_HXX + +#ifndef _SVARRAY_HXX //autogen +#include <svtools/svarray.hxx> +#endif + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" +#endif + + +//------------------------------------------------------------------------ + +#define SC_DETOP_GROW 4 + +//------------------------------------------------------------------------ +enum ScDetOpType +{ + SCDETOP_ADDSUCC, + SCDETOP_DELSUCC, + SCDETOP_ADDPRED, + SCDETOP_DELPRED, + SCDETOP_ADDERROR +}; + +//------------------------------------------------------------------------ + +class ScDetOpData +{ + ScAddress aPos; + ScDetOpType eOperation; + +public: + ScDetOpData( const ScAddress& rP, ScDetOpType eOp ) : + aPos(rP), eOperation(eOp) {} + + ScDetOpData( const ScDetOpData& rData ) : + aPos(rData.aPos), eOperation(rData.eOperation) {} + + const ScAddress& GetPos() const { return aPos; } + ScDetOpType GetOperation() const { return eOperation; } + + // fuer UpdateRef: + void SetPos(const ScAddress& rNew) { aPos=rNew; } + + int operator== ( const ScDetOpData& r ) const + { return eOperation == r.eOperation && aPos == r.aPos; } +}; + +//------------------------------------------------------------------------ + +// +// Liste der Operationen +// + +typedef ScDetOpData* ScDetOpDataPtr; + +SV_DECL_PTRARR_DEL(ScDetOpArr_Impl, ScDetOpDataPtr, SC_DETOP_GROW, SC_DETOP_GROW); + +class ScDetOpList : public ScDetOpArr_Impl +{ +public: + ScDetOpList() {} + ScDetOpList(const ScDetOpList& rList); + ~ScDetOpList() {} + + void UpdateReference( ScDocument* pDoc, UpdateRefMode eUpdateRefMode, + const ScRange& rRange, short nDx, short nDy, short nDz ); + + BOOL operator==( const ScDetOpList& r ) const; // fuer Ref-Undo + + void Append( ScDetOpData* pData ) { Insert( pData, Count() ); } + + void Load( SvStream& rStream ); + void Store( SvStream& rStream ) const; +}; + + + +#endif diff --git a/sc/inc/detfunc.hxx b/sc/inc/detfunc.hxx new file mode 100644 index 000000000000..c3afde5cd5bc --- /dev/null +++ b/sc/inc/detfunc.hxx @@ -0,0 +1,148 @@ +/************************************************************************* + * + * $RCSfile: detfunc.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_DETFUNC_HXX +#define SC_DETFUNC_HXX + +#ifndef _GEN_HXX //autogen +#include <tools/gen.hxx> +#endif + +class SdrObject; +class SdrPage; +class String; + +class ScCommentData; +class ScDetectiveData; +class ScDocument; +class ScTripel; + +#define SC_DET_MAXCIRCLE 1000 + +enum ScDetectiveDelete { SC_DET_ALL, SC_DET_DETECTIVE, SC_DET_CIRCLES, SC_DET_COMMENTS }; + +class ScDetectiveFunc +{ + ScDocument* pDoc; + USHORT nTab; + + Point GetDrawPos( USHORT nCol, USHORT nRow, BOOL bArrow ); + BOOL HasArrow( USHORT nStartCol, USHORT nStartRow, USHORT nStartTab, + USHORT nEndCol, USHORT nEndRow, USHORT nEndTab ); + + void DeleteArrowsAt( USHORT nCol, USHORT nRow, BOOL bDestPnt ); + void DeleteBox( USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2 ); + + BOOL HasError( const ScTripel& rStart, const ScTripel& rEnd, ScTripel& rErrPos ); + + void FillAttributes( ScDetectiveData& rData ); + + BOOL DrawEntry( USHORT nCol, USHORT nRow, const ScTripel& rRefStart, const ScTripel& rRefEnd, + ScDetectiveData& rData ); + BOOL DrawAlienEntry( const ScTripel& rRefStart, const ScTripel& rRefEnd, + ScDetectiveData& rData ); + void DrawCircle( USHORT nCol, USHORT nRow, ScDetectiveData& rData ); + + SdrObject* DrawCaption( USHORT nCol, USHORT nRow, const String& rText, + ScCommentData& rData, SdrPage* pDestPage, + BOOL bHasUserText, BOOL bLeft, + const Rectangle& rVisible ); + + USHORT InsertPredLevel( USHORT nCol, USHORT nRow, ScDetectiveData& rData, USHORT nLevel ); + USHORT InsertPredLevelArea( const ScTripel& rRefStart, const ScTripel& rRefEnd, + ScDetectiveData& rData, USHORT nLevel ); + USHORT FindPredLevel( USHORT nCol, USHORT nRow, USHORT nLevel, USHORT nDeleteLevel ); + USHORT FindPredLevelArea( const ScTripel& rRefStart, const ScTripel& rRefEnd, + USHORT nLevel, USHORT nDeleteLevel ); + + USHORT InsertErrorLevel( USHORT nCol, USHORT nRow, ScDetectiveData& rData, USHORT nLevel ); + + USHORT InsertSuccLevel( USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2, + ScDetectiveData& rData, USHORT nLevel ); + USHORT FindSuccLevel( USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2, + USHORT nLevel, USHORT nDeleteLevel ); + + +public: + ScDetectiveFunc(ScDocument* pDocument, USHORT nTable) : pDoc(pDocument),nTab(nTable) {} + + BOOL ShowSucc( USHORT nCol, USHORT nRow ); + BOOL ShowPred( USHORT nCol, USHORT nRow ); + BOOL ShowError( USHORT nCol, USHORT nRow ); + + BOOL DeleteSucc( USHORT nCol, USHORT nRow ); + BOOL DeletePred( USHORT nCol, USHORT nRow ); + BOOL DeleteAll( ScDetectiveDelete eWhat ); + + BOOL MarkInvalid(BOOL& rOverflow); + + SdrObject* ShowComment( USHORT nCol, USHORT nRow, BOOL bForce, SdrPage* pDestPage = NULL ); + SdrObject* ShowCommentUser( USHORT nCol, USHORT nRow, const String& rUserText, + const Rectangle& rVisible, BOOL bLeft, + BOOL bForce, SdrPage* pDestPage ); + BOOL HideComment( USHORT nCol, USHORT nRow ); + + static BOOL IsNonAlienArrow( SdrObject* pObject ); +}; + + + +#endif diff --git a/sc/inc/dociter.hxx b/sc/inc/dociter.hxx new file mode 100644 index 000000000000..eb7c5f3764f3 --- /dev/null +++ b/sc/inc/dociter.hxx @@ -0,0 +1,389 @@ +/************************************************************************* + * + * $RCSfile: dociter.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_DOCITER_HXX +#define SC_DOCITER_HXX + +#ifndef _SOLAR_H +#include <tools/solar.h> +#endif + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" +#endif + +class ScDocument; +class ScBaseCell; +class ScPatternAttr; +class ScAttrArray; +class ScAttrIterator; + +class ScDocumentIterator // alle nichtleeren Zellen durchgehen +{ +private: + ScDocument* pDoc; + USHORT nStartTab; + USHORT nEndTab; + + const ScPatternAttr* pDefPattern; + + USHORT nCol; + USHORT nRow; + USHORT nTab; + ScBaseCell* pCell; + const ScPatternAttr* pPattern; + + + USHORT nColPos; + USHORT nAttrPos; + + BOOL GetThis(); + BOOL GetThisCol(); + +public: + ScDocumentIterator( ScDocument* pDocument, USHORT nStartTable, USHORT nEndTable ); + ~ScDocumentIterator(); + + BOOL GetFirst(); + BOOL GetNext(); + + ScBaseCell* GetCell(); + const ScPatternAttr* GetPattern(); + void GetPos( USHORT& rCol, USHORT& rRow, USHORT& rTab ); +}; + +class ScValueIterator // alle Zahlenwerte in einem Bereich durchgehen +{ +private: + double fNextValue; + ScDocument* pDoc; + const ScAttrArray* pAttrArray; + ULONG nNumFormat; // fuer CalcAsShown + ULONG nNumFmtIndex; + USHORT nStartCol; + USHORT nStartRow; + USHORT nStartTab; + USHORT nEndCol; + USHORT nEndRow; + USHORT nEndTab; + USHORT nCol; + USHORT nRow; + USHORT nTab; + USHORT nColRow; + USHORT nNextRow; + USHORT nAttrEndRow; + short nNumFmtType; + BOOL bNumValid; + BOOL bSubTotal; + BOOL bNextValid; + BOOL bCalcAsShown; + BOOL bTextAsZero; + + BOOL GetThis(double& rValue, USHORT& rErr); +public: + ScValueIterator(ScDocument* pDocument, + USHORT nSCol, USHORT nSRow, USHORT nSTab, + USHORT nECol, USHORT nERow, USHORT nETab, + BOOL bSTotal = FALSE, BOOL bTextAsZero = FALSE); + ScValueIterator(ScDocument* pDocument, + const ScRange& rRange, BOOL bSTotal = FALSE, + BOOL bTextAsZero = FALSE ); + void GetCurNumFmtInfo( short& nType, ULONG& nIndex ); + BOOL GetFirst(double& rValue, USHORT& rErr); + BOOL GetNext(double& rValue, USHORT& rErr) + { + return bNextValid ? ( bNextValid = FALSE, rValue = fNextValue, + rErr = 0, nRow = nNextRow, + ++nColRow, bNumValid = FALSE, TRUE ) + : ( ++nRow, GetThis(rValue, rErr) ); + } +}; + +class ScQueryValueIterator // alle Zahlenwerte in einem Bereich durchgehen +{ +private: + ScQueryParam aParam; + ScDocument* pDoc; + ScAttrArray* pAttrArray; + ULONG nNumFormat; // fuer CalcAsShown + ULONG nNumFmtIndex; + USHORT nCol; + USHORT nRow; + USHORT nColRow; + USHORT nAttrEndRow; + USHORT nTab; + short nNumFmtType; + BOOL bCalcAsShown; + + BOOL GetThis(double& rValue, USHORT& rErr); +public: + ScQueryValueIterator(ScDocument* pDocument, USHORT nTable, + const ScQueryParam& aParam); + BOOL GetFirst(double& rValue, USHORT& rErr); + BOOL GetNext(double& rValue, USHORT& rErr); + void GetCurNumFmtInfo( short& nType, ULONG& nIndex ) + { nType = nNumFmtType; nIndex = nNumFmtIndex; } +}; + +class ScCellIterator // alle Zellen in einem Bereich durchgehen +{ // bei SubTotal aber keine ausgeblendeten und +private: // SubTotalZeilen + ScDocument* pDoc; + USHORT nStartCol; + USHORT nStartRow; + USHORT nStartTab; + USHORT nEndCol; + USHORT nEndRow; + USHORT nEndTab; + USHORT nCol; + USHORT nRow; + USHORT nTab; + USHORT nColRow; + BOOL bSubTotal; + + ScBaseCell* GetThis(); +public: + ScCellIterator(ScDocument* pDocument, + USHORT nSCol, USHORT nSRow, USHORT nSTab, + USHORT nECol, USHORT nERow, USHORT nETab, + BOOL bSTotal = FALSE); + ScCellIterator(ScDocument* pDocument, + const ScRange& rRange, BOOL bSTotal = FALSE); + ScBaseCell* GetFirst(); + ScBaseCell* GetNext(); + USHORT GetCol() { return nCol; } + USHORT GetRow() { return nRow; } + USHORT GetTab() { return nTab; } +}; + +class ScQueryCellIterator // alle nichtleeren Zellen in einem Bereich +{ // durchgehen +private: + ScQueryParam aParam; + ScDocument* pDoc; + ScAttrArray* pAttrArray; + ULONG nNumFormat; + USHORT nTab; + USHORT nCol; + USHORT nRow; + USHORT nColRow; + USHORT nAttrEndRow; + BOOL bAdvanceQuery; + + ScBaseCell* GetThis(); +public: + ScQueryCellIterator(ScDocument* pDocument, USHORT nTable, + const ScQueryParam& aParam, BOOL bMod = TRUE); + // fuer bMod = FALSE muss der QueryParam + // weiter aufgefuellt sein (bIsString) + ScBaseCell* GetFirst(); + ScBaseCell* GetNext(); + USHORT GetCol() { return nCol; } + USHORT GetRow() { return nRow; } + ULONG GetNumberFormat(); + + // setzt alle Entry.nField einen weiter, wenn Spalte + // wechselt, fuer ScInterpreter ScHLookup() + void SetAdvanceQueryParamEntryField( BOOL bVal ) + { bAdvanceQuery = bVal; } + void AdvanceQueryParamEntryField(); +}; + +class ScDocAttrIterator // alle Attribut-Bereiche +{ +private: + ScDocument* pDoc; + USHORT nTab; + USHORT nEndCol; + USHORT nStartRow; + USHORT nEndRow; + USHORT nCol; + ScAttrIterator* pColIter; + +public: + ScDocAttrIterator(ScDocument* pDocument, USHORT nTable, + USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2); + ~ScDocAttrIterator(); + + const ScPatternAttr* GetNext( USHORT& rCol, USHORT& rRow1, USHORT& rRow2 ); +}; + +class ScAttrRectIterator // alle Attribut-Bereiche, auch Bereiche ueber mehrere Spalten +{ +private: + ScDocument* pDoc; + USHORT nTab; + USHORT nEndCol; + USHORT nStartRow; + USHORT nEndRow; + USHORT nIterStartCol; + USHORT nIterEndCol; + ScAttrIterator* pColIter; + +public: + ScAttrRectIterator(ScDocument* pDocument, USHORT nTable, + USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2); + ~ScAttrRectIterator(); + + void DataChanged(); + const ScPatternAttr* GetNext( USHORT& rCol1, USHORT& rCol2, USHORT& rRow1, USHORT& rRow2 ); +}; + +class ScHorizontalCellIterator // alle nichtleeren Zellen in einem Bereich +{ // zeilenweise durchgehen +private: + ScDocument* pDoc; + USHORT nTab; + USHORT nStartCol; + USHORT nEndCol; + USHORT nEndRow; + USHORT* pNextRows; + USHORT* pNextIndices; + USHORT nCol; + USHORT nRow; + BOOL bMore; + +public: + ScHorizontalCellIterator(ScDocument* pDocument, USHORT nTable, + USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2); + ~ScHorizontalCellIterator(); + + ScBaseCell* GetNext( USHORT& rCol, USHORT& rRow ); + BOOL ReturnNext( USHORT& rCol, USHORT& rRow ); + +private: + void Advance(); +}; + + +// +// gibt alle Bereiche mit nicht-Default-Formatierung zurueck (horizontal) +// + +class ScHorizontalAttrIterator +{ +private: + ScDocument* pDoc; + USHORT nTab; + USHORT nStartCol; + USHORT nStartRow; + USHORT nEndCol; + USHORT nEndRow; + + USHORT* pNextEnd; + USHORT* pIndices; + const ScPatternAttr** ppPatterns; + USHORT nCol; + USHORT nRow; + BOOL bRowEmpty; + +public: + ScHorizontalAttrIterator( ScDocument* pDocument, USHORT nTable, + USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2 ); + ~ScHorizontalAttrIterator(); + + const ScPatternAttr* GetNext( USHORT& rCol1, USHORT& rCol2, USHORT& rRow ); +}; + +// +// gibt nichtleere Zellen und Bereiche mit Formatierung zurueck (horizontal) +// + +class ScUsedAreaIterator +{ +private: + ScHorizontalCellIterator aCellIter; + ScHorizontalAttrIterator aAttrIter; + + USHORT nNextCol; + USHORT nNextRow; + + USHORT nCellCol; + USHORT nCellRow; + const ScBaseCell* pCell; + USHORT nAttrCol1; + USHORT nAttrCol2; + USHORT nAttrRow; + const ScPatternAttr* pPattern; + + USHORT nFoundStartCol; // Ergebnisse nach GetNext + USHORT nFoundEndCol; + USHORT nFoundRow; + const ScPatternAttr* pFoundPattern; + const ScBaseCell* pFoundCell; + +public: + ScUsedAreaIterator( ScDocument* pDocument, USHORT nTable, + USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2 ); + ~ScUsedAreaIterator(); + + BOOL GetNext(); + + USHORT GetStartCol() const { return nFoundStartCol; } + USHORT GetEndCol() const { return nFoundEndCol; } + USHORT GetRow() const { return nFoundRow; } + const ScPatternAttr* GetPattern() const { return pFoundPattern; } + const ScBaseCell* GetCell() const { return pFoundCell; } +}; + +#endif + + diff --git a/sc/inc/docoptio.hxx b/sc/inc/docoptio.hxx new file mode 100644 index 000000000000..e200e4f24132 --- /dev/null +++ b/sc/inc/docoptio.hxx @@ -0,0 +1,246 @@ +/************************************************************************* + * + * $RCSfile: docoptio.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_DOCOPTIO_HXX +#define SC_DOCOPTIO_HXX + + +#ifndef _SFXCFGITEM_HXX //autogen +#include <sfx2/cfgitem.hxx> +#endif + +#ifndef _SFXPOOLITEM_HXX //autogen +#include <svtools/poolitem.hxx> +#endif + + +class ScDocOptions +{ + double fIterEps; // Epsilon-Wert dazu + USHORT nIterCount; // Anzahl + USHORT nPrecStandardFormat; // Nachkommastellen Standard + USHORT nDay; // Nulldatum: + USHORT nMonth; + USHORT nYear; + USHORT nYear2000; // bis zu welcher zweistelligen Jahreszahl 20xx angenommen wird + USHORT nTabDistance; // Abstand Standardtabulatoren + BOOL bIsIgnoreCase; // Gross-/Kleinschr. bei Vergleichen + BOOL bIsIter; // Iteration bei cirk. Ref + BOOL bCalcAsShown; // berechnen wie angezeigt (Precision) + BOOL bMatchWholeCell; // Suchkriterien muessen ganze Zelle matchen + BOOL bDoAutoSpell; // Auto-Spelling + BOOL bLookUpColRowNames; // Spalten-/Zeilenbeschriftungen automagisch suchen + +public: + ScDocOptions(); + ScDocOptions( const ScDocOptions& rCpy ); + ~ScDocOptions(); + + BOOL IsLookUpColRowNames() const { return bLookUpColRowNames; } + void SetLookUpColRowNames( BOOL bVal ) { bLookUpColRowNames = bVal; } + BOOL IsAutoSpell() const { return bDoAutoSpell; } + void SetAutoSpell( BOOL bVal ) { bDoAutoSpell = bVal; } + BOOL IsMatchWholeCell() const { return bMatchWholeCell; } + void SetMatchWholeCell( BOOL bVal ){ bMatchWholeCell = bVal; } + BOOL IsIgnoreCase() const { return bIsIgnoreCase; } + void SetIgnoreCase( BOOL bVal ) { bIsIgnoreCase = bVal; } + BOOL IsIter() const { return bIsIter; } + void SetIter( BOOL bVal ) { bIsIter = bVal; } + USHORT GetIterCount() const { return nIterCount; } + void SetIterCount( USHORT nCount) { nIterCount = nCount; } + double GetIterEps() const { return fIterEps; } + void SetIterEps( double fEps ) { fIterEps = fEps; } + + void GetDate( USHORT& rD, USHORT& rM, USHORT& rY ) const + { rD = nDay; rM = nMonth; rY = nYear;} + void SetDate (USHORT nD, USHORT nM, USHORT nY) + { nDay = nD; nMonth = nM; nYear = nY; } + USHORT GetTabDistance() const { return nTabDistance;} + void SetTabDistance( USHORT nTabDist ) {nTabDistance = nTabDist;} + + void ResetDocOptions(); + inline void CopyTo(ScDocOptions& rOpt); + void Load(SvStream& rStream); + void Save(SvStream& rStream, BOOL bConfig = FALSE) const; + + inline const ScDocOptions& operator=( const ScDocOptions& rOpt ); + inline int operator==( const ScDocOptions& rOpt ) const; + inline int operator!=( const ScDocOptions& rOpt ) const; + + USHORT GetStdPrecision() const { return nPrecStandardFormat; } + void SetStdPrecision( USHORT n ) { nPrecStandardFormat = n; } + + BOOL IsCalcAsShown() const { return bCalcAsShown; } + void SetCalcAsShown( BOOL bVal ) { bCalcAsShown = bVal; } + + void SetYear2000( USHORT nVal ) { nYear2000 = nVal; } + USHORT GetYear2000() const { return nYear2000; } +}; + + +inline void ScDocOptions::CopyTo(ScDocOptions& rOpt) +{ + rOpt.bIsIgnoreCase = bIsIgnoreCase; + rOpt.bIsIter = bIsIter; + rOpt.nIterCount = nIterCount; + rOpt.fIterEps = fIterEps; + rOpt.nPrecStandardFormat = nPrecStandardFormat; + rOpt.nDay = nDay; + rOpt.nMonth = nMonth; + rOpt.nYear2000 = nYear2000; + rOpt.nYear = nYear; + rOpt.nTabDistance = nTabDistance; + rOpt.bCalcAsShown = bCalcAsShown; + rOpt.bMatchWholeCell = bMatchWholeCell; + rOpt.bDoAutoSpell = bDoAutoSpell; + rOpt.bLookUpColRowNames = bLookUpColRowNames; +} + +inline const ScDocOptions& ScDocOptions::operator=( const ScDocOptions& rCpy ) +{ + bIsIgnoreCase = rCpy.bIsIgnoreCase; + bIsIter = rCpy.bIsIter; + nIterCount = rCpy.nIterCount; + fIterEps = rCpy.fIterEps; + nPrecStandardFormat = rCpy.nPrecStandardFormat; + nDay = rCpy.nDay; + nMonth = rCpy.nMonth; + nYear = rCpy.nYear; + nYear2000 = rCpy.nYear2000; + nTabDistance = rCpy.nTabDistance; + bCalcAsShown = rCpy.bCalcAsShown; + bMatchWholeCell = rCpy.bMatchWholeCell; + bDoAutoSpell = rCpy.bDoAutoSpell; + bLookUpColRowNames = rCpy.bLookUpColRowNames; + + return *this; +} + +inline int ScDocOptions::operator==( const ScDocOptions& rOpt ) const +{ + return ( + rOpt.bIsIgnoreCase == bIsIgnoreCase + && rOpt.bIsIter == bIsIter + && rOpt.nIterCount == nIterCount + && rOpt.fIterEps == fIterEps + && rOpt.nPrecStandardFormat == nPrecStandardFormat + && rOpt.nDay == nDay + && rOpt.nMonth == nMonth + && rOpt.nYear == nYear + && rOpt.nYear2000 == nYear2000 + && rOpt.nTabDistance == nTabDistance + && rOpt.bCalcAsShown == bCalcAsShown + && rOpt.bMatchWholeCell == bMatchWholeCell + && rOpt.bDoAutoSpell == bDoAutoSpell + && rOpt.bLookUpColRowNames == bLookUpColRowNames + ); +} + +inline int ScDocOptions::operator!=( const ScDocOptions& rOpt ) const +{ + return !(operator==(rOpt)); +} + +//================================================================== +// Item fuer Einstellungsdialog - Berechnen +//================================================================== + +class ScTpCalcItem : public SfxPoolItem +{ +public: + TYPEINFO(); + ScTpCalcItem( USHORT nWhich ); + ScTpCalcItem( USHORT nWhich, + const ScDocOptions& rOpt ); + ScTpCalcItem( const ScTpCalcItem& rItem ); + ~ScTpCalcItem(); + + virtual String GetValueText() const; + virtual int operator==( const SfxPoolItem& ) const; + virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; + + const ScDocOptions& GetDocOptions() const { return theOptions; } + +private: + ScDocOptions theOptions; +}; + +//================================================================== +// CfgItem fuer Doc-Optionen +//================================================================== + +class ScDocCfg : public ScDocOptions, + public SfxConfigItem +{ +public: + ScDocCfg(); + + virtual String GetName() const; + +protected: + virtual int Load (SvStream& rStream); + virtual BOOL Store (SvStream& rStream); + virtual void UseDefault (); +}; + + +#endif + diff --git a/sc/inc/docpool.hxx b/sc/inc/docpool.hxx new file mode 100644 index 000000000000..57285057375f --- /dev/null +++ b/sc/inc/docpool.hxx @@ -0,0 +1,109 @@ +/************************************************************************* + * + * $RCSfile: docpool.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_SCDOCPOL_HXX +#define SC_SCDOCPOL_HXX + +#ifndef _SFXITEMPOOL_HXX //autogen +#include <svtools/itempool.hxx> +#endif + +class ScStyleSheet; + +//------------------------------------------------------------------------ + +class ScDocumentPool: public SfxItemPool +{ + SfxPoolItem** ppPoolDefaults; + SfxItemPool* pSecondary; + static USHORT* pVersionMap1; + static USHORT* pVersionMap2; + static USHORT* pVersionMap3; + static USHORT* pVersionMap4; + +public: + ScDocumentPool( SfxItemPool* pSecPool = NULL, BOOL bLoadRefCounts = FALSE ); + ~ScDocumentPool(); + + virtual SfxItemPool* Clone() const; + virtual SfxMapUnit GetMetric( USHORT nWhich ) const; + + virtual const SfxPoolItem& Put( const SfxPoolItem&, USHORT nWhich = 0 ); + virtual void Remove( const SfxPoolItem& ); + static void CheckRef( const SfxPoolItem& ); + void MyLoadCompleted(); + + void StyleDeleted( ScStyleSheet* pStyle ); // Loeschen von Vorlagen im Organizer + virtual SfxItemPresentation GetPresentation( + const SfxPoolItem& rItem, + SfxItemPresentation ePresentation, + SfxMapUnit ePresentationMetric, + String& rText, + const International* pIntl = 0 ) const; + + static void InitVersionMaps(); + static void DeleteVersionMaps(); +}; + + + + +#endif diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx new file mode 100644 index 000000000000..68381cf4780c --- /dev/null +++ b/sc/inc/document.hxx @@ -0,0 +1,1439 @@ +/************************************************************************* + * + * $RCSfile: document.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_DOCUMENT_HXX +#define SC_DOCUMENT_HXX + + +#ifndef _SV_PRNTYPES_HXX //autogen +#include <vcl/prntypes.hxx> +#endif + +#ifndef _SV_TIMER_HXX //autogen +#include <vcl/timer.hxx> +#endif + +#ifndef SC_TABLE_HXX +#include "table.hxx" // FastGetRowHeight (inline) +#endif + +#ifndef SC_RANGELST_HXX +#include "rangelst.hxx" +#endif + + +class KeyEvent; +class OutputDevice; +class ODbVariant; +class SdrObject; +class SfxBroadcaster; +class SfxHint; +class SfxItemSet; +class SfxObjectShell; +class SfxPoolItem; +class SfxItemPool; +class SfxPrinter; +class SfxStatusBarManager; +class SfxStyleSheetBase; +class SvMemoryStream; +class SvNumberFormatter; +class SvxBorderLine; +class SvxBoxInfoItem; +class SvxBoxItem; +class SvxBrushItem; +class SvxLinkManager; +class SvxSearchItem; +class SvxShadowItem; +class Window; +class XColorTable; + +class ScAutoFormatData; +class ScBaseCell; +class ScBroadcastAreaSlotMachine; +class ScChangeViewSettings; +class ScChartCollection; +class ScChartListenerCollection; +class ScConditionalFormat; +class ScConditionalFormatList; +class ScDBCollection; +class ScDBData; +class ScDetOpData; +class ScDetOpList; +class ScDocOptions; +class ScDocumentPool; +class ScDrawLayer; +class ScExtDocOptions; +class ScFormulaCell; +class SchMemChart; +class ScMarkData; +class ScOutlineTable; +class ScPatternAttr; +class ScPivot; +class ScPivotCollection; +class ScPrintRangeSaver; +class ScRangeData; +class ScRangeName; +class ScStyleSheet; +class ScStyleSheetPool; +class ScTable; +class ScTokenArray; +class ScValidationData; +class ScValidationDataList; +class ScViewOptions; +class TypedStrCollection; +class ScChangeTrack; +class ScFieldEditEngine; +struct ScConsolidateParam; +class ScDPObject; +class ScDPCollection; + + +#ifdef _ZFORLIST_DECLARE_TABLE +class SvULONGTable; +#else +class Table; +typedef Table SvULONGTable; +#endif + + +#define SC_TAB_APPEND 0xFFFF +#define SC_DOC_NEW 0xFFFF +#define REPEAT_NONE 0xFFFF + +#define SC_MACROCALL_ALLOWED 0 +#define SC_MACROCALL_NOTALLOWED 1 +#define SC_MACROCALL_ASK 2 + + +enum ScDocumentMode + { + SCDOCMODE_DOCUMENT, + SCDOCMODE_CLIP, + SCDOCMODE_UNDO + }; + + + +// ----------------------------------------------------------------------- +// +// structs fuer FillInfo +// + +enum ScShadowPart +{ + SC_SHADOW_HSTART, + SC_SHADOW_VSTART, + SC_SHADOW_HORIZ, + SC_SHADOW_VERT, + SC_SHADOW_CORNER +}; + +#define SC_ROTDIR_NONE 0 +#define SC_ROTDIR_STANDARD 1 +#define SC_ROTDIR_LEFT 2 +#define SC_ROTDIR_RIGHT 3 +#define SC_ROTDIR_CENTER 4 + +struct CellInfo + { + ScBaseCell* pCell; + + const ScPatternAttr* pPatternAttr; + const SfxItemSet* pConditionSet; + + const SvxBrushItem* pBackground; + + const SvxBoxItem* pLinesAttr; // Original-Item (intern) + + const SvxBorderLine* pThisBottom; // einzelne inkl. zusammengefasst + const SvxBorderLine* pNextTop; // (intern) + const SvxBorderLine* pThisRight; + const SvxBorderLine* pNextLeft; + + const SvxBorderLine* pRightLine; // dickere zum Zeichnen + const SvxBorderLine* pBottomLine; + + const SvxShadowItem* pShadowAttr; // Original-Item (intern) + + ScShadowPart eHShadowPart; // Schatten effektiv zum Zeichnen + ScShadowPart eVShadowPart; + const SvxShadowItem* pHShadowOrigin; + const SvxShadowItem* pVShadowOrigin; + + USHORT nWidth; + + BOOL bMarked; + BOOL bStandard; + BOOL bEmptyCellText; + + BOOL bMerged; + BOOL bHOverlapped; + BOOL bVOverlapped; + BOOL bAutoFilter; + BOOL bPushButton; + BYTE nRotateDir; + + BOOL bPrinted; // bei Bedarf (Pagebreak-Modus) + + BOOL bHideGrid; // output-intern + BOOL bEditEngine; // output-intern + }; + +#define SC_ROTMAX_NONE USHRT_MAX + +struct RowInfo + { + CellInfo* pCellInfo; + + USHORT nHeight; + USHORT nRowNo; + USHORT nRotMaxCol; // SC_ROTMAX_NONE, wenn nichts + + BOOL bEmptyBack; + BOOL bEmptyText; + BOOL bAutoFilter; + BOOL bPushButton; + BOOL bChanged; // TRUE, wenn nicht getestet + }; + +struct ScDocStat +{ + String aDocName; + USHORT nTableCount; + ULONG nCellCount; + USHORT nPageCount; +}; + +// nicht 11 Parameter bei CopyBlockFromClip, konstante Werte der Schleife hier +struct ScCopyBlockFromClipParams +{ + ScDocument* pRefUndoDoc; + ScDocument* pClipDoc; + USHORT nInsFlag; + USHORT nTabStart; + USHORT nTabEnd; + BOOL bAsLink; +}; + +#define ROWINFO_MAX 1024 + + +// Spezialwert fuer Recalc-Alwyas-Zellen + +#define BCA_BRDCST_ALWAYS ScAddress( 0, 32767, 0 ) +#define BCA_LISTEN_ALWAYS ScRange( BCA_BRDCST_ALWAYS, BCA_BRDCST_ALWAYS ) + +// ----------------------------------------------------------------------- + +class ScDocument +{ +friend class ScDocumentIterator; +friend class ScValueIterator; +friend class ScQueryValueIterator; +friend class ScCellIterator; +friend class ScQueryCellIterator; +friend class ScHorizontalCellIterator; +friend class ScHorizontalAttrIterator; +friend class ScDocAttrIterator; +friend class ScAttrRectIterator; +friend class ScPivot; + +private: + ScDocumentPool* pDocPool; + ScStyleSheetPool* pStylePool; + SfxItemPool* pEditPool; // EditTextObjectPool + SfxItemPool* pEnginePool; // EditEnginePool + ScFieldEditEngine* pEditEngine; // mit pEditPool + SfxObjectShell* pShell; + SfxPrinter* pPrinter; + ScDrawLayer* pDrawLayer; // SdrModel + XColorTable* pColorTable; + ScConditionalFormatList* pCondFormList; // bedingte Formate + ScValidationDataList* pValidationList; // Gueltigkeit + SvNumberFormatter* pFormTable; + SvULONGTable* pFormatExchangeList; // zum Umsetzen von Zahlenformaten + ScTable* pTab[MAXTAB+1]; + ScRangeName* pRangeName; + ScDBCollection* pDBCollection; + ScPivotCollection* pPivotCollection; + ScDPCollection* pDPCollection; + ScChartCollection* pChartCollection; + ScPatternAttr* pSelectionAttr; // Attribute eines Blocks + SvxLinkManager* pLinkManager; + ScFormulaCell* pFormulaTree; // Berechnungsbaum Start + ScFormulaCell* pEOFormulaTree; // Berechnungsbaum Ende, letzte Zelle + ScFormulaCell* pFormulaTrack; // BroadcastTrack Start + ScFormulaCell* pEOFormulaTrack; // BrodcastTrack Ende, letzte Zelle + ScBroadcastAreaSlotMachine* pBASM; // BroadcastAreas + ScChartListenerCollection* pChartListenerCollection; + SvMemoryStream* pClipData; + ScDetOpList* pDetOpList; + ScChangeTrack* pChangeTrack; + SfxBroadcaster* pUnoBroadcaster; + ScChangeViewSettings* pChangeViewSettings; + + Link aColorLink; // fuer Farben in Z.Formaten + String aProtectPass; + String aDocName; // opt: Dokumentname + ScRangePairListRef xColNameRanges; + ScRangePairListRef xRowNameRanges; + + ScViewOptions* pViewOptions; // View-Optionen + ScDocOptions* pDocOptions; // Dokument-Optionen + ScExtDocOptions* pExtDocOptions; // fuer Import etc. + ScConsolidateParam* pConsolidateDlgData; + + ScRange aClipRange; + ScRange aEmbedRange; + ScAddress aCurTextWidthCalcPos; + ScAddress aOnlineSpellPos; // within whole document + ScRange aVisSpellRange; + ScAddress aVisSpellPos; // within aVisSpellRange (see nVisSpellState) + + Timer aTrackTimer; + + LanguageType eLanguage; // Default-Sprache + CharSet eSrcSet; // Einlesen: Quell-Zeichensatz + + ULONG nFormulaCodeInTree; // FormelRPN im Formelbaum + USHORT nInterpretLevel; // >0 wenn im Interpreter + USHORT nMacroInterpretLevel; // >0 wenn Macro im Interpreter + USHORT nMaxTableNumber; + USHORT nSrcVer; // Dateiversion (Laden/Speichern) + USHORT nSrcMaxRow; // Zeilenzahl zum Laden/Speichern + USHORT nFormulaTrackCount; + USHORT nHardRecalcState; // 0: soft, 1: hard-warn, 2: hard + USHORT nVisibleTab; // fuer OLE etc. + + BOOL bProtected; + BOOL bOwner; + BOOL bAutoCalc; // Automatisch Berechnen + BOOL bAutoCalcShellDisabled; // in/von/fuer ScDocShell disabled + // ob noch ForcedFormulas berechnet werden muessen, + // im Zusammenspiel mit ScDocShell SetDocumentModified, + // AutoCalcShellDisabled und TrackFormulas + BOOL bForcedFormulaPending; + BOOL bIsClip; + BOOL bCutMode; + BOOL bIsUndo; + + BOOL bIsEmbedded; // Embedded-Bereich anzeigen/anpassen ? + + // kein SetDirty bei ScFormulaCell::CompileTokenArray sondern am Ende + // von ScDocument::CompileAll[WithFormats], CopyScenario, CopyBlockFromClip + BOOL bNoSetDirty; + // kein Broadcast, keine Listener aufbauen waehrend aus einem anderen + // Doc (per Filter o.ae.) inserted wird, erst bei CompileAll / CalcAfterLoad + BOOL bInsertingFromOtherDoc; + BOOL bImportingXML; // special handling of formula text + BOOL bCalcingAfterLoad; // in CalcAfterLoad TRUE + // wenn temporaer keine Listener auf/abgebaut werden sollen + BOOL bNoListening; + BOOL bLoadingDone; + BOOL bIdleDisabled; + BOOL bInLinkUpdate; // TableLink or AreaLink + BOOL bChartListenerCollectionNeedsUpdate; + // ob RC_FORCED Formelzellen im Dokument sind/waren (einmal an immer an) + BOOL bHasForcedFormulas; + // ist beim Laden/Speichern etwas weggelassen worden? + BOOL bLostData; + // ob das Doc gerade zerstoert wird (kein Notify-Tracking etc. mehr) + BOOL bInDtorClear; + // ob bei Spalte/Zeile einfuegen am Rand einer Referenz die Referenz + // erweitert wird, wird in jedem UpdateReference aus InputOptions geholt, + // gesetzt und am Ende von UpdateReference zurueckgesetzt + BOOL bExpandRefs; + // fuer Detektiv-Update, wird bei jeder Aenderung an Formeln gesetzt + BOOL bDetectiveDirty; + + BYTE nMacroCallMode; // Makros per Warnung-Dialog disabled? + BOOL bHasMacroFunc; // valid only after loading + + BYTE nVisSpellState; + + inline BOOL RowHidden( USHORT nRow, USHORT nTab ); // FillInfo + + ScLkUpdMode eLinkMode; + +public: + long GetCellCount() const; // alle Zellen + long GetWeightedCount() const; // Formeln und Edit staerker gewichtet + ULONG GetCodeCount() const; // RPN-Code in Formeln + DECL_LINK( GetUserDefinedColor, USHORT * ); + // Numberformatter + +public: + ScDocument( ScDocumentMode eMode = SCDOCMODE_DOCUMENT, + SfxObjectShell* pDocShell = NULL ); + ~ScDocument(); + + const String& GetName() const { return aDocName; } + void SetName( const String& r ) { aDocName = r; } + + void GetDocStat( ScDocStat& rDocStat ); + + void InitDrawLayer( SfxObjectShell* pDocShell = NULL ); + XColorTable* GetColorTable(); + + SvxLinkManager* GetLinkManager() { return pLinkManager; } + void SetLinkManager( SvxLinkManager* pNew ); + + const ScDocOptions& GetDocOptions() const; + void SetDocOptions( const ScDocOptions& rOpt ); + const ScViewOptions& GetViewOptions() const; + void SetViewOptions( const ScViewOptions& rOpt ); + void SetPrintOptions(); + + ScExtDocOptions* GetExtDocOptions() { return pExtDocOptions; } + void SetExtDocOptions( ScExtDocOptions* pNewOptions ); + + LanguageType GetLanguage() const; + void SetLanguage( LanguageType eNewLang ); + + void SetConsolidateDlgData( const ScConsolidateParam* pData ); + const ScConsolidateParam* GetConsolidateDlgData() const { return pConsolidateDlgData; } + + void Clear(); + + ScRangeName* GetRangeName(); + void SetRangeName( ScRangeName* pNewRangeName ); + USHORT GetMaxTableNumber() { return nMaxTableNumber; } + void SetMaxTableNumber(USHORT nNumber) { nMaxTableNumber = nNumber; } + + ScRangePairList* GetColNameRanges() { return &xColNameRanges; } + ScRangePairList* GetRowNameRanges() { return &xRowNameRanges; } + ScRangePairListRef& GetColNameRangesRef() { return xColNameRanges; } + ScRangePairListRef& GetRowNameRangesRef() { return xRowNameRanges; } + + ScDBCollection* GetDBCollection() const; + void SetDBCollection( ScDBCollection* pNewDBCollection ); + ScDBData* GetDBAtCursor(USHORT nCol, USHORT nRow, USHORT nTab, + BOOL bStartOnly = FALSE) const; + ScDBData* GetDBAtArea(USHORT nTab, USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2) const; + + ScRangeData* GetRangeAtCursor(USHORT nCol, USHORT nRow, USHORT nTab, + BOOL bStartOnly = FALSE) const; + ScRangeData* GetRangeAtBlock( const ScRange& rBlock, String* pName=NULL ) const; + + ScDPCollection* GetDPCollection(); + ScDPObject* GetDPAtCursor(USHORT nCol, USHORT nRow, USHORT nTab) const; + + ScPivotCollection* GetPivotCollection() const; + void SetPivotCollection(ScPivotCollection* pNewPivotCollection); + ScPivot* GetPivotAtCursor(USHORT nCol, USHORT nRow, USHORT nTab) const; + + ScChartCollection* GetChartCollection() const; + void SetChartCollection(ScChartCollection* pNewChartCollection); + + void EnsureGraphicNames(); + + SdrObject* GetObjectAtPoint( USHORT nTab, const Point& rPos ); + BOOL HasChartAtPoint( USHORT nTab, const Point& rPos, String* pName = NULL ); + void UpdateChartArea( const String& rChartName, const ScRange& rNewArea, + BOOL bColHeaders, BOOL bRowHeaders, BOOL bAdd, + Window* pWindow ); + void UpdateChartArea( const String& rChartName, + const ScRangeListRef& rNewList, + BOOL bColHeaders, BOOL bRowHeaders, BOOL bAdd, + Window* pWindow ); + SchMemChart* FindChartData(const String& rName, BOOL bForModify = FALSE); + + void MakeTable( USHORT nTab ); + + USHORT GetVisibleTab() const { return nVisibleTab; } + void SetVisibleTab(USHORT nTab) { nVisibleTab = nTab; } + + BOOL HasTable( USHORT nTab ) const; + BOOL GetName( USHORT nTab, String& rName ) const; + BOOL GetTable( const String& rName, USHORT& rTab ) const; + inline USHORT GetTableCount() const { return nMaxTableNumber; } + SvULONGTable* GetFormatExchangeList() const { return pFormatExchangeList; } + + void SetDocProtection( BOOL bProtect, const String& rPasswd ); + void SetTabProtection( USHORT nTab, BOOL bProtect, const String& rPasswd ); + BOOL IsDocProtected() const; + BOOL IsDocEditable() const; + BOOL IsTabProtected( USHORT nTab ) const; + const String& GetDocPassword() const; + const String& GetTabPassword( USHORT nTab ) const; + + void LockTable(USHORT nTab); + void UnlockTable(USHORT nTab); + + BOOL IsBlockEditable( USHORT nTab, USHORT nStartCol, USHORT nStartRow, + USHORT nEndCol, USHORT nEndRow, + BOOL* pOnlyNotBecauseOfMatrix = NULL ) const; + BOOL IsSelectedBlockEditable( USHORT nStartCol, USHORT nStartRow, + USHORT nEndCol, USHORT nEndRow, + const ScMarkData& rMark ) const; + BOOL IsSelectionEditable( const ScMarkData& rMark, + BOOL* pOnlyNotBecauseOfMatrix = NULL ) const; + BOOL IsSelectionOrBlockEditable( USHORT nTab, USHORT nStartCol, USHORT nStartRow, + USHORT nEndCol, USHORT nEndRow, + const ScMarkData& rMark ) const; + BOOL IsSelectedOrBlockEditable( USHORT nStartCol, USHORT nStartRow, + USHORT nEndCol, USHORT nEndRow, + const ScMarkData& rMark ) const; + + BOOL HasSelectedBlockMatrixFragment( USHORT nStartCol, USHORT nStartRow, + USHORT nEndCol, USHORT nEndRow, + const ScMarkData& rMark ) const; + + BOOL IsEmbedded() const; + void GetEmbedded( ScTripel& rStart, ScTripel& rEnd ) const; + void SetEmbedded( const ScTripel& rStart, const ScTripel& rEnd ); + void ResetEmbedded(); + Rectangle GetEmbeddedRect() const; // 1/100 mm + void SetEmbedded( const Rectangle& rRect ); // aus VisArea (1/100 mm) + void SnapVisArea( Rectangle& rRect ) const; // 1/100 mm + + BOOL ValidTabName( const String& rName ) const; + BOOL ValidNewTabName( const String& rName ) const; + void CreateValidTabName(String& rName) const; + BOOL InsertTab( USHORT nPos, const String& rName, + BOOL bExternalDocument = FALSE ); + BOOL DeleteTab( USHORT nTab, ScDocument* pRefUndoDoc = NULL ); + BOOL RenameTab( USHORT nTab, const String& rName, + BOOL bUpdateRef = TRUE, + BOOL bExternalDocument = FALSE ); + BOOL MoveTab( USHORT nOldPos, USHORT nNewPos ); + BOOL CopyTab( USHORT nOldPos, USHORT nNewPos, + const ScMarkData* pOnlyMarked = NULL ); + ULONG TransferTab(ScDocument* pSrcDoc, USHORT nSrcPos, USHORT nDestPos, + BOOL bInsertNew = TRUE, + BOOL bResultsOnly = FALSE ); + void TransferDrawPage(ScDocument* pSrcDoc, USHORT nSrcPos, USHORT nDestPos); + void ClearDrawPage(USHORT nTab); + void SetVisible( USHORT nTab, BOOL bVisible ); + BOOL IsVisible( USHORT nTab ) const; + void SetScenario( USHORT nTab, BOOL bFlag ); + BOOL IsScenario( USHORT nTab ) const; + void GetScenarioData( USHORT nTab, String& rComment, + Color& rColor, USHORT& rFlags ) const; + void SetScenarioData( USHORT nTab, const String& rComment, + const Color& rColor, USHORT nFlags ); + BOOL IsActiveScenario( USHORT nTab ) const; + void SetActiveScenario( USHORT nTab, BOOL bActive ); // nur fuer Undo etc. + BYTE GetLinkMode( USHORT nTab ) const; + BOOL IsLinked( USHORT nTab ) const; + const String& GetLinkDoc( USHORT nTab ) const; + const String& GetLinkFlt( USHORT nTab ) const; + const String& GetLinkOpt( USHORT nTab ) const; + const String& GetLinkTab( USHORT nTab ) const; + void SetLink( USHORT nTab, BYTE nMode, const String& rDoc, + const String& rFilter, const String& rOptions, + const String& rTabName ); + BOOL HasLink( const String& rDoc, + const String& rFilter, const String& rOptions ) const; + BOOL LinkEmptyTab( USHORT& nTab, const String& aDocTab, + const String& aFileName, + const String& aTabName ); // insert empty tab & link + BOOL LinkExternalTab( USHORT& nTab, const String& aDocTab, + const String& aFileName, + const String& aTabName ); + + BOOL HasDdeLinks() const; + BOOL HasAreaLinks() const; + void UpdateDdeLinks(); + void UpdateAreaLinks(); + + void CopyDdeLinks( ScDocument* pDestDoc ) const; + void DisconnectDdeLinks(); + + // Fuer Excel-Import: + void CreateDdeLink( const String& rAppl, const String& rTopic, const String& rItem ); + + // Fuer StarOne Api: + USHORT GetDdeLinkCount() const; + BOOL GetDdeLinkData( USHORT nPos, String& rAppl, String& rTopic, String& rItem ) const; + BOOL UpdateDdeLink( const String& rAppl, const String& rTopic, const String& rItem ); + + SfxObjectShell* GetDocumentShell() const { return pShell; } + ScDrawLayer* GetDrawLayer() { return pDrawLayer; } + SfxBroadcaster* GetDrawBroadcaster(); // zwecks Header-Vermeidung + void BeginDrawUndo(); + + BOOL IsChart( SdrObject* pObject ); + void UpdateAllCharts( BOOL bDoUpdate = TRUE ); + void UpdateChartRef( UpdateRefMode eUpdateRefMode, + USHORT nCol1, USHORT nRow1, USHORT nTab1, + USHORT nCol2, USHORT nRow2, USHORT nTab2, + short nDx, short nDy, short nDz ); + //! setzt nur die neue RangeList, keine ChartListener o.ae. + void SetChartRangeList( const String& rChartName, + const ScRangeListRef& rNewRangeListRef ); + + BOOL HasControl( USHORT nTab, const Rectangle& rMMRect ); + void InvalidateControls( Window* pWin, USHORT nTab, const Rectangle& rMMRect ); + + void StopAnimations( USHORT nTab, Window* pWin ); + void StartAnimations( USHORT nTab, Window* pWin ); + + BOOL HasBackgroundDraw( USHORT nTab, const Rectangle& rMMRect ); + BOOL HasAnyDraw( USHORT nTab, const Rectangle& rMMRect ); + + ScOutlineTable* GetOutlineTable( USHORT nTab, BOOL bCreate = FALSE ); + BOOL SetOutlineTable( USHORT nTab, const ScOutlineTable* pNewOutline ); + + void DoAutoOutline( USHORT nStartCol, USHORT nStartRow, + USHORT nEndCol, USHORT nEndRow, USHORT nTab ); + + BOOL DoSubTotals( USHORT nTab, ScSubTotalParam& rParam ); + void RemoveSubTotals( USHORT nTab, ScSubTotalParam& rParam ); + BOOL TestRemoveSubTotals( USHORT nTab, const ScSubTotalParam& rParam ); + + void PutCell( const ScAddress&, ScBaseCell* pCell, BOOL bForceTab = FALSE ); + void PutCell( const ScAddress&, ScBaseCell* pCell, + ULONG nFormatIndex, BOOL bForceTab = FALSE); + void PutCell( USHORT nCol, USHORT nRow, USHORT nTab, ScBaseCell* pCell, + BOOL bForceTab = FALSE ); + void PutCell(USHORT nCol, USHORT nRow, USHORT nTab, ScBaseCell* pCell, + ULONG nFormatIndex, BOOL bForceTab = FALSE); + // return TRUE = Zahlformat gesetzt + BOOL SetString( USHORT nCol, USHORT nRow, USHORT nTab, const String& rString ); + void SetValue( USHORT nCol, USHORT nRow, USHORT nTab, const double& rVal ); + void SetNote( USHORT nCol, USHORT nRow, USHORT nTab, const ScPostIt& rNote ); + void SetError( USHORT nCol, USHORT nRow, USHORT nTab, const USHORT nError); + + void PutVariable( USHORT nCol, USHORT nRow, USHORT nTab, + const ODbVariant* pVar, long nType, // enum SdbDatabaseType + BOOL* pSimpleFlag ); + + void InsertMatrixFormula(USHORT nCol1, USHORT nRow1, + USHORT nCol2, USHORT nRow2, + const ScMarkData& rMark, + const String& rFormula, + const ScTokenArray* p = NULL ); + void InsertTableOp(const ScTabOpParam& rParam, // Mehrfachoperation + USHORT nCol1, USHORT nRow1, + USHORT nCol2, USHORT nRow2, const ScMarkData& rMark); + + void GetString( USHORT nCol, USHORT nRow, USHORT nTab, String& rString ); + void GetInputString( USHORT nCol, USHORT nRow, USHORT nTab, String& rString ); + double GetValue( const ScAddress& ); + void GetValue( USHORT nCol, USHORT nRow, USHORT nTab, double& rValue ); + double RoundValueAsShown( double fVal, ULONG nFormat ); + void GetNumberFormat( USHORT nCol, USHORT nRow, USHORT nTab, + ULONG& rFormat ); + ULONG GetNumberFormat( const ScAddress& ) const; + /// if no number format attribute is set the calculated + /// number format of the formula cell is returned + void GetNumberFormatInfo( short& nType, ULONG& nIndex, + const ScAddress& rPos, const ScFormulaCell& rFCell ) const; + void GetFormula( USHORT nCol, USHORT nRow, USHORT nTab, String& rFormula, + BOOL bAsciiExport = FALSE ) const; + BOOL GetNote( USHORT nCol, USHORT nRow, USHORT nTab, ScPostIt& rNote); + void GetCellType( USHORT nCol, USHORT nRow, USHORT nTab, CellType& rCellType ) const; + CellType GetCellType( const ScAddress& rPos ) const; + void GetCell( USHORT nCol, USHORT nRow, USHORT nTab, ScBaseCell*& rpCell ) const; + ScBaseCell* GetCell( const ScAddress& rPos ) const; + + void RefreshNoteFlags(); + BOOL HasNoteObject( USHORT nCol, USHORT nRow, USHORT nTab ) const; + + BOOL HasData( USHORT nCol, USHORT nRow, USHORT nTab ); + BOOL HasStringData( USHORT nCol, USHORT nRow, USHORT nTab ) const; + BOOL HasValueData( USHORT nCol, USHORT nRow, USHORT nTab ) const; + USHORT GetErrorData(USHORT nCol, USHORT nRow, USHORT nTab) const; + BOOL HasStringCells( const ScRange& rRange ) const; + + BOOL ExtendMerge( USHORT nStartCol, USHORT nStartRow, + USHORT& rEndCol, USHORT& rEndRow, USHORT nTab, + BOOL bRefresh = FALSE, BOOL bAttrs = FALSE ); + BOOL ExtendMerge( ScRange& rRange, BOOL bRefresh = FALSE, BOOL bAttrs = FALSE ); + BOOL ExtendTotalMerge( ScRange& rRange ); + BOOL ExtendOverlapped( USHORT& rStartCol, USHORT& rStartRow, + USHORT nEndCol, USHORT nEndRow, USHORT nTab ); + BOOL ExtendOverlapped( ScRange& rRange ); + + BOOL RefreshAutoFilter( USHORT nStartCol, USHORT nStartRow, + USHORT nEndCol, USHORT nEndRow, USHORT nTab ); + + void DoMergeContents( USHORT nTab, USHORT nStartCol, USHORT nStartRow, + USHORT nEndCol, USHORT nEndRow ); + // ohne Ueberpruefung: + void DoMerge( USHORT nTab, USHORT nStartCol, USHORT nStartRow, + USHORT nEndCol, USHORT nEndRow ); + void RemoveMerge( USHORT nCol, USHORT nRow, USHORT nTab ); + + BOOL IsBlockEmpty( USHORT nTab, USHORT nStartCol, USHORT nStartRow, + USHORT nEndCol, USHORT nEndRow ) const; + BOOL IsPrintEmpty( USHORT nTab, USHORT nStartCol, USHORT nStartRow, + USHORT nEndCol, USHORT nEndRow, + BOOL bLeftIsEmpty = FALSE, + ScRange* pLastRange = NULL, + Rectangle* pLastMM = NULL ) const; + + BOOL IsOverlapped( USHORT nCol, USHORT nRow, USHORT nTab ) const; + BOOL IsHorOverlapped( USHORT nCol, USHORT nRow, USHORT nTab ) const; + BOOL IsVerOverlapped( USHORT nCol, USHORT nRow, USHORT nTab ) const; + + BOOL HasAttrib( USHORT nCol1, USHORT nRow1, USHORT nTab1, + USHORT nCol2, USHORT nRow2, USHORT nTab2, USHORT nMask ); + BOOL HasAttrib( const ScRange& rRange, USHORT nMask ); + + BOOL HasLines( const ScRange& rRange, Rectangle& rSizes ) const; + + void GetBorderLines( USHORT nCol, USHORT nRow, USHORT nTab, + const SvxBorderLine** ppLeft, + const SvxBorderLine** ppTop, + const SvxBorderLine** ppRight, + const SvxBorderLine** ppBottom ) const; + + void ResetChanged( const ScRange& rRange ); + + void SetDirty(); + void SetDirty( const ScRange& ); + void SetDirtyVar(); + void CalcAll(); + void CalcAfterLoad(); + void CompileAll(); + void CompileXML(); + + // Automatisch Berechnen + void SetAutoCalc( BOOL bNewAutoCalc ); + BOOL GetAutoCalc() const { return bAutoCalc; } + // Automatisch Berechnen in/von/fuer ScDocShell disabled + void SetAutoCalcShellDisabled( BOOL bNew ) { bAutoCalcShellDisabled = bNew; } + BOOL IsAutoCalcShellDisabled() const { return bAutoCalcShellDisabled; } + // ForcedFormulas zu berechnen + void SetForcedFormulaPending( BOOL bNew ) { bForcedFormulaPending = bNew; } + BOOL IsForcedFormulaPending() const { return bForcedFormulaPending; } + + void GetErrCode( USHORT nCol, USHORT nRow, USHORT nTab, USHORT& rErrCode ); + USHORT GetErrCode( const ScAddress& ) const; + + void GetDataArea( USHORT nTab, USHORT& rStartCol, USHORT& rStartRow, + USHORT& rEndCol, USHORT& rEndRow, BOOL bIncludeOld ); + BOOL GetCellArea( USHORT nTab, USHORT& rEndCol, USHORT& rEndRow ) const; + BOOL GetTableArea( USHORT nTab, USHORT& rEndCol, USHORT& rEndRow ) const; + BOOL GetPrintArea( USHORT nTab, USHORT& rEndCol, USHORT& rEndRow, + BOOL bNotes = TRUE ) const; + BOOL GetPrintAreaHor( USHORT nTab, USHORT nStartRow, USHORT nEndRow, + USHORT& rEndCol, BOOL bNotes = TRUE ) const; + BOOL GetPrintAreaVer( USHORT nTab, USHORT nStartCol, USHORT nEndCol, + USHORT& rEndRow, BOOL bNotes = TRUE ) const; + void InvalidateTableArea(); + + BOOL GetDataStart( USHORT nTab, USHORT& rStartCol, USHORT& rStartRow ) const; + + void ExtendPrintArea( OutputDevice* pDev, USHORT nTab, + USHORT nStartCol, USHORT nStartRow, + USHORT& rEndCol, USHORT nEndRow ); + + USHORT GetEmptyLinesInBlock( USHORT nStartCol, USHORT nStartRow, USHORT nStartTab, + USHORT nEndCol, USHORT nEndRow, USHORT nEndTab, + ScDirection eDir ); + + void FindAreaPos( USHORT& rCol, USHORT& rRow, USHORT nTab, short nMovX, short nMovY ); + void GetNextPos( USHORT& rCol, USHORT& rRow, USHORT nTab, short nMovX, short nMovY, + BOOL bMarked, BOOL bUnprotected, const ScMarkData& rMark ); + + BOOL GetNextMarkedCell( USHORT& rCol, USHORT& rRow, USHORT nTab, + const ScMarkData& rMark ); + + void LimitChartArea( USHORT nTab, USHORT& rStartCol, USHORT& rStartRow, + USHORT& rEndCol, USHORT& rEndRow ); + void LimitChartIfAll( ScRangeListRef& rRangeList ); + + BOOL InsertRow( USHORT nStartCol, USHORT nStartTab, + USHORT nEndCol, USHORT nEndTab, + USHORT nStartRow, USHORT nSize ); + BOOL InsertRow( const ScRange& rRange ); + void DeleteRow( USHORT nStartCol, USHORT nStartTab, + USHORT nEndCol, USHORT nEndTab, + USHORT nStartRow, USHORT nSize, + ScDocument* pRefUndoDoc = NULL, BOOL* pUndoOutline = NULL ); + void DeleteRow( const ScRange& rRange, + ScDocument* pRefUndoDoc = NULL, BOOL* pUndoOutline = NULL ); + BOOL InsertCol( USHORT nStartRow, USHORT nStartTab, + USHORT nEndRow, USHORT nEndTab, + USHORT nStartCol, USHORT nSize ); + BOOL InsertCol( const ScRange& rRange ); + void DeleteCol( USHORT nStartRow, USHORT nStartTab, + USHORT nEndRow, USHORT nEndTab, + USHORT nStartCol, USHORT nSize, + ScDocument* pRefUndoDoc = NULL, BOOL* pUndoOutline = NULL ); + void DeleteCol( const ScRange& rRange, + ScDocument* pRefUndoDoc = NULL, BOOL* pUndoOutline = NULL ); + + BOOL CanInsertRow( const ScRange& rRange ) const; + BOOL CanInsertCol( const ScRange& rRange ) const; + + void FitBlock( const ScRange& rOld, const ScRange& rNew, BOOL bClear = TRUE ); + BOOL CanFitBlock( const ScRange& rOld, const ScRange& rNew ); + + BOOL IsClipOrUndo() const { return bIsClip || bIsUndo; } + BOOL IsUndo() const { return bIsUndo; } + BOOL IsClipboard() const { return bIsClip; } + void ResetClip( ScDocument* pSourceDoc, const ScMarkData* pMarks ); + void ResetClip( ScDocument* pSourceDoc, USHORT nTab ); + void SetCutMode( BOOL bCut ); + BOOL IsCutMode(); + void SetClipArea( const ScRange& rArea, BOOL bCut = FALSE ); + + void DeleteObjectsInArea( USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2, + const ScMarkData& rMark ); + void DeleteObjectsInSelection( const ScMarkData& rMark ); + void DeleteObjects( USHORT nTab ); + + void DeleteArea(USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2, + const ScMarkData& rMark, USHORT nDelFlag); + void DeleteAreaTab(USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2, + USHORT nTab, USHORT nDelFlag); + void DeleteAreaTab(const ScRange& rRange, USHORT nDelFlag); + void CopyToClip(USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2, + BOOL bCut, ScDocument* pClipDoc, BOOL bAllTabs, + const ScMarkData* pMarks = NULL, BOOL bKeepScenarioFlags=FALSE); + void CopyTabToClip(USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2, + USHORT nTab, ScDocument* pClipDoc = NULL); + void CopyBlockFromClip( USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2, + const ScMarkData& rMark, short nDx, short nDy, + const ScCopyBlockFromClipParams* pCBFCP ); + void StartListeningFromClip( USHORT nCol1, USHORT nRow1, + USHORT nCol2, USHORT nRow2, + const ScMarkData& rMark, USHORT nInsFlag ); + void BroadcastFromClip( USHORT nCol1, USHORT nRow1, + USHORT nCol2, USHORT nRow2, + const ScMarkData& rMark, USHORT nInsFlag ); + void CopyFromClip( const ScRange& rDestRange, const ScMarkData& rMark, + USHORT nInsFlag, + ScDocument* pRefUndoDoc = NULL, + ScDocument* pClipDoc = NULL, + BOOL bResetCut = TRUE, + BOOL bAsLink = FALSE ); + + void GetClipArea(USHORT& nClipX, USHORT& nClipY); + void GetClipStart(USHORT& nClipX, USHORT& nClipY); + + BOOL IsClipboardSource() const; + + void TransposeClip( ScDocument* pTransClip, USHORT nFlags, BOOL bAsLink ); + + void MixDocument( const ScRange& rRange, USHORT nFunction, BOOL bSkipEmpty, + ScDocument* pSrcDoc ); + + void FillTab( const ScRange& rSrcArea, const ScMarkData& rMark, + USHORT nFlags, USHORT nFunction, + BOOL bSkipEmpty, BOOL bAsLink ); + void FillTabMarked( USHORT nSrcTab, const ScMarkData& rMark, + USHORT nFlags, USHORT nFunction, + BOOL bSkipEmpty, BOOL bAsLink ); + + void InitUndo( ScDocument* pSrcDoc, USHORT nTab1, USHORT nTab2, + BOOL bColInfo = FALSE, BOOL bRowInfo = FALSE ); + void AddUndoTab( USHORT nTab1, USHORT nTab2, + BOOL bColInfo = FALSE, BOOL bRowInfo = FALSE ); + + // nicht mehr benutzen: + void CopyToDocument(USHORT nCol1, USHORT nRow1, USHORT nTab1, + USHORT nCol2, USHORT nRow2, USHORT nTab2, + USHORT nFlags, BOOL bMarked, ScDocument* pDestDoc, + const ScMarkData* pMarks = NULL, BOOL bColRowFlags = TRUE); + void UndoToDocument(USHORT nCol1, USHORT nRow1, USHORT nTab1, + USHORT nCol2, USHORT nRow2, USHORT nTab2, + USHORT nFlags, BOOL bMarked, ScDocument* pDestDoc, + const ScMarkData* pMarks = NULL); + + void CopyToDocument(const ScRange& rRange, + USHORT nFlags, BOOL bMarked, ScDocument* pDestDoc, + const ScMarkData* pMarks = NULL, BOOL bColRowFlags = TRUE); + void UndoToDocument(const ScRange& rRange, + USHORT nFlags, BOOL bMarked, ScDocument* pDestDoc, + const ScMarkData* pMarks = NULL); + + void CopyScenario( USHORT nSrcTab, USHORT nDestTab, BOOL bNewScenario = FALSE ); + BOOL TestCopyScenario( USHORT nSrcTab, USHORT nDestTab ) const; + void MarkScenario( USHORT nSrcTab, USHORT nDestTab, + ScMarkData& rDestMark, BOOL bResetMark = TRUE, + USHORT nNeededBits = 0 ) const; + BOOL HasScenarioRange( USHORT nTab, const ScRange& rRange ) const; + const ScRangeList* GetScenarioRanges( USHORT nTab ) const; + + void CopyUpdated( ScDocument* pPosDoc, ScDocument* pDestDoc ); + + void UpdateReference( UpdateRefMode eUpdateRefMode, USHORT nCol1, USHORT nRow1, USHORT nTab1, + USHORT nCol2, USHORT nRow2, USHORT nTab2, + short nDx, short nDy, short nDz, ScDocument* pUndoDoc = NULL ); + + void UpdateTranspose( const ScAddress& rDestPos, ScDocument* pClipDoc, + const ScMarkData& rMark, ScDocument* pUndoDoc = NULL ); + + void UpdateGrow( const ScRange& rArea, USHORT nGrowX, USHORT nGrowY ); + + void Fill( USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2, + const ScMarkData& rMark, + USHORT nFillCount, FillDir eFillDir = FILL_TO_BOTTOM, + FillCmd eFillCmd = FILL_LINEAR, FillDateCmd eFillDateCmd = FILL_DAY, + double nStepValue = 1.0, double nMaxValue = 1E307); + String GetAutoFillPreview( const ScRange& rSource, USHORT nEndX, USHORT nEndY ); + + BOOL GetSelectionFunction( ScSubTotalFunc eFunc, + const ScAddress& rCursor, const ScMarkData& rMark, + double& rResult ); + + const SfxPoolItem* GetAttr( USHORT nCol, USHORT nRow, USHORT nTab, USHORT nWhich ) const; + const ScPatternAttr* GetPattern( USHORT nCol, USHORT nRow, USHORT nTab ) const; + const ScPatternAttr* GetSelectionPattern( const ScMarkData& rMark, BOOL bDeep = TRUE ); + ScPatternAttr* CreateSelectionPattern( const ScMarkData& rMark, BOOL bDeep = TRUE ); + + const ScConditionalFormat* GetCondFormat( USHORT nCol, USHORT nRow, USHORT nTab ) const; + const SfxItemSet* GetCondResult( USHORT nCol, USHORT nRow, USHORT nTab ) const; + const SfxPoolItem* GetEffItem( USHORT nCol, USHORT nRow, USHORT nTab, USHORT nWhich ) const; + + BOOL HasDetectiveOperations() const; + void AddDetectiveOperation( const ScDetOpData& rData ); + void ClearDetectiveOperations(); + ScDetOpList* GetDetOpList() const { return pDetOpList; } + void SetDetOpList(ScDetOpList* pNew); + + void GetSelectionFrame( const ScMarkData& rMark, + SvxBoxItem& rLineOuter, + SvxBoxInfoItem& rLineInner ); + void ApplySelectionFrame( const ScMarkData& rMark, + const SvxBoxItem* pLineOuter, + const SvxBoxInfoItem* pLineInner ); + + void ClearSelectionItems( const USHORT* pWhich, const ScMarkData& rMark ); + void ChangeSelectionIndent( BOOL bIncrement, const ScMarkData& rMark ); + + ULONG AddCondFormat( const ScConditionalFormat& rNew ); + void FindConditionalFormat( ULONG nKey, ScRangeList& rRanges ); + void ConditionalChanged( ULONG nKey ); + void SetConditionalUsed( ULONG nKey ); // beim Speichern + + ULONG AddValidationEntry( const ScValidationData& rNew ); + void SetValidationUsed( ULONG nKey ); // beim Speichern + + const ScValidationData* GetValidationEntry( ULONG nIndex ) const; + + ScConditionalFormatList* GetCondFormList() const // Ref-Undo + { return pCondFormList; } + void SetCondFormList(ScConditionalFormatList* pNew); + + ScValidationDataList* GetValidationList() const + { return pValidationList; } + + void ApplyAttr( USHORT nCol, USHORT nRow, USHORT nTab, + const SfxPoolItem& rAttr ); + void ApplyPattern( USHORT nCol, USHORT nRow, USHORT nTab, + const ScPatternAttr& rAttr ); + void ApplyPatternArea( USHORT nStartCol, USHORT nStartRow, + USHORT nEndCol, USHORT nEndRow, + const ScMarkData& rMark, const ScPatternAttr& rAttr ); + void ApplyPatternAreaTab( USHORT nStartCol, USHORT nStartRow, + USHORT nEndCol, USHORT nEndRow, USHORT nTab, + const ScPatternAttr& rAttr ); + void ApplyPatternIfNumberformatIncompatible( + const ScRange& rRange, const ScMarkData& rMark, + const ScPatternAttr& rPattern, short nNewType ); + + void ApplyStyle( USHORT nCol, USHORT nRow, USHORT nTab, + const ScStyleSheet& rStyle); + void ApplyStyleArea( USHORT nStartCol, USHORT nStartRow, + USHORT nEndCol, USHORT nEndRow, + const ScMarkData& rMark, const ScStyleSheet& rStyle); + void ApplyStyleAreaTab( USHORT nStartCol, USHORT nStartRow, + USHORT nEndCol, USHORT nEndRow, USHORT nTab, + const ScStyleSheet& rStyle); + + void ApplySelectionStyle( const ScStyleSheet& rStyle, const ScMarkData& rMark ); + void ApplySelectionLineStyle( const ScMarkData& rMark, + const SvxBorderLine* pLine, BOOL bColorOnly ); + + const ScStyleSheet* GetStyle( USHORT nCol, USHORT nRow, USHORT nTab ) const; + const ScStyleSheet* GetSelectionStyle( const ScMarkData& rMark ) const; + + void StyleSheetChanged( const SfxStyleSheetBase* pStyleSheet, BOOL bRemoved, + OutputDevice* pDev, + double nPPTX, double nPPTY, + const Fraction& rZoomX, const Fraction& rZoomY ); + + BOOL IsStyleSheetUsed( const SfxStyleSheetBase& rStyle ) const; + + // Rueckgabe TRUE bei ApplyFlags: Wert geaendert + BOOL ApplyFlags( USHORT nStartCol, USHORT nStartRow, USHORT nEndCol, USHORT nEndRow, + const ScMarkData& rMark, INT16 nFlags ); + BOOL ApplyFlagsTab( USHORT nStartCol, USHORT nStartRow, + USHORT nEndCol, USHORT nEndRow, + USHORT nTab, INT16 nFlags ); + BOOL RemoveFlags( USHORT nStartCol, USHORT nStartRow, USHORT nEndCol, USHORT nEndRow, + const ScMarkData& rMark, INT16 nFlags ); + BOOL RemoveFlagsTab( USHORT nStartCol, USHORT nStartRow, + USHORT nEndCol, USHORT nEndRow, + USHORT nTab, INT16 nFlags ); + + void SetPattern( const ScAddress&, const ScPatternAttr& rAttr, + BOOL bPutToPool = FALSE ); + void SetPattern( USHORT nCol, USHORT nRow, USHORT nTab, const ScPatternAttr& rAttr, + BOOL bPutToPool = FALSE ); + void DeleteNumberFormat( const ULONG* pDelKeys, ULONG nCount ); + + void AutoFormat( USHORT nStartCol, USHORT nStartRow, USHORT nEndCol, USHORT nEndRow, + USHORT nFormatNo, const ScMarkData& rMark ); + void GetAutoFormatData( USHORT nTab, USHORT nStartCol, USHORT nStartRow, USHORT nEndCol, USHORT nEndRow, + ScAutoFormatData& rData ); + BOOL SearchAndReplace( const SvxSearchItem& rSearchItem, + USHORT& rCol, USHORT& rRow, USHORT& rTab, + ScMarkData& rMark, + String& rUndoStr, ScDocument* pUndoDoc = NULL ); + + // Col/Row von Folgeaufrufen bestimmen + // (z.B. nicht gefunden von Anfang, oder folgende Tabellen) + static void GetSearchAndReplaceStart( const SvxSearchItem& rSearchItem, + USHORT& rCol, USHORT& rRow ); + + BOOL Solver(USHORT nFCol, USHORT nFRow, USHORT nFTab, + USHORT nVCol, USHORT nVRow, USHORT nVTab, + const String& sValStr, double& nX); + + void ApplySelectionPattern( const ScPatternAttr& rAttr, const ScMarkData& rMark ); + void DeleteSelection( USHORT nDelFlag, const ScMarkData& rMark ); + void DeleteSelectionTab( USHORT nTab, USHORT nDelFlag, const ScMarkData& rMark ); + + // + + void SetColWidth( USHORT nCol, USHORT nTab, USHORT nNewWidth ); + void SetRowHeight( USHORT nRow, USHORT nTab, USHORT nNewHeight ); + void SetRowHeightRange( USHORT nStartRow, USHORT nEndRow, USHORT nTab, + USHORT nNewHeight ); + void SetManualHeight( USHORT nStartRow, USHORT nEndRow, USHORT nTab, BOOL bManual ); + + USHORT GetColWidth( USHORT nCol, USHORT nTab ) const; + USHORT GetRowHeight( USHORT nRow, USHORT nTab ) const; + ULONG GetColOffset( USHORT nCol, USHORT nTab ) const; + ULONG GetRowOffset( USHORT nRow, USHORT nTab ) const; + + USHORT GetOriginalWidth( USHORT nCol, USHORT nTab ) const; + + inline USHORT FastGetRowHeight( USHORT nRow, USHORT nTab ) const; // ohne Ueberpruefungen! + + USHORT GetHiddenRowCount( USHORT nRow, USHORT nTab ) const; + + USHORT GetOptimalColWidth( USHORT nCol, USHORT nTab, OutputDevice* pDev, + double nPPTX, double nPPTY, + const Fraction& rZoomX, const Fraction& rZoomY, + BOOL bFormula, + const ScMarkData* pMarkData = NULL, + BOOL bSimpleTextImport = FALSE ); + BOOL SetOptimalHeight( USHORT nStartRow, USHORT nEndRow, USHORT nTab, USHORT nExtra, + OutputDevice* pDev, + double nPPTX, double nPPTY, + const Fraction& rZoomX, const Fraction& rZoomY, + BOOL bShrink ); + long GetNeededSize( USHORT nCol, USHORT nRow, USHORT nTab, + OutputDevice* pDev, + double nPPTX, double nPPTY, + const Fraction& rZoomX, const Fraction& rZoomY, + BOOL bWidth, BOOL bTotalSize = FALSE ); + + void ShowCol(USHORT nCol, USHORT nTab, BOOL bShow); + void ShowRow(USHORT nRow, USHORT nTab, BOOL bShow); + void ShowRows(USHORT nRow1, USHORT nRow2, USHORT nTab, BOOL bShow); + void SetColFlags( USHORT nCol, USHORT nTab, BYTE nNewFlags ); + void SetRowFlags( USHORT nRow, USHORT nTab, BYTE nNewFlags ); + + BYTE GetColFlags( USHORT nCol, USHORT nTab ) const; + BYTE GetRowFlags( USHORT nRow, USHORT nTab ) const; + + USHORT GetLastFlaggedCol( USHORT nTab ) const; + USHORT GetLastFlaggedRow( USHORT nTab ) const; + + BOOL IsFiltered( USHORT nRow, USHORT nTab ) const; + + BOOL UpdateOutlineCol( USHORT nStartCol, USHORT nEndCol, USHORT nTab, BOOL bShow ); + BOOL UpdateOutlineRow( USHORT nStartRow, USHORT nEndRow, USHORT nTab, BOOL bShow ); + + void StripHidden( USHORT& rX1, USHORT& rY1, USHORT& rX2, USHORT& rY2, USHORT nTab ); + void ExtendHidden( USHORT& rX1, USHORT& rY1, USHORT& rX2, USHORT& rY2, USHORT nTab ); + + ScPatternAttr* GetDefPattern() const; + ScDocumentPool* GetPool(); + ScStyleSheetPool* GetStyleSheetPool() const; + + // PageStyle: + const String& GetPageStyle( USHORT nTab ) const; + void SetPageStyle( USHORT nTab, const String& rName ); + Size GetPageSize( USHORT nTab ) const; + void SetPageSize( USHORT nTab, const Size& rSize ); + void SetRepeatArea( USHORT nTab, USHORT nStartCol, USHORT nEndCol, USHORT nStartRow, USHORT nEndRow ); + void UpdatePageBreaks(); + void UpdatePageBreaks( USHORT nTab, const ScRange* pUserArea = NULL ); + void RemoveManualBreaks( USHORT nTab ); + BOOL HasManualBreaks( USHORT nTab ) const; + + BOOL IsPageStyleInUse( const String& rStrPageStyle, USHORT* pInTab = NULL ); + BOOL RemovePageStyleInUse( const String& rStrPageStyle ); + BOOL RenamePageStyleInUse( const String& rOld, const String& rNew ); + void ModifyStyleSheet( SfxStyleSheetBase& rPageStyle, + const SfxItemSet& rChanges ); + + void PageStyleModified( USHORT nTab, const String& rNewName ); + + BOOL NeedPageResetAfterTab( USHORT nTab ) const; + + // war vorher im PageStyle untergracht. Jetzt an jeder Tabelle: + BOOL HasPrintRange(); + USHORT GetPrintRangeCount( USHORT nTab ); + const ScRange* GetPrintRange( USHORT nTab, USHORT nPos ); + const ScRange* GetRepeatColRange( USHORT nTab ); + const ScRange* GetRepeatRowRange( USHORT nTab ); + void SetPrintRangeCount( USHORT nTab, USHORT nNew ); + void SetPrintRange( USHORT nTab, USHORT nPos, const ScRange& rNew ); + void SetRepeatColRange( USHORT nTab, const ScRange* pNew ); + void SetRepeatRowRange( USHORT nTab, const ScRange* pNew ); + ScPrintRangeSaver* CreatePrintRangeSaver() const; + void RestorePrintRanges( const ScPrintRangeSaver& rSaver ); + + Rectangle GetMMRect( USHORT nStartCol, USHORT nStartRow, + USHORT nEndCol, USHORT nEndRow, USHORT nTab ); + ScRange GetRange( USHORT nTab, const Rectangle& rMMRect ); + + BOOL LoadPool( SvStream& rStream, BOOL bLoadRefCounts ); + BOOL SavePool( SvStream& rStream ) const; + + BOOL Load( SvStream& rStream, ScProgress* pProgress ); + BOOL Save( SvStream& rStream, ScProgress* pProgress ) const; + + void UpdStlShtPtrsFrmNms(); + void StylesToNames(); + + void CopyStdStylesFrom( ScDocument* pSrcDoc ); + + CharSet GetSrcCharSet() const { return eSrcSet; } + ULONG GetSrcVersion() const { return nSrcVer; } + USHORT GetSrcMaxRow() const { return nSrcMaxRow; } + + void SetLostData(); + BOOL HasLostData() const { return bLostData; } + + void SetSrcCharSet( CharSet eNew ) { eSrcSet = eNew; } + void UpdateFontCharSet(); + + friend SvStream& operator>>( SvStream& rStream, ScDocument& rDocument ); + friend SvStream& operator<<( SvStream& rStream, const ScDocument& rDocument ); + + USHORT FillInfo( RowInfo* pRowInfo, USHORT nX1, USHORT nY1, USHORT nX2, USHORT nY2, + USHORT nTab, double nScaleX, double nScaleY, + BOOL bPageMode, BOOL bFormulaMode, + const ScMarkData* pMarkData = NULL ); + + SvNumberFormatter* GetFormatTable() const { return pFormTable; } + + void Sort( USHORT nTab, const ScSortParam& rSortParam, BOOL bKeepQuery ); + USHORT Query( USHORT nTab, const ScQueryParam& rQueryParam, BOOL bKeepSub ); + BOOL ValidQuery( USHORT nRow, USHORT nTab, const ScQueryParam& rQueryParam ); + BOOL CreateQueryParam( USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2, + USHORT nTab, ScQueryParam& rQueryParam ); + void GetUpperCellString(USHORT nCol, USHORT nRow, USHORT nTab, String& rStr); + + BOOL GetFilterEntries( USHORT nCol, USHORT nRow, USHORT nTab, + TypedStrCollection& rStrings ); + BOOL GetFilterEntriesArea( USHORT nCol, USHORT nStartRow, USHORT nEndRow, + USHORT nTab, TypedStrCollection& rStrings ); + BOOL GetDataEntries( USHORT nCol, USHORT nRow, USHORT nTab, + TypedStrCollection& rStrings, BOOL bLimit = FALSE ); + BOOL GetFormulaEntries( TypedStrCollection& rStrings ); + + BOOL HasAutoFilter( USHORT nCol, USHORT nRow, USHORT nTab ); + + BOOL HasColHeader( USHORT nStartCol, USHORT nStartRow, USHORT nEndCol, USHORT nEndRow, + USHORT nTab ); + BOOL HasRowHeader( USHORT nStartCol, USHORT nStartRow, USHORT nEndCol, USHORT nEndRow, + USHORT nTab ); + + SfxPrinter* GetPrinter(); + void SetPrinter( SfxPrinter* pNewPrinter ); + void EraseNonUsedSharedNames(USHORT nLevel); + BOOL GetNextSpellingCell(USHORT& nCol, USHORT& nRow, USHORT nTab, + BOOL bInSel, const ScMarkData& rMark) const; + + BOOL ReplaceStyle(const SvxSearchItem& rSearchItem, + USHORT nCol, USHORT nRow, USHORT nTab, + ScMarkData& rMark, BOOL bIsUndo); + + void DoColResize( USHORT nTab, USHORT nCol1, USHORT nCol2, USHORT nAdd ); + + // Idleberechnung der OutputDevice-Zelltextbreite + BOOL IsLoadingDone() const { return bLoadingDone; } + void InvalidateTextWidth( const String& rStyleName ); + void InvalidateTextWidth( USHORT nTab ); + void InvalidateTextWidth( const ScAddress* pAdrFrom = NULL, + const ScAddress* pAdrTo = NULL, + BOOL bBroadcast = FALSE ); + + BOOL IdleCalcTextWidth(); + BOOL IdleCheckLinks(); + + BOOL ContinueOnlineSpelling(); // TRUE = etwas gefunden + + BOOL IsIdleDisabled() const { return bIdleDisabled; } + void DisableIdle(BOOL bDo) { bIdleDisabled = bDo; } + + BOOL IsDetectiveDirty() const { return bDetectiveDirty; } + void SetDetectiveDirty(BOOL bSet) { bDetectiveDirty = bSet; } + + void RemoveAutoSpellObj(); + void SetOnlineSpellPos( const ScAddress& rPos ); + BOOL SetVisibleSpellRange( const ScRange& rRange ); // TRUE = changed + + BYTE GetMacroCallMode() const { return nMacroCallMode; } + void SetMacroCallMode(BYTE nNew) { nMacroCallMode = nNew; } + + BOOL GetHasMacroFunc() const { return bHasMacroFunc; } + void SetHasMacroFunc(BOOL bSet) { bHasMacroFunc = bSet; } + + BOOL HasMacroCallsAfterLoad(); + BOOL CheckMacroWarn(); + + // fuer Broadcasting/Listening + void SetNoSetDirty( BOOL bVal ) { bNoSetDirty = bVal; } + BOOL GetNoSetDirty() const { return bNoSetDirty; } + void SetInsertingFromOtherDoc( BOOL bVal ) { bInsertingFromOtherDoc = bVal; } + BOOL IsInsertingFromOtherDoc() const { return bInsertingFromOtherDoc; } + void SetImportingXML( BOOL bVal ) { bImportingXML = bVal; } + BOOL IsImportingXML() const { return bImportingXML; } + void SetCalcingAfterLoad( BOOL bVal ) { bCalcingAfterLoad = bVal; } + BOOL IsCalcingAfterLoad() const { return bCalcingAfterLoad; } + void SetNoListening( BOOL bVal ) { bNoListening = bVal; } + BOOL GetNoListening() const { return bNoListening; } + + ScChartListenerCollection* GetChartListenerCollection() const + { return pChartListenerCollection; } + void SetChartListenerCollection( ScChartListenerCollection*, + BOOL bSetChartRangeLists = FALSE ); + void UpdateChart( const String& rName, Window* pWin ); + void UpdateChartListenerCollection(); + BOOL IsChartListenerCollectionNeedsUpdate() const + { return bChartListenerCollectionNeedsUpdate; } + void SetChartListenerCollectionNeedsUpdate( BOOL bFlg ) + { bChartListenerCollectionNeedsUpdate = bFlg; } + + ScChangeViewSettings* GetChangeViewSettings() const { return pChangeViewSettings; } + void SetChangeViewSettings(const ScChangeViewSettings& rNew); + + ScLkUpdMode GetLinkMode() const { return eLinkMode ;} + void SetLinkMode( ScLkUpdMode nSet ) { eLinkMode = nSet;} + + +private: + void SetAutoFilterFlags(); + void FindMaxRotCol( USHORT nTab, RowInfo* pRowInfo, USHORT nArrCount, + USHORT nX1, USHORT nX2 ) const; + + USHORT RowDifferences( USHORT nThisRow, USHORT nThisTab, + ScDocument& rOtherDoc, + USHORT nOtherRow, USHORT nOtherTab, + USHORT nMaxCol, USHORT* pOtherCols ); + USHORT ColDifferences( USHORT nThisCol, USHORT nThisTab, + ScDocument& rOtherDoc, + USHORT nOtherCol, USHORT nOtherTab, + USHORT nMaxRow, USHORT* pOtherRows ); + void FindOrder( USHORT* pOtherRows, USHORT nThisEndRow, USHORT nOtherEndRow, + BOOL bColumns, + ScDocument& rOtherDoc, USHORT nThisTab, USHORT nOtherTab, + USHORT nEndCol, USHORT* pTranslate, + ScProgress* pProgress, ULONG nProAdd ); + BOOL OnlineSpellInRange( const ScRange& rSpellRange, ScAddress& rSpellPos, + USHORT nMaxTest ); + + DECL_LINK( TrackTimeHdl, Timer* ); + +public: + void StartListeningArea( const ScRange& rRange, + SfxListener* pListener ); + void EndListeningArea( const ScRange& rRange, + SfxListener* pListener ); + void Broadcast( ULONG nHint, const ScAddress& rAddr, + ScBaseCell* pCell ); + // wrapper, ruft pCell->Broadcast() und AreaBroadcast() und + // TrackFormulas() + void DelBroadcastAreasInRange( const ScRange& rRange ); + void UpdateBroadcastAreas( UpdateRefMode eUpdateRefMode, + const ScRange& rRange, + short nDx, short nDy, short nDz ); + + + void StartListeningCell( const ScAddress& rAddress, + SfxListener* pListener ); + void EndListeningCell( const ScAddress& rAddress, + SfxListener* pListener ); + void PutInFormulaTree( ScFormulaCell* pCell ); + void RemoveFromFormulaTree( ScFormulaCell* pCell ); + void CalcFormulaTree( BOOL bOnlyForced = FALSE, + BOOL bNoProgressBar = FALSE ); + void ClearFormulaTree(); + void AppendToFormulaTrack( ScFormulaCell* pCell ); + void RemoveFromFormulaTrack( ScFormulaCell* pCell ); + void TrackFormulas(); + USHORT GetFormulaTrackCount() const { return nFormulaTrackCount; } + BOOL IsInFormulaTree( ScFormulaCell* pCell ) const; + BOOL IsInFormulaTrack( ScFormulaCell* pCell ) const; + USHORT GetHardRecalcState() { return nHardRecalcState; } + void SetHardRecalcState( USHORT nVal ) { nHardRecalcState = nVal; } + void StartAllListeners(); + const ScFormulaCell* GetFormulaTree() const { return pFormulaTree; } + BOOL HasForcedFormulas() const { return bHasForcedFormulas; } + void SetForcedFormulas( BOOL bVal ) { bHasForcedFormulas = bVal; } + ULONG GetFormulaCodeInTree() const { return nFormulaCodeInTree; } + BOOL IsInInterpreter() const { return nInterpretLevel != 0; } + USHORT GetInterpretLevel() { return nInterpretLevel; } + void IncInterpretLevel() + { + if ( nInterpretLevel < USHRT_MAX ) + nInterpretLevel++; + } + void DecInterpretLevel() + { + if ( nInterpretLevel ) + nInterpretLevel--; + } + BOOL IsInMacroInterpreter() const { return nMacroInterpretLevel != 0; } + USHORT GetMacroInterpretLevel() { return nMacroInterpretLevel; } + void IncMacroInterpretLevel() + { + if ( nMacroInterpretLevel < USHRT_MAX ) + nMacroInterpretLevel++; + } + void DecMacroInterpretLevel() + { + if ( nMacroInterpretLevel ) + nMacroInterpretLevel--; + } + BOOL IsInDtorClear() const { return bInDtorClear; } + void SetExpandRefs( BOOL bVal ) { bExpandRefs = bVal; } + BOOL IsExpandRefs() { return bExpandRefs; } + + void IncSizeRecalcLevel( USHORT nTab ); + void DecSizeRecalcLevel( USHORT nTab ); + + void StartTrackTimer(); + + void CompileDBFormula(); + void CompileDBFormula( BOOL bCreateFormulaString ); + void CompileNameFormula( BOOL bCreateFormulaString ); + void CompileColRowNameFormula(); + + // maximale Stringlaengen einer Column, fuer z.B. dBase Export + xub_StrLen GetMaxStringLen( USHORT nTab, USHORT nCol, + USHORT nRowStart, USHORT nRowEnd ) const; + xub_StrLen GetMaxNumberStringLen( USHORT& nPrecision, + USHORT nTab, USHORT nCol, + USHORT nRowStart, USHORT nRowEnd ) const; + + void KeyInput( const KeyEvent& rKEvt ); // TimerDelays etc. + + ScChangeTrack* GetChangeTrack() const { return pChangeTrack; } + + void StartChangeTracking(); + void EndChangeTracking(); + + void CompareDocument( ScDocument& rOtherDoc ); + + void AddUnoObject( SfxListener& rObject ); + void RemoveUnoObject( SfxListener& rObject ); + void BroadcastUno( const SfxHint &rHint ); + + void SetInLinkUpdate(BOOL bSet); // TableLink or AreaLink + BOOL IsInLinkUpdate() const; // including DdeLink + + SfxItemPool* GetEditPool() const { return pEditPool; } + SfxItemPool* GetEnginePool() const { return pEnginePool; } + ScFieldEditEngine& GetEditEngine(); + +private: // CLOOK-Impl-Methoden + void ImplLoadDocOptions( SvStream& rStream ); + void ImplLoadViewOptions( SvStream& rStream ); + void ImplSaveDocOptions( SvStream& rStream ) const; + void ImplSaveViewOptions( SvStream& rStream ) const; + void ImplCreateOptions(); // bei Gelegenheit auf on-demand umstellen? + void ImplDeleteOptions(); + + void DeleteDrawLayer(); + void DeleteColorTable(); + void LoadDrawLayer(SvStream& rStream); + void StoreDrawLayer(SvStream& rStream) const; + BOOL DrawGetPrintArea( ScRange& rRange, BOOL bSetHor, BOOL bSetVer ) const; + void DrawMovePage( USHORT nOldPos, USHORT nNewPos ); + void DrawCopyPage( USHORT nOldPos, USHORT nNewPos ); + + void UpdateDrawPrinter(); + void InitClipPtrs( ScDocument* pSourceDoc ); + + void LoadDdeLinks(SvStream& rStream); + void SaveDdeLinks(SvStream& rStream) const; + void LoadAreaLinks(SvStream& rStream); + void SaveAreaLinks(SvStream& rStream) const; + + BOOL HasPartOfMerged( const ScRange& rRange ); +}; + + +inline USHORT ScDocument::FastGetRowHeight( USHORT nRow, USHORT nTab ) const +{ + return ( pTab[nTab]->pRowFlags[nRow] & CR_HIDDEN ) ? 0 : pTab[nTab]->pRowHeight[nRow]; +} + + + +#endif + + diff --git a/sc/inc/docuno.hxx b/sc/inc/docuno.hxx new file mode 100644 index 000000000000..0b38a340b9a1 --- /dev/null +++ b/sc/inc/docuno.hxx @@ -0,0 +1,775 @@ +/************************************************************************* + * + * $RCSfile: docuno.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_DOCUNO_HXX +#define SC_DOCUNO_HXX + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" // ScRange, ScAddress +#endif + +#ifndef _SFX_OBJUNO_HXX +#include <sfx2/sfxbasemodel.hxx> +#endif + +#ifndef _SFXLSTNER_HXX //autogen +#include <svtools/lstner.hxx> +#endif + +#ifndef _SVX_FMDMOD_HXX //autogen +#include <svx/fmdmod.hxx> +#endif + +#ifndef _COM_SUN_STAR_STYLE_XSTYLEFAMILIESSUPPLIER_HPP_ +#include <com/sun/star/style/XStyleFamiliesSupplier.hpp> +#endif +#ifndef _COM_SUN_STAR_DOCUMENT_XACTIONLOCKABLE_HPP_ +#include <com/sun/star/document/XActionLockable.hpp> +#endif +#ifndef _COM_SUN_STAR_DOCUMENT_XLINKTARGETSUPPLIER_HPP_ +#include <com/sun/star/document/XLinkTargetSupplier.hpp> +#endif +#ifndef _COM_SUN_STAR_DRAWING_XDRAWPAGESSUPPLIER_HPP_ +#include <com/sun/star/drawing/XDrawPagesSupplier.hpp> +#endif +#ifndef _COM_SUN_STAR_DRAWING_XDRAWPAGES_HPP_ +#include <com/sun/star/drawing/XDrawPages.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XGOALSEEK_HPP_ +#include <com/sun/star/sheet/XGoalSeek.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XCALCULATABLE_HPP_ +#include <com/sun/star/sheet/XCalculatable.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XSCENARIOS_HPP_ +#include <com/sun/star/sheet/XScenarios.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XCONSOLIDATABLE_HPP_ +#include <com/sun/star/sheet/XConsolidatable.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XSPREADSHEETDOCUMENT_HPP_ +#include <com/sun/star/sheet/XSpreadsheetDocument.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XDOCUMENTAUDITING_HPP_ +#include <com/sun/star/sheet/XDocumentAuditing.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_ +#include <com/sun/star/lang/XServiceInfo.hpp> +#endif +#ifndef _COM_SUN_STAR_UTIL_XPROTECTABLE_HPP_ +#include <com/sun/star/util/XProtectable.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XENUMERATIONACCESS_HPP_ +#include <com/sun/star/container/XEnumerationAccess.hpp> +#endif +#ifndef _COM_SUN_STAR_TABLE_XTABLECOLUMNS_HPP_ +#include <com/sun/star/table/XTableColumns.hpp> +#endif +#ifndef _COM_SUN_STAR_TABLE_XTABLEROWS_HPP_ +#include <com/sun/star/table/XTableRows.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XSHEETANNOTATIONS_HPP_ +#include <com/sun/star/sheet/XSheetAnnotations.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_ +#include <com/sun/star/beans/XPropertySet.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XUNOTUNNEL_HPP_ +#include <com/sun/star/lang/XUnoTunnel.hpp> +#endif + +#ifndef _CPPUHELPER_IMPLBASE2_HXX_ +#include <cppuhelper/implbase2.hxx> +#endif +#ifndef _CPPUHELPER_IMPLBASE3_HXX_ +#include <cppuhelper/implbase3.hxx> +#endif +#ifndef _CPPUHELPER_IMPLBASE4_HXX_ +#include <cppuhelper/implbase4.hxx> +#endif + +#ifndef _SFX_ITEMPROP_HXX +#include <svtools/itemprop.hxx> +#endif + +class ScDocShell; +class ScAnnotationObj; +class ScTableColumnObj; +class ScTableRowObj; +class ScTableSheetObj; +class SvxFmDrawPage; +class SvxDrawPage; + +class ScModelObj : public SfxBaseModel, + public com::sun::star::sheet::XSpreadsheetDocument, + public com::sun::star::document::XActionLockable, + public com::sun::star::sheet::XCalculatable, + public com::sun::star::util::XProtectable, + public com::sun::star::drawing::XDrawPagesSupplier, + public com::sun::star::sheet::XGoalSeek, + public com::sun::star::sheet::XConsolidatable, + public com::sun::star::sheet::XDocumentAuditing, + public com::sun::star::style::XStyleFamiliesSupplier, + public com::sun::star::document::XLinkTargetSupplier, + public com::sun::star::beans::XPropertySet, + public SvxFmMSFactory, // derived from XMultiServiceFactory + public com::sun::star::lang::XUnoTunnel, + public com::sun::star::lang::XServiceInfo +{ +private: + SfxItemPropertySet aPropSet; + ScDocShell* pDocShell; + com::sun::star::uno::Reference<com::sun::star::uno::XAggregation> xNumberAgg; + +public: + ScModelObj(ScDocShell* pDocSh); + virtual ~ScModelObj(); + + // create ScModelObj and set at pDocSh (SetBaseModel) + static void CreateAndSet(ScDocShell* pDocSh); + + ScDocument* GetDocument() const; + + virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( + const ::com::sun::star::uno::Type & rType ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL acquire() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL release() throw(::com::sun::star::uno::RuntimeException); + +//? virtual UString getClassName(void); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // XSpreadsheetDocument + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSpreadsheets > SAL_CALL + getSheets() throw(::com::sun::star::uno::RuntimeException); + + // XStyleFamiliesSupplier + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > SAL_CALL + getStyleFamilies() throw(::com::sun::star::uno::RuntimeException); + + // XLinkTargetSupplier + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > SAL_CALL + getLinks() throw(::com::sun::star::uno::RuntimeException); + + // XActionLockable + virtual sal_Bool SAL_CALL isActionLocked() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addActionLock() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeActionLock() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setActionLocks( sal_Int16 nLock ) + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Int16 SAL_CALL resetActionLocks() throw(::com::sun::star::uno::RuntimeException); + + // XCalculatable + virtual void SAL_CALL calculate() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL calculateAll() throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL isAutomaticCalculationEnabled() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL enableAutomaticCalculation( sal_Bool bEnabled ) + throw(::com::sun::star::uno::RuntimeException); + + // XProtectable + virtual void SAL_CALL protect( const ::rtl::OUString& aPassword ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL unprotect( const ::rtl::OUString& aPassword ) + throw(::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL isProtected() throw(::com::sun::star::uno::RuntimeException); + + // XDrawPagesSupplier + virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPages > SAL_CALL + getDrawPages() throw(::com::sun::star::uno::RuntimeException); + + //! XPrintable?? + + // XGoalSeek + virtual ::com::sun::star::sheet::GoalResult SAL_CALL seekGoal( + const ::com::sun::star::table::CellAddress& aFormulaPosition, + const ::com::sun::star::table::CellAddress& aVariablePosition, + const ::rtl::OUString& aGoalValue ) + throw(::com::sun::star::uno::RuntimeException); + + // XConsolidatable + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XConsolidationDescriptor > + SAL_CALL createConsolidationDescriptor( sal_Bool bEmpty ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL consolidate( const ::com::sun::star::uno::Reference< + ::com::sun::star::sheet::XConsolidationDescriptor >& xDescriptor ) + throw(::com::sun::star::uno::RuntimeException); + + // XDocumentAuditing + virtual void SAL_CALL refreshArrows() throw(::com::sun::star::uno::RuntimeException); + + // XPropertySet + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > + SAL_CALL getPropertySetInfo() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Any& aValue ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::beans::PropertyVetoException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( + const ::rtl::OUString& PropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& xListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XMultiServiceFactory + virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL + createInstance( const ::rtl::OUString& aServiceSpecifier ) + throw(::com::sun::star::uno::Exception, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL + createInstanceWithArguments( const ::rtl::OUString& ServiceSpecifier, + const ::com::sun::star::uno::Sequence< + ::com::sun::star::uno::Any >& Arguments ) + throw(::com::sun::star::uno::Exception, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getAvailableServiceNames() + throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); + + // XUnoTunnel + virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< + sal_Int8 >& aIdentifier ) + throw(::com::sun::star::uno::RuntimeException); + + static const com::sun::star::uno::Sequence<sal_Int8>& getUnoTunnelId(); + static ScModelObj* getImplementation( const com::sun::star::uno::Reference< + com::sun::star::uno::XInterface> xObj ); + + // XTypeProvider + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScDrawPagesObj : public cppu::WeakImplHelper2< + com::sun::star::drawing::XDrawPages, + com::sun::star::lang::XServiceInfo>, + public SfxListener +{ +private: + ScDocShell* pDocShell; + + SvxFmDrawPage* GetObjectByIndex_Impl(INT32 nIndex) const; + +public: + ScDrawPagesObj(ScDocShell* pDocSh); + virtual ~ScDrawPagesObj(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // XDrawPages + virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage > SAL_CALL + insertNewByIndex( sal_Int32 nIndex ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL remove( const ::com::sun::star::uno::Reference< + ::com::sun::star::drawing::XDrawPage >& xPage ) + throw(::com::sun::star::uno::RuntimeException); + + // XIndexAccess + virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) + throw(::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScTableSheetsObj : public cppu::WeakImplHelper4< + com::sun::star::sheet::XSpreadsheets, + com::sun::star::container::XEnumerationAccess, + com::sun::star::container::XIndexAccess, + com::sun::star::lang::XServiceInfo>, + public SfxListener +{ +private: + ScDocShell* pDocShell; + + ScTableSheetObj* GetObjectByIndex_Impl(USHORT nIndex) const; + ScTableSheetObj* GetObjectByName_Impl(const ::rtl::OUString& aName) const; + +public: + ScTableSheetsObj(ScDocShell* pDocSh); + virtual ~ScTableSheetsObj(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // XSpreadsheets + virtual void SAL_CALL insertNewByName( const ::rtl::OUString& aName, sal_Int16 nPosition ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL moveByName( const ::rtl::OUString& aName, sal_Int16 nDestination ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL copyByName( const ::rtl::OUString& aName, + const ::rtl::OUString& aCopy, sal_Int16 nDestination ) + throw(::com::sun::star::uno::RuntimeException); + + // XNameContainer + virtual void SAL_CALL insertByName( const ::rtl::OUString& aName, + const ::com::sun::star::uno::Any& aElement ) + throw(::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::container::ElementExistException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeByName( const ::rtl::OUString& Name ) + throw(::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XNameReplace + virtual void SAL_CALL replaceByName( const ::rtl::OUString& aName, + const ::com::sun::star::uno::Any& aElement ) + throw(::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XEnumerationAccess + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL + createEnumeration() throw(::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XIndexAccess + virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) + throw(::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XNameAccess + virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScTableColumnsObj : public cppu::WeakImplHelper4< + com::sun::star::table::XTableColumns, + com::sun::star::container::XEnumerationAccess, + com::sun::star::container::XNameAccess, + com::sun::star::lang::XServiceInfo>, + public SfxListener +{ +private: + ScDocShell* pDocShell; + USHORT nTab; + USHORT nStartCol; + USHORT nEndCol; + + ScTableColumnObj* GetObjectByIndex_Impl(USHORT nIndex) const; + ScTableColumnObj* GetObjectByName_Impl(const ::rtl::OUString& aName) const; + +public: + ScTableColumnsObj(ScDocShell* pDocSh, USHORT nT, + USHORT nSC, USHORT nEC); + virtual ~ScTableColumnsObj(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // XTableColumns + virtual void SAL_CALL insertByIndex( sal_Int32 nIndex, sal_Int32 nCount ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeByIndex( sal_Int32 nIndex, sal_Int32 nCount ) + throw(::com::sun::star::uno::RuntimeException); + + // XNameAccess + virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XIndexAccess + virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) + throw(::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XEnumerationAccess + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL + createEnumeration() throw(::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScTableRowsObj : public cppu::WeakImplHelper3< + com::sun::star::table::XTableRows, + com::sun::star::container::XEnumerationAccess, + com::sun::star::lang::XServiceInfo>, + public SfxListener +{ +private: + ScDocShell* pDocShell; + USHORT nTab; + USHORT nStartRow; + USHORT nEndRow; + + ScTableRowObj* GetObjectByIndex_Impl(USHORT nIndex) const; + +public: + ScTableRowsObj(ScDocShell* pDocSh, USHORT nT, + USHORT nSR, USHORT nER); + virtual ~ScTableRowsObj(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // XTableRows + virtual void SAL_CALL insertByIndex( sal_Int32 nIndex, sal_Int32 nCount ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeByIndex( sal_Int32 nIndex, sal_Int32 nCount ) + throw(::com::sun::star::uno::RuntimeException); + + // XIndexAccess + virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) + throw(::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XEnumerationAccess + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL + createEnumeration() throw(::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScSpreadsheetSettingsObj : public cppu::WeakImplHelper2< + com::sun::star::beans::XPropertySet, + com::sun::star::lang::XServiceInfo>, + public SfxListener +{ +private: + ScDocShell* pDocShell; + +public: + ScSpreadsheetSettingsObj(ScDocShell* pDocSh); + virtual ~ScSpreadsheetSettingsObj(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // XPropertySet + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > + SAL_CALL getPropertySetInfo() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Any& aValue ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::beans::PropertyVetoException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( + const ::rtl::OUString& PropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& xListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScAnnotationsObj : public cppu::WeakImplHelper3< + com::sun::star::sheet::XSheetAnnotations, + com::sun::star::container::XEnumerationAccess, + com::sun::star::lang::XServiceInfo>, + public SfxListener +{ +private: + ScDocShell* pDocShell; + USHORT nTab; // Collection haengt am Sheet + + BOOL GetAddressByIndex_Impl( ULONG nIndex, ScAddress& rPos ) const; + ScAnnotationObj* GetObjectByIndex_Impl(USHORT nIndex) const; + +public: + ScAnnotationsObj(ScDocShell* pDocSh, USHORT nT); + virtual ~ScAnnotationsObj(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // XSheetAnnotations + virtual void SAL_CALL insertNew( const ::com::sun::star::table::CellAddress& aPosition, + const ::rtl::OUString& aText ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeByIndex( sal_Int32 nIndex ) + throw(::com::sun::star::uno::RuntimeException); + + // XIndexAccess + virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) + throw(::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XEnumerationAccess + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL + createEnumeration() throw(::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScScenariosObj : public cppu::WeakImplHelper4< + com::sun::star::sheet::XScenarios, + com::sun::star::container::XEnumerationAccess, + com::sun::star::container::XIndexAccess, + com::sun::star::lang::XServiceInfo>, + public SfxListener +{ +private: + ScDocShell* pDocShell; + USHORT nTab; + + BOOL GetScenarioIndex_Impl( const ::rtl::OUString& rName, USHORT& rIndex ); + ScTableSheetObj* GetObjectByIndex_Impl(USHORT nIndex); + ScTableSheetObj* GetObjectByName_Impl(const ::rtl::OUString& aName); + +public: + ScScenariosObj(ScDocShell* pDocSh, USHORT nT); + virtual ~ScScenariosObj(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // XScenarios + virtual void SAL_CALL addNewByName( const ::rtl::OUString& aName, + const ::com::sun::star::uno::Sequence< + ::com::sun::star::table::CellRangeAddress >& aRanges, + const ::rtl::OUString& aComment ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XNameAccess + virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XIndexAccess + virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) + throw(::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XEnumerationAccess + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL + createEnumeration() throw(::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + + + +#endif + diff --git a/sc/inc/dpobject.hxx b/sc/inc/dpobject.hxx new file mode 100644 index 000000000000..b0d3a64abc02 --- /dev/null +++ b/sc/inc/dpobject.hxx @@ -0,0 +1,251 @@ +/************************************************************************* + * + * $RCSfile: dpobject.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_DPOBJECT_HXX +#define SC_DPOBJECT_HXX + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" +#endif + +#ifndef SC_COLLECT_HXX +#include "collect.hxx" +#endif + +#ifndef _COM_SUN_STAR_SHEET_XDIMENSIONSSUPPLIER_HPP_ +#include <com/sun/star/sheet/XDimensionsSupplier.hpp> +#endif + + +//------------------------------------------------------------------ + + +class Rectangle; +class SvStream; +class ScDPSaveData; +class ScDPOutput; +struct ScDPPositionData; +class ScMultipleReadHeader; +class ScMultipleWriteHeader; +class ScPivot; +class ScPivotCollection; +struct ScPivotParam; +struct ScImportSourceDesc; +struct ScSheetSourceDesc; + + +struct ScDPServiceDesc +{ + String aServiceName; + String aParSource; + String aParName; + String aParUser; + String aParPass; + + ScDPServiceDesc( const String& rServ, const String& rSrc, const String& rNam, + const String& rUser, const String& rPass ) : + aServiceName( rServ ), aParSource( rSrc ), aParName( rNam ), + aParUser( rUser ), aParPass( rPass ) { } + + BOOL operator== ( const ScDPServiceDesc& rOther ) const + { return aServiceName == rOther.aServiceName && + aParSource == rOther.aParSource && + aParName == rOther.aParName && + aParUser == rOther.aParUser && + aParPass == rOther.aParPass; } +}; + + +class ScDPObject : public DataObject +{ +private: + ScDocument* pDoc; + // settings + ScDPSaveData* pSaveData; + String aTableName; + String aTableTag; + ScRange aOutRange; + ScSheetSourceDesc* pSheetDesc; // for sheet data + ScImportSourceDesc* pImpDesc; // for database data + ScDPServiceDesc* pServDesc; // for external service + // cached data + com::sun::star::uno::Reference<com::sun::star::sheet::XDimensionsSupplier> xSource; + ScDPOutput* pOutput; + BOOL bSettingsChanged; + BOOL bAlive; // FALSE if only used to hold settings + + + void CreateObjects(); + void CreateOutput(); + +public: + ScDPObject( ScDocument* pD ); + ScDPObject(const ScDPObject& r); + virtual ~ScDPObject(); + + virtual DataObject* Clone() const; + + void SetAlive(BOOL bSet); + + void InvalidateData(); + void InvalidateSource(); + + void Output(); + ScRange GetNewOutputRange(); + + void SetSaveData(const ScDPSaveData& rData); + ScDPSaveData* GetSaveData() const { return pSaveData; } + + void SetOutRange(const ScRange& rRange); + const ScRange& GetOutRange() const { return aOutRange; } + + void SetSheetDesc(const ScSheetSourceDesc& rDesc); + void SetImportDesc(const ScImportSourceDesc& rDesc); + void SetServiceData(const ScDPServiceDesc& rDesc); + + void WriteSourceDataTo( ScDPObject& rDest ) const; + + const ScSheetSourceDesc* GetSheetDesc() const { return pSheetDesc; } + const ScImportSourceDesc* GetImportSourceDesc() const { return pImpDesc; } + const ScDPServiceDesc* GetDPServiceDesc() const { return pServDesc; } + + com::sun::star::uno::Reference<com::sun::star::sheet::XDimensionsSupplier> GetSource(); + + BOOL IsSheetData() const; + BOOL IsImportData() const { return(pImpDesc != NULL); } + BOOL IsServiceData() const { return(pServDesc != NULL); } + + void SetName(const String& rNew); + const String& GetName() const { return aTableName; } + void SetTag(const String& rNew); + const String& GetTag() const { return aTableTag; } + + String GetDimName( long nDim, BOOL& rIsDataLayout ); + void GetPositionData( ScDPPositionData& rData, const ScAddress& rPos ); + long GetHeaderDim( const ScAddress& rPos ); + BOOL GetHeaderDrag( const ScAddress& rPos, BOOL bMouseLeft, BOOL bMouseTop, + long nDragDim, + Rectangle& rPosRect, USHORT& rOrient, long& rDimPos ); + BOOL IsFilterButton( const ScAddress& rPos ); + + void ToggleDetails( ScDPPositionData& rElemDesc, ScDPObject* pDestObj ); + + BOOL StoreOld(SvStream& rStream, ScMultipleWriteHeader& rHdr ) const; + BOOL StoreNew(SvStream& rStream, ScMultipleWriteHeader& rHdr ) const; + BOOL LoadNew(SvStream& rStream, ScMultipleReadHeader& rHdr ); + BOOL FillOldParam(ScPivotParam& rParam, BOOL bForFile) const; + BOOL FillLabelData(ScPivotParam& rParam, BOOL* pShowAll, USHORT nShowAllMax) const; + void InitFromOldPivot(const ScPivot& rOld, ScDocument* pDoc, BOOL bSetSource); + + void UpdateReference( UpdateRefMode eUpdateRefMode, + const ScRange& r, short nDx, short nDy, short nDz ); + BOOL RefsEqual( const ScDPObject& r ) const; + void WriteRefsTo( ScDPObject& r ) const; + + static BOOL HasRegisteredSources(); + static com::sun::star::uno::Sequence<rtl::OUString> GetRegisteredSources(); + static com::sun::star::uno::Reference<com::sun::star::sheet::XDimensionsSupplier> + CreateSource( const ScDPServiceDesc& rDesc ); + + static void ConvertOrientation( ScDPSaveData& rSaveData, + PivotField* pFields, USHORT nCount, USHORT nOrient, + ScDocument* pDoc, USHORT nRow, USHORT nTab, + const com::sun::star::uno::Reference< + com::sun::star::sheet::XDimensionsSupplier>& xSource, + BOOL bOldDefaults, + PivotField* pRefColFields = NULL, USHORT nRefColCount = 0, + PivotField* pRefRowFields = NULL, USHORT nRefRowCount = 0 ); +}; + + +class ScDPCollection : public Collection +{ +private: + ScDocument* pDoc; + +public: + ScDPCollection(ScDocument* pDocument); + ScDPCollection(const ScDPCollection& r); + virtual ~ScDPCollection(); + + virtual DataObject* Clone() const; + + ScDPObject* operator[](USHORT nIndex) const {return (ScDPObject*)At(nIndex);} + + BOOL StoreOld( SvStream& rStream ) const; + BOOL StoreNew( SvStream& rStream ) const; + BOOL LoadNew( SvStream& rStream ); + + void ConvertOldTables( ScPivotCollection& rOldColl ); + + void UpdateReference( UpdateRefMode eUpdateRefMode, + const ScRange& r, short nDx, short nDy, short nDz ); + + BOOL RefsEqual( const ScDPCollection& r ) const; + void WriteRefsTo( ScDPCollection& r ) const; + + String CreateNewName( USHORT nMin = 1 ) const; + void EnsureNames(); +}; + + +#endif + diff --git a/sc/inc/dpoutput.hxx b/sc/inc/dpoutput.hxx new file mode 100644 index 000000000000..17441abd14e1 --- /dev/null +++ b/sc/inc/dpoutput.hxx @@ -0,0 +1,170 @@ +/************************************************************************* + * + * $RCSfile: dpoutput.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_DPOUTPUT_HXX +#define SC_DPOUTPUT_HXX + +#ifndef _COM_SUN_STAR_SHEET_XDIMENSIONSSUPPLIER_HPP_ +#include <com/sun/star/sheet/XDimensionsSupplier.hpp> +#endif + +#ifndef _COM_SUN_STAR_SHEET_DATARESULT_HPP_ +#include <com/sun/star/sheet/DataResult.hpp> +#endif + +#ifndef _COM_SUN_STAR_SHEET_MEMBERRESULT_HPP_ +#include <com/sun/star/sheet/MemberResult.hpp> +#endif + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" +#endif + +class Rectangle; +class SvStream; +class ScDocument; + +struct ScDPOutLevelData; + + + + +struct ScDPPositionData +{ + long nDimension; + long nHierarchy; + long nLevel; + long nFlags; + String aMemberName; + + ScDPPositionData() { nDimension = nHierarchy = nLevel = -1; nFlags = 0; } // invalid +}; + + + +class ScDPOutput //! name??? +{ +private: + //! use impl-object? + ScDocument* pDoc; + com::sun::star::uno::Reference< + com::sun::star::sheet::XDimensionsSupplier> xSource; + ScAddress aStartPos; + BOOL bDoFilter; + ScDPOutLevelData* pColFields; + ScDPOutLevelData* pRowFields; + ScDPOutLevelData* pPageFields; + long nColFieldCount; + long nRowFieldCount; + long nPageFieldCount; + com::sun::star::uno::Sequence< + com::sun::star::uno::Sequence< + com::sun::star::sheet::DataResult> > aData; + String aDataDescription; + UINT32* pColNumFmt; + UINT32* pRowNumFmt; + long nColFmtCount; + long nRowFmtCount; + + BOOL bSizesValid; + long nColCount; + long nRowCount; + long nHeaderSize; + USHORT nTabStartCol; + USHORT nTabStartRow; + USHORT nMemberStartCol; + USHORT nMemberStartRow; + USHORT nDataStartCol; + USHORT nDataStartRow; + USHORT nTabEndCol; + USHORT nTabEndRow; + + void DataCell( USHORT nCol, USHORT nRow, USHORT nTab, + const com::sun::star::sheet::DataResult& rData ); + void HeaderCell( USHORT nCol, USHORT nRow, USHORT nTab, + const com::sun::star::sheet::MemberResult& rData, + BOOL bColHeader, long nLevel ); + void FieldCell( USHORT nCol, USHORT nRow, USHORT nTab, const String& rCaption ); + void CalcSizes(); + +public: + ScDPOutput( ScDocument* pD, + const com::sun::star::uno::Reference< + com::sun::star::sheet::XDimensionsSupplier>& xSrc, + const ScAddress& rPos, BOOL bFilter ); + ~ScDPOutput(); + + void SetPosition( const ScAddress& rPos ); + + void Output(); //! Refresh? + ScRange GetOutputRange(); + + void GetPositionData( ScDPPositionData& rData, const ScAddress& rPos ); + long GetHeaderDim( const ScAddress& rPos ); + BOOL GetHeaderDrag( const ScAddress& rPos, BOOL bMouseLeft, BOOL bMouseTop, + long nDragDim, + Rectangle& rPosRect, USHORT& rOrient, long& rDimPos ); + BOOL IsFilterButton( const ScAddress& rPos ); +}; + + +#endif + diff --git a/sc/inc/dpsave.hxx b/sc/inc/dpsave.hxx new file mode 100644 index 000000000000..bb1cb82de4c2 --- /dev/null +++ b/sc/inc/dpsave.hxx @@ -0,0 +1,221 @@ +/************************************************************************* + * + * $RCSfile: dpsave.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_DPSAVE_HXX +#define SC_DPSAVE_HXX + +#ifndef _STRING_HXX //autogen +#include <tools/string.hxx> +#endif + +#ifndef _LIST_HXX //autogen wg. List +#include <tools/list.hxx> +#endif + +#ifndef _COM_SUN_STAR_SHEET_XDIMENSIONSSUPPLIER_HPP_ +#include <com/sun/star/sheet/XDimensionsSupplier.hpp> +#endif + +class SvStream; + +// -------------------------------------------------------------------- +// +// classes to save Data Pilot settings +// + + +class ScDPSaveMember +{ +private: + String aName; + USHORT nVisibleMode; + USHORT nShowDetailsMode; + +public: + ScDPSaveMember(const String& rName); + ScDPSaveMember(const ScDPSaveMember& r); + ScDPSaveMember(SvStream& rStream); + ~ScDPSaveMember(); + + BOOL operator== ( const ScDPSaveMember& r ) const; + + const String& GetName() { return aName; } + void SetIsVisible(BOOL bSet); + BOOL GetIsVisible() { return BOOL(nVisibleMode); } + void SetShowDetails(BOOL bSet); + BOOL GetShowDetails() { return BOOL(nShowDetailsMode); } + + void WriteToSource( const com::sun::star::uno::Reference< + com::sun::star::uno::XInterface>& xMember ); + + void Store( SvStream& rStream ) const; +}; + + +class ScDPSaveDimension +{ +private: + String aName; + String* pLayoutName; // alternative name for layout, not used (yet) + BOOL bIsDataLayout; + BOOL bDupFlag; + USHORT nOrientation; + USHORT nFunction; // enum GeneralFunction, for data dimensions + long nUsedHierarchy; + USHORT nShowEmptyMode; //! at level + BOOL bSubTotalDefault; //! at level + long nSubTotalCount; + USHORT* pSubTotalFuncs; // enum GeneralFunction + List aMemberList; + +public: + ScDPSaveDimension(const String& rName, BOOL bDataLayout); + ScDPSaveDimension(const ScDPSaveDimension& r); + ScDPSaveDimension(SvStream& rStream); + ~ScDPSaveDimension(); + + BOOL operator== ( const ScDPSaveDimension& r ) const; + + const List& GetMembers() { return aMemberList; } + void AddMember(ScDPSaveMember* pMember) { aMemberList.Insert(pMember, LIST_APPEND); }; + + void SetDupFlag(BOOL bSet) { bDupFlag = bSet; } + BOOL GetDupFlag() const { return bDupFlag; } + + const String& GetName() const { return aName; } + BOOL IsDataLayout() const { return bIsDataLayout; } + + void SetOrientation(USHORT nNew); + void SetSubTotals(BOOL bSet); // to be removed! + void SetSubTotals(long nCount, const USHORT* pFuncs); + long GetSubTotalsCount() { return nSubTotalCount; } + USHORT GetSubTotalFunc(long nIndex) { return pSubTotalFuncs[nIndex]; } + void SetShowEmpty(BOOL bSet); + BOOL GetShowEmpty() { return BOOL(nShowEmptyMode); } + void SetFunction(USHORT nNew); // enum GeneralFunction + USHORT GetFunction() { return nFunction; } + void SetUsedHierarchy(long nNew); + long GetUsedHierarchy() { return nUsedHierarchy; } + void SetLayoutName(const String* pName); + const String& GetLayoutName() const; + + USHORT GetOrientation() const { return nOrientation; } + + ScDPSaveMember* GetMemberByName(const String& rName); + + void WriteToSource( const com::sun::star::uno::Reference< + com::sun::star::uno::XInterface>& xDim ); + + void Store( SvStream& rStream ) const; +}; + + +class ScDPSaveData +{ +private: + List aDimList; + USHORT nColumnGrandMode; + USHORT nRowGrandMode; + USHORT nIgnoreEmptyMode; + USHORT nRepeatEmptyMode; + +public: + ScDPSaveData(); + ScDPSaveData(const ScDPSaveData& r); + ~ScDPSaveData(); + + ScDPSaveData& operator= ( const ScDPSaveData& r ); + + BOOL operator== ( const ScDPSaveData& r ) const; + + const List& GetDimensions() const { return aDimList; } + void AddDimension(ScDPSaveDimension* pDim) { aDimList.Insert(pDim, LIST_APPEND); } + + ScDPSaveDimension* GetDimensionByName(const String& rName); + ScDPSaveDimension* GetDataLayoutDimension(); + + ScDPSaveDimension* DuplicateDimension(const String& rName); + + ScDPSaveDimension* GetExistingDimensionByName(const String& rName); + ScDPSaveDimension* GetNewDimensionByName(const String& rName); + + void SetPosition( ScDPSaveDimension* pDim, long nNew ); + void SetColumnGrand( BOOL bSet ); + BOOL GetColumnGrand() const { return BOOL(nColumnGrandMode); } + void SetRowGrand( BOOL bSet ); + BOOL GetRowGrand() const { return BOOL(nRowGrandMode); } + void SetIgnoreEmptyRows( BOOL bSet ); + BOOL GetIgnoreEmptyRows() const { return BOOL(nIgnoreEmptyMode); } + void SetRepeatIfEmpty( BOOL bSet ); + BOOL GetRepeatIfEmpty() const { return BOOL(nRepeatEmptyMode); } + + void WriteToSource( const com::sun::star::uno::Reference< + com::sun::star::sheet::XDimensionsSupplier>& xSource ); + + void Store( SvStream& rStream ) const; + void Load( SvStream& rStream ); + + BOOL IsEmpty() const; +}; + + +#endif + diff --git a/sc/inc/dpsdbtab.hxx b/sc/inc/dpsdbtab.hxx new file mode 100644 index 000000000000..f45d2cc7547e --- /dev/null +++ b/sc/inc/dpsdbtab.hxx @@ -0,0 +1,117 @@ +/************************************************************************* + * + * $RCSfile: dpsdbtab.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_DPSDBTAB_HXX +#define SC_DPSDBTAB_HXX + +#ifndef SC_DPTABDAT_HXX +#include "dptabdat.hxx" +#endif + +// -------------------------------------------------------------------- +// +// implementation of ScDPTableData with database data +// + +struct ScImportSourceDesc +{ + String aDBName; + String aObject; + USHORT nType; // enum DataImportMode + BOOL bNative; + + BOOL operator== ( const ScImportSourceDesc& rOther ) const + { return aDBName == rOther.aDBName && + aObject == rOther.aObject && + nType == rOther.nType && + bNative == rOther.bNative; } +}; + +class ScDatabaseDPData_Impl; + +class ScDatabaseDPData : public ScDPTableData +{ +private: + ScDatabaseDPData_Impl* pImpl; + + BOOL OpenDatabase(); + void InitAllColumnEntries(); + +public: + ScDatabaseDPData( const ScImportSourceDesc& rImport ); + virtual ~ScDatabaseDPData(); + + virtual long GetColumnCount(); + virtual const TypedStrCollection& GetColumnEntries(long nColumn); + virtual String getDimensionName(long nColumn); + virtual BOOL getIsDataLayoutDimension(long nColumn); + virtual BOOL IsDateDimension(long nDim); + virtual void DisposeData(); + virtual void SetEmptyFlags( BOOL bIgnoreEmptyRows, BOOL bRepeatIfEmpty ); + + virtual void ResetIterator(); + virtual BOOL GetNextRow( const ScDPTableIteratorParam& rParam ); +}; + + + +#endif + diff --git a/sc/inc/dpshttab.hxx b/sc/inc/dpshttab.hxx new file mode 100644 index 000000000000..7387d3ec2e1e --- /dev/null +++ b/sc/inc/dpshttab.hxx @@ -0,0 +1,116 @@ +/************************************************************************* + * + * $RCSfile: dpshttab.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_DPSHTTAB_HXX +#define SC_DPSHTTAB_HXX + +#ifndef SC_DPTABDAT_HXX +#include "dptabdat.hxx" +#endif + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" +#endif + + +// -------------------------------------------------------------------- +// +// implementation of ScDPTableData with sheet data +// + +struct ScSheetSourceDesc +{ + ScRange aSourceRange; + ScQueryParam aQueryParam; + + BOOL operator== ( const ScSheetSourceDesc& rOther ) const + { return aSourceRange == rOther.aSourceRange && + aQueryParam == rOther.aQueryParam; } +}; + +class ScSheetDPData_Impl; + +class ScSheetDPData : public ScDPTableData +{ +private: + ScSheetDPData_Impl* pImpl; + +public: + ScSheetDPData( ScDocument* pD, const ScSheetSourceDesc& rDesc ); + virtual ~ScSheetDPData(); + + virtual long GetColumnCount(); + virtual const TypedStrCollection& GetColumnEntries(long nColumn); + virtual String getDimensionName(long nColumn); + virtual BOOL getIsDataLayoutDimension(long nColumn); + virtual BOOL IsDateDimension(long nDim); + virtual UINT32 GetNumberFormat(long nDim); + virtual void DisposeData(); + virtual void SetEmptyFlags( BOOL bIgnoreEmptyRows, BOOL bRepeatIfEmpty ); + + virtual void ResetIterator(); + virtual BOOL GetNextRow( const ScDPTableIteratorParam& rParam ); +}; + + + +#endif + diff --git a/sc/inc/dptabdat.hxx b/sc/inc/dptabdat.hxx new file mode 100644 index 000000000000..8d16c4627678 --- /dev/null +++ b/sc/inc/dptabdat.hxx @@ -0,0 +1,176 @@ +/************************************************************************* + * + * $RCSfile: dptabdat.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:48 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_DPTABDAT_HXX +#define SC_DPTABDAT_HXX + +#ifndef _STRING_HXX +#include <tools/string.hxx> +#endif + +class TypedStrCollection; + +// ----------------------------------------------------------------------- + +#define SC_DAPI_DATE_HIERARCHIES 3 + +#define SC_DAPI_HIERARCHY_FLAT 0 +#define SC_DAPI_HIERARCHY_QUARTER 1 +#define SC_DAPI_HIERARCHY_WEEK 2 + +#define SC_DAPI_FLAT_LEVELS 1 // single level for flat dates +#define SC_DAPI_QUARTER_LEVELS 4 // levels in year/quarter/month/day hierarchy +#define SC_DAPI_WEEK_LEVELS 3 // levels in year/week/day hierarchy + +#define SC_DAPI_LEVEL_YEAR 0 +#define SC_DAPI_LEVEL_QUARTER 1 +#define SC_DAPI_LEVEL_MONTH 2 +#define SC_DAPI_LEVEL_DAY 3 +#define SC_DAPI_LEVEL_WEEK 1 +#define SC_DAPI_LEVEL_WEEKDAY 2 + +// -------------------------------------------------------------------- +// +// base class ScDPTableData to allow implementation with tabular data +// by deriving only of this +// + +struct ScDPItemData +{ + String aString; + double fValue; + BOOL bHasValue; + + ScDPItemData() : fValue(0.0), bHasValue(FALSE) {} + ScDPItemData( const String& rS, double fV = 0.0, BOOL bHV = FALSE ) : + aString(rS), fValue(fV), bHasValue( bHV ) {} + + void SetString( const String& rS ) { aString = rS; bHasValue = FALSE; } + + BOOL IsCaseInsEqual( const ScDPItemData& r ) const; +}; + +#define SC_VALTYPE_EMPTY 0 +#define SC_VALTYPE_VALUE 1 +#define SC_VALTYPE_STRING 2 +#define SC_VALTYPE_ERROR 3 + +struct ScDPValueData +{ + double fValue; + BYTE nType; + + void Set( double fV, BYTE nT ) { fValue = fV; nType = nT; } +}; + + +struct ScDPTableIteratorParam +{ + // all pointers are just copied + + USHORT nColCount; + const long* pCols; + ScDPItemData* pColData; + USHORT nRowCount; + const long* pRows; + ScDPItemData* pRowData; + USHORT nDatCount; + const long* pDats; + ScDPValueData* pValues; + + ScDPTableIteratorParam( long nCCount, const long* pC, ScDPItemData* pCDat, + long nRCount, const long* pR, ScDPItemData* pRDat, + long nDCount, const long* pD, ScDPValueData* pV ); +}; + +class ScDPTableData +{ + // cached data for GetDatePart + long nLastDateVal; + long nLastHier; + long nLastLevel; + long nLastRet; + +public: + ScDPTableData(); + virtual ~ScDPTableData(); + + long GetDatePart( long nDateVal, long nHierarchy, long nLevel ); + + //! use (new) typed collection instead of StrCollection + //! or separate Str and ValueCollection + + virtual long GetColumnCount() = 0; + virtual const TypedStrCollection& GetColumnEntries(long nColumn) = 0; + virtual String getDimensionName(long nColumn) = 0; + virtual BOOL getIsDataLayoutDimension(long nColumn) = 0; + virtual BOOL IsDateDimension(long nDim) = 0; + virtual UINT32 GetNumberFormat(long nDim); + virtual void DisposeData() = 0; + virtual void SetEmptyFlags( BOOL bIgnoreEmptyRows, BOOL bRepeatIfEmpty ) = 0; + + virtual void ResetIterator() = 0; + virtual BOOL GetNextRow( const ScDPTableIteratorParam& rParam ) = 0; +}; + + +#endif + diff --git a/sc/inc/dptabres.hxx b/sc/inc/dptabres.hxx new file mode 100644 index 000000000000..a5caaea911ca --- /dev/null +++ b/sc/inc/dptabres.hxx @@ -0,0 +1,343 @@ +/************************************************************************* + * + * $RCSfile: dptabres.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_DPTABRES_HXX +#define SC_DPTABRES_HXX + +#ifndef _SVARRAY_HXX //autogen +#include <svtools/svarray.hxx> +#endif + +#ifndef _STRING_HXX //autogen +#include <tools/string.hxx> +#endif + +#ifndef _COM_SUN_STAR_SHEET_MEMBERRESULT_HPP_ +#include <com/sun/star/sheet/MemberResult.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_DATARESULT_HPP_ +#include <com/sun/star/sheet/DataResult.hpp> +#endif +#ifndef _COM_SUN_STAR_UNO_SEQUENCE_HXX_ +#include <com/sun/star/uno/Sequence.hxx> +#endif + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" // enum ScSubTotalFunc +#endif + + +class ScAddress; +class ScDocument; +class ScDPSource; +class ScDPDimension; +class ScDPLevel; +class ScDPMember; +class ScDPAggData; + +struct ScDPValueData; + +// +// aggregated data +//! separate header file? +// + +class ScDPAggData +{ +private: + double fVal; + double fSquare; + long nCount; + ScDPAggData* pChild; + +public: + ScDPAggData() : fVal(0.0), fSquare(0.0), nCount(0), pChild(NULL) {} + ~ScDPAggData() { delete pChild; } + + void Update( const ScDPValueData& rNext, ScSubTotalFunc eFunc ); + double GetResult( ScSubTotalFunc eFunc ) const; + BOOL HasError( ScSubTotalFunc eFunc ) const; + BOOL HasData() const { return ( nCount != 0 ); } + + const ScDPAggData* GetExistingChild() const { return pChild; } + ScDPAggData* GetChild(); +}; + + +// -------------------------------------------------------------------- +// +// results for a hierarchy dimension +// + +#define SC_DP_RES_GROW 16 + +class ScDPResultDimension; +class ScDPDataDimension; +class ScDPDataMember; +struct ScDPItemData; + + +#define SC_DPMEASURE_ALL -1 +#define SC_DPMEASURE_ANY -2 + +class ScDPResultData +{ +private: + ScDPSource* pSource; //! Ref + //! keep things like measure lists here + + long nMeasCount; + ScSubTotalFunc* pMeasFuncs; + String* pMeasNames; + BOOL bDataAtCol; + BOOL bDataAtRow; + +public: + ScDPResultData( ScDPSource* pSrc ); //! Ref + ~ScDPResultData(); + + void SetMeasureData( long nCount, const ScSubTotalFunc* pFunctions, + const String* pNames ); + void SetDataLayoutOrientation( USHORT nOrient ); + + long GetMeasureCount() const { return nMeasCount; } + ScSubTotalFunc GetMeasureFunction(long nMeasure) const; + String GetMeasureString(long nMeasure, BOOL bForce, ScSubTotalFunc eForceFunc) const; + String GetMeasureDimensionName(long nMeasure) const; + + BOOL IsDataAtCol() const { return bDataAtCol; } + BOOL IsDataAtRow() const { return bDataAtRow; } + + long GetColStartMeasure() const; + long GetRowStartMeasure() const; + + long GetCountForMeasure( long nMeas ) const + { return ( nMeas == SC_DPMEASURE_ALL ) ? nMeasCount : 1; } +}; + + +class ScDPResultMember +{ +private: + ScDPResultData* pResultData; + ScDPDimension* pParentDim; //! Ref + ScDPLevel* pParentLevel; //! Ref + ScDPMember* pMemberDesc; //! Ref + ScDPResultDimension* pChildDimension; + ScDPDataMember* pDataRoot; + BOOL bHasElements; + BOOL bForceSubTotal; + +public: + ScDPResultMember( ScDPResultData* pData, ScDPDimension* pDim, + ScDPLevel* pLev, ScDPMember* pDesc, + BOOL bForceSub ); //! Ref + ~ScDPResultMember(); + + void InitFrom( ScDPDimension** ppDim, ScDPLevel** ppLev ); + + String GetName() const; + BOOL IsValid() const; + BOOL IsVisible() const; + long GetSize(long nMeasure) const; + +// BOOL SubTotalEnabled() const; + long GetSubTotalCount() const; + + BOOL IsNamedItem( const ScDPItemData& r ) const; + + void SetHasElements() { bHasElements = TRUE; } + + void ProcessData( const ScDPItemData* pChildMembers, + ScDPResultDimension* pDataDim, + const ScDPItemData* pDataMembers, + const ScDPValueData* pValues ); + + void FillMemberResults( com::sun::star::uno::Sequence< + com::sun::star::sheet::MemberResult>* pSequences, + long& rPos, long nMeasure, BOOL bRoot, + const String* pMemberName, + const String* pMemberCaption ); + + void FillDataResults( const ScDPResultMember* pRefMember, + com::sun::star::uno::Sequence< + com::sun::star::uno::Sequence< + com::sun::star::sheet::DataResult> >& rSequence, + long& rRow, long nMeasure ) const; + + //! this will be removed! + const ScDPResultDimension* GetChildDimension() const { return pChildDimension; } + ScDPResultDimension* GetChildDimension() { return pChildDimension; } + + ScDPDimension* GetParentDim() { return pParentDim; } //! Ref + ScDPLevel* GetParentLevel() { return pParentLevel; } //! Ref +}; + +class ScDPDataMember +{ +private: + ScDPResultData* pResultData; + ScDPResultMember* pResultMember; //! Ref? + ScDPDataDimension* pChildDimension; + ScDPAggData aAggregate; + + void UpdateValues(const ScDPValueData* pValues); + +public: + ScDPDataMember( ScDPResultData* pData, ScDPResultMember* pRes ); + ~ScDPDataMember(); + + void InitFrom( ScDPResultDimension* pDim ); + + String GetName() const; + BOOL HasData(long nMeasure) const; + + BOOL IsNamedItem( const ScDPItemData& r ) const; + + void ProcessData( const ScDPItemData* pChildMembers, const ScDPValueData* pValues ); + + BOOL HasError(long nMeasure) const; + double GetAggregate(long nMeasure) const; + + void FillDataRow( const ScDPResultMember* pRefMember, + com::sun::star::uno::Sequence<com::sun::star::sheet::DataResult>& rSequence, + long& rCol, long nMeasure, BOOL bIsSubTotalRow ) const; + + //! this will be removed! + const ScDPDataDimension* GetChildDimension() const { return pChildDimension; } + ScDPDataDimension* GetChildDimension() { return pChildDimension; } +}; + +//! replace PtrArr with 32-bit array ???? + +typedef ScDPResultMember* ScDPResultMemberPtr; +SV_DECL_PTRARR_DEL(ScDPResultMembers, ScDPResultMemberPtr, SC_DP_RES_GROW, SC_DP_RES_GROW); + +typedef ScDPDataMember* ScDPDataMemberPtr; +SV_DECL_PTRARR_DEL(ScDPDataMembers, ScDPDataMemberPtr, SC_DP_RES_GROW, SC_DP_RES_GROW); + + +// result dimension contains only members + +class ScDPResultDimension +{ +private: + ScDPResultData* pResultData; + ScDPResultMembers aMembers; + BOOL bIsDataLayout; //! or ptr to IntDimension? + +public: + ScDPResultDimension( ScDPResultData* pData ); + ~ScDPResultDimension(); + + // allocates new members + void InitFrom( ScDPDimension** ppDim, ScDPLevel** ppLev ); + + long GetSize(long nMeasure) const; + + BOOL IsValidEntry( const ScDPItemData* pMembers ) const; + + // modifies existing members, allocates data dimensions + void ProcessData( const ScDPItemData* pMembers, + ScDPResultDimension* pDataDim, + const ScDPItemData* pDataMembers, + const ScDPValueData* pValues ); //! Test + + void FillMemberResults( com::sun::star::uno::Sequence< + com::sun::star::sheet::MemberResult>* pSequences, + long nStart, long nMeasure ); + + void FillDataResults( const ScDPResultMember* pRefMember, + com::sun::star::uno::Sequence< + com::sun::star::uno::Sequence< + com::sun::star::sheet::DataResult> >& rSequence, + long nRow, long nMeasure ) const; + + // for ScDPDataDimension::InitFrom + long GetMemberCount() const; + ScDPResultMember* GetMember(long n) const; + + BOOL IsDataLayout() const { return bIsDataLayout; } + + ScDPResultDimension* GetFirstChildDimension() const; +}; + +class ScDPDataDimension +{ +private: + ScDPResultData* pResultData; + ScDPDataMembers aMembers; + BOOL bIsDataLayout; //! or ptr to IntDimension? + +public: + ScDPDataDimension( ScDPResultData* pData ); + ~ScDPDataDimension(); + + void InitFrom( ScDPResultDimension* pDim ); // recursive + void ProcessData( const ScDPItemData* pDataMembers, const ScDPValueData* pValues ); + + void FillDataRow( const ScDPResultDimension* pRefDim, + com::sun::star::uno::Sequence<com::sun::star::sheet::DataResult>& rSequence, + long nCol, long nMeasure, BOOL bIsSubTotalRow ) const; +}; + +#endif + diff --git a/sc/inc/dptabsrc.hxx b/sc/inc/dptabsrc.hxx new file mode 100644 index 000000000000..1ee9c640cce9 --- /dev/null +++ b/sc/inc/dptabsrc.hxx @@ -0,0 +1,795 @@ +/************************************************************************* + * + * $RCSfile: dptabsrc.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_DPTABSRC_HXX +#define SC_DPTABSRC_HXX + +#ifndef _STRING_HXX //autogen +#include <tools/string.hxx> +#endif + +#ifndef _LIST_HXX //autogen wg. List +#include <tools/list.hxx> +#endif + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" // enum ScSubTotalFunc +#endif + +#ifndef _COM_SUN_STAR_SHEET_XDIMENSIONSSUPPLIER_HPP_ +#include <com/sun/star/sheet/XDimensionsSupplier.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XHIERARCHIESSUPPLIER_HPP_ +#include <com/sun/star/sheet/XHierarchiesSupplier.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XLEVELSSUPPLIER_HPP_ +#include <com/sun/star/sheet/XLevelsSupplier.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XMEMBERSSUPPLIER_HPP_ +#include <com/sun/star/sheet/XMembersSupplier.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XDATAPILOTRESULTS_HPP_ +#include <com/sun/star/sheet/XDataPilotResults.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XDATAPILOTMEMBERRESULTS_HPP_ +#include <com/sun/star/sheet/XDataPilotMemberResults.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_MEMBERRESULT_HPP_ +#include <com/sun/star/sheet/MemberResult.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_GENERALFUNCTION_HPP_ +#include <com/sun/star/sheet/GeneralFunction.hpp> +#endif +#ifndef _COM_SUN_STAR_UTIL_XREFRESHABLE_HPP_ +#include <com/sun/star/util/XRefreshable.hpp> +#endif +#ifndef _COM_SUN_STAR_UTIL_XCLONEABLE_HPP_ +#include <com/sun/star/util/XCloneable.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_ +#include <com/sun/star/beans/XPropertySet.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_ +#include <com/sun/star/lang/XServiceInfo.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XNAMED_HPP_ +#include <com/sun/star/container/XNamed.hpp> +#endif + +#ifndef _CPPUHELPER_IMPLBASE2_HXX_ +#include <cppuhelper/implbase2.hxx> +#endif +#ifndef _CPPUHELPER_IMPLBASE3_HXX_ +#include <cppuhelper/implbase3.hxx> +#endif +#ifndef _CPPUHELPER_IMPLBASE5_HXX_ +#include <cppuhelper/implbase5.hxx> +#endif + + +class ScDPResultMember; +class ScDPResultData; +struct ScDPItemData; +class ScDPTableData; + +// -------------------------------------------------------------------- + +// should be dynamic! +#define SC_DAPI_MAXFIELDS 256 + + +// -------------------------------------------------------------------- +// +// implementation of DataPilotSource using ScDPTableData +// + + +class ScDPDimensions; +class ScDPDimension; +class ScDPHierarchies; +class ScDPHierarchy; +class ScDPLevels; +class ScDPLevel; +class ScDPMembers; +class ScDPMember; + + +class ScDPSource : public cppu::WeakImplHelper5< + com::sun::star::sheet::XDimensionsSupplier, + com::sun::star::sheet::XDataPilotResults, + com::sun::star::util::XRefreshable, + com::sun::star::beans::XPropertySet, + com::sun::star::lang::XServiceInfo > +{ +private: + ScDPTableData* pData; // data source + ScDPDimensions* pDimensions; // api objects + // settings: + long nColDims[SC_DAPI_MAXFIELDS]; + long nRowDims[SC_DAPI_MAXFIELDS]; + long nDataDims[SC_DAPI_MAXFIELDS]; + long nPageDims[SC_DAPI_MAXFIELDS]; + long nColDimCount; + long nRowDimCount; + long nDataDimCount; + long nPageDimCount; + BOOL bColumnGrand; + BOOL bRowGrand; + BOOL bIgnoreEmptyRows; + BOOL bRepeatIfEmpty; + + long nDupCount; + + // results: + ScDPResultData* pResData; // keep the rest in this! + ScDPResultMember* pColResRoot; + ScDPResultMember* pRowResRoot; + com::sun::star::uno::Sequence<com::sun::star::sheet::MemberResult>* pColResults; + com::sun::star::uno::Sequence<com::sun::star::sheet::MemberResult>* pRowResults; + List aColLevelList; + List aRowLevelList; + ScSubTotalFunc eDataFunctions[SC_DAPI_MAXFIELDS]; + + void CreateRes_Impl(); + void FillMemberResults(); + void FillLevelList( USHORT nOrientation, List& rList ); + + void SetDupCount( long nNew ); + +public: + ScDPSource( ScDPTableData* pD ); // TableData is deleted by Source + virtual ~ScDPSource(); + + ScDPTableData* GetData() { return pData; } + const ScDPTableData* GetData() const { return pData; } + + USHORT GetOrientation(long nColumn); + void SetOrientation(long nColumn, USHORT nNew); + long GetPosition(long nColumn); + + long GetDataDimensionCount(); + String GetDataDimName(long nIndex); + BOOL IsDataLayoutDimension(long nDim); + USHORT GetDataLayoutOrientation(); + + BOOL IsDateDimension(long nDim); + + BOOL SubTotalAllowed(long nColumn); //! move to ScDPResultData + + ScDPDimension* AddDuplicated(long nSource, const String& rNewName); + long GetDupCount() const { return nDupCount; } + + long GetSourceDim(long nDim); + + const com::sun::star::uno::Sequence<com::sun::star::sheet::MemberResult>* + GetMemberResults( ScDPLevel* pLevel ); + + ScDPDimensions* GetDimensionsObject(); + + // XDimensionsSupplier + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > + SAL_CALL getDimensions( ) + throw(::com::sun::star::uno::RuntimeException); + + // XDataPilotResults + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< + ::com::sun::star::sheet::DataResult > > SAL_CALL getResults( ) + throw(::com::sun::star::uno::RuntimeException); + + // XRefreshable + virtual void SAL_CALL refresh() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addRefreshListener( const ::com::sun::star::uno::Reference< + ::com::sun::star::util::XRefreshListener >& l ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeRefreshListener( const ::com::sun::star::uno::Reference< + ::com::sun::star::util::XRefreshListener >& l ) + throw(::com::sun::star::uno::RuntimeException); + + // XPropertySet + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > + SAL_CALL getPropertySetInfo( ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Any& aValue ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::beans::PropertyVetoException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( + const ::rtl::OUString& PropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& xListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName( ) + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); + + virtual String getDataDescription(); //! ??? + + virtual BOOL getColumnGrand() const; + virtual void setColumnGrand(BOOL bSet); + virtual BOOL getRowGrand() const; + virtual void setRowGrand(BOOL bSet); + + virtual BOOL getIgnoreEmptyRows() const; + virtual void setIgnoreEmptyRows(BOOL bSet); + virtual BOOL getRepeatIfEmpty() const; + virtual void setRepeatIfEmpty(BOOL bSet); + + virtual void validate(); //! ??? + virtual void disposeData(); +}; + +class ScDPDimensions : public cppu::WeakImplHelper2< + com::sun::star::container::XNameAccess, + com::sun::star::lang::XServiceInfo > +{ +private: + ScDPSource* pSource; + long nDimCount; + ScDPDimension** ppDims; + +public: + ScDPDimensions( ScDPSource* pSrc ); + virtual ~ScDPDimensions(); + + void CountChanged(); + + // XNameAccess + virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName( ) + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); + + virtual long getCount() const; + virtual ScDPDimension* getByIndex(long nIndex) const; +}; + +class ScDPDimension : public cppu::WeakImplHelper5< + com::sun::star::sheet::XHierarchiesSupplier, + com::sun::star::container::XNamed, + com::sun::star::util::XCloneable, + com::sun::star::beans::XPropertySet, + com::sun::star::lang::XServiceInfo > +{ +private: + ScDPSource* pSource; + long nDim; + ScDPHierarchies* pHierarchies; + long nUsedHier; + USHORT nFunction; // enum GeneralFunction + String aName; // if empty, take from source + long nSourceDim; // >=0 if dup'ed + +public: + ScDPDimension( ScDPSource* pSrc, long nD ); + virtual ~ScDPDimension(); + + long GetSourceDim() const { return nSourceDim; } + + ScDPDimension* CreateCloneObject(); + ScDPHierarchies* GetHierarchiesObject(); + + // XNamed + virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XHierarchiesSupplier + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > SAL_CALL + getHierarchies() throw(::com::sun::star::uno::RuntimeException); + + // XCloneable + virtual ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloneable > SAL_CALL + createClone() throw(::com::sun::star::uno::RuntimeException); + + // XPropertySet + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > + SAL_CALL getPropertySetInfo( ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Any& aValue ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::beans::PropertyVetoException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( + const ::rtl::OUString& PropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& xListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName( ) + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); + + virtual USHORT getOrientation() const; + virtual void setOrientation(USHORT nNew); + virtual long getPosition() const; + virtual void setPosition(long nNew); + virtual BOOL getIsDataLayoutDimension() const; + virtual USHORT getFunction() const; + virtual void setFunction(USHORT nNew); // for data dimension + virtual long getUsedHierarchy() const; + virtual void setUsedHierarchy(long nNew); + virtual BOOL isDuplicated() const; +}; + +class ScDPHierarchies : public cppu::WeakImplHelper2< + com::sun::star::container::XNameAccess, + com::sun::star::lang::XServiceInfo > +{ +private: + ScDPSource* pSource; + long nDim; + long nHierCount; + ScDPHierarchy** ppHiers; + +public: + ScDPHierarchies( ScDPSource* pSrc, long nD ); + virtual ~ScDPHierarchies(); + + // XNameAccess + virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName( ) + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); + + virtual long getCount() const; + virtual ScDPHierarchy* getByIndex(long nIndex) const; +}; + +class ScDPHierarchy : public cppu::WeakImplHelper3< + com::sun::star::sheet::XLevelsSupplier, + com::sun::star::container::XNamed, + com::sun::star::lang::XServiceInfo > +{ +private: + ScDPSource* pSource; + long nDim; + long nHier; + ScDPLevels* pLevels; + +public: + ScDPHierarchy( ScDPSource* pSrc, long nD, long nH ); + virtual ~ScDPHierarchy(); + + ScDPLevels* GetLevelsObject(); + + // XNamed + virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XLevelsSupplier + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > SAL_CALL + getLevels() throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName( ) + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + +class ScDPLevels : public cppu::WeakImplHelper2< + com::sun::star::container::XNameAccess, + com::sun::star::lang::XServiceInfo > +{ +private: + ScDPSource* pSource; + long nDim; + long nHier; + long nLevCount; + ScDPLevel** ppLevs; + +public: + ScDPLevels( ScDPSource* pSrc, long nD, long nH ); + virtual ~ScDPLevels(); + + // XNameAccess + virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName( ) + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); + + virtual long getCount() const; + virtual ScDPLevel* getByIndex(long nIndex) const; +}; + +class ScDPLevel : public cppu::WeakImplHelper5< + com::sun::star::sheet::XMembersSupplier, + com::sun::star::container::XNamed, + com::sun::star::sheet::XDataPilotMemberResults, + com::sun::star::beans::XPropertySet, + com::sun::star::lang::XServiceInfo > +{ +private: + ScDPSource* pSource; + long nDim; + long nHier; + long nLev; + ScDPMembers* pMembers; + com::sun::star::uno::Sequence<com::sun::star::sheet::GeneralFunction> aSubTotals; + BOOL bShowEmpty; + +public: + ScDPLevel( ScDPSource* pSrc, long nD, long nH, long nL ); + virtual ~ScDPLevel(); + + ScDPMembers* GetMembersObject(); + + // XNamed + virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XMembersSupplier + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > SAL_CALL + getMembers() throw(::com::sun::star::uno::RuntimeException); + + // XDataPilotMemberResults + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::sheet::MemberResult > SAL_CALL + getResults() throw(::com::sun::star::uno::RuntimeException); + + // XPropertySet + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > + SAL_CALL getPropertySetInfo( ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Any& aValue ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::beans::PropertyVetoException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( + const ::rtl::OUString& PropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& xListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName( ) + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); + + virtual com::sun::star::uno::Sequence<com::sun::star::sheet::GeneralFunction> getSubTotals() const; + virtual void setSubTotals(const com::sun::star::uno::Sequence< + com::sun::star::sheet::GeneralFunction>& rNew); + virtual BOOL getShowEmpty() const; + virtual void setShowEmpty(BOOL bSet); + + //! number format (for data fields and date fields) +}; + +class ScDPMembers : public cppu::WeakImplHelper2< + com::sun::star::container::XNameAccess, + com::sun::star::lang::XServiceInfo > +{ +private: + ScDPSource* pSource; + long nDim; + long nHier; + long nLev; + long nMbrCount; + ScDPMember** ppMbrs; + +public: + ScDPMembers( ScDPSource* pSrc, long nD, long nH, long nL ); + virtual ~ScDPMembers(); + + // XNameAccess + virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName( ) + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); + + virtual long getCount() const; + virtual ScDPMember* getByIndex(long nIndex) const; +}; + +class ScDPMember : public cppu::WeakImplHelper3< + com::sun::star::container::XNamed, + com::sun::star::beans::XPropertySet, + com::sun::star::lang::XServiceInfo > +{ +private: + ScDPSource* pSource; + long nDim; + long nHier; + long nLev; + + String aName; // name for api etc. +// String aCaption; // visible name (changeable by user) + double fValue; // used internally for matching + BOOL bHasValue; // TRUE if this is a value + + BOOL bVisible; + BOOL bShowDet; + +public: + ScDPMember( ScDPSource* pSrc, long nD, long nH, long nL, + const String& rN, double fV, BOOL bHV ); + virtual ~ScDPMember(); + + BOOL IsNamedItem( const ScDPItemData& r ) const; + String GetNameStr() const; + + // XNamed + virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XPropertySet + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > + SAL_CALL getPropertySetInfo( ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Any& aValue ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::beans::PropertyVetoException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( + const ::rtl::OUString& PropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& xListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName( ) + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); + + virtual BOOL getIsVisible() const; + virtual void setIsVisible(BOOL bSet); + virtual BOOL getShowDetails() const; + virtual void setShowDetails(BOOL bSet); +}; + + +#endif + diff --git a/sc/inc/drawattr.hxx b/sc/inc/drawattr.hxx new file mode 100644 index 000000000000..e0ec15dc5315 --- /dev/null +++ b/sc/inc/drawattr.hxx @@ -0,0 +1,104 @@ +/************************************************************************* + * + * $RCSfile: drawattr.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#ifndef _IDLITEMS_HXX +#define _IDLITEMS_HXX + +#ifndef _SFXENUMITEM_HXX //autogen +#include <svtools/eitem.hxx> +#endif + +#ifndef _SVX_SVXENUM_HXX +#include <svx/svxenum.hxx> +#endif + + +class SvxDrawToolItem : public SfxEnumItem +{ +public: + + SvxDrawToolItem( const SvxDrawToolItem& rDrawToolItem ) : + SfxEnumItem( rDrawToolItem ){} + + SvxDrawToolItem(USHORT nWhich ) : SfxEnumItem(nWhich){} + + + virtual String GetValueText() const; + + + virtual String GetValueText(USHORT nVal) const; + virtual USHORT GetValueCount() const + {return((USHORT)SVX_SNAP_DRAW_TEXT);} + + virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; + + virtual SfxPoolItem* Create( SvStream& rStream, USHORT nVer ) const; + + inline SvxDrawToolItem& operator=(const SvxDrawToolItem& + rDrawTool) + { + SetValue( rDrawTool.GetValue() ); + return *this; + + } +}; +#endif + + diff --git a/sc/inc/drawpage.hxx b/sc/inc/drawpage.hxx new file mode 100644 index 000000000000..e75d2739f5e5 --- /dev/null +++ b/sc/inc/drawpage.hxx @@ -0,0 +1,86 @@ +/************************************************************************* + * + * $RCSfile: drawpage.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_DRAWPAGE_HXX +#define SC_DRAWPAGE_HXX + +#ifndef _FM_FMPAGE_HXX +#include <svx/fmpage.hxx> +#endif + + +class ScDrawLayer; + +// ----------------------------------------------------------------------- + +class ScDrawPage: public FmFormPage +{ +public: + ScDrawPage(ScDrawLayer& rNewModel, StarBASIC* pBasic, BOOL bMasterPage=FALSE); + ~ScDrawPage(); + + virtual void RequestBasic(); +}; + + +#endif + + diff --git a/sc/inc/drwlayer.hxx b/sc/inc/drwlayer.hxx new file mode 100644 index 000000000000..c5b477796133 --- /dev/null +++ b/sc/inc/drwlayer.hxx @@ -0,0 +1,212 @@ +/************************************************************************* + * + * $RCSfile: drwlayer.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_DRWLAYER_HXX +#define SC_DRWLAYER_HXX + +#ifndef _SV_GRAPH_HXX //autogen +#include <vcl/graph.hxx> +#endif + +#ifndef _FM_FMMODEL_HXX +#include <svx/fmmodel.hxx> +#endif + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" +#endif + +class ScDocument; +class SfxViewShell; +class ScDrawObjData; +class ScIMapInfo; +class IMapObject; +class ScMarkData; +class SdrOle2Obj; + +// ----------------------------------------------------------------------- + +class ScTabDeletedHint : public SfxHint +{ +private: + USHORT nTab; +public: + TYPEINFO(); + ScTabDeletedHint( USHORT nTabNo = USHRT_MAX ); + virtual ~ScTabDeletedHint(); + + USHORT GetTab() { return nTab; } +}; + +class ScTabSizeChangedHint : public SfxHint +{ +private: + USHORT nTab; +public: + TYPEINFO(); + ScTabSizeChangedHint( USHORT nTabNo = USHRT_MAX ); + virtual ~ScTabSizeChangedHint(); + + USHORT GetTab() { return nTab; } +}; + +// ----------------------------------------------------------------------- + + +class ScDrawLayer: public FmFormModel +{ +private: + String aName; + ScDocument* pDoc; + SdrUndoGroup* pUndoGroup; + BOOL bRecording; + BOOL bAdjustEnabled; + +private: + void MoveAreaMM( USHORT nTab, const Rectangle& rArea, const Point& rMove, + const Point& rTopLeft ); + void MoveCells( USHORT nTab, USHORT nCol1,USHORT nRow1, USHORT nCol2,USHORT nRow2, + short nDx,short nDy ); + void RecalcPos( SdrObject* pObj, ScDrawObjData* pData ); + +public: + ScDrawLayer( ScDocument* pDocument, const String& rName ); + virtual ~ScDrawLayer(); + + virtual SdrPage* AllocPage(FASTBOOL bMasterPage); + virtual SdrModel* AllocModel() const; + virtual void SetChanged( FASTBOOL bFlg = TRUE ); + + virtual Window* GetCurDocViewWin(); + virtual SvStream* GetDocumentStream(FASTBOOL& rbDeleteAfterUse) const; + + virtual SdrLayerID GetControlExportLayerId( const SdrObject & ) const; + + BOOL HasObjects() const; + + void ScAddPage( USHORT nTab ); + void ScRemovePage( USHORT nTab ); + void ScRenamePage( USHORT nTab, const String& rNewName ); + void ScMovePage( USHORT nOldPos, USHORT nNewPos ); + // inkl. Inhalt, bAlloc=FALSE -> nur Inhalt + void ScCopyPage( USHORT nOldPos, USHORT nNewPos, BOOL bAlloc ); + + ScDocument* GetDocument() const { return pDoc; } + + void UpdateBasic(); // DocShell-Basic in DrawPages setzen + + void Load( SvStream& rStream ); + void Store( SvStream& rStream ) const; + + BOOL GetPrintArea( ScRange& rRange, BOOL bSetHor, BOOL bSetVer ) const; + + // automatische Anpassungen + + void EnableAdjust( BOOL bSet = TRUE ) { bAdjustEnabled = bSet; } + + void BeginCalcUndo(); + SdrUndoGroup* GetCalcUndo(); + BOOL IsRecording() { return bRecording; } + void AddCalcUndo( SdrUndoAction* pUndo ); + + void MoveArea( USHORT nTab, USHORT nCol1,USHORT nRow1, USHORT nCol2,USHORT nRow2, + short nDx,short nDy, BOOL bInsDel ); + void WidthChanged( USHORT nTab, USHORT nCol, long nDifTwips ); + void HeightChanged( USHORT nTab, USHORT nRow, long nDifTwips ); + + BOOL HasObjectsInRows( USHORT nTab, USHORT nStartRow, USHORT nEndRow ); + + void DeleteObjectsInArea( USHORT nTab, USHORT nCol1,USHORT nRow1, + USHORT nCol2,USHORT nRow2 ); + void DeleteObjectsInSelection( const ScMarkData& rMark ); + void DeleteObjects( USHORT nTab ); + + void SetPageSize( USHORT nPageNo, const Size& rSize ); + ULONG GetDefTextHeight() const; + + SdrObject* GetNamedObject( const String& rName, USHORT nId, USHORT& rFoundTab ) const; + String GetNewGraphicName() const; + void EnsureGraphicNames(); + + // Verankerung setzen und ermitteln + static void SetAnchor( SdrObject*, ScAnchorType ); + static ScAnchorType GetAnchor( const SdrObject* ); + + // Positionen fuer Detektivlinien + static ScDrawObjData* GetObjData( SdrObject* pObj, BOOL bCreate=FALSE ); + + // Image-Map + static ScIMapInfo* GetIMapInfo( SdrObject* pObj ); + + static Graphic GetGraphicFromOle2Obj( const SdrOle2Obj* pOle2Obj ); + static IMapObject* GetHitIMapObject( SdrObject* pObject, + const Point& rWinPoint, const Window& rCmpWnd ); + +private: + static SvPersist* pGlobalDrawPersist; // fuer AllocModel +public: + static void SetGlobalDrawPersist(SvPersist* pPersist); +}; + + +#endif + + diff --git a/sc/inc/editsrc.hxx b/sc/inc/editsrc.hxx new file mode 100644 index 000000000000..18a95d56e586 --- /dev/null +++ b/sc/inc/editsrc.hxx @@ -0,0 +1,157 @@ +/************************************************************************* + * + * $RCSfile: editsrc.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_EDITSRC_HXX +#define SC_EDITSRC_HXX + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" // ScRange, ScAddress +#endif + +#ifndef _SVX_UNOEDSRC_HXX +#include <svx/unoedsrc.hxx> +#endif + +#ifndef _SFXLSTNER_HXX //autogen +#include <svtools/lstner.hxx> +#endif + +class ScEditEngineDefaulter; +class SfxBroadcaster; +class SfxHint; +class SvxEditEngineForwarder; + +class ScDocShell; +class ScHeaderFooterContentObj; + + +class ScHeaderFooterEditSource : public SvxEditSource, public SfxListener +{ +private: + ScHeaderFooterContentObj* pContentObj; + USHORT nPart; + ScEditEngineDefaulter* pEditEngine; + SvxEditEngineForwarder* pForwarder; + +public: + ScHeaderFooterEditSource( ScHeaderFooterContentObj* pContent, + USHORT nP ); + virtual ~ScHeaderFooterEditSource(); + + //! GetEditEngine nur als Uebergang, bis die Feld-Funktionen am Forwarder sind !!! + ScEditEngineDefaulter* GetEditEngine() { GetTextForwarder(); return pEditEngine; } + + virtual SvxEditSource* Clone() const ; + virtual SvxTextForwarder* GetTextForwarder(); + virtual void UpdateData(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); +}; + + +class ScCellEditSource : public SvxEditSource, public SfxListener +{ +private: + ScDocShell* pDocShell; + ScAddress aCellPos; + ScEditEngineDefaulter* pEditEngine; + SvxEditEngineForwarder* pForwarder; + BOOL bDataValid; + BOOL bInUpdate; + +public: + ScCellEditSource(ScDocShell* pDocSh, const ScAddress& rP); + virtual ~ScCellEditSource(); + + //! GetEditEngine nur als Uebergang, bis die Feld-Funktionen am Forwarder sind !!! + ScEditEngineDefaulter* GetEditEngine() { GetTextForwarder(); return pEditEngine; } + + virtual SvxEditSource* Clone() const ; + virtual SvxTextForwarder* GetTextForwarder(); + virtual void UpdateData(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); +}; + + +class ScAnnotationEditSource : public SvxEditSource, public SfxListener +{ +private: + ScDocShell* pDocShell; + ScAddress aCellPos; + ScEditEngineDefaulter* pEditEngine; + SvxEditEngineForwarder* pForwarder; + BOOL bDataValid; + +public: + ScAnnotationEditSource(ScDocShell* pDocSh, const ScAddress& rP); + virtual ~ScAnnotationEditSource(); + + virtual SvxEditSource* Clone() const ; + virtual SvxTextForwarder* GetTextForwarder(); + virtual void UpdateData(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); +}; + + +#endif + diff --git a/sc/inc/editutil.hxx b/sc/inc/editutil.hxx new file mode 100644 index 000000000000..8436e4c088cd --- /dev/null +++ b/sc/inc/editutil.hxx @@ -0,0 +1,275 @@ +/************************************************************************* + * + * $RCSfile: editutil.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_EDITUTIL_HXX +#define SC_EDITUTIL_HXX + + +#ifndef _MyEDITENG_HXX //autogen +#include <svx/editeng.hxx> +#endif + +#ifndef _SVX_PAGEITEM_HXX //autogen +#include <svx/pageitem.hxx> +#endif + +#ifndef _DATE_HXX //autogen +#include <tools/date.hxx> +#endif + +#ifndef _TIME_HXX //autogen +#include <tools/time.hxx> +#endif + +#ifndef _GEN_HXX //autogen +#include <tools/gen.hxx> +#endif + +#ifndef _FRACT_HXX //autogen +#include <tools/fract.hxx> +#endif + + +class OutputDevice; +class ScDocument; +class ScPatternAttr; + +class ScEditUtil +{ + ScDocument* pDoc; + USHORT nCol; + USHORT nRow; + USHORT nTab; + Point aScrPos; + OutputDevice* pDev; // MapMode muss eingestellt sein + double nPPTX; + double nPPTY; + Fraction aZoomX; + Fraction aZoomY; + + static const char __FAR_DATA pCalcDelimiters[]; + +public: + static String ModifyDelimiters( const String& rOld ); + static String GetSpaceDelimitedString( const EditEngine& rEngine ); + +public: + ScEditUtil( ScDocument* pDocument, USHORT nX, USHORT nY, USHORT nZ, + const Point& rScrPosPixel, + OutputDevice* pDevice, double nScaleX, double nScaleY, + const Fraction& rX, const Fraction& rY ) : + pDoc(pDocument),nCol(nX),nRow(nY),nTab(nZ), + aScrPos(rScrPosPixel),pDev(pDevice), + nPPTX(nScaleX),nPPTY(nScaleY),aZoomX(rX),aZoomY(rY) {} + + Rectangle GetEditArea( const ScPatternAttr* pPattern = NULL ); +}; + + +class ScEditAttrTester +{ + EditEngine* pEngine; + SfxItemSet* pEditAttrs; + BOOL bNeedsObject; + BOOL bNeedsCellAttr; + +public: + ScEditAttrTester( EditEngine* pEng ); + ~ScEditAttrTester(); + + BOOL NeedsObject() const { return bNeedsObject; } + BOOL NeedsCellAttr() const { return bNeedsCellAttr; } + const SfxItemSet& GetAttribs() const { return *pEditAttrs; } +}; + + +// construct pool before constructing EditEngine, destroy pool after EditEngine +class ScEnginePoolHelper +{ +protected: + SfxItemPool* pEnginePool; + SfxItemSet* pDefaults; + BOOL bDeleteEnginePool; + BOOL bDeleteDefaults; + + ScEnginePoolHelper( SfxItemPool* pEnginePool, + BOOL bDeleteEnginePool = FALSE ); + ScEnginePoolHelper( const ScEnginePoolHelper& rOrg ); + virtual ~ScEnginePoolHelper(); +}; + + +class ScEditEngineDefaulter : public ScEnginePoolHelper, public EditEngine +{ +public: + /// bDeleteEnginePool: Engine becomes the owner of the pool + /// and deletes it on destruction + ScEditEngineDefaulter( SfxItemPool* pEnginePool, + BOOL bDeleteEnginePool = FALSE ); + /// If rOrg.bDeleteEnginePool: pool gets cloned and will be + /// deleted on destruction. Defaults are not set. + ScEditEngineDefaulter( const ScEditEngineDefaulter& rOrg ); + virtual ~ScEditEngineDefaulter(); + + /// Creates a copy of SfxItemSet if bRememberCopy set + void SetDefaults( const SfxItemSet& rDefaults, BOOL bRememberCopy = TRUE ); + + /// Becomes the owner of the SfxItemSet if bTakeOwnership set + void SetDefaults( SfxItemSet* pDefaults, BOOL bTakeOwnership = TRUE ); + + /// Set the item in the default ItemSet which is created + /// if it doesn't exist yet. + /// The default ItemSet is then applied to each paragraph. + void SetDefaultItem( const SfxPoolItem& rItem ); + + /// Overwritten method to be able to apply defaults already set + void SetText( const EditTextObject& rTextObject ); + /// Current defaults are not applied, new defaults are applied + void SetTextNewDefaults( const EditTextObject& rTextObject, + const SfxItemSet& rDefaults, BOOL bRememberCopy = TRUE ); + + /// Overwritten method to be able to apply defaults already set + void SetText( const String& rText ); + /// Current defaults are not applied, new defaults are applied + void SetTextNewDefaults( const String& rText, + const SfxItemSet& rDefaults, BOOL bRememberCopy = TRUE ); +}; + + +// 1/100 mm +class ScTabEditEngine : public ScEditEngineDefaulter +{ +private: + void Init(const ScPatternAttr& rPattern); +public: + ScTabEditEngine( ScDocument* pDoc ); // Default + // pEnginePool = ScDocument.GetEnginePool() + // pTextObjectPool = ScDocument.GetEditPool() + ScTabEditEngine( const ScPatternAttr& rPattern, + SfxItemPool* pEnginePool, + SfxItemPool* pTextObjectPool = NULL ); +}; + + +struct ScHeaderFieldData +{ + String aTitle; // Titel oder Dateiname wenn kein Titel + String aLongDocName; // Pfad und Dateiname + String aShortDocName; // nur Dateiname + String aTabName; + Date aDate; + Time aTime; + long nPageNo; + long nTotalPages; + SvxNumType eNumType; + + ScHeaderFieldData(); +}; + + +// fuer Feldbefehle in der Tabelle +class ScFieldEditEngine : public ScEditEngineDefaulter +{ +private: + BOOL bExecuteURL; + +public: + // pEnginePool = ScDocument.GetEnginePool() + // pTextObjectPool = ScDocument.GetEditPool() + ScFieldEditEngine( SfxItemPool* pEnginePool, + SfxItemPool* pTextObjectPool = NULL, + BOOL bDeleteEnginePool = FALSE ); + + void SetExecuteURL(BOOL bSet) { bExecuteURL = bSet; } + + virtual void FieldClicked( const SvxFieldItem& rField, USHORT, USHORT ); + virtual String CalcFieldValue( const SvxFieldItem& rField, USHORT nPara, USHORT nPos, Color*& rTxtColor, Color*& rFldColor ); +}; + + +// for headers/footers with fields +class ScHeaderEditEngine : public ScEditEngineDefaulter +{ +private: + ScHeaderFieldData aData; + +public: + ScHeaderEditEngine( SfxItemPool* pEnginePool, BOOL bDeleteEnginePool = FALSE ); + virtual String CalcFieldValue( const SvxFieldItem& rField, USHORT nPara, USHORT nPos, Color*& rTxtColor, Color*& rFldColor ); + + void SetTitle(const String& rNew) { aData.aTitle = rNew; } + void SetLongDocName(const String& rNew) { aData.aLongDocName = rNew; } + void SetShortDocName(const String& rNew) { aData.aShortDocName = rNew; } + void SetTabName(const String& rNew) { aData.aTabName = rNew; } + void SetDate(const Date& rNew) { aData.aDate = rNew; } + void SetTime(const Time& rNew) { aData.aTime = rNew; } + void SetPageNo(long nNew) { aData.nPageNo = nNew; } + void SetTotalPages(long nNew) { aData.nTotalPages = nNew; } + void SetNumType(SvxNumType eNew) { aData.eNumType = eNew; } + void SetData(const ScHeaderFieldData& rNew) { aData = rNew; } +}; + +// SvxFieldData-Ableitungen sind nach Svx verschoben + + +#endif + + diff --git a/sc/inc/eeimport.hxx b/sc/inc/eeimport.hxx new file mode 100644 index 000000000000..e41c9c02de8b --- /dev/null +++ b/sc/inc/eeimport.hxx @@ -0,0 +1,100 @@ +/************************************************************************* + * + * $RCSfile: eeimport.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#ifndef SC_EEIMPORT_HXX +#define SC_EEIMPORT_HXX + +#include "global.hxx" + +class ScDocument; +class ScEEParser; +class ScTabEditEngine; +class SvStream; +class Table; + +struct ScEEParseEntry; + +class ScEEImport +{ +protected: + ScRange aRange; + ScDocument* pDoc; + ScEEParser* pParser; + ScTabEditEngine* pEngine; + Table* pRowHeights; + + BOOL GraphicSize( USHORT nCol, USHORT nRow, USHORT nTab, + ScEEParseEntry* ); + void InsertGraphic( USHORT nCol, USHORT nRow, USHORT nTab, + ScEEParseEntry* ); + +public: + ScEEImport( ScDocument* pDoc, const ScRange& rRange ); + virtual ~ScEEImport(); + + ULONG Read( SvStream& rStream ); + ScRange GetRange() { return aRange; } + void WriteToDocument( BOOL bSizeColsRows = FALSE, + double nOutputFactor = 1.0 ); +}; + + + +#endif diff --git a/sc/inc/eetext.hxx b/sc/inc/eetext.hxx new file mode 100644 index 000000000000..f801ba7cd9d1 --- /dev/null +++ b/sc/inc/eetext.hxx @@ -0,0 +1,77 @@ +/************************************************************************* + * + * $RCSfile: eetext.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_EETEXT_HXX +#define SC_EETEXT_HXX + +// hier nur Items, die nicht in scitems.hxx sind! + +#define ITEMID_HYPHENZONE SID_ATTR_PARA_HYPHENZONE +#define ITEMID_FMTBREAK SID_ATTR_PARA_PAGEBREAK +#define ITEMID_FMTSPLIT SID_ATTR_PARA_SPLIT +#define ITEMID_WIDOWS SID_ATTR_PARA_WIDOWS +#define ITEMID_ORPHANS SID_ATTR_PARA_ORPHANS + +#define ITEMID_LINESPACING SID_ATTR_CHAR_FONTLIST + +#endif + + diff --git a/sc/inc/fielduno.hxx b/sc/inc/fielduno.hxx new file mode 100644 index 000000000000..fcc32fd8c2f7 --- /dev/null +++ b/sc/inc/fielduno.hxx @@ -0,0 +1,446 @@ +/************************************************************************* + * + * $RCSfile: fielduno.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_FIELDUNO_HXX +#define SC_FIELDUNO_HXX + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" // ScRange, ScAddress +#endif + +#ifndef _SFXLSTNER_HXX //autogen +#include <svtools/lstner.hxx> +#endif +#ifndef _SFX_ITEMPROP_HXX +#include <svtools/itemprop.hxx> +#endif +#ifndef _MyEDITDATA_HXX //autogen +#include <svx/editdata.hxx> +#endif + +#ifndef _COM_SUN_STAR_TEXT_XTEXTFIELD_HPP_ +#include <com/sun/star/text/XTextField.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_ +#include <com/sun/star/lang/XServiceInfo.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XCONTAINER_HPP_ +#include <com/sun/star/container/XContainer.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XUNOTUNNEL_HPP_ +#include <com/sun/star/lang/XUnoTunnel.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XENUMERATIONACCESS_HPP_ +#include <com/sun/star/container/XEnumerationAccess.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XINDEXACCESS_HPP_ +#include <com/sun/star/container/XIndexAccess.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_ +#include <com/sun/star/beans/XPropertySet.hpp> +#endif + +#ifndef _CPPUHELPER_IMPLBASE4_HXX_ +#include <cppuhelper/implbase4.hxx> +#endif + + +class SvxEditSource; +class SvxFieldItem; +class ScCellFieldObj; +class ScHeaderFieldObj; +class ScHeaderFooterContentObj; + + +//------------------------------------------------------------------ + + +class ScCellFieldsObj : public cppu::WeakImplHelper4< + com::sun::star::container::XEnumerationAccess, + com::sun::star::container::XIndexAccess, + com::sun::star::container::XContainer, + com::sun::star::lang::XServiceInfo >, + public SfxListener +{ +private: + ScDocShell* pDocShell; + ScAddress aCellPos; + SvxEditSource* pEditSource; + + ScCellFieldObj* GetObjectByIndex_Impl(INT32 Index) const; + +public: + ScCellFieldsObj(ScDocShell* pDocSh, const ScAddress& rPos); + virtual ~ScCellFieldsObj(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // XIndexAccess + virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) + throw(::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XEnumerationAccess + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL + createEnumeration() throw(::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XContainer + virtual void SAL_CALL addContainerListener( const ::com::sun::star::uno::Reference< + ::com::sun::star::container::XContainerListener >& xListener ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeContainerListener( const ::com::sun::star::uno::Reference< + ::com::sun::star::container::XContainerListener >& xListener ) + throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScCellFieldObj : public cppu::WeakImplHelper4< + com::sun::star::text::XTextField, + com::sun::star::beans::XPropertySet, + com::sun::star::lang::XUnoTunnel, + com::sun::star::lang::XServiceInfo >, + public SfxListener +{ +private: + SfxItemPropertySet aPropSet; + ScDocShell* pDocShell; + ScAddress aCellPos; + SvxEditSource* pEditSource; + ESelection aSelection; + + String aUrl; // Inhalt, wenn noch nicht eingefuegt (nur dann!) + String aRepresentation; + String aTarget; + +public: + ScCellFieldObj(); + ScCellFieldObj(ScDocShell* pDocSh, const ScAddress& rPos, + const ESelection& rSel); + virtual ~ScCellFieldObj(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // per getImplementation gerufen: + void DeleteField(); + BOOL IsInserted() const { return pEditSource != NULL; } + SvxFieldItem CreateFieldItem(); + void InitDoc( ScDocShell* pDocSh, const ScAddress& rPos, + const ESelection& rSel ); + + // XTextField + virtual ::rtl::OUString SAL_CALL getPresentation( sal_Bool bShowCommand ) + throw(::com::sun::star::uno::RuntimeException); + + // XTextContent + virtual void SAL_CALL attach( const ::com::sun::star::uno::Reference< + ::com::sun::star::text::XTextRange >& xTextRange ) + throw(::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > SAL_CALL + getAnchor() throw(::com::sun::star::uno::RuntimeException); + + // XComponent + virtual void SAL_CALL dispose() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< + ::com::sun::star::lang::XEventListener >& xListener ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< + ::com::sun::star::lang::XEventListener >& aListener ) + throw(::com::sun::star::uno::RuntimeException); + + // XPropertySet + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > + SAL_CALL getPropertySetInfo() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Any& aValue ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::beans::PropertyVetoException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( + const ::rtl::OUString& PropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& xListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XUnoTunnel + virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< + sal_Int8 >& aIdentifier ) + throw(::com::sun::star::uno::RuntimeException); + + static const com::sun::star::uno::Sequence<sal_Int8>& getUnoTunnelId(); + static ScCellFieldObj* getImplementation( const com::sun::star::uno::Reference< + com::sun::star::text::XTextContent> xObj ); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + +//------------------------------------------------------------------ + +class ScHeaderFieldsObj : public cppu::WeakImplHelper4< + com::sun::star::container::XEnumerationAccess, + com::sun::star::container::XIndexAccess, + com::sun::star::container::XContainer, + com::sun::star::lang::XServiceInfo > +{ +private: + ScHeaderFooterContentObj* pContentObj; + USHORT nPart; + UINT16 nType; + SvxEditSource* pEditSource; + + ScHeaderFieldObj* GetObjectByIndex_Impl(INT32 Index) const; + +public: + ScHeaderFieldsObj(ScHeaderFooterContentObj* pContent, + USHORT nP, USHORT nT); + virtual ~ScHeaderFieldsObj(); + + // XIndexAccess + virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) + throw(::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XEnumerationAccess + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL + createEnumeration() throw(::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XContainer + virtual void SAL_CALL addContainerListener( const ::com::sun::star::uno::Reference< + ::com::sun::star::container::XContainerListener >& xListener ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeContainerListener( const ::com::sun::star::uno::Reference< + ::com::sun::star::container::XContainerListener >& xListener ) + throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScHeaderFieldObj : public cppu::WeakImplHelper4< + com::sun::star::text::XTextField, + com::sun::star::beans::XPropertySet, + com::sun::star::lang::XUnoTunnel, + com::sun::star::lang::XServiceInfo > +{ +private: + SfxItemPropertySet aPropSet; + ScHeaderFooterContentObj* pContentObj; + USHORT nPart; + UINT16 nType; + SvxEditSource* pEditSource; + ESelection aSelection; + +public: + ScHeaderFieldObj(); + ScHeaderFieldObj(ScHeaderFooterContentObj* pContent, USHORT nP, + USHORT nT, const ESelection& rSel); + virtual ~ScHeaderFieldObj(); + + // per getImplementation gerufen: + void DeleteField(); + BOOL IsInserted() const { return pEditSource != NULL; } + SvxFieldItem CreateFieldItem(); + void InitDoc( ScHeaderFooterContentObj* pContent, USHORT nP, + const ESelection& rSel ); + + // XTextField + virtual ::rtl::OUString SAL_CALL getPresentation( sal_Bool bShowCommand ) + throw(::com::sun::star::uno::RuntimeException); + + // XTextContent + virtual void SAL_CALL attach( const ::com::sun::star::uno::Reference< + ::com::sun::star::text::XTextRange >& xTextRange ) + throw(::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > SAL_CALL + getAnchor() throw(::com::sun::star::uno::RuntimeException); + + // XComponent + virtual void SAL_CALL dispose() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< + ::com::sun::star::lang::XEventListener >& xListener ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< + ::com::sun::star::lang::XEventListener >& aListener ) + throw(::com::sun::star::uno::RuntimeException); + + // XPropertySet + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > + SAL_CALL getPropertySetInfo() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Any& aValue ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::beans::PropertyVetoException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( + const ::rtl::OUString& PropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& xListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XUnoTunnel + virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< + sal_Int8 >& aIdentifier ) + throw(::com::sun::star::uno::RuntimeException); + + static const com::sun::star::uno::Sequence<sal_Int8>& getUnoTunnelId(); + static ScHeaderFieldObj* getImplementation( const com::sun::star::uno::Reference< + com::sun::star::text::XTextContent> xObj ); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + +#endif + diff --git a/sc/inc/filter.hxx b/sc/inc/filter.hxx new file mode 100644 index 000000000000..2bde1f043e2b --- /dev/null +++ b/sc/inc/filter.hxx @@ -0,0 +1,166 @@ +/************************************************************************* + * + * $RCSfile: filter.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_FILTER_HXX +#define SC_FILTER_HXX + +#ifndef _STRING_HXX //autogen +#include <tools/string.hxx> +#endif +#ifndef _RTL_TEXTENC_H +#include <rtl/textenc.h> +#endif + +class SfxMedium; +class SvStream; + +class ScAddress; +class ScDocument; +class ScRange; + +// Return-Werte Im-/Exportfilter (ULONG) + +typedef ULONG FltError; +//enum FltError { + +#define eERR_OK ERRCODE_NONE // kein Fehler, alles OK +#define eERR_OPEN SCERR_IMPORT_OPEN // ... +#define eERR_UNBEK SCERR_IMPORT_UNKNOWN // unbekannter Fehler, auch historische Bedeutung +#define eERR_NOMEM SCERR_IMPORT_OUTOFMEM // nicht mehr genuegend Speicher zur Verfuegung +#define eERR_UNKN_WK SCERR_IMPORT_UNKNOWN_WK // unbekanntes WK?-Format (Lotus 1-2-3) +#define eERR_FORMAT SCERR_IMPORT_FORMAT // Formatfehler beim Lesen (kein Formel-Fehler!) +#define eERR_NI SCERR_IMPORT_NI // Nicht implementierter Filter +#define eERR_UNKN_BIFF SCERR_IMPORT_UNKNOWN_BIFF // unbekanntes BIFF-Format (Excel) +#define eERR_NI_BIFF SCERR_IMPORT_NI_BIFF // nicht implementiertes BIFF-Format +#define eERR_FILEPASSWD SCERR_IMPORT_FILEPASSWD // File Passwordgeschuetzt +#define eERR_INTERN SCERR_IMPORT_INTERNAL // interner Fehler +#define eERR_RNGOVRFLW SCWARN_IMPORT_RANGE_OVERFLOW// ueberlauf der Zellkoordinaten: + // Tabelle abgschnitten auf erlaubtem Bereich +// mehr Fehlercodes siehe scerrors.hxx + +// }; + + +// fuer Import +enum EXCIMPFORMAT { EIF_AUTO, EIF_BIFF5, EIF_BIFF8, EIF_BIFF_LE4 }; + +// fuer Export +enum ExportFormatLotus { ExpWK1, ExpWK3, ExpWK4 }; +enum ExportFormatExcel { ExpBiff2, ExpBiff3, ExpBiff4, ExpBiff4W, ExpBiff5 }; + + +// Optionen fuer DIF-Im-/Export (Kombination ueber '|') +#define SC_DIFOPT_PLAIN 0x00000000 +#define SC_DIFOPT_DATE 0x00000001 +#define SC_DIFOPT_TIME 0x00000002 +#define SC_DIFOPT_CURRENCY 0x00000004 + +#define SC_DIFOPT_EXCEL (SC_DIFOPT_DATE|SC_DIFOPT_TIME|SC_DIFOPT_CURRENCY) + + +// *********************************************************************** +// Diverse Importfilter +// *********************************************************************** + +FltError ScImportLotus123( SfxMedium&, ScDocument*, CharSet eSrc = RTL_TEXTENCODING_DONTKNOW ); + +FltError ScImportExcel( SvStream&, ScDocument* ); + +FltError ScImportExcel( SfxMedium&, ScDocument* ); + +FltError ScImportExcel( SfxMedium&, ScDocument*, const EXCIMPFORMAT ); + // eFormat == EIF_AUTO -> passender Filter wird automatisch verwendet + // eFormat == EIF_BIFF5 -> nur Biff5-Stream fuehrt zum Erfolg (auch wenn in einem Excel97-Doc) + // eFormat == EIF_BIFF5 -> nur Biff8-Stream fuehrt zum Erfolg (nur in Excel97-Docs) + // eFormat == EIF_BIFF_LE4 -> nur Nicht-Storage-Dateien _koennen_ zum Erfolg fuehren + +FltError ScImportStarCalc10( SvStream&, ScDocument* ); + +FltError ScImportDif( SvStream&, ScDocument*, const ScAddress& rInsPos, + const CharSet eSrc = RTL_TEXTENCODING_DONTKNOW, UINT32 nDifOption = SC_DIFOPT_EXCEL ); + +FltError ScImportRTF( SvStream&, ScDocument*, ScRange& rRange ); + +FltError ScImportHTML( SvStream&, ScDocument*, ScRange& rRange, double nOutputFactor = 1.0 ); + +// *********************************************************************** +// Diverse Exportfilter +// *********************************************************************** + +FltError ScExportLotus123( SvStream&, ScDocument*, ExportFormatLotus, CharSet eDest ); + +FltError ScExportExcel234( SvStream&, ScDocument*, ExportFormatExcel, CharSet eDest ); + +FltError ScExportExcel5( SfxMedium&, ScDocument*, const BOOL bTuerk, CharSet eDest ); + +FltError ScExportDif( SvStream&, ScDocument*, const ScAddress& rOutPos, const CharSet eDest, + UINT32 nDifOption = SC_DIFOPT_EXCEL ); + +FltError ScExportDif( SvStream&, ScDocument*, const ScRange& rRange, const CharSet eDest, + UINT32 nDifOption = SC_DIFOPT_EXCEL ); + +FltError ScExportHTML( SvStream&, ScDocument*, const ScRange& rRange, const CharSet eDest, BOOL bAll, + const String& rStreamPath ); + +FltError ScExportRTF( SvStream&, ScDocument*, const ScRange& rRange, const CharSet eDest ); + +#endif + diff --git a/sc/inc/fmtuno.hxx b/sc/inc/fmtuno.hxx new file mode 100644 index 000000000000..5f260db5d10e --- /dev/null +++ b/sc/inc/fmtuno.hxx @@ -0,0 +1,364 @@ +/************************************************************************* + * + * $RCSfile: fmtuno.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_FMTUNO_HXX +#define SC_FMTUNO_HXX + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" // ScRange, ScAddress +#endif + +#ifndef _LIST_HXX //autogen +#include <tools/list.hxx> +#endif + +#ifndef _SFX_ITEMPROP_HXX +#include <svtools/itemprop.hxx> +#endif + +#ifndef _COM_SUN_STAR_SHEET_XSHEETCONDITIONALENTRIES_HPP_ +#include <com/sun/star/sheet/XSheetConditionalEntries.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XSHEETCONDITION_HPP_ +#include <com/sun/star/sheet/XSheetCondition.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XSHEETCONDITIONALENTRY_HPP_ +#include <com/sun/star/sheet/XSheetConditionalEntry.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_ +#include <com/sun/star/lang/XServiceInfo.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XNAMEACCESS_HPP_ +#include <com/sun/star/container/XNameAccess.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XENUMERATIONACCESS_HPP_ +#include <com/sun/star/container/XEnumerationAccess.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XUNOTUNNEL_HPP_ +#include <com/sun/star/lang/XUnoTunnel.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_ +#include <com/sun/star/beans/XPropertySet.hpp> +#endif + +#ifndef _CPPUHELPER_IMPLBASE3_HXX_ +#include <cppuhelper/implbase3.hxx> +#endif +#ifndef _CPPUHELPER_IMPLBASE4_HXX_ +#include <cppuhelper/implbase4.hxx> +#endif +#ifndef _CPPUHELPER_IMPLBASE5_HXX_ +#include <cppuhelper/implbase5.hxx> +#endif + + +class ScDocument; +class ScTableConditionalEntry; +class ScConditionalFormat; +class ScValidationData; + + +// "erstmal" nur dummer Container + +class ScTableConditionalFormat : public cppu::WeakImplHelper5< + com::sun::star::sheet::XSheetConditionalEntries, + com::sun::star::container::XNameAccess, + com::sun::star::container::XEnumerationAccess, + com::sun::star::lang::XUnoTunnel, + com::sun::star::lang::XServiceInfo > +{ +private: + List aEntries; + + ScTableConditionalEntry* GetObjectByIndex_Impl(USHORT nIndex) const; + void AddEntry_Impl( USHORT nMode, + const String& rExpr1, const String& rExpr2, + const ScAddress& rPos, const String& rStyle ); + +public: + ScTableConditionalFormat(); + ScTableConditionalFormat(ScDocument* pDoc, ULONG nKey, BOOL bEnglish); + virtual ~ScTableConditionalFormat(); + + void FillFormat( ScConditionalFormat& rFormat, + ScDocument* pDoc, BOOL bEnglish ) const; + void DataChanged(); + + // XSheetConditionalEntries + virtual void SAL_CALL addNew( const ::com::sun::star::uno::Sequence< + ::com::sun::star::beans::PropertyValue >& aConditionalEntry ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeByIndex( sal_Int32 nIndex ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL clear() throw(::com::sun::star::uno::RuntimeException); + + // XIndexAccess + virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) + throw(::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XNameAccess + virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XEnumerationAccess + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL + createEnumeration() throw(::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XUnoTunnel + virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< + sal_Int8 >& aIdentifier ) + throw(::com::sun::star::uno::RuntimeException); + + static const com::sun::star::uno::Sequence<sal_Int8>& getUnoTunnelId(); + static ScTableConditionalFormat* getImplementation( const com::sun::star::uno::Reference< + com::sun::star::sheet::XSheetConditionalEntries> xObj ); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + + +class ScTableConditionalEntry : public cppu::WeakImplHelper3< + com::sun::star::sheet::XSheetCondition, + com::sun::star::sheet::XSheetConditionalEntry, + com::sun::star::lang::XServiceInfo > +{ +private: + ScTableConditionalFormat* pParent; + USHORT nMode; // enum ScConditionMode + String aExpr1; + String aExpr2; + ScAddress aSrcPos; + String aStyle; + +public: + ScTableConditionalEntry(); + ScTableConditionalEntry( ScTableConditionalFormat* pPar, + USHORT nM, const String& rEx1, + const String& rEx2, const ScAddress& rPos, + const String& rSt ); + virtual ~ScTableConditionalEntry(); + + void GetData( USHORT& rM, String& rEx1, String& rEx2, + ScAddress& rPos, String& rSt ) const; + + // XSheetCondition + virtual ::com::sun::star::sheet::ConditionOperator SAL_CALL getOperator() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setOperator( ::com::sun::star::sheet::ConditionOperator nOperator ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::rtl::OUString SAL_CALL getFormula1() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setFormula1( const ::rtl::OUString& aFormula1 ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::rtl::OUString SAL_CALL getFormula2() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setFormula2( const ::rtl::OUString& aFormula2 ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::table::CellAddress SAL_CALL getSourcePosition() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setSourcePosition( const ::com::sun::star::table::CellAddress& aSourcePosition ) + throw(::com::sun::star::uno::RuntimeException); + + // XSheetConditionalEntry + virtual ::rtl::OUString SAL_CALL getStyleName() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setStyleName( const ::rtl::OUString& aStyleName ) + throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + + +class ScTableValidationObj : public cppu::WeakImplHelper4< + com::sun::star::sheet::XSheetCondition, + com::sun::star::beans::XPropertySet, + com::sun::star::lang::XUnoTunnel, + com::sun::star::lang::XServiceInfo > +{ +private: + SfxItemPropertySet aPropSet; + USHORT nMode; // enum ScConditionMode + String aExpr1; + String aExpr2; + ScAddress aSrcPos; + USHORT nValMode; // enum ScValidationMode + BOOL bIgnoreBlank; + BOOL bShowInput; + String aInputTitle; + String aInputMessage; + BOOL bShowError; + USHORT nErrorStyle; // enum ScValidErrorStyle + String aErrorTitle; + String aErrorMessage; + + void ClearData_Impl(); + +public: + ScTableValidationObj(); + ScTableValidationObj(ScDocument* pDoc, ULONG nKey, BOOL bEnglish); + virtual ~ScTableValidationObj(); + + ScValidationData* CreateValidationData( ScDocument* pDoc, BOOL bEnglish ) const; + void DataChanged(); + + // XSheetCondition + virtual ::com::sun::star::sheet::ConditionOperator SAL_CALL getOperator() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setOperator( ::com::sun::star::sheet::ConditionOperator nOperator ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::rtl::OUString SAL_CALL getFormula1() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setFormula1( const ::rtl::OUString& aFormula1 ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::rtl::OUString SAL_CALL getFormula2() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setFormula2( const ::rtl::OUString& aFormula2 ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::table::CellAddress SAL_CALL getSourcePosition() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setSourcePosition( const ::com::sun::star::table::CellAddress& aSourcePosition ) + throw(::com::sun::star::uno::RuntimeException); + + // XPropertySet + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > + SAL_CALL getPropertySetInfo() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Any& aValue ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::beans::PropertyVetoException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( + const ::rtl::OUString& PropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& xListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XUnoTunnel + virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< + sal_Int8 >& aIdentifier ) + throw(::com::sun::star::uno::RuntimeException); + + static const com::sun::star::uno::Sequence<sal_Int8>& getUnoTunnelId(); + static ScTableValidationObj* getImplementation( const com::sun::star::uno::Reference< + com::sun::star::beans::XPropertySet> xObj ); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +#endif + diff --git a/sc/inc/global.hxx b/sc/inc/global.hxx new file mode 100644 index 000000000000..16cb7f9d5c94 --- /dev/null +++ b/sc/inc/global.hxx @@ -0,0 +1,1619 @@ +/************************************************************************* + * + * $RCSfile: global.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_SCGLOB_HXX +#define SC_SCGLOB_HXX + +#ifndef _LANG_HXX //autogen +#include <tools/lang.hxx> +#endif +#ifndef _STREAM_HXX //autogen +#include <tools/stream.hxx> +#endif + +class ImageList; +class Bitmap; +class International; +class SfxItemSet; +class Color; + + +#ifdef WIN +// auf Windows 16 muessen die Zeilen weiter auf 8192 begrenzt werden +// (zum Testen per Hand definieren) +#define SC_LIMIT_ROWS +#endif + +// Macro fuer den Call-Profiler unter WinNT +// mit S_CAP kann eine Messung gestarted, mit E_CAP wieder gestoppt werden +#if defined( WNT ) && defined( PROFILE ) + +extern "C" { + void StartCAP(); + void StopCAP(); + void DumpCAP(); +}; + +#define S_CAP StartCAP(); +#define E_CAP StopCAP(); DumpCAP(); + +#endif + +//------------------------------------------------------------------------ +struct LabelData; +//------------------------------------------------------------------------ + +// die 1000 Namen des Calc... +// Clipboard-Namen sind jetzt in so3/soapp.hxx +// STRING_SCAPP war "scalc3", "scalc4", jetzt nur noch "scalc" + +#define STRING_SCAPP "scalc" +#define STRING_SCSTREAM "StarCalcDocument" + +#define STRING_STANDARD "Standard" + +// '\r' geht auf'm Mac nicht... +#define CHAR_CR char(13) + +#define MINDOUBLE 1.7e-307 +#define MAXDOUBLE 1.7e307 + +#define MAXROW_30 8191 +#define MAXROW_40 31999 +#ifdef SC_LIMIT_ROWS +#define MAXROW 8191 +#else +#define MAXROW 31999 +#endif + +#define MAXCOL 255 +#define MAXTAB 255 + +#define MINZOOM 20 +#define MAXZOOM 400 + +#define MAXSUBTOTAL 3 +#define MAXSORT 3 +#define MAXQUERY 8 +#define PIVOT_MAXFIELD 8 + +#define SC_START_INDEX_DB_COLL 50000 + // Oberhalb dieser Grenze liegen + // die Indizes fuer DBBereiche + +#define VALIDROW(nRow) (nRow>=0 && nRow<=MAXROW) +#define VALIDCOL(nCol) (nCol>=0 && nCol<=MAXCOL) +#define VALIDTAB(nTab) (nTab>=0 && nTab<=MAXTAB) +#define VALIDCOLROW(nCol,nRow) (VALIDCOL(nCol) && VALIDROW(nRow)) +#define VALIDCOLROWTAB(nCol,nRow,nTab) (VALIDCOL(nCol) && VALIDROW(nRow) && VALIDTAB(nTab)) + +inline BOOL ValidColRow(USHORT nCol, USHORT nRow) +{ + return nCol <= MAXCOL && nRow <= MAXROW; +} + +inline BOOL ValidColRowTab(USHORT nCol, USHORT nRow, USHORT nTab) +{ + return nCol <= MAXCOL && nRow <= MAXROW && nTab <= MAXTAB; +} + +/* +#ifdef OS2 +#define PIXEL_PER_INCH 72.0 +#else +#define PIXEL_PER_INCH 96.0 +#endif +*/ + +#define PIXEL_PER_INCH 96.0 + +#define CM_PER_INCH 2.54 +#define POINTS_PER_INCH 72.27 +#define PIXEL_PER_POINT (PIXEL_PER_INCH / POINTS_PER_INCH) +#define INCHT_PER_CM (1.0 / CM_PER_INCH) +#define POINTS_PER_CM (POINTS_PER_INCH / CM_PER_INCH) +#define TWIPS_PER_POINT 20.0 +#define TWIPS_PER_INCH (TWIPS_PER_POINT * POINTS_PER_INCH) +#define TWIPS_PER_CM (TWIPS_PER_INCH / CM_PER_INCH) +#define CM_PER_TWIPS (CM_PER_INCH / TWIPS_PER_INCH) +#define TWIPS_PER_PIXEL (TWIPS_PER_INCH / PIXEL_PER_INCH) +#define TWIPS_PER_CHAR (TWIPS_PER_INCH / 13.6) +#define PIXEL_PER_TWIPS (PIXEL_PER_INCH / TWIPS_PER_INCH) +#define HMM_PER_TWIPS (CM_PER_TWIPS * 1000.0) + +#define STD_COL_WIDTH 1285 +#define STD_EXTRA_WIDTH 113 // 2mm Extra fuer optimale Breite + // Standard Zeilenhoehe: Text + Rand - STD_ROWHEIGHT_DIFF + + +#define MAX_EXTRA_WIDTH 23811 // 42cm in TWIPS +#define MAX_EXTRA_HEIGHT 23811 +#define MAX_COL_WIDTH 56693 // 1m in TWIPS +#define MAX_COL_HEIGHT 56693 + +#ifdef MAC +#define STD_ROWHEIGHT_DIFF 3 +#else +#define STD_ROWHEIGHT_DIFF 23 +#endif +#define STD_FONT_HEIGHT 200 // entspricht 10 Punkt + +//! statt STD_ROW_HEIGHT ScGlobal::nStdRowHeight benutzen ! + +#ifdef MAC // Mac braucht mehr Platz +#define STD_ROW_HEIGHT (14.8 * TWIPS_PER_POINT) // +#else +#define STD_ROW_HEIGHT (12.8 * TWIPS_PER_POINT) // 256 Twips, 0.45 cm +#endif + + // Standardgroesse als Ole-Server (Zellen) +#define OLE_STD_CELLS_X 4 +#define OLE_STD_CELLS_Y 5 + +#define SC_SIZE_OPTIMUM 0xFFFF + + // Update-Flags +#define UF_SCROLL_LEFT 1 +#define UF_SCROLL_RIGHT 2 +#define UF_SCROLL_UP 4 +#define UF_SCROLL_DOWN 8 +#define UF_ROW 16 +#define UF_VIEW 32 + + // Repaint-Flags (fuer Messages) +#define PAINT_GRID 1 +#define PAINT_TOP 2 +#define PAINT_LEFT 4 +#define PAINT_EXTRAS 8 +#define PAINT_INVERT 16 +#define PAINT_MARKS 32 +#define PAINT_OBJECTS 64 +#define PAINT_SIZE 128 +#define PAINT_ALL ( PAINT_GRID | PAINT_TOP | PAINT_LEFT | PAINT_EXTRAS | PAINT_OBJECTS | PAINT_SIZE ) + + + // Flags fuer Spalten / Zeilen + // FILTERED immer zusammen mit HIDDEN + // FILTERED und MANUALSIZE nur fuer Zeilen moeglich +#define CR_HIDDEN 1 +//#define CR_MARKED 2 +#define CR_PAGEBREAK 4 +#define CR_MANUALBREAK 8 +#define CR_FILTERED 16 +#define CR_MANUALSIZE 32 + +// was davon kommt in die Datei: +#define CR_SAVEMASK ( ~CR_PAGEBREAK ) + + // Insert-/Delete-Flags +#define IDF_VALUE 0x0001 +#define IDF_DATETIME 0x0002 +#define IDF_STRING 0x0004 +#define IDF_NOTE 0x0008 +#define IDF_FORMULA 0x0010 +#define IDF_HARDATTR 0x0020 +#define IDF_STYLES 0x0040 +#define IDF_OBJECTS 0x0080 +#define IDF_EDITATTR 0x0100 +#define IDF_ATTRIB ( IDF_HARDATTR | IDF_STYLES ) +#define IDF_CONTENTS ( IDF_VALUE | IDF_DATETIME | IDF_STRING | IDF_NOTE | IDF_FORMULA ) +#define IDF_ALL ( IDF_CONTENTS | IDF_ATTRIB | IDF_OBJECTS ) +#define IDF_NONE 0x0000 + +#define PASTE_NOFUNC 0 +#define PASTE_ADD 1 +#define PASTE_SUB 2 +#define PASTE_MUL 3 +#define PASTE_DIV 4 + +#define PASTE_NONEMPTY 5 + + // Bits fuer HasAttr +#define HASATTR_LINES 1 +#define HASATTR_MERGED 2 +#define HASATTR_OVERLAPPED 4 +#define HASATTR_PROTECTED 8 +#define HASATTR_SHADOW 16 +#define HASATTR_NEEDHEIGHT 32 +#define HASATTR_SHADOW_RIGHT 64 +#define HASATTR_SHADOW_DOWN 128 +#define HASATTR_AUTOFILTER 256 +#define HASATTR_CONDITIONAL 512 +#define HASATTR_ROTATE 1024 +#define HASATTR_NOTOVERLAPPED 2048 + +#define HASATTR_PAINTEXT ( HASATTR_LINES | HASATTR_SHADOW | HASATTR_CONDITIONAL ) + + +#define EMPTY_STRING ScGlobal::GetEmptyString() + + // Layer-ID's fuer Drawing +#define SC_LAYER_FRONT 0 +#define SC_LAYER_BACK 1 +#define SC_LAYER_INTERN 2 +#define SC_LAYER_CONTROLS 3 + + // Tabellen linken +#define SC_LINK_NONE 0 +#define SC_LINK_NORMAL 1 +#define SC_LINK_VALUE 2 + + // Eingabe +#define SC_ENTER_NORMAL 0 +#define SC_ENTER_BLOCK 1 +#define SC_ENTER_MATRIX 2 + + // Step = 10pt, max. Einzug = 100 Schritte +#define SC_INDENT_STEP 200 +#define SC_MAX_INDENT 20000 + + // Szenario-Flags +#define SC_SCENARIO_COPYALL 1 +#define SC_SCENARIO_SHOWFRAME 2 +#define SC_SCENARIO_PRINTFRAME 4 +#define SC_SCENARIO_TWOWAY 8 +#define SC_SCENARIO_ATTRIB 16 +#define SC_SCENARIO_VALUE 32 + + +#ifndef DELETEZ +#define DELETEZ(pPtr) { delete pPtr; pPtr = 0; } +#endif + + // Ist Bit in Set gesetzt? +#define IS_SET(bit,set)(((set)&(bit))==(bit)) + +#define MAX_FUNCCAT 12 // max. Kategorien fuer Funktionen +#define SEL_ALL -1 // Eingabezeile: alles Selektieren +#define RES_CANCEL 0 // Resultate der Funk.AutoPilot-Seiten +#define RES_BACKWARD 1 +#define RES_END 2 + +enum CellType + { + CELLTYPE_NONE, + CELLTYPE_VALUE, + CELLTYPE_STRING, + CELLTYPE_FORMULA, + CELLTYPE_NOTE, + CELLTYPE_EDIT, + CELLTYPE_SYMBOLS, // fuer Laden/Speichern + + CELLTYPE_DESTROYED + }; + +enum DelCellCmd + { + DEL_CELLSUP, + DEL_CELLSLEFT, + DEL_DELROWS, + DEL_DELCOLS, + DEL_NONE + }; + +enum InsCellCmd + { + INS_CELLSDOWN, + INS_CELLSRIGHT, + INS_INSROWS, + INS_INSCOLS, + INS_NONE + }; + +enum UpdateRefMode + { + URM_INSDEL, + URM_COPY, + URM_MOVE, + URM_REORDER + }; + +enum FillDir + { + FILL_TO_BOTTOM, + FILL_TO_RIGHT, + FILL_TO_TOP, + FILL_TO_LEFT + }; + +enum FillCmd + { + FILL_SIMPLE, + FILL_LINEAR, + FILL_GROWTH, + FILL_DATE, + FILL_AUTO + }; + +enum FillDateCmd + { + FILL_DAY, + FILL_WEEKDAY, + FILL_MONTH, + FILL_YEAR + }; + +enum ScDirection + { + DIR_BOTTOM, + DIR_RIGHT, + DIR_TOP, + DIR_LEFT + }; + +enum ScSizeMode + { + SC_SIZE_DIRECT, // setzen oder bei 0 ausblenden + SC_SIZE_OPTIMAL, // alles auf optimal + SC_SIZE_SHOW, // einblenden mit alter Hoehe + SC_SIZE_VISOPT // nur sichtbare auf optimal + }; + +enum ScInputMode + { + SC_INPUT_NONE, + SC_INPUT_TYPE, // Eingabe, ohne im Inplace-Modus zu sein + SC_INPUT_TABLE, // Textcursor in der Tabelle + SC_INPUT_TOP // Textcursor in der Eingabezeile + }; + +enum ScVObjMode // Ausgabemodi von Objekten auf einer Seite +{ + VOBJ_MODE_SHOW, + VOBJ_MODE_HIDE, + VOBJ_MODE_DUMMY +}; + +enum ScAnchorType // Verankerung eines Zeichenobjekts +{ + SCA_CELL, + SCA_PAGE, + SCA_DONTKNOW // bei Mehrfachselektion +}; + +enum ScGetDBMode +{ + SC_DB_MAKE, // wenn noetig, "unbenannt" anlegen + SC_DB_IMPORT, // wenn noetig, "Importx" anlegen + SC_DB_OLD // nicht neu anlegen +}; + +enum ScLkUpdMode +{ //Verknuepfungen + LM_ALWAYS, //immer aktualisieren + LM_NEVER, //niemals + LM_ON_DEMAND, //auf nachfrage + LM_UNKNOWN //Shit happens +}; + + +// ----------------------------------------------------------------------- + +//================================================================== + +// ----------------------------------------------------------------------- +struct ScImportParam +{ + USHORT nCol1; + USHORT nRow1; + USHORT nCol2; + USHORT nRow2; + BOOL bImport; + String aDBName; // Alias der Datenbank + String aStatement; + BOOL bNative; + BOOL bSql; // Statement oder Name? + BYTE nType; // enum DBObject + + ScImportParam(); + ScImportParam( const ScImportParam& r ); + ~ScImportParam(); + + ScImportParam& operator= ( const ScImportParam& r ); + BOOL operator== ( const ScImportParam& r ) const; + void Clear (); +}; + +// ----------------------------------------------------------------------- + +class ScDocument; +class ScDocShell; +class ScDocShellRef; +class SvxSearchItem; +class ScAutoFormat; +class FuncCollection; +class ScUnoAddInCollection; +class ScUserList; +class SvxBrushItem; +class ScFunctionList; +class ScFunctionMgr; +class SfxItemPool; +class SdrModel; +class EditTextObject; +class SfxObjectShell; +class SvNumberFormatter; +class ScUnitConverter; +class CharClass; + +namespace com { namespace sun { namespace star { namespace lang { + struct Locale; +}}}} + +#ifndef _SCALC_EXE +class ScGlobal +{ + static ScDocument* pClipDoc; + static SdrModel* pClipModel; + static BYTE nClipState; + static SvxSearchItem* pSearchItem; + static ScAutoFormat* pAutoFormat; + static FuncCollection* pFuncCollection; + static ScUnoAddInCollection* pAddInCollection; + static ScUserList* pUserList; + static String** ppRscString; + static String* pStrScDoc; + static String* pEmptyString; + static String* pStrClipDocName; + static SvxBrushItem* pEmptyBrushItem; + static SvxBrushItem* pButtonBrushItem; + static SvxBrushItem* pEmbeddedBrushItem; + static SvxBrushItem* pProtectedBrushItem; + + static ImageList* pOutlineBitmaps; + +// static Bitmap* pAnchorBitmap; +// static Bitmap* pGrayAnchorBitmap; + + static ScFunctionList* pStarCalcFunctionList; + static ScFunctionMgr* pStarCalcFunctionMgr; + + static ScUnitConverter* pUnitConverter; + +public: + static International* pScInternational; + static ::com::sun::star::lang::Locale* pLocale; + static CharClass* pCharClass; + static LanguageType eLnge; + static sal_Unicode cListDelimiter; + static ScDocument* GetClipDoc(); + static BOOL HasClipDoc(); + static const String& GetClipDocName(); + static void SetClipDocName( const String& rNew ); + static void CaptureClip(); + static void ReleaseClip(); + static BOOL IsClipCaptured(); + static void SetClipDraw(SdrModel* pModel); + static BOOL IsClipDraw(); + static SdrModel* GetClipModel(); + static const SvxSearchItem& GetSearchItem(); + static void SetSearchItem( const SvxSearchItem& rNew ); + static ScAutoFormat* GetAutoFormat(); + static void ClearAutoFormat(); //BugId 54209 + static FuncCollection* GetFuncCollection(); + static ScUnoAddInCollection* GetAddInCollection(); + static ScUserList* GetUserList(); + static void SetUserList( const ScUserList* pNewList ); + static const String& GetRscString( USHORT nIndex ); + static void OpenURL( const String& rURL, const String& rTarget ); + static String GetAbsDocName( const String& rFileName, + SfxObjectShell* pShell ); + static String GetDocTabName( const String& rFileName, + const String& rTabName ); + static ULONG GetStandardFormat( SvNumberFormatter&, + ULONG nFormat, short nType ); + static ULONG GetStandardFormat( double, SvNumberFormatter&, + ULONG nFormat, short nType ); + + static double nScreenPPTX; + static double nScreenPPTY; + + static ScDocShellRef* pDrawClipDocShellRef; + + static USHORT nDefFontHeight; + static USHORT nStdRowHeight; + + static long nLastRowHeightExtra; + static long nLastColWidthExtra; + + static void Init(); // am Anfang + static void InitAddIns(); + static void Clear(); // bei Programmende + + static void InitTextHeight(SfxItemPool* pPool); + static SvxBrushItem* GetEmptyBrushItem() { return pEmptyBrushItem; } + static SvxBrushItem* GetButtonBrushItem() { return pButtonBrushItem; } + static SvxBrushItem* GetEmbeddedBrushItem() { return pEmbeddedBrushItem; } + static SvxBrushItem* GetProtectedBrushItem() { return pProtectedBrushItem; } + static const String& GetEmptyString(); + static const String& GetScDocString(); + + static ImageList* GetOutlineBitmaps(); +// static const Bitmap& GetAnchorBitmap(); +// static const Bitmap& GetGrayAnchorBitmap(); + + static ScFunctionList* GetStarCalcFunctionList(); + static ScFunctionMgr* GetStarCalcFunctionMgr(); + + static String GetErrorString(USHORT nErrNumber); + static String GetLongErrorString(USHORT nErrNumber); + static BOOL EETextObjEqual( const EditTextObject* pObj1, + const EditTextObject* pObj2 ); + static BOOL CheckWidthInvalidate( BOOL& bNumFormatChanged, + const SfxItemSet& rNewAttrs, + const SfxItemSet& rOldAttrs ); + static BOOL HasAttrChanged( const SfxItemSet& rNewAttrs, + const SfxItemSet& rOldAttrs, + const USHORT nWhich ); + + static ScUnitConverter* GetUnitConverter(); + + /// strchr() functionality on unicode, as long as we need it for ScToken etc. + static const sal_Unicode* UnicodeStrChr( const sal_Unicode* pStr, sal_Unicode c ); + + static inline sal_Unicode ToUpperAlpha( sal_Unicode c ) + { return ( c >= 'a' && c <= 'z' ) ? ( c-'a'+'A' ) : c; } +}; +#endif + +class ScTripel +{ +public: + USHORT nCol; + USHORT nRow; + USHORT nTab; + +public: + ScTripel(); + ScTripel( USHORT nNewCol, USHORT nNewRow, USHORT nNewTab ); + ScTripel( const ScTripel& rRef ); + ~ScTripel(); + + USHORT GetCol() const { return nCol; } + USHORT GetRow() const { return nRow; } + USHORT GetTab() const { return nTab; } + + void SetCol(USHORT nNewCol) { nCol = nNewCol; } + void SetRow(USHORT nNewRow) { nRow = nNewRow; } + void SetTab(USHORT nNewTab) { nTab = nNewTab; } + + void Put(USHORT nNewCol, USHORT nNewRow, USHORT nNewTab) + { nCol=nNewCol; nRow=nNewRow; nTab=nNewTab; } + + inline int operator == ( const ScTripel& rTripel ) const; + int operator != ( const ScTripel& rTripel ) const { return !(operator==(rTripel)); } + + String GetText() const; // "(1,2,3)" + String GetColRowString( BOOL bAbolute = FALSE ) const; // "A1"||"$A$1" +}; + +inline ScTripel::ScTripel() : + nCol(0), nRow(0), nTab(0) +{} + +inline ScTripel::ScTripel( USHORT nNewCol, USHORT nNewRow, USHORT nNewTab ) : + nCol(nNewCol), nRow(nNewRow), nTab(nNewTab) +{} + +inline ScTripel::ScTripel( const ScTripel& rRef ) : + nCol(rRef.nCol), nRow(rRef.nRow), nTab(rRef.nTab) +{} + +inline ScTripel::~ScTripel() +{} + +inline int ScTripel::operator==( const ScTripel& rTripel ) const +{ + return nCol==rTripel.nCol && nRow==rTripel.nRow && nTab==rTripel.nTab; +} + +class ScRefTripel : public ScTripel +{ + BOOL bRelCol; + BOOL bRelRow; + BOOL bRelTab; +public: + ScRefTripel() : + ScTripel(), bRelCol(FALSE), bRelRow(FALSE), bRelTab(FALSE) {} + ScRefTripel( USHORT nNewCol, USHORT nNewRow, USHORT nNewTab, BOOL bNewRelCol, BOOL bNewRelRow, BOOL bNewRelTab ) : + ScTripel(nNewCol, nNewRow, nNewTab), bRelCol(bNewRelCol), bRelRow(bNewRelRow), bRelTab(bNewRelTab) {} + ScRefTripel( const ScRefTripel& rRef ) : + ScTripel(rRef.nCol, rRef.nRow, rRef.nTab), bRelCol(rRef.bRelCol), bRelRow(rRef.bRelRow), bRelTab(rRef.bRelTab) {} + + BOOL GetRelCol() const { return bRelCol; } + BOOL GetRelRow() const { return bRelRow; } + BOOL GetRelTab() const { return bRelTab; } + + void SetRelCol(BOOL bNewRelCol) { bRelCol = bNewRelCol; } + void SetRelRow(BOOL bNewRelRow) { bRelRow = bNewRelRow; } + void SetRelTab(BOOL bNewRelTab) { bRelTab = bNewRelTab; } + + void Put(USHORT nNewCol, USHORT nNewRow, USHORT nNewTab, BOOL bNewRelCol, BOOL bNewRelRow, BOOL bNewRelTab ) + { nCol = nNewCol; nRow = nNewRow; nTab = nNewTab; + bRelCol = bNewRelCol; bRelRow = bNewRelRow; bRelTab = bNewRelTab;} + + inline int operator == ( const ScRefTripel& rRefTripel ) const; + int operator != ( const ScRefTripel& rRefTripel ) const { return !(operator==(rRefTripel)); } + + String GetRefString(ScDocument* pDoc, USHORT nActTab) const; +}; + + +inline int ScRefTripel::operator==( const ScRefTripel& rRefTripel ) const +{ + return nCol == rRefTripel.nCol && nRow==rRefTripel.nRow && nTab==rRefTripel.nTab && + bRelCol == rRefTripel.bRelCol && bRelRow == rRefTripel.bRelRow && bRelTab == rRefTripel.bRelTab; +} + +//================================================================== + +// Die neue Zelladressierung ist in einem UINT32 untergebracht: +// +---+---+-------+ +// |Tab|Col| Row | +// +---+---+-------+ +// Der Schnelligkeit halber wird beim Zugriff nicht geshiftet, +// sondern plattformabhaengig gecastet. + +// Das Ergebnis von ConvertRef() ist eine Bitgruppe folgender Bits: + +#define SCA_COL_ABSOLUTE 0x01 +#define SCA_ROW_ABSOLUTE 0x02 +#define SCA_TAB_ABSOLUTE 0x04 +#define SCA_TAB_3D 0x08 +#define SCA_COL2_ABSOLUTE 0x10 +#define SCA_ROW2_ABSOLUTE 0x20 +#define SCA_TAB2_ABSOLUTE 0x40 +#define SCA_TAB2_3D 0x80 +#define SCA_VALID_ROW 0x0100 +#define SCA_VALID_COL 0x0200 +#define SCA_VALID_TAB 0x0400 +#define SCA_VALID_ROW2 0x1000 +#define SCA_VALID_COL2 0x2000 +#define SCA_VALID_TAB2 0x4000 +#define SCA_VALID 0x8000 + +#define SCA_ABS SCA_VALID \ + | SCA_COL_ABSOLUTE | SCA_ROW_ABSOLUTE | SCA_TAB_ABSOLUTE +#define SCR_ABS SCA_ABS \ + | SCA_COL2_ABSOLUTE | SCA_ROW2_ABSOLUTE | SCA_TAB2_ABSOLUTE +#define SCA_ABS_3D SCA_ABS | SCA_TAB_3D +#define SCR_ABS_3D SCR_ABS | SCA_TAB_3D + +class ScAddress +{ +private: + UINT32 nAddress; + inline UINT16* RowPos(); + inline BYTE* ColPos(); + inline BYTE* TabPos(); + inline const UINT16* RowPos() const; + inline const BYTE* ColPos() const; + inline const BYTE* TabPos() const; + +public: + inline ScAddress() { nAddress = 0; } + inline ScAddress( USHORT nCol, USHORT nRow, USHORT nTab ) + { Set( nCol, nRow, nTab ); } + inline ScAddress( const ScAddress& r ) { nAddress = r.nAddress; } + inline ScAddress( UINT32 nNewAddress ) { nAddress = nNewAddress; } + // TO BE REMOVED + inline ScAddress( const ScTripel& r ) { Set( r.nCol, r.nRow, r.nTab ); } + inline ScAddress& operator=( const ScAddress& r ) + { nAddress = r.nAddress; return *this; } + inline void Set( USHORT nCol, USHORT nRow, USHORT nTab ); + inline USHORT Row() const { return *RowPos(); } + inline USHORT Col() const { return *ColPos(); } + inline USHORT Tab() const { return *TabPos(); } + inline USHORT SetRow( USHORT nRow ) { return *RowPos() = nRow; } + inline USHORT SetCol( USHORT nCol ) { return *ColPos() = (BYTE) nCol; } + inline USHORT SetTab( USHORT nTab ) { return *TabPos() = (BYTE) nTab; } + inline operator UINT32() const { return nAddress; } + inline void PutInOrder( ScAddress& r ); + inline USHORT IncRow( short n=1 ) { return *RowPos() = (*RowPos() + n ) % (MAXROW+1); } + inline USHORT IncCol( short n=1 ) { return *ColPos() = (BYTE) (*ColPos() + n ); } + inline USHORT IncTab( short n=1 ) { return *TabPos() = (BYTE) (*TabPos() + n ); } + inline void GetVars( USHORT& nCol, USHORT& nRow, USHORT& nTab ) const; + USHORT Parse( const String&, ScDocument* = NULL ); + void Format( String&, USHORT = 0, ScDocument* = NULL ) const; + // Das Doc fuer die maximal defineirte Tabelle + BOOL Move( short dx, short dy, short dz, ScDocument* =NULL ); + inline int operator==( const ScAddress& r ) const; + inline int operator!=( const ScAddress& r ) const; + inline int operator<( const ScAddress& r ) const; + inline int operator<=( const ScAddress& r ) const; + inline int operator>( const ScAddress& r ) const; + inline int operator>=( const ScAddress& r ) const; + friend inline SvStream& operator<< ( SvStream& rStream, const ScAddress& rAdr ); + friend inline SvStream& operator>> ( SvStream& rStream, ScAddress& rAdr ); +}; + +inline void ScAddress::Set( USHORT nCol, USHORT nRow, USHORT nTab ) +{ +// nAddress = ((UINT32) ((((BYTE) nTab) << 8 ) + (BYTE) nCol ) << 16 ) +// | (UINT32) (UINT16) nRow; +// Shifterei: 5 mov, 2 xor, 2 shl, 1 add, 1 and, 1 or +// Casterei: 7 mov, ist weniger Code und schneller + *ColPos() = (BYTE) nCol; + *RowPos() = (UINT16) nRow; + *TabPos() = (BYTE) nTab; +} + +inline void ScAddress::PutInOrder( ScAddress& r ) +{ + if( r.nAddress < nAddress ) + { + UINT32 nTemp; + nTemp = nAddress; + nAddress = r.nAddress; + r.nAddress = nTemp; + } + USHORT nTmp; + if ( (nTmp = r.Col()) < Col() ) + { + r.SetCol( Col() ); + SetCol( nTmp ); + } + if ( (nTmp = r.Row()) < Row() ) + { + r.SetRow( Row() ); + SetRow( nTmp ); + } +} + +inline void ScAddress::GetVars( USHORT& nCol, USHORT& nRow, USHORT& nTab ) const +{ + nCol = Col(); + nRow = Row(); + nTab = Tab(); +} + +inline int ScAddress::operator==( const ScAddress& r ) const +{ + return ( nAddress == r.nAddress ); +} + +inline int ScAddress::operator!=( const ScAddress& r ) const +{ + return !operator==( r ); +} + +inline int ScAddress::operator<( const ScAddress& r ) const +{ + return ( nAddress < r.nAddress ); +} + +inline int ScAddress::operator<=( const ScAddress& r ) const +{ + return operator<( r ) || operator==( r ); +} + +inline int ScAddress::operator>( const ScAddress& r ) const +{ + return !operator<=( r ); +} + +inline int ScAddress::operator>=( const ScAddress& r ) const +{ + return !operator<( r ); +} + +#ifdef __LITTLEENDIAN + +inline USHORT* ScAddress::RowPos() { return (USHORT*) &nAddress; } +inline BYTE* ScAddress::ColPos() { return (BYTE*) &nAddress + 2; } +inline BYTE* ScAddress::TabPos() { return (BYTE*) &nAddress + 3; } +inline const USHORT* ScAddress::RowPos() const { return (USHORT*) &nAddress; } +inline const BYTE* ScAddress::ColPos() const { return (BYTE*) &nAddress + 2; } +inline const BYTE* ScAddress::TabPos() const { return (BYTE*) &nAddress + 3; } + +#else + +inline USHORT* ScAddress::RowPos() { return (USHORT*) ((BYTE*) &nAddress + 2 ); } +inline BYTE* ScAddress::ColPos() { return (BYTE*) &nAddress + 1; } +inline BYTE* ScAddress::TabPos() { return (BYTE*) &nAddress; } +inline const USHORT* ScAddress::RowPos() const { return (USHORT*) ((BYTE*) &nAddress + 2 ); } +inline const BYTE* ScAddress::ColPos() const { return (BYTE*) &nAddress + 1; } +inline const BYTE* ScAddress::TabPos() const { return (BYTE*) &nAddress; } + +#endif + +inline SvStream& operator<< ( SvStream& rStream, const ScAddress& rAdr ) +{ + rStream << rAdr.nAddress; + return rStream; +} + +inline SvStream& operator>> ( SvStream& rStream, ScAddress& rAdr ) +{ + rStream >> rAdr.nAddress; + return rStream; +} + +class ScRange +{ +public: + ScAddress aStart, aEnd; + ScRange() : aStart(), aEnd() {} + ScRange( const ScAddress& s, const ScAddress& e ) + : aStart( s ), aEnd( e ) { aStart.PutInOrder( aEnd ); } + ScRange( const ScRange& r ) : aStart( r.aStart ), aEnd( r.aEnd ) {} + ScRange( const ScAddress& r ) : aStart( r ), aEnd( r ) {} + ScRange( USHORT nCol, USHORT nRow, USHORT nTab ) + : aStart( nCol, nRow, nTab ), aEnd( aStart ) {} + ScRange( USHORT nCol1, USHORT nRow1, USHORT nTab1, + USHORT nCol2, USHORT nRow2, USHORT nTab2 ) + : aStart( nCol1, nRow1, nTab1 ), aEnd( nCol2, nRow2, nTab2 ) {} + // TO BE REMOVED + ScRange( const ScTripel& r ) + : aStart( r.nCol, r.nRow, r.nTab ), aEnd( aStart ) {} + ScRange( const ScTripel& r1, const ScTripel& r2 ) + : aStart( r1.nCol, r1.nRow, r1.nTab ), + aEnd( r2.nCol, r2.nRow, r2.nTab ) {} + + ScRange& operator=( const ScRange& r ) + { aStart = r.aStart; aEnd = r.aEnd; return *this; } + inline BOOL In( const ScAddress& ) const; // ist Address& in Range? + inline BOOL In( const ScRange& ) const; // ist Range& in Range? + USHORT Parse( const String&, ScDocument* = NULL ); + USHORT ParseAny( const String&, ScDocument* = NULL ); + inline void GetVars( USHORT& nCol1, USHORT& nRow1, USHORT& nTab1, + USHORT& nCol2, USHORT& nRow2, USHORT& nTab2 ) const; + void Format( String&, USHORT = 0, ScDocument* = NULL ) const; + // Das Doc fuer die maximal definierte Tabelle + BOOL Move( short dx, short dy, short dz, ScDocument* =NULL ); + void Justify(); + void ExtendOne(); + BOOL Intersects( const ScRange& ) const; // ueberschneiden sich zwei Ranges? + inline int operator==( const ScRange& r ) const; + inline int operator!=( const ScRange& r ) const; + inline int operator<( const ScRange& r ) const; + inline int operator<=( const ScRange& r ) const; + inline int operator>( const ScRange& r ) const; + inline int operator>=( const ScRange& r ) const; + friend inline SvStream& operator<< ( SvStream& rStream, const ScRange& rRange ); + friend inline SvStream& operator>> ( SvStream& rStream, ScRange& rRange ); +}; + +inline void ScRange::GetVars( USHORT& nCol1, USHORT& nRow1, USHORT& nTab1, + USHORT& nCol2, USHORT& nRow2, USHORT& nTab2 ) const +{ + aStart.GetVars( nCol1, nRow1, nTab1 ); + aEnd.GetVars( nCol2, nRow2, nTab2 ); +} + +inline int ScRange::operator==( const ScRange& r ) const +{ + return ( (aStart == r.aStart) && (aEnd == r.aEnd) ); +} + +inline int ScRange::operator!=( const ScRange& r ) const +{ + return !operator==( r ); +} + +// Sortierung auf linke obere Ecke, wenn die gleich dann auch rechte untere +inline int ScRange::operator<( const ScRange& r ) const +{ + return aStart < r.aStart || (aStart == r.aStart && aEnd < r.aEnd) ; +} + +inline int ScRange::operator<=( const ScRange& r ) const +{ + return operator<( r ) || operator==( r ); +} + +inline int ScRange::operator>( const ScRange& r ) const +{ + return !operator<=( r ); +} + +inline int ScRange::operator>=( const ScRange& r ) const +{ + return !operator<( r ); +} + +// damit das inlinig funkt die Address reference lassen! +inline BOOL ScRange::In( const ScAddress& rAddr ) const +{ + return + aStart.Col() <= rAddr.Col() && rAddr.Col() <= aEnd.Col() && + aStart.Row() <= rAddr.Row() && rAddr.Row() <= aEnd.Row() && + aStart.Tab() <= rAddr.Tab() && rAddr.Tab() <= aEnd.Tab(); +} + +inline BOOL ScRange::In( const ScRange& r ) const +{ + return + aStart.Col() <= r.aStart.Col() && r.aEnd.Col() <= aEnd.Col() && + aStart.Row() <= r.aStart.Row() && r.aEnd.Row() <= aEnd.Row() && + aStart.Tab() <= r.aStart.Tab() && r.aEnd.Tab() <= aEnd.Tab(); +} + +inline SvStream& operator<< ( SvStream& rStream, const ScRange& rRange ) +{ + rStream << rRange.aStart; + rStream << rRange.aEnd; + return rStream; +} + +inline SvStream& operator>> ( SvStream& rStream, ScRange& rRange ) +{ + rStream >> rRange.aStart; + rStream >> rRange.aEnd; + return rStream; +} + + +class ScRangePair +{ +private: + ScRange aRange[2]; + +public: + ScRangePair() {} + ScRangePair( const ScRangePair& r ) + { aRange[0] = r.aRange[0]; aRange[1] = r.aRange[1]; } + ScRangePair( const ScRange& r1, const ScRange& r2 ) + { aRange[0] = r1; aRange[1] = r2; } + + inline ScRangePair& operator= ( const ScRangePair& r ); + const ScRange& GetRange( USHORT n ) const { return aRange[n]; } + ScRange& GetRange( USHORT n ) { return aRange[n]; } + inline int operator==( const ScRangePair& ) const; + inline int operator!=( const ScRangePair& ) const; + friend inline SvStream& operator<< ( SvStream&, const ScRangePair& ); + friend inline SvStream& operator>> ( SvStream&, ScRange& ); +}; + +inline ScRangePair& ScRangePair::operator= ( const ScRangePair& r ) +{ + aRange[0] = r.aRange[0]; + aRange[1] = r.aRange[1]; + return *this; +} + +inline int ScRangePair::operator==( const ScRangePair& r ) const +{ + return ( (aRange[0] == r.aRange[0]) && (aRange[1] == r.aRange[1]) ); +} + +inline int ScRangePair::operator!=( const ScRangePair& r ) const +{ + return !operator==( r ); +} + +inline SvStream& operator<< ( SvStream& rStream, const ScRangePair& rPair ) +{ + rStream << rPair.GetRange(0); + rStream << rPair.GetRange(1); + return rStream; +} + +inline SvStream& operator>> ( SvStream& rStream, ScRangePair& rPair ) +{ + rStream >> rPair.GetRange(0); + rStream >> rPair.GetRange(1); + return rStream; +} + +//================================================================== + +inline void PutInOrder( USHORT& nStart, USHORT& nEnd ) +{ + if (nEnd < nStart) + { + USHORT nTemp; + nTemp = nEnd; + nEnd = nStart; + nStart = nTemp; + } +} + +//=================================================================== +// Globale Funktionen +//=================================================================== + +BOOL ConvertSingleRef(ScDocument* pDoc, const String& rRefString, USHORT nDefTab, ScRefTripel& rRefTripel); +BOOL ConvertDoubleRef(ScDocument* pDoc, const String& rRefString, USHORT nDefTab, ScRefTripel& rStartRefTripel, ScRefTripel& rEndRefTripel); +String ColToAlpha( const USHORT nCol ); +CharSet GetCharsetValue(const String& rCharSet); + +//=================================================================== +// Funktionsautopilot: Klassen zur Verwaltung der StarCalc-Funktionen +//=================================================================== + +class ScFuncDesc +{ +public: + ScFuncDesc(); + ~ScFuncDesc(); + + String GetSignature () const; + String GetFormulaString ( String** aArgArr ) const; + + USHORT nFIndex; // eindeutiger Funktionsindex + USHORT nCategory; // Kategorie + String* pFuncName; // Funktionsname + String* pFuncDesc; // Funktionsbeschreibung + USHORT nArgCount; // Parameteranzahl + String** aDefArgNames; // Parametername(n) + String** aDefArgDescs; // Parameterbeschreibung(en) + BOOL* aDefArgOpt; // Flags ob Parameter optional ist + USHORT nHelpId; // HilfeId der Funktion +}; + +//================================================================== + +class ScFunctionMgr +{ +public: + ScFunctionMgr(); + ~ScFunctionMgr(); + + ScFuncDesc* Get( const String& rFName ); + ScFuncDesc* Get( USHORT nFIndex ); + ScFuncDesc* First( USHORT nCategory = 0 ); + ScFuncDesc* Next(); + +private: + ScFunctionList* pFuncList; + List* aCatLists[MAX_FUNCCAT]; + List* pCurCatList; +}; + +//================================================================== + +class ScFunctionList +{ +public: + ScFunctionList(); + ~ScFunctionList(); + + ULONG GetCount() const + { return aFunctionList.Count(); } + + ScFuncDesc* GetFunction( ULONG nIndex ) const + { return (ScFuncDesc*)aFunctionList.GetObject( nIndex ); } + + xub_StrLen GetMaxFuncNameLen() const + { return nMaxFuncNameLen; } + +private: + List aFunctionList; + xub_StrLen nMaxFuncNameLen; +}; + +//================================================================== + +#define FUNC_NOTFOUND 0xffff + +class ScFormulaUtil +{ +public: + static BOOL GetNextFunc( const String& rFormula, + BOOL bBack, + xub_StrLen& rFStart, // Ein- und Ausgabe + xub_StrLen* pFEnd = NULL, + ScFuncDesc** ppFDesc = NULL, + String*** pppArgs = NULL ); + + static const ScFuncDesc* GetDefaultFuncDesc(); + + static xub_StrLen GetFunctionStart( const String& rFormula, xub_StrLen nStart, + BOOL bBack, String* pFuncName = NULL ); + + static xub_StrLen GetFunctionEnd ( const String& rFormula, xub_StrLen nStart ); + + static xub_StrLen GetArgStart ( const String& rFormula, xub_StrLen nStart, + USHORT nArg ); + + static String** GetArgStrings ( const String& rFormula, + xub_StrLen nFuncPos, + USHORT nArgs ); + + static void FillArgStrings ( const String& rFormula, + xub_StrLen nFuncPos, + USHORT nArgs, + String** pArgs ); +}; + +//================================================================== +// Notiz +//================================================================== + +class ScPostIt +{ +private: + String aStrText; + String aStrDate; + String aStrAuthor; + BOOL bShown; + +public: + ScPostIt(); + ScPostIt( const String& rText ); + ScPostIt( const String& rText, const String& rDate, const String& rAuthor ); + ScPostIt( const ScPostIt& rCpy ); + ~ScPostIt(); + + const String& GetText() const { return aStrText; } + const String& GetDate() const { return aStrDate; } + const String& GetAuthor() const { return aStrAuthor; } + BOOL IsShown() const { return bShown; } + + void SetText( const String& rNew ) { aStrText = rNew; } + void SetDate( const String& rNew ) { aStrDate = rNew; } + void SetAuthor( const String& rNew ) { aStrAuthor = rNew; } + void SetShown( BOOL bNew ) { bShown = bNew; } + + void Clear() { aStrText.Erase(); aStrDate.Erase(); + aStrAuthor.Erase(); bShown = FALSE; } + void AutoSetText( const String& rNewText ); + + inline const ScPostIt& operator= ( const ScPostIt& rCpy ); + + inline int operator==( const ScPostIt& rPostIt ) const; + int operator!=( const ScPostIt& rPostIt ) const { return !(operator==(rPostIt)); } + + friend inline SvStream& operator>>( SvStream& rStream, ScPostIt& rPostIt ); + friend inline SvStream& operator<<( SvStream& rStream, const ScPostIt& rPostIt ); +}; + +inline const ScPostIt& ScPostIt::operator=( const ScPostIt& rCpy ) +{ + aStrText = rCpy.aStrText; + aStrDate = rCpy.aStrDate; + aStrAuthor = rCpy.aStrAuthor; + bShown = rCpy.bShown; + + return *this; +} + +inline int ScPostIt::operator==( const ScPostIt& rPostIt ) const +{ + return ( aStrText == rPostIt.aStrText + && aStrDate == rPostIt.aStrDate + && aStrAuthor == rPostIt.aStrAuthor + && bShown == rPostIt.bShown ); +} + +inline SvStream& operator>>( SvStream& rStream, ScPostIt& rPostIt ) +{ + // ohne bShown !!! + + CharSet eSet = rStream.GetStreamCharSet(); + rStream.ReadByteString( rPostIt.aStrText, eSet ); + rStream.ReadByteString( rPostIt.aStrDate, eSet ); + rStream.ReadByteString( rPostIt.aStrAuthor, eSet ); + + return rStream; +} + +inline SvStream& operator<<( SvStream& rStream, const ScPostIt& rPostIt ) +{ + // ohne bShown !!! + + CharSet eSet = rStream.GetStreamCharSet(); + rStream.WriteByteString( rPostIt.aStrText, eSet ); + rStream.WriteByteString( rPostIt.aStrDate, eSet ); + rStream.WriteByteString( rPostIt.aStrAuthor, eSet ); + + return rStream; +} + +//================================================================== +// evtl. in dbdata.hxx auslagern (?): + +enum ScQueryOp + { + SC_EQUAL, + SC_LESS, + SC_GREATER, + SC_LESS_EQUAL, + SC_GREATER_EQUAL, + SC_NOT_EQUAL, + SC_TOPVAL, + SC_BOTVAL, + SC_TOPPERC, + SC_BOTPERC + }; + +// ----------------------------------------------------------------------- + +enum ScQueryConnect + { + SC_AND, + SC_OR + }; + +// ----------------------------------------------------------------------- + +enum ScSubTotalFunc + { + SUBTOTAL_FUNC_NONE = 0, + SUBTOTAL_FUNC_AVE = 1, + SUBTOTAL_FUNC_CNT = 2, + SUBTOTAL_FUNC_CNT2 = 3, + SUBTOTAL_FUNC_MAX = 4, + SUBTOTAL_FUNC_MIN = 5, + SUBTOTAL_FUNC_PROD = 6, + SUBTOTAL_FUNC_STD = 7, + SUBTOTAL_FUNC_STDP = 8, + SUBTOTAL_FUNC_SUM = 9, + SUBTOTAL_FUNC_VAR = 10, + SUBTOTAL_FUNC_VARP = 11 + }; + + +#define PIVOT_MAXFUNC 11 +#define PIVOT_FUNC_NONE 0x0000 +#define PIVOT_FUNC_SUM 0x0001 +#define PIVOT_FUNC_COUNT 0x0002 +#define PIVOT_FUNC_AVERAGE 0x0004 +#define PIVOT_FUNC_MAX 0x0008 +#define PIVOT_FUNC_MIN 0x0010 +#define PIVOT_FUNC_PRODUCT 0x0020 +#define PIVOT_FUNC_COUNT_NUM 0x0040 +#define PIVOT_FUNC_STD_DEV 0x0080 +#define PIVOT_FUNC_STD_DEVP 0x0100 +#define PIVOT_FUNC_STD_VAR 0x0200 +#define PIVOT_FUNC_STD_VARP 0x0400 +#define PIVOT_FUNC_AUTO 0x1000 + +// ----------------------------------------------------------------------- + +struct ScSubTotalParam; +struct ScQueryParam; + +// ----------------------------------------------------------------------- + +struct ScSortParam +{ + USHORT nCol1; + USHORT nRow1; + USHORT nCol2; + USHORT nRow2; + BOOL bHasHeader; + BOOL bByRow; + BOOL bCaseSens; + BOOL bUserDef; + USHORT nUserIndex; + BOOL bIncludePattern; + BOOL bInplace; + USHORT nDestTab; + USHORT nDestCol; + USHORT nDestRow; + BOOL bDoSort[MAXSORT]; + USHORT nField[MAXSORT]; + BOOL bAscending[MAXSORT]; + + ScSortParam(); + ScSortParam( const ScSortParam& r ); + // zum Sortieren von Zwischenergebnissen: + ScSortParam( const ScSubTotalParam& rSub, const ScSortParam& rOld ); + ScSortParam( const ScQueryParam&, USHORT nCol ); // TopTen Sortierung + + ScSortParam& operator= ( const ScSortParam& r ); + BOOL operator== ( const ScSortParam& rOther ) const; + void Clear (); + + void MoveToDest(); +}; + +// ----------------------------------------------------------------------- + +/* + * Dialog liefert die ausgezeichneten Feldwerte "leer"/"nicht leer" + * als Konstanten SC_EMPTYFIELDS bzw. SC_NONEMPTYFIELDS in nVal in + * Verbindung mit dem Schalter bQueryByString auf FALSE. + */ + +#define SC_EMPTYFIELDS ((double)0x0042) +#define SC_NONEMPTYFIELDS ((double)0x0043) + +class SearchParam; +class SearchText; + +struct ScQueryEntry +{ + BOOL bDoQuery; + BOOL bQueryByString; + USHORT nField; + ScQueryOp eOp; + ScQueryConnect eConnect; + String* pStr; + double nVal; + SearchParam* pSearchParam; // falls RegExp, nicht gespeichert + SearchText* pSearchText; // falls RegExp, nicht gespeichert + + ScQueryEntry(); + ScQueryEntry(const ScQueryEntry& r); + ~ScQueryEntry(); + + // legt ggbf. pSearchParam und pSearchText an, immer RegExp! + SearchText* GetSearchTextPtr( BOOL bCaseSens ); + + void Clear(); + ScQueryEntry& operator=( const ScQueryEntry& r ); + BOOL operator==( const ScQueryEntry& r ) const; + + void Load(SvStream& rStream); + void Store(SvStream& rStream) const; +}; + +struct ScQueryParam +{ + USHORT nCol1; + USHORT nRow1; + USHORT nCol2; + USHORT nRow2; + USHORT nTab; + BOOL bHasHeader; + BOOL bByRow; + BOOL bInplace; + BOOL bCaseSens; + BOOL bRegExp; + BOOL bDuplicate; + BOOL bDestPers; // nicht gespeichert + USHORT nDestTab; + USHORT nDestCol; + USHORT nDestRow; + +private: + USHORT nEntryCount; + ScQueryEntry* pEntries; + +public: + ScQueryParam(); + ScQueryParam( const ScQueryParam& r ); + ~ScQueryParam(); + + USHORT GetEntryCount() const { return nEntryCount; } + ScQueryEntry& GetEntry(USHORT n) const { return pEntries[n]; } + void Resize(USHORT nNew); + + ScQueryParam& operator= ( const ScQueryParam& r ); + BOOL operator== ( const ScQueryParam& rOther ) const; + void Clear (); + void DeleteQuery( USHORT nPos ); + + void MoveToDest(); + void FillInExcelSyntax(String& aCellStr, USHORT nIndex); + + void Load(SvStream& rStream); + void Store(SvStream& rStream) const; +}; + +// ----------------------------------------------------------------------- + +struct ScSubTotalParam +{ + USHORT nCol1; // Selektierter Bereich + USHORT nRow1; + USHORT nCol2; + USHORT nRow2; + BOOL bRemoveOnly; + BOOL bReplace; // vorhandene Ergebnisse ersetzen + BOOL bPagebreak; // Seitenumbruch bei Gruppenwechsel + BOOL bCaseSens; // Gross-/Kleinschreibung + BOOL bDoSort; // vorher sortieren + BOOL bAscending; // aufsteigend sortieren + BOOL bUserDef; // Benutzer-def. Sort.Reihenfolge + USHORT nUserIndex; // Index auf Liste + BOOL bIncludePattern; // Formate mit sortieren + BOOL bGroupActive[MAXSUBTOTAL]; // aktive Gruppen + USHORT nField[MAXSUBTOTAL]; // zugehoeriges Feld + USHORT nSubTotals[MAXSUBTOTAL]; // Anzahl der SubTotals + USHORT* pSubTotals[MAXSUBTOTAL]; // Array der zu berechnenden Spalten + ScSubTotalFunc* pFunctions[MAXSUBTOTAL]; // Array der zugehoerige Funktionen + + ScSubTotalParam(); + ScSubTotalParam( const ScSubTotalParam& r ); + + ScSubTotalParam& operator= ( const ScSubTotalParam& r ); + BOOL operator== ( const ScSubTotalParam& r ) const; + void Clear (); + void SetSubTotals ( USHORT nGroup, + const USHORT* ptrSubTotals, + const ScSubTotalFunc* ptrFuncions, + USHORT nCount ); +}; + +// ----------------------------------------------------------------------- +class ScArea; + +struct ScConsolidateParam +{ + USHORT nCol; // Cursor Position / + USHORT nRow; // bzw. Anfang des Zielbereiches + USHORT nTab; + ScSubTotalFunc eFunction; // Berechnungsvorschrift + USHORT nDataAreaCount; // Anzahl der Datenbereiche + ScArea** ppDataAreas; // Zeiger-Array auf Datenbereiche + BOOL bByCol; // nach Spalten + BOOL bByRow; // nach Zeilen + BOOL bReferenceData; // Quelldaten referenzieren + + ScConsolidateParam(); + ScConsolidateParam( const ScConsolidateParam& r ); + ~ScConsolidateParam(); + + ScConsolidateParam& operator= ( const ScConsolidateParam& r ); + BOOL operator== ( const ScConsolidateParam& r ) const; + void Clear (); // = ClearDataAreas()+Members + void ClearDataAreas (); + void SetAreas ( ScArea* const* ppAreas, USHORT nCount ); + + void Load( SvStream& rStream ); + void Store( SvStream& rStream ) const; +}; + +// ----------------------------------------------------------------------- +struct PivotField +{ + short nCol; + USHORT nFuncMask; + USHORT nFuncCount; + + PivotField() : + nCol(0),nFuncMask(0),nFuncCount(0) {} + + PivotField( const PivotField& rCpy ) : + nCol(rCpy.nCol),nFuncMask(rCpy.nFuncMask),nFuncCount(rCpy.nFuncCount) {} + + PivotField(short nNewCol, USHORT nNewFuncMask = 0) : + nCol(nNewCol),nFuncMask(nNewFuncMask),nFuncCount(0) {} + + PivotField operator = (const PivotField& r) + { + nCol = r.nCol; + nFuncMask = r.nFuncMask; + nFuncCount = r.nFuncCount; + return *this; + } + + BOOL operator == (const PivotField& r) const + { + return ( (nCol == r.nCol) + && (nFuncMask == r.nFuncMask) + && (nFuncCount == r.nFuncCount)); + } +}; + +// ----------------------------------------------------------------------- +struct ScPivotParam +{ + USHORT nCol; // Cursor Position / + USHORT nRow; // bzw. Anfang des Zielbereiches + USHORT nTab; + LabelData** ppLabelArr; + USHORT nLabels; + PivotField aColArr[PIVOT_MAXFIELD]; + PivotField aRowArr[PIVOT_MAXFIELD]; + PivotField aDataArr[PIVOT_MAXFIELD]; + USHORT nColCount; + USHORT nRowCount; + USHORT nDataCount; + BOOL bIgnoreEmptyRows; + BOOL bDetectCategories; + BOOL bMakeTotalCol; + BOOL bMakeTotalRow; + + ScPivotParam(); + ScPivotParam( const ScPivotParam& r ); + ~ScPivotParam(); + + ScPivotParam& operator= ( const ScPivotParam& r ); + BOOL operator== ( const ScPivotParam& r ) const; + void Clear (); + void ClearLabelData (); + void ClearPivotArrays(); + void SetLabelData ( LabelData** ppLabArr, + USHORT nLab ); + void SetPivotArrays ( const PivotField* pColArr, + const PivotField* pRowArr, + const PivotField* pDataArr, + USHORT nColCnt, + USHORT nRowCnt, + USHORT nDataCnt ); +}; + + +//----------------------------------------------------------------------- + +struct ScSolveParam +{ + ScAddress aRefFormulaCell; + ScAddress aRefVariableCell; + String* pStrTargetVal; + + ScSolveParam(); + ScSolveParam( const ScSolveParam& r ); + ScSolveParam( const ScAddress& rFormulaCell, + const ScAddress& rVariableCell, + const String& rTargetValStr ); + ~ScSolveParam(); + + ScSolveParam& operator= ( const ScSolveParam& r ); + BOOL operator== ( const ScSolveParam& r ) const; +}; + +struct ScTabOpParam +{ + ScRefTripel aRefFormulaCell; + ScRefTripel aRefFormulaEnd; + ScRefTripel aRefRowCell; + ScRefTripel aRefColCell; + BYTE nMode; + + ScTabOpParam() {}; + ScTabOpParam( const ScTabOpParam& r ); + ScTabOpParam( const ScRefTripel& rFormulaCell, + const ScRefTripel& rFormulaEnd, + const ScRefTripel& rRowCell, + const ScRefTripel& rColCell, + BYTE nMd); + ~ScTabOpParam() {}; + + ScTabOpParam& operator= ( const ScTabOpParam& r ); + BOOL operator== ( const ScTabOpParam& r ) const; +}; + +#endif diff --git a/sc/inc/globstr.hrc b/sc/inc/globstr.hrc new file mode 100644 index 000000000000..0a29514e78a2 --- /dev/null +++ b/sc/inc/globstr.hrc @@ -0,0 +1,543 @@ +/************************************************************************* + * + * $RCSfile: globstr.hrc,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef __GLOBSTR_HRC_ +#define __GLOBSTR_HRC_ + + +#define STR_UNDO_DELETECELLS 1 +#define STR_UNDO_CUT 2 +#define STR_UNDO_PASTE 3 +#define STR_UNDO_MOVE 4 +#define STR_UNDO_COPY 5 +#define STR_UNDO_DELETECONTENTS 6 +#define STR_UNDO_SELATTR 7 +#define STR_UNDO_SELATTRLINES 8 +#define STR_UNDO_COLWIDTH 9 +#define STR_UNDO_OPTCOLWIDTH 10 +#define STR_UNDO_ROWHEIGHT 11 +#define STR_UNDO_OPTROWHEIGHT 12 +#define STR_UNDO_AUTOFILL 13 +#define STR_UNDO_MERGE 14 +#define STR_UNDO_REMERGE 15 +#define STR_UNDO_AUTOFORMAT 16 +#define STR_UNDO_REPLACE 17 +#define STR_UNDO_CURSORATTR 18 +#define STR_UNDO_ENTERDATA 19 +#define STR_UNDO_INSCOLBREAK 20 +#define STR_UNDO_DELCOLBREAK 21 +#define STR_UNDO_INSROWBREAK 22 +#define STR_UNDO_DELROWBREAK 23 +#define STR_UNDO_DOOUTLINE 24 +#define STR_UNDO_REDOOUTLINE 25 +#define STR_UNDO_MAKEOUTLINE 26 +#define STR_UNDO_REMAKEOUTLINE 27 +#define STR_UNDO_OUTLINELEVEL 28 +#define STR_UNDO_DOOUTLINEBLK 29 +#define STR_UNDO_REDOOUTLINEBLK 30 +#define STR_UNDO_REMOVEALLOTLNS 31 +#define STR_UNDO_AUTOOUTLINE 32 +#define STR_UNDO_SUBTOTALS 33 +#define STR_UNDO_SORT 34 +#define STR_UNDO_QUERY 35 +#define STR_UNDO_DBDATA 36 +#define STR_UNDO_IMPORTDATA 37 +#define STR_UNDO_REPEATDB 38 + +#define STR_DB_NONAME 39 + +#define STR_MSSG_DOSUBTOTALS_0 40 +#define STR_MSSG_DOSUBTOTALS_1 41 +#define STR_MSSG_DOSUBTOTALS_2 42 +#define STR_MSSG_REPEATDB_0 43 +#define STR_MSSG_MAKEAUTOFILTER_0 44 +#define STR_MSSG_IMPORTDATA_0 45 +#define STR_MSSG_MAKEOUTLINE_0 46 +#define STR_MSSG_REMOVEOUTLINE_0 47 +#define STR_MSSG_PASTEFROMCLIP_0 48 +#define STR_MSSG_PASTEFROMCLIP_1 49 +#define STR_MSSG_MOVEBLOCKTO_0 50 +#define STR_MSSG_APPLYPATTLINES_0 51 +#define STR_MSSG_INSERTCELLS_0 52 +#define STR_MSSG_DELETECELLS_0 53 +#define STR_MSSG_MERGECELLS_0 54 +#define STR_MSSG_SEARCHANDREPLACE_0 55 +#define STR_MSSG_SOLVE_0 56 +#define STR_MSSG_SOLVE_1 57 +#define STR_MSSG_SOLVE_2 58 +#define STR_MSSG_SOLVE_3 59 +#define STR_MSSG_SOLVE_4 60 +#define STR_MSSG_SOLVE_5 61 +#define STR_MSSG_SOLVE_6 62 +// unused: 63 + +#define STR_TABLE_GESAMTERGEBNIS 64 +#define STR_TABLE_ERGEBNIS 65 +#define STR_UNDO_SPELLING 66 +#define STR_TABLE_UND 67 +#define STR_TABLE_ODER 68 +#define STR_UNDO_INSERTCELLS 69 +#define STR_TABLE_DEF 70 +//#define STR_STYLENAME_STANDARD 71 s.u. +#define STR_MOVE_TO_END 72 +#define STR_BOX_YNI 73 +#define STR_NO_REF_TABLE 74 + +#define STR_PIVOTFUNC_SUM 75 // pivot.cxx +#define STR_PIVOTFUNC_COUNT 76 +#define STR_PIVOTFUNC_AVG 77 +#define STR_PIVOTFUNC_MAX 78 +#define STR_PIVOTFUNC_MIN 79 +#define STR_PIVOTFUNC_PROD 80 +#define STR_PIVOTFUNC_COUNT2 90 +#define STR_PIVOTFUNC_STDDEV 91 +#define STR_PIVOTFUNC_STDDEV2 92 +#define STR_PIVOTFUNC_VAR 93 +#define STR_PIVOTFUNC_VAR2 94 +#define STR_PIVOT_TOTAL 95 +#define STR_PIVOT_DATA 96 + +#define STR_PIVOT_INVALID_DBAREA 97 // tabvwsh3.cxx + +#define STR_TABLE 98 +#define STR_COLUMN 99 +#define STR_ROW 100 +#define STR_LOAD_DOC 101 +#define STR_SAVE_DOC 102 + +#define STR_ERR_INVALID_TABREF 103 +#define STR_AREA_ALREADY_INSERTED 104 +#define STR_INVALID_TABREF 105 +#define STR_INVALID_QUERYAREA 106 + +#define STR_REIMPORT_EMPTY 107 +#define STR_NOMULTISELECT 108 +#define STR_FILL_SERIES_PROGRESS 109 // documen3.cxx + +#define STR_UNKNOWN_FILTER 110 + +#define STR_DATABASE_NOTFOUND 111 +#define STR_DATABASE_ABORTED 112 + +#define STR_UNDO_PRINTRANGES 113 + +#define STR_UNDO_DEC_INDENT 114 +#define STR_UNDO_INC_INDENT 115 +#define STR_UNDO_THESAURUS 116 + +#define STR_FILL_TAB 117 +#define STR_NO_VALUE 118 +#define STR_UPDATE_SCENARIO 119 +#define STR_ERR_NEWSCENARIO 120 +#define STR_SCENARIO 121 +#define STR_PIVOT_TABLE 122 +#define STR_NEWTABNAMENOTUNIQUE 123 + +#define STR_FUN_TEXT_SUM 124 +#define STR_FUN_TEXT_COUNT 125 +#define STR_FUN_TEXT_AVG 126 +#define STR_FUN_TEXT_MAX 127 +#define STR_FUN_TEXT_MIN 128 +#define STR_FUN_TEXT_PRODUCT 129 +#define STR_FUN_TEXT_STDDEV 130 +#define STR_FUN_TEXT_VAR 131 +#define STR_DOC_STAT 132 + +//#define STR_STYLENAME_RESULT 133 s.u. + +#define STR_DBNAME_IMPORT 134 + +#define STR_NOCHARTATCURSOR 135 +#define STR_NOAREASELECTED 136 +#define STR_INVALIDTABNAME 137 + +#define STR_PIVOT_NOTFOUND 138 +#define STR_ERROR_STR 139 +#define STR_NV_STR 140 +#define STR_EMPTYDATA 141 +#define STR_PIVOT_NODATA 142 +#define STR_PIVOT_MOVENOTALLOWED 143 + +#define STR_PRINT_INVALID_AREA 144 + +#define STR_PAGESTYLE 145 +#define STR_HEADER 146 +#define STR_FOOTER 147 + +#define STR_TEXTATTRS 148 + +#define STR_HFCMD_DELIMITER 149 +#define HFCMD_START 150 +#define STR_HFCMD_PAGE 150 +#define STR_HFCMD_PAGES 151 +#define STR_HFCMD_DATE 152 +#define STR_HFCMD_TIME 153 +#define STR_HFCMD_FILE 154 +#define STR_HFCMD_TABLE 155 +#define HFCMD_END 155 + +#define STR_PROTECTIONERR 156 + +#define STR_PAGEHEADER 157 +#define STR_PAGEFOOTER 158 +#define STR_PAGE 159 +#define STR_LONG_ERR_ILL_ARG 160 +#define STR_LONG_ERR_ILL_PAR 161 +#define STR_LONG_ERR_ILL_FPO 162 +#define STR_LONG_ERR_ILL_CHAR 163 +#define STR_LONG_ERR_ILL_SEP 164 +#define STR_LONG_ERR_PAIR 165 +#define STR_LONG_ERR_OP_EXP 166 +#define STR_LONG_ERR_VAR_EXP 167 +#define STR_LONG_ERR_CODE_OVF 168 +#define STR_LONG_ERR_STR_OVF 169 +#define STR_LONG_ERR_STACK_OVF 170 +#define STR_LONG_ERR_SYNTAX 171 +#define STR_LONG_ERR_CIRC_REF 172 +#define STR_LONG_ERR_NO_NAME 173 +#define STR_LONG_ERR_NO_REF 174 +#define STR_LONG_ERR_NO_CONV 175 +#define STR_LONG_ERR_NO_VALUE 176 +#define STR_LONG_ERR_NV 177 + +#define STR_GRIDCOLOR 178 +#define STR_MERGE_NOTEMPTY 179 +#define STR_CELL_FILTER 180 + +#define STR_TARGETNOTFOUND 181 + +#define STR_INVALID_EPS 182 +#define STR_TABLE_OP 183 // documen4.cxx +#define STR_UNDO_TABOP 184 + +#define STR_INVALID_AFNAME 185 + +#define STR_AREA 186 +#define STR_YES 187 +#define STR_NO 188 +#define STR_PROTECTION 189 +#define STR_FORMULAS 190 +#define STR_HIDE 191 +#define STR_PRINT 192 + +#define STR_INVALID_AFAREA 193 + +#define STR_CASCADE 194 // Funktionsautopilot +#define STR_OPTIONAL 195 +#define STR_REQUIRED 196 +#define STR_EDITFUNCTION 197 +#define STR_INVALID 198 + +#define STR_NOTES 199 +#define STR_QUERY_DELTAB 200 + +#define STR_UNDO_DETREFRESH 201 + +#define STR_UNDO_SHOWNOTE 202 +#define STR_UNDO_HIDENOTE 203 +#define STR_UNDO_DRAGDROP 204 + +#define STR_EXPORT_ASCII_WARNING 205 +#define STR_IMPORT_ERROR 206 +#define STR_IMPORT_ASCII 207 +#define STR_IMPORT_LOTUS 208 +#define STR_IMPORT_DBF 209 +#define STR_EXPORT_ASCII 210 + +#define STR_STYLENAME_STANDARD 71 +#define STR_STYLENAME_RESULT 133 +#define STR_STYLENAME_RESULT1 211 +#define STR_STYLENAME_HEADLINE 212 +#define STR_STYLENAME_HEADLINE1 213 +#define STR_STYLENAME_REPORT 214 +#define STR_STYLENAME_REPORT1 215 + +#define STR_PIVOT_ERROR 216 +#define STR_PIVOT_PROGRESS 217 +#define STR_IMPORT_EXCEL_WARNING 218 +#define STR_SPELLING_STOP_OK 219 +#define STR_THESAURUS_NO_STRING 220 +#define STR_SPELLING_BEGIN_TAB 221 +#define STR_SPELLING_NO_LANG 222 // kann spaeter wieder raus + +#define STR_UNDO_GRAFEDIT 223 + +#define STR_NOLANGERR 224 + +#define STR_UNDO_INSERT_TAB 225 +#define STR_UNDO_DELETE_TAB 226 +#define STR_UNDO_RENAME_TAB 227 +#define STR_UNDO_MOVE_TAB 228 +#define STR_UNDO_COPY_TAB 229 +#define STR_UNDO_APPEND_TAB 230 + +#define STR_CHART_MAINTITLE 231 +#define STR_CHART_SUBTITLE 232 +#define STR_CHART_XTITLE 233 +#define STR_CHART_YTITLE 234 +#define STR_CHART_ZTITLE 235 + +#define STR_ABSREFLOST 236 +#define STR_NAMECONFLICT 237 + +#define STR_ERR_AUTOFILTER 238 +#define STR_MSSG_SEARCHANDREPLACE_1 239 +#define STR_MSSG_SEARCHANDREPLACE_2 240 +#define STR_MSSG_SEARCHANDREPLACE_3 241 + +#define STR_CREATENAME_REPLACE 242 +#define STR_CREATENAME_MARKERR 243 + +#define STR_UNDO_LISTNAMES 244 +#define STR_UNDO_PIVOT_NEW 245 +#define STR_UNDO_PIVOT_MODIFY 246 +#define STR_UNDO_PIVOT_DELETE 247 +#define STR_UNDO_CONSOLIDATE 248 +#define STR_UNDO_USESCENARIO 249 +#define STR_UNDO_MAKESCENARIO 250 + +#define STR_CONSOLIDATE_ERR1 251 +#define STR_SCENARIO_NOTFOUND 252 + +#define STR_UNDO_APPLYCELLSTYLE 253 + +#define STR_UNDO_DETADDPRED 254 +#define STR_UNDO_DETDELPRED 255 +#define STR_UNDO_DETADDSUCC 256 +#define STR_UNDO_DETDELSUCC 257 +#define STR_UNDO_DETADDERROR 258 +#define STR_UNDO_DETDELALL 259 + +#define STR_QUERY_DELENTRY 260 + +#define STR_VOBJ_OBJECT 261 +#define STR_VOBJ_CHART 262 +#define STR_VOBJ_DRAWINGS 263 +#define STR_VOBJ_MODE_SHOW 264 +#define STR_VOBJ_MODE_HIDE 265 +#define STR_VOBJ_MODE_DUMMY 266 + +#define STR_SCATTR_PAGE_TOPDOWN 267 +#define STR_SCATTR_PAGE_LEFTRIGHT 268 +#define STR_SCATTR_PAGE_NOTES 269 +#define STR_SCATTR_PAGE_GRID 270 +#define STR_SCATTR_PAGE_HEADERS 271 +#define STR_SCATTR_PAGE_FORMULAS 272 +#define STR_SCATTR_PAGE_NULLVALS 273 +#define STR_SCATTR_PAGE_PRINTDIR 274 +#define STR_SCATTR_PAGE_FIRSTPAGENO 275 +#define STR_SCATTR_PAGE_SCALE 276 +#define STR_SCATTR_PAGE_SCALETOPAGES 277 + +#define STR_NOREF_STR 278 +#define STR_ODER_SO 279 + +#define STR_UNDO_CHARTDATA 280 +#define STR_UNDO_ORIGINALSIZE 281 + +#define STR_LINKERROR 282 +#define STR_LINKERRORFILE 283 +#define STR_LINKERRORTAB 284 +#define STR_UNDO_UPDATELINK 285 + +#define STR_IMPORT_REPLACE 286 + +#define STR_UNDO_REMOVELINK 287 + +#define STR_OVERVIEW 288 +#define STR_DOC_INFO 289 +#define STR_DOC_CREATED 290 +#define STR_DOC_MODIFIED 291 +#define STR_DOC_PRINTED 292 +#define STR_DOC_THEME 293 +#define STR_DOC_KEYWORDS 318 +#define STR_DOC_COMMENT 294 +#define STR_BY 295 +#define STR_ON 296 + +#define STR_RELOAD_TABLES 297 + +#define STR_FILTER_TOOMANY 298 + +#define STR_UNDO_ENTERMATRIX 299 + +#define STR_INSERT_FULL 300 +#define STR_TABINSERT_ERROR 301 +#define STR_PASTE_ERROR 302 +#define STR_PASTE_FULL 303 + +#define STR_ERR_INVALID_AREA 304 + +#define STR_IMPORT_DIF 305 +#define STR_EXPORT_DIF 306 + +#define STR_ERR_NOREF 307 +#define STR_FUN_TEXT_COUNT2 308 +#define STR_NO_NAME_REF 309 + +#define STR_MATRIXFRAGMENTERR 310 + +#define STR_UNDO_SHOWTAB 311 +#define STR_UNDO_HIDETAB 312 +#define STR_UNDO_INSERTAREALINK 313 + +#define STR_REIMPORT_AFTER_LOAD 314 + +#define STR_DETINVALID_OVERFLOW 315 +#define STR_GRAPHICNAME 316 +#define STR_INVALIDNAME 317 +// 318 ist oben +#define STR_ERR_LINKOVERLAP 319 + +#define STR_VALID_MACRONOTFOUND 320 +#define STR_VALID_DEFERROR 321 + +#define STR_UNDO_DETINVALID 322 + +#define STR_PROGRESS_CALCULATING 323 +#define STR_PROGRESS_SORTING 324 +#define STR_PROGRESS_HEIGHTING 325 + +#define STR_QUICKHELP_DELETE 326 + +#define STR_FUNCTIONLIST_MORE 327 + +#define STR_PIVOT_STYLE_INNER 328 +#define STR_PIVOT_STYLE_RESULT 329 +#define STR_PIVOT_STYLE_CATEGORY 330 +#define STR_PIVOT_STYLE_TITLE 331 +#define STR_PIVOT_STYLE_FIELDNAME 332 +#define STR_PIVOT_STYLE_TOP 333 + +#define STR_OPERATION_FILTER 334 +#define STR_OPERATION_SORT 335 +#define STR_OPERATION_SUBTOTAL 336 +#define STR_OPERATION_NONE 337 + +#define STR_UNDO_PROTECT_TAB 338 +#define STR_UNDO_UNPROTECT_TAB 339 +#define STR_UNDO_PROTECT_DOC 340 +#define STR_UNDO_UNPROTECT_DOC 341 + +#define STR_PROGRESS_IMPORT 342 + +#define STR_SORT_ERR_MERGED 343 + +#define STR_TIP_WIDTH 344 +#define STR_TIP_HEIGHT 345 +#define STR_TIP_HIDE 346 + +#define STR_UNDO_REMOVEBREAKS 347 +#define STR_UNDO_PRINTSCALE 348 +#define STR_UNDO_DRAG_BREAK 349 + +#define STR_QUICKHELP_REF 350 + +#define STR_PIVOT_OVERLAP 351 +#define STR_PIVOT_NOTEMPTY 352 + +#define STR_QUERY_NOTFOUND 353 + +#define STR_ERR_INSERTOBJ 354 + +#define STR_PROGRESS_COMPARING 355 + +#define STR_CHANGED_BLANK 356 +#define STR_CHANGED_CELL 357 +#define STR_CHANGED_INSERT 358 +#define STR_CHANGED_DELETE 359 +#define STR_CHANGED_MOVE 360 + +#define STR_QUERY_DELSCENARIO 361 +#define STR_UNDO_EDITSCENARIO 362 + +#define STR_END_REDLINING_TITLE 363 +#define STR_END_REDLINING 364 + +#define STR_UNDO_EDITNOTE 365 +#define STR_TABREMOVE_ERROR 366 +#define STR_CLOSE_ERROR_LINK 367 +#define STR_UNDO_RANGENAMES 368 + +#define STR_MSSG_SEARCHANDREPLACE_4 369 +#define STR_MSSG_SEARCHANDREPLACE_5 370 + +#define STR_UNDO_RESIZEMATRIX 371 +#define STR_TIP_RESIZEMATRIX 372 + +#define STR_READONLYERR 373 + +#define STR_PASTE_BIGGER 374 + +#define STR_MACRO_WARNING 375 + +#define STR_EXPORT_DBF 376 + +#define STR_UNDO_APPLYPAGESTYLE 377 +#define STR_UNDO_EDITCELLSTYLE 378 +#define STR_UNDO_EDITPAGESTYLE 379 + +#define STR_COUNT 379 + + + +#endif + diff --git a/sc/inc/hints.hxx b/sc/inc/hints.hxx new file mode 100644 index 000000000000..d135c09ffe8b --- /dev/null +++ b/sc/inc/hints.hxx @@ -0,0 +1,199 @@ +/************************************************************************* + * + * $RCSfile: hints.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_HINTS_HXX +#define SC_HINTS_HXX + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" +#endif + +#ifndef _SFXHINT_HXX //autogen +#include <svtools/hint.hxx> +#endif + +// --------------------------------------------------------------------------- + +class ScPaintHint : public SfxHint +{ + ScRange aRange; + USHORT nParts; + BOOL bPrint; // Flag, ob auch Druck/Vorschau betroffen ist + +public: + TYPEINFO(); + ScPaintHint(); + ScPaintHint( const ScRange& rRng, USHORT nPaint = PAINT_ALL ); + ~ScPaintHint(); + + void SetPrintFlag(BOOL bSet) { bPrint = bSet; } + + const ScRange& GetRange() const { return aRange; } + USHORT GetStartCol() const { return aRange.aStart.Col(); } + USHORT GetStartRow() const { return aRange.aStart.Row(); } + USHORT GetStartTab() const { return aRange.aStart.Tab(); } + USHORT GetEndCol() const { return aRange.aEnd.Col(); } + USHORT GetEndRow() const { return aRange.aEnd.Row(); } + USHORT GetEndTab() const { return aRange.aEnd.Tab(); } + USHORT GetParts() const { return nParts; } + BOOL GetPrintFlag() const { return bPrint; } +}; + + +class ScUpdateRefHint : public SfxHint +{ + UpdateRefMode eUpdateRefMode; + ScRange aRange; + short nDx; + short nDy; + short nDz; + +public: + TYPEINFO(); + + ScUpdateRefHint( UpdateRefMode eMode, const ScRange& rR, + short nX, short nY, short nZ ); + ~ScUpdateRefHint(); + + UpdateRefMode GetMode() const { return eUpdateRefMode; } + const ScRange& GetRange() const { return aRange; } + short GetDx() const { return nDx; } + short GetDy() const { return nDy; } + short GetDz() const { return nDz; } +}; + + +#define SC_POINTERCHANGED_NUMFMT 1 + +class ScPointerChangedHint : public SfxHint +{ + USHORT nFlags; + +public: + TYPEINFO(); + + ScPointerChangedHint( USHORT nF ); + ~ScPointerChangedHint(); + + USHORT GetFlags() const { return nFlags; } +}; + + +//! move ScLinkRefreshedHint to a different file? + +#define SC_LINKREFTYPE_NONE 0 +#define SC_LINKREFTYPE_SHEET 1 +#define SC_LINKREFTYPE_AREA 2 +#define SC_LINKREFTYPE_DDE 3 + +class ScLinkRefreshedHint : public SfxHint +{ + USHORT nLinkType; // SC_LINKREFTYPE_... + String aUrl; // used for sheet links + String aDdeAppl; // used for dde links: + String aDdeTopic; + String aDdeItem; + BYTE nDdeMode; + ScAddress aDestPos; // used to identify area links + //! also use source data for area links? + +public: + TYPEINFO(); + ScLinkRefreshedHint(); + ~ScLinkRefreshedHint(); + + void SetSheetLink( const String& rSourceUrl ); + void SetDdeLink( const String& rA, const String& rT, const String& rI, BYTE nM ); + void SetAreaLink( const ScAddress& rPos ); + + USHORT GetLinkType() const { return nLinkType; } + const String& GetUrl() const { return aUrl; } + const String& GetDdeAppl() const { return aDdeAppl; } + const String& GetDdeTopic() const { return aDdeTopic; } + const String& GetDdeItem() const { return aDdeItem; } + BYTE GetDdeMode() const { return nDdeMode; } + const ScAddress& GetDestPos() const { return aDestPos; } +}; + + +//! move ScAutoStyleHint to a different file? + +class ScAutoStyleHint : public SfxHint +{ + ScRange aRange; + String aStyle1; + String aStyle2; + ULONG nTimeout; + +public: + TYPEINFO(); + ScAutoStyleHint( const ScRange& rR, const String& rSt1, + ULONG nT, const String& rSt2 ); + ~ScAutoStyleHint(); + + const ScRange& GetRange() const { return aRange; } + const String& GetStyle1() const { return aStyle1; } + UINT32 GetTimeout() const { return nTimeout; } + const String& GetStyle2() const { return aStyle2; } +}; + + +#endif diff --git a/sc/inc/htmlimp.hxx b/sc/inc/htmlimp.hxx new file mode 100644 index 000000000000..51760fb5ab73 --- /dev/null +++ b/sc/inc/htmlimp.hxx @@ -0,0 +1,78 @@ +/************************************************************************* + * + * $RCSfile: htmlimp.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_HTMLIMP_HXX +#define SC_HTMLIMP_HXX + +#include "eeimport.hxx" + +class ScHTMLParser; + +class ScHTMLImport : public ScEEImport +{ +public: + ScHTMLImport( ScDocument* pDoc, const ScRange& rRange ); + ~ScHTMLImport(); + const ScHTMLParser* GetParser() const { return (ScHTMLParser*)pParser; } +}; + + +#endif diff --git a/sc/inc/indexmap.hxx b/sc/inc/indexmap.hxx new file mode 100644 index 000000000000..692bc969e73f --- /dev/null +++ b/sc/inc/indexmap.hxx @@ -0,0 +1,92 @@ +/************************************************************************* + * + * $RCSfile: indexmap.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef _SC_INDEXMAP_HXX +#define _SC_INDEXMAP_HXX + + +#ifndef _SOLAR_H //autogen wg. USHORT +#include <tools/solar.h> +#endif + + +class ScIndexMap +{ + // not implemented + ScIndexMap( const ScIndexMap& ); + ScIndexMap& operator=( const ScIndexMap& ); + +private: + USHORT* pMap; + USHORT nCount; + +public: + ScIndexMap( USHORT nEntries ); + ~ScIndexMap(); + + void SetPair( USHORT nEntry, USHORT nIndex1, USHORT nIndex2 ); + /// returns nIndex2 if found, else nIndex1 + USHORT Find( USHORT nIndex1 ) const; +}; + + +#endif // _SC_INDEXMAP_HXX + diff --git a/sc/inc/inputopt.hxx b/sc/inc/inputopt.hxx new file mode 100644 index 000000000000..8053e42a488f --- /dev/null +++ b/sc/inc/inputopt.hxx @@ -0,0 +1,140 @@ +/************************************************************************* + * + * $RCSfile: inputopt.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_INPUTOPT_HXX +#define SC_INPUTOPT_HXX + + +#ifndef _UTL_CONFIGITEM_HXX_ +#include <unotools/configitem.hxx> +#endif + +#ifndef _SOLAR_H +#include <tools/solar.h> +#endif + +class SvStream; + + +class ScInputOptions +{ +private: + USHORT nMoveDir; // enum ScDirection + BOOL bMoveSelection; + BOOL bEnterEdit; + BOOL bExtendFormat; + BOOL bRangeFinder; + BOOL bExpandRefs; + BOOL bMarkHeader; + BOOL bUseTabCol; + +public: + ScInputOptions(); + ScInputOptions( const ScInputOptions& rCpy ); + ~ScInputOptions(); + + void SetDefaults(); + + void SetMoveDir(USHORT nNew) { nMoveDir = nNew; } + USHORT GetMoveDir() const { return nMoveDir; } + void SetMoveSelection(BOOL bSet) { bMoveSelection = bSet; } + BOOL GetMoveSelection() const { return bMoveSelection; } + void SetEnterEdit(BOOL bSet) { bEnterEdit = bSet; } + BOOL GetEnterEdit() const { return bEnterEdit; } + void SetExtendFormat(BOOL bSet) { bExtendFormat = bSet; } + BOOL GetExtendFormat() const { return bExtendFormat; } + void SetRangeFinder(BOOL bSet) { bRangeFinder = bSet; } + BOOL GetRangeFinder() const { return bRangeFinder; } + void SetExpandRefs(BOOL bSet) { bExpandRefs = bSet; } + BOOL GetExpandRefs() const { return bExpandRefs; } + void SetMarkHeader(BOOL bSet) { bMarkHeader = bSet; } + BOOL GetMarkHeader() const { return bMarkHeader; } + void SetUseTabCol(BOOL bSet) { bUseTabCol = bSet; } + BOOL GetUseTabCol() const { return bUseTabCol; } + + const ScInputOptions& operator= ( const ScInputOptions& rOpt ); + friend SvStream& operator>> ( SvStream& rStream, ScInputOptions& rOpt ); + friend SvStream& operator<< ( SvStream& rStream, const ScInputOptions& rOpt ); +}; + + +//================================================================== +// CfgItem fuer Eingabe-Optionen +//================================================================== + +class ScInputCfg : public ScInputOptions, + public utl::ConfigItem +{ + com::sun::star::uno::Sequence<rtl::OUString> GetPropertyNames(); + +public: + ScInputCfg(); + + void SetOptions( const ScInputOptions& rNew ); + void OptionsChanged(); // after direct access to SetOptions base class + + virtual void Notify( const com::sun::star::uno::Sequence<rtl::OUString>& aPropertyNames ); + virtual void Commit(); +}; + + +#endif + diff --git a/sc/inc/linkuno.hxx b/sc/inc/linkuno.hxx new file mode 100644 index 000000000000..f9be747c7b6d --- /dev/null +++ b/sc/inc/linkuno.hxx @@ -0,0 +1,538 @@ +/************************************************************************* + * + * $RCSfile: linkuno.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_LINKUNO_HXX +#define SC_LINKUNO_HXX + +#ifndef _SFXLSTNER_HXX //autogen +#include <svtools/lstner.hxx> +#endif + +#ifndef _SFX_ITEMPROP_HXX +#include <svtools/itemprop.hxx> +#endif + +#ifndef _COM_SUN_STAR_SHEET_XDDELINK_HPP_ +#include <com/sun/star/sheet/XDDELink.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XAREALINK_HPP_ +#include <com/sun/star/sheet/XAreaLink.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XAREALINKS_HPP_ +#include <com/sun/star/sheet/XAreaLinks.hpp> +#endif +#ifndef _COM_SUN_STAR_UTIL_XREFRESHABLE_HPP_ +#include <com/sun/star/util/XRefreshable.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_ +#include <com/sun/star/lang/XServiceInfo.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_ +#include <com/sun/star/beans/XPropertySet.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XENUMERATIONACCESS_HPP_ +#include <com/sun/star/container/XEnumerationAccess.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XNAMEACCESS_HPP_ +#include <com/sun/star/container/XNameAccess.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XINDEXACCESS_HPP_ +#include <com/sun/star/container/XIndexAccess.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XNAMED_HPP_ +#include <com/sun/star/container/XNamed.hpp> +#endif + +#ifndef _CPPUHELPER_IMPLBASE3_HXX_ +#include <cppuhelper/implbase3.hxx> +#endif +#ifndef _CPPUHELPER_IMPLBASE4_HXX_ +#include <cppuhelper/implbase4.hxx> +#endif + + +class ScAreaLink; +class ScDocShell; +class ScTableLink; + +typedef ::com::sun::star::uno::Reference< + ::com::sun::star::util::XRefreshListener >* XRefreshListenerPtr; +SV_DECL_PTRARR_DEL( XRefreshListenerArr_Impl, XRefreshListenerPtr, 4, 4 ); + + + +class ScSheetLinkObj : public cppu::WeakImplHelper4< + com::sun::star::container::XNamed, + com::sun::star::util::XRefreshable, + com::sun::star::beans::XPropertySet, + com::sun::star::lang::XServiceInfo >, + public SfxListener +{ +private: + SfxItemPropertySet aPropSet; + ScDocShell* pDocShell; + String aFileName; + XRefreshListenerArr_Impl aRefreshListeners; + + ScTableLink* GetLink_Impl() const; + void Refreshed_Impl(); + +public: + ScSheetLinkObj(ScDocShell* pDocSh, const String& rName); + virtual ~ScSheetLinkObj(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // XNamed + virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XRefreshable + virtual void SAL_CALL refresh() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addRefreshListener( const ::com::sun::star::uno::Reference< + ::com::sun::star::util::XRefreshListener >& l ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeRefreshListener( const ::com::sun::star::uno::Reference< + ::com::sun::star::util::XRefreshListener >& l ) + throw(::com::sun::star::uno::RuntimeException); + + // XPropertySet + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > + SAL_CALL getPropertySetInfo( ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Any& aValue ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::beans::PropertyVetoException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( + const ::rtl::OUString& PropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& xListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // aus get/setPropertyValue gerufen: + ::rtl::OUString getFileName(void) const; + void setFileName(const ::rtl::OUString& FileName); + ::rtl::OUString getFilter(void) const; + void setFilter(const ::rtl::OUString& Filter); + ::rtl::OUString getFilterOptions(void) const; + void setFilterOptions(const ::rtl::OUString& FilterOptions); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScSheetLinksObj : public cppu::WeakImplHelper4< + com::sun::star::container::XNameAccess, + com::sun::star::container::XEnumerationAccess, + com::sun::star::container::XIndexAccess, + com::sun::star::lang::XServiceInfo >, + public SfxListener +{ +private: + ScDocShell* pDocShell; + + ScSheetLinkObj* GetObjectByIndex_Impl(INT32 nIndex); + ScSheetLinkObj* GetObjectByName_Impl(const ::rtl::OUString& aName); + +public: + ScSheetLinksObj(ScDocShell* pDocSh); + virtual ~ScSheetLinksObj(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // XNameAccess + virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XIndexAccess + virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) + throw(::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XEnumerationAccess + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL + createEnumeration() throw(::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScAreaLinkObj : public cppu::WeakImplHelper4< + com::sun::star::sheet::XAreaLink, + com::sun::star::util::XRefreshable, + com::sun::star::beans::XPropertySet, + com::sun::star::lang::XServiceInfo >, + public SfxListener +{ +private: + SfxItemPropertySet aPropSet; + ScDocShell* pDocShell; + USHORT nPos; + XRefreshListenerArr_Impl aRefreshListeners; + + void Modify_Impl( const ::rtl::OUString* pNewFile, const ::rtl::OUString* pNewFilter, + const ::rtl::OUString* pNewOptions, const ::rtl::OUString* pNewSource, + const com::sun::star::table::CellRangeAddress* pNewDest ); + void Refreshed_Impl(); + +public: + ScAreaLinkObj(ScDocShell* pDocSh, USHORT nP); + virtual ~ScAreaLinkObj(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // XRefreshable + virtual void SAL_CALL refresh() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addRefreshListener( const ::com::sun::star::uno::Reference< + ::com::sun::star::util::XRefreshListener >& l ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeRefreshListener( const ::com::sun::star::uno::Reference< + ::com::sun::star::util::XRefreshListener >& l ) + throw(::com::sun::star::uno::RuntimeException); + + // XPropertySet + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > + SAL_CALL getPropertySetInfo( ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Any& aValue ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::beans::PropertyVetoException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( + const ::rtl::OUString& PropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& xListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // aus get/setPropertyValue gerufen: + ::rtl::OUString getFileName(void) const; + void setFileName(const ::rtl::OUString& FileName); + ::rtl::OUString getFilter(void) const; + void setFilter(const ::rtl::OUString& Filter); + ::rtl::OUString getFilterOptions(void) const; + void setFilterOptions(const ::rtl::OUString& FilterOptions); + + // XAreaLink + virtual ::rtl::OUString SAL_CALL getSourceArea() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setSourceArea( const ::rtl::OUString& aSourceArea ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::table::CellRangeAddress SAL_CALL getDestArea() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setDestArea( const ::com::sun::star::table::CellRangeAddress& aDestArea ) + throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScAreaLinksObj : public cppu::WeakImplHelper3< + com::sun::star::sheet::XAreaLinks, + com::sun::star::container::XEnumerationAccess, + com::sun::star::lang::XServiceInfo >, + public SfxListener +{ +private: + ScDocShell* pDocShell; + + ScAreaLinkObj* GetObjectByIndex_Impl(INT32 nIndex); + +public: + ScAreaLinksObj(ScDocShell* pDocSh); + virtual ~ScAreaLinksObj(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // XAreaLinks + virtual void SAL_CALL insertAtPosition( const ::com::sun::star::table::CellAddress& aDestPos, + const ::rtl::OUString& aFileName, + const ::rtl::OUString& aSourceArea, + const ::rtl::OUString& aFilter, + const ::rtl::OUString& aFilterOptions ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeByIndex( sal_Int32 nIndex ) + throw(::com::sun::star::uno::RuntimeException); + + // XIndexAccess + virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) + throw(::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XEnumerationAccess + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL + createEnumeration() throw(::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +//! order of XNamed and DDELink changed to avoid "duplicate comdat" symbols + +class ScDDELinkObj : public cppu::WeakImplHelper4< + com::sun::star::sheet::XDDELink, + com::sun::star::container::XNamed, + com::sun::star::util::XRefreshable, + com::sun::star::lang::XServiceInfo >, + public SfxListener +{ +private: + ScDocShell* pDocShell; + String aAppl; + String aTopic; + String aItem; + XRefreshListenerArr_Impl aRefreshListeners; + + void Refreshed_Impl(); + +public: + ScDDELinkObj(ScDocShell* pDocSh, const String& rA, + const String& rT, const String& rI); + virtual ~ScDDELinkObj(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // XNamed + virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XDDELink + virtual ::rtl::OUString SAL_CALL getApplication() throw(::com::sun::star::uno::RuntimeException); + virtual ::rtl::OUString SAL_CALL getTopic() throw(::com::sun::star::uno::RuntimeException); + virtual ::rtl::OUString SAL_CALL getItem() throw(::com::sun::star::uno::RuntimeException); + + // XRefreshable + virtual void SAL_CALL refresh() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addRefreshListener( const ::com::sun::star::uno::Reference< + ::com::sun::star::util::XRefreshListener >& l ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeRefreshListener( const ::com::sun::star::uno::Reference< + ::com::sun::star::util::XRefreshListener >& l ) + throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScDDELinksObj : public cppu::WeakImplHelper4< + com::sun::star::container::XNameAccess, + com::sun::star::container::XEnumerationAccess, + com::sun::star::container::XIndexAccess, + com::sun::star::lang::XServiceInfo >, + public SfxListener +{ +private: + ScDocShell* pDocShell; + + ScDDELinkObj* GetObjectByIndex_Impl(INT32 nIndex); + ScDDELinkObj* GetObjectByName_Impl(const ::rtl::OUString& aName); + +public: + ScDDELinksObj(ScDocShell* pDocSh); + virtual ~ScDDELinksObj(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // XNameAccess + virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XIndexAccess + virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) + throw(::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XEnumerationAccess + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL + createEnumeration() throw(::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + + + +#endif + diff --git a/sc/inc/markarr.hxx b/sc/inc/markarr.hxx new file mode 100644 index 000000000000..820a0b3a3a78 --- /dev/null +++ b/sc/inc/markarr.hxx @@ -0,0 +1,120 @@ +/************************************************************************* + * + * $RCSfile: markarr.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_MARKARR_HXX +#define SC_MARKARR_HXX + +#ifndef _SOLAR_H +#include <tools/solar.h> +#endif + + +struct ScMarkEntry +{ + USHORT nRow; + BOOL bMarked; +}; + +class ScMarkArray +{ + USHORT nCount; + ScMarkEntry* pData; + +friend class ScMarkArrayIter; +friend class ScDocument; // fuer FillInfo + +public: + ScMarkArray(); + ~ScMarkArray(); + void Reset( BOOL bMarked = FALSE ); + BOOL GetMark( USHORT nRow ) const; + void SetMark( USHORT nRow, BOOL bMarked ); + void SetMarkArea( USHORT nStartRow, USHORT nEndRow, BOOL bMarked ); + BOOL IsAllMarked( USHORT nStartRow, USHORT nEndRow ) const; + BOOL HasOneMark( USHORT& rStartRow, USHORT& rEndRow ) const; + BOOL HasMarks() const; + void CopyMarksTo( ScMarkArray& rDestMarkArray ) const; + + BOOL Search( USHORT nRow, short& nIndex ) const; + void DeleteArea(USHORT nStartRow, USHORT nEndRow); + void SwapCol(ScMarkArray& rMarkArray); + void MoveTo(USHORT nStartRow, USHORT nEndRow, ScMarkArray& rMarkArray); + + short GetNextMarked( short nRow, BOOL bUp ) const; // inkl. aktuelle + USHORT GetMarkEnd( USHORT nRow, BOOL bUp ) const; +}; + + +class ScMarkArrayIter // selektierte Bereiche durchgehen +{ + const ScMarkArray* pArray; + USHORT nPos; +public: + ScMarkArrayIter( const ScMarkArray* pNewArray ); + ~ScMarkArrayIter(); + + BOOL Next( USHORT& rTop, USHORT& rBottom ); +}; + + + +#endif + diff --git a/sc/inc/markdata.hxx b/sc/inc/markdata.hxx new file mode 100644 index 000000000000..3520db5e1df0 --- /dev/null +++ b/sc/inc/markdata.hxx @@ -0,0 +1,154 @@ +/************************************************************************* + * + * $RCSfile: markdata.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_MARKDATA_HXX +#define SC_MARKDATA_HXX + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" +#endif + +class ScMarkArray; +class ScRangeList; + +//! todo: +//! Es muss auch die Moeglichkeit geben, MarkArrays pro Tabelle zu halten, +//! damit "alle suchen" ueber mehrere Tabellen wieder funktioniert! + + +class ScMarkData +{ +private: + ScRange aMarkRange; // Bereich + ScRange aMultiRange; // maximaler Bereich insgesamt + ScMarkArray* pMultiSel; // Mehrfachselektion + BOOL bTabMarked[MAXTAB+1]; // Tabelle selektiert + BOOL bMarked; // Rechteck markiert + BOOL bMultiMarked; // mehrfach markiert + + BOOL bMarking; // Bereich wird aufgezogen -> kein MarkToMulti + BOOL bMarkIsNeg; // Aufheben bei Mehrfachselektion + +public: + ScMarkData(); + ScMarkData(const ScMarkData& rData); + ~ScMarkData(); + + ScMarkData& operator=(const ScMarkData& rData); + + void ResetMark(); + void SetMarkArea( const ScRange& rRange ); + + void SetMultiMarkArea( const ScRange& rRange, BOOL bMark = TRUE ); + + void MarkToMulti(); + void MarkToSimple(); + + BOOL IsMarked() const { return bMarked; } + BOOL IsMultiMarked() const { return bMultiMarked; } + + void GetMarkArea( ScRange& rRange ) const; + void GetMultiMarkArea( ScRange& rRange ) const; + + void SetAreaTab( USHORT nTab ); + + void SelectTable( USHORT nTab, BOOL bNew ) { bTabMarked[nTab] = bNew; } + BOOL GetTableSelect( USHORT nTab ) const { return bTabMarked[nTab]; } + + void SelectOneTable( USHORT nTab ); + USHORT GetSelectCount() const; + USHORT GetFirstSelected() const; + + void SetMarkNegative( BOOL bFlag ) { bMarkIsNeg = bFlag; } + BOOL IsMarkNegative() const { return bMarkIsNeg; } + void SetMarking( BOOL bFlag ) { bMarking = bFlag; } + BOOL GetMarkingFlag() const { return bMarking; } + + // fuer FillInfo / Document etc. + const ScMarkArray* GetArray() const { return pMultiSel; } + + BOOL IsCellMarked( USHORT nCol, USHORT nRow, BOOL bNoSimple = FALSE ) const; + void FillRangeListWithMarks( ScRangeList* pList, BOOL bClear ) const; + void ExtendRangeListTables( ScRangeList* pList ) const; + + void MarkFromRangeList( const ScRangeList& rList, BOOL bReset ); + + USHORT GetMarkColumnRanges( USHORT* pRanges ); + USHORT GetMarkRowRanges( USHORT* pRanges ); + + BOOL IsColumnMarked( USHORT nCol ) const; + BOOL IsRowMarked( USHORT nRow ) const; + BOOL IsAllMarked( const ScRange& rRange ) const; // Multi + + short GetNextMarked( USHORT nCol, short nRow, BOOL bUp ) const; + BOOL HasMultiMarks( USHORT nCol ) const; + BOOL HasAnyMultiMarks() const; + + // Tabellen-Markierungen anpassen: + void InsertTab( USHORT nTab ); + void DeleteTab( USHORT nTab ); +}; + + + +#endif + + diff --git a/sc/inc/miscuno.hxx b/sc/inc/miscuno.hxx new file mode 100644 index 000000000000..1c97863a5d9b --- /dev/null +++ b/sc/inc/miscuno.hxx @@ -0,0 +1,345 @@ +/************************************************************************* + * + * $RCSfile: miscuno.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_MISCUNO_HXX +#define SC_MISCUNO_HXX + +#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_ +#include <com/sun/star/lang/XServiceInfo.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_ +#include <com/sun/star/beans/XPropertySet.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XENUMERATIONACCESS_HPP_ +#include <com/sun/star/container/XEnumerationAccess.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XNAMEACCESS_HPP_ +#include <com/sun/star/container/XNameAccess.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XENUMERATION_HPP_ +#include <com/sun/star/container/XEnumeration.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XINDEXACCESS_HPP_ +#include <com/sun/star/container/XIndexAccess.hpp> +#endif + +#ifndef _CPPUHELPER_IMPLBASE2_HXX_ +#include <cppuhelper/implbase2.hxx> +#endif + + +#define SC_SIMPLE_SERVICE_INFO( ClassName, ClassNameAscii, ServiceAscii ) \ +::rtl::OUString SAL_CALL ClassName##::getImplementationName() \ + throw(::com::sun::star::uno::RuntimeException) \ +{ \ + return ::rtl::OUString::createFromAscii(ClassNameAscii##); \ +} \ +sal_Bool SAL_CALL ClassName##::supportsService( const ::rtl::OUString& ServiceName ) \ + throw(::com::sun::star::uno::RuntimeException) \ +{ \ + return !ServiceName.compareToAscii(ServiceAscii); \ +} \ +::com::sun::star::uno::Sequence< ::rtl::OUString > \ + SAL_CALL ClassName##::getSupportedServiceNames(void) \ + throw(::com::sun::star::uno::RuntimeException) \ +{ \ + ::com::sun::star::uno::Sequence< ::rtl::OUString > aRet(1); \ + ::rtl::OUString* pArray = aRet.getArray(); \ + pArray[0] = ::rtl::OUString::createFromAscii(ServiceAscii##); \ + return aRet; \ +} + +#define SC_IMPL_DUMMY_PROPERTY_LISTENER( ClassName ) \ + void SAL_CALL ClassName##::addPropertyChangeListener( const rtl::OUString&, \ + const uno::Reference<beans::XPropertyChangeListener>&) \ + throw(beans::UnknownPropertyException, \ + lang::WrappedTargetException, uno::RuntimeException) \ + { DBG_ERROR("not implemented"); } \ + void SAL_CALL ClassName##::removePropertyChangeListener( const rtl::OUString&, \ + const uno::Reference<beans::XPropertyChangeListener>&) \ + throw(beans::UnknownPropertyException, \ + lang::WrappedTargetException, uno::RuntimeException) \ + { DBG_ERROR("not implemented"); } \ + void SAL_CALL ClassName##::addVetoableChangeListener( const rtl::OUString&, \ + const uno::Reference<beans::XVetoableChangeListener>&) \ + throw(beans::UnknownPropertyException, \ + lang::WrappedTargetException, uno::RuntimeException) \ + { DBG_ERROR("not implemented"); } \ + void SAL_CALL ClassName##::removeVetoableChangeListener( const rtl::OUString&, \ + const uno::Reference<beans::XVetoableChangeListener>&) \ + throw(beans::UnknownPropertyException, \ + lang::WrappedTargetException, uno::RuntimeException) \ + { DBG_ERROR("not implemented"); } + + +#define SC_QUERYINTERFACE(x) \ + if (rType == getCppuType((const uno::Reference<x>*)0)) \ + { uno::Any aR; aR <<= uno::Reference<x>(this); return aR; } + +// SC_QUERY_MULTIPLE( XElementAccess, XIndexAccess ): +// use if interface is used several times in one class + +#define SC_QUERY_MULTIPLE(x,y) \ + if (rType == getCppuType((const uno::Reference<x>*)0)) \ + { uno::Any aR; aR <<= uno::Reference<x>(static_cast<y*>(this)); return aR; } + + +class ScIndexEnumeration : public cppu::WeakImplHelper2< + com::sun::star::container::XEnumeration, + com::sun::star::lang::XServiceInfo > +{ +private: + com::sun::star::uno::Reference<com::sun::star::container::XIndexAccess> xIndex; + INT32 nPos; + +public: + ScIndexEnumeration(const com::sun::star::uno::Reference< + com::sun::star::container::XIndexAccess>& rInd); + virtual ~ScIndexEnumeration(); + + // XEnumeration + virtual sal_Bool SAL_CALL hasMoreElements() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL nextElement() + throw(::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName( ) + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScEmptyEnumerationAccess : public cppu::WeakImplHelper2< + com::sun::star::container::XEnumerationAccess, + com::sun::star::lang::XServiceInfo > +{ +public: + ScEmptyEnumerationAccess(); + virtual ~ScEmptyEnumerationAccess(); + + // XEnumerationAccess + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL + createEnumeration() throw(::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName( ) + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScEmptyEnumeration : public cppu::WeakImplHelper2< + com::sun::star::container::XEnumeration, + com::sun::star::lang::XServiceInfo > +{ +public: + ScEmptyEnumeration(); + virtual ~ScEmptyEnumeration(); + + // XEnumeration + virtual sal_Bool SAL_CALL hasMoreElements() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL nextElement() + throw(::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName( ) + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) + throw(::com::sun::star::uno::RuntimeException); +}; + +// new (uno 3) variant +class ScNameToIndexAccess : public cppu::WeakImplHelper2< + com::sun::star::container::XIndexAccess, + com::sun::star::lang::XServiceInfo > +{ +private: + com::sun::star::uno::Reference<com::sun::star::container::XNameAccess> xNameAccess; + com::sun::star::uno::Sequence<rtl::OUString> aNames; + +public: + ScNameToIndexAccess( + const com::sun::star::uno::Reference< + com::sun::star::container::XNameAccess>& rNameObj ); + virtual ~ScNameToIndexAccess(); + + // XIndexAccess + virtual sal_Int32 SAL_CALL getCount( ) throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) + throw(::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType( ) + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements( ) throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName( ) + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) + throw(::com::sun::star::uno::RuntimeException); +}; + +class ScPrintSettingsObj : public cppu::WeakImplHelper2< + com::sun::star::beans::XPropertySet, + com::sun::star::lang::XServiceInfo > +{ +public: + ScPrintSettingsObj(); + virtual ~ScPrintSettingsObj(); + + // XPropertySet + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > + SAL_CALL getPropertySetInfo() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Any& aValue ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::beans::PropertyVetoException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( + const ::rtl::OUString& PropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& xListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName( ) + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScUnoHelpFunctions +{ +public: + static com::sun::star::uno::Reference<com::sun::star::uno::XInterface> + AnyToInterface( const com::sun::star::uno::Any& rAny ); + static BOOL GetBoolProperty( const com::sun::star::uno::Reference< + com::sun::star::beans::XPropertySet>& xProp, + const ::rtl::OUString& rName, BOOL bDefault = FALSE ); + static long GetLongProperty( const com::sun::star::uno::Reference< + com::sun::star::beans::XPropertySet>& xProp, + const ::rtl::OUString& rName, long nDefault = 0 ); + static long GetEnumProperty( const com::sun::star::uno::Reference< + com::sun::star::beans::XPropertySet>& xProp, + const ::rtl::OUString& rName, long nDefault ); + + static BOOL GetBoolFromAny( const com::sun::star::uno::Any& aAny ); + static INT16 GetInt16FromAny( const com::sun::star::uno::Any& aAny ); + static INT32 GetEnumFromAny( const com::sun::star::uno::Any& aAny ); + static void SetBoolInAny( com::sun::star::uno::Any& rAny, BOOL bValue ); +}; + + + +#endif + diff --git a/sc/inc/nameuno.hxx b/sc/inc/nameuno.hxx new file mode 100644 index 000000000000..873332ac6946 --- /dev/null +++ b/sc/inc/nameuno.hxx @@ -0,0 +1,397 @@ +/************************************************************************* + * + * $RCSfile: nameuno.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_NAMEUNO_HXX +#define SC_NAMEUNO_HXX + +#ifndef _SFXLSTNER_HXX //autogen +#include <svtools/lstner.hxx> +#endif + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" // ScRange +#endif + +#ifndef _COM_SUN_STAR_SHEET_XSHEETCELLRANGE_HPP_ +#include <com/sun/star/sheet/XSheetCellRange.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XFORMULAQUERY_HPP_ +#include <com/sun/star/sheet/XFormulaQuery.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XLABELRANGE_HPP_ +#include <com/sun/star/sheet/XLabelRange.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XLABELRANGES_HPP_ +#include <com/sun/star/sheet/XLabelRanges.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XCELLRANGEREFERRER_HPP_ +#include <com/sun/star/sheet/XCellRangeReferrer.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XCELLRANGEADDRESSABLE_HPP_ +#include <com/sun/star/sheet/XCellRangeAddressable.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XUSEDAREACURSOR_HPP_ +#include <com/sun/star/sheet/XUsedAreaCursor.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XSHEETOPERATION_HPP_ +#include <com/sun/star/sheet/XSheetOperation.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XFILLACROSSSHEET_HPP_ +#include <com/sun/star/sheet/XFillAcrossSheet.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XNAMEDRANGE_HPP_ +#include <com/sun/star/sheet/XNamedRange.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XSHEETCELLRANGES_HPP_ +#include <com/sun/star/sheet/XSheetCellRanges.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XNAMEDRANGES_HPP_ +#include <com/sun/star/sheet/XNamedRanges.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XSHEETCELLCURSOR_HPP_ +#include <com/sun/star/sheet/XSheetCellCursor.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XCELLFORMATRANGESSUPPLIER_HPP_ +#include <com/sun/star/sheet/XCellFormatRangesSupplier.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XCELLRANGESQUERY_HPP_ +#include <com/sun/star/sheet/XCellRangesQuery.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XSERVICENAME_HPP_ +#include <com/sun/star/lang/XServiceName.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_ +#include <com/sun/star/lang/XServiceInfo.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_ +#include <com/sun/star/beans/XPropertySet.hpp> +#endif + +#ifndef _CPPUHELPER_IMPLBASE2_HXX_ +#include <cppuhelper/implbase2.hxx> +#endif +#ifndef _CPPUHELPER_IMPLBASE3_HXX_ +#include <cppuhelper/implbase3.hxx> +#endif +#ifndef _CPPUHELPER_IMPLBASE4_HXX_ +#include <cppuhelper/implbase4.hxx> +#endif + +class ScDocShell; +class ScRangeData; + + +class ScNamedRangeObj : public ::cppu::WeakImplHelper4< + ::com::sun::star::sheet::XNamedRange, + ::com::sun::star::sheet::XCellRangeReferrer, + ::com::sun::star::beans::XPropertySet, + ::com::sun::star::lang::XServiceInfo >, + public SfxListener +{ +private: + ScDocShell* pDocShell; + String aName; + +private: + ScRangeData* GetRangeData_Impl(); + void Modify_Impl( const String* pNewName, const String* pNewContent, + const ScAddress* pNewPos, const sal_uInt16* pNewType ); + +public: + ScNamedRangeObj(ScDocShell* pDocSh, const String& rNm); + virtual ~ScNamedRangeObj(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // XNamedRange + virtual ::rtl::OUString SAL_CALL getContent() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setContent( const ::rtl::OUString& aContent ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::table::CellAddress SAL_CALL getReferencePosition() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setReferencePosition( + const ::com::sun::star::table::CellAddress& aReferencePosition ) + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Int32 SAL_CALL getType() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setType( sal_Int32 nType ) throw(::com::sun::star::uno::RuntimeException); + + // XNamed + virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XCellRangeReferrer + virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XCellRange > SAL_CALL + getReferredCells() throw(::com::sun::star::uno::RuntimeException); + + // XPropertySet + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > + SAL_CALL getPropertySetInfo() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Any& aValue ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::beans::PropertyVetoException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( + const ::rtl::OUString& PropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& xListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScNamedRangesObj : public ::cppu::WeakImplHelper4< + ::com::sun::star::sheet::XNamedRanges, + ::com::sun::star::container::XEnumerationAccess, + ::com::sun::star::container::XIndexAccess, + ::com::sun::star::lang::XServiceInfo >, + public SfxListener +{ +private: + ScDocShell* pDocShell; + + ScNamedRangeObj* GetObjectByIndex_Impl(sal_uInt16 nIndex); + ScNamedRangeObj* GetObjectByName_Impl(const ::rtl::OUString& aName); + +public: + ScNamedRangesObj(ScDocShell* pDocSh); + virtual ~ScNamedRangesObj(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // XNamedRanges + virtual void SAL_CALL addNewByName( const ::rtl::OUString& aName, const ::rtl::OUString& aContent, + const ::com::sun::star::table::CellAddress& aPosition, sal_Int32 nType ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addNewFromTitles( const ::com::sun::star::table::CellRangeAddress& aSource, + ::com::sun::star::sheet::Border aBorder ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL outputList( const ::com::sun::star::table::CellAddress& aOutputPosition ) + throw(::com::sun::star::uno::RuntimeException); + + // XNameAccess + virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XIndexAccess + virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) + throw(::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XEnumerationAccess + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL + createEnumeration() throw(::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScLabelRangeObj : public ::cppu::WeakImplHelper2< + ::com::sun::star::sheet::XLabelRange, + ::com::sun::star::lang::XServiceInfo >, + public SfxListener +{ +private: + ScDocShell* pDocShell; + sal_Bool bColumn; + ScRange aRange; // Kriterium um Bereich zu finden + +private: + ScRangePair* GetData_Impl(); + void Modify_Impl( const ScRange* pLabel, const ScRange* pData ); + +public: + ScLabelRangeObj(ScDocShell* pDocSh, sal_Bool bCol, const ScRange& rR); + virtual ~ScLabelRangeObj(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // XLabelRange + virtual ::com::sun::star::table::CellRangeAddress SAL_CALL getLabelArea() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setLabelArea( const ::com::sun::star::table::CellRangeAddress& aLabelArea ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::table::CellRangeAddress SAL_CALL getDataArea() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setDataArea( const ::com::sun::star::table::CellRangeAddress& aDataArea ) + throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScLabelRangesObj : public ::cppu::WeakImplHelper3< + ::com::sun::star::sheet::XLabelRanges, + ::com::sun::star::container::XEnumerationAccess, + ::com::sun::star::lang::XServiceInfo >, + public SfxListener +{ +private: + ScDocShell* pDocShell; + sal_Bool bColumn; + + ScLabelRangeObj* GetObjectByIndex_Impl(sal_uInt16 nIndex); + +public: + ScLabelRangesObj(ScDocShell* pDocSh, sal_Bool bCol); + virtual ~ScLabelRangesObj(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // XLabelRanges + virtual void SAL_CALL addNew( const ::com::sun::star::table::CellRangeAddress& aLabelArea, + const ::com::sun::star::table::CellRangeAddress& aDataArea ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeByIndex( sal_Int32 nIndex ) + throw(::com::sun::star::uno::RuntimeException); + + // XIndexAccess + virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) + throw(::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XEnumerationAccess + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL + createEnumeration() throw(::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + + + +#endif + diff --git a/sc/inc/navicfg.hxx b/sc/inc/navicfg.hxx new file mode 100644 index 000000000000..f7cd1d4853c6 --- /dev/null +++ b/sc/inc/navicfg.hxx @@ -0,0 +1,100 @@ +/************************************************************************* + * + * $RCSfile: navicfg.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_NAVICFG_HXX +#define SC_NAVICFG_HXX + +#ifndef _SFXCFGITEM_HXX //autogen +#include <sfx2/cfgitem.hxx> +#endif + +//================================================================== +// CfgItem fuer Navigator-Zustand +//================================================================== + +class ScNavipiCfg : public SfxConfigItem +{ +private: + USHORT nListMode; + USHORT nDragMode; + USHORT nRootType; + +public: + ScNavipiCfg(); + + virtual String GetName() const; + + void SetListMode(USHORT nNew); + USHORT GetListMode() const { return nListMode; } + void SetDragMode(USHORT nNew); + USHORT GetDragMode() const { return nDragMode; } + void SetRootType(USHORT nNew); + USHORT GetRootType() const { return nRootType; } + +protected: + virtual int Load(SvStream& rStream); + virtual BOOL Store(SvStream& rStream); + virtual void UseDefault(); +}; + + +#endif + diff --git a/sc/inc/notesuno.hxx b/sc/inc/notesuno.hxx new file mode 100644 index 000000000000..785f53fbafc1 --- /dev/null +++ b/sc/inc/notesuno.hxx @@ -0,0 +1,172 @@ +/************************************************************************* + * + * $RCSfile: notesuno.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_NOTESUNO_HXX +#define SC_NOTESUNO_HXX + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" // ScRange, ScAddress +#endif + +#ifndef _SFXLSTNER_HXX //autogen +#include <svtools/lstner.hxx> +#endif + +#ifndef _COM_SUN_STAR_SHEET_XSHEETANNOTATION_HPP_ +#include <com/sun/star/sheet/XSheetAnnotation.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_ +#include <com/sun/star/lang/XServiceInfo.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XCHILD_HPP_ +#include <com/sun/star/container/XChild.hpp> +#endif +#ifndef _COM_SUN_STAR_TEXT_XSIMPLETEXT_HPP_ +#include <com/sun/star/text/XSimpleText.hpp> +#endif + +#ifndef _CPPUHELPER_IMPLBASE4_HXX_ +#include <cppuhelper/implbase4.hxx> +#endif + + +class ScDocShell; +class SvxUnoText; + + +class ScAnnotationObj : public cppu::WeakImplHelper4< + com::sun::star::container::XChild, + com::sun::star::text::XSimpleText, + com::sun::star::sheet::XSheetAnnotation, + com::sun::star::lang::XServiceInfo >, + public SfxListener +{ +private: + ScDocShell* pDocShell; + ScAddress aCellPos; + SvxUnoText* pUnoText; + +private: + SvxUnoText& GetUnoText(); + +public: + ScAnnotationObj(ScDocShell* pDocSh, const ScAddress& rPos); + virtual ~ScAnnotationObj(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // XChild + virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL + getParent() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setParent( const ::com::sun::star::uno::Reference< + ::com::sun::star::uno::XInterface >& Parent ) + throw(::com::sun::star::lang::NoSupportException, + ::com::sun::star::uno::RuntimeException); + + // XSimpleText + virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextCursor > SAL_CALL + createTextCursor() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextCursor > SAL_CALL + createTextCursorByRange( const ::com::sun::star::uno::Reference< + ::com::sun::star::text::XTextRange >& aTextPosition ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL insertString( const ::com::sun::star::uno::Reference< + ::com::sun::star::text::XTextRange >& xRange, + const ::rtl::OUString& aString, sal_Bool bAbsorb ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL insertControlCharacter( const ::com::sun::star::uno::Reference< + ::com::sun::star::text::XTextRange >& xRange, + sal_Int16 nControlCharacter, sal_Bool bAbsorb ) + throw(::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::uno::RuntimeException); + + // XTextRange + virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XText > SAL_CALL + getText() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > SAL_CALL + getStart() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > SAL_CALL + getEnd() throw(::com::sun::star::uno::RuntimeException); + virtual ::rtl::OUString SAL_CALL getString() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setString( const ::rtl::OUString& aString ) + throw(::com::sun::star::uno::RuntimeException); + + // XSheetAnnotation + virtual ::com::sun::star::table::CellAddress SAL_CALL getPosition() + throw(::com::sun::star::uno::RuntimeException); + virtual ::rtl::OUString SAL_CALL getAuthor() throw(::com::sun::star::uno::RuntimeException); + virtual ::rtl::OUString SAL_CALL getDate() throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL getIsVisible() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setIsVisible( sal_Bool bIsVisible ) + throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +#endif + diff --git a/sc/inc/olinetab.hxx b/sc/inc/olinetab.hxx new file mode 100644 index 000000000000..60bc73817cb5 --- /dev/null +++ b/sc/inc/olinetab.hxx @@ -0,0 +1,220 @@ +/************************************************************************* + * + * $RCSfile: olinetab.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_OUTLINETAB_HXX +#define SC_OUTLINETAB_HXX + + +#ifndef SC_COLLECT_HXX +#include "collect.hxx" +#endif + + +#define SC_OL_MAXDEPTH 7 + +class SvStream; +class ScMultipleReadHeader; +class ScMultipleWriteHeader; + + +class ScOutlineEntry : public DataObject +{ + USHORT nStart; + USHORT nSize; + BOOL bHidden; + BOOL bVisible; + +public: + ScOutlineEntry( USHORT nNewStart, USHORT nNewSize, + BOOL bNewHidden = FALSE ); + ScOutlineEntry( const ScOutlineEntry& rEntry ); + ScOutlineEntry( SvStream& rStream, ScMultipleReadHeader& rHdr ); + + void Store( SvStream& rStream, ScMultipleWriteHeader& rHdr ); + + virtual DataObject* Clone() const; + + USHORT GetStart() const { return nStart; } + USHORT GetSize() const { return nSize; } + USHORT GetEnd() const { return nStart+nSize-1; } + BOOL IsHidden() const { return bHidden; } // Gruppe versteckt + BOOL IsVisible() const { return bVisible; } // Control sichtbar? + + void Move( short nDelta ); + void SetSize( USHORT nNewSize ); + void SetPosSize( USHORT nNewPos, USHORT nNewSize ); + void SetHidden( BOOL bNewHidden ); + void SetVisible( BOOL bNewVisible ); +}; + + +class ScOutlineCollection : public SortedCollection +{ +public: + ScOutlineCollection(); + + virtual short Compare(DataObject* pKey1, DataObject* pKey2) const; + + USHORT FindStart( USHORT nMinStart ); +}; + + +class ScOutlineArray +{ +friend class ScSubOutlineIterator; + +private: + USHORT nDepth; + ScOutlineCollection aCollections[SC_OL_MAXDEPTH]; + + BOOL DecDepth(); + void FindEntry( USHORT nSearchPos, USHORT& rFindLevel, USHORT& rFindIndex, + USHORT nMaxLevel = SC_OL_MAXDEPTH ); + void RemoveSub( USHORT nStartPos, USHORT nEndPos, USHORT nLevel ); + void PromoteSub( USHORT nStartPos, USHORT nEndPos, USHORT nStartLevel ); + +public: + ScOutlineArray(); + ScOutlineArray( const ScOutlineArray& rArray ); + + USHORT GetDepth() const { return nDepth; } + + BOOL FindTouchedLevel( USHORT nBlockStart, USHORT nBockEnd, + USHORT& rFindLevel ); + + BOOL Insert( USHORT nStartCol, USHORT nEndCol, BOOL& rSizeChanged, + BOOL bHidden = FALSE, BOOL bVisible = TRUE ); + BOOL Remove( USHORT nBlockStart, USHORT nBlockEnd, BOOL& rSizeChanged ); + + ScOutlineEntry* GetEntry( USHORT nLevel, USHORT nIndex ); + USHORT GetCount( USHORT nLevel ); + ScOutlineEntry* GetEntryByPos( USHORT nLevel, USHORT nPos ); + void SetVisibleBelow( USHORT nLevel, USHORT nEntry, BOOL bValue, + BOOL bSkipHidden = FALSE ); + + void GetRange( USHORT& rStart, USHORT& rEnd ); + void ExtendBlock( USHORT nLevel, USHORT& rBlkStart, USHORT& rBlkEnd ); + + BOOL TestInsertSpace( USHORT nSize, USHORT nMaxVal ); + void InsertSpace( USHORT nStartPos, USHORT nSize ); + BOOL DeleteSpace( USHORT nStartPos, USHORT nSize ); + + BOOL ManualAction( USHORT nStartPos, USHORT nEndPos, + BOOL bShow, BYTE* pHiddenFlags ); + + void Load( SvStream& rStream ); + void Store( SvStream& rStream ); + + void RemoveAll(); +}; + + +class ScOutlineTable +{ +private: + ScOutlineArray aColOutline; + ScOutlineArray aRowOutline; + +public: + ScOutlineTable(); + ScOutlineTable( const ScOutlineTable& rOutline ); + + const ScOutlineArray* GetColArray() const { return &aColOutline; } + ScOutlineArray* GetColArray() { return &aColOutline; } + const ScOutlineArray* GetRowArray() const { return &aRowOutline; } + ScOutlineArray* GetRowArray() { return &aRowOutline; } + + BOOL TestInsertCol( USHORT nSize ); + void InsertCol( USHORT nStartCol, USHORT nSize ); + BOOL DeleteCol( USHORT nStartCol, USHORT nSize ); // TRUE: Undo nur ueber Original + BOOL TestInsertRow( USHORT nSize ); + void InsertRow( USHORT nStartRow, USHORT nSize ); + BOOL DeleteRow( USHORT nStartRow, USHORT nSize ); + + void Load( SvStream& rStream ); + void Store( SvStream& rStream ); +}; + + +class ScSubOutlineIterator +{ +private: + ScOutlineArray* pArray; + USHORT nStart; + USHORT nEnd; + USHORT nSubLevel; + USHORT nSubEntry; + USHORT nCount; + USHORT nDepth; + +public: + ScSubOutlineIterator( ScOutlineArray* pOutlineArray ); + ScSubOutlineIterator( ScOutlineArray* pOutlineArray, + USHORT nLevel, USHORT nEntry ); + ScOutlineEntry* GetNext(); + USHORT LastLevel() const; + USHORT LastEntry() const; + void DeleteLast(); +}; + +#endif + + diff --git a/sc/inc/pagepar.hxx b/sc/inc/pagepar.hxx new file mode 100644 index 000000000000..ede1c1317b1d --- /dev/null +++ b/sc/inc/pagepar.hxx @@ -0,0 +1,121 @@ +/************************************************************************* + * + * $RCSfile: pagepar.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_PAGEPAR_HXX +#define SC_PAGEPAR_HXX + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" +#endif + +//----------------------------------------------------------------------- + +struct ScPageTableParam +{ + BOOL bNotes; + BOOL bGrid; + BOOL bHeaders; + BOOL bCharts; + BOOL bObjects; + BOOL bDrawings; + BOOL bFormulas; + BOOL bNullVals; + BOOL bTopDown; + BOOL bLeftRight; + BOOL bSkipEmpty; + BOOL bScaleNone; + BOOL bScaleAll; + BOOL bScalePageNum; + USHORT nScaleAll; + USHORT nScalePageNum; + USHORT nFirstPageNo; + + ScPageTableParam(); + ScPageTableParam( const ScPageTableParam& r ); + ~ScPageTableParam(); + + ScPageTableParam& operator= ( const ScPageTableParam& r ); + BOOL operator== ( const ScPageTableParam& r ) const; + void Reset (); +}; + +struct ScPageAreaParam +{ + BOOL bPrintArea; + BOOL bRepeatRow; + BOOL bRepeatCol; + ScRange aPrintArea; + ScRange aRepeatRow; + ScRange aRepeatCol; + + ScPageAreaParam(); + ScPageAreaParam( const ScPageAreaParam& r ); + ~ScPageAreaParam(); + + ScPageAreaParam& operator= ( const ScPageAreaParam& r ); + BOOL operator== ( const ScPageAreaParam& r ) const; + void Reset (); +}; + + +#endif + + diff --git a/sc/inc/patattr.hxx b/sc/inc/patattr.hxx new file mode 100644 index 000000000000..5feb5cf5d90a --- /dev/null +++ b/sc/inc/patattr.hxx @@ -0,0 +1,140 @@ +/************************************************************************* + * + * $RCSfile: patattr.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_SCPATATR_HXX +#define SC_SCPATATR_HXX + +#ifndef _SFXPOOLITEM_HXX //autogen +#include <svtools/poolitem.hxx> +#endif + +#ifndef _SFXITEMSET_HXX //autogen +#include <svtools/itemset.hxx> +#endif + + +class Font; +class OutputDevice; +class Fraction; +class ScStyleSheet; +class SvNumberFormatter; +class ScDocument; + +class ScPatternAttr: public SfxSetItem +{ + String* pName; + ScStyleSheet* pStyle; +public: + static ScDocument* pDoc; + ScPatternAttr(SfxItemSet* pItemSet, const String& rStyleName); + ScPatternAttr(SfxItemSet* pItemSet, ScStyleSheet* pStyleSheet = NULL); + ScPatternAttr(SfxItemPool* pItemPool); + ScPatternAttr(const ScPatternAttr& rPatternAttr); + + ~ScPatternAttr(); + + virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; + virtual SfxPoolItem* Create(SvStream& rStream, USHORT nVersion) const; + virtual SvStream& Store(SvStream& rStream, USHORT nItemVersion) const; + + virtual int operator==(const SfxPoolItem& rCmp) const; + + const SfxPoolItem& GetItem( USHORT nWhich ) const + { return GetItemSet().Get(nWhich); } + + const SfxPoolItem& GetItem( USHORT nWhich, const SfxItemSet* pCondSet ) const; + + // pWhich sind keine Ranges, sondern einzelne IDs, 0-terminiert + BOOL HasItemsSet( const USHORT* pWhich ) const; + void ClearItems( const USHORT* pWhich ); + + void DeleteUnchanged( const ScPatternAttr* pOldAttrs ); + void GetFont( Font& rFont, OutputDevice* pOutDev = NULL, + const Fraction* pScale = NULL, + const SfxItemSet* pCondSet = NULL ) const; + + void FillEditItemSet( SfxItemSet* pSet, + const SfxItemSet* pCondSet = NULL ) const; + void GetFromEditItemSet( const SfxItemSet* pSet ); + + void FillEditParaItems( SfxItemSet* pSet ) const; + + ScPatternAttr* PutInPool( ScDocument* pDestDoc, ScDocument* pSrcDoc ) const; + + void SetStyleSheet(ScStyleSheet* pNewStyle); + const ScStyleSheet* GetStyleSheet() const { return pStyle; } + const String* GetStyleName() const; + void UpdateStyleSheet(); + void StyleToName(); + + BOOL IsVisible() const; + BOOL IsVisibleEqual( const ScPatternAttr& rOther ) const; + BOOL IsSymbolFont() const; + + ULONG GetNumberFormat( SvNumberFormatter* ) const; + ULONG GetNumberFormat( SvNumberFormatter* pFormatter, + const SfxItemSet* pCondSet ) const; + + long GetRotateVal( const SfxItemSet* pCondSet ) const; + BYTE GetRotateDir( const SfxItemSet* pCondSet ) const; +}; + +#endif diff --git a/sc/inc/pivot.hxx b/sc/inc/pivot.hxx new file mode 100644 index 000000000000..95bc9471406e --- /dev/null +++ b/sc/inc/pivot.hxx @@ -0,0 +1,364 @@ +/************************************************************************* + * + * $RCSfile: pivot.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +/* + WICHTIG: + Folgende Reihenfolge beim Aufbau der Pivot-Tabelle unbedingt einzuhalten: + + pPivot->SetColFields(aColArr, aColCount) + pPivot->SetRowFields(aRowArr, aRowCount) + pPivot->SetDataFields(aDataArr, aDataCount) + if (pPivot->CreateData()) + { + pPivotDrawData(); + pPivotReleaseData(); + } + + ausserdem ist sicherzustellen, dass entweder das ColArr oder das RowArr + einen PivotDataField Eintrag enthalten + +*/ + + +#ifndef SC_PIVOT_HXX +#define SC_PIVOT_HXX + +#include <global.hxx> + +class SubTotal; + +#ifndef SC_COLLECT_HXX +#include "collect.hxx" +#endif + +#define PIVOT_DATA_FIELD (MAXCOL + 1) +#define PIVOT_FUNC_REF (MAXCOL + 1) + +#define PIVOT_STYLE_INNER 0 +#define PIVOT_STYLE_RESULT 1 +#define PIVOT_STYLE_CATEGORY 2 +#define PIVOT_STYLE_TITLE 3 +#define PIVOT_STYLE_FIELDNAME 4 +#define PIVOT_STYLE_TOP 5 + +class SvStream; +class ScDocument; +class ScUserListData; +class ScMultipleReadHeader; +class ScMultipleWriteHeader; +class ScProgress; + +struct PivotColRef +{ + USHORT nDataIndex; + USHORT nRecCount; + USHORT nFuncMask; + USHORT nIndex; + + PivotColRef() + { + nDataIndex = nRecCount = nIndex = 0; + nFuncMask = PIVOT_FUNC_NONE; + } +}; + +typedef PivotField PivotFieldArr[PIVOT_MAXFIELD]; + +class PivotStrCollection : public StrCollection +{ + ScUserListData* pUserData; +public: + PivotStrCollection(USHORT nLim = 4, USHORT nDel = 4, BOOL bDup = FALSE) : + StrCollection ( nLim, nDel, bDup ), + pUserData (NULL) { } + PivotStrCollection(const PivotStrCollection& rPivotStrCollection) : + StrCollection ( rPivotStrCollection ), + pUserData ( rPivotStrCollection.pUserData) {} + + virtual DataObject* Clone() const; + virtual short Compare(DataObject* pKey1, DataObject* pKey2) const; + + TypedStrData* operator[]( const USHORT nIndex) const + { return (TypedStrData*)At(nIndex); } + void SetUserData(ScUserListData* pData) + { pUserData = pData; } + const String& GetString(USHORT nIndex) + { return ((TypedStrData*)At(nIndex))->GetString(); } + short GetIndex(TypedStrData* pData) const; +}; + +class ScPivot : public DataObject +{ + ScDocument* pDoc; + ScQueryParam aQuery; + BOOL bHasHeader; + + BOOL bIgnoreEmpty; // Flags aus Dialog + BOOL bDetectCat; + BOOL bMakeTotalCol; + BOOL bMakeTotalRow; + + String aName; + String aTag; + USHORT nColNameCount; + String* pColNames; // Array + + USHORT nSrcCol1; + USHORT nSrcRow1; + USHORT nSrcCol2; + USHORT nSrcRow2; + USHORT nSrcTab; + + USHORT nDestCol1; + USHORT nDestRow1; + USHORT nDestCol2; + USHORT nDestRow2; + USHORT nDestTab; + + USHORT nDataStartCol; + USHORT nDataStartRow; + + short nColCount; + short nRowCount; + short nDataCount; + + PivotFieldArr aColArr; + PivotFieldArr aRowArr; + PivotFieldArr aDataArr; + + PivotStrCollection* pColList[PIVOT_MAXFIELD]; // pro Zeile alle Eintraege + PivotStrCollection* pRowList[PIVOT_MAXFIELD]; + PivotStrCollection* pDataList; // Shortcut auf Col/RowList mit Daten + + SubTotal** ppDataArr; + short nDataColCount; + short nDataRowCount; + short nRowIndex; + short nColIndex; + short nDataIndex; + short nRecCount; + + PivotColRef* pColRef; + + BOOL bValidArea; + BOOL bDataAtCol; + +public: + ScPivot(ScDocument* pDocument); + ScPivot(const ScPivot& rPivot); + ~ScPivot(); + + virtual DataObject* Clone() const; + + ScPivot* CreateNew() const; + + BOOL Load(SvStream& rStream, ScMultipleReadHeader& rHdr ); + BOOL Store(SvStream& rStream, ScMultipleWriteHeader& rHdr ) const; + + void SetQuery(const ScQueryParam& rQuery); + void GetQuery(ScQueryParam& rQuery) const; + + void SetHeader(BOOL bHeader); + BOOL GetHeader() const; + void SetIgnoreEmpty(BOOL bIgnore); + BOOL GetIgnoreEmpty() const; + void SetDetectCat(BOOL bDetect); + BOOL GetDetectCat() const; + void SetMakeTotalCol(BOOL bSet); + BOOL GetMakeTotalCol() const; + void SetMakeTotalRow(BOOL bSet); + BOOL GetMakeTotalRow() const; + + void SetName(const String& rNew); + const String& GetName() const; + void SetTag(const String& rNew); + const String& GetTag() const; + + void SetSrcArea(USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2, USHORT nTab); + void GetSrcArea(USHORT& rCol1, USHORT& rRow1, USHORT& rCol2, USHORT& rRow2, USHORT& rTab) const; + ScRange GetSrcArea() const; + + void SetDestPos(USHORT nCol, USHORT nRow, USHORT nTab); + void GetDestArea(USHORT& rCol1, USHORT& rRow1, USHORT& rCol2, USHORT& rRow2, USHORT& rTab) const; + ScRange GetDestArea() const; + + void SetColFields(const PivotField* pFieldArr, short nCount); + void GetColFields(PivotField* pFieldArr, short& rCount) const; + short GetColFieldCount() const { return nColCount; } + + void SetRowFields(const PivotField* pFieldArr, short nCount); + void GetRowFields(PivotField* pFieldArr, short& rCount) const; + short GetRowFieldCount() const { return nRowCount; } + + void SetDataFields(const PivotField* pFieldArr, short nCount); + void GetDataFields(PivotField* pFieldArr, short& rCount) const; + + void GetParam( ScPivotParam& rParam, ScQueryParam& rQuery, ScArea& rSrcArea ) const; + void SetParam( const ScPivotParam& rParam, const ScQueryParam& rQuery, + const ScArea& rSrcArea ); + + BOOL CreateData(BOOL bKeepDest = FALSE); + void DrawData(); + void ReleaseData(); + + BOOL IsPivotAtCursor(USHORT nCol, USHORT nRow, USHORT nTab) const; + BOOL IsFilterAtCursor(USHORT nCol, USHORT nRow, USHORT nTab) const; + BOOL GetColFieldAtCursor(USHORT nCol, USHORT nRow, USHORT nTab, USHORT& rField) const; + BOOL GetRowFieldAtCursor(USHORT nCol, USHORT nRow, USHORT nTab, USHORT& rField) const; + + // Referenz-Anpassung: + + void MoveSrcArea( USHORT nNewCol, USHORT nNewRow, USHORT nNewTab ); + void MoveDestArea( USHORT nNewCol, USHORT nNewRow, USHORT nNewTab ); + void ExtendSrcArea( USHORT nNewEndCol, USHORT nNewEndRow ); + +private: + BOOL CreateFields(); + void CreateFieldData(); + void CalcArea(); + + void SetDataLine(USHORT nCol, USHORT nRow, USHORT nTab, USHORT nRIndex); + void SetFuncLine(USHORT nCol, USHORT nRow, USHORT nTab, USHORT nFunc, USHORT nIndex, USHORT nStartRIndex, USHORT nEndRIndex); + void ColToTable(short nField, USHORT& nRow, ScProgress& rProgress); + void RowToTable(short nField, USHORT& nCol); + void SetFrame(USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2, USHORT nWidth = 20); + void SetFrameHor(USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2); + void SetFrameVer(USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2); + void SetFontBold(USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2); + void SetJustifyLeft(USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2); + void SetJustifyRight(USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2); + void SetStyle(USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2, USHORT nId); + void SetButton(USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2); + void SetValue(USHORT nCol, USHORT nRow, const SubTotal& rTotal, USHORT nFunc); + USHORT GetCategoryRow( USHORT nCol, USHORT nRow ); +}; + +//------------------------------------------------------------------------ +class ScPivotCollection : public Collection +{ + +private: + ScDocument* pDoc; +public: + ScPivotCollection(USHORT nLim = 4, USHORT nDel = 4, ScDocument* pDocument = NULL) : + Collection ( nLim, nDel), + pDoc ( pDocument ) {} + ScPivotCollection(const ScPivotCollection& rScPivotCollection) : + Collection ( rScPivotCollection ), + pDoc ( rScPivotCollection.pDoc ) {} + + virtual DataObject* Clone() const; + ScPivot* operator[]( const USHORT nIndex) const {return (ScPivot*)At(nIndex);} + ScPivot* GetPivotAtCursor(USHORT nCol, USHORT nRow, USHORT nTab) const; + + BOOL Load( SvStream& rStream ); + BOOL Store( SvStream& rStream ) const; + + void UpdateReference(UpdateRefMode eUpdateRefMode, + USHORT nCol1, USHORT nRow1, USHORT nTab1, + USHORT nCol2, USHORT nRow2, USHORT nTab2, + short nDx, short nDy, short nDz ); + void UpdateGrow( const ScRange& rArea, USHORT nGrowX, USHORT nGrowY ); + + BOOL operator==(const ScPivotCollection& rCmp) const; + + String CreateNewName( USHORT nMin = 1 ) const; +}; + +//------------------------------------------------------------------------ +struct LabelData +{ + String* pStrColName; + short nCol; + BOOL bIsValue; // Summe oder Anzahl im Data-Feld + USHORT nFuncMask; + + + LabelData( const String& rColName, + short nColumn, + BOOL bVal, + USHORT nMask = PIVOT_FUNC_NONE ) + : nCol (nColumn), + bIsValue (bVal), + nFuncMask (nMask) + { pStrColName = new String( rColName ); } + + LabelData( const LabelData& rCpy ) + : nCol (rCpy.nCol), + bIsValue (rCpy.bIsValue), + nFuncMask (rCpy.nFuncMask) + { pStrColName = new String( *(rCpy.pStrColName) ); } + + ~LabelData() + { delete pStrColName; } + + LabelData& operator=( const LabelData& r ) + { + nCol = r.nCol; + bIsValue = r.bIsValue; + nFuncMask = r.nFuncMask; + pStrColName = new String( *(r.pStrColName) ); + + return *this; + } +}; + + +#endif diff --git a/sc/inc/printopt.hxx b/sc/inc/printopt.hxx new file mode 100644 index 000000000000..ec4624e0f679 --- /dev/null +++ b/sc/inc/printopt.hxx @@ -0,0 +1,69 @@ +/************************************************************************* + * + * $RCSfile: printopt.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_PRINTOPT_HXX +#define SC_PRINTOPT_HXX + +#error printopt.hxx nicht mehr verwenden! + + +#endif + diff --git a/sc/inc/prnsave.hxx b/sc/inc/prnsave.hxx new file mode 100644 index 000000000000..276375d44baf --- /dev/null +++ b/sc/inc/prnsave.hxx @@ -0,0 +1,112 @@ +/************************************************************************* + * + * $RCSfile: prnsave.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_PRNSAVE_HXX +#define SC_PRNSAVE_HXX + +#ifndef _SOLAR_H +#include <tools/solar.h> +#endif + +class ScRange; + +class ScPrintSaverTab +{ + USHORT nPrintCount; + ScRange* pPrintRanges; // Array + ScRange* pRepeatCol; // einzeln + ScRange* pRepeatRow; // einzeln + +public: + ScPrintSaverTab(); + ~ScPrintSaverTab(); + + void SetAreas( USHORT nCount, const ScRange* pRanges ); + void SetRepeat( const ScRange* pCol, const ScRange* pRow ); + + USHORT GetPrintCount() const { return nPrintCount; } + const ScRange* GetPrintRanges() const { return pPrintRanges; } + const ScRange* GetRepeatCol() const { return pRepeatCol; } + const ScRange* GetRepeatRow() const { return pRepeatRow; } + + BOOL operator==( const ScPrintSaverTab& rCmp ) const; +}; + +class ScPrintRangeSaver +{ + USHORT nTabCount; + ScPrintSaverTab* pData; // Array + +public: + ScPrintRangeSaver( USHORT nCount ); + ~ScPrintRangeSaver(); + + USHORT GetTabCount() const { return nTabCount; } + ScPrintSaverTab& GetTabData(USHORT nTab); + const ScPrintSaverTab& GetTabData(USHORT nTab) const; + + BOOL operator==( const ScPrintRangeSaver& rCmp ) const; +}; + + +#endif + + diff --git a/sc/inc/progress.hxx b/sc/inc/progress.hxx new file mode 100644 index 000000000000..daf7d1cd8a04 --- /dev/null +++ b/sc/inc/progress.hxx @@ -0,0 +1,185 @@ +/************************************************************************* + * + * $RCSfile: progress.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_PROGRESS_HXX +#define SC_PROGRESS_HXX + +#ifndef _SFX_PROGRESS_HXX //autogen +#include <sfx2/progress.hxx> +#endif + +class ScDocument; + +class ScProgress +{ +private: + static SfxProgress* pGlobalProgress; + static ULONG nGlobalRange; + static ULONG nGlobalPercent; + static BOOL bGlobalNoUserBreak; + static ScProgress* pInterpretProgress; + static ScProgress* pOldInterpretProgress; + static ULONG nInterpretProgress; + static BOOL bAllowInterpretProgress; + static ScDocument* pInterpretDoc; + static BOOL bIdleWasDisabled; + + SfxProgress* pProgress; + + // not implemented + ScProgress( const ScProgress& ); + ScProgress& operator=( const ScProgress& ); + + static void CalcGlobalPercent( ULONG nVal ) + { + nGlobalPercent = nGlobalRange ? + nVal * 100 / nGlobalRange : 0; + } + +public: + static SfxProgress* GetGlobalSfxProgress() { return pGlobalProgress; } + static BOOL IsUserBreak() { return !bGlobalNoUserBreak; } + static void CreateInterpretProgress( ScDocument* pDoc, + BOOL bWait = TRUE ); + static ScProgress* GetInterpretProgress() { return pInterpretProgress; } + static void DeleteInterpretProgress(); + static void SetAllowInterpret( BOOL bVal ); + static BOOL GetAllowInterpret() { return bAllowInterpretProgress; } + static ULONG GetInterpretCount() { return nInterpretProgress; } + static ULONG GetGlobalRange() { return nGlobalRange; } + static ULONG GetGlobalPercent() { return nGlobalPercent; } + + ScProgress( SfxObjectShell* pObjSh, + const String& rText, + ULONG nRange, BOOL bAllDocs = FALSE, + BOOL bWait = TRUE ); + ~ScProgress(); + +#ifdef SC_PROGRESS_CXX + // nur fuer DummyInterpret, sonst nie benutzen!!! + ScProgress(); +#endif + // kann NULL sein! + SfxProgress* GetSfxProgress() const { return pProgress; } + + BOOL SetStateText( ULONG nVal, const String &rVal, ULONG nNewRange = 0 ) + { + if ( pProgress ) + { + if ( nNewRange ) + nGlobalRange = nNewRange; + CalcGlobalPercent( nVal ); + if ( !pProgress->SetStateText( nVal, rVal, nNewRange ) ) + bGlobalNoUserBreak = FALSE; + return bGlobalNoUserBreak; + } + return TRUE; + } + BOOL SetState( ULONG nVal, ULONG nNewRange = 0 ) + { + if ( pProgress ) + { + if ( nNewRange ) + nGlobalRange = nNewRange; + CalcGlobalPercent( nVal ); + if ( !pProgress->SetState( nVal, nNewRange ) ) + bGlobalNoUserBreak = FALSE; + return bGlobalNoUserBreak; + } + return TRUE; + } + BOOL SetStateCountDown( ULONG nVal ) + { + if ( pProgress ) + { + CalcGlobalPercent( nGlobalRange - nVal ); + if ( !pProgress->SetState( nGlobalRange - nVal ) ) + bGlobalNoUserBreak = FALSE; + return bGlobalNoUserBreak; + } + return TRUE; + } + BOOL SetStateOnPercent( ULONG nVal ) + { // nur wenn Prozent mehr als vorher + if ( nGlobalRange && (nVal * 100 / + nGlobalRange) > nGlobalPercent ) + return SetState( nVal ); + return TRUE; + } + BOOL SetStateCountDownOnPercent( ULONG nVal ) + { // nur wenn Prozent mehr als vorher + if ( nGlobalRange && + ((nGlobalRange - nVal) * 100 / + nGlobalRange) > nGlobalPercent ) + return SetStateCountDown( nVal ); + return TRUE; + } + ULONG GetState() + { + if ( pProgress ) + return pProgress->GetState(); + return 0; + } +}; + + +#endif + diff --git a/sc/inc/rangelst.hxx b/sc/inc/rangelst.hxx new file mode 100644 index 000000000000..bebbffb98a66 --- /dev/null +++ b/sc/inc/rangelst.hxx @@ -0,0 +1,147 @@ +/************************************************************************* + * + * $RCSfile: rangelst.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_RANGELST_HXX +#define SC_RANGELST_HXX + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" +#endif + +class ScDocument; + +typedef ScRange* ScRangePtr; +DECLARE_LIST( ScRangeListBase, ScRangePtr ); +class ScRangeList : public ScRangeListBase, public SvRefBase +{ +public: + ScRangeList() {} + ScRangeList( const ScRangeList& rList ); + virtual ~ScRangeList(); + ScRangeList& operator=(const ScRangeList& rList); + void RemoveAll(); + ScRangeList* Clone() const; + void Append( const ScRange& rRange ) + { + ScRangePtr pR = new ScRange( rRange ); + Insert( pR, LIST_APPEND ); + } + USHORT Parse( const String&, ScDocument* = NULL, + USHORT nMask = SCA_VALID ); + void Format( String&, USHORT nFlags = 0, ScDocument* = NULL ) const; + void Join( const ScRange&, BOOL bIsInList = FALSE ); + BOOL UpdateReference( UpdateRefMode, ScDocument*, + const ScRange& rWhere, + short nDx, short nDy, short nDz ); + ScRange* Find( const ScAddress& ) const; + ScRange* Find( const ScRange& ) const; + BOOL Load( SvStream&, USHORT nVer ); + BOOL Store( SvStream& ) const; + BOOL operator==( const ScRangeList& ) const; + BOOL Intersects( const ScRange& ) const; + ULONG GetCellCount() const; +}; +SV_DECL_IMPL_REF( ScRangeList ); + + +// RangePairList: erster Range (aRange[0]) eigentlicher Range, zweiter +// Range (aRange[1]) Daten zu diesem Range, z.B. Rows eines ColName +DECLARE_LIST( ScRangePairListBase, ScRangePair* ); +class ScRangePairList : public ScRangePairListBase, public SvRefBase +{ +#if defined( ICC ) && defined( OS2 ) + friend static int _Optlink ICCQsortRPairCompare( const void*, const void*); +#endif +private: + static int +#ifdef WNT + __cdecl +#endif + QsortNameCompare( const void*, const void* ); + +public: + virtual ~ScRangePairList(); + ScRangePairList* Clone() const; + void Append( const ScRangePair& rRangePair ) + { + ScRangePair* pR = new ScRangePair( rRangePair ); + Insert( pR, LIST_APPEND ); + } + void Join( const ScRangePair&, BOOL bIsInList = FALSE ); + BOOL UpdateReference( UpdateRefMode, ScDocument*, + const ScRange& rWhere, + short nDx, short nDy, short nDz ); + ScRangePair* Find( const ScAddress& ) const; + ScRangePair* Find( const ScRange& ) const; + BOOL Load( SvStream&, USHORT nVer ); + BOOL Store( SvStream& ) const; + ScRangePair** CreateNameSortedArray( ULONG& nCount, ScDocument* ) const; + BOOL operator==( const ScRangePairList& ) const; +}; +SV_DECL_IMPL_REF( ScRangePairList ); + +#if defined( ICC ) && defined( SC_RANGELST_CXX ) && defined( OS2 ) + static int _Optlink ICCQsortRPairCompare( const void* a, const void* b) + { ScRangePairList::QsortNameCompare(a,b); } +#endif + + +#endif diff --git a/sc/inc/rangenam.hxx b/sc/inc/rangenam.hxx new file mode 100644 index 000000000000..c3e90421f5fb --- /dev/null +++ b/sc/inc/rangenam.hxx @@ -0,0 +1,254 @@ +/************************************************************************* + * + * $RCSfile: rangenam.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_RANGENAM_HXX +#define SC_RANGENAM_HXX + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" // -> enum UpdateRefMode +#endif +#ifndef SC_COLLECT_HXX +#include "collect.hxx" +#endif + +//------------------------------------------------------------------------ + +class ScDocument; +class ScMultipleReadHeader; +class ScMultipleWriteHeader; + +//------------------------------------------------------------------------ + +typedef USHORT RangeType; + +#define RT_NAME ((RangeType)0x0000) +#define RT_DATABASE ((RangeType)0x0001) +#define RT_CRITERIA ((RangeType)0x0002) +#define RT_PRINTAREA ((RangeType)0x0004) +#define RT_COLHEADER ((RangeType)0x0008) +#define RT_ROWHEADER ((RangeType)0x0010) +#define RT_ABSAREA ((RangeType)0x0020) +#define RT_REFAREA ((RangeType)0x0040) +#define RT_ABSPOS ((RangeType)0x0080) +#define RT_SHARED ((RangeType)0x0100) +#define RT_SHAREDMOD ((RangeType)0x0200) + +//------------------------------------------------------------------------ + +class ScTokenArray; +class ScIndexMap; + +class ScRangeData : public DataObject +{ +#if defined( ICC ) && defined( OS2 ) + friend static int _Optlink ICCQsortNameCompare( const void* a, const void* b); +#endif +private: + String aName; + ScTokenArray* pCode; + ScAddress aPos; + RangeType eType; + ScDocument* pDoc; + USHORT nIndex; + USHORT nExportIndex; + BOOL bModified; // wird bei UpdateReference gesetzt/geloescht + + friend class ScRangeName; + ScRangeData( USHORT nIndex ); +public: + ScRangeData( ScDocument* pDoc, + const String& rName, + const String& rSymbol, + USHORT nCol = 0, + USHORT nRow = 0, + USHORT nTab = 0, + RangeType nType = RT_NAME, + BOOL bEnglish = FALSE ); + ScRangeData( ScDocument* pDoc, + const String& rName, + const ScTokenArray& rArr, + USHORT nCol = 0, + USHORT nRow = 0, + USHORT nTab = 0, + RangeType nType = RT_NAME ); + ScRangeData( ScDocument* pDoc, + const String& rName, + const ScAddress& rTarget ); + // rTarget ist ABSPOS Sprungmarke + ScRangeData(const ScRangeData& rScRangeData); + ScRangeData( SvStream& rStream, + ScMultipleReadHeader& rHdr, + USHORT nVer ); + + virtual ~ScRangeData(); + + + virtual DataObject* Clone() const; + + BOOL Store( SvStream& rStream, ScMultipleWriteHeader& rHdr ) const; + + BOOL operator== (const ScRangeData& rData) const; + + void GetName( String& rName ) const { rName = aName; } + const String& GetName( void ) const { return aName; } + ScAddress GetPos() const { return aPos; } + // Der Index muss eindeutig sein. Ist er 0, wird ein neuer Index vergeben + void SetIndex( USHORT nInd ) { nIndex = nExportIndex = nInd; } + const USHORT GetIndex() { return nIndex; } + void SetExportIndex( USHORT nInd ) { nExportIndex = nInd; } + const USHORT GetExportIndex() { return nExportIndex; } + ScTokenArray* GetCode() { return pCode; } + USHORT GetErrCode(); + BOOL HasReferences() const; + void SetDocument( ScDocument* pDocument){ pDoc = pDocument; } + ScDocument* GetDocument() const { return pDoc; } + void SetType( RangeType nType ) { eType = nType; } + void AddType( RangeType nType ) { eType = eType|nType; } + RangeType GetType() const { return eType; } + BOOL HasType( RangeType nType ) const; + void GetSymbol(String& rSymbol) const; + void GetEnglishSymbol(String& rSymbol, BOOL bCompileXML = FALSE) const; + void UpdateSymbol( String& rSymbol, const ScAddress& ); + void UpdateReference( UpdateRefMode eUpdateRefMode, + const ScRange& r, + short nDx, short nDy, short nDz ); + BOOL IsModified() const { return bModified; } + + void GuessPosition(); + + void UpdateTranspose( const ScRange& rSource, const ScAddress& rDest ); + void UpdateGrow( const ScRange& rArea, USHORT nGrowX, USHORT nGrowY ); + + BOOL IsReference( ScRange& rRef ) const; + + BOOL IsRangeAtCursor( const ScAddress&, BOOL bStartOnly ) const; + BOOL IsRangeAtBlock( const ScRange& ) const; + + void UpdateTabRef(USHORT nOldTable, USHORT nFlag, USHORT nNewTable); + void TransferTabRef( USHORT nOldTab, USHORT nNewTab ); + + void ReplaceRangeNamesInUse( const ScIndexMap& rMap ); + + BOOL IsBeyond( USHORT nMaxRow ) const; + + static void MakeValidName( String& rName ); + static BOOL IsNameValid( const String& rName, ScDocument* pDoc ); +#ifdef WNT + static int __cdecl QsortNameCompare( const void*, const void* ); +#else + static int QsortNameCompare( const void*, const void* ); +#endif +}; + +inline BOOL ScRangeData::HasType( RangeType nType ) const +{ + return ( ( eType & nType ) == nType ); +} + +#if defined( ICC ) && defined( OS2 ) + static int _Optlink ICCQsortNameCompare( const void* a, const void* b) + { ScRangeData::QsortNameCompare(a,b); } +#endif + +//------------------------------------------------------------------------ + +class ScRangeName : public SortedCollection +{ +private: + ScDocument* pDoc; + USHORT nSharedMaxIndex; +public: + ScRangeName(USHORT nLim = 4, USHORT nDel = 4, BOOL bDup = FALSE, + ScDocument* pDocument = NULL) : + SortedCollection ( nLim, nDel, bDup ), + pDoc ( pDocument ), + nSharedMaxIndex ( 1 ) {} // darf nicht 0 sein!! + + ScRangeName(const ScRangeName& rScRangeName, ScDocument* pDocument); + + virtual DataObject* Clone(ScDocument* pDoc) const + { return new ScRangeName(*this, pDoc); } + ScRangeData* operator[]( const USHORT nIndex) const + { return (ScRangeData*)At(nIndex); } + virtual short Compare(DataObject* pKey1, DataObject* pKey2) const; + virtual BOOL IsEqual(DataObject* pKey1, DataObject* pKey2) const; + + ScRangeData* GetRangeAtCursor( const ScAddress&, BOOL bStartOnly ) const; + ScRangeData* GetRangeAtBlock( const ScRange& ) const; + + BOOL Load( SvStream& rStream, USHORT nVer ); + BOOL Store( SvStream& rStream ) const; + BOOL SearchName( const String& rName, USHORT& rPos ) const; + void UpdateReference(UpdateRefMode eUpdateRefMode, + const ScRange& rRange, + short nDx, short nDy, short nDz ); + void UpdateTabRef(USHORT nTable, USHORT nFlag, USHORT nNewTable = 0); + void UpdateTranspose( const ScRange& rSource, const ScAddress& rDest ); + void UpdateGrow( const ScRange& rArea, USHORT nGrowX, USHORT nGrowY ); + virtual BOOL Insert(DataObject* pDataObject); + ScRangeData* FindIndex(USHORT nIndex); + USHORT GetSharedMaxIndex() { return nSharedMaxIndex; } + void SetSharedMaxIndex(USHORT nInd) { nSharedMaxIndex = nInd; } + USHORT GetEntryIndex(); +}; + +#endif + diff --git a/sc/inc/rangeseq.hxx b/sc/inc/rangeseq.hxx new file mode 100644 index 000000000000..29f506aedf53 --- /dev/null +++ b/sc/inc/rangeseq.hxx @@ -0,0 +1,101 @@ +/************************************************************************* + * + * $RCSfile: rangeseq.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_RANGESEQ_HXX +#define SC_RANGESEQ_HXX + +#ifndef _SOLAR_H +#include <tools/solar.h> +#endif + +#ifndef _COM_SUN_STAR_UNO_ANY_H_ +#include <com/sun/star/uno/Any.h> +#endif + +class SvNumberFormatter; +class ScDocument; +class ScRange; +class ScMatrix; + +class ScRangeToSequence +{ +public: + static BOOL FillLongArray( com::sun::star::uno::Any& rAny, + ScDocument* pDoc, const ScRange& rRange ); + static BOOL FillLongArray( com::sun::star::uno::Any& rAny, + const ScMatrix* pMatrix ); + static BOOL FillDoubleArray( com::sun::star::uno::Any& rAny, + ScDocument* pDoc, const ScRange& rRange ); + static BOOL FillDoubleArray( com::sun::star::uno::Any& rAny, + const ScMatrix* pMatrix ); + static BOOL FillStringArray( com::sun::star::uno::Any& rAny, + ScDocument* pDoc, const ScRange& rRange ); + static BOOL FillStringArray( com::sun::star::uno::Any& rAny, + const ScMatrix* pMatrix, SvNumberFormatter* pFormatter ); + static BOOL FillMixedArray( com::sun::star::uno::Any& rAny, + ScDocument* pDoc, const ScRange& rRange ); + static BOOL FillMixedArray( com::sun::star::uno::Any& rAny, + const ScMatrix* pMatrix ); +}; + + +#endif + diff --git a/sc/inc/rangeutl.hxx b/sc/inc/rangeutl.hxx new file mode 100644 index 000000000000..f458469aa84e --- /dev/null +++ b/sc/inc/rangeutl.hxx @@ -0,0 +1,198 @@ +/************************************************************************* + * + * $RCSfile: rangeutl.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_RANGEUTL_HXX +#define SC_RANGEUTL_HXX + +#ifndef _STRING_HXX //autogen +#include <tools/string.hxx> +#endif + +//------------------------------------------------------------------------ + +class SvStream; + +class ScArea; +class ScDocument; +class ScRefTripel; +class ScTripel; +class ScRange; +class ScRangeName; +class ScDBCollection; + +enum RutlNameScope { RUTL_NONE=0, RUTL_NAMES, RUTL_DBASE }; + +//------------------------------------------------------------------------ + +class ScRangeUtil +{ +public: + ScRangeUtil() {} + ~ScRangeUtil() {} + + BOOL MakeArea ( const String& rAreaStr, + ScArea& rArea, + ScDocument* pDoc, + USHORT nTab ) const; + + void MakeAreaString ( const ScArea& rArea, + String& rAreaStr, + ScDocument* pDoc, + BOOL bRel = FALSE ) const; + + void MakeTabAreaString ( const ScTripel& rAreaStart, + const ScTripel& rAreaEnd, + String& rAreaStr, + ScDocument* pDoc ) const; + + void CutPosString ( const String& theAreaStr, + String& thePosStr ) const; + + BOOL IsAbsTabArea ( const String& rAreaStr, + ScDocument* pDoc, + ScArea*** pppAreas = 0, + USHORT* pAreaCount = 0 ) const; + + BOOL IsAbsArea ( const String& rAreaStr, + ScDocument* pDoc, + USHORT nTab, + String* pCompleteStr = 0, + ScRefTripel* pStartPos = 0, + ScRefTripel* pEndPos = 0 ) const; + + BOOL IsRefArea ( const String& rAreaStr, + ScDocument* pDoc, + USHORT nTab, + String* pCompleteStr = 0, + ScRefTripel* pPosTripel = 0 ) const + { return FALSE; } + + BOOL IsAbsPos ( const String& rPosStr, + ScDocument* pDoc, + USHORT nTab, + String* pCompleteStr = 0, + ScRefTripel* pPosTripel = 0 ) const; + + BOOL MakeRangeFromName ( const String& rName, + ScDocument* pDoc, + USHORT nCurTab, + ScRange& rRange, + RutlNameScope eScope=RUTL_NAMES + ) const; +}; + +//------------------------------------------------------------------------ + +class ScArea +{ +public: + ScArea( USHORT tab = 0, + USHORT colStart = 0, + USHORT rowStart = 0, + USHORT colEnd = 0, + USHORT rowEnd = 0 ); + + ScArea( const ScArea& r ); + + void Clear (); + ScArea& operator= ( const ScArea& r ); + BOOL operator== ( const ScArea& r ) const; + BOOL operator!= ( const ScArea& r ) const { return !( operator==(r) ); } + void GetString ( String& rStr, + BOOL bAbsolute = TRUE, ScDocument* pDoc = NULL ) const; + +public: + USHORT nTab; + USHORT nColStart; + USHORT nRowStart; + USHORT nColEnd; + USHORT nRowEnd; +}; + +SvStream& operator<< ( SvStream& rStream, const ScArea& rArea ); +SvStream& operator>> ( SvStream& rStream, ScArea& rArea ); + +//------------------------------------------------------------------------ + +// +// gibt Bereiche mit Referenz und alle DB-Bereiche zurueck +// + +class ScAreaNameIterator +{ +private: + ScRangeName* pRangeName; + ScDBCollection* pDBCollection; + BOOL bFirstPass; + USHORT nPos; + String aStrNoName; + +public: + ScAreaNameIterator( ScDocument* pDoc ); + ~ScAreaNameIterator() {} + + BOOL Next( String& rName, ScRange& rRange ); + BOOL WasDBName() const { return !bFirstPass; } +}; + + +#endif // SC_RANGEUTL_HXX + diff --git a/sc/inc/rechead.hxx b/sc/inc/rechead.hxx new file mode 100644 index 000000000000..8192898ae6a9 --- /dev/null +++ b/sc/inc/rechead.hxx @@ -0,0 +1,233 @@ +/************************************************************************* + * + * $RCSfile: rechead.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_RECHEAD_HXX +#define SC_RECHEAD_HXX + +#ifndef _STREAM_HXX //autogen +#include <tools/stream.hxx> +#endif + +// ID's fuer Dateien: + +#define SCID_SIZES 0x4200 + +#define SCID_POOLS 0x4210 +#define SCID_DOCPOOL 0x4211 +#define SCID_STYLEPOOL 0x4212 +#define SCID_NEWPOOLS 0x4213 // ID fuer SC 3.0a +#define SCID_EDITPOOL 0x4214 + +#define SCID_DOCUMENT 0x4220 +#define SCID_DOCFLAGS 0x4221 +#define SCID_TABLE 0x4222 +#define SCID_DRAWING 0x4223 +#define SCID_RANGENAME 0x4224 +#define SCID_DBAREAS 0x4225 +#define SCID_PIVOT 0x4226 +#define SCID_CHARTS 0x4227 +#define SCID_NUMFORMAT 0x4228 +#define SCID_DOCOPTIONS 0x4229 +#define SCID_VIEWOPTIONS 0x422a +#define SCID_PRINTSETUP 0x422b +#define SCID_CHARSET 0x422c +#define SCID_NEWDOCUMENT 0x422d // ID fuer SC 3.0a +#define SCID_DDELINKS 0x422e +#define SCID_AREALINKS 0x422f +#define SCID_CONDFORMATS 0x4230 +#define SCID_VALIDATION 0x4231 +#define SCID_COLNAMERANGES 0x4232 +#define SCID_ROWNAMERANGES 0x4233 +#define SCID_DETOPLIST 0x4234 +#define SCID_CONSOLIDATA 0x4235 +#define SCID_CHANGETRACK 0x4236 +#define SCID_CHGVIEWSET 0x4237 +#define SCID_LINKUPMODE 0x4238 +#define SCID_DATAPILOT 0x4239 + +#define SCID_COLUMNS 0x4240 +#define SCID_COLROWFLAGS 0x4241 +#define SCID_TABOPTIONS 0x4242 +#define SCID_TABLINK 0x4243 + +#define SCID_COLDATA 0x4250 +#define SCID_COLNOTES 0x4251 +#define SCID_COLATTRIB 0x4252 + +#define SCID_DRAWPOOL 0x4260 +#define SCID_DRAWMODEL 0x4261 + + + +// Dateiversion +// Falls das obere Byte inkrementiert wird, wird das Doc von +// aelteren SCs nicht mehr geladen! + +#define SC_INITIAL_VERSION 0x0001 +#define SC_FORMULA_LCLVER 0x0002 // Formalen mit lokaler VerNr +//-------------------------------- +#define SC_NEW_TOKEN_ARRAYS 0x0003 // neues TokenArray-Format +#define SC_FORMULA_VALUES 0x0004 // Werte in Formelzellen +#define SC_FORMULA_VALUES2 0x0005 // Werte in Formelzellen +#define SC_DATABYTES 0x0006 // Datenbytes, kleine Tables +#define SC_DATABYTES2 0x0007 // Datenbytes, kleine Tables +#define SC_NUMFMT 0x0008 // Zahlenformat an Formelzelle +#define SC_NEWIF 0x0009 // neue Codierung von ocIf (komp.) +//-------------------------------- +#define SC_RELATIVE_REFS 0x0010 // relative Referenzen +#define SC_SUBTOTAL_FLAG 0x0011 // bSubTotal der Formelzelle +#define SC_COLROWNAME_RANGEPAIR 0x0012 // ColRowNameRanges als ScRangePair +//-------------------------------- +#define SC_31_EXPORT_VER 0x0012 // Version bei 3.1-Export +//-------------------------------- ab 4.0 +#define SC_32K_ROWS 0x0100 // 32000 Zeilen - inkompatibel +#define SC_FONTCHARSET 0x0101 // Font-CharSets muessen stimmen +//-------------------------------- +#define SC_40_EXPORT_VER 0x0101 // Version bei 4.0-Export +//-------------------------------- ab 5.0 +#define SC_RECALC_MODE_BITS 0x0201 // TokenArray RecalcMode +#define SC_MATRIX_DOUBLEREF 0x0202 // DoubleRef implizite Schnittmenge +#define SC_VERSION_EDITPOOL 0x0203 // EditCells mit EditPool +#define SC_SUBTOTAL_BUGFIX 0x0204 // bSubTotal der Formelzelle wirklich +//-------------------------------- ab 5.2 +#define SC_CONVERT_RECALC_ON_LOAD 0x0205 // #73616# CONVERT function recalculated on each load +//-------------------------------- +#define SC_CURRENT_VERSION 0x0205 + + +// alles ueber SC_31_EXPORT_VER muss auch beim Speichern abgefragt werden, +// weil 3.1-Export diese Versionsnummer schreibt. + +// btw: 10 nach 09 ist kein Zaehlfehler sondern eine absichtliche Luecke, +// weil nicht klar war, wie lange die RelRefs Entwicklung dauern wuerde.. :) + +class SvStream; + +// ----------------------------------------------------------------------- + +// "Automatischer" Record-Header mit Groessenangabe + +class ScReadHeader +{ +private: + SvStream& rStream; + ULONG nDataEnd; + +public: + ScReadHeader(SvStream& rNewStream); + ~ScReadHeader(); + + ULONG BytesLeft() const; +}; + +class ScWriteHeader +{ +private: + SvStream& rStream; + ULONG nDataPos; + ULONG nDataSize; + +public: + ScWriteHeader(SvStream& rNewStream, ULONG nDefault = 0); + ~ScWriteHeader(); +}; + + // Header mit Groessenangaben fuer mehrere Objekte + +class ScMultipleReadHeader +{ +private: + SvStream& rStream; + BYTE* pBuf; + SvMemoryStream* pMemStream; + ULONG nEndPos; + ULONG nEntryEnd; + ULONG nTotalEnd; + +public: + ScMultipleReadHeader(SvStream& rNewStream); + ~ScMultipleReadHeader(); + + void StartEntry(); + void EndEntry(); + ULONG BytesLeft() const; +}; + +class ScMultipleWriteHeader +{ +private: + SvStream& rStream; + SvMemoryStream aMemStream; + ULONG nDataPos; + ULONG nDataSize; + ULONG nEntryStart; + +public: + ScMultipleWriteHeader(SvStream& rNewStream, ULONG nDefault = 0); + ~ScMultipleWriteHeader(); + + void StartEntry(); + void EndEntry(); +}; + +#endif + + diff --git a/sc/inc/reffind.hxx b/sc/inc/reffind.hxx new file mode 100644 index 000000000000..956c9ea6fc74 --- /dev/null +++ b/sc/inc/reffind.hxx @@ -0,0 +1,100 @@ +/************************************************************************* + * + * $RCSfile: reffind.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:50 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_REFFIND_HXX +#define SC_REFFIND_HXX + +#ifndef _STRING_HXX //autogen +#include <tools/string.hxx> +#endif + +class ScDocument; + +// ----------------------------------------------------------------------- + +class ScRefFinder +{ +private: + String aFormula; + ScDocument* pDoc; + xub_StrLen nFound; + xub_StrLen nSelStart; + xub_StrLen nSelEnd; + +public: + static const sal_Unicode __FAR_DATA pDelimiters[]; + + ScRefFinder( const String& rFormula, ScDocument* pDocument = NULL ); + ~ScRefFinder(); + + const String& GetText() const { return aFormula; } + xub_StrLen GetFound() const { return nFound; } + xub_StrLen GetSelStart() const { return nSelStart; } + xub_StrLen GetSelEnd() const { return nSelEnd; } + + void ToggleRel( xub_StrLen nStartPos, xub_StrLen nEndPos ); +}; + + + +#endif + + diff --git a/sc/inc/rtfimp.hxx b/sc/inc/rtfimp.hxx new file mode 100644 index 000000000000..a21bd1b3fcce --- /dev/null +++ b/sc/inc/rtfimp.hxx @@ -0,0 +1,75 @@ +/************************************************************************* + * + * $RCSfile: rtfimp.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:50 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_RTFIMP_HXX +#define SC_RTFIMP_HXX + +#include "eeimport.hxx" + +class ScRTFImport : public ScEEImport +{ +public: + ScRTFImport( ScDocument* pDoc, const ScRange& rRange ); + ~ScRTFImport(); +}; + + +#endif diff --git a/sc/inc/sc.hrc b/sc/inc/sc.hrc new file mode 100644 index 000000000000..8c1efb86f7cc --- /dev/null +++ b/sc/inc/sc.hrc @@ -0,0 +1,1370 @@ +/************************************************************************* + * + * $RCSfile: sc.hrc,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:50 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#ifndef SC_SC_HRC +#define SC_SC_HRC + +#ifndef _SFX_HRC +#include <sfx2/sfx.hrc> // ->#include <solar.hrc> +#endif + +#ifndef _SVX_DIALOGS_HRC +#include <svx/dialogs.hrc> // ->Svx-IDs +#endif + +#define VAR_ARGS 30 // variable Parameter in scfuncs.src + +#define RID_HANDLEBITMAP 10005 + +// Bereiche ------------------------------------------------------------------ + +#define SC_VIEW_START (SID_SC_START) +#define SC_VIEW_END (SID_SC_START + 99) +#define SC_MESSAGE_START (SID_SC_START + 100) +#define SC_MESSAGE_END (SID_SC_START + 199) +#define SC_FUNCTION_START (SID_SC_START + 200) +#define SC_FUNCTION_END (SID_SC_START + 299) +#define SC_PARAM_START (SID_SC_START + 300) +#define SC_PARAM_END (SID_SC_START + 399) + +// kompatibel zu frueher bleiben: +#define SC_RESOURCE_START (RID_APP_START+5000) +#define SC_RESOURCE_END (RID_APP_END) + +// --------------------------------------------------------------------------- +// Hilfe IDs ----------------------------------------------------------------- +// Calc hat einen Bereich von 2000 IDs +// Die Funktionen brauchen 11*90 = 990 IDs + +#define HID_SC_FUNC_START (HID_SC_START + 0) +#define HID_INSWIN_START (HID_SC_START + 1000) +#define HID_SC_SHEET_START (HID_SC_START + 1010) +#define HID_SC_SHELL_START (HID_SC_START + 1030) +#define HID_SC_WIN_START (HID_SC_START + 1050) +#define HID_SC_CONTROL_START (HID_SC_START + 1070) +#define HID_SC_DLG_START (HID_SC_START + 1100) +#define HID_SC_TOOLBOX_START (HID_SC_START + 1170) +#define HID_SC_MENU_START (HID_SC_START + 1180) + +// --------------------------------------------------------------------------- + +#define HID_INSWIN_POS (HID_INSWIN_START + 0 ) +#define HID_INSWIN_CALC (HID_INSWIN_START + 1 ) +#define HID_INSWIN_CANCEL (HID_INSWIN_START + 2 ) +#define HID_INSWIN_OK (HID_INSWIN_START + 3 ) +#define HID_INSWIN_SUMME (HID_INSWIN_START + 4 ) +#define HID_INSWIN_FUNC (HID_INSWIN_START + 5 ) +#define HID_INSWIN_INPUT (HID_INSWIN_START + 6 ) + +// Hilfe IDs fuer Vorlagen --------------------------------------------------- +#define HID_SC_SHEET_CELL_STD (HID_SC_SHEET_START +0 ) +#define HID_SC_SHEET_CELL_ERG (HID_SC_SHEET_START +1 ) +#define HID_SC_SHEET_CELL_ERG1 (HID_SC_SHEET_START +2 ) +#define HID_SC_SHEET_CELL_UEB (HID_SC_SHEET_START +3 ) +#define HID_SC_SHEET_CELL_UEB1 (HID_SC_SHEET_START +4 ) +#define HID_SC_SHEET_PAGE_STD (HID_SC_SHEET_START +10 ) +#define HID_SC_SHEET_PAGE_REP (HID_SC_SHEET_START +11 ) + +// Hilfe IDs fuer Shells (Helferlein) (max.20) ------------------------------- +#define HID_SCSHELL_APP (HID_SC_SHELL_START +0 ) +#define HID_SCSHELL_DOCSH (HID_SC_SHELL_START +1 ) +#define HID_SCSHELL_DRAWSH (HID_SC_SHELL_START +2 ) +#define HID_SCSHELL_DRTXTOB (HID_SC_SHELL_START +3 ) +#define HID_SCSHELL_PIVOTSH (HID_SC_SHELL_START +4 ) +#define HID_SCSHELL_PREVWSH (HID_SC_SHELL_START +5 ) +#define HID_SCSHELL_TABVWSH (HID_SC_SHELL_START +6 ) +#define HID_SCSHELL_AUDIT (HID_SC_SHELL_START +7 ) +#define HID_SCSHELL_DRAWFORMSH (HID_SC_SHELL_START +8 ) +#define HID_SCSHELL_CELLSH (HID_SC_SHELL_START +9 ) +#define HID_SCSHELL_FORMATSH (HID_SC_SHELL_START +10) +#define HID_SCSHELL_OLEOBEJCTSH (HID_SC_SHELL_START +11) +#define HID_SCSHELL_CHARTSH (HID_SC_SHELL_START +12) +#define HID_SCSHELL_GRAPHIC (HID_SC_SHELL_START +13) +#define HID_SCSHELL_PAGEBREAK (HID_SC_SHELL_START +14) + +// Hilfe IDs fuer Dokumentfenster -------------------------------------------- +#define HID_SC_WIN_GRIDWIN ( HID_SC_WIN_START ) +#define HID_SC_WIN_PREVIEW ( HID_SC_WIN_START + 1 ) + +// Hilfe IDs fuer einzelne Controls (max.30) --------------------------------- +// Kopf/Fusszeilen Editfenster: Header/Footer links/rechts links/mitte/rechts +#define HID_SC_HF_HLL ( HID_SC_CONTROL_START + 0 ) +#define HID_SC_HF_HLC ( HID_SC_CONTROL_START + 1 ) +#define HID_SC_HF_HLR ( HID_SC_CONTROL_START + 2 ) +#define HID_SC_HF_HRL ( HID_SC_CONTROL_START + 3 ) +#define HID_SC_HF_HRC ( HID_SC_CONTROL_START + 4 ) +#define HID_SC_HF_HRR ( HID_SC_CONTROL_START + 5 ) +#define HID_SC_HF_FLL ( HID_SC_CONTROL_START + 6 ) +#define HID_SC_HF_FLC ( HID_SC_CONTROL_START + 7 ) +#define HID_SC_HF_FLR ( HID_SC_CONTROL_START + 8 ) +#define HID_SC_HF_FRL ( HID_SC_CONTROL_START + 9 ) +#define HID_SC_HF_FRC ( HID_SC_CONTROL_START + 10 ) +#define HID_SC_HF_FRR ( HID_SC_CONTROL_START + 11 ) +// "Spalten" in Teilergebnissen: Gruppe 1/2/3 - nicht mehr! +//#define HID_SC_SUBT_COLS_1 ( HID_SC_CONTROL_START + 12 ) +//#define HID_SC_SUBT_COLS_2 ( HID_SC_CONTROL_START + 13 ) +//#define HID_SC_SUBT_COLS_3 ( HID_SC_CONTROL_START + 14 ) +// Eintraege im Navigator +#define HID_SC_NAVIPI_ENTRIES ( HID_SC_CONTROL_START + 15 ) +#define HID_SC_NAVIPI_ROW ( HID_SC_CONTROL_START + 16 ) +#define HID_SC_NAVIPI_COL ( HID_SC_CONTROL_START + 17 ) +#define HID_SC_NAVIPI_DOC ( HID_SC_CONTROL_START + 18 ) +#define HID_SC_NAVIPI_DATA ( HID_SC_CONTROL_START + 19 ) +#define HID_SC_NAVIPI_UP ( HID_SC_CONTROL_START + 20 ) +#define HID_SC_NAVIPI_DOWN ( HID_SC_CONTROL_START + 21 ) +#define HID_SC_NAVIPI_ZOOM ( HID_SC_CONTROL_START + 22 ) +#define HID_SC_NAVIPI_ROOT ( HID_SC_CONTROL_START + 23 ) +#define HID_SC_NAVIPI_SCEN ( HID_SC_CONTROL_START + 24 ) +#define HID_SC_NAVIPI_DROP ( HID_SC_CONTROL_START + 25 ) +// Teilergebnisse +#define HID_SC_SUBT_GROUP ( HID_SC_CONTROL_START + 26 ) +#define HID_SC_SUBT_COLS ( HID_SC_CONTROL_START + 27 ) +#define HID_SC_SUBT_FUNC ( HID_SC_CONTROL_START + 28 ) +// +#define HID_SC_NAVIPI_TOOLBOX ( HID_SC_CONTROL_START + 29 ) +// Bereich ist voll! + +// Hilfe IDs fuer Dialoge / Pages (max.70) ----------------------------------- +#define HID_SC_AUTOFORMAT (HID_SC_DLG_START ) +#define HID_SC_PIVOTFILTER (HID_SC_DLG_START +1 ) +#define HID_SC_INPORTOPT (HID_SC_DLG_START +2 ) +#define HID_SC_PIVOTSUBT (HID_SC_DLG_START +3 ) +#define HID_SC_FORM_ARGS (HID_SC_DLG_START +4 ) +#define HID_SCPAGE_SORT_FIELDS (HID_SC_DLG_START +5 ) +#define HID_SCPAGE_SORT_OPTIONS (HID_SC_DLG_START +6 ) +#define HID_SCPAGE_SUBT_OPTIONS (HID_SC_DLG_START +7 ) +#define HID_SCPAGE_SUBT_GROUP (HID_SC_DLG_START +8 ) +#define HID_SCPAGE_PROTECTION (HID_SC_DLG_START +9 ) +#define HID_SCPAGE_VIEW (HID_SC_DLG_START +10 ) +#define HID_SCPAGE_CALC (HID_SC_DLG_START +11 ) +#define HID_SCPAGE_USERLISTS (HID_SC_DLG_START +12 ) +#define HID_SCPAGE_HFEDIT (HID_SC_DLG_START +13 ) +#define HID_SCPAGE_AREAS (HID_SC_DLG_START +14 ) +#define HID_SCPAGE_TABLE (HID_SC_DLG_START +15 ) +#define HID_SCPAGE_PRINT (HID_SC_DLG_START +16 ) + +#define HID_SCPAGE_SUBT_GROUP1 (HID_SC_DLG_START +17 ) +#define HID_SCPAGE_SUBT_GROUP2 (HID_SC_DLG_START +18 ) +#define HID_SCPAGE_SUBT_GROUP3 (HID_SC_DLG_START +19 ) + +#define HID_SCPAGE_HFED_HL (HID_SC_DLG_START +20 ) +#define HID_SCPAGE_HFED_HR (HID_SC_DLG_START +21 ) +#define HID_SCPAGE_HFED_FL (HID_SC_DLG_START +22 ) +#define HID_SCPAGE_HFED_FR (HID_SC_DLG_START +23 ) + +#define HID_SCPAGE_CONTENT (HID_SC_DLG_START +24 ) +#define HID_SCPAGE_LAYOUT (HID_SC_DLG_START +25 ) +#define HID_SCPAGE_INPUT (HID_SC_DLG_START +26 ) + +#define HID_SC_NAVIGATOR (HID_SC_DLG_START +27 ) + +#define HID_SC_MTRIN_VAL (HID_SC_DLG_START +28 ) +#define HID_SC_MTRIN_DEF (HID_SC_DLG_START +29 ) +#define HID_SC_SELENTRY_LIST (HID_SC_DLG_START +30 ) +#define HID_SC_GROUP_COLS (HID_SC_DLG_START +31 ) +#define HID_SC_GROUP_ROWS (HID_SC_DLG_START +32 ) + +#define HID_SC_HF_TEXT (HID_SC_DLG_START +33 ) +#define HID_SC_HF_FILE (HID_SC_DLG_START +34 ) +#define HID_SC_HF_TABLE (HID_SC_DLG_START +35 ) +#define HID_SC_HF_PAGE (HID_SC_DLG_START +36 ) +#define HID_SC_HF_PAGES (HID_SC_DLG_START +37 ) +#define HID_SC_HF_DATE (HID_SC_DLG_START +38 ) +#define HID_SC_HF_TIME (HID_SC_DLG_START +39 ) + +#define HID_SC_HEADER_EDIT (HID_SC_DLG_START +40 ) +#define HID_SC_FOOTER_EDIT (HID_SC_DLG_START +41 ) + +#define HID_SC_SCENWIN_TOP (HID_SC_DLG_START +42 ) +#define HID_SC_SCENWIN_BOTTOM (HID_SC_DLG_START +43 ) + +#define HID_SC_INPUTWIN (HID_SC_DLG_START +44 ) + +#define HID_SC_RENAME_NAME (HID_SC_DLG_START +45 ) +#define HID_SC_APPEND_NAME (HID_SC_DLG_START +46 ) + +// Funktionsautopilot: nur als Unique-IDs +#define HID_SC_FAP_PAGE (HID_SC_DLG_START +47 ) +#define HID_SC_FAP_EDIT1 (HID_SC_DLG_START +48 ) +#define HID_SC_FAP_EDIT2 (HID_SC_DLG_START +49 ) +#define HID_SC_FAP_EDIT3 (HID_SC_DLG_START +50 ) +#define HID_SC_FAP_EDIT4 (HID_SC_DLG_START +51 ) + +#define HID_SC_ADD_AUTOFMT (HID_SC_DLG_START +52 ) +#define HID_SC_AUTOFMT_NAME (HID_SC_DLG_START +53 ) + +#define HID_SC_DROPMODE_URL (HID_SC_DLG_START +54 ) +#define HID_SC_DROPMODE_LINK (HID_SC_DLG_START +55 ) +#define HID_SC_DROPMODE_COPY (HID_SC_DLG_START +56 ) + +#define HID_SC_FAP_STRUCT (HID_SC_DLG_START +57 ) +#define HID_SC_ASCII_TABCTR (HID_SC_DLG_START +58 ) + +#define HID_SC_SCENARIO_DELETE (HID_SC_DLG_START +59 ) +#define HID_SC_SCENARIO_EDIT (HID_SC_DLG_START +60 ) + +#define HID_SCDLG_FORMULA (HID_SC_DLG_START +61 ) +#define HID_SCDLG_CONDFORMAT (HID_SC_DLG_START +62 ) +#define HID_COLROWNAMERANGES (HID_SC_DLG_START +63 ) + +#define HID_FUNCTION_BOX (HID_SC_DLG_START +64 ) +#define HID_SCPAGE_OPREDLINE (HID_SC_DLG_START +65 ) +#define HID_SC_REDLIN_CTR (HID_SC_DLG_START +66 ) + +//Kopf/FusszeilenDlg: Contextmenue fuer Dateiname +#define HID_FCOMMAND_TITEL (HID_SC_DLG_START +67 ) +#define HID_FCOMMAND_FILENAME (HID_SC_DLG_START +68 ) +#define HID_FCOMMAND_PATH (HID_SC_DLG_START +69 ) + + +// Hilfe IDs fuer Objekt- und Werkzeugleisten (max.10) ----------------------- + +#define HID_SC_TOOLBOX_TOOLS ( HID_SC_TOOLBOX_START ) +#define HID_SC_TOOLBOX_TABLE ( HID_SC_TOOLBOX_START + 1 ) +#define HID_SC_TOOLBOX_DRAW ( HID_SC_TOOLBOX_START + 2 ) +#define HID_SC_TOOLBOX_DRTEXT ( HID_SC_TOOLBOX_START + 3 ) +#define HID_SC_TOOLBOX_PREVIEW ( HID_SC_TOOLBOX_START + 4 ) + +// wrong group - HID_SC_DLG_START is full +#define HID_SC_RENAME_AUTOFMT ( HID_SC_TOOLBOX_START + 5 ) +#define HID_SC_REN_AFMT_NAME ( HID_SC_TOOLBOX_START + 6 ) + +// Hilfe IDs fuer Submenus (max.50) ------------------------------------------ +#define HID_SCMENU_EDIT ( HID_SC_MENU_START ) +#define HID_SCMENU_FILL ( HID_SC_MENU_START + 1 ) +#define HID_SCMENU_DELBREAK ( HID_SC_MENU_START + 2 ) +#define HID_SCMENU_VIEW ( HID_SC_MENU_START + 3 ) +#define HID_SCMENU_TOOLBARS ( HID_SC_MENU_START + 4 ) +#define HID_SCMENU_INSERT ( HID_SC_MENU_START + 5 ) +#define HID_SCMENU_INSBREAK ( HID_SC_MENU_START + 6 ) +#define HID_SCMENU_NAME ( HID_SC_MENU_START + 7 ) +#define HID_SCMENU_GRAPHIC ( HID_SC_MENU_START + 8 ) +#define HID_SCMENU_DATA ( HID_SC_MENU_START + 9 ) +#define HID_SCMENU_FILTER ( HID_SC_MENU_START + 10 ) +#define HID_SCMENU_OUTLINE ( HID_SC_MENU_START + 11 ) +#define HID_SCMENU_PIVOT ( HID_SC_MENU_START + 12 ) +#define HID_SCMENU_EXTRA ( HID_SC_MENU_START + 13 ) +#define HID_SCMENU_SPELLING ( HID_SC_MENU_START + 14 ) +#define HID_SCMENU_AUDIT ( HID_SC_MENU_START + 15 ) +#define HID_SCMENU_PROTECT ( HID_SC_MENU_START + 16 ) +#define HID_SCMENU_CELLCONT ( HID_SC_MENU_START + 17 ) +#define HID_SCMENU_ROW ( HID_SC_MENU_START + 18 ) +#define HID_SCMENU_COL ( HID_SC_MENU_START + 19 ) +#define HID_SCMENU_TAB ( HID_SC_MENU_START + 20 ) +#define HID_SCMENU_MERGE ( HID_SC_MENU_START + 21 ) +#define HID_SCMENU_AREA ( HID_SC_MENU_START + 22 ) +#define HID_SCMENU_OBJMIRROR ( HID_SC_MENU_START + 23 ) +#define HID_SCMENU_OBJARRANGE ( HID_SC_MENU_START + 24 ) +#define HID_SCMENU_ANCHOR ( HID_SC_MENU_START + 25 ) +#define HID_SCMENU_SENDTO ( HID_SC_MENU_START + 26 ) +#define HID_SCMENU_CHANGES ( HID_SC_MENU_START + 27 ) + +#define HID_SC_FAP_BTN_FX1 ( HID_SC_MENU_START + 28 ) +#define HID_SC_FAP_BTN_FX2 ( HID_SC_MENU_START + 29 ) +#define HID_SC_FAP_BTN_FX3 ( HID_SC_MENU_START + 30 ) +#define HID_SC_FAP_BTN_FX4 ( HID_SC_MENU_START + 31 ) +#define HID_SC_FAP_BTN_REF1 ( HID_SC_MENU_START + 32 ) +#define HID_SC_FAP_BTN_REF2 ( HID_SC_MENU_START + 33 ) +#define HID_SC_FAP_BTN_REF3 ( HID_SC_MENU_START + 34 ) +#define HID_SC_FAP_BTN_REF4 ( HID_SC_MENU_START + 35 ) +#define HID_SC_FAP_FORMULA ( HID_SC_MENU_START + 36 ) + +#define HID_SC_SORT_ACTION ( HID_SC_MENU_START + 37 ) +#define HID_SC_SORT_AUTHOR ( HID_SC_MENU_START + 38 ) +#define HID_SC_SORT_DATE ( HID_SC_MENU_START + 39 ) +#define HID_SC_SORT_COMMENT ( HID_SC_MENU_START + 40 ) +#define HID_SORT_POSITION ( HID_SC_MENU_START + 41 ) +#define HID_SC_CHANGES_COMMENT ( HID_SC_MENU_START + 42 ) +#define HID_SC_FUNCTIONLIST ( HID_SC_MENU_START + 43 ) +#define HID_SCPAGE_OPTLOAD ( HID_SC_MENU_START + 44 ) +#define HID_PASSWD_TABLE ( HID_SC_MENU_START + 45 ) +#define HID_PASSWD_DOC ( HID_SC_MENU_START + 46 ) + +#define HID_DATAPILOT_TYPE ( HID_SC_MENU_START + 47 ) +#define HID_DATAPILOT_DATABASE ( HID_SC_MENU_START + 48 ) +#define HID_DATAPILOT_SERVICE ( HID_SC_MENU_START + 49 ) + +// Ende Hilfe IDs ------------------------------------------------------------ +// --------------------------------------------------------------------------- + +// View-Funktionen (max. 100) ------------------------------------------------ + +#define FID_TESTFUNC0 (SC_VIEW_START) +#define FID_TESTFUNC1 (SC_VIEW_START + 1) +#define FID_TESTFUNC2 (SC_VIEW_START + 2) +#define FID_TESTFUNC3 (SC_VIEW_START + 3) +#define FID_TESTFUNC4 (SC_VIEW_START + 4) +#define FID_TESTFUNC5 (SC_VIEW_START + 5) +#define FID_TESTFUNC6 (SC_VIEW_START + 6) +#define FID_TESTFUNC7 (SC_VIEW_START + 7) +#define FID_TESTFUNC8 (SC_VIEW_START + 8) +#define FID_TESTFUNC9 (SC_VIEW_START + 9) +#define FID_SCALESTATUS (SC_VIEW_START + 10) +#define FID_COLOR (SC_VIEW_START + 11) +//aus sfx: #define SID_REPAINT (SC_VIEW_START + 12) +#define SID_UPDATECHART (SC_VIEW_START + 13) +#define FID_MARKLEFT (SC_VIEW_START + 14) +#define FID_MARKRIGHT (SC_VIEW_START + 15) +#define FID_MARKUP (SC_VIEW_START + 16) +#define FID_MARKDOWN (SC_VIEW_START + 17) +#define FID_MARKPAGEUP (SC_VIEW_START + 18) +#define FID_MARKPAGEDOWN (SC_VIEW_START + 19) + +// Slot-IDs fuer Attribute: + +#define SID_SCATTR_HOR_JUSTIFY (SC_VIEW_START + 30) // Alignment-Page +#define SID_SCATTR_VER_JUSTIFY (SC_VIEW_START + 31) +#define SID_SCATTR_MARGIN (SC_VIEW_START + 32) +#define SID_SCATTR_ORIENTATION (SC_VIEW_START + 33) +#define SID_SCATTR_LINEBREAK (SC_VIEW_START + 35) +#define SID_SCATTR_PROTECTION (SC_VIEW_START + 36) // Protection-Page + +// sonstige Slot-IDs: + +#define SID_SCUSERLISTS (SC_VIEW_START + 37) // Benutzerdef.Listen +#define RES_TBX_DUMMY (SC_VIEW_START + 38) // Dummy-Item +#define SID_SCVIEWOPTIONS (SC_VIEW_START + 39) +#define SID_SCDOCOPTIONS (SC_VIEW_START + 40) + +// Cursorbewegungen als Properties: + +#define SID_CURRENTCELL (SC_VIEW_START + 41) +#define SID_CURRENTTAB (SC_VIEW_START + 42) +#define SID_CURRENTDOC (SC_VIEW_START + 43) +#define SID_CURRENTOBJECT (SC_VIEW_START + 44) + +// Slot-IDs fuer spez. ToolBox-Funktionen: + +#define SID_NUMBER_CURRENCY (SC_VIEW_START + 45) +#define SID_NUMBER_PERCENT (SC_VIEW_START + 46) + +// "Slot" Ids fuer Eingabezeilen Images: +#define SID_INPUT_FUNCTION (SC_VIEW_START + 47) +#define SID_INPUT_SUM (SC_VIEW_START + 48) +#define SID_INPUT_EQUAL (SC_VIEW_START + 49) +#define SID_INPUT_CANCEL (SC_VIEW_START + 50) +#define SID_INPUT_OK (SC_VIEW_START + 51) + +#define SID_NUMBER_STANDARD (SC_VIEW_START + 52) +#define SID_NUMBER_DATE (SC_VIEW_START + 53) +#define SID_NUMBER_TWODEC (SC_VIEW_START + 54) +#define SID_NUMBER_SCIENTIFIC (SC_VIEW_START + 55) +#define SID_NUMBER_TIME (SC_VIEW_START + 56) +#define SID_NUMBER_INCDEC (SC_VIEW_START + 57) +#define SID_NUMBER_DECDEC (SC_VIEW_START + 58) + +// Sonstiges: +#define SID_LINKS (SC_VIEW_START + 60) +#define SID_INSERT_SIMAGE (SC_VIEW_START + 61) +#define SID_INSERT_SCHART (SC_VIEW_START + 62) +#define SID_INSERT_SMATH (SC_VIEW_START + 63) +#define SID_STANDARD_FONTS (SC_VIEW_START + 64) +#define SID_MIRROR_VERTICAL (SC_VIEW_START + 65) +#define SID_MIRROR_HORIZONTAL (SC_VIEW_START + 66) +#define SID_CELL_FORMAT_RESET (SC_VIEW_START + 67) +#define SID_SCPRINTOPTIONS (SC_VIEW_START + 68) +#define SID_WINDOW_SPLIT (SC_VIEW_START + 69) +#define SID_WINDOW_FIX (SC_VIEW_START + 70) +#ifdef MAC +#ifdef SID_DRAW_CHART +#undef SID_DRAW_CHART +#endif +#endif +#define SID_DRAW_CHART (SC_VIEW_START + 71) +#define SID_UPDATETABLINKS (SC_VIEW_START + 72) + +//TabPage Eingabe +#define SID_SC_INPUT_SELECTION (SC_VIEW_START + 73) +#define SID_SC_INPUT_SELECTIONPOS (SC_VIEW_START + 74) +#define SID_SC_INPUT_EDITMODE (SC_VIEW_START + 75) +#define SID_SC_INPUT_FMT_EXPAND (SC_VIEW_START + 76) +#define SID_SC_INPUT_RANGEFINDER (SC_VIEW_START + 77) +#define SID_SC_INPUT_REF_EXPAND (SC_VIEW_START + 78) +#define SID_SC_INPUT_MARK_HEADER (SC_VIEW_START + 79) + +#define SID_REIMPORT_AFTER_LOAD (SC_VIEW_START + 80) +#define SID_DRAW_NOTEEDIT (SC_VIEW_START + 81) + +#define SID_CHOOSE_DESIGN (SC_VIEW_START + 82) +#define SID_EURO_CONVERTER (SC_VIEW_START + 83) + +// Nachrichten ------------------------------------------------------------- + +#define FID_INPUTLINE_STATUS (SC_MESSAGE_START) +#define FID_INPUTLINE_ENTER (SC_MESSAGE_START + 1) +#define FID_REPAINT (SC_MESSAGE_START + 2) +#define FID_DATACHANGED (SC_MESSAGE_START + 3) +#define FID_REFMODECHANGED (SC_MESSAGE_START + 4) +#define FID_KILLEDITVIEW (SC_MESSAGE_START + 5) +#define SID_SOLVE (SC_MESSAGE_START + 6) +#define FID_FONT_SELECTED (SC_MESSAGE_START + 7) +#define FID_FILTER_OK (SC_MESSAGE_START + 8) +#define SC_HINT_DRWLAYER_NEW (SC_MESSAGE_START + 9) +#define SID_TABDELETED (SC_MESSAGE_START + 10) +#define FID_INPUTLINE_MATRIX (SC_MESSAGE_START + 11) +#define SID_DLG_RETOK (SC_MESSAGE_START + 12) +#define FID_ANYDATACHANGED (SC_MESSAGE_START + 13) +#define SID_STATUS_DOCPOS (SC_MESSAGE_START + 14) +#define SID_STATUS_PAGESTYLE (SC_MESSAGE_START + 15) +#define SID_STATUS_SELMODE (SC_MESSAGE_START + 16) +#define FID_KILLEDITVIEW_NOPAINT (SC_MESSAGE_START + 17) +#define SID_DLG_MATRIX (SC_MESSAGE_START + 18) +#define SC_HINT_DBAREAS_CHANGED (SC_MESSAGE_START + 19) +#define SC_HINT_AREAS_CHANGED (SC_MESSAGE_START + 20) +#define SC_HINT_TABLES_CHANGED (SC_MESSAGE_START + 21) + +#define SID_STATUS_SELMODE_ERG (SC_MESSAGE_START + 22) +#define SID_STATUS_SELMODE_ERW (SC_MESSAGE_START + 23) +#define SID_STATUS_SELMODE_NORM (SC_MESSAGE_START + 24) + +#define SID_CHART_SOURCE (SC_MESSAGE_START + 25) +#define SID_CHART_NAME (SC_MESSAGE_START + 26) +#define SID_CHART_ADDSOURCE (SC_MESSAGE_START + 27) + +#define SID_AUTO_STYLE (SC_MESSAGE_START + 28) + +#define FID_INPUTLINE_BLOCK (SC_MESSAGE_START + 29) + +#define SID_STATUS_SUM (SC_MESSAGE_START + 30) + +#define SC_HINT_DRAW_CHANGED (SC_MESSAGE_START + 31) +#define SC_HINT_DOCNAME_CHANGED (SC_MESSAGE_START + 32) +#define SC_HINT_AREALINKS_CHANGED (SC_MESSAGE_START + 33) +#define SC_HINT_SHOWRANGEFINDER (SC_MESSAGE_START + 34) +#define SC_HINT_DOC_SAVED (SC_MESSAGE_START + 35) +#define SC_HINT_FORCESETTAB (SC_MESSAGE_START + 36) + +// Nachricht zum Oeffnen von Dialogen: +#define SID_OPENDLG_CONSOLIDATE (SC_MESSAGE_START + 50) +#define SID_OPENDLG_PIVOTTABLE (SC_MESSAGE_START + 51) +#define SID_OPENDLG_FUNCTION (SC_MESSAGE_START + 52) +#define SID_OPENDLG_SOLVE (SC_MESSAGE_START + 53) +#define SID_OPENDLG_TABOP (SC_MESSAGE_START + 54) +#define SID_OPENDLG_CHART (SC_MESSAGE_START + 55) +#define SID_OPENDLG_EDITFUNCTION (SC_MESSAGE_START + 56) +#define SID_OPENDLG_ARGUMENT (SC_MESSAGE_START + 57) +#define SID_OPENDLG_MODCHART (SC_MESSAGE_START + 58) +#define SID_OPENDLG_CONDFRMT (SC_MESSAGE_START + 59) + +#define SC_HINT_NAVIGATOR_UPDATEALL (SC_MESSAGE_START + 65) + +// Funktionen ------------------------------------------------------------ +// noch nach Menues sortiert - besserer Vorschlag? + + +//#define FID_PRINT_PREVIEW (SC_FUNCTION_START) +#define FID_DOC_MANAGER (SC_FUNCTION_START + 1) +#define FID_CURSOR_ENTER (SC_FUNCTION_START + 2) +#define SID_MAIL (SC_FUNCTION_START + 3) +#define FILE_MENU_END (SC_FUNCTION_START + 20) + +#define EDIT_MENU_START (FILE_MENU_END) +#define FID_PASTE_CONTENTS (EDIT_MENU_START) +#define FID_DELETE_CELLCONTENTS (EDIT_MENU_START + 1) +#define FID_DELETE_CELL (EDIT_MENU_START + 2) +#define FID_DELETE_TABLE (EDIT_MENU_START + 3) +#define FID_FILL_TO_BOTTOM (EDIT_MENU_START + 4) +#define FID_FILL_TO_RIGHT (EDIT_MENU_START + 5) +#define FID_FILL_TO_TOP (EDIT_MENU_START + 6) +#define FID_FILL_TO_LEFT (EDIT_MENU_START + 7) +#define FID_FILL_TAB (EDIT_MENU_START + 8) +#define FID_FILL_SERIES (EDIT_MENU_START + 9) +#define FID_SEARCH_REPLACE_DLG (EDIT_MENU_START + 10) +#define FID_EDIT_OBJECT (EDIT_MENU_START + 11) +#define SID_SC_NAVIGATOR (EDIT_MENU_START + 12) +#define SID_SC_WIZARD (EDIT_MENU_START + 13) +#define SID_SC_EDIT_OBJECT (EDIT_MENU_START + 14) +#define SID_HFEDIT (EDIT_MENU_START + 15) + +#define SID_DEL_ROWS (EDIT_MENU_START + 16)//JN +#define SID_DEL_COLS (EDIT_MENU_START + 17)//JN + +#define FID_CHG_RECORD (EDIT_MENU_START + 18) +#define FID_CHG_SHOW (EDIT_MENU_START + 19) + +#define EDIT_MENU_END (EDIT_MENU_START + 20) +#define VIEW_MENU_START (EDIT_MENU_END) + +#define FID_TOGGLEOBJECT (VIEW_MENU_START) +#define FID_TOGGLEINPUTLINE (VIEW_MENU_START + 1) +#define FID_TOGGLEHEADERS (VIEW_MENU_START + 2) +#define FID_SCALE (VIEW_MENU_START + 4) +#define FID_TOGGLESYNTAX (VIEW_MENU_START + 5) +#define FID_SCREEN_OPTIONS (VIEW_MENU_START + 6) +#define FID_PAGEBREAKMODE (VIEW_MENU_START + 7) +#define FID_FUNCTION_BOX (VIEW_MENU_START + 8) +// Compare/Merge jetzt aus Sfx +//#define FID_CHG_COMPARE (VIEW_MENU_START + 16)// DANGER DIRTY ID +//#define FID_CHG_MERGE (VIEW_MENU_START + 17)// DANGER DIRTY ID +#define FID_CHG_ACCEPT (VIEW_MENU_START + 18)// DANGER DIRTY ID +#define FID_CHG_COMMENT (VIEW_MENU_START + 19)// DANGER DIRTY ID +#define VIEW_MENU_END (VIEW_MENU_START + 20) + +#define INSERT_MENU_START (VIEW_MENU_END) +#define FID_PAGEBREAK (INSERT_MENU_START) +#define FID_INS_ROWBRK (INSERT_MENU_START + 1) +#define FID_INS_COLBRK (INSERT_MENU_START + 2) +#define FID_DEL_ROWBRK (INSERT_MENU_START + 3) +#define FID_DEL_COLBRK (INSERT_MENU_START + 4) +#define FID_INS_CELL_CONTENTS (INSERT_MENU_START + 5) +#define FID_INS_CELL (INSERT_MENU_START + 6) +#define FID_INS_ROW (INSERT_MENU_START + 7) +#define FID_INS_COLUMN (INSERT_MENU_START + 8) +#define FID_INS_TABLE (INSERT_MENU_START + 9) +#define SID_INS_FUNCTION (INSERT_MENU_START + 10) +#define FID_DEFINE_NAME (INSERT_MENU_START + 11) +#define FID_INSERT_NAME (INSERT_MENU_START + 12) +#define FID_USE_NAME (INSERT_MENU_START + 13) +#define FID_APPLY_NAME (INSERT_MENU_START + 14) +//#define SID_CHARMAP (INSERT_MENU_START + 15)//!!! kommt von sfx +//aus sfx: #define SID_INSERT_POSTIT (INSERT_MENU_START + 16) +#define SID_INSERT_CLIPART (INSERT_MENU_START + 17) //!!! sollte vom Svx kommen +#define FID_INS_CELLSDOWN (INSERT_MENU_START + 18) +#define FID_INS_CELLSRIGHT (INSERT_MENU_START + 19) +#define INSERT_MENU_END (INSERT_MENU_START + 20) + +#define FORMAT_MENU_START (INSERT_MENU_END) +#define FID_CELL_FORMAT (FORMAT_MENU_START) +#define FID_ROW_HEIGHT (FORMAT_MENU_START + 1) +#define FID_ROW_OPT_HEIGHT (FORMAT_MENU_START + 2) +#define FID_ROW_HIDE (FORMAT_MENU_START + 3) +#define FID_ROW_SHOW (FORMAT_MENU_START + 4) +#define FID_COL_WIDTH (FORMAT_MENU_START + 5) +#define FID_COL_OPT_WIDTH (FORMAT_MENU_START + 6) +#define FID_COL_HIDE (FORMAT_MENU_START + 7) +#define FID_COL_SHOW (FORMAT_MENU_START + 8) +#define FID_TABLE_HIDE (FORMAT_MENU_START + 9) +#define FID_TABLE_SHOW (FORMAT_MENU_START + 10) +#define FID_CONDITIONAL_FORMAT (FORMAT_MENU_START + 11) +#define SID_SCSTYLES (FORMAT_MENU_START + 12) +#define FID_MERGE_ON (FORMAT_MENU_START + 13) +#define FID_MERGE_OFF (FORMAT_MENU_START + 14) +#define SID_FORMATPAGE (FORMAT_MENU_START + 15) +#define SID_TEXT_STANDARD (FORMAT_MENU_START + 16) +#define SID_DRAWTEXT_ATTR_DLG (FORMAT_MENU_START + 17) +#define FID_TABLE_VISIBLE (FORMAT_MENU_START + 18) +#define FID_COL_OPT_DIRECT (FORMAT_MENU_START + 19) +#define FORMAT_MENU_END (FORMAT_MENU_START + 20) + +#define EXTRA_MENU_START (FORMAT_MENU_END) +#define FID_VOICE_CONTROL (EXTRA_MENU_START + 1) +#define SID_RECALC_TITLE (EXTRA_MENU_START + 2) +#define FID_AUTO_CALC (EXTRA_MENU_START + 3) +#define FID_RECALC (EXTRA_MENU_START + 4) +#define FID_UPDATE_DIAGRAMS (EXTRA_MENU_START + 5) +#define FID_PROTECT_TABLE (EXTRA_MENU_START + 6) +#define FID_PROTECT_DOC (EXTRA_MENU_START + 7) +#define SID_EDIT_MACRO (EXTRA_MENU_START + 8) +#define SID_SCOPTIONS (EXTRA_MENU_START + 9) +#define SID_MACRO_CHOOSER (EXTRA_MENU_START + 10) +#define SID_SCENARIOS (EXTRA_MENU_START + 12) +#define SID_ADD_IN_MANAGER (EXTRA_MENU_START + 13) +#define SID_PIVOT_RECALC (EXTRA_MENU_START + 14) +#define SID_PIVOT_KILL (EXTRA_MENU_START + 15) + +// hier falsch, aber erstmal +#define SID_SC_HELP_PI (EXTRA_MENU_START + 16) +#define SID_SC_SHOW_KEYBOARD_HELP (EXTRA_MENU_START + 17) + +#define FID_HARD_RECALC (EXTRA_MENU_START + 18) +#define FID_AUTOCOMPLETE (EXTRA_MENU_START + 19) + +#define EXTRA_MENU_END (EXTRA_MENU_START + 20) + +#define DATA_MENU_START (EXTRA_MENU_END) +#define SID_DEFINE_DBNAME (DATA_MENU_START) +#define SID_SELECT_DB (DATA_MENU_START + 1) +#define SID_SORT (DATA_MENU_START + 2) +#define SID_FILTER (DATA_MENU_START + 3) +#define SID_SPECIAL_FILTER (DATA_MENU_START + 4) +#define SID_AUTO_FILTER (DATA_MENU_START + 5) +#define SID_UNFILTER (DATA_MENU_START + 6) +#define SID_QUERY (DATA_MENU_START + 7) +#define SID_SUBTOTALS (DATA_MENU_START + 8) +//aus sfx: #define SID_OUTLINE_HIDE (DATA_MENU_START + 9) +//aus sfx: #define SID_OUTLINE_SHOW (DATA_MENU_START + 10) +//aus sfx: #define SID_OUTLINE_MAKE (DATA_MENU_START + 11) +//aus sfx: #define SID_OUTLINE_REMOVE (DATA_MENU_START + 12) +#define SID_AUTO_OUTLINE (DATA_MENU_START + 13) +//aus sfx: #define SID_OUTLINE_DELETEALL (DATA_MENU_START + 14) +#define SID_IMPORT_DATA (DATA_MENU_START + 15) +#define SID_REIMPORT_DATA (DATA_MENU_START + 16) +#define SID_PIVOT_TABLE (DATA_MENU_START + 17) +#define SID_TABOP (DATA_MENU_START + 18) +#define SID_TEXT_TO_COLUMNS (DATA_MENU_START + 19) +#define SID_CONSOLIDATE (DATA_MENU_START + 20) +#define SID_AUTOFILTER_HIDE (DATA_MENU_START + 21) + +#define SID_SBA_IMPORT (DATA_MENU_START + 22) + +#define SID_SORT_DESCENDING (DATA_MENU_START + 23) +#define SID_SORT_ASCENDING (DATA_MENU_START + 24) +// +// +#define DATA_MENU_END (DATA_MENU_START + 25) + +#define TAB_POPUP_START (DATA_MENU_END) +#define RID_POPUP_TAB (TAB_POPUP_START) +#define FID_TAB_MENU_RENAME (TAB_POPUP_START+1) +#define FID_TAB_RENAME (TAB_POPUP_START+2) +#define FID_TAB_MOVE (TAB_POPUP_START+3) +#define FID_TAB_SELECTALL (TAB_POPUP_START+4) +#define FID_TAB_APPEND (TAB_POPUP_START+5) +#define FID_TAB_INDEX (TAB_POPUP_START+6) + +#define TAB_POPUP_END (DATA_MENU_END + 20) + +#define OBJBAR_FORMAT_START (TAB_POPUP_END) +#define SID_ALIGNLEFT (OBJBAR_FORMAT_START+6) +#define SID_ALIGNRIGHT (OBJBAR_FORMAT_START+7) +#define SID_ALIGNCENTERHOR (OBJBAR_FORMAT_START+8) +#define SID_ALIGNBLOCK (OBJBAR_FORMAT_START+9) +#define SID_ALIGNTOP (OBJBAR_FORMAT_START+10) +#define SID_ALIGNBOTTOM (OBJBAR_FORMAT_START+11) +#define SID_ALIGNCENTERVER (OBJBAR_FORMAT_START+12) +#define SID_SELECT_SCENARIO (OBJBAR_FORMAT_START+13) + +#define SID_V_ALIGNCELL (OBJBAR_FORMAT_START+14) +#define SID_H_ALIGNCELL (OBJBAR_FORMAT_START+15) + +#define OBJBAR_FORMAT_END (OBJBAR_FORMAT_START+20) + +#define RID_INPUTBAR_START (OBJBAR_FORMAT_END) +#define SID_INPUT_WINDOW (RID_INPUTBAR_START) +#define RID_INPUTBAR_END (RID_INPUTBAR_START+1) + +#define DRAW_BAR_START (RID_INPUTBAR_END) +//! SID_OBJECT_MIRROR wird sicher mal allgemein +#define SID_OBJECT_MIRROR (DRAW_BAR_START) +#define SID_DRAWTOABOVE (DRAW_BAR_START+15) +#define SID_DRAWTOBELOW (DRAW_BAR_START+16) +//#define SID_GROUP (DRAW_BAR_START+17) +//#define SID_UNGROUP (DRAW_BAR_START+18) +#define SID_FRAMETOTOP (DRAW_BAR_START+19) +#define SID_FRAMETOBOTTOM (DRAW_BAR_START+20) +//aus sfx: #define SID_FRAME_UP (DRAW_BAR_START+21) +//aus sfx: #define SID_FRAME_DOWN (DRAW_BAR_START+22) +#define SID_TOOL_TEXT (DRAW_BAR_START+23) +#define SID_ANCHOR_PAGE (DRAW_BAR_START+24) +#define SID_ANCHOR_CELL (DRAW_BAR_START+25) +#define SID_ANCHOR_TOGGLE (DRAW_BAR_START+26) +#define SID_ORIGINALSIZE (DRAW_BAR_START+27) + +#define DRAW_BAR_END (DRAW_BAR_START+50) + +#define DRAW_OBJECTBAR_START (DRAW_BAR_END) +#define RID_DRAW_OBJECTBAR DRAW_OBJECTBAR_START + +#define DRAWTEXTBAR_START (DRAW_BAR_END) +#define SID_TEXT_LINESPACING_1 (DRAWTEXTBAR_START) +#define SID_TEXT_LINESPACING_2 (DRAWTEXTBAR_START+1) +#define SID_TEXT_LINESPACING_3 (DRAWTEXTBAR_START+2) +#define DRAWTEXTBAR_END (DRAWTEXTBAR_START+20) + +#define DETECTIVE_START (DRAWTEXTBAR_END) +#define SID_DETECTIVE_ADD_PRED (DETECTIVE_START) +#define SID_DETECTIVE_DEL_PRED (DETECTIVE_START+1) +#define SID_DETECTIVE_ADD_SUCC (DETECTIVE_START+2) +#define SID_DETECTIVE_DEL_SUCC (DETECTIVE_START+3) +#define SID_DETECTIVE_ADD_ERR (DETECTIVE_START+4) +#define SID_DETECTIVE_DEL_ALL (DETECTIVE_START+5) + +#define SID_DETECTIVE_FILLMODE (DETECTIVE_START+6) +#define SID_FILL_ADD_PRED (DETECTIVE_START+7) +#define SID_FILL_DEL_PRED (DETECTIVE_START+8) +#define SID_FILL_ADD_SUCC (DETECTIVE_START+9) +#define SID_FILL_DEL_SUCC (DETECTIVE_START+10) +#define SID_FILL_NONE (DETECTIVE_START+11) +#define SID_FILL_SELECT (DETECTIVE_START+12) + +#define SID_DETECTIVE_INVALID (DETECTIVE_START+13) + +#define SID_DETECTIVE_REFRESH (DETECTIVE_START+14) +#define SID_DETECTIVE_AUTO (DETECTIVE_START+15) + +#define DETECTIVE_END (DETECTIVE_START+20) + +#define SID_API_SLOTS (DETECTIVE_END) +//aus sfx: #define SID_ENTER_STRING (SID_API_SLOTS) +#define SID_INSERT_MATRIX (SID_API_SLOTS+1) + + +#define SID_PREVIEW_START (SID_API_SLOTS+20) +#define SID_PREVIEW_NEXT (SID_PREVIEW_START) +#define SID_PREVIEW_PREVIOUS (SID_PREVIEW_START+1) +#define SID_PREVIEW_FIRST (SID_PREVIEW_START+2) +#define SID_PREVIEW_LAST (SID_PREVIEW_START+3) +#define SID_PREVIEW_GOTO (SID_PREVIEW_START+4) +#define SID_PREVIEW_ZOOMIN (SID_PREVIEW_START+5) +#define SID_PREVIEW_ZOOMOUT (SID_PREVIEW_START+6) +#define SID_PREVIEW_END (SID_PREVIEW_START+20) + +//aus sfx: #define SID_KEYFUNC_START (SID_PREVIEW_END+5) +#define SID_CURSORDOWN_SEL (SID_KEYFUNC_START + 0) +#define SID_CURSORUP_SEL (SID_KEYFUNC_START + 1) +#define SID_CURSORLEFT_SEL (SID_KEYFUNC_START + 2) +#define SID_CURSORRIGHT_SEL (SID_KEYFUNC_START + 3) +#define SID_CURSORPAGEDOWN_SEL (SID_KEYFUNC_START + 4) +#define SID_CURSORPAGEUP_SEL (SID_KEYFUNC_START + 5) + +#define SID_CURSORPAGELEFT_ (SID_KEYFUNC_START + 6) +#define SID_CURSORPAGELEFT_SEL (SID_KEYFUNC_START + 7) +#define SID_CURSORPAGERIGHT_ (SID_KEYFUNC_START + 8) +#define SID_CURSORPAGERIGHT_SEL (SID_KEYFUNC_START + 9) + +#define SID_CURSORTOPOFFILE_SEL (SID_KEYFUNC_START + 10) +#define SID_CURSORENDOFFILE_SEL (SID_KEYFUNC_START + 11) +#define SID_CURSORHOME_SEL (SID_KEYFUNC_START + 12) +#define SID_CURSOREND_SEL (SID_KEYFUNC_START + 13) +#define SID_CURSORBLKUP (SID_KEYFUNC_START + 14) +#define SID_CURSORBLKDOWN (SID_KEYFUNC_START + 15) +#define SID_CURSORBLKLEFT (SID_KEYFUNC_START + 16) +#define SID_CURSORBLKRIGHT (SID_KEYFUNC_START + 17) +#define SID_CURSORBLKUP_SEL (SID_KEYFUNC_START + 18) +#define SID_CURSORBLKDOWN_SEL (SID_KEYFUNC_START + 19) +#define SID_CURSORBLKLEFT_SEL (SID_KEYFUNC_START + 20) +#define SID_CURSORBLKRIGHT_SEL (SID_KEYFUNC_START + 21) + +#define SID_NEXT_TABLE (SID_KEYFUNC_START + 22) +#define SID_PREV_TABLE (SID_KEYFUNC_START + 23) + +#define SID_NEXT_UNPROTECT (SID_KEYFUNC_START + 24) +#define SID_PREV_UNPROTECT (SID_KEYFUNC_START + 25) + +#define SID_SELECT_COL (SID_KEYFUNC_START + 26) +#define SID_SELECT_ROW (SID_KEYFUNC_START + 27) +#define SID_SELECT_NONE (SID_KEYFUNC_START + 28) +#define SID_ALIGNCURSOR (SID_KEYFUNC_START + 29) +#define SID_MARKDATAAREA (SID_KEYFUNC_START + 30) +#define SID_SETINPUTMODE (SID_KEYFUNC_START + 31) +#define SID_DELETE_CONTENTS (SID_KEYFUNC_START + 32) + +#define SID_MARKAREA (SID_KEYFUNC_START + 33) + +#define SID_AUTOFILL (SID_KEYFUNC_START + 34) +#define FID_FILL_AUTO (SID_KEYFUNC_START + 35) +#define SID_CANCEL (SID_KEYFUNC_START + 36) + +#define SID_CURSORENTERUP (SID_KEYFUNC_START + 37) +#define SID_CURSORENTERDOWN (SID_KEYFUNC_START + 38) + +#define SID_KEYFUNC_END (SID_KEYFUNC_START + 50) + +#define SID_NEW_SLOTS (SID_KEYFUNC_END) +#define SID_NEW_SLOTS_END (SID_NEW_SLOTS+100) + +#define SID_NEW_TABLENAME (SID_NEW_SLOTS+1) +#define SID_COL_START (SID_NEW_SLOTS+2) +#define SID_ROW_START (SID_NEW_SLOTS+3) +#define SID_COL_END (SID_NEW_SLOTS+4) +#define SID_ROW_END (SID_NEW_SLOTS+5) +#define SID_KEEP_MARK (SID_NEW_SLOTS+6) +#define SID_FILL_DIR (SID_NEW_SLOTS+7) +#define SID_FILL_COUNT (SID_NEW_SLOTS+8) +#define SID_WITH_UNDO (SID_NEW_SLOTS+9) +//aus sfx: #define SID_ATTR_SECIALCHAR (SID_NEW_SLOTS+10) +#define SID_ATTR_ROWHEADERS (SID_NEW_SLOTS+11) +#define SID_ATTR_COLHEADERS (SID_NEW_SLOTS+12) + +#define SID_SC_CELLS (SID_NEW_SLOTS+13) +#define SID_SC_RANGE (SID_NEW_SLOTS+14) +#define SID_SC_SELECTION (SID_NEW_SLOTS+15) +#define SID_SC_CELLTEXT (SID_NEW_SLOTS+16) + +#define SID_SC_NAME_TITLE (SID_NEW_SLOTS+17) + +#define SID_SC_ACTIVECELL (SID_NEW_SLOTS+18) +#define SID_SC_ACTIVETAB (SID_NEW_SLOTS+19) +#define SID_RANGE_ROW (SID_NEW_SLOTS+20) +#define SID_RANGE_COL (SID_NEW_SLOTS+21) +#define SID_RANGE_TABLE (SID_NEW_SLOTS+22) +#define SID_RANGE_VALUE (SID_NEW_SLOTS+23) +#define SID_RANGE_FORMULA (SID_NEW_SLOTS+24) +#define SID_RANGE_TEXT (SID_NEW_SLOTS+25) +#define SID_RANGE_TEXTVALUE (SID_NEW_SLOTS+26) +#define SID_TABLE_ACTIVATE (SID_NEW_SLOTS+27) +#define SID_TABLES_GET (SID_NEW_SLOTS+28) +#define SID_PROP_INTERIOR (SID_NEW_SLOTS+29) +#define SID_PROP_FONT (SID_NEW_SLOTS+30) + +#define SID_DEFINE_PRINTAREA (SID_NEW_SLOTS+31) +#define SID_DELETE_PRINTAREA (SID_NEW_SLOTS+32) +#define SID_CHANGE_PRINTAREA (SID_NEW_SLOTS+33) +#define SID_OPENDLG_EDIT_PRINTAREA (SID_NEW_SLOTS+34) + +#define SID_OLE_OBJECT (SID_NEW_SLOTS+35) +#define SID_OLE_ACTIVATE (SID_NEW_SLOTS+36) +#define SID_OLE_DEACTIVATE (SID_NEW_SLOTS+37) + +#define SID_TOGGLE_REL (SID_NEW_SLOTS+38) +#define SID_DATA_SELECT (SID_NEW_SLOTS+39) + +// Suchen & Ersetzen +#define FID_SEARCH (SID_NEW_SLOTS+40) +#define FID_REPEAT_SEARCH (SID_NEW_SLOTS+41) +#define FID_REPLACE (SID_NEW_SLOTS+42) +#define FID_SEARCH_ALL (SID_NEW_SLOTS+43) +#define FID_REPLACE_ALL (SID_NEW_SLOTS+44) +#define FID_SEARCH_COUNT (SID_NEW_SLOTS+45) + +#define SID_SC_SETTEXT (SID_NEW_SLOTS+46) +#define SID_RANGE_ADDRESS (SID_NEW_SLOTS+47) +#define SID_RANGE_OFFSET (SID_NEW_SLOTS+48) +#define SID_NUMBER_FORMAT (SID_NEW_SLOTS+49) + +#define SID_OLE_SELECT (SID_NEW_SLOTS+50) +#define SID_SC_ACTIVEOBJECT (SID_NEW_SLOTS+51) + +#define SID_RANGE_NOTETEXT (SID_NEW_SLOTS+52) +#define FID_INSERT_FILE (SID_NEW_SLOTS+53) + +#define FID_VALIDATION (SID_NEW_SLOTS+54) + +// Slots fuer Toolbox Controller in der Werkzeugleiste +#define SID_TBXCTL_INSERT (SID_NEW_SLOTS+55) +#define SID_TBXCTL_INSCELLS (SID_NEW_SLOTS+56) +#define SID_TBXCTL_INSOBJ (SID_NEW_SLOTS+57) + +#define SID_DEFINE_COLROWNAMERANGES (SID_NEW_SLOTS+58) + +#define FID_NOTE_VISIBLE (SID_NEW_SLOTS+59) + +// Items fuer Gueltigkeit +#define FID_VALID_MODE (SID_NEW_SLOTS+60) +#define FID_VALID_CONDMODE (SID_NEW_SLOTS+61) +#define FID_VALID_VALUE1 (SID_NEW_SLOTS+62) +#define FID_VALID_VALUE2 (SID_NEW_SLOTS+63) +#define FID_VALID_BLANK (SID_NEW_SLOTS+64) +#define FID_VALID_SHOWHELP (SID_NEW_SLOTS+65) +#define FID_VALID_HELPTITLE (SID_NEW_SLOTS+66) +#define FID_VALID_HELPTEXT (SID_NEW_SLOTS+67) +#define FID_VALID_SHOWERR (SID_NEW_SLOTS+68) +#define FID_VALID_ERRSTYLE (SID_NEW_SLOTS+69) +#define FID_VALID_ERRTITLE (SID_NEW_SLOTS+70) +#define FID_VALID_ERRTEXT (SID_NEW_SLOTS+71) + +#define SID_REFRESH_DBAREA (SID_NEW_SLOTS+72) +#define SID_RANGE_REGION (SID_NEW_SLOTS+73) + +#define FID_FOCUS_POSWND (SID_NEW_SLOTS+74) + +// einzelne Slots fuer verschiedene Unterstreich-Arten (Popup-Menu) +#define SID_ULINE_VAL_NONE (SID_NEW_SLOTS+75) +#define SID_ULINE_VAL_SINGLE (SID_NEW_SLOTS+76) +#define SID_ULINE_VAL_DOUBLE (SID_NEW_SLOTS+77) +#define SID_ULINE_VAL_DOTTED (SID_NEW_SLOTS+78) + +#define FID_DEL_MANUALBREAKS (SID_NEW_SLOTS+79) +#define SID_ADD_PRINTAREA (SID_NEW_SLOTS+80) +#define FID_ADJUST_PRINTZOOM (SID_NEW_SLOTS+81) +#define FID_RESET_PRINTZOOM (SID_NEW_SLOTS+82) + +#define SID_TABLES_COUNT (SID_NEW_SLOTS+83) +#define SID_ACTIVE_OBJ_NAME (SID_NEW_SLOTS+84) +#define SID_OBJECT_LEFT (SID_NEW_SLOTS+85) +#define SID_OBJECT_TOP (SID_NEW_SLOTS+86) +#define SID_OBJECT_WIDTH (SID_NEW_SLOTS+87) +#define SID_OBJECT_HEIGHT (SID_NEW_SLOTS+88) + +#define SID_PIVOT_CREATE (SID_NEW_SLOTS+89) +#define SID_PIVOT_FIELDS (SID_NEW_SLOTS+90) +#define SID_PFIELD_NAME (SID_NEW_SLOTS+91) +#define SID_PFIELD_ORIENTATION (SID_NEW_SLOTS+92) +#define SID_PFIELD_FUNCTION (SID_NEW_SLOTS+93) +#define SID_PIVOT_GET (SID_NEW_SLOTS+94) + +#define SID_DELETE_SCENARIO (SID_NEW_SLOTS+95) +#define SID_EDIT_SCENARIO (SID_NEW_SLOTS+96) + +#define SID_GET_CLPBRD_FORMAT_COUNT (SID_NEW_SLOTS+97) +#define SID_GET_CLPBRD_FORMAT_BY_IDX (SID_NEW_SLOTS+98) +#define SID_GET_CLPBRD_FORMAT_NAME (SID_NEW_SLOTS+99) + +// idl Parameter --------------------------------------------------------- + +//aus sfx: #define FN_PARAM_1 (SC_PARAM_START) +//aus sfx: #define FN_PARAM_2 (SC_PARAM_START+1) +//aus sfx: #define FN_PARAM_3 (SC_PARAM_START+2) +//aus sfx: #define FN_PARAM_4 (SC_PARAM_START+3) +//aus sfx: #define FN_PARAM_5 (SC_PARAM_START+4) +//aus sfx: #define FN_PARAM_6 (SC_PARAM_START+5) +//aus sfx: #define FN_PARAM_7 (SC_PARAM_START+6) +//aus sfx: #define FN_PARAM_8 (SC_PARAM_START+7) +#define FN_PARAM_9 (FN_PARAM_8+1) + +#define SID_SORT_BYROW (SC_PARAM_START) +#define SID_SORT_HASHEADER (SC_PARAM_START+1) +#define SID_SORT_CASESENS (SC_PARAM_START+2) +#define SID_SORT_ATTRIBS (SC_PARAM_START+3) +#define SID_SORT_USERDEF (SC_PARAM_START+4) + +// Resourcen ------------------------------------------------------------- + +#define RID_OBJECTBAR_APP (SC_RESOURCE_START) +#define RID_OBJECTBAR_FORMAT (SC_RESOURCE_START+1) +#define RID_OBJECTBAR_INPUT (SC_RESOURCE_START+2) +#define RID_POPUP_CELLS (SC_RESOURCE_START+3) +#define RID_POPUP_DRAW (SC_RESOURCE_START+4) +#define RID_TEXT_TOOLBOX (SC_RESOURCE_START+5) +#define RID_OBJECTBAR_PREVIEW (SC_RESOURCE_START+6) +#define RID_POPUP_PREVIEW (SC_RESOURCE_START+7) +#define RID_POPUP_OLE (SC_RESOURCE_START+8) +#define RID_POPUP_CHART (SC_RESOURCE_START+9) +//#define RID_ANCHORBITMAP (SC_RESOURCE_START+10) +//#define RID_GRAYANCHORBITMAP (SC_RESOURCE_START+11) +#define RID_OUTLINEBITMAPS (SC_RESOURCE_START+12) +#define RID_DRAW_WIN (SC_RESOURCE_START+13) +#define RID_CNTRLR_WIN (SC_RESOURCE_START+14) +#define RID_GLOBSTR (SC_RESOURCE_START+15) +#define RID_OBJECTMENU_CELLS (SC_RESOURCE_START+17) +#define RID_OBJECTMENU_DRAW (SC_RESOURCE_START+18) +#define RID_ALIGNMENT_WIN (SC_RESOURCE_START+19) +#define RID_SCFUNCTIONS (SC_RESOURCE_START+20) +#define RID_POPUP_PIVOT (SC_RESOURCE_START+21) +#define RID_IMGLIST_INPUTWIN (SC_RESOURCE_START+22) +#define RID_ERRHDLSC (SC_RESOURCE_START+23) +#define RID_POPUP_GRAPHIC (SC_RESOURCE_START+24) +#define RID_SCTEAMDLGBMP1 (SC_RESOURCE_START+25) +#define RID_SCTEAMDLGBMP2 (SC_RESOURCE_START+26) +#define RID_SCTEAMDLGBMP3 (SC_RESOURCE_START+27) +#define RID_OBJECTMENU_DRAWTEXT (SC_RESOURCE_START+28) +#define RID_POPUP_DRAWTEXT (SC_RESOURCE_START+29) +#define RID_MN_FORMAT_ALGN (SC_RESOURCE_START+30) +#define RID_MN_FORMAT_STYLE (SC_RESOURCE_START+31) +#define RID_MN_FORMAT_LINESPACE (SC_RESOURCE_START+32) +#define RID_POPUP_EDIT (SC_RESOURCE_START+33) +#define RID_POPUP_AUDIT (SC_RESOURCE_START+34) +#define RID_OBJECTBAR_TOOLS (SC_RESOURCE_START+35) +#define RID_SC_FUNCTION_NAMES (SC_RESOURCE_START+36) +#define RID_SC_FUNCTION_NAMES_ENGLISH (SC_RESOURCE_START+37) +#define RID_TBXCTL_INSERT (SC_RESOURCE_START+38) +#define RID_TBXCTL_INSCELLS (SC_RESOURCE_START+39) +#define RID_TBXCTL_INSOBJ (SC_RESOURCE_START+40) +#define RID_BMP_REFBTN1 (SC_RESOURCE_START+41) +#define RID_BMP_REFBTN2 (SC_RESOURCE_START+42) +#define RID_SC_FUNCTION_DESCRIPTIONS1 (SC_RESOURCE_START+43) +#define RID_SC_FUNCTION_DESCRIPTIONS2 (SC_RESOURCE_START+44) +#define RID_POPUP_CONTROL (SC_RESOURCE_START+45) +#define RID_POPUP_PAGEBREAK (SC_RESOURCE_START+46) +#define RID_OBJECTBAR_DRAWFORM (SC_RESOURCE_START+47) +#define RID_POPUP_DRAWFORM (SC_RESOURCE_START+48) +#define RID_OBJECTMENU_DRAWFORM (SC_RESOURCE_START+49) +#define RID_SC_ADDIN_ROT13 (SC_RESOURCE_START+50) +#define RID_SC_ADDIN_DFA (SC_RESOURCE_START+51) +#define RID_IMAGELIST_NAVCONT (SC_RESOURCE_START+52) + + +#define STR_START (SC_RESOURCE_START+100) +#define STR_ROWHEIGHT (STR_START) +#define STR_ROWHEIGHT_TITLE (STR_START + 1) +#define STR_OPT_ROWHEIGHT (STR_START + 2) +#define STR_OPT_ROWHEIGHT_TITLE (STR_START + 3) +#define STR_COLWIDTH (STR_START + 4) +#define STR_COLWIDTH_TITLE (STR_START + 5) +#define STR_OPT_COLWIDTH (STR_START + 6) +#define STR_OPT_COLWIDTH_TITLE (STR_START + 7) +#define SCSTR_UNDEFINED (STR_START + 8) +#define SCSTR_NONAME (STR_START + 9) +#define SCSTR_NONE (STR_START + 10) +#define SCSTR_EMPTY (STR_START + 11) +#define SCSTR_NOTEMPTY (STR_START + 12) +#define SCSTR_COLUMN (STR_START + 13) +#define SCSTR_ROW (STR_START + 14) +#define SCSTR_NEW (STR_START + 15) +#define SCSTR_ADD (STR_START + 16) +#define SCSTR_REMOVE (STR_START + 17) +#define SCSTR_CANCEL (STR_START + 18) +#define SCSTR_MODIFY (STR_START + 19) +#define SCSTR_SHOWTABLE (STR_START + 20) +#define SCSTR_HIDDENTABLES (STR_START + 21) +#define SCSTR_SELECTDB (STR_START + 22) +#define SCSTR_AREAS (STR_START + 23) +#define SCSTR_TABLE (STR_START + 24) +#define SCSTR_NAME (STR_START + 25) +#define SCSTR_INSTABLE (STR_START + 26) +#define SCSTR_APDTABLE (STR_START + 27) +#define SCSTR_RENAMETAB (STR_START + 28) +#define STR_INSERTGRAPHIC (STR_START + 29) +//#define STR_BASIC_IDE (STR_START + 30) +#define SCSTR_APPLICATION (STR_START + 31) +#define SCSTR_DOCSHELL (STR_START + 32) +#define SCSTR_TABVIEWSHELL (STR_START + 33) +#define SCSTR_EDITSHELL (STR_START + 34) +#define SCSTR_DRAWSHELL (STR_START + 35) +#define SCSTR_DRAWTEXTSHELL (STR_START + 36) +#define SCSTR_NEWTABLE (STR_START + 37) +#define SCSTR_PREVIEWSHELL (STR_START + 38) + +#define SCSTR_PROTECTDOC (STR_START + 39) +#define SCSTR_UNPROTECTDOC (STR_START + 40) +#define SCSTR_PROTECTTAB (STR_START + 41) +#define SCSTR_UNPROTECTTAB (STR_START + 42) +#define SCSTR_PASSWORD (STR_START + 43) +#define SCSTR_PASSWORDOPT (STR_START + 44) +#define SCSTR_WRONGPASSWORD (STR_START + 45) + +#define SCSTR_PIVOTSHELL (STR_START + 46) +#define SCSTR_END (STR_START + 47) +#define SCSTR_STAT_PRINT (STR_START + 48) + +#define SCSTR_UNKNOWN (STR_START + 49) +#define SCSTR_CHAR_ATTRS (STR_START + 50) +#define SCSTR_ALL (STR_START + 51) +#define SCSTR_STDFILTER (STR_START + 52) + +// Cfg-Item-Namen +#define SCSTR_CFG_APP (STR_START + 53) +#define SCSTR_CFG_DOC (STR_START + 54) +#define SCSTR_CFG_VIEW (STR_START + 55) +#define SCSTR_CFG_SPELLCHECK (STR_START + 56) +#define SCSTR_CFG_PRINT (STR_START + 57) + +#define SCSTR_AUDITSHELL (STR_START + 58) + +#define SCSTR_CHARSET_USER (STR_START + 59) +#define SCSTR_COLUMN_USER (STR_START + 60) +#define SCSTR_FIELDSEP (STR_START + 61) +#define SCSTR_TEXTSEP (STR_START + 62) + +#define SCSTR_30_APPLICATION (STR_START + 63) +#define SCSTR_30_LONG_DOCNAME (STR_START + 64) + +#define SCSTR_CFG_INPUT (STR_START + 65) + +#define SCSTR_TOP10FILTER (STR_START + 66) + +#define SCSTR_CFG_NAVIPI (STR_START + 67) + +#define SCSTR_40_APPLICATION (STR_START + 68) +#define SCSTR_40_LONG_DOCNAME (STR_START + 69) + +#define SCSTR_DRAWFORMSHELL (STR_START + 70) +#define SCSTR_CELLSHELL (STR_START + 71) +#define SCSTR_FORMATSHELL (STR_START + 72) +#define SCSTR_OLEOBJECTSHELL (STR_START + 73) +#define SCSTR_CHARTSHELL (STR_START + 74) +#define SCSTR_GRAPHICSHELL (STR_START + 75) +#define SCSTR_PAGEBREAKSHELL (STR_START + 76) + +#define SCSTR_GRFILTER_OPENERROR (STR_START + 77) +#define SCSTR_GRFILTER_IOERROR (STR_START + 78) +#define SCSTR_GRFILTER_FORMATERROR (STR_START + 79) +#define SCSTR_GRFILTER_VERSIONERROR (STR_START + 80) +#define SCSTR_GRFILTER_FILTERERROR (STR_START + 81) +#define SCSTR_GRFILTER_TOOBIG (STR_START + 82) + +// Items + +#define SCSTR_HOR_JUSTIFY_LEFT (STR_START + 100) +#define SCSTR_HOR_JUSTIFY_CENTER (STR_START + 101) +#define SCSTR_HOR_JUSTIFY_RIGHT (STR_START + 102) +#define SCSTR_HOR_JUSTIFY_BLOCK (STR_START + 103) +#define SCSTR_HOR_JUSTIFY_REPEAT (STR_START + 104) +#define SCSTR_HOR_JUSTIFY_STANDARD (STR_START + 105) +#define SCSTR_VER_JUSTIFY_TOP (STR_START + 106) +#define SCSTR_VER_JUSTIFY_CENTER (STR_START + 107) +#define SCSTR_VER_JUSTIFY_BOTTOM (STR_START + 108) +#define SCSTR_VER_JUSTIFY_STANDARD (STR_START + 109) +#define SCSTR_ORIENTATION_TOPBOTTOM (STR_START + 110) +#define SCSTR_ORIENTATION_BOTTOMTOP (STR_START + 111) +#define SCSTR_ORIENTATION_STANDARD (STR_START + 112) + +#define SCSTR_CLIP_STRING (STR_START + 200) +#define SCSTR_CLIP_RTF (STR_START + 201) +#define SCSTR_CLIP_DDE (STR_START + 202) +#define SCSTR_CLIP_DIF (STR_START + 203) + +#define SCSTR_HUMAN_SCDOC_NAME (STR_START + 210) +#define SCSTR_SHORT_SCDOC_NAME (STR_START + 211) +#define SCSTR_LONG_SCDOC_NAME (STR_START + 212) + +#define SCSTR_CLPBRD_CLEAR (STR_START + 213) + +#define SCSTR_FORMULA_AUTOCORRECTION (STR_START + 214) + +// Navigator - in der Reihenfolge wie SC_CONTENT_... +#define SCSTR_CONTENT_ROOT (STR_START + 250) +#define SCSTR_CONTENT_TABLE (STR_START + 251) +#define SCSTR_CONTENT_RANGENAME (STR_START + 252) +#define SCSTR_CONTENT_DBAREA (STR_START + 253) +#define SCSTR_CONTENT_GRAPHIC (STR_START + 254) +#define SCSTR_CONTENT_OLEOBJECT (STR_START + 255) +#define SCSTR_CONTENT_NOTE (STR_START + 256) +#define SCSTR_CONTENT_AREALINK (STR_START + 257) +// hier ein wenig Platz fuer Erweiterungen + +// Eingabezeile, Quickhelp-Strings (HelpText jetzt per HelpId aus Hilfe) +#define SCSTR_QHELP_INPUTWND (STR_START + 307) +#define SCSTR_QHELP_POSWND (STR_START + 308) +#define SCSTR_QHELP_BTNCALC (STR_START + 309) +#define SCSTR_QHELP_BTNOK (STR_START + 310) +#define SCSTR_QHELP_BTNCANCEL (STR_START + 311) +#define SCSTR_QHELP_BTNSUM (STR_START + 312) +#define SCSTR_QHELP_BTNEQUAL (STR_START + 313) + +// Validator +#define SCSTR_MINIMUM (STR_START + 314) +#define SCSTR_MAXIMUM (STR_START + 315) +#define SCSTR_VALUE (STR_START + 316) + +// Formulator +#define SCSTR_FUDB (STR_START + 389) +#define SCSTR_FUDATE (STR_START + 390) +#define SCSTR_FUFIN (STR_START + 391) +#define SCSTR_FUINFO (STR_START + 392) +#define SCSTR_FULOG (STR_START + 393) +#define SCSTR_FUMATHS (STR_START + 394) +#define SCSTR_FUSTAT (STR_START + 395) +#define SCSTR_FUTAB (STR_START + 396) +#define SCSTR_FUTEXT (STR_START + 397) +// +#define SCSTR_COMPILER_STRINGS (STR_START + 398) +#define SCSTR_FILTER_STRINGS (STR_START + 399) +#define SCSTR_COMPILER_INTL_STR (STR_START + 400) + +#define STR_END (STR_START + 401) + +#define BMP_START (STR_END) +// Navigator +#define RID_BMP_EXPAND (BMP_START) +#define RID_BMP_COLLAPSE (BMP_START + 1) +#define RID_IMG_DROP_URL (BMP_START + 2) +#define RID_IMG_DROP_LINK (BMP_START + 3) +#define RID_IMG_DROP_COPY (BMP_START + 4) + +#define RID_SCPTR_PIVOTCOL (BMP_START + 81) +#define RID_SCPTR_PIVOTROW (BMP_START + 82) +#define RID_SCPTR_DETECTIVE (BMP_START + 83) +#define RID_SCPTR_CHART (BMP_START + 84) + +#define RID_SCICN_DOCUMENT (BMP_START + 95) +#define RID_SCICN_TEMPLATE (BMP_START + 96) +#define RID_SCICN_SC10DOC (BMP_START + 97) + +#define BMP_END (BMP_START + 100) + +#define SC_DIALOGS_START (BMP_END) +#define RID_SCDLG_ATTR (SC_DIALOGS_START) +#define RID_SCPAGE_NUMBER (SC_DIALOGS_START + 1) +#define RID_SCPAGE_ALIGNMENT (SC_DIALOGS_START + 2) +#define RID_SCPAGE_PROTECTION (SC_DIALOGS_START + 3) +#define RID_SCDLG_SORT (SC_DIALOGS_START + 5) +#define RID_SCPAGE_SORT_FIELDS (SC_DIALOGS_START + 6) +#define RID_SCPAGE_SORT_OPTIONS (SC_DIALOGS_START + 7) +#define RID_SCDLG_FILTER (SC_DIALOGS_START + 8) +#define RID_SCDLG_SPEC_FILTER (SC_DIALOGS_START + 9) +#define RID_SCMISCDLGS (SC_DIALOGS_START + 10) +#define RID_SCDLG_DELCELL (SC_DIALOGS_START + 11) +#define RID_SCDLG_INSCELL (SC_DIALOGS_START + 12) +#define RID_SCDLG_DELCONT (SC_DIALOGS_START + 13) +#define RID_SCDLG_INSCONT (SC_DIALOGS_START + 14) +#define RID_SCDLG_MOVETAB (SC_DIALOGS_START + 15) +#define RID_SCDLG_STRINPUT (SC_DIALOGS_START + 16) +#define RID_SCDLG_MTRINPUT (SC_DIALOGS_START + 17) +#define RID_SCDLG_SELENTRY (SC_DIALOGS_START + 18) +#define RID_SCDLG_FILLSERIES (SC_DIALOGS_START + 19) +#define RID_SCDLG_AUTOFORMAT (SC_DIALOGS_START + 20) +#define RID_SCDLG_GROUP (SC_DIALOGS_START + 21) +#define RID_SCDLG_NAMES (SC_DIALOGS_START + 22) +#define RID_SCDLG_DBNAMES (SC_DIALOGS_START + 23) +#define RID_SCDLG_PRINTOPTIONS (SC_DIALOGS_START + 24) +#define RID_SCPAGE_PRINTOPTIONS (SC_DIALOGS_START + 25) +#define RID_SCDLG_SOLVER (SC_DIALOGS_START + 26) +#define RID_SCDLG_SUBTOTALS (SC_DIALOGS_START + 27) +#define RID_SUBTBASE (SC_DIALOGS_START + 28) +#define RID_SCPAGE_SUBT_OPTIONS (SC_DIALOGS_START + 29) +#define RID_SCDLG_OPTIONS (SC_DIALOGS_START + 30) +#define RID_SCPAGE_USERLISTS (SC_DIALOGS_START + 31) +#define RID_SCDLG_PIVOTFILTER (SC_DIALOGS_START + 33) +#define RID_SCDLG_PIVOT_LAYOUT (SC_DIALOGS_START + 34) +#define RID_SCDLG_CONSOLIDATE (SC_DIALOGS_START + 35) +#define RID_SCTBXWND_SCENARIO (SC_DIALOGS_START + 36) +#define RID_SCDLG_FORMULATOR (SC_DIALOGS_START + 37) +#define RID_SCDLG_PIVOTSUBT (SC_DIALOGS_START + 38) +#define RID_SCDLG_NEWSCENARIO (SC_DIALOGS_START + 39) +#define RID_SCDLG_FORMULA (SC_DIALOGS_START + 40) +#define RID_SCDLG_ARGUMENTS (SC_DIALOGS_START + 41) +#define RID_SCDLG_INSERT_TABLE (SC_DIALOGS_START + 42) +#define RID_SCPAGE_TABLE (SC_DIALOGS_START + 43) +#define RID_SCPAGE_AREAS (SC_DIALOGS_START + 44) +#define RID_SCDLG_STYLES_START (SC_DIALOGS_START + 45) +#define RID_SCDLG_STYLES_CHAR (SC_DIALOGS_START + 45) +#define RID_SCDLG_STYLES_PAR (SC_DIALOGS_START + 46) +#define RID_SCDLG_STYLES_FRAME (SC_DIALOGS_START + 47) +#define RID_SCDLG_STYLES_PAGE (SC_DIALOGS_START + 48) +#define RID_SCDLG_STYLES_END (SC_DIALOGS_START + 48) +#define RID_HFBASE (SC_DIALOGS_START + 49) +#define RID_SCDLG_HFEDIT (SC_DIALOGS_START + 50) +#define RID_SCDLG_HFEDIT_ALL (SC_DIALOGS_START + 51) +#define RID_SCDLG_HFED_HEADER (SC_DIALOGS_START + 52) +#define RID_SCDLG_HFED_FOOTER (SC_DIALOGS_START + 53) +#define RID_SCBTN_HFEDIT (SC_DIALOGS_START + 54) +#define RID_SCPAGE_VIEW (SC_DIALOGS_START + 55) +#define RID_SCPAGE_CALC (SC_DIALOGS_START + 56) +#define RID_SCDLG_NAVIGATOR (SC_DIALOGS_START + 57) +#define RID_SCDLG_TABOP (SC_DIALOGS_START + 58) +#define RID_SCDLG_IMPORTOPT (SC_DIALOGS_START + 59) +#define RID_POPUP_ROWHEADER (SC_DIALOGS_START + 60) +#define RID_POPUP_COLHEADER (SC_DIALOGS_START + 61) +#define RID_SCDLG_HFEDIT_SHDR (SC_DIALOGS_START + 62) +#define RID_SCDLG_HFEDIT_SFTR (SC_DIALOGS_START + 63) +#define RID_SCDLG_HFEDIT_LEFTHEADER (SC_DIALOGS_START + 64) +#define RID_SCDLG_HFEDIT_RIGHTHEADER (SC_DIALOGS_START + 65) +#define RID_SCDLG_HFEDIT_LEFTFOOTER (SC_DIALOGS_START + 66) +#define RID_SCDLG_HFEDIT_RIGHTFOOTER (SC_DIALOGS_START + 67) +#define RID_SCDLG_HFEDIT_HEADER (SC_DIALOGS_START + 68) +#define RID_SCDLG_HFEDIT_FOOTER (SC_DIALOGS_START + 69) +#define RID_SCPAGE_PRINT (SC_DIALOGS_START + 70) +#define RID_SCDLG_COLORROW (SC_DIALOGS_START + 71) +#define RID_SCDLG_NAMES_PASTE (SC_DIALOGS_START + 72) +#define RID_SCDLG_NAMES_CREATE (SC_DIALOGS_START + 73) +#define RID_SCDLG_NAMES_APPLY (SC_DIALOGS_START + 74) //NYI +#define RID_SCDLG_TEAM (SC_DIALOGS_START + 75) + +#define RID_SCDLG_CHAR (SC_DIALOGS_START + 76) +#define RID_SCDLG_PARAGRAPH (SC_DIALOGS_START + 77) +#define RID_SCDLG_CHARTRANGE (SC_DIALOGS_START + 78) + +#define RID_SCPAGE_STAT (SC_DIALOGS_START + 79) +#define RID_SCDLG_CHARTCOLROW (SC_DIALOGS_START + 80) +#define RID_SCDLG_AREAS (SC_DIALOGS_START + 81) + +#define RID_SCDLG_EDITCHAR (SC_DIALOGS_START + 82) + + // Popup fuer Statusbar-Controller +#define RID_POPUP_SUMCTL (SC_DIALOGS_START + 83) +#define RID_SUMCTL_SUM (SC_DIALOGS_START + 84) +#define RID_SUMCTL_MIN (SC_DIALOGS_START + 85) +#define RID_SUMCTL_MAX (SC_DIALOGS_START + 86) +#define RID_SUMCTL_COUNT (SC_DIALOGS_START + 87) +#define RID_SUMCTL_COUNT2 (SC_DIALOGS_START + 88) +#define RID_SUMCTL_AVG (SC_DIALOGS_START + 89) +#define RID_SUMCTL_NONE (SC_DIALOGS_START + 90) + +#define RID_SCDLG_ASCII (SC_DIALOGS_START + 91) + + // Popup fuer Drop-Modus im Navigator +#define RID_POPUP_DROPMODE (SC_DIALOGS_START + 92) +#define RID_DROPMODE_URL (SC_DIALOGS_START + 93) +#define RID_DROPMODE_LINK (SC_DIALOGS_START + 94) +#define RID_DROPMODE_COPY (SC_DIALOGS_START + 95) +#define RID_SCDLG_CONDFORMAT (SC_DIALOGS_START + 96) + +#define RID_SCPAGE_SUBT_GROUP1 (SC_DIALOGS_START + 97) +#define RID_SCPAGE_SUBT_GROUP2 (SC_DIALOGS_START + 98) +#define RID_SCPAGE_SUBT_GROUP3 (SC_DIALOGS_START + 99) + +#define RID_SCPAGE_HFED_HL (SC_DIALOGS_START + 100) +#define RID_SCPAGE_HFED_HR (SC_DIALOGS_START + 101) +#define RID_SCPAGE_HFED_FL (SC_DIALOGS_START + 102) +#define RID_SCPAGE_HFED_FR (SC_DIALOGS_START + 103) + +// Ableitungen von RID_SCDLG_MTRINPUT +#define RID_SCDLG_COL_MAN (SC_DIALOGS_START + 104) +#define RID_SCDLG_COL_OPT (SC_DIALOGS_START + 105) +#define RID_SCDLG_ROW_MAN (SC_DIALOGS_START + 106) +#define RID_SCDLG_ROW_OPT (SC_DIALOGS_START + 107) + +// Ableitungen von RID_SCDLG_SELENTRY +#define RID_SCDLG_SELECTDB (SC_DIALOGS_START + 108) +#define RID_SCDLG_SHOW_TAB (SC_DIALOGS_START + 109) + +// Ableitungen von RID_SCDLG_GROUP +#define RID_SCDLG_GRP_MAKE (SC_DIALOGS_START + 110) +#define RID_SCDLG_GRP_KILL (SC_DIALOGS_START + 111) + +#define RID_SCDLG_COLROWNAMERANGES (SC_DIALOGS_START + 112) + +#define RID_SCPAGE_CONTENT (SC_DIALOGS_START + 113) +#define RID_SCPAGE_LAYOUT (SC_DIALOGS_START + 114) +#define RID_SCPAGE_INPUT (SC_DIALOGS_START + 115) + +#define RID_SCTAB_PARAMETER (SC_DIALOGS_START + 116) +#define RID_SCTAB_FUNCTION (SC_DIALOGS_START + 117) +#define RID_SCTAB_STRUCT (SC_DIALOGS_START + 118) + +#define RID_SCDLG_CHANGES (SC_DIALOGS_START + 119) + +#define RID_POPUP_NAVIPI_SCENARIO (SC_DIALOGS_START + 120) +#define RID_NAVIPI_SCENARIO_DELETE (SC_DIALOGS_START + 121) +#define RID_NAVIPI_SCENARIO_EDIT (SC_DIALOGS_START + 122) + +#define RID_SCDLG_HIGHLIGHT_CHANGES (SC_DIALOGS_START + 123) +#define RID_SCPAGE_OPREDLINE (SC_DIALOGS_START + 124) + +#define RID_SCDLG_SIMPLEREF (SC_DIALOGS_START + 125) +#define WID_SIMPLE_REF (SC_DIALOGS_START + 126) +#define RID_POPUP_CHANGES (SC_DIALOGS_START + 127) +#define RID_SCPAGE_OPTLOAD (SC_DIALOGS_START + 128) + +#define RID_SCDLG_DAPITYPE (SC_DIALOGS_START + 129) +#define RID_SCDLG_DAPISERVICE (SC_DIALOGS_START + 130) +#define RID_SCDLG_DAPIDATA (SC_DIALOGS_START + 131) + +#define SC_DIALOGS_END (SC_DIALOGS_START + 150) + +#ifndef STD_MASKCOLOR +#define STD_MASKCOLOR Color { Red=0xC000; Green=0xC000; Blue=0xC000; } +#endif + + +#endif + + diff --git a/sc/inc/scdll.hxx b/sc/inc/scdll.hxx new file mode 100644 index 000000000000..391f2b83ba89 --- /dev/null +++ b/sc/inc/scdll.hxx @@ -0,0 +1,161 @@ +/************************************************************************* + * + * $RCSfile: scdll.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:50 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_SCDLL_HXX +#define SC_SCDLL_HXX + +class ResMgr; +class SvFactory; +class SotFactory; +class StatusBar; +class SfxMedium; +class SfxFilter; + +#ifndef _SFXDEFS_HXX //autogen +#include <sfx2/sfxdefs.hxx> +#endif +#ifndef _SFXMODULE_HXX //autogen +#include <sfx2/module.hxx> +#endif +#ifndef _SFX_OBJFAC_HXX +#include <sfx2/docfac.hxx> +#endif + +//------------------------------------------------------------------------- + +class ScDLL + +/* [Description] + + This class is a wrapper for a Load-On-Demand-DLL. One instance + per SfxApplication will be created for the runtime of + SfxApplication-subclass::Main(). + + Remember: Do export this class! It is used by the application. +*/ + +{ +public: + // Ctor/Dtor must be linked to the application + ScDLL(); + ~ScDLL(); + + // static-init/exit-code must be linked to the application + static void LibInit(); // called from SfxApplication-subclass::Init() + static void LibExit(); // called from SfxApplication-subclass::Exit() + static void PreExit(); // muss vor LibExit gerufen werden + + // DLL-init/exit-code must be linked to the DLL only + static void Init(); // called directly after loading the DLL + static void Exit(); // called directly befor unloading the DLL + + + static void FillStatusBar(StatusBar &rBar); + + static ULONG DetectFilter( SfxMedium& rMedium, const SfxFilter** ppFilter, + SfxFilterFlags nMust, SfxFilterFlags nDont ); +}; + +//------------------------------------------------------------------------- + +#ifdef WNT +typedef void ( __cdecl * ScSigCatchFunc )( int ); +#else +typedef void ( * ScSigCatchFunc )( int ); +#endif +typedef ScSigCatchFunc ( * ScLibSignalFunc )( int, ScSigCatchFunc ); + +class ScModuleDummy: public SfxModule + +/* [Description] + + This tricky class keeps pointers to the SvFactories while + the DLL isn`t loaded. A pointer to the one instance is available + through SXX_MOD() (shared-lib-app-data). +*/ + +{ +public: + // SvFactory name convention: + // 'p' + SfxObjectShell-subclass + 'Factory' + SotFactory* pScDocShellFactory; + ScLibSignalFunc pSignalFunc; + + ScModuleDummy( ResMgr *pResMgr, BOOL bDummy, SfxObjectFactory* pFact ) + : SfxModule(pResMgr, bDummy, pFact, NULL), + pScDocShellFactory(pFact), pSignalFunc(0) + {} + + virtual SfxModule* Load(); + + ScLibSignalFunc GetSignalFunc() { return pSignalFunc; } + + static SvGlobalName GetID(USHORT nFileFormat); + static USHORT HasID(const SvGlobalName& rName); +}; + +//------------------------------------------------------------------------- + +#define SC_DLL() ( *(ScModuleDummy**) GetAppData(SHL_CALC) ) + +#endif + + diff --git a/sc/inc/scerrors.hxx b/sc/inc/scerrors.hxx new file mode 100644 index 000000000000..f4488d1ff98d --- /dev/null +++ b/sc/inc/scerrors.hxx @@ -0,0 +1,105 @@ +/************************************************************************* + * + * $RCSfile: scerrors.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:50 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef _SCERRORS_HXX +#define _SCERRORS_HXX + +#define SCERR_LAST 500 + +#ifndef _ERRCODE_HXX //autogen +#include <tools/errcode.hxx> +#endif + +//------------------------------------------------------------------------ +// ERRORS +//------------------------------------------------------------------------ +#define SCERR_IMPORT_CONNECT ( 1 | ERRCODE_AREA_SC | ERRCODE_CLASS_READ ) +#define SCERR_IMPORT_CURSOR ( 2 | ERRCODE_AREA_SC | ERRCODE_CLASS_READ ) +#define SCERR_IMPORT_OPEN ( 3 | ERRCODE_AREA_SC | ERRCODE_CLASS_READ ) +#define SCERR_IMPORT_UNKNOWN ( 4 | ERRCODE_AREA_SC | ERRCODE_CLASS_READ ) +#define SCERR_IMPORT_OUTOFMEM ( 5 | ERRCODE_AREA_SC | ERRCODE_CLASS_READ ) +#define SCERR_IMPORT_UNKNOWN_WK ( 6 | ERRCODE_AREA_SC | ERRCODE_CLASS_READ ) +#define SCERR_IMPORT_FORMAT ( 7 | ERRCODE_AREA_SC | ERRCODE_CLASS_READ ) +#define SCERR_IMPORT_NI ( 8 | ERRCODE_AREA_SC | ERRCODE_CLASS_READ ) +#define SCERR_IMPORT_UNKNOWN_BIFF ( 9 | ERRCODE_AREA_SC | ERRCODE_CLASS_READ ) +#define SCERR_IMPORT_NI_BIFF ( 10 | ERRCODE_AREA_SC | ERRCODE_CLASS_READ ) +#define SCERR_IMPORT_FILEPASSWD ( 11 | ERRCODE_AREA_SC | ERRCODE_CLASS_READ ) +#define SCERR_IMPORT_INTERNAL ( 12 | ERRCODE_AREA_SC | ERRCODE_CLASS_READ ) +#define SCERR_IMPORT_8K_LIMIT ( 13 | ERRCODE_AREA_SC | ERRCODE_CLASS_READ ) + +#define SCERR_EXPORT_CONNECT ( 1 | ERRCODE_AREA_SC | ERRCODE_CLASS_WRITE ) +#define SCERR_EXPORT_CURSOR ( 2 | ERRCODE_AREA_SC | ERRCODE_CLASS_WRITE ) +#define SCERR_EXPORT_DATA ( 3 | ERRCODE_AREA_SC | ERRCODE_CLASS_WRITE ) + +//------------------------------------------------------------------------ +// WARNINGS +//------------------------------------------------------------------------ +#define SCWARN_EXPORT_ASCII ( 1 + SCERR_LAST | ERRCODE_WARNING_MASK | ERRCODE_AREA_SC | ERRCODE_CLASS_WRITE ) +#define SCWARN_IMPORT_RANGE_OVERFLOW ( 2 + SCERR_LAST | ERRCODE_WARNING_MASK | ERRCODE_AREA_SC | ERRCODE_CLASS_READ ) +#define SCWARN_IMPORT_OPEN_FM3 ( 3 + SCERR_LAST | ERRCODE_WARNING_MASK | ERRCODE_AREA_SC | ERRCODE_CLASS_READ ) +#define SCWARN_IMPORT_WRONG_FM3 ( 4 + SCERR_LAST | ERRCODE_WARNING_MASK | ERRCODE_AREA_SC | ERRCODE_CLASS_READ ) +#define SCWARN_CORE_HARD_RECALC ( 5 + SCERR_LAST | ERRCODE_WARNING_MASK | ERRCODE_AREA_SC | ERRCODE_CLASS_GENERAL ) +#define SCWARN_EXPORT_MAXROW ( 6 + SCERR_LAST | ERRCODE_WARNING_MASK | ERRCODE_AREA_SC | ERRCODE_CLASS_WRITE ) +#define SCWARN_IMPORT_INFOLOST ( 7 + SCERR_LAST | ERRCODE_WARNING_MASK | ERRCODE_AREA_SC | ERRCODE_CLASS_READ ) +#define SCWARN_EXPORT_DATALOST ( 8 + SCERR_LAST | ERRCODE_WARNING_MASK | ERRCODE_AREA_SC | ERRCODE_CLASS_WRITE ) + +#endif + diff --git a/sc/inc/scextopt.hxx b/sc/inc/scextopt.hxx new file mode 100644 index 000000000000..3843b0a4059a --- /dev/null +++ b/sc/inc/scextopt.hxx @@ -0,0 +1,286 @@ +/************************************************************************* + * + * $RCSfile: scextopt.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:50 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef _SCEXTOPT_HXX +#define _SCEXTOPT_HXX + + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" +#endif +#ifndef _LIST_HXX +#include <tools/list.hxx> +#endif +#ifndef _STRING_HXX +#include <tools/string.hxx> +#endif + + + +class ColRowSettings; + +// ACHTUNG1: einzelne Einstellungen sollten stimmen +// -> Absicherung nur ueber Assertions +// ACHTUNG2: Plausibilitaet der Einstellungen untereinander ist nicht +// gewaehrleistet + +struct ScExtTabOptions +{ + // Split -Info + UINT16 nTabNum; + UINT16 nSplitX; // horiz. Pos. in Twips, 0 = kein Split + UINT16 nSplitY; // vert. Pos. ~ + UINT16 nLeftSplitCol; // linke sichtbare Col im rechten Teil + UINT16 nTopSplitRow; // obere sichtbare Row im unteren Teil + UINT16 nActPane; // 0: ur, 1: or, 2: ul, 3: ol + + ScRange aLastSel; // letzte Selektion + BOOL bValidSel; + ScRange aDim; // original Excel-Groesse + BOOL bValidDim; + + BOOL bFrozen; // = TRUE -> nSplitX / nSplitY Anzahl + // sichtbarer Col/Row links bzw. oben + + inline ScExtTabOptions( void ); + inline ScExtTabOptions( const ScRange& rLastSel ); + inline ScExtTabOptions( const ScExtTabOptions& rCpy ); + inline void operator =( const ScExtTabOptions& rCpy ); + + void SetSelection( const ScRange& rSelection ); + void SetDimension( const ScRange& rDim ); +}; + + + + +class CodenameList : protected List +{ + // Code: colrowst.cxx +private: +protected: +public: + inline CodenameList( void ); + CodenameList( const CodenameList& ); + virtual ~CodenameList(); + + inline void Append( const String& ); + + inline const String* First( void ); + inline const String* Next( void ); + inline const String* Act( void ) const; + + List::Count; +}; + + + + +class ScExtDocOptions +{ +// Code: colrowst.cxx +private: + friend ColRowSettings; + // Window -Info + ScExtTabOptions** ppExtTabOpts; + + String* pCodenameWB; + CodenameList* pCodenames; +public: + UINT32 nLinkCnt; // Zaehlt die Rekursionstufe beim Laden + // von externen Dokumenten + UINT16 nActTab; // aktuelle Tabelle + UINT16 nVisLeftCol; // linke Col des sichtbaren Tabellenteils + UINT16 nVisTopRow; // rechte Row des sichtbaren Tabellenteils + Color* pGridCol; // Farbe Grid und Row-/Col-Heading + UINT16 nZoom; // in % + // Cursor + UINT16 nCurCol; // aktuelle Cursor-Position + UINT16 nCurRow; + // ------------------------------------------------------------------- + ScExtDocOptions( void ); + ~ScExtDocOptions(); + + ScExtDocOptions& operator =( const ScExtDocOptions& rCpy ); + + void SetGridCol( BYTE nR, BYTE nG, BYTE nB ); + void SetActTab( UINT16 nTab ); + void SetVisCorner( UINT16 nCol, UINT16 nRow ); + void SetCursor( UINT16 nCol, UINT16 nRow ); + void SetZoom( UINT16 nZaehler, UINT16 nNenner ); + + void Add( const ColRowSettings& rCRS ); + + inline const ScExtTabOptions* GetExtTabOptions( const UINT16 nTabNum ) const; + + inline const String* GetCodename( void ) const; // for Workbook globals + inline CodenameList* GetCodenames( void ); // for tables + + void SetCodename( const String& ); // -> Workbook globals + void AddCodename( const String& ); // -> tables +}; + + + + +inline CodenameList::CodenameList( void ) +{ +} + + +inline void CodenameList::Append( const String& r ) +{ + List::Insert( new String( r ), LIST_APPEND ); +} + + +inline const String* CodenameList::First( void ) +{ + return ( const String* ) List::First(); +} + + +inline const String* CodenameList::Next( void ) +{ + return ( const String* ) List::Next(); +} + + +inline const String* CodenameList::Act( void ) const +{ + return ( const String* ) List::GetCurObject(); +} + + + + +inline ScExtTabOptions::ScExtTabOptions( void ) +{ + nSplitX = nSplitY = nLeftSplitCol = nTopSplitRow = nActPane = 0; + bFrozen = bValidSel = bValidDim = FALSE; +} + + +inline ScExtTabOptions::ScExtTabOptions( const ScRange& rLastSel ) : aLastSel( rLastSel ) +{ + nTabNum = nSplitX = nSplitY = nLeftSplitCol = nTopSplitRow = nActPane = 0; + bFrozen = bValidDim = FALSE; + bValidSel = TRUE; +} + + +inline ScExtTabOptions::ScExtTabOptions( const ScExtTabOptions& rCpy ) +{ + nTabNum = rCpy.nTabNum; + nSplitX = rCpy.nSplitX; + nSplitY = rCpy.nSplitY; + nLeftSplitCol = rCpy.nLeftSplitCol; + nTopSplitRow = rCpy.nTopSplitRow; + nActPane = rCpy.nActPane; + aLastSel = rCpy.aLastSel; + aDim = rCpy.aDim; + bFrozen = rCpy.bFrozen; + bValidSel = rCpy.bValidSel; + bValidDim = rCpy.bValidDim; +} + + +inline void ScExtTabOptions::operator =( const ScExtTabOptions& rCpy ) +{ + nTabNum = rCpy.nTabNum; + nSplitX = rCpy.nSplitX; + nSplitY = rCpy.nSplitY; + nLeftSplitCol = rCpy.nLeftSplitCol; + nTopSplitRow = rCpy.nTopSplitRow; + nActPane = rCpy.nActPane; + aLastSel = rCpy.aLastSel; + aDim = rCpy.aDim; + bFrozen = rCpy.bFrozen; + bValidSel = rCpy.bValidSel; + bValidDim = rCpy.bValidDim; +} + + + + +inline const ScExtTabOptions* ScExtDocOptions::GetExtTabOptions( const UINT16 nTab ) const +{ + if( nTab <= MAXTAB ) + return ppExtTabOpts[ nTab ]; + else + return NULL; +} + + +inline const String* ScExtDocOptions::GetCodename( void ) const +{ + return pCodenameWB; +} + + +inline CodenameList* ScExtDocOptions::GetCodenames( void ) +{ + return pCodenames; +} + + +#endif + diff --git a/sc/inc/scfuncs.hrc b/sc/inc/scfuncs.hrc new file mode 100644 index 000000000000..1ce24809e5e7 --- /dev/null +++ b/sc/inc/scfuncs.hrc @@ -0,0 +1,348 @@ +/************************************************************************* + * + * $RCSfile: scfuncs.hrc,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:50 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#include "sc.hrc" + +#define ID_FUNCTION_GRP_DATABASE 1 +#define ID_FUNCTION_GRP_DATETIME 2 +#define ID_FUNCTION_GRP_FINANZ 3 +#define ID_FUNCTION_GRP_INFO 4 +#define ID_FUNCTION_GRP_LOGIC 5 +#define ID_FUNCTION_GRP_MATH 6 +#define ID_FUNCTION_GRP_MATRIX 7 +#define ID_FUNCTION_GRP_STATISTIC 8 +#define ID_FUNCTION_GRP_TABLE 9 +#define ID_FUNCTION_GRP_TEXT 10 +#define ID_FUNCTION_GRP_ADDINS 11 + +#define ID_FUNCTION_OFFSET 90 + +// ID zaehlt ab 1, Hilfe-IDs muessen aber bei HID_SC_FUNC_START anfangen +#define HID_SC_FUNC_DUMMY (HID_SC_FUNC_START-ID_FUNCTION_OFFSET) + +#define HID_FUNC_DBANZAHL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATABASE*ID_FUNCTION_OFFSET)+1) +#define HID_FUNC_DBANZAHL2 (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATABASE*ID_FUNCTION_OFFSET)+2) +#define HID_FUNC_DBMITTELWERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATABASE*ID_FUNCTION_OFFSET)+3) +#define HID_FUNC_DBAUSZUG (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATABASE*ID_FUNCTION_OFFSET)+4) +#define HID_FUNC_DBMAX (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATABASE*ID_FUNCTION_OFFSET)+5) +#define HID_FUNC_DBMIN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATABASE*ID_FUNCTION_OFFSET)+6) +#define HID_FUNC_DBPRODUKT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATABASE*ID_FUNCTION_OFFSET)+7) +#define HID_FUNC_DBSTDABW (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATABASE*ID_FUNCTION_OFFSET)+8) +#define HID_FUNC_DBSTDABWN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATABASE*ID_FUNCTION_OFFSET)+9) +#define HID_FUNC_DBSUMME (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATABASE*ID_FUNCTION_OFFSET)+10) +#define HID_FUNC_DBVARIANZ (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATABASE*ID_FUNCTION_OFFSET)+11) +#define HID_FUNC_DBVARIANZEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATABASE*ID_FUNCTION_OFFSET)+12) + +#define HID_FUNC_DATUM (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATETIME*ID_FUNCTION_OFFSET)+1) +#define HID_FUNC_DATWERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATETIME*ID_FUNCTION_OFFSET)+2) +#define HID_FUNC_TAG (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATETIME*ID_FUNCTION_OFFSET)+3) +#define HID_FUNC_TAGE360 (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATETIME*ID_FUNCTION_OFFSET)+4) +#define HID_FUNC_STUNDE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATETIME*ID_FUNCTION_OFFSET)+5) +#define HID_FUNC_MINUTE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATETIME*ID_FUNCTION_OFFSET)+6) +#define HID_FUNC_MONAT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATETIME*ID_FUNCTION_OFFSET)+7) +#define HID_FUNC_JETZT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATETIME*ID_FUNCTION_OFFSET)+8) +#define HID_FUNC_SEKUNDE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATETIME*ID_FUNCTION_OFFSET)+9) +#define HID_FUNC_ZEIT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATETIME*ID_FUNCTION_OFFSET)+10) +#define HID_FUNC_ZEITWERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATETIME*ID_FUNCTION_OFFSET)+11) +#define HID_FUNC_HEUTE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATETIME*ID_FUNCTION_OFFSET)+12) +#define HID_FUNC_WOCHENTAG (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATETIME*ID_FUNCTION_OFFSET)+13) +#define HID_FUNC_JAHR (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATETIME*ID_FUNCTION_OFFSET)+14) +#define HID_FUNC_TAGE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATETIME*ID_FUNCTION_OFFSET)+15) +#define HID_FUNC_KALENDERWOCHE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATETIME*ID_FUNCTION_OFFSET)+16) +#define HID_FUNC_OSTERSONNTAG (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_DATETIME*ID_FUNCTION_OFFSET)+17) + +#define HID_FUNC_BW (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+1) +#define HID_FUNC_ZW (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+2) +#define HID_FUNC_ZZR (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+3) +#define HID_FUNC_RMZ (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+4) +#define HID_FUNC_ZINS (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+5) +#define HID_FUNC_ZINSZ (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+6) +#define HID_FUNC_KAPZ (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+7) +#define HID_FUNC_KUMKAPITAL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+8) +#define HID_FUNC_KUMZINSZ (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+9) +#define HID_FUNC_DIA (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+10) +#define HID_FUNC_LIA (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+11) +#define HID_FUNC_GDA (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+12) +#define HID_FUNC_GDA2 (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+13) +#define HID_FUNC_VDB (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+14) +#define HID_FUNC_EFFEKTIV (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+15) +#define HID_FUNC_NOMINAL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+16) +#define HID_FUNC_NBW (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+17) +#define HID_FUNC_IKV (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+18) +#define HID_FUNC_LAUFZEIT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+19) +#define HID_FUNC_ZGZ (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_FINANZ*ID_FUNCTION_OFFSET)+20) + +#define HID_FUNC_ISTBEZUG (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+1) +#define HID_FUNC_ISTFEHL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+2) +#define HID_FUNC_ISTFEHLER (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+3) +#define HID_FUNC_ISTLEER (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+4) +#define HID_FUNC_ISTLOG (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+5) +#define HID_FUNC_ISTNV (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+6) +#define HID_FUNC_ISTKTEXT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+7) +#define HID_FUNC_ISTTEXT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+8) +#define HID_FUNC_ISTZAHL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+9) +#define HID_FUNC_ISTFORMEL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+10) +#define HID_FUNC_N (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+11) +#define HID_FUNC_NV (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+12) +#define HID_FUNC_TYP (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+13) +#define HID_FUNC_AKTUELL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+14) +#define HID_FUNC_FORMEL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+15) + +#define HID_FUNC_FALSCH (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_LOGIC*ID_FUNCTION_OFFSET)+1) +#define HID_FUNC_NICHT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_LOGIC*ID_FUNCTION_OFFSET)+2) +#define HID_FUNC_WAHR (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_LOGIC*ID_FUNCTION_OFFSET)+3) +#define HID_FUNC_WENN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_LOGIC*ID_FUNCTION_OFFSET)+4) +#define HID_FUNC_ODER (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_LOGIC*ID_FUNCTION_OFFSET)+5) +#define HID_FUNC_UND (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_LOGIC*ID_FUNCTION_OFFSET)+6) + +#define HID_FUNC_ABS (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+1) +#define HID_FUNC_POTENZ (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+2) +#define HID_FUNC_ANZAHLLEEREZELLEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+3) +#define HID_FUNC_PI (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+4) +#define HID_FUNC_SUMME (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+5) +#define HID_FUNC_QUADRATESUMME (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+6) +#define HID_FUNC_PRODUKT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+7) +#define HID_FUNC_SUMMEWENN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+8) +#define HID_FUNC_ZAEHLENWENN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+9) +#define HID_FUNC_WURZEL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+10) +#define HID_FUNC_ZUFALLSZAHL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+11) +#define HID_FUNC_ISTGERADE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+12) +#define HID_FUNC_ISTUNGERADE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+13) +#define HID_FUNC_KOMBINATIONEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+14) +#define HID_FUNC_KOMBINATIONEN2 (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+15) +#define HID_FUNC_ARCCOS (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+16) +#define HID_FUNC_ARCSIN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+17) +#define HID_FUNC_ARCOSHYP (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+18) +#define HID_FUNC_ARSINHYP (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+19) +#define HID_FUNC_ARCCOT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+20) +#define HID_FUNC_ARCTAN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+21) +#define HID_FUNC_ARCOTHYP (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+22) +#define HID_FUNC_ARTANHYP (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+23) +#define HID_FUNC_COS (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+24) +#define HID_FUNC_SIN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+25) +#define HID_FUNC_COT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+26) +#define HID_FUNC_TAN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+27) +#define HID_FUNC_COSHYP (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+28) +#define HID_FUNC_SINHYP (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+29) +#define HID_FUNC_COTHYP (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+30) +#define HID_FUNC_TANHYP (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+31) +#define HID_FUNC_ARCTAN2 (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+32) +#define HID_FUNC_DEG (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+33) +#define HID_FUNC_RAD (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+34) +#define HID_FUNC_EXP (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+35) +#define HID_FUNC_LOG (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+36) +#define HID_FUNC_LN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+37) +#define HID_FUNC_LOG10 (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+38) +#define HID_FUNC_FAKULTAET (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+39) +#define HID_FUNC_REST (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+40) +#define HID_FUNC_VORZEICHEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+41) +#define HID_FUNC_TEILERGEBNIS (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+42) +#define HID_FUNC_GANZZAHL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+43) +#define HID_FUNC_KUERZEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+44) +#define HID_FUNC_RUNDEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+45) +#define HID_FUNC_AUFRUNDEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+46) +#define HID_FUNC_ABRUNDEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+47) +#define HID_FUNC_GERADE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+48) +#define HID_FUNC_UNGERADE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+49) +#define HID_FUNC_OBERGRENZE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+50) +#define HID_FUNC_UNTERGRENZE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+51) +#define HID_FUNC_GGT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+52) +#define HID_FUNC_KGV (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+53) +#define HID_FUNC_UMRECHNEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATH*ID_FUNCTION_OFFSET)+54) + +#define HID_FUNC_MTRANS (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATRIX*ID_FUNCTION_OFFSET)+1) +#define HID_FUNC_MMULT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATRIX*ID_FUNCTION_OFFSET)+2) +#define HID_FUNC_MDET (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATRIX*ID_FUNCTION_OFFSET)+3) +#define HID_FUNC_MINV (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATRIX*ID_FUNCTION_OFFSET)+4) +#define HID_FUNC_EINHEITSMATRIX (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATRIX*ID_FUNCTION_OFFSET)+5) +#define HID_FUNC_SUMMENPRODUKT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATRIX*ID_FUNCTION_OFFSET)+6) +#define HID_FUNC_SUMMEX2MY2 (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATRIX*ID_FUNCTION_OFFSET)+7) +#define HID_FUNC_SUMMEX2PY2 (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATRIX*ID_FUNCTION_OFFSET)+8) +#define HID_FUNC_SUMMEXMY2 (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATRIX*ID_FUNCTION_OFFSET)+9) +#define HID_FUNC_HAEUFIGKEIT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATRIX*ID_FUNCTION_OFFSET)+10) +#define HID_FUNC_RGP (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATRIX*ID_FUNCTION_OFFSET)+11) +#define HID_FUNC_RKP (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATRIX*ID_FUNCTION_OFFSET)+12) +#define HID_FUNC_TREND (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATRIX*ID_FUNCTION_OFFSET)+13) +#define HID_FUNC_VARIATION (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_MATRIX*ID_FUNCTION_OFFSET)+14) + +#define HID_FUNC_ANZAHL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+1) +#define HID_FUNC_ANZAHL2 (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+2) +#define HID_FUNC_MAX (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+3) +#define HID_FUNC_MIN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+4) +#define HID_FUNC_VARIANZ (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+5) +#define HID_FUNC_VARIANZEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+6) +#define HID_FUNC_STABW (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+7) +#define HID_FUNC_STABWN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+8) +#define HID_FUNC_MITTELWERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+9) +#define HID_FUNC_SUMQUADABW (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+10) +#define HID_FUNC_MITTELABW (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+11) +#define HID_FUNC_SCHIEFE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+12) +#define HID_FUNC_KURT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+13) +#define HID_FUNC_GEOMITTEL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+14) +#define HID_FUNC_HARMITTEL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+15) +#define HID_FUNC_MODALWERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+16) +#define HID_FUNC_MEDIAN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+17) +#define HID_FUNC_QUANTIL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+18) +#define HID_FUNC_QUARTILE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+19) +#define HID_FUNC_KGROESSTE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+20) +#define HID_FUNC_KKLEINSTE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+21) +#define HID_FUNC_QUANTILSRANG (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+22) +#define HID_FUNC_RANG (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+23) +#define HID_FUNC_GESTUTZTMITTEL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+24) +#define HID_FUNC_WAHRSCHBEREICH (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+25) +#define HID_FUNC_B (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+26) +#define HID_FUNC_PHI (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+27) +#define HID_FUNC_GAUSS (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+28) +#define HID_FUNC_FISHER (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+29) +#define HID_FUNC_FISHERINV (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+30) +#define HID_FUNC_BINOMVERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+31) +#define HID_FUNC_NEGBINOMVERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+32) +#define HID_FUNC_KRITBINOM (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+33) +#define HID_FUNC_POISSON (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+34) +#define HID_FUNC_NORMVERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+35) +#define HID_FUNC_NORMINV (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+36) +#define HID_FUNC_STANDNORMVERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+37) +#define HID_FUNC_STANDNORMINV (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+38) +#define HID_FUNC_LOGNORMVERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+39) +#define HID_FUNC_LOGINV (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+40) +#define HID_FUNC_EXPONVERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+41) +#define HID_FUNC_GAMMAVERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+42) +#define HID_FUNC_GAMMAINV (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+43) +#define HID_FUNC_GAMMALN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+44) +#define HID_FUNC_BETAVERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+45) +#define HID_FUNC_BETAINV (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+46) +#define HID_FUNC_WEIBULL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+47) +#define HID_FUNC_HYPGEOMVERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+48) +#define HID_FUNC_TVERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+49) +#define HID_FUNC_TINV (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+50) +#define HID_FUNC_FVERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+51) +#define HID_FUNC_FINV (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+52) +#define HID_FUNC_CHIVERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+53) +#define HID_FUNC_CHIINV (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+54) +#define HID_FUNC_STANDARDISIERUNG (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+55) +#define HID_FUNC_VARIATIONEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+56) +#define HID_FUNC_VARIATIONEN2 (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+57) +#define HID_FUNC_KONFIDENZ (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+58) +#define HID_FUNC_GTEST (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+59) +#define HID_FUNC_CHITEST (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+60) +#define HID_FUNC_FTEST (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+61) +#define HID_FUNC_TTEST (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+62) +#define HID_FUNC_BESTIMMTHEITSMASS (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+63) +#define HID_FUNC_ACHSENABSCHNITT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+64) +#define HID_FUNC_STEIGUNG (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+65) +#define HID_FUNC_STFEHLERYX (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+66) +#define HID_FUNC_PEARSON (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+67) +#define HID_FUNC_KORREL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+68) +#define HID_FUNC_KOVAR (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+69) +#define HID_FUNC_SCHAETZER (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+70) +#define HID_FUNC_MINA (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+71) +#define HID_FUNC_MAXA (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+72) +#define HID_FUNC_MITTELWERTA (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+73) +#define HID_FUNC_STABWA (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+74) +#define HID_FUNC_STABWNA (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+75) +#define HID_FUNC_VARIANZA (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+76) +#define HID_FUNC_VARIANZENA (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_STATISTIC*ID_FUNCTION_OFFSET)+77) + +#define HID_FUNC_ADRESSE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+1) +#define HID_FUNC_BEREICHE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+2) +#define HID_FUNC_WAHL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+3) +#define HID_FUNC_SPALTE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+4) +#define HID_FUNC_ZEILE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+5) +#define HID_FUNC_SPALTEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+6) +#define HID_FUNC_ZEILEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+7) +#define HID_FUNC_WVERWEIS (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+8) +#define HID_FUNC_SVERWEIS (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+9) +#define HID_FUNC_INDEX (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+10) +#define HID_FUNC_INDIREKT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+11) +#define HID_FUNC_VERWEIS (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+12) +#define HID_FUNC_VERGLEICH (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+13) +#define HID_FUNC_VERSCHIEBUNG (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+14) +#define HID_FUNC_FEHLERTYP (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+15) +#define HID_FUNC_VORLAGE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+16) +#define HID_FUNC_DDE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+17) +#define HID_FUNC_TABELLE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+18) +#define HID_FUNC_TABELLEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+19) + +#define HID_FUNC_CODE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+1) +#define HID_FUNC_DM (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+2) +#define HID_FUNC_ZEICHEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+3) +#define HID_FUNC_SAEUBERN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+4) +#define HID_FUNC_VERKETTEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+5) +#define HID_FUNC_IDENTISCH (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+6) +#define HID_FUNC_FINDEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+7) +#define HID_FUNC_SUCHEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+8) +#define HID_FUNC_GLAETTEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+9) +#define HID_FUNC_GROSS2 (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+10) +#define HID_FUNC_GROSS (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+11) +#define HID_FUNC_KLEIN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+12) +#define HID_FUNC_WERT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+13) +#define HID_FUNC_TEXT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+14) +#define HID_FUNC_T (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+15) +#define HID_FUNC_ERSETZEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+16) +#define HID_FUNC_FEST (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+17) +#define HID_FUNC_LAENGE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+18) +#define HID_FUNC_LINKS (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+19) +#define HID_FUNC_RECHTS (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+20) +#define HID_FUNC_TEIL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+21) +#define HID_FUNC_WIEDERHOLEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+22) +#define HID_FUNC_WECHSELN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+23) +#define HID_FUNC_BASIS (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+24) +#define HID_FUNC_DEZIMAL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+25) + diff --git a/sc/inc/scitems.hxx b/sc/inc/scitems.hxx new file mode 100644 index 000000000000..b881cf381b81 --- /dev/null +++ b/sc/inc/scitems.hxx @@ -0,0 +1,248 @@ +/************************************************************************* + * + * $RCSfile: scitems.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:50 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_ITEMS_HXX +#define SC_ITEMS_HXX + +#ifndef _SVX_SVXIDS_HRC +#include <svx/svxids.hrc> +#endif + +// EditEngine darf nicht ihre eigenen ITEMID's definieren +#define _EEITEMID_HXX + +//-------------------------- +// Item-IDs fuer UI-MsgPool: +//-------------------------- + +//! sollten auch nach unter 1000 verschoben werden! + +#define MSGPOOL_START 1100 +//-------------------------------------- +#define SCITEM_STRING 1100 +#define SCITEM_SEARCHDATA 1101 +#define SCITEM_SORTDATA 1102 +#define SCITEM_QUERYDATA 1103 +#define SCITEM_SUBTDATA 1104 +#define SCITEM_CONSOLIDATEDATA 1105 +#define SCITEM_PIVOTDATA 1106 +#define SCITEM_SOLVEDATA 1107 +#define SCITEM_USERLIST 1108 +#define SCITEM_PRINTWARN 1109 +//-------------------------------------- +#define MSGPOOL_END 1109 + +//------------------------- +// Item-IDs fuer Attribute: +//------------------------- +#define ATTR_STARTINDEX 100 // Anfang Attribute + +#define ATTR_PATTERN_START 100 // Anfang Zellattribut-Pattern + +#define ATTR_FONT 100 // Anfang Zellattribute +#define ATTR_FONT_HEIGHT 101 +#define ATTR_FONT_WEIGHT 102 +#define ATTR_FONT_POSTURE 103 +#define ATTR_FONT_UNDERLINE 104 +#define ATTR_FONT_CROSSEDOUT 105 +#define ATTR_FONT_CONTOUR 106 +#define ATTR_FONT_SHADOWED 107 +#define ATTR_FONT_COLOR 108 +#define ATTR_FONT_LANGUAGE 109 +#define ATTR_HOR_JUSTIFY 110 +#define ATTR_INDENT 111 +#define ATTR_VER_JUSTIFY 112 +#define ATTR_ORIENTATION 113 +#define ATTR_ROTATE_VALUE 114 +#define ATTR_ROTATE_MODE 115 +#define ATTR_LINEBREAK 116 +#define ATTR_MARGIN 117 +#define ATTR_MERGE 118 +#define ATTR_MERGE_FLAG 119 +#define ATTR_VALUE_FORMAT 120 +#define ATTR_LANGUAGE_FORMAT 121 +#define ATTR_BACKGROUND 122 +#define ATTR_PROTECTION 123 +#define ATTR_BORDER 124 +#define ATTR_BORDER_INNER 125 // innen, wg. Vorlagen-EditDialog +#define ATTR_SHADOW 126 +#define ATTR_VALIDDATA 127 +#define ATTR_CONDITIONAL 128 + +#define ATTR_PATTERN_END 128 // Ende Zellattribut-Pattern + +#define ATTR_PATTERN 129 + // Seitenattribute +#define ATTR_LRSPACE 130 // Editor: PageDesc-TabPage +#define ATTR_ULSPACE 131 +#define ATTR_PAGE 132 +#define ATTR_PAGE_PAPERTRAY 133 +#define ATTR_PAGE_PAPERBIN 134 +#define ATTR_PAGE_SIZE 135 +#define ATTR_PAGE_MAXSIZE 136 +#define ATTR_PAGE_HORCENTER 137 +#define ATTR_PAGE_VERCENTER 138 + +#define ATTR_PAGE_ON 139 // Editor: Header/Footer-Page +#define ATTR_PAGE_DYNAMIC 140 +#define ATTR_PAGE_SHARED 141 + +#define ATTR_PAGE_NOTES 142 // Editor: Tabelle +#define ATTR_PAGE_GRID 143 +#define ATTR_PAGE_HEADERS 144 +#define ATTR_PAGE_CHARTS 145 +#define ATTR_PAGE_OBJECTS 146 +#define ATTR_PAGE_DRAWINGS 147 +#define ATTR_PAGE_TOPDOWN 148 +#define ATTR_PAGE_SCALE 149 +#define ATTR_PAGE_SCALETOPAGES 150 +#define ATTR_PAGE_FIRSTPAGENO 151 + +#define ATTR_PAGE_PRINTAREA 152 // Editor: Druckbereiche +#define ATTR_PAGE_REPEATROW 153 +#define ATTR_PAGE_REPEATCOL 154 +#define ATTR_PAGE_PRINTTABLES 155 + +#define ATTR_PAGE_HEADERLEFT 156 // Inhalte der Kopf-/ +#define ATTR_PAGE_FOOTERLEFT 157 // Fusszeilen (links) +#define ATTR_PAGE_HEADERRIGHT 158 // Inhalte der Kopf-/ +#define ATTR_PAGE_FOOTERRIGHT 159 // Fusszeilen (rechts) +#define ATTR_PAGE_HEADERSET 160 // die Sets dazu... +#define ATTR_PAGE_FOOTERSET 161 + +#define ATTR_PAGE_FORMULAS 162 +#define ATTR_PAGE_NULLVALS 163 + +#define ATTR_ENDINDEX ATTR_PAGE_NULLVALS // Ende Pool-Range + +//-------------------------------- +// Dummy Slot-IDs fuer Dialoge +//-------------------------------- +#define SID_SCATTR_PAGE_NOTES ATTR_PAGE_NOTES +#define SID_SCATTR_PAGE_GRID ATTR_PAGE_GRID +#define SID_SCATTR_PAGE_HEADERS ATTR_PAGE_HEADERS +#define SID_SCATTR_PAGE_CHARTS ATTR_PAGE_CHARTS +#define SID_SCATTR_PAGE_OBJECTS ATTR_PAGE_OBJECTS +#define SID_SCATTR_PAGE_DRAWINGS ATTR_PAGE_DRAWINGS +#define SID_SCATTR_PAGE_TOPDOWN ATTR_PAGE_TOPDOWN +#define SID_SCATTR_PAGE_SCALE ATTR_PAGE_SCALE +#define SID_SCATTR_PAGE_SCALETOPAGES ATTR_PAGE_SCALETOPAGES +#define SID_SCATTR_PAGE_FIRSTPAGENO ATTR_PAGE_FIRSTPAGENO +#define SID_SCATTR_PAGE_PRINTAREA ATTR_PAGE_PRINTAREA +#define SID_SCATTR_PAGE_REPEATROW ATTR_PAGE_REPEATROW +#define SID_SCATTR_PAGE_REPEATCOL ATTR_PAGE_REPEATCOL +#define SID_SCATTR_PAGE_PRINTTABLES ATTR_PAGE_PRINTTABLES +#define SID_SCATTR_PAGE_HEADERLEFT ATTR_PAGE_HEADERLEFT +#define SID_SCATTR_PAGE_FOOTERLEFT ATTR_PAGE_FOOTERLEFT +#define SID_SCATTR_PAGE_HEADERRIGHT ATTR_PAGE_HEADERRIGHT +#define SID_SCATTR_PAGE_FOOTERRIGHT ATTR_PAGE_FOOTERRIGHT +#define SID_SCATTR_PAGE_FORMULAS ATTR_PAGE_FORMULAS +#define SID_SCATTR_PAGE_NULLVALS ATTR_PAGE_NULLVALS + +//-------------------------------- +// IDs fuer Svx-Items: +//-------------------------------- +#define ITEMID_LINE SID_FRAME_LINESTYLE +#define ITEMID_BOX ATTR_BORDER +#define ITEMID_BOXINFO ATTR_BORDER_INNER +#define ITEMID_SHADOW ATTR_SHADOW +#define ITEMID_BRUSH ATTR_BACKGROUND +#define ITEMID_FONT ATTR_FONT +#define ITEMID_FONTHEIGHT ATTR_FONT_HEIGHT +#define ITEMID_WEIGHT ATTR_FONT_WEIGHT +#define ITEMID_POSTURE ATTR_FONT_POSTURE +#define ITEMID_UNDERLINE ATTR_FONT_UNDERLINE +#define ITEMID_CROSSEDOUT ATTR_FONT_CROSSEDOUT +#define ITEMID_CONTOUR ATTR_FONT_CONTOUR +#define ITEMID_SHADOWED ATTR_FONT_SHADOWED +#define ITEMID_COLOR ATTR_FONT_COLOR +#define ITEMID_LANGUAGE ATTR_FONT_LANGUAGE +#define ITEMID_HORJUSTIFY ATTR_HOR_JUSTIFY +#define ITEMID_VERJUSTIFY ATTR_VER_JUSTIFY +#define ITEMID_ORIENTATION ATTR_ORIENTATION +#define ITEMID_LINEBREAK ATTR_LINEBREAK +#define ITEMID_MARGIN ATTR_MARGIN +#define ITEMID_ESCAPEMENT 0 +#define ITEMID_CASEMAP 0 +#define ITEMID_NUMBERINFO 0 +#define ITEMID_FONTLIST 0 +#define ITEMID_SEARCH SCITEM_SEARCHDATA +#define ITEMID_ADJUST 0 +#define ITEMID_LRSPACE 0 +#define ITEMID_ULSPACE 0 +#define ITEMID_PAPERBIN 0 +#define ITEMID_SIZE 0 +#define ITEMID_PAGE 0 +#define ITEMID_SETITEM 0 +#define ITEMID_COLOR_TABLE SID_COLOR_TABLE +#define ITEMID_GRADIENT_LIST SID_GRADIENT_LIST +#define ITEMID_HATCH_LIST SID_HATCH_LIST +#define ITEMID_BITMAP_LIST SID_BITMAP_LIST +#define ITEMID_COLOR_TABLE SID_COLOR_TABLE +#define ITEMID_DASH_LIST SID_DASH_LIST +#define ITEMID_LINEEND_LIST SID_LINEEND_LIST +#define ITEMID_AUTHOR 0 +#define ITEMID_DATE 0 +#define ITEMID_TEXT 0 + +#endif + + diff --git a/sc/inc/scmod.hxx b/sc/inc/scmod.hxx new file mode 100644 index 000000000000..d4f4d7b56629 --- /dev/null +++ b/sc/inc/scmod.hxx @@ -0,0 +1,287 @@ +/************************************************************************* + * + * $RCSfile: scmod.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:50 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_SCMOD_HXX +#define SC_SCMOD_HXX + +#ifndef SC_SCDLL_HXX +#include "scdll.hxx" +#endif + +#ifndef _TIMER_HXX //autogen +#include <vcl/timer.hxx> +#endif + +#ifndef _SFXLSTNER_HXX //autogen +#include <svtools/lstner.hxx> +#endif + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" // ScInputMode +#endif + +#ifndef SC_MARKDATA_HXX //@05.01.98 +#include "markdata.hxx" //ScMarkData +#endif + +#ifndef SC_SHELLIDS_HXX +#include "shellids.hxx" +#endif + +class KeyEvent; +class SdrModel; +class SdrView; +class EditView; +class SfxErrorHandler; +class SvxErrorHandler; + +class ScRange; +class ScDocument; +class ScViewCfg; +class ScDocCfg; +class ScAppCfg; +class ScInputCfg; +class ScViewOptions; +class ScDocOptions; +class ScAppOptions; +class ScInputOptions; +class ScInputHandler; +class ScInputWindow; +class ScTabViewShell; +class ScFunctionDlg; +class ScArgDlgBase; +class ScTeamDlg; +class ScEditFunctionDlg; +class ScMessagePool; +class EditFieldInfo; +class ScNavipiCfg; +class ScFormEditData; + +//================================================================== + +// for internal Drag&Drop: + +#define SC_DROP_NAVIGATOR 1 +#define SC_DROP_TABLE 2 + +struct ScDragData +{ + ScDocument* pDoc; + ScMarkData aMarkData; + USHORT nStartX, nStartY, nTabNo, nSizeX, nSizeY; + USHORT nHandleX, nHandleY; + USHORT nFlags; + SdrModel* pSdrModel; + SdrView* pSdrView; + String aLinkDoc; + String aLinkTable; + String aLinkArea; + ScDocument* pJumpLocalDoc; + String aJumpTarget; + String aJumpText; +}; + +//================================================================== + + +class ScModule: public ScModuleDummy, public SfxListener +{ + Timer aIdleTimer; + Timer aSpellTimer; + ScDragData aDragData; + ScMessagePool* pMessagePool; + // globalen InputHandler gibt's nicht mehr, jede View hat einen + ScInputHandler* pRefInputHandler; + ScTeamDlg* pTeamDlg; + ScViewCfg* pViewCfg; + ScDocCfg* pDocCfg; + ScAppCfg* pAppCfg; + ScInputCfg* pInputCfg; + ScNavipiCfg* pNavipiCfg; + SfxErrorHandler* pErrorHdl; + SvxErrorHandler* pSvxErrorHdl; + ScFormEditData* pFormEditData; + USHORT nCurRefDlgId; + BOOL bDragWasIntern; + BOOL bIsWaterCan; + BOOL bIsInEditCommand; + +public: + SFX_DECL_INTERFACE(SCID_APP); + + ScModule( SfxObjectFactory* pFact ); + virtual ~ScModule(); + + virtual SfxModule* Load(); + virtual void FillStatusBar(StatusBar &rBar); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + void DeleteCfg(); + void CloseDialogs(); + + // von der Applikation verschoben: + + DECL_LINK( IdleHandler, Timer* ); // Timer statt idle + DECL_LINK( SpellTimerHdl, Timer* ); + DECL_LINK( CalcFieldValueHdl, EditFieldInfo* ); + + void Execute( SfxRequest& rReq ); + void GetState( SfxItemSet& rSet ); + + void AnythingChanged(); + + // Drag & Drop: + const ScDragData& GetDragData() const { return aDragData; } + void ResetDragObject(); + void SetDragObject( const ScMarkData& rMarkData, const ScRange& rRange, + USHORT nHandleX, USHORT nHandleY, + ScDocument* pDoc, USHORT nFlags ); + void SetDragObject( SdrModel* pModel, SdrView* pView, USHORT nFlags ); + void SetDragLink( const String& rDoc, const String& rTab, const String& rArea ); + void SetDragJump( ScDocument* pLocalDoc, + const String& rTarget, const String& rText ); + + void SetDragIntern(BOOL bSet=TRUE) { bDragWasIntern = bSet; } + BOOL GetDragIntern() const { return bDragWasIntern; } + + void SetWaterCan( BOOL bNew ) { bIsWaterCan = bNew; } + BOOL GetIsWaterCan() const { return bIsWaterCan; } + + void SetInEditCommand( BOOL bNew ) { bIsInEditCommand = bNew; } + BOOL IsInEditCommand() const { return bIsInEditCommand; } + + // Options: + const ScViewOptions& GetViewOptions (); + const ScDocOptions& GetDocOptions (); + const ScAppOptions& GetAppOptions (); + const ScInputOptions& GetInputOptions (); + void SetViewOptions ( const ScViewOptions& rOpt ); + void SetDocOptions ( const ScDocOptions& rOpt ); + void SetAppOptions ( const ScAppOptions& rOpt ); + void SetInputOptions ( const ScInputOptions& rOpt ); + void InsertEntryToLRUList(USHORT nFIndex); + void RecentFunctionsChanged(); + + static void GetSpellSettings( USHORT& rDefLang, BOOL& rAutoSpell, BOOL& rHideAuto ); + static void SetAutoSpellProperty( BOOL bSet ); + static void SetHideAutoProperty( BOOL bSet ); + static BOOL HasThesaurusLanguage( USHORT nLang ); + + ScNavipiCfg& GetNavipiCfg(); + + void ModifyOptions( const SfxItemSet& rOptSet ); + + // InputHandler: + BOOL IsEditMode(); // nicht bei SC_INPUT_TYPE + BOOL IsInputMode(); // auch bei SC_INPUT_TYPE + void SetInputMode( ScInputMode eMode ); + BOOL InputKeyEvent( const KeyEvent& rKEvt, BOOL bStartEdit = FALSE ); + void InputEnterHandler( BYTE nBlockMode = 0 ); + void InputCancelHandler(); + void InputSelection( EditView* pView ); + void InputChanged( EditView* pView ); + ScInputHandler* GetInputHdl( ScTabViewShell* pViewSh = NULL ); + + void SetRefInputHdl( ScInputHandler* pNew ); + ScInputHandler* GetRefInputHdl(); + + void SetInputWindow( ScInputWindow* pWin ); + void ViewShellGone(ScTabViewShell* pViewSh); + void ViewShellChanged(); + // Kommunikation mit Funktionsautopilot + void InputGetSelection( xub_StrLen& rStart, xub_StrLen& rEnd ); + void InputSetSelection( xub_StrLen nStart, xub_StrLen nEnd ); + void InputReplaceSelection( const String& rStr ); + String InputGetFormulaStr(); + void ActivateInputWindow( const String* pStr = NULL, + BOOL bMatrix = FALSE ); + + void InitFormEditData(); + void ClearFormEditData(); + ScFormEditData* GetFormEditData() { return pFormEditData; } + + // Referenzeingabe: + void SetRefDialog( USHORT nId, BOOL bVis ); + BOOL IsModalMode(SfxObjectShell* pDocSh = NULL); + BOOL IsFormulaMode(); + BOOL IsRefDialogOpen(); + BOOL IsTableLocked(); + void OpenTeamDlg(); + void SetTeamDlg( ScTeamDlg* pDlg ) { pTeamDlg = pDlg; } + ScTeamDlg* GetTeamDlg() const { return pTeamDlg; } + void SetReference( const ScRange& rRef, ScDocument* pDoc, + const ScMarkData* pMarkData = NULL ); + void AddRefEntry(); + void EndReference(); + USHORT GetCurRefDlgId() const { return nCurRefDlgId; } + + //virtuelle Methoden fuer den Optionendialog + virtual SfxItemSet* CreateItemSet( USHORT nId ); + virtual void ApplyItemSet( USHORT nId, const SfxItemSet& rSet ); + virtual SfxTabPage* CreateTabPage( USHORT nId, Window* pParent, const SfxItemSet& rSet ); +}; + +#define SC_MOD() ( *(ScModule**) GetAppData(SHL_CALC) ) + +#endif + + diff --git a/sc/inc/scresid.hxx b/sc/inc/scresid.hxx new file mode 100644 index 000000000000..9a90f71d4de4 --- /dev/null +++ b/sc/inc/scresid.hxx @@ -0,0 +1,80 @@ +/************************************************************************* + * + * $RCSfile: scresid.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:50 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_SCRESID_HXX +#define SC_SCRESID_HXX + +#ifndef _TOOLS_RESID_HXX //autogen +#include <tools/resid.hxx> +#endif + +//=================================================================== + +class ScResId : public ResId +{ + public: + ScResId( USHORT nId ); // in scdll.cxx +}; + + + +#endif // SC_SCRESMGR_HXX + diff --git a/sc/inc/scwarngs.hxx b/sc/inc/scwarngs.hxx new file mode 100644 index 000000000000..164484b25492 --- /dev/null +++ b/sc/inc/scwarngs.hxx @@ -0,0 +1,70 @@ +/************************************************************************* + * + * $RCSfile: scwarngs.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:50 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef __SCWARNGS_HXX_ +#define __SCWARNGS_HXX_ + +#define ERRCODE_SC_EXPORT_WRN_ASCII (ERRCODE_WARNING_MASK | ERRCODE_AREA_SC | ERRCODE_CLASS_WRITE | 1) +#define ERRCODE_SC_IMPORT_WRN_RNGOVRFLW (ERRCODE_WARNING_MASK | ERRCODE_AREA_SC | ERRCODE_CLASS_READ | 1) + + +#endif + diff --git a/sc/inc/segdefs.hxx b/sc/inc/segdefs.hxx new file mode 100644 index 000000000000..537af2113ce7 --- /dev/null +++ b/sc/inc/segdefs.hxx @@ -0,0 +1,73 @@ +/************************************************************************* + * + * $RCSfile: segdefs.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:50 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#include "segdefs_.hxx" + +//**************************************************************** +// +//und jetzt alle probleme mit ERROR: unknown pragma beseitigen +// +//---------------------------------------------------------------- + +//segmente mit laenge 00000H (map) werden von tcovsegs.exe vergessen +//jetzt defines nachflicken! + + + diff --git a/sc/inc/segdefs_.hxx b/sc/inc/segdefs_.hxx new file mode 100644 index 000000000000..a7d95fbecc67 --- /dev/null +++ b/sc/inc/segdefs_.hxx @@ -0,0 +1,5019 @@ +/************************************************************************* + * + * $RCSfile: segdefs_.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:50 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#define appmain_01 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define appmain_03 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define appmain_04 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define appmain_06 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define appmain_22 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define appmain_23 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define appmain_2e SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define appmain7_01 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define appmain8_01 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define appmain3_01 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define appmain5_01 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define appmain4_01 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define msgpool_01 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define inputhdl_01 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define inputhdl_0d SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define uiitems_16 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define uiitems_22 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define uiitems_28 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define uiitems_32 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define uiitems_40 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define impex_01 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define editsh_0a SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define global_0f SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define global_85 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define docoptio_0b SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define docoptio_0e SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define viewopti_0f SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define viewopti_12 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define printopt_01 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define printopt_06 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define printopt_0f SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define printopt_12 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define appoptio_01 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define appoptio_06 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define appoptio_09 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define global2_1f SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define global2_23 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define global2_37 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define compiler_01 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define adiasync_01 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE) +#define docpool_03 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define column_0f SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define table2_48 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define document_63 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define viewdata_2d SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define gridwin4_06 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define gridwin_22 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define viewdata_0d SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define gridwin4_02 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define viewdata_24 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define gridwin4_03 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define global2_0e SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define global2_11 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define fillinfo_02 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define document_5c SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define document_53 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define viewdata_25 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define gridwin4_01 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define document_54 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define table2_5a SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define output_07 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define document_5d SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define table2_60 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define tabview3_47 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define gridwin3_0e SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define table2_5f SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define colrowba_0d SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define viewdata_27 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define tabview4_07 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define document_17 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define table1_10 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define tabview4_06 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define document_62 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define table2_64 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define documen3_2e SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define tabview4_0a SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define hdrcont_04 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define colrowba_0e SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define colrowba_0c SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define gridwin3_0d SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define output2_01 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define document_8c SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define output2_02 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define patattr_08 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define viewdata_28 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define viewdata_26 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define tabview3_48 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define tabvwsha_05 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define inputhdl_25 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define document_47 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define table2_40 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define column3_16 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define appmain_50 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define tabvwsh9_04 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define appmain3_04 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define inputhdl_10 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define inputhdl_26 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define inputhdl_29 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define inputhdl_24 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define inputwin_19 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define inputwin_09 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define inputwin_0a SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define inputwin_07 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define inputwin_26 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define appmain_3c SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define inputhdl_28 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define global_92 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define inputhdl_27 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define global2_4c SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define viewdata_11 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define document_32 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define document_31 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define document_42 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define table2_3d SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define column3_12 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define column_19 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define column_1a SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define table2_41 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define document_48 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define column_0e SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define table2_49 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define document_64 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define attarray_05 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define attarray_04 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define attarray_10 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define column_0a SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define table2_4b SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define document_7b SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define tabvwsha_01 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define document_05 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define gridwin_23 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define global_0e SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define table2_59 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define viewdata_46 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define viewopti_13 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define tabview3_35 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define viewdata_1c SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define inputwin_1d SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define inputwin_22 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define tabvwsh5_02 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define tabvwsh4_19 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define gridwin3_12 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define viewdata_32 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define viewdata_57 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define gridwin3_06 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define output3_02 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define gridwin3_14 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define output_01 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define document_61 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define table2_65 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define output_02 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define output_06 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define output_0d SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define output_13 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define output_14 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define output_17 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define output_1a SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define output_1b SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define output_1c SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define output_1e SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define global2_10 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define output_10 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define document_7d SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define document_7e SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define documen6_01 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define gridwin3_07 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define stlsheet_04 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define documen8_07 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE) +#define global_07 SEG_SEGCLASS(STARTWORK_SEG001,STARTWORK_CODE) +#define tabvwsha_02 SEG_SEGCLASS(STARTWORK_SEG001,STARTWORK_CODE) +#define global_88 SEG_SEGCLASS(STARTWORK_SEG001,STARTWORK_CODE) +#define impex_09 SEG_SEGCLASS(STARTWORK_SEG001,STARTWORK_CODE) +#define applink_04 SEG_SEGCLASS(STARTWORK_SEG001,STARTWORK_CODE) +#define docsh_3b SEG_SEGCLASS(STARTWORK_SEG001,STARTWORK_CODE) +#define gridwin_08 SEG_SEGCLASS(STARTWORK_SEG001,STARTWORK_CODE) +#define documen3_25 SEG_SEGCLASS(STARTWORK_SEG001,STARTWORK_CODE) +#define patattr_04 SEG_SEGCLASS(STARTWORK_SEG001,STARTWORK_CODE) +#define document_84 SEG_SEGCLASS(STARTWORK_SEG001,STARTWORK_CODE) +#define viewdata_3f SEG_SEGCLASS(STARTWORK_SEG001,STARTWORK_CODE) +#define patattr_01 SEG_SEGCLASS(STARTWORK_SEG001,STARTWORK_CODE) +#define document_2e SEG_SEGCLASS(STARTWORK_SEG001,STARTWORK_CODE) +#define document_2a SEG_SEGCLASS(STARTWORK_SEG001,STARTWORK_CODE) +#define tabvwsh7_01 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define viewfunc_38 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define document_6d SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define table2_88 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define column_64 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define document_a1 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define docsh4_11 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define docsh_2b SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define docsh2_01 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define stlpool_06 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define docsh4_0d SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define global_50 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define inputhdl_2b SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define inputwin_14 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define inputwin_20 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define inputhdl_08 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define inputhdl_1b SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define inputhdl_1a SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define inputhdl_0c SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define appmain_0b SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define inputwin_2c SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define inputwin_2b SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define appmain_09 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define inputhdl_0b SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define tabvwsh4_1a SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define gridwin_0f SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define tabview5_0c SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define appmain3_0b SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define gridwin3_04 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define gridwin3_15 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define tabvwshd_03 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define inputhdl_03 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define inputwin_1e SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define inputwin_23 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define tabview_13 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define viewdata_1b SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define editutil_01 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define document_56 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define table1_0e SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define column2_08 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define tabvwsh4_1b SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define docsh_16 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define documen3_45 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define tabview3_34 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define tabvwsh4_1e SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define rangeutl_04 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE) +#define viewfunc_0b SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE) +#define document_75 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE) +#define table2_96 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE) +#define column_70 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE) +#define attarray_09 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE) +#define tabvwsh8_04 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE) +#define msgpool_04 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE) +#define tabvwsh8_01 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE) +#define document_a9 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE) +#define appmain3_03 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE) +#define gridwin_0e SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE) +#define gridwin_0b SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE) +#define gridwin_39 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE) +#define viewdata_2e SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE) +#define gridwin3_03 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE) +#define gridwin_26 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE) +#define colrowba_09 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE) +#define hdrcont_08 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE) +#define hdrcont_05 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE) +#define hdrcont_03 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE) +#define colrowba_03 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE) +#define colrowba_04 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE) +#define viewdata_1f SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE) +#define dbcolect_0f SEG_SEGCLASS(STARTSLICE_SEG003,STARTSLICE_CODE) +#define documen3_05 SEG_SEGCLASS(STARTSLICE_SEG003,STARTSLICE_CODE) +#define documen3_37 SEG_SEGCLASS(STARTSLICE_SEG003,STARTSLICE_CODE) +#define tabvwsh6_03 SEG_SEGCLASS(STARTSLICE_SEG003,STARTSLICE_CODE) +#define inputwin_0d SEG_SEGCLASS(STARTSLICE_SEG003,STARTSLICE_CODE) +#define table1_28 SEG_SEGCLASS(STARTSLICE_SEG003,STARTSLICE_CODE) +#define column2_23 SEG_SEGCLASS(STARTSLICE_SEG003,STARTSLICE_CODE) +#define attarray_2f SEG_SEGCLASS(STARTSLICE_SEG003,STARTSLICE_CODE) +#define column2_2a SEG_SEGCLASS(STARTSLICE_SEG003,STARTSLICE_CODE) +#define viewfun2_1c SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define document_83 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define attarray_01 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define document_82 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define column_03 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define table1_01 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define document_06 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define global2_07 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define global2_09 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define markarr_01 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define docsh3_02 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define docsh_14 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define docsh3_16 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define tabvwsh4_16 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define docsh_38 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define docsh_39 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define docsh_40 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define docsh2_02 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define documen9_04 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define attarray_02 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define column_02 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define documen6_03 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define markarr_02 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define column3_06 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define table1_02 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define collect_04 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define collect_15 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define documen2_02 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define global_04 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define collect_17 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define adiasync_06 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define docpool_02 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define attrib_59 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define attrib_5a SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define attrib_6f SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define tabvwsh3_01 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define tabview3_6c SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define viewdata_3a SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define tabvwsh4_07 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE) +#define document_91 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define stlsheet_05 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define table2_95 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define column_6f SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define attarray_2a SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define table1_04 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define document_08 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define tabcont_01 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define tabcont_05 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define document_16 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define tabvwshf_02 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define docsh6_03 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define tabview3_44 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define tabcont_06 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define tabview3_43 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define document_07 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define tabvwsh4_01 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define docsh_41 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define documen3_0b SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define document_04 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define appmain_58 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define tabvwsh4_15 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define docsh4_0f SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define docsh4_02 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define document_03 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define table1_03 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define olkact_01 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define appmain_29 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define olkact_02 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define tabvwsh4_02 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define tabview5_01 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define tabview_0b SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define select_0f SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define select_19 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define tabview_18 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define tabview_11 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define olinewin_0e SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define olinewin_0f SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define documen3_0c SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define tabview_69 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define tabview_07 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define tabview_0c SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define appmain_28 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define select_01 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define tabview_04 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define viewdata_04 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define viewopti_01 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define documen8_05 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define documen2_01 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define collect_02 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define viewopti_03 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define viewopti_18 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define viewopti_19 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define viewopti_04 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define documen3_35 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define docsh3_15 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define documen3_33 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define documen8_0a SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define appmain7_05 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define docoptio_01 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define docoptio_10 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define collect_0c SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define documen3_39 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define tabview5_06 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define olinewin_03 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define documen3_34 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define viewdata_01 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define appmain7_03 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define viewopti_17 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define global_8b SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define docsh_04 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define inputwin_06 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define inputhdl_04 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define patattr_09 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define inputhdl_07 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define inputhdl_05 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define document_95 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define table2_98 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define inputwin_01 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define inputwin_04 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define inputwin_0e SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define inputwin_0b SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define inputwin_28 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define inputwin_08 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define docoptio_12 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define printopt_10 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define appoptio_0a SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define appmain7_08 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define select_02 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define select_0e SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define docpool_01 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define attrib_6d SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define attrib_8f SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define patattr_10 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define attrib_26 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define attrib_30 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define attrib_34 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define stlpool_01 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define bcaslot_0b SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define appmain7_0a SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define cbuttonw_01 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define cbuttonw_03 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define gridwin_03 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define hdrcont_01 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define colrowba_01 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define colrowba_0a SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define tabsplit_01 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define tabsplit_06 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define viewdata_4a SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define viewdata_10 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define tabview5_04 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define tabview_75 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define docsh3_03 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE) +#define gridwin5_01 SEG_SEGCLASS(STARTSLICE_SEG006,STARTSLICE_CODE) +#define colrowba_05 SEG_SEGCLASS(STARTSLICE_SEG006,STARTSLICE_CODE) +#define gridwin_29 SEG_SEGCLASS(STARTSLICE_SEG006,STARTSLICE_CODE) +#define gridwin_28 SEG_SEGCLASS(STARTSLICE_SEG006,STARTSLICE_CODE) +#define document_b3 SEG_SEGCLASS(STARTSLICE_SEG006,STARTSLICE_CODE) +#define viewfun2_1a SEG_SEGCLASS(STARTSLICE_SEG006,STARTSLICE_CODE) +#define column_01 SEG_SEGCLASS(STARTSLICE_SEG007,STARTSLICE_CODE) +#define docsh6_05 SEG_SEGCLASS(STARTSLICE_SEG007,STARTSLICE_CODE) +#define tabvwshb_04 SEG_SEGCLASS(STARTSLICE_SEG007,STARTSLICE_CODE) +#define galwrap_02 SEG_SEGCLASS(STARTSLICE_SEG007,STARTSLICE_CODE) +#define msgpool_05 SEG_SEGCLASS(STARTSLICE_SEG007,STARTSLICE_CODE) +#define gridwin_2e SEG_SEGCLASS(STARTSLICE_SEG007,STARTSLICE_CODE) +#define tabview2_10 SEG_SEGCLASS(STARTSLICE_SEG007,STARTSLICE_CODE) +#define tabvwsh4_09 SEG_SEGCLASS(STARTSLICE_SEG007,STARTSLICE_CODE) +#define gridwin3_10 SEG_SEGCLASS(STARTSLICE_SEG007,STARTSLICE_CODE) +#define tabview_6d SEG_SEGCLASS(STARTSLICE_SEG007,STARTSLICE_CODE) +#define tabvwsh2_02 SEG_SEGCLASS(STARTSLICE_SEG007,STARTSLICE_CODE) +#define viewdata_44 SEG_SEGCLASS(STARTSLICE_SEG008,STARTSLICE_CODE) +#define tabview2_0b SEG_SEGCLASS(STARTSLICE_SEG008,STARTSLICE_CODE) +#define docoptio_03 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE) +#define documen8_06 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE) +#define viewopti_14 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE) +#define viewdata_06 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE) +#define viewdata_03 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE) +#define viewdata_1d SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE) +#define tabview5_02 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE) +#define cbuttonw_02 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE) +#define gridwin_04 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE) +#define hdrcont_02 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE) +#define colrowba_02 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE) +#define colrowba_0b SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE) +#define tabsplit_02 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE) +#define tabcont_02 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE) +#define olinewin_04 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE) +#define editutil_0b SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE) +#define attrib_76 SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE) +#define editutil_0f SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE) +#define attrib_6e SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE) +#define editutil_1b SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE) +#define attrib_72 SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE) +#define editutil_13 SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE) +#define attrib_77 SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE) +#define attrib_75 SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE) +#define editutil_17 SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE) +#define inputhdl_1c SEG_SEGCLASS(STARTSLICE_SEG011,STARTSLICE_CODE) +#define tabview5_0b SEG_SEGCLASS(STARTSLICE_SEG011,STARTSLICE_CODE) +#define uiitems_13 SEG_SEGCLASS(STARTSLICE_SEG011,STARTSLICE_CODE) +#define docsh3_05 SEG_SEGCLASS(STARTSLICE_SEG011,STARTSLICE_CODE) +#define uiitems_14 SEG_SEGCLASS(STARTSLICE_SEG011,STARTSLICE_CODE) +#define viewdata_37 SEG_SEGCLASS(STARTSLICE_SEG011,STARTSLICE_CODE) +#define viewdata_38 SEG_SEGCLASS(STARTSLICE_SEG011,STARTSLICE_CODE) +#define viewdata_3b SEG_SEGCLASS(STARTSLICE_SEG011,STARTSLICE_CODE) +#define output_03 SEG_SEGCLASS(STARTSLICE_SEG012,STARTSLICE_CODE) +#define appmain_0a SEG_SEGCLASS(STARTSLICE_SEG012,STARTSLICE_CODE) +#define tabview_06 SEG_SEGCLASS(STARTSLICE_SEG012,STARTSLICE_CODE) +#define tbxctl_02 SEG_SEGCLASS(STARTSLICE_SEG012,STARTSLICE_CODE) +#define inputhdl_19 SEG_SEGCLASS(STARTSLICE_SEG012,STARTSLICE_CODE) +#define attrib_5c SEG_SEGCLASS(STARTSLICE_SEG012,STARTSLICE_CODE) +#define documen9_09 SEG_SEGCLASS(STARTSLICE_SEG012,STARTSLICE_CODE) +#define documen9_0a SEG_SEGCLASS(STARTSLICE_SEG012,STARTSLICE_CODE) +#define stlpool_03 SEG_SEGCLASS(STARTSLICE_SEG012,STARTSLICE_CODE) +#define stlsheet_01 SEG_SEGCLASS(STARTSLICE_SEG012,STARTSLICE_CODE) +#define stlsheet_03 SEG_SEGCLASS(STARTSLICE_SEG012,STARTSLICE_CODE) +#define documen9_10 SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE) +#define editutil_0c SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE) +#define editutil_1c SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE) +#define attrib_83 SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE) +#define attrib_91 SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE) +#define document_92 SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE) +#define patattr_0e SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE) +#define tabvwsh4_03 SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE) +#define viewfunc_31 SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE) +#define dbfunc_01 SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE) +#define stlpool_02 SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE) +#define editutil_1e SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE) +#define attrib_71 SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE) +#define editutil_0e SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE) +#define editutil_1a SEG_SEGCLASS(STARTSLICE_SEG014,STARTSLICE_CODE) +#define editutil_12 SEG_SEGCLASS(STARTSLICE_SEG014,STARTSLICE_CODE) +#define tabvwsh4_0b SEG_SEGCLASS(STARTSLICE_SEG014,STARTSLICE_CODE) +#define viewdata_48 SEG_SEGCLASS(STARTSLICE_SEG014,STARTSLICE_CODE) +#define tabview_73 SEG_SEGCLASS(STARTSLICE_SEG014,STARTSLICE_CODE) +#define docsh_15 SEG_SEGCLASS(STARTSLICE_SEG015,STARTSLICE_CODE) +#define inputwin_0f SEG_SEGCLASS(STARTSLICE_SEG015,STARTSLICE_CODE) +#define bcaslot_0c SEG_SEGCLASS(STARTSLICE_SEG015,STARTSLICE_CODE) +#define stlsheet_02 SEG_SEGCLASS(STARTSLICE_SEG015,STARTSLICE_CODE) +#define stlsheet_06 SEG_SEGCLASS(STARTSLICE_SEG015,STARTSLICE_CODE) +#define docsh6_02 SEG_SEGCLASS(STARTSLICE_SEG015,STARTSLICE_CODE) +#define documen3_41 SEG_SEGCLASS(STARTSLICE_SEG015,STARTSLICE_CODE) +#define documen3_42 SEG_SEGCLASS(STARTSLICE_SEG015,STARTSLICE_CODE) +#define documen3_43 SEG_SEGCLASS(STARTSLICE_SEG015,STARTSLICE_CODE) +#define inputwin_02 SEG_SEGCLASS(STARTSLICE_SEG016,STARTSLICE_CODE) +#define inputwin_16 SEG_SEGCLASS(STARTSLICE_SEG016,STARTSLICE_CODE) +#define inputwin_17 SEG_SEGCLASS(STARTSLICE_SEG016,STARTSLICE_CODE) +#define inputhdl_22 SEG_SEGCLASS(STARTSLICE_SEG016,STARTSLICE_CODE) +#define appmain9_01 SEG_SEGCLASS(STARTSLICE_SEG016,STARTSLICE_CODE) +#define tabvwsh4_1f SEG_SEGCLASS(STARTSLICE_SEG016,STARTSLICE_CODE) +#define editsh_02 SEG_SEGCLASS(STARTSLICE_SEG016,STARTSLICE_CODE) +#define tabview_05 SEG_SEGCLASS(STARTSLICE_SEG017,STARTSLICE_CODE) +#define viewfunc_33 SEG_SEGCLASS(STARTSLICE_SEG017,STARTSLICE_CODE) +#define dbfunc_03 SEG_SEGCLASS(STARTSLICE_SEG017,STARTSLICE_CODE) +#define target_01 SEG_SEGCLASS(STARTSLICE_SEG017,STARTSLICE_CODE) +#define appmain3_0d SEG_SEGCLASS(STARTSLICE_SEG017,STARTSLICE_CODE) +#define appmain3_0e SEG_SEGCLASS(STARTSLICE_SEG017,STARTSLICE_CODE) +#define appmain3_0f SEG_SEGCLASS(STARTSLICE_SEG017,STARTSLICE_CODE) +#define global2_19 SEG_SEGCLASS(STARTSLICE_SEG017,STARTSLICE_CODE) +#define global2_1b SEG_SEGCLASS(STARTSLICE_SEG017,STARTSLICE_CODE) +#define editutil_1f SEG_SEGCLASS(STARTSLICE_SEG017,STARTSLICE_CODE) +#define global2_22 SEG_SEGCLASS(STARTSLICE_SEG017,STARTSLICE_CODE) +#define drtxtob2_04 SEG_SEGCLASS(STARTSLICE_SEG017,STARTSLICE_CODE) +#define uiitems_38 SEG_SEGCLASS(STARTSLICE_SEG017,STARTSLICE_CODE) +#define global2_27 SEG_SEGCLASS(STARTSLICE_SEG017,STARTSLICE_CODE) +#define uiitems_1c SEG_SEGCLASS(STARTSLICE_SEG018,STARTSLICE_CODE) +#define tbxctl_01 SEG_SEGCLASS(STARTSLICE_SEG018,STARTSLICE_CODE) +#define editsh_01 SEG_SEGCLASS(STARTSLICE_SEG018,STARTSLICE_CODE) +#define appmain_37 SEG_SEGCLASS(STARTSLICE_SEG018,STARTSLICE_CODE) +#define global_93 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define global_94 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define attarray_07 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define attarray_08 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define column_13 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define patattr_16 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define documen8_0b SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define scdebug_02 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define scdebug_01 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define column2_0d SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define table5_08 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define column2_0c SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define column2_0b SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define document_3d SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define table2_39 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define column3_01 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define column3_03 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define documen7_07 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define cell_38 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define document_49 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define column3_0c SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define cellform_01 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define table2_43 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define table3_75 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define column3_18 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define cell_02 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define cell_03 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define drwlayer_0a SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define compiler_17 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define token_24 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define token_0d SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define token_53 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define compiler_1b SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define compiler_1d SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define table4_06 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define column2_0a SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define column_04 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define column_0b SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE) +#define output2_05 SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE) +#define tabview3_23 SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE) +#define tabview3_26 SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE) +#define tabview3_24 SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE) +#define select_09 SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE) +#define tabview3_66 SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE) +#define documen3_09 SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE) +#define pivot2_0c SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE) +#define tabvwsh4_2f SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE) +#define tabvwsh4_30 SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE) +#define tabview3_25 SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE) +#define drawview_0e SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE) +#define viewdata_1a SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE) +#define tabview2_09 SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE) +#define select_0c SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE) +#define cellform_02 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define cell2_0c SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define cell_40 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define output2_06 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define interpr4_2e SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define cell2_10 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define cell_13 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define token_61 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define token_63 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define token_68 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define interpr1_2e SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define interpr4_25 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define interpr4_11 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define interpr4_2b SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define interpr4_04 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define interpr1_7d SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define interpr4_13 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define interpr4_21 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define interpr5_5c SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define interpr1_ba SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define interpr4_26 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define interpr4_06 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define interpr4_bd SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define documen3_32 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define interpr4_12 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define documen9_06 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define drwlayer_01 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define drwlayer_1e SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define drwlayer_10 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define token_65 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define token_67 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define token_64 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define token_62 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define documen9_0b SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define cell_41 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define documen2_07 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define documen8_01 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define document_a6 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define docsh_07 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define documen2_11 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define documen8_02 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define documen8_08 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define drwlayer_05 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define drwlayer_14 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define drwlayer_0e SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define drwlayer_16 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define drwlayer_1a SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define drawpage_01 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define interpr5_5a SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define interpr4_18 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define cell2_0d SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define documen7_0c SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define cell_24 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define token_52 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define token_5c SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define interpr4_29 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define interpr4_2a SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define interpr4_0d SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define read_01 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define drawvie3_08 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define token_08 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define interpr4_0e SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define interpr4_ba SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define interpr1_36 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define interpr1_43 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define document_44 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define interpr1_5d SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define interpr4_08 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define docsh2_07 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define interpr5_5b SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define interpr5_58 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define token_5f SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define drwlayer_1b SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE) +#define tabview3_27 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define tabview3_28 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define tabview3_29 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define viewdata_17 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define tabvwshd_02 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define tabvwsha_04 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define tabview_17 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define viewdata_23 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define viewdata_30 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define tabview_79 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define gridwin_19 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define gridwin_34 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define gridwin3_09 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define gridwin3_0a SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define olinewin_10 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define tabview_16 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define tabvwshd_07 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define tabview3_2c SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define documen2_13 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define documen9_0d SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define drwlayer_15 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define docsh4_04 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define printfun_21 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define printfun_0e SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define documen2_24 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define documen3_3a SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define docsh6_04 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define viewfunc_03 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define tabview3_41 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define table1_2c SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define column2_2c SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define document_79 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define table2_4a SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define column_09 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define attarray_0f SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define attarray_1e SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define attarray_11 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define printfun_13 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define document_2c SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define viewdata_22 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define viewdata_2f SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define printfun_24 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define documen3_3f SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define table1_2b SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define tabview3_3d SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define viewdata_18 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define docsh3_0e SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define docsh3_07 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define uiitems_10 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define document_af SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define uiitems_11 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define table2_aa SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define column_83 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define docsh3_06 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define impex_11 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define prevwsh2_01 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define printfun_0b SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define printfun_07 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define printfun_10 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define document_b9 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define document_b4 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define document_b5 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define printfun_17 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define preview_03 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define editutil_08 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define prevwsh_0c SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define pagepar_01 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define pagepar_03 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define docsh3_0b SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define docsh4_01 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define documen7_0d SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define dbfunc2_01 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define documen3_22 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define dbfunc4_01 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define document_3e SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define table2_3a SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define column3_0b SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define column_18 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define patattr_05 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define undoblk3_25 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define attarray_06 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define table2_54 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define document_65 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE) +#define column2_2b SEG_SEGCLASS(SLICES_SEG002,SLICES_CODE) +#define tabview3_38 SEG_SEGCLASS(SLICES_SEG002,SLICES_CODE) +#define tabview4_01 SEG_SEGCLASS(SLICES_SEG002,SLICES_CODE) +#define drawview_06 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define tabview_60 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define fudraw_08 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define fusel_04 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define fudraw_0b SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define fudraw_09 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define detfunc_1c SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define fusel_03 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define gridwin3_01 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define gridwin_0c SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define document_33 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define gridwin3_11 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define fudraw_0a SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define gridwin_0d SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define gridwin3_02 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define fusel_05 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define fudraw_0c SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define global2_4d SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define cbuttonw_04 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define cbuttonw_05 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define tabvwsh4_2d SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define fudraw_03 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define fusel_06 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define fupoor_08 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define tabvwsh2_01 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define tabview2_11 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define fupoor_01 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define fudraw_01 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define drawview_13 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define tabview3_31 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define tabview5_05 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define select_08 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define select_1b SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define select_0a SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define gridwin_2a SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define gridwin3_0f SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define document_37 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define drawvie3_07 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define tabview3_6b SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define fusel_09 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define tabview5_08 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define drawvie3_03 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define drawview_0f SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define drawutil_01 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define drawview_03 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define drawview_14 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define drawview_1b SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define fupoor_0d SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define gridwin3_13 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define global_95 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define drawview_09 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define drawview_19 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define drawvie2_01 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define tabvwsh2_0c SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define markarr_04 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define markarr_09 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define column_06 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define table1_09 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define document_2f SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define viewfun2_1f SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define document_85 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define document_aa SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define document_1f SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define viewfunc_0f SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define document_22 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define viewfun2_23 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define collect_0a SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define viewfunc_14 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define table2_37 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define column_39 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define column_1b SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define document_38 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define documen3_01 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define documen3_14 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define undobase_09 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define attarray_20 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define impop_01 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define patattr_02 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define colrowst_12 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define excel_02 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define tabview5_03 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define drawvie2_02 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define tabview3_33 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define viewdata_20 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define tabview_78 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define viewdata_49 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define tabview_72 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define tabview3_3a SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define tabview3_3b SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define tabview3_3e SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE) +#define documen4_0c SEG_SEGCLASS(SLICES_SEG004,SLICES_CODE) +#define bcaslot_11 SEG_SEGCLASS(SLICES_SEG004,SLICES_CODE) +#define bcaslot_07 SEG_SEGCLASS(SLICES_SEG004,SLICES_CODE) +#define tabview3_36 SEG_SEGCLASS(SLICES_SEG004,SLICES_CODE) +#define gridwin_1a SEG_SEGCLASS(SLICES_SEG004,SLICES_CODE) +#define output3_03 SEG_SEGCLASS(SLICES_SEG004,SLICES_CODE) +#define output_05 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define output_0f SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define gridwin3_16 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define patattr_12 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define attrib_01 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define table4_09 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autoform_23 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autofmt_0b SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autofmt_0c SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autofmt_1b SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autofmt_0e SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autofmt_0d SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autofmt_1c SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autofmt_13 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autofmt_11 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autoform_04 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autofmt_12 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autoform_24 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define table4_0a SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define documen3_16 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define viewfun2_22 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autoform_01 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define zforauto_01 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define table4_08 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autoform_09 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autoform_05 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autoform_07 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autoform_0b SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autofmt_18 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autofmt_17 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autofmt_15 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autofmt_14 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autofmt_09 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autofmt_16 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autoform_22 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autofmt_19 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autofmt_01 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autofmt_03 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autofmt_04 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autofmt_08 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autoform_18 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define zforauto_08 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autofmt_0f SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autoform_10 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autoform_16 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autoform_0e SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autoform_14 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autoform_12 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autoform_06 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autoform_0a SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autoform_0c SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autoform_0d SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autoform_0f SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autoform_11 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autoform_13 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autoform_15 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autoform_17 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autoform_19 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autoform_1b SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autoform_1d SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autoform_1f SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autoform_21 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define autoform_25 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define zforauto_04 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define zforauto_07 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define linelink_01 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE) +#define compiler_04 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define cell_10 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define compiler_29 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define compiler_09 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define compiler_06 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define token_0a SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define compiler_07 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define column3_14 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define table2_3f SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define document_45 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define rangenam_05 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define token_5e SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define token_50 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define column2_01 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define compiler_26 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define token_21 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define rangenam_11 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define refupdat_03 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define refupdat_07 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define column2_06 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define table2_6b SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define rechead_06 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define attarray_25 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define rechead_01 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define document_88 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define rechead_02 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define rechead_07 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define rangenam_06 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define dbcolect_15 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define rechead_09 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define rechead_03 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define docoptio_11 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define viewopti_15 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define pivot2_0d SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define collect_07 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define documen5_01 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define chartarr_18 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define viewopti_1b SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define attrib_3a SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define attrib_35 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define namebuff_16 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define token_51 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define excform_15 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define excform_11 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define colrowst_13 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define colrowst_09 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define impop_26 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define frmbase_03 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define excform_09 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define tokstack_10 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define impop_32 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define excform_13 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define tokstack_22 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define tokstack_09 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define excform_01 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define impop_39 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define impop_4d SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define cell_2d SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define rangenam_03 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define collect_0f SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define collect_08 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define collect_0e SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define rangenam_01 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define dbcolect_11 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define rangenam_10 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define rangenam_0b SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define rangenam_17 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define dbcolect_01 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define global2_03 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define dbcolect_09 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define dbcolect_05 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define collect_12 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define dbfunc_06 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define global2_01 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define dbcolect_1d SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define impop_48 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define impop_33 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define frmbase_04 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define namebuff_17 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define cell_3c SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define impop_38 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define attarray_03 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE) +#define document_30 SEG_SEGCLASS(SLICES_SEG007,SLICES_CODE) +#define table1_08 SEG_SEGCLASS(SLICES_SEG007,SLICES_CODE) +#define column_05 SEG_SEGCLASS(SLICES_SEG007,SLICES_CODE) +#define markarr_07 SEG_SEGCLASS(SLICES_SEG007,SLICES_CODE) +#define markarr_03 SEG_SEGCLASS(SLICES_SEG007,SLICES_CODE) +#define markarr_0e SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define document_3a SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define table1_0c SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define markarr_0f SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define column2_09 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define table1_0d SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define column2_0e SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define document_55 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define viewfunc_01 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define viewfunc_13 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define documen3_19 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define documen3_1a SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define table2_62 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define markarr_10 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define column_65 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define table2_89 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define column_07 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define markarr_0a SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define table1_0b SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define document_3b SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define document_6e SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define table2_97 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define column_71 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define column_10 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define column2_10 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define document_3c SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define viewfun2_15 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define viewfunc_34 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define viewfunc_3e SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define document_98 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define tabvwsh8_03 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define viewfunc_0c SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define tabvwsha_03 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define tabvwsh5_20 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define tabvwsh5_21 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define tabvwshd_01 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define viewfunc_3b SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define patattr_0a SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define document_57 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define table1_0f SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define table2_8d SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define table2_a1 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define drwlayer_0b SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define drwlayer_12 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define table2_55 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define document_80 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define table2_57 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define document_4f SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define colrowst_04 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define impop_4c SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define exctools_0b SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define exctools_0e SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define exctools_05 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define exctools_0c SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define colrowst_15 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define colrowst_0f SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define document_68 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define table2_50 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define xfbuff_0d SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define fontbuff_0c SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define attrib_39 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define xfbuff_0b SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define attrib_38 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define drwlayer_03 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define drwlayer_1d SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define drawvie3_06 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define drawsh2_05 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define table2_a3 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define table2_a4 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define documen8_0d SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define drwlayer_27 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define table2_61 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define attrib_36 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define tabvwsh7_02 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define tphf_01 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define stlsheet_08 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define styledlg_01 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define styledlg_02 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define styledlg_03 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define stlsheet_07 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define docpool_08 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define docpool_07 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define document_51 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define column2_0f SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define document_58 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define table2_5b SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define document_60 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define dbfunc_09 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define collect_03 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define table5_01 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define document_5f SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define printfun_08 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define document_5e SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define table5_02 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define printfun_1e SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define printfun_1f SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define editutil_02 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE) +#define undobase_0a SEG_SEGCLASS(SLICES_SEG009,SLICES_CODE) +#define table1_07 SEG_SEGCLASS(SLICES_SEG009,SLICES_CODE) +#define undocell_08 SEG_SEGCLASS(SLICES_SEG009,SLICES_CODE) +#define viewdata_15 SEG_SEGCLASS(SLICES_SEG009,SLICES_CODE) +#define documen3_2d SEG_SEGCLASS(SLICES_SEG009,SLICES_CODE) +#define undocell_09 SEG_SEGCLASS(SLICES_SEG009,SLICES_CODE) +#define undocell_1a SEG_SEGCLASS(SLICES_SEG009,SLICES_CODE) +#define uiitems_02 SEG_SEGCLASS(SLICES_SEG009,SLICES_CODE) +#define uiitems_03 SEG_SEGCLASS(SLICES_SEG009,SLICES_CODE) +#define uiitems_07 SEG_SEGCLASS(SLICES_SEG009,SLICES_CODE) +#define uiitems_04 SEG_SEGCLASS(SLICES_SEG009,SLICES_CODE) +#define undocell_07 SEG_SEGCLASS(SLICES_SEG009,SLICES_CODE) +#define document_96 SEG_SEGCLASS(SLICES_SEG010,SLICES_CODE) +#define global2_47 SEG_SEGCLASS(SLICES_SEG010,SLICES_CODE) +#define global2_4a SEG_SEGCLASS(SLICES_SEG010,SLICES_CODE) +#define global2_4b SEG_SEGCLASS(SLICES_SEG010,SLICES_CODE) +#define editsh_08 SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE) +#define tabview2_02 SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE) +#define tabview2_0a SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE) +#define document_2b SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE) +#define tabview2_08 SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE) +#define viewutil_01 SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE) +#define viewutil_02 SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE) +#define viewutil_04 SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE) +#define viewutil_05 SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE) +#define select_14 SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE) +#define viewdata_3e SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE) +#define hdrcont_06 SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE) +#define colrowba_08 SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE) +#define viewdata_21 SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE) +#define tabview_15 SEG_SEGCLASS(SLICES_SEG012,SLICES_CODE) +#define documen3_03 SEG_SEGCLASS(SLICES_SEG012,SLICES_CODE) +#define dbdocfun_06 SEG_SEGCLASS(SLICES_SEG012,SLICES_CODE) +#define dbcolect_1b SEG_SEGCLASS(SLICES_SEG012,SLICES_CODE) +#define dbdocfun_04 SEG_SEGCLASS(SLICES_SEG012,SLICES_CODE) +#define table2_4c SEG_SEGCLASS(SLICES_SEG013,SLICES_CODE) +#define documen8_0c SEG_SEGCLASS(SLICES_SEG013,SLICES_CODE) +#define drawvie2_03 SEG_SEGCLASS(SLICES_SEG013,SLICES_CODE) +#define undoblk3_27 SEG_SEGCLASS(SLICES_SEG013,SLICES_CODE) +#define undoblk3_5c SEG_SEGCLASS(SLICES_SEG013,SLICES_CODE) +#define undoblk3_3f SEG_SEGCLASS(SLICES_SEG013,SLICES_CODE) +#define undoblk3_5f SEG_SEGCLASS(SLICES_SEG013,SLICES_CODE) +#define column_6e SEG_SEGCLASS(SLICES_SEG013,SLICES_CODE) +#define patattr_17 SEG_SEGCLASS(SLICES_SEG013,SLICES_CODE) +#define cell2_0e SEG_SEGCLASS(SLICES_SEG013,SLICES_CODE) +#define select_05 SEG_SEGCLASS(SLICES_SEG013,SLICES_CODE) +#define select_06 SEG_SEGCLASS(SLICES_SEG013,SLICES_CODE) +#define tabview5_07 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE) +#define document_34 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE) +#define interpr4_14 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE) +#define interpr1_b7 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE) +#define dociter_0a SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE) +#define dociter_0b SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE) +#define dociter_0c SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE) +#define interpr1_71 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE) +#define interpr3_29 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE) +#define interpr1_6b SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE) +#define interpr1_6a SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE) +#define dociter_20 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE) +#define interpr3_1f SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE) +#define interpr3_1e SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE) +#define interpr3_1d SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE) +#define interpr3_31 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE) +#define interpr5_b1 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE) +#define interpr4_bb SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE) +#define interpr1_6c SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE) +#define interpr1_70 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE) +#define interpr1_74 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE) +#define interpr1_75 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE) +#define interpr1_72 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE) +#define interpr1_73 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE) +#define interpr4_1d SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE) +#define token_0c SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE) +#define interpr5_b3 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE) +#define interpr5_6b SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE) +#define column2_14 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define dociter_17 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define dociter_18 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define dociter_19 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define table2_6c SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define table2_9d SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define table2_9e SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define column2_07 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define documen2_08 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define column2_04 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define column2_15 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define rechead_04 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define document_89 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define rechead_05 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define docsh_0b SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define docoptio_0f SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define attarray_24 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define column2_02 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define rechead_0a SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define rechead_0b SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define dbcolect_16 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define pivot2_0e SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define rangenam_07 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define rechead_0c SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define cell_0d SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define token_2a SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define token_43 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define rechead_0e SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define documen8_03 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define viewopti_16 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define viewopti_1c SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define documen8_04 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define attarray_16 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define attrib_74 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define editutil_16 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define patattr_14 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define cell2_1d SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define cell2_1f SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define drwlayer_06 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define documen9_0c SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define dociter_13 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define dociter_14 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define dociter_15 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define table2_b0 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define document_8d SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define table3_92 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define attrib_a3 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define dociter_0f SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define dociter_10 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define interpr1_b9 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define global2_0f SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define tabvwshc_01 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define global2_29 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define appmain_07 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define global2_21 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define uiitems_31 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define global2_31 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define anyrefdg_01 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define uiitems_2f SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define global2_3a SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define uiitems_2e SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define interpr1_7f SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define document_41 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define table2_3c SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define column3_11 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define dociter_0e SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define dociter_11 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define interpr1_80 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define appmain3_0a SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define tabvwsh6_01 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define dbcolect_18 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define uiitems_34 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define uiitems_3f SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define uiitems_42 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define msgpool_02 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define inputhdl_02 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define appmain3_02 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define uiitems_3a SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define dbcolect_06 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define documen3_20 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define table3_7c SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define gridwin_09 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define gridwin_31 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define gridwin_01 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define gridwin_32 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define gridwin_2f SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define dbcolect_0a SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define gridwin_37 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define dbcolect_0b SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define gridwin_0a SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define gridwin_30 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define gridwin4_08 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define documen3_1d SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define table3_79 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define table3_7f SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define global2_16 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define table2_77 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define table3_78 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define appmain7_0c SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define appoptio_03 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define printopt_03 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define interpr1_86 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define appmain2_03 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define patattr_07 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE) +#define tabview5_0d SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE) +#define tabcont_04 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE) +#define undoolk_01 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE) +#define undobase_01 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE) +#define documen9_03 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE) +#define token_03 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE) +#define token_55 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE) +#define tokstack_11 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE) +#define token_54 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE) +#define interpr4_19 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE) +#define interpr4_1a SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE) +#define interpr1_97 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE) +#define token_02 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE) +#define token_56 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE) +#define token_57 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE) +#define token_04 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE) +#define token_58 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE) +#define token_05 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE) +#define token_59 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE) +#define token_09 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE) +#define global_6a SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE) +#define token_27 SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE) +#define compiler_25 SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE) +#define compiler_24 SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE) +#define compiler_23 SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE) +#define compiler_22 SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE) +#define compiler_21 SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE) +#define compiler_20 SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE) +#define compiler_3f SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE) +#define compiler_1e SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE) +#define compiler_4e SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE) +#define compiler_1c SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE) +#define cell_3d SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE) +#define column_81 SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE) +#define table2_a8 SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE) +#define document_a7 SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE) +#define table2_ae SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE) +#define column_85 SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE) +#define cell_3f SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE) +#define appmain_36 SEG_SEGCLASS(SLICES_SEG018,SLICES_CODE) +#define printfun_02 SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE) +#define preview_16 SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE) +#define prevwsh_16 SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE) +#define preview_0c SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE) +#define preview_19 SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE) +#define preview_17 SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE) +#define preview_0e SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE) +#define prevwsh_0b SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE) +#define prevwsh_18 SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE) +#define preview_0d SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE) +#define preview_1a SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE) +#define preview_18 SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE) +#define prevwsh_15 SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE) +#define prevwsh_14 SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE) +#define prevwsh_13 SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE) +#define prevwsh_1f SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE) +#define pagepar_07 SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE) +#define pagepar_0a SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE) +#define pagepar_09 SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE) +#define printfun_06 SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE) +#define printfun_2c SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE) +#define preview_1b SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE) +#define printfun_29 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE) +#define printfun_11 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE) +#define printfun_04 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE) +#define printfun_0a SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE) +#define printfun_05 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE) +#define printfun_19 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE) +#define printfun_22 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE) +#define printfun_1c SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE) +#define printfun_1d SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE) +#define editutil_0a SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE) +#define printfun_09 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE) +#define output_04 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE) +#define output3_01 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE) +#define printfun_20 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE) +#define printfun_18 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE) +#define editutil_07 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE) +#define editutil_10 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE) +#define editutil_14 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE) +#define editutil_18 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE) +#define printfun_0c SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE) +#define printfun_0d SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE) +#define dbcolect_0c SEG_SEGCLASS(SLICES_SEG021,SLICES_CODE) +#define pagepar_04 SEG_SEGCLASS(SLICES_SEG021,SLICES_CODE) +#define printfun_0f SEG_SEGCLASS(SLICES_SEG021,SLICES_CODE) +#define document_93 SEG_SEGCLASS(SLICES_SEG021,SLICES_CODE) +#define table5_03 SEG_SEGCLASS(SLICES_SEG021,SLICES_CODE) +#define document_94 SEG_SEGCLASS(SLICES_SEG021,SLICES_CODE) +#define table5_04 SEG_SEGCLASS(SLICES_SEG021,SLICES_CODE) +#define olinewin_06 SEG_SEGCLASS(SLICES_SEG021,SLICES_CODE) +#define global_67 SEG_SEGCLASS(SLICES_SEG021,SLICES_CODE) +#define editutil_09 SEG_SEGCLASS(SLICES_SEG022,SLICES_CODE) +#define table5_07 SEG_SEGCLASS(SLICES_SEG022,SLICES_CODE) +#define document_97 SEG_SEGCLASS(SLICES_SEG022,SLICES_CODE) +#define printfun_12 SEG_SEGCLASS(SLICES_SEG022,SLICES_CODE) +#define printfun_25 SEG_SEGCLASS(SLICES_SEG022,SLICES_CODE) +#define printfun_27 SEG_SEGCLASS(SLICES_SEG022,SLICES_CODE) +#define colrowba_12 SEG_SEGCLASS(SLICES_SEG022,SLICES_CODE) +#define fusel_01 SEG_SEGCLASS(SLICES_SEG022,SLICES_CODE) +#define patattr_11 SEG_SEGCLASS(SLICES_SEG022,SLICES_CODE) +#define attarray_2c SEG_SEGCLASS(SLICES_SEG022,SLICES_CODE) +#define column2_22 SEG_SEGCLASS(SLICES_SEG022,SLICES_CODE) +#define drawpage_02 SEG_SEGCLASS(SLICES_SEG023,SLICES_CODE) +#define drwlayer_0f SEG_SEGCLASS(SLICES_SEG023,SLICES_CODE) +#define drwlayer_0c SEG_SEGCLASS(SLICES_SEG023,SLICES_CODE) +#define drwlayer_0d SEG_SEGCLASS(SLICES_SEG023,SLICES_CODE) +#define tabview3_2a SEG_SEGCLASS(SLICES_SEG023,SLICES_CODE) +#define tabview3_40 SEG_SEGCLASS(SLICES_SEG023,SLICES_CODE) +#define token_69 SEG_SEGCLASS(SLICES_SEG023,SLICES_CODE) +#define documen7_01 SEG_SEGCLASS(SLICES_SEG023,SLICES_CODE) +#define bcaslot_0f SEG_SEGCLASS(SLICES_SEG023,SLICES_CODE) +#define bcaslot_01 SEG_SEGCLASS(SLICES_SEG023,SLICES_CODE) +#define bcaslot_03 SEG_SEGCLASS(SLICES_SEG023,SLICES_CODE) +#define bcaslot_06 SEG_SEGCLASS(SLICES_SEG023,SLICES_CODE) +#define bcaslot_05 SEG_SEGCLASS(SLICES_SEG023,SLICES_CODE) +#define bcaslot_0e SEG_SEGCLASS(SLICES_SEG023,SLICES_CODE) +#define dociter_16 SEG_SEGCLASS(SLICES_SEG024,SLICES_CODE) +#define cell_23 SEG_SEGCLASS(SLICES_SEG024,SLICES_CODE) +#define fupoor_02 SEG_SEGCLASS(SLICES_SEG024,SLICES_CODE) +#define tabview3_2b SEG_SEGCLASS(SLICES_SEG024,SLICES_CODE) +#define document_86 SEG_SEGCLASS(SLICES_SEG024,SLICES_CODE) +#define table1_12 SEG_SEGCLASS(SLICES_SEG024,SLICES_CODE) +#define column2_1d SEG_SEGCLASS(SLICES_SEG024,SLICES_CODE) +#define column2_2d SEG_SEGCLASS(SLICES_SEG024,SLICES_CODE) +#define autoform_03 SEG_SEGCLASS(SLICES_SEG025,SLICES_CODE) +#define compiler_52 SEG_SEGCLASS(SLICES_SEG025,SLICES_CODE) +#define attarray_27 SEG_SEGCLASS(SLICES_SEG026,SLICES_CODE) +#define inputhdl_23 SEG_SEGCLASS(SLICES_SEG026,SLICES_CODE) +#define editsh_05 SEG_SEGCLASS(SLICES_SEG026,SLICES_CODE) +#define editsh_09 SEG_SEGCLASS(SLICES_SEG026,SLICES_CODE) +#define undoblk3_3d SEG_SEGCLASS(SLICES_SEG027,SLICES_CODE) +#define fusel_02 SEG_SEGCLASS(SLICES_SEG027,SLICES_CODE) +#define autofmt_02 SEG_SEGCLASS(SLICES_SEG027,SLICES_CODE) +#define autofmt_0a SEG_SEGCLASS(SLICES_SEG027,SLICES_CODE) +#define autofmt_1a SEG_SEGCLASS(SLICES_SEG027,SLICES_CODE) +#define autofmt_1e SEG_SEGCLASS(SLICES_SEG027,SLICES_CODE) +#define fudraw_02 SEG_SEGCLASS(SLICES_SEG028,SLICES_CODE) +#define global_09 SEG_SEGCLASS(SLICES_SEG028,SLICES_CODE) +#define table4_07 SEG_SEGCLASS(SLICES_SEG028,SLICES_CODE) +#define autoform_26 SEG_SEGCLASS(SLICES_SEG028,SLICES_CODE) +#define documen3_15 SEG_SEGCLASS(SLICES_SEG028,SLICES_CODE) +#define document_52 SEG_SEGCLASS(SLICES_SEG029,SLICES_CODE) +#define table2_8e SEG_SEGCLASS(SLICES_SEG029,SLICES_CODE) +#define document_9c SEG_SEGCLASS(SLICES_SEG029,SLICES_CODE) +#define table2_a0 SEG_SEGCLASS(SLICES_SEG029,SLICES_CODE) +#define documen7_09 SEG_SEGCLASS(SLICES_SEG029,SLICES_CODE) +#define table5_05 SEG_SEGCLASS(SLICES_SEG029,SLICES_CODE) +#define column2_26 SEG_SEGCLASS(SLICES_SEG029,SLICES_CODE) +#define cell_35 SEG_SEGCLASS(SLICES_SEG029,SLICES_CODE) +#define autoform_08 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE) +#define autoform_1a SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE) +#define autoform_1c SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE) +#define autoform_1e SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE) +#define autoform_20 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE) +#define viewdata_3c SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE) +#define undodat_33 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE) +#define undodat_4d SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE) +#define document_2d SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE) +#define docsh_08 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE) +#define imoptdlg_04 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE) +#define imoptdlg_03 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE) +#define imoptdlg_05 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE) +#define imoptdlg_06 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE) +#define imoptdlg_07 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE) +#define imoptdlg_02 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE) +#define global_98 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE) +#define document_4b SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE) +#define table2_46 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE) +#define column_4f SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE) +#define documen3_1c SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE) +#define table3_76 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE) +#define table2_9f SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE) +#define impex_02 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE) +#define impex_06 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE) +#define impex_16 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE) +#define impex_20 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE) +#define impex_10 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE) +#define impex_18 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE) +#define documen7_13 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE) +#define table2_a7 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE) +#define column3_1b SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE) +#define drawview_04 SEG_SEGCLASS(SLICES_SEG031,SLICES_CODE) +#define column3_19 SEG_SEGCLASS(SLICES_SEG031,SLICES_CODE) +#define table2_44 SEG_SEGCLASS(SLICES_SEG031,SLICES_CODE) +#define drwlayer_02 SEG_SEGCLASS(SLICES_SEG031,SLICES_CODE) +#define drwlayer_1f SEG_SEGCLASS(SLICES_SEG031,SLICES_CODE) +#define interpr1_42 SEG_SEGCLASS(SLICES_SEG031,SLICES_CODE) +#define table1_0a SEG_SEGCLASS(SLICES_SEG031,SLICES_CODE) +#define column_08 SEG_SEGCLASS(SLICES_SEG031,SLICES_CODE) +#define markarr_0d SEG_SEGCLASS(SLICES_SEG031,SLICES_CODE) +#define tabvwshd_04 SEG_SEGCLASS(SLICES_SEG031,SLICES_CODE) +#define prevwsh_0f SEG_SEGCLASS(SLICES_SEG032,SLICES_CODE) +#define editsh_07 SEG_SEGCLASS(SLICES_SEG032,SLICES_CODE) +#define printfun_2b SEG_SEGCLASS(SLICES_SEG032,SLICES_CODE) +#define docsh6_09 SEG_SEGCLASS(SLICES_SEG032,SLICES_CODE) +#define gridwin4_07 SEG_SEGCLASS(SLICES_SEG033,SLICES_CODE) +#define attrib_73 SEG_SEGCLASS(SLICES_SEG033,SLICES_CODE) +#define attrib_a5 SEG_SEGCLASS(SLICES_SEG033,SLICES_CODE) +#define attrib_a4 SEG_SEGCLASS(SLICES_SEG033,SLICES_CODE) +#define editutil_0d SEG_SEGCLASS(SLICES_SEG033,SLICES_CODE) +#define editutil_1d SEG_SEGCLASS(SLICES_SEG033,SLICES_CODE) +#define editutil_11 SEG_SEGCLASS(SLICES_SEG033,SLICES_CODE) +#define editutil_15 SEG_SEGCLASS(SLICES_SEG033,SLICES_CODE) +#define editutil_19 SEG_SEGCLASS(SLICES_SEG033,SLICES_CODE) +#define document_a3 SEG_SEGCLASS(SLICES_SEG034,SLICES_CODE) +#define column3_09 SEG_SEGCLASS(SLICES_SEG034,SLICES_CODE) +#define table2_34 SEG_SEGCLASS(SLICES_SEG034,SLICES_CODE) +#define table4_13 SEG_SEGCLASS(SLICES_SEG034,SLICES_CODE) +#define column_17 SEG_SEGCLASS(SLICES_SEG034,SLICES_CODE) +#define column3_0f SEG_SEGCLASS(SLICES_SEG034,SLICES_CODE) +#define table4_05 SEG_SEGCLASS(SLICES_SEG034,SLICES_CODE) +#define column3_1e SEG_SEGCLASS(SLICES_SEG035,SLICES_CODE) +#define rechead_08 SEG_SEGCLASS(SLICES_SEG036,SLICES_CODE) +#define cell_0c SEG_SEGCLASS(SLICES_SEG036,SLICES_CODE) +#define rechead_0d SEG_SEGCLASS(SLICES_SEG036,SLICES_CODE) +#define token_28 SEG_SEGCLASS(SLICES_SEG036,SLICES_CODE) +#define token_41 SEG_SEGCLASS(SLICES_SEG036,SLICES_CODE) +#define token_29 SEG_SEGCLASS(SLICES_SEG036,SLICES_CODE) +#define token_42 SEG_SEGCLASS(SLICES_SEG036,SLICES_CODE) +#define token_60 SEG_SEGCLASS(SLICES_SEG037,SLICES_CODE) +#define undoblk3_31 SEG_SEGCLASS(SLICES_SEG037,SLICES_CODE) +#define filldlg_01 SEG_SEGCLASS(SLICES_SEG037,SLICES_CODE) +#define filldlg_02 SEG_SEGCLASS(SLICES_SEG037,SLICES_CODE) +#define filldlg_03 SEG_SEGCLASS(SLICES_SEG037,SLICES_CODE) +#define filldlg_04 SEG_SEGCLASS(SLICES_SEG038,SLICES_CODE) +#define filldlg_06 SEG_SEGCLASS(SLICES_SEG038,SLICES_CODE) +#define filldlg_07 SEG_SEGCLASS(SLICES_SEG038,SLICES_CODE) +#define filldlg_05 SEG_SEGCLASS(SLICES_SEG038,SLICES_CODE) +#define filldlg_08 SEG_SEGCLASS(SLICES_SEG039,SLICES_CODE) +#define document_0b SEG_SEGCLASS(SLICES_SEG039,SLICES_CODE) +#define document_11 SEG_SEGCLASS(SLICES_SEG039,SLICES_CODE) +#define table1_05 SEG_SEGCLASS(SLICES_SEG039,SLICES_CODE) +#define document_4c SEG_SEGCLASS(SLICES_SEG039,SLICES_CODE) +#define table2_47 SEG_SEGCLASS(SLICES_SEG039,SLICES_CODE) +#define column_50 SEG_SEGCLASS(SLICES_SEG039,SLICES_CODE) +#define table2_a9 SEG_SEGCLASS(SLICES_SEG039,SLICES_CODE) +#define column_82 SEG_SEGCLASS(SLICES_SEG039,SLICES_CODE) +#define documen7_0e SEG_SEGCLASS(SLICES_SEG039,SLICES_CODE) +#define table1_25 SEG_SEGCLASS(SLICES_SEG040,SLICES_CODE) +#define column2_18 SEG_SEGCLASS(SLICES_SEG040,SLICES_CODE) +#define interpr3_05 SEG_SEGCLASS(SLICES_SEG040,SLICES_CODE) +#define interpr3_0d SEG_SEGCLASS(SLICES_SEG040,SLICES_CODE) +#define interpr3_12 SEG_SEGCLASS(SLICES_SEG040,SLICES_CODE) +#define interpr3_47 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define interpr3_4e SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define interpr3_50 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define interpr3_4d SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define interpr3_51 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define interpr3_54 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define interpr3_19 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define interpr3_52 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define interpr3_15 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define interpr3_4f SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define interpr3_55 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define interpr3_4a SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define interpr3_48 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define interpr3_53 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define interpr3_14 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define interpr3_49 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define interpr3_1c SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define interpr5_56 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define interpr5_11 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define scmatrix_01 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define scmatrix_07 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define interpr5_b4 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define scmatrix_0f SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define interpr5_b5 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define interpr3_46 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define scmatrix_0a SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define interpr3_35 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define interpr3_39 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define interpr3_3a SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define interpr3_3b SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define interpr3_3d SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define scmatrix_05 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define scmatrix_02 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define scmatrix_06 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define scmatrix_04 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define interpr3_4c SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define interpr4_1f SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE) +#define undoblk3_33 SEG_SEGCLASS(SLICES_SEG042,SLICES_CODE) +#define undoblk3_5d SEG_SEGCLASS(SLICES_SEG042,SLICES_CODE) +#define patattr_06 SEG_SEGCLASS(SLICES_SEG042,SLICES_CODE) +#define cell_37 SEG_SEGCLASS(SLICES_SEG042,SLICES_CODE) +#define bcaslot_02 SEG_SEGCLASS(SLICES_SEG042,SLICES_CODE) +#define tabview_14 SEG_SEGCLASS(SLICES_SEG042,SLICES_CODE) +#define docoptio_02 SEG_SEGCLASS(SLICES_SEG043,SLICES_CODE) +#define viewopti_02 SEG_SEGCLASS(SLICES_SEG043,SLICES_CODE) +#define impop_2c SEG_SEGCLASS(SLICES_SEG043,SLICES_CODE) +#define impop_42 SEG_SEGCLASS(SLICES_SEG043,SLICES_CODE) +#define documen3_3b SEG_SEGCLASS(SLICES_SEG043,SLICES_CODE) +#define exctools_02 SEG_SEGCLASS(SLICES_SEG043,SLICES_CODE) +#define rangenam_1a SEG_SEGCLASS(SLICES_SEG043,SLICES_CODE) +#define rangenam_1b SEG_SEGCLASS(SLICES_SEG044,SLICES_CODE) +#define cell2_1c SEG_SEGCLASS(SLICES_SEG044,SLICES_CODE) +#define cell2_1e SEG_SEGCLASS(SLICES_SEG044,SLICES_CODE) +#define documen9_02 SEG_SEGCLASS(SLICES_SEG044,SLICES_CODE) +#define prevwsh_03 SEG_SEGCLASS(SLICES_SEG044,SLICES_CODE) +#define prevwsh_06 SEG_SEGCLASS(SLICES_SEG044,SLICES_CODE) +#define prevwsh_07 SEG_SEGCLASS(SLICES_SEG044,SLICES_CODE) +#define preview_02 SEG_SEGCLASS(SLICES_SEG044,SLICES_CODE) +#define preview_01 SEG_SEGCLASS(SLICES_SEG044,SLICES_CODE) +#define olinetab_0b SEG_SEGCLASS(SLICES_SEG045,SLICES_CODE) +#define table2_06 SEG_SEGCLASS(SLICES_SEG045,SLICES_CODE) +#define olinetab_0e SEG_SEGCLASS(SLICES_SEG045,SLICES_CODE) +#define olinetab_22 SEG_SEGCLASS(SLICES_SEG045,SLICES_CODE) +#define compiler_43 SEG_SEGCLASS(SLICES_SEG045,SLICES_CODE) +#define compiler_44 SEG_SEGCLASS(SLICES_SEG045,SLICES_CODE) +#define compiler_54 SEG_SEGCLASS(SLICES_SEG045,SLICES_CODE) +#define interpr3_02 SEG_SEGCLASS(SLICES_SEG045,SLICES_CODE) +#define interpr3_03 SEG_SEGCLASS(SLICES_SEG045,SLICES_CODE) +#define interpr3_09 SEG_SEGCLASS(SLICES_SEG045,SLICES_CODE) +#define interpr3_01 SEG_SEGCLASS(SLICES_SEG045,SLICES_CODE) +#define interpr3_13 SEG_SEGCLASS(SLICES_SEG045,SLICES_CODE) +#define interpr3_16 SEG_SEGCLASS(SLICES_SEG045,SLICES_CODE) +#define interpr3_0a SEG_SEGCLASS(SLICES_SEG046,SLICES_CODE) +#define interpr3_0b SEG_SEGCLASS(SLICES_SEG046,SLICES_CODE) +#define interpr3_0f SEG_SEGCLASS(SLICES_SEG047,SLICES_CODE) +#define interpr3_17 SEG_SEGCLASS(SLICES_SEG047,SLICES_CODE) +#define interpr3_1a SEG_SEGCLASS(SLICES_SEG047,SLICES_CODE) +#define interpr3_20 SEG_SEGCLASS(SLICES_SEG047,SLICES_CODE) +#define interpr3_27 SEG_SEGCLASS(SLICES_SEG048,SLICES_CODE) +#define interpr3_32 SEG_SEGCLASS(SLICES_SEG048,SLICES_CODE) +#define interpr3_34 SEG_SEGCLASS(SLICES_SEG048,SLICES_CODE) +#define interpr3_45 SEG_SEGCLASS(SLICES_SEG048,SLICES_CODE) +#define interpr3_36 SEG_SEGCLASS(SLICES_SEG048,SLICES_CODE) +#define interpr3_33 SEG_SEGCLASS(SLICES_SEG048,SLICES_CODE) +#define impop_02 SEG_SEGCLASS(SLICES_SEG049,SLICES_CODE) +#define fontbuff_02 SEG_SEGCLASS(SLICES_SEG049,SLICES_CODE) +#define fontbuff_03 SEG_SEGCLASS(SLICES_SEG049,SLICES_CODE) +#define fontbuff_07 SEG_SEGCLASS(SLICES_SEG049,SLICES_CODE) +#define xfbuff_02 SEG_SEGCLASS(SLICES_SEG049,SLICES_CODE) +#define xfbuff_0a SEG_SEGCLASS(SLICES_SEG049,SLICES_CODE) +#define tokstack_03 SEG_SEGCLASS(SLICES_SEG049,SLICES_CODE) +#define tokstack_0a SEG_SEGCLASS(SLICES_SEG049,SLICES_CODE) +#define frmbase_02 SEG_SEGCLASS(SLICES_SEG049,SLICES_CODE) +#define impop_0b SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE) +#define impop_51 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE) +#define impop_49 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE) +#define impop_1f SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE) +#define fontbuff_09 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE) +#define impop_50 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE) +#define spstring_06 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE) +#define spstring_09 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE) +#define spstring_05 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE) +#define impop_54 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE) +#define spstring_01 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE) +#define impop_2a SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE) +#define namebuff_07 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE) +#define impop_4a SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE) +#define impop_45 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE) +#define spstring_02 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE) +#define spstring_0b SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE) +#define vfbuff_03 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE) +#define vfbuff_05 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE) +#define vfbuff_09 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE) +#define spstring_0a SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE) +#define namebuff_01 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE) +#define impop_0c SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE) +#define spstring_08 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE) +#define impop_56 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE) +#define impop_14 SEG_SEGCLASS(SLICES_SEG051,SLICES_CODE) +#define impop_1c SEG_SEGCLASS(SLICES_SEG051,SLICES_CODE) +#define impop_1d SEG_SEGCLASS(SLICES_SEG051,SLICES_CODE) +#define impop_20 SEG_SEGCLASS(SLICES_SEG051,SLICES_CODE) +#define impop_23 SEG_SEGCLASS(SLICES_SEG051,SLICES_CODE) +#define impop_27 SEG_SEGCLASS(SLICES_SEG051,SLICES_CODE) +#define impop_28 SEG_SEGCLASS(SLICES_SEG051,SLICES_CODE) +#define impop_29 SEG_SEGCLASS(SLICES_SEG051,SLICES_CODE) +#define impop_2b SEG_SEGCLASS(SLICES_SEG051,SLICES_CODE) +#define impop_31 SEG_SEGCLASS(SLICES_SEG052,SLICES_CODE) +#define impop_36 SEG_SEGCLASS(SLICES_SEG052,SLICES_CODE) +#define xfbuff_01 SEG_SEGCLASS(SLICES_SEG052,SLICES_CODE) +#define xfbuff_04 SEG_SEGCLASS(SLICES_SEG052,SLICES_CODE) +#define xfbuff_07 SEG_SEGCLASS(SLICES_SEG052,SLICES_CODE) +#define vfbuff_07 SEG_SEGCLASS(SLICES_SEG052,SLICES_CODE) +#define impop_3b SEG_SEGCLASS(SLICES_SEG053,SLICES_CODE) +#define exctools_08 SEG_SEGCLASS(SLICES_SEG053,SLICES_CODE) +#define impop_40 SEG_SEGCLASS(SLICES_SEG053,SLICES_CODE) +#define impop_47 SEG_SEGCLASS(SLICES_SEG053,SLICES_CODE) +#define impop_4e SEG_SEGCLASS(SLICES_SEG053,SLICES_CODE) +#define impop_53 SEG_SEGCLASS(SLICES_SEG053,SLICES_CODE) +#define colrowst_01 SEG_SEGCLASS(SLICES_SEG053,SLICES_CODE) +#define colrowst_03 SEG_SEGCLASS(SLICES_SEG053,SLICES_CODE) +#define colrowst_02 SEG_SEGCLASS(SLICES_SEG054,SLICES_CODE) +#define colrowst_0b SEG_SEGCLASS(SLICES_SEG054,SLICES_CODE) +#define colrowst_0d SEG_SEGCLASS(SLICES_SEG054,SLICES_CODE) +#define colrowst_14 SEG_SEGCLASS(SLICES_SEG054,SLICES_CODE) +#define colrowst_10 SEG_SEGCLASS(SLICES_SEG054,SLICES_CODE) +#define colrowst_11 SEG_SEGCLASS(SLICES_SEG054,SLICES_CODE) +#define exctools_01 SEG_SEGCLASS(SLICES_SEG054,SLICES_CODE) +#define exctools_04 SEG_SEGCLASS(SLICES_SEG054,SLICES_CODE) +#define exctools_06 SEG_SEGCLASS(SLICES_SEG054,SLICES_CODE) +#define exctools_10 SEG_SEGCLASS(SLICES_SEG054,SLICES_CODE) +#define exctools_11 SEG_SEGCLASS(SLICES_SEG054,SLICES_CODE) +#define exctools_14 SEG_SEGCLASS(SLICES_SEG054,SLICES_CODE) +#define exctools_15 SEG_SEGCLASS(SLICES_SEG054,SLICES_CODE) +#define exctools_16 SEG_SEGCLASS(SLICES_SEG054,SLICES_CODE) +#define tokstack_02 SEG_SEGCLASS(SLICES_SEG054,SLICES_CODE) +#define tokstack_15 SEG_SEGCLASS(SLICES_SEG055,SLICES_CODE) +#define excform_0a SEG_SEGCLASS(SLICES_SEG055,SLICES_CODE) +#define tokstack_19 SEG_SEGCLASS(SLICES_SEG055,SLICES_CODE) +#define tokstack_1a SEG_SEGCLASS(SLICES_SEG056,SLICES_CODE) +#define tokstack_1c SEG_SEGCLASS(SLICES_SEG056,SLICES_CODE) +#define tokstack_1d SEG_SEGCLASS(SLICES_SEG056,SLICES_CODE) +#define namebuff_03 SEG_SEGCLASS(SLICES_SEG056,SLICES_CODE) +#define namebuff_12 SEG_SEGCLASS(SLICES_SEG056,SLICES_CODE) +#define namebuff_18 SEG_SEGCLASS(SLICES_SEG056,SLICES_CODE) +#define excform_04 SEG_SEGCLASS(SLICES_SEG056,SLICES_CODE) +#define excform_0b SEG_SEGCLASS(SLICES_SEG057,SLICES_CODE) +#define excform_0c SEG_SEGCLASS(SLICES_SEG057,SLICES_CODE) +#define excform_0d SEG_SEGCLASS(SLICES_SEG057,SLICES_CODE) +#define vfbuff_01 SEG_SEGCLASS(SLICES_SEG057,SLICES_CODE) +#define fontbuff_01 SEG_SEGCLASS(SLICES_SEG057,SLICES_CODE) +#define fontbuff_05 SEG_SEGCLASS(SLICES_SEG057,SLICES_CODE) +#define fontbuff_0d SEG_SEGCLASS(SLICES_SEG057,SLICES_CODE) +#define xfbuff_09 SEG_SEGCLASS(SLICES_SEG057,SLICES_CODE) +#define frmbase_01 SEG_SEGCLASS(SLICES_SEG058,SLICES_CODE) +#define dbcolect_0d SEG_SEGCLASS(SLICES_SEG058,SLICES_CODE) +#define dbcolect_10 SEG_SEGCLASS(SLICES_SEG058,SLICES_CODE) +#define documen3_06 SEG_SEGCLASS(SLICES_SEG058,SLICES_CODE) +#define dociter_1a SEG_SEGCLASS(SLICES_SEG058,SLICES_CODE) +#define dociter_1b SEG_SEGCLASS(SLICES_SEG058,SLICES_CODE) +#define dociter_1c SEG_SEGCLASS(SLICES_SEG058,SLICES_CODE) +#define dociter_1d SEG_SEGCLASS(SLICES_SEG058,SLICES_CODE) +#define compiler_53 SEG_SEGCLASS(SLICES_SEG059,SLICES_CODE) +#define compiler_08 SEG_SEGCLASS(SLICES_SEG059,SLICES_CODE) +#define undoblk2_2d SEG_SEGCLASS(SLICES_SEG059,SLICES_CODE) +#define undoblk2_31 SEG_SEGCLASS(SLICES_SEG059,SLICES_CODE) +#define column3_13 SEG_SEGCLASS(SLICES_SEG059,SLICES_CODE) +#define table2_3e SEG_SEGCLASS(SLICES_SEG059,SLICES_CODE) +#define interpr1_6d SEG_SEGCLASS(SLICES_SEG059,SLICES_CODE) +#define interpr2_10 SEG_SEGCLASS(SLICES_SEG059,SLICES_CODE) +#define interpr2_26 SEG_SEGCLASS(SLICES_SEG059,SLICES_CODE) +#define tokstack_1e SEG_SEGCLASS(SLICES_SEG060,SLICES_CODE) +#define dbcolect_19 SEG_SEGCLASS(SLICES_SEG060,SLICES_CODE) +#define interpr1_46 SEG_SEGCLASS(SLICES_SEG060,SLICES_CODE) +#define interpr1_48 SEG_SEGCLASS(SLICES_SEG060,SLICES_CODE) +#define interpr1_4b SEG_SEGCLASS(SLICES_SEG060,SLICES_CODE) +#define interpr1_4c SEG_SEGCLASS(SLICES_SEG060,SLICES_CODE) +#define interpr1_4f SEG_SEGCLASS(SLICES_SEG060,SLICES_CODE) +#define interpr1_56 SEG_SEGCLASS(SLICES_SEG060,SLICES_CODE) +#define interpr1_58 SEG_SEGCLASS(SLICES_SEG060,SLICES_CODE) +#define interpr2_13 SEG_SEGCLASS(SLICES_SEG061,SLICES_CODE) +#define interpr2_17 SEG_SEGCLASS(SLICES_SEG061,SLICES_CODE) +#define interpr2_25 SEG_SEGCLASS(SLICES_SEG061,SLICES_CODE) +#define interpr2_29 SEG_SEGCLASS(SLICES_SEG061,SLICES_CODE) +#define interpr2_3e SEG_SEGCLASS(SLICES_SEG062,SLICES_CODE) +#define interpr2_3f SEG_SEGCLASS(SLICES_SEG062,SLICES_CODE) +#define interpr2_41 SEG_SEGCLASS(SLICES_SEG062,SLICES_CODE) +#define interpr2_42 SEG_SEGCLASS(SLICES_SEG062,SLICES_CODE) +#define interpr2_57 SEG_SEGCLASS(SLICES_SEG063,SLICES_CODE) +#define interpr5_76 SEG_SEGCLASS(SLICES_SEG063,SLICES_CODE) +#define appmain_02 SEG_SEGCLASS(SLICES_SEG063,SLICES_CODE) +#define docsh_09 SEG_SEGCLASS(SLICES_SEG063,SLICES_CODE) +#define docsh_0d SEG_SEGCLASS(SLICES_SEG063,SLICES_CODE) +#define docsh_3a SEG_SEGCLASS(SLICES_SEG063,SLICES_CODE) +#define appmain9_02 SEG_SEGCLASS(SLICES_SEG063,SLICES_CODE) +#define docsh4_05 SEG_SEGCLASS(SLICES_SEG064,SLICES_CODE) +#define printfun_01 SEG_SEGCLASS(SLICES_SEG064,SLICES_CODE) +#define printfun_2a SEG_SEGCLASS(SLICES_SEG064,SLICES_CODE) +#define global_10 SEG_SEGCLASS(SLICES_SEG064,SLICES_CODE) +#define compiler_02 SEG_SEGCLASS(SLICES_SEG064,SLICES_CODE) +#define interpr4_c2 SEG_SEGCLASS(SLICES_SEG064,SLICES_CODE) +#define callform_09 SEG_SEGCLASS(SLICES_SEG064,SLICES_CODE) +#define documen2_09 SEG_SEGCLASS(SLICES_SEG065,SLICES_CODE) +#define dociter_12 SEG_SEGCLASS(SLICES_SEG065,SLICES_CODE) +#define adiasync_03 SEG_SEGCLASS(SLICES_SEG065,SLICES_CODE) +#define interpr2_38 SEG_SEGCLASS(SLICES_SEG065,SLICES_CODE) +#define interpr2_39 SEG_SEGCLASS(SLICES_SEG065,SLICES_CODE) +#define interpr2_3a SEG_SEGCLASS(SLICES_SEG066,SLICES_CODE) +#define interpr2_43 SEG_SEGCLASS(SLICES_SEG066,SLICES_CODE) +#define interpr3_2a SEG_SEGCLASS(SLICES_SEG067,SLICES_CODE) +#define impop_25 SEG_SEGCLASS(SLICES_SEG068,SLICES_CODE) +#define exctools_0d SEG_SEGCLASS(SLICES_SEG068,SLICES_CODE) +#define colrowst_07 SEG_SEGCLASS(SLICES_SEG068,SLICES_CODE) +#define tabvwsh4_0c SEG_SEGCLASS(SLICES_SEG068,SLICES_CODE) +#define prevwsh_09 SEG_SEGCLASS(SLICES_SEG068,SLICES_CODE) +#define prevwsh_1c SEG_SEGCLASS(SLICES_SEG068,SLICES_CODE) +#define hdrcont_07 SEG_SEGCLASS(SLICES_SEG068,SLICES_CODE) +#define tphf_02 SEG_SEGCLASS(SLICES_SEG069,SLICES_CODE) +#define tphf_04 SEG_SEGCLASS(SLICES_SEG069,SLICES_CODE) +#define tphf_0d SEG_SEGCLASS(SLICES_SEG069,SLICES_CODE) +#define tphf_03 SEG_SEGCLASS(SLICES_SEG069,SLICES_CODE) +#define tphf_0c SEG_SEGCLASS(SLICES_SEG069,SLICES_CODE) +#define tphf_06 SEG_SEGCLASS(SLICES_SEG069,SLICES_CODE) +#define tphf_07 SEG_SEGCLASS(SLICES_SEG069,SLICES_CODE) +#define tphf_0a SEG_SEGCLASS(SLICES_SEG069,SLICES_CODE) +#define fupoor_05 SEG_SEGCLASS(SLICES_SEG070,SLICES_CODE) +#define cell2_20 SEG_SEGCLASS(SLICES_SEG070,SLICES_CODE) +#define dbcolect_03 SEG_SEGCLASS(SLICES_SEG070,SLICES_CODE) +#define dbcolect_1f SEG_SEGCLASS(SLICES_SEG070,SLICES_CODE) +#define collect_14 SEG_SEGCLASS(SLICES_SEG070,SLICES_CODE) +#define interpr4_15 SEG_SEGCLASS(SLICES_SEG071,SLICES_CODE) +#define compiler_0a SEG_SEGCLASS(SLICES_SEG071,SLICES_CODE) +#define interpr1_6e SEG_SEGCLASS(SLICES_SEG071,SLICES_CODE) +#define interpr1_6f SEG_SEGCLASS(SLICES_SEG071,SLICES_CODE) +#define table2_af SEG_SEGCLASS(SLICES_SEG071,SLICES_CODE) +#define column2_17 SEG_SEGCLASS(SLICES_SEG071,SLICES_CODE) +#define table1_11 SEG_SEGCLASS(SLICES_SEG071,SLICES_CODE) +#define document_18 SEG_SEGCLASS(SLICES_SEG071,SLICES_CODE) +#define column2_1e SEG_SEGCLASS(SLICES_SEG071,SLICES_CODE) +#define scmatrix_09 SEG_SEGCLASS(SLICES_SEG072,SLICES_CODE) +#define interpr3_04 SEG_SEGCLASS(SLICES_SEG072,SLICES_CODE) +#define interpr3_0c SEG_SEGCLASS(SLICES_SEG072,SLICES_CODE) +#define undodat_31 SEG_SEGCLASS(SLICES_SEG072,SLICES_CODE) +#define undodat_3f SEG_SEGCLASS(SLICES_SEG073,SLICES_CODE) +#define undodat_54 SEG_SEGCLASS(SLICES_SEG073,SLICES_CODE) +#define attrdlg_01 SEG_SEGCLASS(SLICES_SEG073,SLICES_CODE) +#define attrdlg_02 SEG_SEGCLASS(SLICES_SEG073,SLICES_CODE) +#define attrdlg_03 SEG_SEGCLASS(SLICES_SEG073,SLICES_CODE) +#define drawview_18 SEG_SEGCLASS(SLICES_SEG073,SLICES_CODE) +#define undoblk3_26 SEG_SEGCLASS(SLICES_SEG073,SLICES_CODE) +#define gridwin_24 SEG_SEGCLASS(SLICES_SEG073,SLICES_CODE) +#define fupoor_03 SEG_SEGCLASS(SLICES_SEG073,SLICES_CODE) +#define fupoor_04 SEG_SEGCLASS(SLICES_SEG073,SLICES_CODE) +#define fudraw_07 SEG_SEGCLASS(SLICES_SEG073,SLICES_CODE) +#define documen3_1e SEG_SEGCLASS(SLICES_SEG073,SLICES_CODE) +#define table3_7a SEG_SEGCLASS(SLICES_SEG073,SLICES_CODE) +#define document_35 SEG_SEGCLASS(SLICES_SEG074,SLICES_CODE) +#define document_76 SEG_SEGCLASS(SLICES_SEG074,SLICES_CODE) +#define table2_4d SEG_SEGCLASS(SLICES_SEG074,SLICES_CODE) +#define column_0c SEG_SEGCLASS(SLICES_SEG074,SLICES_CODE) +#define attarray_0c SEG_SEGCLASS(SLICES_SEG074,SLICES_CODE) +#define attarray_0b SEG_SEGCLASS(SLICES_SEG074,SLICES_CODE) +#define attarray_0a SEG_SEGCLASS(SLICES_SEG074,SLICES_CODE) +#define global2_02 SEG_SEGCLASS(SLICES_SEG075,SLICES_CODE) +#define dbcolect_12 SEG_SEGCLASS(SLICES_SEG075,SLICES_CODE) +#define dbcolect_13 SEG_SEGCLASS(SLICES_SEG075,SLICES_CODE) +#define interpr4_2d SEG_SEGCLASS(SLICES_SEG076,SLICES_CODE) +#define interpr3_23 SEG_SEGCLASS(SLICES_SEG076,SLICES_CODE) +#define interpr3_18 SEG_SEGCLASS(SLICES_SEG076,SLICES_CODE) +#define interpr3_22 SEG_SEGCLASS(SLICES_SEG076,SLICES_CODE) +#define interpr3_26 SEG_SEGCLASS(SLICES_SEG077,SLICES_CODE) +#define interpr3_2f SEG_SEGCLASS(SLICES_SEG077,SLICES_CODE) +#define interpr3_30 SEG_SEGCLASS(SLICES_SEG078,SLICES_CODE) +#define interpr3_4b SEG_SEGCLASS(SLICES_SEG079,SLICES_CODE) +#define impop_37 SEG_SEGCLASS(SLICES_SEG080,SLICES_CODE) +#define colrowst_0e SEG_SEGCLASS(SLICES_SEG080,SLICES_CODE) +#define excform_0e SEG_SEGCLASS(SLICES_SEG080,SLICES_CODE) +#define excform_0f SEG_SEGCLASS(SLICES_SEG080,SLICES_CODE) +#define appmain_08 SEG_SEGCLASS(SELDOM_SEG000,SELDOM_CODE) +#define inputwin_2a SEG_SEGCLASS(SELDOM_SEG000,SELDOM_CODE) +#define inputwin_05 SEG_SEGCLASS(SELDOM_SEG000,SELDOM_CODE) +#define appmain_0f SEG_SEGCLASS(SELDOM_SEG000,SELDOM_CODE) +#define inputhdl_13 SEG_SEGCLASS(SELDOM_SEG000,SELDOM_CODE) +#define inputhdl_0a SEG_SEGCLASS(SELDOM_SEG000,SELDOM_CODE) +#define inputwin_03 SEG_SEGCLASS(SELDOM_SEG000,SELDOM_CODE) +#define viewfun2_8a SEG_SEGCLASS(SELDOM_SEG000,SELDOM_CODE) +#define document_4a SEG_SEGCLASS(SELDOM_SEG000,SELDOM_CODE) +#define tabview4_04 SEG_SEGCLASS(SELDOM_SEG000,SELDOM_CODE) +#define tabview4_03 SEG_SEGCLASS(SELDOM_SEG000,SELDOM_CODE) +#define appmain3_06 SEG_SEGCLASS(SELDOM_SEG000,SELDOM_CODE) +#define inputhdl_0e SEG_SEGCLASS(SELDOM_SEG000,SELDOM_CODE) +#define viewutil_03 SEG_SEGCLASS(SELDOM_SEG000,SELDOM_CODE) +#define viewfun2_88 SEG_SEGCLASS(SELDOM_SEG000,SELDOM_CODE) +#define inputwin_13 SEG_SEGCLASS(SELDOM_SEG000,SELDOM_CODE) +#define appmain_0e SEG_SEGCLASS(SELDOM_SEG001,SELDOM_CODE) +#define inputhdl_12 SEG_SEGCLASS(SELDOM_SEG001,SELDOM_CODE) +#define docsh_05 SEG_SEGCLASS(SELDOM_SEG001,SELDOM_CODE) +#define appmain6_04 SEG_SEGCLASS(SELDOM_SEG001,SELDOM_CODE) +#define appmain7_07 SEG_SEGCLASS(SELDOM_SEG002,SELDOM_CODE) +#define global_0c SEG_SEGCLASS(SELDOM_SEG002,SELDOM_CODE) +#define table4_01 SEG_SEGCLASS(SELDOM_SEG002,SELDOM_CODE) +#define table4_03 SEG_SEGCLASS(SELDOM_SEG002,SELDOM_CODE) +#define column_16 SEG_SEGCLASS(SELDOM_SEG002,SELDOM_CODE) +#define userlist_09 SEG_SEGCLASS(SELDOM_SEG002,SELDOM_CODE) +#define collect_09 SEG_SEGCLASS(SELDOM_SEG002,SELDOM_CODE) +#define userlist_01 SEG_SEGCLASS(SELDOM_SEG002,SELDOM_CODE) +#define userlist_13 SEG_SEGCLASS(SELDOM_SEG002,SELDOM_CODE) +#define userlist_05 SEG_SEGCLASS(SELDOM_SEG002,SELDOM_CODE) +#define userlist_0a SEG_SEGCLASS(SELDOM_SEG002,SELDOM_CODE) +#define userlist_04 SEG_SEGCLASS(SELDOM_SEG002,SELDOM_CODE) +#define userlist_06 SEG_SEGCLASS(SELDOM_SEG002,SELDOM_CODE) +#define inputwin_1f SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define inputhdl_2a SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define docsh4_0c SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define docsh4_10 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tphf_05 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tphfedit_02 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tphfedit_05 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tptable_02 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tptable_04 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tptable_01 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tptable_05 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tptable_08 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tptable_07 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tptable_0e SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tptable_06 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tptable_0c SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tptable_0d SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tptable_0b SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tptable_0a SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tphfedit_06 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tphfedit_0c SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tphfedit_09 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tphfedit_23 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tphfedit_15 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tphfedit_01 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tphfedit_08 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tphfedit_16 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tphfedit_12 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tphfedit_19 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tphfedit_0a SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tphfedit_26 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define prevwsh_20 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tphfedit_17 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tphfedit_0b SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tphfedit_10 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tphfedit_11 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tphfedit_13 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tphfedit_14 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tphfedit_24 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tphfedit_25 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE) +#define tabview5_0e SEG_SEGCLASS(SELDOM_SEG004,SELDOM_CODE) +#define fumark_04 SEG_SEGCLASS(SELDOM_SEG004,SELDOM_CODE) +#define fumark_0b SEG_SEGCLASS(SELDOM_SEG004,SELDOM_CODE) +#define tabview_6a SEG_SEGCLASS(SELDOM_SEG004,SELDOM_CODE) +#define gridwin_27 SEG_SEGCLASS(SELDOM_SEG004,SELDOM_CODE) +#define fumark_09 SEG_SEGCLASS(SELDOM_SEG004,SELDOM_CODE) +#define viewdata_53 SEG_SEGCLASS(SELDOM_SEG004,SELDOM_CODE) +#define uiitems_17 SEG_SEGCLASS(SELDOM_SEG005,SELDOM_CODE) +#define uiitems_1a SEG_SEGCLASS(SELDOM_SEG005,SELDOM_CODE) +#define global2_08 SEG_SEGCLASS(SELDOM_SEG005,SELDOM_CODE) +#define uiitems_24 SEG_SEGCLASS(SELDOM_SEG005,SELDOM_CODE) +#define uiitems_27 SEG_SEGCLASS(SELDOM_SEG005,SELDOM_CODE) +#define global2_1a SEG_SEGCLASS(SELDOM_SEG005,SELDOM_CODE) +#define uiitems_39 SEG_SEGCLASS(SELDOM_SEG006,SELDOM_CODE) +#define uiitems_3d SEG_SEGCLASS(SELDOM_SEG006,SELDOM_CODE) +#define global2_28 SEG_SEGCLASS(SELDOM_SEG006,SELDOM_CODE) +#define global2_33 SEG_SEGCLASS(SELDOM_SEG006,SELDOM_CODE) +#define global2_35 SEG_SEGCLASS(SELDOM_SEG006,SELDOM_CODE) +#define global2_34 SEG_SEGCLASS(SELDOM_SEG006,SELDOM_CODE) +#define global2_32 SEG_SEGCLASS(SELDOM_SEG006,SELDOM_CODE) +#define tabvwshc_02 SEG_SEGCLASS(SELDOM_SEG007,SELDOM_CODE) +#define tabview_08 SEG_SEGCLASS(SELDOM_SEG007,SELDOM_CODE) +#define tabview2_0c SEG_SEGCLASS(SELDOM_SEG007,SELDOM_CODE) +#define tabview_6e SEG_SEGCLASS(SELDOM_SEG007,SELDOM_CODE) +#define viewdata_51 SEG_SEGCLASS(SELDOM_SEG007,SELDOM_CODE) +#define drawsh2_06 SEG_SEGCLASS(SELDOM_SEG007,SELDOM_CODE) +#define gridwin_35 SEG_SEGCLASS(SELDOM_SEG007,SELDOM_CODE) +#define tabview3_5d SEG_SEGCLASS(SELDOM_SEG008,SELDOM_CODE) +#define tabview3_5e SEG_SEGCLASS(SELDOM_SEG008,SELDOM_CODE) +#define dbfunc_0d SEG_SEGCLASS(SELDOM_SEG008,SELDOM_CODE) +#define tabview4_09 SEG_SEGCLASS(SELDOM_SEG008,SELDOM_CODE) +#define colrowba_13 SEG_SEGCLASS(SELDOM_SEG008,SELDOM_CODE) +#define docfunc_01 SEG_SEGCLASS(SELDOM_SEG009,SELDOM_CODE) +#define fuconrec_05 SEG_SEGCLASS(SELDOM_SEG009,SELDOM_CODE) +#define fuconstr_05 SEG_SEGCLASS(SELDOM_SEG009,SELDOM_CODE) +#define fuconstr_09 SEG_SEGCLASS(SELDOM_SEG009,SELDOM_CODE) +#define fuins1_01 SEG_SEGCLASS(SELDOM_SEG009,SELDOM_CODE) +#define fuins1_09 SEG_SEGCLASS(SELDOM_SEG009,SELDOM_CODE) +#define tabvwshb_03 SEG_SEGCLASS(SELDOM_SEG009,SELDOM_CODE) +#define tabview5_09 SEG_SEGCLASS(SELDOM_SEG009,SELDOM_CODE) +#define fuins1_02 SEG_SEGCLASS(SELDOM_SEG009,SELDOM_CODE) +#define fuins1_0a SEG_SEGCLASS(SELDOM_SEG009,SELDOM_CODE) +#define tabview_68 SEG_SEGCLASS(SELDOM_SEG009,SELDOM_CODE) +#define preview_06 SEG_SEGCLASS(SELDOM_SEG010,SELDOM_CODE) +#define gridwin_02 SEG_SEGCLASS(SELDOM_SEG010,SELDOM_CODE) +#define colrowba_06 SEG_SEGCLASS(SELDOM_SEG010,SELDOM_CODE) +#define undoblk2_2b SEG_SEGCLASS(SELDOM_SEG010,SELDOM_CODE) +#define output_11 SEG_SEGCLASS(SELDOM_SEG010,SELDOM_CODE) +#define undoolk_03 SEG_SEGCLASS(SELDOM_SEG011,SELDOM_CODE) +#define undoblk2_2c SEG_SEGCLASS(SELDOM_SEG011,SELDOM_CODE) +#define undobase_02 SEG_SEGCLASS(SELDOM_SEG011,SELDOM_CODE) +#define tbxalign_01 SEG_SEGCLASS(SELDOM_SEG011,SELDOM_CODE) +#define imoptdlg_0a SEG_SEGCLASS(SELDOM_SEG011,SELDOM_CODE) +#define drawsh_09 SEG_SEGCLASS(SELDOM_SEG011,SELDOM_CODE) +#define fusel_08 SEG_SEGCLASS(SELDOM_SEG011,SELDOM_CODE) +#define fuconrec_03 SEG_SEGCLASS(SELDOM_SEG011,SELDOM_CODE) +#define fuconstr_03 SEG_SEGCLASS(SELDOM_SEG011,SELDOM_CODE) +#define fuconrec_04 SEG_SEGCLASS(SELDOM_SEG012,SELDOM_CODE) +#define fuconstr_04 SEG_SEGCLASS(SELDOM_SEG012,SELDOM_CODE) +#define pvlaydlg_01 SEG_SEGCLASS(SELDOM_SEG012,SELDOM_CODE) +#define pvlaydlg_03 SEG_SEGCLASS(SELDOM_SEG012,SELDOM_CODE) +#define pvlaydlg_06 SEG_SEGCLASS(SELDOM_SEG012,SELDOM_CODE) +#define fieldwnd_03 SEG_SEGCLASS(SELDOM_SEG012,SELDOM_CODE) +#define pvlaydlg_07 SEG_SEGCLASS(SELDOM_SEG012,SELDOM_CODE) +#define fieldwnd_04 SEG_SEGCLASS(SELDOM_SEG012,SELDOM_CODE) +#define fieldwnd_11 SEG_SEGCLASS(SELDOM_SEG012,SELDOM_CODE) +#define pvlaydlg_14 SEG_SEGCLASS(SELDOM_SEG012,SELDOM_CODE) +#define pvlaydlg_1d SEG_SEGCLASS(SELDOM_SEG012,SELDOM_CODE) +#define fieldwnd_0b SEG_SEGCLASS(SELDOM_SEG012,SELDOM_CODE) +#define tphf_08 SEG_SEGCLASS(SELDOM_SEG013,SELDOM_CODE) +#define tphf_09 SEG_SEGCLASS(SELDOM_SEG013,SELDOM_CODE) +#define tbxdraw_04 SEG_SEGCLASS(SELDOM_SEG013,SELDOM_CODE) +#define fudraw_06 SEG_SEGCLASS(SELDOM_SEG013,SELDOM_CODE) +#define fuconstr_07 SEG_SEGCLASS(SELDOM_SEG013,SELDOM_CODE) +#define fuconrec_07 SEG_SEGCLASS(SELDOM_SEG013,SELDOM_CODE) +#define fusel_07 SEG_SEGCLASS(SELDOM_SEG013,SELDOM_CODE) +#define fieldwnd_01 SEG_SEGCLASS(SELDOM_SEG013,SELDOM_CODE) +#define attrib_3b SEG_SEGCLASS(SELDOM_SEG014,SELDOM_CODE) +#define documen7_0b SEG_SEGCLASS(SELDOM_SEG014,SELDOM_CODE) +#define documen7_11 SEG_SEGCLASS(SELDOM_SEG014,SELDOM_CODE) +#define documen7_10 SEG_SEGCLASS(SELDOM_SEG014,SELDOM_CODE) +#define documen7_0f SEG_SEGCLASS(SELDOM_SEG014,SELDOM_CODE) +#define cell_3a SEG_SEGCLASS(SELDOM_SEG014,SELDOM_CODE) +#define documen7_12 SEG_SEGCLASS(SELDOM_SEG014,SELDOM_CODE) +#define docpool_06 SEG_SEGCLASS(SELDOM_SEG015,SELDOM_CODE) +#define cell_0a SEG_SEGCLASS(SELDOM_SEG015,SELDOM_CODE) +#define cell_12 SEG_SEGCLASS(SELDOM_SEG015,SELDOM_CODE) +#define compiler_05 SEG_SEGCLASS(SELDOM_SEG015,SELDOM_CODE) +#define compiler_15 SEG_SEGCLASS(SELDOM_SEG015,SELDOM_CODE) +#define compiler_14 SEG_SEGCLASS(SELDOM_SEG015,SELDOM_CODE) +#define compiler_0b SEG_SEGCLASS(SELDOM_SEG015,SELDOM_CODE) +#define compiler_0c SEG_SEGCLASS(SELDOM_SEG015,SELDOM_CODE) +#define cell_26 SEG_SEGCLASS(SELDOM_SEG015,SELDOM_CODE) +#define compiler_0d SEG_SEGCLASS(SELDOM_SEG015,SELDOM_CODE) +#define compiler_0e SEG_SEGCLASS(SELDOM_SEG015,SELDOM_CODE) +#define compiler_13 SEG_SEGCLASS(SELDOM_SEG015,SELDOM_CODE) +#define cell2_21 SEG_SEGCLASS(SELDOM_SEG016,SELDOM_CODE) +#define rangeutl_07 SEG_SEGCLASS(SELDOM_SEG016,SELDOM_CODE) +#define autoform_27 SEG_SEGCLASS(SELDOM_SEG016,SELDOM_CODE) +#define autoform_2c SEG_SEGCLASS(SELDOM_SEG016,SELDOM_CODE) +#define autoform_2e SEG_SEGCLASS(SELDOM_SEG016,SELDOM_CODE) +#define zforauto_05 SEG_SEGCLASS(SELDOM_SEG016,SELDOM_CODE) +#define autoform_2f SEG_SEGCLASS(SELDOM_SEG016,SELDOM_CODE) +#define autoform_29 SEG_SEGCLASS(SELDOM_SEG017,SELDOM_CODE) +#define autoform_2b SEG_SEGCLASS(SELDOM_SEG017,SELDOM_CODE) +#define drwlayer_08 SEG_SEGCLASS(SELDOM_SEG017,SELDOM_CODE) +#define drwlayer_09 SEG_SEGCLASS(SELDOM_SEG017,SELDOM_CODE) +#define interpr1_64 SEG_SEGCLASS(SELDOM_SEG017,SELDOM_CODE) +#define interpr1_a3 SEG_SEGCLASS(SELDOM_SEG017,SELDOM_CODE) +#define table4_04 SEG_SEGCLASS(SELDOM_SEG018,SELDOM_CODE) +#define subtotal_08 SEG_SEGCLASS(SELDOM_SEG018,SELDOM_CODE) +#define subtotal_09 SEG_SEGCLASS(SELDOM_SEG019,SELDOM_CODE) +#define impop_0d SEG_SEGCLASS(SELDOM_SEG019,SELDOM_CODE) +#define spstring_07 SEG_SEGCLASS(SELDOM_SEG019,SELDOM_CODE) +#define impop_0e SEG_SEGCLASS(SELDOM_SEG019,SELDOM_CODE) +#define namebuff_0f SEG_SEGCLASS(SELDOM_SEG019,SELDOM_CODE) +#define rangenam_02 SEG_SEGCLASS(SELDOM_SEG019,SELDOM_CODE) +#define impop_3a SEG_SEGCLASS(SELDOM_SEG020,SELDOM_CODE) +#define impop_4f SEG_SEGCLASS(SELDOM_SEG020,SELDOM_CODE) +#define excform_10 SEG_SEGCLASS(SELDOM_SEG020,SELDOM_CODE) +#define tabvwsh8_02 SEG_SEGCLASS(SELDOM_SEG021,SELDOM_CODE) +#define tabvwsh8_06 SEG_SEGCLASS(SELDOM_SEG021,SELDOM_CODE) +#define tabvwshf_01 SEG_SEGCLASS(SELDOM_SEG022,SELDOM_CODE) +#define document_0d SEG_SEGCLASS(SELDOM_SEG022,SELDOM_CODE) +#define document_0c SEG_SEGCLASS(SELDOM_SEG022,SELDOM_CODE) +#define document_0e SEG_SEGCLASS(SELDOM_SEG022,SELDOM_CODE) +#define viewfun2_27 SEG_SEGCLASS(SELDOM_SEG022,SELDOM_CODE) +#define viewdata_09 SEG_SEGCLASS(SELDOM_SEG022,SELDOM_CODE) +#define docsh3_14 SEG_SEGCLASS(SELDOM_SEG022,SELDOM_CODE) +#define tabcont_0c SEG_SEGCLASS(SELDOM_SEG022,SELDOM_CODE) +#define strindlg_01 SEG_SEGCLASS(SELDOM_SEG022,SELDOM_CODE) +#define strindlg_02 SEG_SEGCLASS(SELDOM_SEG022,SELDOM_CODE) +#define strindlg_03 SEG_SEGCLASS(SELDOM_SEG022,SELDOM_CODE) +#define undotab_01 SEG_SEGCLASS(SELDOM_SEG022,SELDOM_CODE) +#define uiitems_1e SEG_SEGCLASS(SELDOM_SEG023,SELDOM_CODE) +#define uiitems_21 SEG_SEGCLASS(SELDOM_SEG023,SELDOM_CODE) +#define filtdlg_0b SEG_SEGCLASS(SELDOM_SEG023,SELDOM_CODE) +#define filtdlg_04 SEG_SEGCLASS(SELDOM_SEG023,SELDOM_CODE) +#define anyrefdg_04 SEG_SEGCLASS(SELDOM_SEG023,SELDOM_CODE) +#define filtdlg_0a SEG_SEGCLASS(SELDOM_SEG023,SELDOM_CODE) +#define uiitems_1d SEG_SEGCLASS(SELDOM_SEG023,SELDOM_CODE) +#define global2_12 SEG_SEGCLASS(SELDOM_SEG023,SELDOM_CODE) +#define tabview_64 SEG_SEGCLASS(SELDOM_SEG024,SELDOM_CODE) +#define viewfunc_37 SEG_SEGCLASS(SELDOM_SEG024,SELDOM_CODE) +#define document_6f SEG_SEGCLASS(SELDOM_SEG024,SELDOM_CODE) +#define table2_8c SEG_SEGCLASS(SELDOM_SEG024,SELDOM_CODE) +#define column_68 SEG_SEGCLASS(SELDOM_SEG024,SELDOM_CODE) +#define attarray_28 SEG_SEGCLASS(SELDOM_SEG024,SELDOM_CODE) +#define viewfunc_40 SEG_SEGCLASS(SELDOM_SEG025,SELDOM_CODE) +#define undotab_02 SEG_SEGCLASS(SELDOM_SEG025,SELDOM_CODE) +#define undotab_03 SEG_SEGCLASS(SELDOM_SEG025,SELDOM_CODE) +#define undotab_1f SEG_SEGCLASS(SELDOM_SEG025,SELDOM_CODE) +#define tbxctl_03 SEG_SEGCLASS(SELDOM_SEG025,SELDOM_CODE) +#define tbxctl_04 SEG_SEGCLASS(SELDOM_SEG025,SELDOM_CODE) +#define tbxdraw_01 SEG_SEGCLASS(SELDOM_SEG025,SELDOM_CODE) +#define fumark_07 SEG_SEGCLASS(SELDOM_SEG026,SELDOM_CODE) +#define fumark_08 SEG_SEGCLASS(SELDOM_SEG026,SELDOM_CODE) +#define fuconrec_01 SEG_SEGCLASS(SELDOM_SEG026,SELDOM_CODE) +#define fuconrec_02 SEG_SEGCLASS(SELDOM_SEG026,SELDOM_CODE) +#define fuconrec_08 SEG_SEGCLASS(SELDOM_SEG026,SELDOM_CODE) +#define fuconstr_08 SEG_SEGCLASS(SELDOM_SEG026,SELDOM_CODE) +#define drawsh2_01 SEG_SEGCLASS(SELDOM_SEG026,SELDOM_CODE) +#define filtdlg_08 SEG_SEGCLASS(SELDOM_SEG026,SELDOM_CODE) +#define filtdlg_03 SEG_SEGCLASS(SELDOM_SEG026,SELDOM_CODE) +#define filtdlg_01 SEG_SEGCLASS(SELDOM_SEG026,SELDOM_CODE) +#define filtdlg_0e SEG_SEGCLASS(SELDOM_SEG026,SELDOM_CODE) +#define filtdlg_07 SEG_SEGCLASS(SELDOM_SEG026,SELDOM_CODE) +#define filtdlg_09 SEG_SEGCLASS(SELDOM_SEG026,SELDOM_CODE) +#define foptmgr_01 SEG_SEGCLASS(SELDOM_SEG026,SELDOM_CODE) +#define foptmgr_03 SEG_SEGCLASS(SELDOM_SEG026,SELDOM_CODE) +#define tbxdraw_02 SEG_SEGCLASS(SELDOM_SEG027,SELDOM_CODE) +#define tbxdraw_03 SEG_SEGCLASS(SELDOM_SEG027,SELDOM_CODE) +#define fuconstr_01 SEG_SEGCLASS(SELDOM_SEG027,SELDOM_CODE) +#define fuconstr_02 SEG_SEGCLASS(SELDOM_SEG027,SELDOM_CODE) +#define fuconstr_0a SEG_SEGCLASS(SELDOM_SEG027,SELDOM_CODE) +#define rangenam_08 SEG_SEGCLASS(SELDOM_SEG027,SELDOM_CODE) +#define cell_3b SEG_SEGCLASS(SELDOM_SEG027,SELDOM_CODE) +#define interpr4_1b SEG_SEGCLASS(SELDOM_SEG027,SELDOM_CODE) +#define interpr1_8e SEG_SEGCLASS(SELDOM_SEG027,SELDOM_CODE) +#define interpr1_8f SEG_SEGCLASS(SELDOM_SEG027,SELDOM_CODE) +#define interpr4_27 SEG_SEGCLASS(SELDOM_SEG028,SELDOM_CODE) +#define interpr1_38 SEG_SEGCLASS(SELDOM_SEG028,SELDOM_CODE) +#define interpr1_39 SEG_SEGCLASS(SELDOM_SEG028,SELDOM_CODE) +#define interpr1_3c SEG_SEGCLASS(SELDOM_SEG028,SELDOM_CODE) +#define interpr1_3d SEG_SEGCLASS(SELDOM_SEG029,SELDOM_CODE) +#define interpr1_3e SEG_SEGCLASS(SELDOM_SEG029,SELDOM_CODE) +#define interpr1_81 SEG_SEGCLASS(SELDOM_SEG029,SELDOM_CODE) +#define interpr1_82 SEG_SEGCLASS(SELDOM_SEG029,SELDOM_CODE) +#define interpr1_83 SEG_SEGCLASS(SELDOM_SEG029,SELDOM_CODE) +#define interpr1_87 SEG_SEGCLASS(SELDOM_SEG029,SELDOM_CODE) +#define interpr1_88 SEG_SEGCLASS(SELDOM_SEG029,SELDOM_CODE) +#define interpr1_b8 SEG_SEGCLASS(SELDOM_SEG029,SELDOM_CODE) +#define interpr1_89 SEG_SEGCLASS(SELDOM_SEG029,SELDOM_CODE) +#define interpr1_8a SEG_SEGCLASS(SELDOM_SEG029,SELDOM_CODE) +#define interpr1_8b SEG_SEGCLASS(SELDOM_SEG029,SELDOM_CODE) +#define interpr3_2b SEG_SEGCLASS(SELDOM_SEG030,SELDOM_CODE) +#define interpr3_37 SEG_SEGCLASS(SELDOM_SEG030,SELDOM_CODE) +#define interpr3_3c SEG_SEGCLASS(SELDOM_SEG030,SELDOM_CODE) +#define interpr3_3e SEG_SEGCLASS(SELDOM_SEG031,SELDOM_CODE) +#define interpr3_3f SEG_SEGCLASS(SELDOM_SEG031,SELDOM_CODE) +#define interpr3_56 SEG_SEGCLASS(SELDOM_SEG032,SELDOM_CODE) +#define impop_15 SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE) +#define impop_34 SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE) +#define tokstack_0b SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE) +#define tabvwsh4_0a SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE) +#define tabvwsh4_22 SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE) +#define dbdocfun_01 SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE) +#define dbdocfun_02 SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE) +#define document_1d SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE) +#define dbcolect_07 SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE) +#define documen4_02 SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE) +#define documen2_10 SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE) +#define table2_91 SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE) +#define column3_02 SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE) +#define documen4_0a SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE) +#define table4_12 SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE) +#define column2_28 SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE) +#define documen4_0b SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE) +#define table1_2d SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE) +#define undodat_3d SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE) +#define viewdata_2a SEG_SEGCLASS(SELDOM_SEG034,SELDOM_CODE) +#define undodat_32 SEG_SEGCLASS(SELDOM_SEG034,SELDOM_CODE) +#define undodat_3e SEG_SEGCLASS(SELDOM_SEG034,SELDOM_CODE) +#define dbfunc_0c SEG_SEGCLASS(SELDOM_SEG034,SELDOM_CODE) +#define attrib_31 SEG_SEGCLASS(SELDOM_SEG034,SELDOM_CODE) +#define document_9b SEG_SEGCLASS(SELDOM_SEG034,SELDOM_CODE) +#define table2_9c SEG_SEGCLASS(SELDOM_SEG034,SELDOM_CODE) +#define undoblk3_3e SEG_SEGCLASS(SELDOM_SEG035,SELDOM_CODE) +#define undocell_01 SEG_SEGCLASS(SELDOM_SEG035,SELDOM_CODE) +#define undocell_02 SEG_SEGCLASS(SELDOM_SEG035,SELDOM_CODE) +#define undocell_03 SEG_SEGCLASS(SELDOM_SEG035,SELDOM_CODE) +#define undocell_19 SEG_SEGCLASS(SELDOM_SEG035,SELDOM_CODE) +#define tabsplit_03 SEG_SEGCLASS(SELDOM_SEG035,SELDOM_CODE) +#define select_12 SEG_SEGCLASS(SELDOM_SEG035,SELDOM_CODE) +#define select_15 SEG_SEGCLASS(SELDOM_SEG035,SELDOM_CODE) +#define select_17 SEG_SEGCLASS(SELDOM_SEG036,SELDOM_CODE) +#define gridwin4_04 SEG_SEGCLASS(SELDOM_SEG036,SELDOM_CODE) +#define hdrcont_0c SEG_SEGCLASS(SELDOM_SEG037,SELDOM_CODE) +#define fumark_01 SEG_SEGCLASS(SELDOM_SEG037,SELDOM_CODE) +#define fumark_03 SEG_SEGCLASS(SELDOM_SEG037,SELDOM_CODE) +#define drawsh2_02 SEG_SEGCLASS(SELDOM_SEG037,SELDOM_CODE) +#define filtdlg_02 SEG_SEGCLASS(SELDOM_SEG037,SELDOM_CODE) +#define foptmgr_02 SEG_SEGCLASS(SELDOM_SEG037,SELDOM_CODE) +#define filtdlg_11 SEG_SEGCLASS(SELDOM_SEG038,SELDOM_CODE) +#define filtdlg_12 SEG_SEGCLASS(SELDOM_SEG038,SELDOM_CODE) +#define anyrefdg_02 SEG_SEGCLASS(SELDOM_SEG038,SELDOM_CODE) +#define global_02 SEG_SEGCLASS(SELDOM_SEG038,SELDOM_CODE) +#define interpr1_8d SEG_SEGCLASS(SELDOM_SEG038,SELDOM_CODE) +#define attrib_3c SEG_SEGCLASS(SELDOM_SEG039,SELDOM_CODE) +#define attrib_3d SEG_SEGCLASS(SELDOM_SEG039,SELDOM_CODE) +#define attrib_79 SEG_SEGCLASS(SELDOM_SEG039,SELDOM_CODE) +#define attrib_80 SEG_SEGCLASS(SELDOM_SEG039,SELDOM_CODE) +#define attrib_98 SEG_SEGCLASS(SELDOM_SEG039,SELDOM_CODE) +#define documen8_0e SEG_SEGCLASS(SELDOM_SEG039,SELDOM_CODE) +#define document_40 SEG_SEGCLASS(SELDOM_SEG040,SELDOM_CODE) +#define impop_0f SEG_SEGCLASS(SELDOM_SEG040,SELDOM_CODE) +#define global2_42 SEG_SEGCLASS(SELDOM_SEG040,SELDOM_CODE) +#define global2_46 SEG_SEGCLASS(SELDOM_SEG040,SELDOM_CODE) +#define table2_8a SEG_SEGCLASS(SELDOM_SEG040,SELDOM_CODE) +#define column3_10 SEG_SEGCLASS(SELDOM_SEG040,SELDOM_CODE) +#define cell_04 SEG_SEGCLASS(SELDOM_SEG040,SELDOM_CODE) +#define global2_44 SEG_SEGCLASS(SELDOM_SEG040,SELDOM_CODE) +#define global2_45 SEG_SEGCLASS(SELDOM_SEG040,SELDOM_CODE) +#define document_5a SEG_SEGCLASS(SELDOM_SEG041,SELDOM_CODE) +#define table2_5d SEG_SEGCLASS(SELDOM_SEG041,SELDOM_CODE) +#define document_5b SEG_SEGCLASS(SELDOM_SEG041,SELDOM_CODE) +#define table2_5e SEG_SEGCLASS(SELDOM_SEG041,SELDOM_CODE) +#define document_66 SEG_SEGCLASS(SELDOM_SEG041,SELDOM_CODE) +#define table2_4f SEG_SEGCLASS(SELDOM_SEG041,SELDOM_CODE) +#define column_12 SEG_SEGCLASS(SELDOM_SEG041,SELDOM_CODE) +#define document_9f SEG_SEGCLASS(SELDOM_SEG041,SELDOM_CODE) +#define excobj_01 SEG_SEGCLASS(SELDOM_SEG041,SELDOM_CODE) +#define document_a0 SEG_SEGCLASS(SELDOM_SEG041,SELDOM_CODE) +#define document_b6 SEG_SEGCLASS(SELDOM_SEG042,SELDOM_CODE) +#define table1_2e SEG_SEGCLASS(SELDOM_SEG042,SELDOM_CODE) +#define column3_04 SEG_SEGCLASS(SELDOM_SEG042,SELDOM_CODE) +#define patattr_03 SEG_SEGCLASS(SELDOM_SEG042,SELDOM_CODE) +#define global2_48 SEG_SEGCLASS(SELDOM_SEG042,SELDOM_CODE) +#define interpr1_8c SEG_SEGCLASS(SELDOM_SEG042,SELDOM_CODE) +#define rangenam_09 SEG_SEGCLASS(SELDOM_SEG043,SELDOM_CODE) +#define dbcolect_02 SEG_SEGCLASS(SELDOM_SEG043,SELDOM_CODE) +#define drwlayer_07 SEG_SEGCLASS(SELDOM_SEG044,SELDOM_CODE) +#define interpr4_1e SEG_SEGCLASS(SELDOM_SEG044,SELDOM_CODE) +#define interpr1_7b SEG_SEGCLASS(SELDOM_SEG044,SELDOM_CODE) +#define interpr1_2f SEG_SEGCLASS(SELDOM_SEG045,SELDOM_CODE) +#define interpr1_3f SEG_SEGCLASS(SELDOM_SEG045,SELDOM_CODE) +#define interpr1_40 SEG_SEGCLASS(SELDOM_SEG045,SELDOM_CODE) +#define interpr1_41 SEG_SEGCLASS(SELDOM_SEG045,SELDOM_CODE) +#define interpr1_44 SEG_SEGCLASS(SELDOM_SEG045,SELDOM_CODE) +#define interpr1_45 SEG_SEGCLASS(SELDOM_SEG045,SELDOM_CODE) +#define interpr1_47 SEG_SEGCLASS(SELDOM_SEG045,SELDOM_CODE) +#define interpr1_49 SEG_SEGCLASS(SELDOM_SEG045,SELDOM_CODE) +#define interpr1_4a SEG_SEGCLASS(SELDOM_SEG045,SELDOM_CODE) +#define interpr1_4d SEG_SEGCLASS(SELDOM_SEG045,SELDOM_CODE) +#define interpr1_4e SEG_SEGCLASS(SELDOM_SEG045,SELDOM_CODE) +#define interpr1_50 SEG_SEGCLASS(SELDOM_SEG045,SELDOM_CODE) +#define interpr1_51 SEG_SEGCLASS(SELDOM_SEG045,SELDOM_CODE) +#define interpr1_52 SEG_SEGCLASS(SELDOM_SEG046,SELDOM_CODE) +#define interpr1_53 SEG_SEGCLASS(SELDOM_SEG046,SELDOM_CODE) +#define interpr1_54 SEG_SEGCLASS(SELDOM_SEG046,SELDOM_CODE) +#define interpr1_55 SEG_SEGCLASS(SELDOM_SEG046,SELDOM_CODE) +#define interpr1_60 SEG_SEGCLASS(SELDOM_SEG046,SELDOM_CODE) +#define interpr1_61 SEG_SEGCLASS(SELDOM_SEG046,SELDOM_CODE) +#define interpr1_62 SEG_SEGCLASS(SELDOM_SEG046,SELDOM_CODE) +#define interpr1_63 SEG_SEGCLASS(SELDOM_SEG046,SELDOM_CODE) +#define interpr1_65 SEG_SEGCLASS(SELDOM_SEG047,SELDOM_CODE) +#define interpr1_66 SEG_SEGCLASS(SELDOM_SEG047,SELDOM_CODE) +#define interpr1_67 SEG_SEGCLASS(SELDOM_SEG047,SELDOM_CODE) +#define interpr1_68 SEG_SEGCLASS(SELDOM_SEG047,SELDOM_CODE) +#define interpr1_69 SEG_SEGCLASS(SELDOM_SEG047,SELDOM_CODE) +#define interpr1_76 SEG_SEGCLASS(SELDOM_SEG047,SELDOM_CODE) +#define interpr1_77 SEG_SEGCLASS(SELDOM_SEG047,SELDOM_CODE) +#define interpr1_78 SEG_SEGCLASS(SELDOM_SEG048,SELDOM_CODE) +#define interpr1_79 SEG_SEGCLASS(SELDOM_SEG048,SELDOM_CODE) +#define interpr1_7a SEG_SEGCLASS(SELDOM_SEG049,SELDOM_CODE) +#define interpr1_7c SEG_SEGCLASS(SELDOM_SEG050,SELDOM_CODE) +#define interpr1_7e SEG_SEGCLASS(SELDOM_SEG051,SELDOM_CODE) +#define interpr1_91 SEG_SEGCLASS(SELDOM_SEG051,SELDOM_CODE) +#define interpr1_92 SEG_SEGCLASS(SELDOM_SEG051,SELDOM_CODE) +#define interpr1_93 SEG_SEGCLASS(SELDOM_SEG052,SELDOM_CODE) +#define interpr1_94 SEG_SEGCLASS(SELDOM_SEG052,SELDOM_CODE) +#define interpr1_95 SEG_SEGCLASS(SELDOM_SEG053,SELDOM_CODE) +#define interpr1_96 SEG_SEGCLASS(SELDOM_SEG053,SELDOM_CODE) +#define interpr1_98 SEG_SEGCLASS(SELDOM_SEG053,SELDOM_CODE) +#define interpr1_99 SEG_SEGCLASS(SELDOM_SEG053,SELDOM_CODE) +#define interpr1_9a SEG_SEGCLASS(SELDOM_SEG054,SELDOM_CODE) +#define interpr1_9b SEG_SEGCLASS(SELDOM_SEG054,SELDOM_CODE) +#define interpr1_9c SEG_SEGCLASS(SELDOM_SEG054,SELDOM_CODE) +#define interpr1_9d SEG_SEGCLASS(SELDOM_SEG054,SELDOM_CODE) +#define interpr1_9e SEG_SEGCLASS(SELDOM_SEG055,SELDOM_CODE) +#define interpr1_a4 SEG_SEGCLASS(SELDOM_SEG055,SELDOM_CODE) +#define interpr1_a5 SEG_SEGCLASS(SELDOM_SEG056,SELDOM_CODE) +#define interpr1_a9 SEG_SEGCLASS(SELDOM_SEG056,SELDOM_CODE) +#define interpr1_b6 SEG_SEGCLASS(SELDOM_SEG056,SELDOM_CODE) +#define interpr1_aa SEG_SEGCLASS(SELDOM_SEG056,SELDOM_CODE) +#define interpr1_af SEG_SEGCLASS(SELDOM_SEG057,SELDOM_CODE) +#define table2_7e SEG_SEGCLASS(SELDOM_SEG057,SELDOM_CODE) +#define interpr2_08 SEG_SEGCLASS(SELDOM_SEG057,SELDOM_CODE) +#define interpr2_09 SEG_SEGCLASS(SELDOM_SEG057,SELDOM_CODE) +#define interpr2_12 SEG_SEGCLASS(SELDOM_SEG057,SELDOM_CODE) +#define interpr2_14 SEG_SEGCLASS(SELDOM_SEG057,SELDOM_CODE) +#define interpr2_15 SEG_SEGCLASS(SELDOM_SEG057,SELDOM_CODE) +#define interpr2_16 SEG_SEGCLASS(SELDOM_SEG057,SELDOM_CODE) +#define interpr2_18 SEG_SEGCLASS(SELDOM_SEG058,SELDOM_CODE) +#define interpr2_1b SEG_SEGCLASS(SELDOM_SEG058,SELDOM_CODE) +#define interpr2_1c SEG_SEGCLASS(SELDOM_SEG058,SELDOM_CODE) +#define interpr2_1d SEG_SEGCLASS(SELDOM_SEG058,SELDOM_CODE) +#define interpr2_b4 SEG_SEGCLASS(SELDOM_SEG058,SELDOM_CODE) +#define interpr2_71 SEG_SEGCLASS(SELDOM_SEG058,SELDOM_CODE) +#define interpr2_4e SEG_SEGCLASS(SELDOM_SEG058,SELDOM_CODE) +#define interpr2_21 SEG_SEGCLASS(SELDOM_SEG059,SELDOM_CODE) +#define interpr2_22 SEG_SEGCLASS(SELDOM_SEG059,SELDOM_CODE) +#define interpr2_23 SEG_SEGCLASS(SELDOM_SEG059,SELDOM_CODE) +#define interpr2_27 SEG_SEGCLASS(SELDOM_SEG059,SELDOM_CODE) +#define interpr2_28 SEG_SEGCLASS(SELDOM_SEG059,SELDOM_CODE) +#define interpr2_3c SEG_SEGCLASS(SELDOM_SEG059,SELDOM_CODE) +#define interpr2_40 SEG_SEGCLASS(SELDOM_SEG060,SELDOM_CODE) +#define interpr2_49 SEG_SEGCLASS(SELDOM_SEG060,SELDOM_CODE) +#define interpr2_4a SEG_SEGCLASS(SELDOM_SEG061,SELDOM_CODE) +#define interpr2_4b SEG_SEGCLASS(SELDOM_SEG061,SELDOM_CODE) +#define interpr2_4c SEG_SEGCLASS(SELDOM_SEG062,SELDOM_CODE) +#define interpr2_4d SEG_SEGCLASS(SELDOM_SEG062,SELDOM_CODE) +#define interpr2_70 SEG_SEGCLASS(SELDOM_SEG062,SELDOM_CODE) +#define interpr2_72 SEG_SEGCLASS(SELDOM_SEG062,SELDOM_CODE) +#define interpr2_73 SEG_SEGCLASS(SELDOM_SEG062,SELDOM_CODE) +#define interpr2_74 SEG_SEGCLASS(SELDOM_SEG062,SELDOM_CODE) +#define interpr2_75 SEG_SEGCLASS(SELDOM_SEG063,SELDOM_CODE) +#define interpr2_af SEG_SEGCLASS(SELDOM_SEG063,SELDOM_CODE) +#define interpr2_b3 SEG_SEGCLASS(SELDOM_SEG063,SELDOM_CODE) +#define interpr5_4f SEG_SEGCLASS(SELDOM_SEG063,SELDOM_CODE) +#define interpr5_50 SEG_SEGCLASS(SELDOM_SEG063,SELDOM_CODE) +#define interpr5_64 SEG_SEGCLASS(SELDOM_SEG063,SELDOM_CODE) +#define interpr5_52 SEG_SEGCLASS(SELDOM_SEG064,SELDOM_CODE) +#define interpr5_b0 SEG_SEGCLASS(SELDOM_SEG064,SELDOM_CODE) +#define interpr5_66 SEG_SEGCLASS(SELDOM_SEG064,SELDOM_CODE) +#define interpr5_67 SEG_SEGCLASS(SELDOM_SEG064,SELDOM_CODE) +#define interpr5_68 SEG_SEGCLASS(SELDOM_SEG064,SELDOM_CODE) +#define interpr5_69 SEG_SEGCLASS(SELDOM_SEG064,SELDOM_CODE) +#define interpr5_6a SEG_SEGCLASS(SELDOM_SEG064,SELDOM_CODE) +#define interpr5_5f SEG_SEGCLASS(SELDOM_SEG065,SELDOM_CODE) +#define interpr5_78 SEG_SEGCLASS(SELDOM_SEG065,SELDOM_CODE) +#define interpr5_60 SEG_SEGCLASS(SELDOM_SEG065,SELDOM_CODE) +#define interpr5_6c SEG_SEGCLASS(SELDOM_SEG065,SELDOM_CODE) +#define interpr5_6e SEG_SEGCLASS(SELDOM_SEG066,SELDOM_CODE) +#define interpr5_6f SEG_SEGCLASS(SELDOM_SEG066,SELDOM_CODE) +#define interpr3_08 SEG_SEGCLASS(SELDOM_SEG066,SELDOM_CODE) +#define interpr3_0e SEG_SEGCLASS(SELDOM_SEG067,SELDOM_CODE) +#define interpr3_21 SEG_SEGCLASS(SELDOM_SEG067,SELDOM_CODE) +#define interpr3_24 SEG_SEGCLASS(SELDOM_SEG068,SELDOM_CODE) +#define interpr3_25 SEG_SEGCLASS(SELDOM_SEG069,SELDOM_CODE) +#define interpr3_2c SEG_SEGCLASS(SELDOM_SEG069,SELDOM_CODE) +#define interpr3_2d SEG_SEGCLASS(SELDOM_SEG069,SELDOM_CODE) +#define interpr3_38 SEG_SEGCLASS(SELDOM_SEG070,SELDOM_CODE) +#define interpr3_44 SEG_SEGCLASS(SELDOM_SEG070,SELDOM_CODE) +#define impop_30 SEG_SEGCLASS(SELDOM_SEG071,SELDOM_CODE) +#define colrowst_05 SEG_SEGCLASS(SELDOM_SEG071,SELDOM_CODE) +#define tokstack_0c SEG_SEGCLASS(SELDOM_SEG071,SELDOM_CODE) +#define tokstack_0f SEG_SEGCLASS(SELDOM_SEG071,SELDOM_CODE) +#define appmain_0c SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmain_24 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmain_25 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmain_2f SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmain_30 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmain_31 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmain_32 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmain_33 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmain_34 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmain_38 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmain_3a SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmain_51 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmain_52 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmain_5c SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define docsh_0a SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define docsh_0c SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define docsh_33 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define docsh_35 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define docsh_3e SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define docsh_42 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define docsh_43 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmain2_01 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmain2_02 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmain6_01 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmain6_06 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmain7_02 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmain7_04 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmain7_06 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmain7_09 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmain7_0b SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmain7_0d SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmain7_0f SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmain7_11 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define applink_05 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmain3_05 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmain3_07 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmain3_08 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmain3_09 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmain4_02 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmain4_03 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmain4_04 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmain4_05 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define msgpool_03 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define inputwin_10 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define inputwin_11 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define inputwin_12 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define inputwin_15 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define inputwin_1b SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define inputwin_1c SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define inputwin_24 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define inputwin_25 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define inputwin_27 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define inputhdl_09 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define inputhdl_1d SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define inputhdl_1e SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define inputhdl_1f SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define inputhdl_20 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmaina_01 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define appmaina_02 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define docsh4_03 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define docsh4_06 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define docsh4_07 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define docsh4_08 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE) +#define docsh4_09 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define docsh4_0a SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define docsh4_0b SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define docsh4_0e SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define docsh4_12 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwsh9_01 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwsh9_03 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwsh9_06 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwshh_01 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwshh_02 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwshh_03 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwshb_01 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwshb_02 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwshb_05 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwsh2_07 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwsh2_08 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwshd_05 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwshd_06 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwsh8_05 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwsh8_07 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwsh8_08 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwsh4_04 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwsh4_05 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwsh4_06 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwsh4_08 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwsh4_0e SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwsh4_0f SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwsh4_10 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwsh4_17 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwsh4_18 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwsh4_1c SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwsh4_20 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwsh4_21 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwsh4_2b SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwsh4_2c SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwsh4_2e SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwsh4_31 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwsh4_32 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwsh4_33 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabvwsh4_34 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define tabview5_0a SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define uiitems_05 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define uiitems_06 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define uiitems_15 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define uiitems_18 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define uiitems_19 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define uiitems_1f SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define uiitems_20 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define uiitems_23 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define uiitems_25 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define uiitems_26 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define uiitems_2a SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define uiitems_2b SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define uiitems_2c SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define uiitems_2d SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define uiitems_33 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define uiitems_35 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define uiitems_36 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define uiitems_37 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define uiitems_3b SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define uiitems_3c SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define uiitems_41 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define uiitems_43 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define uiitems_44 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define uiitems_45 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define uiitems_46 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define uiitems_47 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define uiitems_48 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define uiitems_49 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define uiitems_4a SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define uiitems_4b SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define uiitems_4c SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define uiitems_4d SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define uiitems_4e SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define sbxtable_01 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define sbxtable_02 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define sbxtable_03 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define sbxtable_04 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define sbxtable_05 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define sbxtable_06 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define sbxtable_07 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE) +#define sbxtable_08 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define sbxtable_09 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define sbxtable_0a SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define sbxtable_0b SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define sbxtable_0c SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define sbxtable_0e SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define docsh6_07 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define docsh6_08 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define docsh6_0a SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define docsh6_0b SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define impex_03 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define impex_04 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define impex_05 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define impex_07 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define impex_08 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define impex_0a SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define impex_0b SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define impex_12 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define impex_13 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define impex_14 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define impex_15 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define impex_17 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define impex_19 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define impex_23 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define impex_24 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define impex_25 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define impex_26 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define impex_27 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define impex_28 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define impex_29 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define impex_2a SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define impex_2b SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define impex_2e SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define impex_2f SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define impex_30 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define impex_31 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define impex_32 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define docsh2_03 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define docsh2_04 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define tpstat_01 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define tpstat_02 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define tpstat_03 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define tpstat_04 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define tpstat_05 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define docsh7_01 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define dbdocfun_05 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define docsh3_17 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define docsh3_18 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define autostyl_01 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define autostyl_02 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define autostyl_03 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define autostyl_04 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define autostyl_05 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE) +#define autostyl_06 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define autostyl_07 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define autostyl_08 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define prevwsh_04 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define prevwsh_08 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define prevwsh_0a SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define prevwsh_0d SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define prevwsh_10 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define prevwsh_11 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define prevwsh_17 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define prevwsh_1b SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define prevwsh_1d SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define prevwsh_1e SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define pivotsh_01 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define pivotsh_02 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define pivotsh_03 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define pivotsh_04 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define editsh_04 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define editsh_06 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define editsh_0b SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define viewfun2_17 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define viewfun2_18 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define viewfun2_19 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define viewfun2_1b SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define viewfun2_1d SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define viewfun2_1e SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define viewfun2_20 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define viewfun2_21 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define viewfun2_24 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define viewfun2_25 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define viewfun2_26 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define viewfun2_28 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define viewfun2_29 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define viewfun2_2a SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define viewfun2_2b SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define viewfun2_2c SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define viewfun2_2d SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define viewfun2_2e SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define viewfun2_2f SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define viewfun2_30 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define viewfun2_31 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define viewfun2_32 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define viewfun2_87 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define viewfun2_89 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE) +#define viewfun2_8c SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define viewfun2_8d SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define tabview_0d SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define tabview_0f SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define tabview_10 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define tabview_19 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define tabview_1a SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define tabview_1b SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define tabview_65 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define tabview_66 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define tabview_67 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define tabview_6b SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define tabview_6c SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define tabview_6f SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define tabview_70 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define tabview_71 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define tabview_74 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define tabview_76 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define tabview_77 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define viewdata_02 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define viewdata_05 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define viewdata_07 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define viewdata_08 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define viewdata_0a SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define viewdata_0b SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define viewdata_0c SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define viewdata_0f SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define viewdata_12 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define viewdata_13 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define viewdata_14 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define viewdata_16 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define viewdata_19 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define viewdata_29 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define viewdata_34 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define viewdata_35 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define viewdata_39 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define viewdata_3d SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define viewdata_40 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define viewdata_41 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define viewdata_42 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define viewdata_47 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define viewdata_4b SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define viewdata_50 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define viewdata_52 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define viewdata_55 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define viewdata_56 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define tabview3_2d SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define tabview3_2e SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define tabview3_2f SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define tabview3_30 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define tabview3_32 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define tabview3_39 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define tabview3_45 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define tabview3_67 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define tabview3_68 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define tabview3_69 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define viewfunc_04 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define viewfunc_05 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define viewfunc_0e SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define viewfunc_10 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define viewfunc_11 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE) +#define viewfunc_12 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE) +#define viewfunc_32 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE) +#define viewfunc_35 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE) +#define viewfunc_36 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE) +#define viewfunc_39 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE) +#define viewfunc_3a SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE) +#define viewfunc_3c SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE) +#define viewfunc_3d SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE) +#define viewfunc_3f SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE) +#define viewfunc_41 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE) +#define viewfunc_42 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE) +#define viewfunc_43 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE) +#define viewfunc_44 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE) +#define viewfunc_45 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE) +#define tabview2_01 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE) +#define tabview2_07 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE) +#define tabview2_0d SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE) +#define tabview2_0e SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE) +#define tabview2_12 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE) +#define printfun_03 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE) +#define printfun_23 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE) +#define printfun_26 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE) +#define printfun_2d SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE) +#define printfun_2e SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE) +#define printfun_2f SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define sbxrange_01 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define sbxrange_02 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define sbxrange_03 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define sbxrange_04 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define sbxrange_05 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define dataobj_01 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define dataobj_02 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define dataobj_03 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define dataobj_05 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define dataobj_08 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define dataobj_09 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define dataobj_0a SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define dataobj_0b SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define dataobj_0c SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_02 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_03 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_04 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_05 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_06 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_07 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_08 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_09 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_0a SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_0b SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_0c SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_0d SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_0e SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_0f SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_10 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_11 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_12 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_13 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_14 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_15 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_16 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_17 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_18 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_19 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_1a SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_1b SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_1c SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_1d SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_1e SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_1f SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_20 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_21 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_22 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_23 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_24 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_25 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_26 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_27 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_28 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_29 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_2a SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_2b SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_2c SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_2d SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_2e SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_2f SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_30 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_34 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_35 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_36 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE) +#define undodat_37 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_38 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_39 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_3a SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_3b SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_3c SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_40 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_41 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_42 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_49 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_4a SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_4b SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_4c SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_4e SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_4f SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_50 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_51 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_52 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_53 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_56 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_57 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_58 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_59 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_5a SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_5b SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_5c SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_5d SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_5e SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_5f SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_60 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_61 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_62 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_63 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_64 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_65 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_66 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_67 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_68 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_69 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define undodat_6a SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define servobj_01 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define servobj_02 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define servobj_03 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define servobj_04 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define servobj_05 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define servobj_06 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define dbfunc3_01 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define dbfunc3_02 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define dbfunc3_03 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define dbfunc3_04 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define dbfunc3_05 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define dbfunc3_06 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define dbfunc3_07 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define dbfunc3_08 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define dbfunc3_09 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define dbfunc3_0b SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define dbfunc3_0c SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define dbfunc3_0e SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE) +#define dbfunc3_0f SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE) +#define dbfunc3_11 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE) +#define dbfunc3_12 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE) +#define dbfunc3_13 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE) +#define galwrap_01 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE) +#define galwrap_03 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE) +#define galwrap_04 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE) +#define galwrap_05 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE) +#define galwrap_06 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE) +#define galwrap_07 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE) +#define styledlg_04 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE) +#define attrdlg_04 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE) +#define dbfunc_02 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE) +#define dbfunc_04 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE) +#define dbfunc_05 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE) +#define dbfunc_07 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE) +#define dbfunc_08 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE) +#define dbfunc_17 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE) +#define dbfunc_18 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE) +#define client_01 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE) +#define client_02 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE) +#define client_03 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE) +#define client_04 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE) +#define client_05 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE) +#define tabvwshe_01 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE) +#define tabvwshe_02 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE) +#define tabvwshe_03 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE) +#define viewfun4_01 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE) +#define viewfun4_02 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE) +#define viewfun4_03 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE) +#define viewfun4_04 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE) +#define viewfun4_05 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE) +#define viewfun6_01 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define viewfun6_02 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define viewfun6_03 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define viewfun6_04 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define viewfun6_05 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define viewfun6_06 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define viewfun3_01 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define viewfun3_02 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define viewfun3_03 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define viewfun3_05 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define viewfun3_07 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define viewfun3_08 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define viewfun3_0b SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define viewfun3_14 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define viewfun3_15 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define tabview4_02 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define tabview4_08 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define drawview_07 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define drawview_12 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define drawview_1a SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define tablink_01 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define tablink_02 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define tablink_03 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define tablink_04 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define tablink_05 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define tablink_06 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define tablink_07 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define tablink_08 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define tablink_09 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define tablink_0a SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define tablink_0b SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define undoblk_01 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define undoblk_02 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define undoblk_03 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define undoblk_04 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define undoblk_05 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define undoblk_06 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define undoblk_07 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define undoblk_08 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define undoblk_09 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define undoblk_0a SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define undoblk_0b SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define undoblk_0c SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define undoblk_0d SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define undoblk_0e SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define undoblk_0f SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define undoblk_10 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define undoblk_11 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define undoblk_12 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE) +#define undoblk_13 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_14 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_15 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_16 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_17 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_18 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_19 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_1a SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_1b SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_1c SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_1d SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_1e SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_1f SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_20 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_21 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_22 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_23 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_24 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_25 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_26 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_27 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_28 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_29 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_2a SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_2b SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_2c SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_2d SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_2e SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_2f SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_30 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_31 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_32 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_33 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_34 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_35 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_36 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_37 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_38 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_39 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_3a SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_3b SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_3c SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_3d SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_3e SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_3f SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_40 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_41 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_42 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_43 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_44 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_45 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_46 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_47 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define undoblk_48 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define preview_04 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define preview_05 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define preview_13 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define preview_14 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define viewutil_06 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define namedlg_01 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define namedlg_02 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define namedlg_03 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define namedlg_04 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define namedlg_05 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define namedlg_06 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define namedlg_07 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define namedlg_08 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define namedlg_09 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define namedlg_0a SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define namedlg_0b SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define namedlg_0c SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define namedlg_0d SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE) +#define namedlg_0e SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define namedlg_0f SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define namedlg_10 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define docsh5_01 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define docsh5_02 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define docsh5_03 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define docsh5_04 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define docsh5_05 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_1f SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_20 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_21 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_22 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_23 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_24 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_28 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_29 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_2a SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_32 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_34 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_35 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_36 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_37 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_38 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_39 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_3a SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_3b SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_3c SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_40 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_41 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_42 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_43 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_44 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_45 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_46 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_47 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_48 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_49 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_50 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_51 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_52 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_53 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_54 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_55 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_56 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_57 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_58 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_59 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_5a SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_5b SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_5e SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_60 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_61 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_62 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_63 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_64 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_65 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_66 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_67 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_68 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undoblk3_69 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undotab_04 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undotab_05 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undotab_06 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undotab_07 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undotab_08 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undotab_09 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undotab_0a SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undotab_0b SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undotab_0c SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undotab_0d SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undotab_0e SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undotab_0f SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undotab_10 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undotab_11 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undotab_12 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undotab_13 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undotab_14 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undotab_15 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE) +#define undotab_16 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undotab_17 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undotab_18 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undotab_19 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undotab_1a SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undotab_1b SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undotab_1c SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undotab_1d SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undotab_1e SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undotab_20 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undotab_21 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undotab_22 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undotab_23 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undotab_24 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undotab_25 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undotab_26 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undotab_27 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undotab_28 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undotab_29 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undotab_2a SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undotab_2b SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undotab_2c SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undotab_2d SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undotab_2e SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undotab_2f SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undotab_30 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undotab_31 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undotab_32 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undotab_33 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undotab_34 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undotab_35 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undotab_36 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undotab_37 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undotab_38 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undocell_04 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undocell_05 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undocell_06 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undocell_0a SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undocell_0b SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undocell_0c SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undocell_0d SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undocell_0e SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undocell_0f SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undocell_10 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undocell_11 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undocell_12 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undocell_13 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undocell_14 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undocell_15 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undocell_16 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undocell_17 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undocell_18 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undocell_1b SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define undocell_1c SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define gridwin_06 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define gridwin_10 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define gridwin_11 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define gridwin_12 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define gridwin_13 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define gridwin_14 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define gridwin_38 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define olinewin_05 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define olinewin_07 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define olinewin_08 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define olinewin_09 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define olinewin_0a SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define olinewin_0b SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define olinewin_0c SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define olinewin_0d SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define olinewin_11 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define tabsplit_04 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define tabsplit_05 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define colrowba_07 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define colrowba_0f SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define colrowba_10 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define colrowba_11 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define colrowba_14 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define tabcont_08 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define tabcont_09 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define tabcont_0a SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define tabcont_0b SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define tabcont_0d SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define tabcont_0e SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE) +#define tabcont_0f SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define select_03 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define select_07 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define select_0b SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define select_10 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define select_13 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define select_16 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define refundo_01 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define refundo_02 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define refundo_03 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define refundo_04 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define undoblk2_2e SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define undoblk2_2f SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define undoblk2_30 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define gridwin4_05 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define output_20 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define output_21 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define output_22 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define output_23 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define output_24 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define output_25 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define output2_03 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define output2_04 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define dataobj2_01 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define dataobj3_01 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define dataobj3_02 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define undobase_03 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define undobase_04 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define undobase_05 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define undobase_06 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define undobase_07 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define undobase_08 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define undobase_0b SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define undobase_0c SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define undobase_0d SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define undobase_0e SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define undobase_0f SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define undobase_10 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define undobase_11 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define undobase_12 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define undobase_13 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define undobase_14 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define undobase_15 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define undoutil_01 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define undoutil_02 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define undoutil_03 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define undoutil_04 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define tabpages_18 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define tabpages_19 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define tabpages_1a SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define tabpages_1b SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE) +#define tabpages_1c SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE) +#define tabpages_1d SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE) +#define tabpages_20 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE) +#define tabpages_22 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE) +#define drawvie3_05 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE) +#define tabvwshg_01 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE) +#define spelleng_01 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE) +#define viewfun5_01 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE) +#define viewfun5_02 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE) +#define viewfun7_01 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE) +#define viewfun7_02 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE) +#define viewfun7_03 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE) +#define viewfun7_04 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE) +#define viewfun7_05 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE) +#define viewfun7_06 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE) +#define gridwin2_01 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE) +#define gridwin2_02 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE) +#define gridwin2_03 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE) +#define gridwin2_04 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE) +#define gridwin2_05 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE) +#define hdrcont_09 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE) +#define hdrcont_0a SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE) +#define hdrcont_0b SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE) +#define undoolk_02 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE) +#define undoolk_04 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE) +#define drawvie4_01 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE) +#define drawvie4_02 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE) +#define drawvie4_03 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE) +#define drawvie4_04 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE) +#define drawvie4_05 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE) +#define drawvie4_06 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_02 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_03 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_04 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_05 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_06 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_07 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_08 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_09 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_0a SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_0b SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_0c SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_0d SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_0e SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_10 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_12 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_13 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_14 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_15 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_16 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_17 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_18 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_19 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_1a SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_1b SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_1c SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_1d SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_1e SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_1f SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_20 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_21 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_22 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_23 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_24 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_25 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_26 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_27 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_28 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_29 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_2a SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_2b SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_2c SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_2d SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_2e SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_2f SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_30 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_31 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_32 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_33 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_34 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_35 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_36 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_37 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_38 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_39 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_3a SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_3b SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_3d SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_3e SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_3f SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_40 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_41 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define navipi_42 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define optdlg_01 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define optdlg_02 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define optdlg_03 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define optdlg_04 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define optdlg_05 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define optdlg_06 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define optdlg_07 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define tbxalign_03 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define tbxalign_04 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define drtxtob_01 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define drtxtob_02 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define drtxtob_03 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define drtxtob_04 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define drtxtob_05 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define drtxtob_06 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define drtxtob_07 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define drtxtob_08 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE) +#define imoptdlg_08 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define drawsh_05 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define drawsh_06 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define drawsh_07 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define drawsh_08 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuins2_01 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuins2_02 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuins2_03 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuins2_04 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuins2_05 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuins2_06 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuins2_07 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuins2_08 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuins2_09 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuins2_0a SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuins1_03 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuins1_04 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuins1_0b SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fumark_02 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fumark_05 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fumark_06 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fumark_0a SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuconpol_01 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuconpol_02 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuconpol_03 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuconpol_04 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuconpol_05 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuconpol_06 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuconpol_07 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuconpol_08 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuconctl_01 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuconctl_02 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuconctl_03 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuconctl_04 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuconctl_05 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuconctl_06 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuconctl_07 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuconctl_08 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define futext_01 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define futext_02 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define futext_03 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define futext_04 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define futext_05 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define futext_06 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define futext_07 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define futext_08 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define futext_09 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define futext_0a SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define futext_0b SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define futext_0c SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuconrec_06 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuconarc_01 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuconarc_02 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuconarc_03 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuconarc_04 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuconarc_05 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuconarc_06 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuconarc_07 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define fuconarc_08 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE) +#define mvtabdlg_01 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define mvtabdlg_02 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define mvtabdlg_03 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define mvtabdlg_04 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define mvtabdlg_05 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define mvtabdlg_06 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define mvtabdlg_07 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define mvtabdlg_08 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define mvtabdlg_09 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define instbdlg_01 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define instbdlg_02 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define instbdlg_03 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define instbdlg_04 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define instbdlg_05 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define instbdlg_06 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define instbdlg_07 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define instbdlg_08 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define instbdlg_09 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define instbdlg_0a SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define instbdlg_0b SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define lbseldlg_01 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define lbseldlg_02 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define lbseldlg_04 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define lbseldlg_05 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define subtdlg_01 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define subtdlg_02 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define sortdlg_01 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define sortdlg_02 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define scendlg_01 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define scendlg_02 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define scendlg_03 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define scendlg_04 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define inscodlg_01 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define inscodlg_02 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define inscodlg_03 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define inscodlg_04 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define inscodlg_05 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define delcldlg_01 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define delcldlg_02 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define delcldlg_03 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define autofmt_05 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define autofmt_06 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define autofmt_07 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define autofmt_1d SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define groupdlg_01 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define groupdlg_03 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define groupdlg_04 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define namecrea_01 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define namecrea_02 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define delcodlg_01 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define delcodlg_02 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define delcodlg_03 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define delcodlg_04 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define delcodlg_05 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define funcdlg_01 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define funcdlg_02 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define funcdlg_03 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE) +#define funcdlg_04 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define funcdlg_05 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define funcdlg_06 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define funcdlg_07 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define funcdlg_08 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define funcdlg_09 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define funcdlg_0b SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define funcdlg_0c SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define funcdlg_0d SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define funcdlg_0e SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define funcdlg_0f SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define funcdlg_10 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define edfundlg_01 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define edfundlg_03 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define edfundlg_05 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define edfundlg_0a SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define edfundlg_0c SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define edfundlg_0d SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define inscldlg_01 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define inscldlg_02 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define inscldlg_03 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define hfedtdlg_01 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define hfedtdlg_02 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define hfedtdlg_03 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define namepast_01 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define namepast_02 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define namepast_03 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define namepast_04 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define namepast_05 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define mtrindlg_01 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define mtrindlg_02 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define mtrindlg_03 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define mtrindlg_04 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define mtrindlg_05 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define mtrindlg_06 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define dbnamdlg_01 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define dbnamdlg_02 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define dbnamdlg_03 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define dbnamdlg_04 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define dbnamdlg_05 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define dbnamdlg_06 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define dbnamdlg_07 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define dbnamdlg_08 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define dbnamdlg_09 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define dbnamdlg_0a SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define dbnamdlg_0c SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define dbnamdlg_0d SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define dbnamdlg_0e SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define dbnamdlg_10 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define dbnamdlg_11 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define dbnamdlg_12 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE) +#define chartdlg_01 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define chartdlg_02 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define chartdlg_03 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define chartdlg_04 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define chartdlg_05 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define chartdlg_06 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define chartdlg_07 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define chartdlg_09 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define chartdlg_0a SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define solvrdlg_01 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define solvrdlg_02 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define solvrdlg_03 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define solvrdlg_04 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define solvrdlg_06 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define solvrdlg_07 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define solvrdlg_08 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define solvrdlg_09 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define solvrdlg_0a SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define solvrdlg_0b SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define solvrdlg_0c SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define sfiltdlg_01 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define sfiltdlg_02 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define sfiltdlg_03 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define sfiltdlg_04 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define sfiltdlg_05 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define sfiltdlg_06 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define sfiltdlg_08 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define sfiltdlg_09 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define sfiltdlg_0b SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define sfiltdlg_0c SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define sfiltdlg_0d SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define sfiltdlg_0e SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define tabopdlg_01 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define tabopdlg_02 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define tabopdlg_03 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define tabopdlg_04 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define tabopdlg_05 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define tabopdlg_06 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define tabopdlg_07 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define tabopdlg_08 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define tabopdlg_09 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define tabopdlg_0a SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE) +#define consdlg_01 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define consdlg_02 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define consdlg_03 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define consdlg_04 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define consdlg_05 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define consdlg_06 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define consdlg_07 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define consdlg_08 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define consdlg_09 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define consdlg_0a SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define consdlg_0b SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define consdlg_0c SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define consdlg_0d SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define consdlg_0e SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define consdlg_0f SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define consdlg_10 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define areasdlg_01 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define areasdlg_02 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define areasdlg_03 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define areasdlg_04 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define areasdlg_05 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define areasdlg_06 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define areasdlg_07 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define areasdlg_08 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define areasdlg_09 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define areasdlg_0a SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define areasdlg_0b SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define areasdlg_0c SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define areasdlg_0d SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define areasdlg_0e SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define areasdlg_0f SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define areasdlg_10 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define areasdlg_11 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define areasdlg_12 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define areasdlg_13 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define areasdlg_14 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define filtdlg_05 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define filtdlg_06 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define filtdlg_0c SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define filtdlg_0d SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define filtdlg_0f SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define filtdlg_10 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define pvlaydlg_02 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define pvlaydlg_04 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define pvlaydlg_08 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE) +#define pvlaydlg_09 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define pvlaydlg_0a SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define pvlaydlg_0b SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define pvlaydlg_0c SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define pvlaydlg_0d SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define pvlaydlg_0e SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define pvlaydlg_0f SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define pvlaydlg_10 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define pvlaydlg_11 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define pvlaydlg_12 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define pvlaydlg_13 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define pvlaydlg_15 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define pvlaydlg_16 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define pvlaydlg_17 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define pvlaydlg_18 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define pvlaydlg_19 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define pvlaydlg_1b SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define pvlaydlg_1c SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define pvlaydlg_1e SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define tphf_0e SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define tphf_0f SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define tptable_03 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define argdlg_01 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define argdlg_02 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define argdlg_03 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define argdlg_04 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define argdlg_06 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define argdlg_07 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define argdlg_08 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define argdlg_09 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define argdlg_0a SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define argdlg_0b SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define argdlg_0c SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define argdlg_0e SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define argdlg_0f SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define argdlg_10 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define argdlg_11 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define argdlg_12 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define argdlg_13 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define argdlg_14 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define argdlg_15 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define argdlg_16 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define argdlg_17 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define argdlg_18 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE) +#define argdlg_19 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define argdlg_1a SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define anyrefdg_03 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define pfiltdlg_01 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define pfiltdlg_02 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define pfiltdlg_03 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define pfiltdlg_04 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define pfiltdlg_05 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define pfiltdlg_06 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define pfiltdlg_07 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define pfiltdlg_08 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define pfiltdlg_09 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define pfiltdlg_0a SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define scenwnd_01 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define scenwnd_02 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define scenwnd_03 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define scenwnd_04 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define scenwnd_05 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define scenwnd_06 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define scenwnd_07 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define scenwnd_08 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define scenwnd_09 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define scenwnd_0a SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define scenwnd_0b SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define scenwnd_0c SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define scenwnd_0d SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define scenwnd_0e SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define navcitem_01 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define navcitem_02 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define tpview_01 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define tpview_02 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define tpview_03 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define tpview_05 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define tpview_06 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define tpview_07 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define tpview_08 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define tpview_09 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define tpview_0a SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define tpcalc_01 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define tpcalc_02 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define tpcalc_03 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define tpcalc_05 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE) +#define tpcalc_06 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define tpcalc_07 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define tpcalc_09 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define tpcalc_0a SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define tpcalc_0c SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define tpcalc_0d SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define tpcalc_0e SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define tpprint_01 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define tpprint_02 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define tpprint_04 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define tpprint_06 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define tpprint_07 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define tpprint_08 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define tpusrlst_01 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define tpusrlst_02 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define tpusrlst_03 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define tpusrlst_05 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define tpusrlst_06 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define tpusrlst_07 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define tpusrlst_08 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define tpusrlst_09 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define tpusrlst_0a SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define tpusrlst_0b SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define tpusrlst_0c SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define tpusrlst_0d SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define tpusrlst_0e SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define tpusrlst_0f SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define tpusrlst_10 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define tpusrlst_12 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define tpusrlst_13 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define drtxtob2_01 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define drtxtob2_02 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define drtxtob2_03 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define drtxtob2_05 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define drtxtob2_06 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define drtxtob1_01 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define drtxtob1_02 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define drtxtob1_03 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define drtxtob1_04 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define drawsh1_07 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define drawsh3_01 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define drawsh4_01 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define fupoor_06 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define fupoor_09 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define fupoor_0a SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define fupoor_0b SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define fupoor_0c SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define fudraw_04 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define fudraw_05 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define fusel2_01 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE) +#define fuconstr_06 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsubt_01 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsubt_02 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsubt_03 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsubt_04 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsubt_05 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsubt_06 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsubt_07 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsubt_08 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsubt_09 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsubt_0a SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsubt_0b SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsubt_0c SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsubt_0d SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsubt_0e SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsubt_0f SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsubt_10 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsubt_11 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsubt_12 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsubt_13 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsubt_14 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsubt_15 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsubt_16 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsubt_17 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsubt_18 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsubt_19 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsubt_1a SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsubt_1b SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsubt_1c SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsubt_1e SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsubt_1f SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsubt_20 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsort_01 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsort_02 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsort_03 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsort_04 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsort_05 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsort_06 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsort_07 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsort_08 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsort_09 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsort_0a SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsort_0b SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsort_0c SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsort_0d SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsort_0e SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsort_0f SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsort_10 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsort_11 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsort_12 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsort_13 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsort_14 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsort_15 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsort_16 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsort_17 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsort_19 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsort_1b SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tpsort_1e SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tphfedit_0d SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tphfedit_0f SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tphfedit_1a SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tphfedit_1c SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tphfedit_1d SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE) +#define tphfedit_1f SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define tphfedit_20 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define tphfedit_22 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define foptmgr_05 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define foptmgr_06 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define foptmgr_07 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define foptmgr_08 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define fieldwnd_02 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define fieldwnd_05 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define fieldwnd_06 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define fieldwnd_07 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define fieldwnd_08 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define fieldwnd_09 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define fieldwnd_0a SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define fieldwnd_0c SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define fieldwnd_0d SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define fieldwnd_0e SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define fieldwnd_0f SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define fieldwnd_10 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define funcutl_01 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define funcutl_02 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define funcutl_03 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define funcutl_05 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define funcutl_06 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define funcutl_07 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define crdlg_01 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define crdlg_02 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define crdlg_03 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define textdlgs_01 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define textdlgs_02 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define textdlgs_03 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define pvfundlg_01 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define pvfundlg_02 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define pvfundlg_03 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define pvfundlg_04 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define pvfundlg_05 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define pvfundlg_06 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define pvfundlg_07 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_03 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_05 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_06 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_08 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_0b SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_0d SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_51 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_52 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_53 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_54 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_55 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_57 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_58 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_59 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_5b SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_5c SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_5d SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_5f SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_60 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_6b SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_72 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_79 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_7a SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_7b SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_7c SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_7d SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_86 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_87 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_8a SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_8c SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_96 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_97 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_99 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_9a SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define global_9b SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define attrib_27 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define attrib_28 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define attrib_29 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define attrib_2a SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define attrib_2b SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define attrib_2c SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define attrib_2d SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define attrib_37 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define attrib_3e SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define attrib_3f SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define attrib_70 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define attrib_7a SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE) +#define attrib_7b SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define attrib_7c SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define attrib_7d SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define attrib_7e SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define attrib_7f SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define attrib_81 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define attrib_82 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define attrib_84 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define attrib_85 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define attrib_87 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define attrib_89 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define attrib_8a SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define attrib_8b SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define attrib_8c SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define attrib_8e SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define attrib_90 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define attrib_92 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define attrib_93 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define attrib_94 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define attrib_95 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define attrib_96 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define attrib_97 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define attrib_99 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define attrib_9a SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define attrib_9b SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define attrib_9c SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define attrib_9d SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define attrib_9e SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define attrib_9f SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define attrib_a0 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define attrib_a1 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define attrib_a2 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define docoptio_05 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define docoptio_06 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define docoptio_07 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define docoptio_08 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define docoptio_09 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define docoptio_0a SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define docoptio_0c SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define docoptio_0d SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define viewopti_05 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define viewopti_09 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define viewopti_0a SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define viewopti_0b SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define viewopti_0c SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define viewopti_0d SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define viewopti_0e SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define viewopti_10 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define viewopti_11 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define viewopti_1a SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define viewopti_1d SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define printopt_02 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define printopt_04 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define printopt_05 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define printopt_08 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define printopt_09 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define printopt_0a SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define printopt_0b SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define printopt_0c SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define printopt_0d SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define printopt_0e SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define printopt_11 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_02 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_04 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_07 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_08 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_0a SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_0d SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_0e SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_0f SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_10 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_11 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_12 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_13 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_17 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_18 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_1b SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_21 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_23 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_24 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_26 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_27 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_28 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_29 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_2a SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_2b SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_2c SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_2f SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_30 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_31 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_36 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_38 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_3c SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_3d SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_3e SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_40 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_44 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_46 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_47 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_48 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_49 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_4a SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_4b SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen3_4c SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen8_09 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen8_0f SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen8_10 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define documen8_11 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define appoptio_02 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define appoptio_04 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define appoptio_05 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define appoptio_07 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define appoptio_08 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define appoptio_0b SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define appoptio_0c SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define splcfg_01 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define splcfg_02 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define splcfg_03 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define splcfg_04 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define splcfg_05 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define editutil_04 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define editutil_05 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define editutil_06 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define editutil_20 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define editutil_21 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define document_09 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define document_10 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define document_15 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE) +#define document_19 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_1a SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_1b SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_1c SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_1e SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_20 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_21 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_23 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_24 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_25 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_26 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_27 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_28 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_29 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_36 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_39 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_3f SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_43 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_46 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_4d SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_4e SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_50 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_59 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_67 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_69 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_6b SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_6c SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_71 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_73 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_74 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_7a SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_7f SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_81 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_99 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_9a SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_9d SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_a2 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_a4 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_a5 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_a8 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_ac SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_ae SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_b0 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_b1 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_b7 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_b8 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define document_ba SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define documen7_02 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define documen7_08 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define documen7_0a SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define documen7_14 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define documen7_16 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define documen4_01 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define documen4_04 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define documen4_05 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define documen4_06 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define documen4_07 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define documen4_09 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define column3_05 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define column3_07 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE) +#define column3_08 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define column3_0a SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define column3_0d SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define column3_0e SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define column3_15 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define column3_17 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define column3_1a SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define column3_1c SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define column3_1d SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define documen6_02 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define documen2_03 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define documen2_04 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define documen2_18 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define documen2_19 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define documen2_1a SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define documen2_1b SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define documen2_1c SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define docpool_04 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define docpool_05 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define patattr_0b SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define patattr_0c SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define patattr_0f SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define patattr_13 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define patattr_15 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define global2_06 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define global2_0a SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define global2_0b SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define global2_0c SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define global2_0d SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define global2_13 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define global2_14 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define global2_15 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define global2_17 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define global2_18 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define global2_1c SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define global2_1d SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define global2_1e SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define global2_20 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define global2_24 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define global2_25 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define global2_26 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE) +#define global2_36 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define global2_38 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define global2_39 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define global2_3b SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define global2_3c SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define global2_3d SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define global2_3e SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define global2_3f SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define global2_40 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define global2_41 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define global2_49 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define global2_52 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define global2_53 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define global2_54 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define global2_55 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define rangenam_04 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define rangenam_0a SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define rangenam_0c SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define rangenam_0d SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define rangenam_0e SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define rangenam_0f SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define rangenam_12 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define rangenam_13 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define rangenam_14 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define rangenam_15 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define rangenam_16 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define rangenam_19 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define rangenam_1c SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define rangenam_1d SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define rangenam_1e SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define rangenam_1f SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define documen5_02 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define documen5_03 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define documen5_04 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define documen5_05 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define documen5_06 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define documen5_07 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define stlpool_04 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define stlpool_05 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define stlpool_07 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define collect_05 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define collect_06 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define collect_0b SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define collect_0d SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define collect_10 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define collect_11 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define collect_13 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define collect_16 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define collect_18 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define collect_19 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define collect_1a SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define collect_1b SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define collect_1c SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define cell_01 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define cell_05 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define cell_0b SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define cell_0e SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define cell_2e SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define cell_30 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define cell_31 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define cell_39 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define cell_3e SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define cell2_02 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define cell2_03 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define cell2_04 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define cell2_05 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define cell2_07 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define cell2_08 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define cell2_09 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define cell2_0a SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define cell2_0b SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define cell2_0f SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define cell2_11 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE) +#define cell2_13 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define cell2_14 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define cell2_15 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define cell2_16 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define cell2_17 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define cell2_18 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define cell2_19 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define cell2_1a SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define cell2_1b SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define cell2_22 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define cell2_23 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define cell2_24 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define rangeutl_01 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define rangeutl_02 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define rangeutl_03 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define rangeutl_05 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define rangeutl_08 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define rangeutl_09 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define rangeutl_0b SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define rangeutl_0c SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define rangeutl_11 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define dbcolect_04 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define dbcolect_08 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define dbcolect_0e SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define dbcolect_14 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define dbcolect_17 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define dbcolect_1a SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define dbcolect_1c SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define dbcolect_1e SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define dbcolect_20 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define autoform_02 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define autoform_28 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define autoform_2a SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define autoform_2d SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define autoform_30 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE) +#define autoform_31 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define autoform_32 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define userlist_02 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define userlist_03 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define userlist_07 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define userlist_08 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define userlist_0b SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define userlist_0d SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define userlist_0e SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define userlist_0f SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define userlist_10 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define userlist_11 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define userlist_12 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define drwlayer_04 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define drwlayer_13 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define drwlayer_17 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define drwlayer_18 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define drwlayer_19 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define drwlayer_1c SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define drwlayer_20 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define drwlayer_21 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define drwlayer_22 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define drwlayer_23 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define drwlayer_24 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define drwlayer_25 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define drwlayer_26 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define drwlayer_29 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define drwlayer_2a SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define drwlayer_2c SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define documen9_05 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define documen9_07 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define documen9_08 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define documen9_0e SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define documen9_0f SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define pivot_03 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define pivot_04 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define pivot_05 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define pivot_06 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define pivot_07 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define pivot_08 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define pivot_09 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define pivot_0b SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define pivot_0c SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define pivot_0d SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define pivot_0e SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define pivot_0f SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define pivot_10 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define pivot_11 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define pivot_12 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define pivot_13 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define pivot_14 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE) +#define pivot_15 SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE) +#define pivot_16 SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE) +#define pivot_17 SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE) +#define pivot_18 SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE) +#define pivot_19 SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE) +#define pivot_1a SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE) +#define pivot_1b SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE) +#define pivot_1c SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE) +#define pivot_1d SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE) +#define pivot_1e SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE) +#define pivot_1f SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE) +#define pivot_20 SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE) +#define pivot_21 SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE) +#define pivot_22 SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE) +#define pivot_2d SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE) +#define pivot_2e SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE) +#define pivot_30 SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE) +#define pivot_31 SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE) +#define pivot_32 SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE) +#define pivot_33 SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE) +#define pivot_34 SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE) +#define pivot_35 SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE) +#define pivot_36 SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE) +#define pivot_37 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define pivot_38 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define pivot_39 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define pivot_3a SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define pivot_3b SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_01 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_02 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_03 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_04 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_05 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_06 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_07 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_08 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_09 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_0a SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_0c SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_0d SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_0f SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_10 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_11 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_12 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_14 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_15 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_16 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_17 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_18 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_19 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_1a SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_1b SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_1c SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_1d SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_1e SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_1f SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_20 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_21 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_23 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_24 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_25 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_26 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_27 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_28 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_29 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_2a SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_2b SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_2c SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_2d SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_2e SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_2f SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_30 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_31 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define olinetab_32 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define fillinfo_01 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define chartarr_01 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define chartarr_02 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define chartarr_10 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define chartarr_16 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define chartarr_1c SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define chartarr_1f SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define chartarr_25 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define chartarr_27 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define chartarr_29 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define chartarr_2a SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define chartarr_2b SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define chartarr_2c SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define chartarr_2d SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define chartarr_2e SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define chartarr_2f SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define bcaslot_04 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define bcaslot_08 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define bcaslot_09 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define bcaslot_0a SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define bcaslot_10 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define bcaslot_12 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define bcaslot_13 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define pivot2_01 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define pivot2_02 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define pivot2_03 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define pivot2_04 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define pivot2_05 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define pivot2_07 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define pivot2_08 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define pivot2_09 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE) +#define pivot2_0a SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define pivot2_0b SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define pivot2_0f SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define pivot2_10 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define pivot2_11 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define pivot2_12 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define pivot2_13 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define pivot2_14 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define detfunc_01 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define detfunc_02 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define detfunc_05 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define detfunc_06 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define detfunc_07 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define detfunc_08 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define detfunc_09 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define detfunc_0b SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define detfunc_0d SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define detfunc_0f SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define detfunc_10 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define detfunc_11 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define detfunc_12 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define detfunc_13 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define detfunc_14 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define detfunc_16 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define detfunc_17 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define detfunc_18 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define detfunc_19 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define detfunc_1a SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define detfunc_1b SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define consoli_01 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define consoli_02 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define consoli_03 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define consoli_04 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define consoli_07 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define consoli_08 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define consoli_09 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define consoli_0a SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define consoli_0b SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define consoli_0c SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE) +#define consoli_0d SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE) +#define consoli_0e SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE) +#define consoli_0f SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE) +#define consoli_10 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE) +#define consoli_11 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE) +#define consoli_12 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE) +#define consoli_13 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE) +#define consoli_14 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE) +#define zforauto_02 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE) +#define zforauto_06 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE) +#define callform_01 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE) +#define callform_02 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE) +#define callform_03 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE) +#define callform_04 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE) +#define callform_05 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE) +#define callform_06 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE) +#define callform_07 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE) +#define callform_08 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE) +#define callform_0a SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE) +#define callform_0c SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE) +#define interpr4_01 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE) +#define interpr4_03 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE) +#define interpr4_0a SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE) +#define interpr4_0b SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE) +#define interpr4_0c SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE) +#define interpr4_1c SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE) +#define interpr4_20 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE) +#define interpr4_28 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE) +#define interpr4_2c SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE) +#define interpr4_b1 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE) +#define interpr4_b2 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE) +#define interpr4_b8 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE) +#define interpr4_b9 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE) +#define interpr4_bc SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define interpr4_be SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define interpr4_bf SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define interpr4_c0 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define compiler_27 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define compiler_28 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define compiler_49 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define compiler_4a SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define compiler_4f SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define compiler_50 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define compiler_51 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define compiler_55 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define adiasync_02 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define adiasync_04 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define adiasync_05 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define interpr1_37 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define interpr1_3a SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define interpr1_3b SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define interpr1_59 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define interpr1_5a SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define interpr1_5b SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define interpr1_5c SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define interpr1_5e SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define interpr1_5f SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define interpr1_85 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define interpr1_90 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define interpr1_a6 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define interpr1_a7 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define interpr1_a8 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define interpr1_ab SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define interpr1_ae SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define interpr1_b1 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define interpr1_b5 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define table3_67 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define table3_68 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define table3_69 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define table3_72 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define table3_73 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define table3_74 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define table3_80 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define table3_93 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define table1_06 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define table1_13 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define table1_14 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define table1_15 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define table1_16 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define table1_17 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define table1_18 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define table1_19 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define table1_24 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define table1_26 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define table1_27 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define table1_29 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define table1_2a SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE) +#define table1_2f SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table1_30 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table1_31 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_05 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_1d SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_2e SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_2f SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_30 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_31 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_32 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_33 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_35 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_36 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_38 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_3b SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_42 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_45 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_4e SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_51 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_52 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_53 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_56 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_58 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_5c SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_66 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_6d SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_6e SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_6f SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_70 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_71 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_7d SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_81 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_82 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_85 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_86 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_87 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_8b SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_93 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_94 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_99 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_9a SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_9b SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_a2 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_a5 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_a6 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_ab SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_ac SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table2_ad SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table4_0b SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table4_0c SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table4_0d SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table4_0e SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table4_0f SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table4_11 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table6_01 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table6_02 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table6_03 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table6_04 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table6_05 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table6_06 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table6_07 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table6_08 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table6_09 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table6_0a SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table6_0b SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table6_0c SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE) +#define table6_0d SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define table5_06 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define table5_09 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define column2_03 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define column2_05 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define column2_11 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define column2_12 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define column2_16 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define column2_1a SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define column2_1b SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define column2_1c SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define column2_24 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define column2_25 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define column2_27 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define column2_29 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define refupdat_01 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define refupdat_02 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define refupdat_04 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define refupdat_05 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define refupdat_06 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define refupdat_08 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define markarr_08 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define markarr_0b SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define markarr_0c SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define markarr_11 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define markarr_12 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define attarray_0d SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define attarray_0e SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define attarray_12 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define attarray_13 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define attarray_14 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define attarray_15 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define attarray_1b SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define attarray_1c SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define attarray_1d SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define attarray_1f SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define attarray_21 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define attarray_26 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define attarray_29 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define attarray_2d SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define attarray_2e SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define attarray_30 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define token_0b SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define token_22 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define token_23 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define token_6a SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define token_6b SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define scmatrix_03 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define scmatrix_08 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define scmatrix_0b SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define scmatrix_0c SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define scmatrix_10 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define drawpage_03 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define subtotal_01 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define subtotal_02 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define subtotal_03 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define subtotal_04 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define subtotal_05 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define subtotal_06 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define subtotal_07 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define column_0d SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define column_11 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define column_14 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define column_15 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define column_21 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE) +#define column_22 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define column_31 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define column_32 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define column_33 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define column_37 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define column_3a SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define column_3b SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define column_3c SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define column_3d SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define column_3e SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define column_3f SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define column_40 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define column_41 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define column_42 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define column_43 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define column_44 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define column_61 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define column_62 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define column_63 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define column_6b SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define column_6d SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define column_72 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define column_76 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define column_77 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define column_78 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define column_7d SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define column_7f SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define column_80 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define column_84 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define interpr2_2a SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define interpr2_2b SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define interpr2_35 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define interpr2_36 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define interpr2_37 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define interpr2_3b SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define interpr2_3d SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define interpr2_44 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define interpr2_45 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define interpr2_46 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define interpr2_47 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define interpr2_48 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define interpr2_77 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define interpr2_b2 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define interpr2_b5 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE) +#define interpr2_b6 SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE) +#define interpr2_b7 SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE) +#define interpr2_b8 SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE) +#define interpr5_51 SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE) +#define interpr5_53 SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE) +#define interpr5_54 SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE) +#define interpr5_55 SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE) +#define interpr5_59 SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE) +#define interpr5_5d SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE) +#define interpr5_5e SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE) +#define interpr5_61 SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE) +#define interpr5_62 SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE) +#define interpr5_63 SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE) +#define interpr5_65 SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE) +#define interpr5_b6 SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE) +#define interpr5_b7 SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE) +#define interpr3_06 SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE) +#define interpr3_07 SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE) +#define interpr3_10 SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE) +#define interpr3_11 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define interpr3_1b SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define interpr3_28 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define ddelink_01 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define ddelink_02 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define ddelink_03 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define ddelink_04 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define ddelink_05 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define excel_04 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define scflt_04 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define scflt_07 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define scflt_08 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define scflt_09 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define scflt_0a SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define scflt_0b SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define scflt_0c SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define scflt_0d SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define scflt_0e SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define scflt_0f SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define scflt_10 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define scflt_11 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define scflt_12 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define scflt_13 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define scflt_14 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define scflt_15 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define scflt_16 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define scflt_17 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define scflt_18 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define scflt_19 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define scflt_1a SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define scflt_1b SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define scflt_1c SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define scflt_1d SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define scflt_1e SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define scflt_1f SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define scflt_20 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define scflt_21 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define scflt_22 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define scflt_23 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define scflt_24 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE) +#define scflt_25 SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE) +#define scflt_26 SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE) +#define scflt_27 SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE) +#define scflt_28 SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE) +#define scflt_29 SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE) +#define scflt_2a SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE) +#define scflt_2b SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE) +#define scflt_2c SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE) +#define scflt_2d SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE) +#define scflt_2e SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE) +#define scflt_2f SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE) +#define scflt_30 SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE) +#define scflt_31 SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE) +#define scflt_32 SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE) +#define scflt_33 SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE) +#define scflt_34 SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE) +#define scflt_35 SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE) +#define scflt_36 SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE) +#define scflt_37 SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE) +#define scflt_38 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define scflt_39 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define scflt_3a SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define scflt_3b SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define scflt_3c SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define lotus_01 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_03 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_04 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_05 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_06 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_07 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_08 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_10 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_11 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_12 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_13 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_16 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_17 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_18 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_19 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_1a SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_1b SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_1e SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_21 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_22 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_24 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_2d SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_2e SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_2f SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_35 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_3c SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_3d SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_3e SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_3f SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_41 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_43 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_44 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_46 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_4b SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_52 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_55 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define impop_57 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define expop2_01 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define expop2_02 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define expop2_03 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define functab_02 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define functab_03 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define functab_04 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define exctools_03 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define exctools_17 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define scfobj_01 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE) +#define lotread_01 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define lotread_02 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define tokstack_0d SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define tokstack_0e SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define tokstack_18 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define filter_02 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define filter_03 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define lotimpop_01 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define lotimpop_02 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define lotimpop_03 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define lotimpop_04 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define lotimpop_05 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define lotimpop_06 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define lotimpop_07 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define lotimpop_08 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define lotimpop_09 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define lotimpop_0a SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define lotimpop_0b SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define lotimpop_0e SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define lotimpop_0f SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define lotimpop_10 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define lotimpop_11 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define lotimpop_12 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define lotimpop_13 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define lotimpop_14 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define lotimpop_15 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define lotimpop_16 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excform_02 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excform_03 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excform_08 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excform_14 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define vfbuff_04 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define vfbuff_06 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define fontbuff_04 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define fontbuff_08 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define fontbuff_0f SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define fontbuff_10 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define fontbuff_11 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define fontbuff_12 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define fontbuff_13 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_01 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_02 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_03 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_04 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_06 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_07 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_08 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_09 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_0c SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_0d SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_0e SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_0f SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_10 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_11 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_12 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_14 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_15 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_16 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_17 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_18 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_19 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_1a SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_1b SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_1c SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_1d SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_1e SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_1f SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_20 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_21 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_22 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_23 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_24 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_27 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_28 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_29 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_2a SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_2b SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_2c SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_2d SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_2e SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_2f SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_30 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_31 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_32 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_33 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_34 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_35 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_36 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_37 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_38 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_39 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_3a SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_3b SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_3c SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_3d SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_3e SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_3f SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_40 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_41 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_42 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_43 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_44 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_45 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_46 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_47 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_48 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_49 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_4a SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_4b SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_4d SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_4e SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_52 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_53 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_54 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_55 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_56 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_57 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_58 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_5b SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_5c SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_5d SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_5e SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_5f SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_60 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_61 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_62 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_63 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_64 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE) +#define excrecds_65 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excrecds_66 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excrecds_67 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excrecds_68 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excrecds_69 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excrecds_6a SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excrecds_6b SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excrecds_6c SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excrecds_6d SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excrecds_6e SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excrecds_6f SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excrecds_70 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excrecds_71 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excrecds_72 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excrecds_73 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excrecds_74 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excrecds_75 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excrecds_76 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excrecds_77 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excrecds_78 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excrecds_79 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excrecds_7a SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excrecds_7b SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excrecds_7c SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excrecds_7d SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excrecds_7e SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excrecds_7f SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excrecds_80 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excrecds_81 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excrecds_82 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excrecds_83 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excrecds_84 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excrecds_85 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excdoc_01 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excdoc_02 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excdoc_03 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excdoc_05 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excdoc_09 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excdoc_0b SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excdoc_0d SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excdoc_0f SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excdoc_10 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excdoc_11 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excdoc_12 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excdoc_13 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excdoc_14 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excdoc_15 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excdoc_16 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excdoc_17 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excdoc_18 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excdoc_19 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excdoc_1a SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excdoc_1b SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excdoc_1d SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excdoc_1e SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excdoc_1f SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excdoc_22 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excdoc_24 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excdoc_25 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excdoc_26 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excdoc_27 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excdoc_28 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excdoc_29 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excdoc_2a SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define frmbase_05 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define spstring_0c SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define spstring_0d SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excobj_02 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excobj_03 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excobj_04 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excobj_05 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excobj_06 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excobj_07 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excobj_08 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excobj_09 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excobj_0a SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excobj_0b SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define excobj_0c SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define lotattr_01 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define lotattr_02 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE) +#define lotattr_03 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define lotattr_04 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define lotattr_05 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define lotattr_06 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define lotattr_07 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define lotattr_08 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define lotattr_0a SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define lotattr_0b SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define lotattr_0c SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define lotattr_0d SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define lotattr_0e SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define lotattr_0f SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define tool_01 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define tool_02 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define tool_07 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define tool_0a SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define tool_0b SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define tool_0c SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define tool_0d SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define tool_0e SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define tool_0f SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define tool_10 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define tool_12 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define tool_13 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define tool_14 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define tool_15 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define tool_16 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define tool_17 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define tool_19 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define tool_1a SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define tool_1b SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define tool_1c SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define memory_01 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define memory_02 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define lotform_01 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define lotform_02 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define lotform_03 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define lotform_04 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define lotform_05 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define lotform_06 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define lotform_07 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define lotform_08 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define lotform_09 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define lotform_0a SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define lotform_0b SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE) +#define lotform_0c SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define lotform_0d SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define exccomp_01 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define exccomp_06 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define exccomp_07 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define exccomp_08 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define exccomp_09 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define exccomp_0a SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define exccomp_0b SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define exccomp_10 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define exccomp_12 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define exccomp_13 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define exccomp_14 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define exccomp_15 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define exccomp_16 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define exccomp_17 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define exccomp_18 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define exccomp_19 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define exccomp_1a SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define exccomp_1b SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define exccomp_1c SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define exccomp_1d SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define op_01 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define op_02 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define op_03 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define op_04 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define op_05 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define op_06 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define op_0a SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define op_0c SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define op_0d SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define op_0e SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define op_0f SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define op_10 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define op_11 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define op_12 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define op_13 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define op_14 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define teamdlg_01 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define teamdlg_02 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define teamdlg_03 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define teamdlg_04 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) +#define teamdlg_05 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE) diff --git a/sc/inc/servuno.hxx b/sc/inc/servuno.hxx new file mode 100644 index 000000000000..1b19bdae7545 --- /dev/null +++ b/sc/inc/servuno.hxx @@ -0,0 +1,120 @@ +/************************************************************************* + * + * $RCSfile: servuno.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:50 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_SERVUNO_HXX +#define SC_SERVUNO_HXX + +#ifndef _COM_SUN_STAR_UNO_XINTERFACE_HPP_ +#include <com/sun/star/uno/XInterface.hpp> +#endif +#ifndef _COM_SUN_STAR_UNO_SEQUENCE_HXX_ +#include <com/sun/star/uno/Sequence.hxx> +#endif +//#ifndef _USR_USTRING_HXX +//#include <usr/ustring.hxx> +//#endif + +class ScDocShell; + + +//! AutoFormat wirklich hier oder besser global?????? + +#define SC_SERVICE_SHEET 0 +#define SC_SERVICE_URLFIELD 1 +#define SC_SERVICE_PAGEFIELD 2 +#define SC_SERVICE_PAGESFIELD 3 +#define SC_SERVICE_DATEFIELD 4 +#define SC_SERVICE_TIMEFIELD 5 +#define SC_SERVICE_TITLEFIELD 6 +#define SC_SERVICE_FILEFIELD 7 +#define SC_SERVICE_SHEETFIELD 8 +#define SC_SERVICE_CELLSTYLE 9 +#define SC_SERVICE_PAGESTYLE 10 +#define SC_SERVICE_AUTOFORMAT 11 +#define SC_SERVICE_CELLRANGES 12 + +// drawing layer tables +#define SC_SERVICE_GRADTAB 13 +#define SC_SERVICE_HATCHTAB 14 +#define SC_SERVICE_BITMAPTAB 15 +#define SC_SERVICE_TRGRADTAB 16 +#define SC_SERVICE_MARKERTAB 17 +#define SC_SERVICE_DASHTAB 18 + +#define SC_SERVICE_COUNT 19 +#define SC_SERVICE_INVALID USHRT_MAX + + +class ScServiceProvider +{ +public: + // pDocShell wird nicht fuer alle Services benoetigt + static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > + MakeInstance( sal_uInt16 nType, ScDocShell* pDocShell ); + static ::com::sun::star::uno::Sequence<rtl::OUString> GetAllServiceNames(); + static String GetProviderName(sal_uInt16 nObjectType); + static sal_uInt16 GetProviderType(const String& rServiceName); +}; + + + +#endif + diff --git a/sc/inc/shellids.hxx b/sc/inc/shellids.hxx new file mode 100644 index 000000000000..072ed5411b92 --- /dev/null +++ b/sc/inc/shellids.hxx @@ -0,0 +1,88 @@ +/************************************************************************* + * + * $RCSfile: shellids.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:50 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_SHELLIDS_HXX +#define SC_SHELLIDS_HXX + +// Sfx Interface-IDs +#define SCID_APP (SFX_INTERFACE_SC_START+0) +#define SCID_DOC_SHELL (SFX_INTERFACE_SC_START+1) +#define SCID_TABVIEW_SHELL (SFX_INTERFACE_SC_START+2) +#define SCID_TABPOP_SHELL (SFX_INTERFACE_SC_START+3) +#define SCID_EDIT_SHELL (SFX_INTERFACE_SC_START+4) +#define SCID_DRAW_SHELL (SFX_INTERFACE_SC_START+5) +#define SCID_DRAW_TEXT_SHELL (SFX_INTERFACE_SC_START+6) +#define SCID_PREVIEW_SHELL (SFX_INTERFACE_SC_START+7) +#define SCID_PIVOT_SHELL (SFX_INTERFACE_SC_START+8) +#define SCID_AUDITING_SHELL (SFX_INTERFACE_SC_START+9) +#define SCID_FORM_SHELL (SFX_INTERFACE_SC_START+10) + +#define SCID_FORMAT_SHELL (SFX_INTERFACE_SC_START+11) +#define SCID_CELL_SHELL (SFX_INTERFACE_SC_START+12) +#define SCID_OLEOBJECT_SHELL (SFX_INTERFACE_SC_START+13) +#define SCID_CHART_SHELL (SFX_INTERFACE_SC_START+14) +#define SCID_GRAPHIC_SHELL (SFX_INTERFACE_SC_START+15) +#define SCID_PAGEBREAK_SHELL (SFX_INTERFACE_SC_START+16) + + +#endif + + diff --git a/sc/inc/srchuno.hxx b/sc/inc/srchuno.hxx new file mode 100644 index 000000000000..d41eef9e0caf --- /dev/null +++ b/sc/inc/srchuno.hxx @@ -0,0 +1,175 @@ +/************************************************************************* + * + * $RCSfile: srchuno.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:50 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_SRCHUNO_HXX +#define SC_SRCHUNO_HXX + +#ifndef _COM_SUN_STAR_UTIL_XREPLACEDESCRIPTOR_HPP_ +#include <com/sun/star/util/XReplaceDescriptor.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_ +#include <com/sun/star/lang/XServiceInfo.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XUNOTUNNEL_HPP_ +#include <com/sun/star/lang/XUnoTunnel.hpp> +#endif + +#ifndef _SFX_ITEMPROP_HXX +#include <svtools/itemprop.hxx> +#endif + +#ifndef _CPPUHELPER_IMPLBASE3_HXX_ +#include <cppuhelper/implbase3.hxx> +#endif + + +class SvxSearchItem; + + +class ScCellSearchObj : public cppu::WeakImplHelper3< + com::sun::star::util::XReplaceDescriptor, + com::sun::star::lang::XUnoTunnel, + com::sun::star::lang::XServiceInfo > +{ +private: + SfxItemPropertySet aPropSet; + SvxSearchItem* pSearchItem; + +public: + ScCellSearchObj(); + virtual ~ScCellSearchObj(); + + SvxSearchItem* GetSearchItem() const { return pSearchItem; } + + // XReplaceDescriptor + virtual ::rtl::OUString SAL_CALL getReplaceString() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setReplaceString( const ::rtl::OUString& aReplaceString ) + throw(::com::sun::star::uno::RuntimeException); + + // XSearchDescriptor + virtual ::rtl::OUString SAL_CALL getSearchString() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setSearchString( const ::rtl::OUString& aString ) + throw(::com::sun::star::uno::RuntimeException); + + // Search/Replace muss von aussen (vom XSearchable) gerufen werden... + + // XPropertySet + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > + SAL_CALL getPropertySetInfo() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Any& aValue ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::beans::PropertyVetoException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( + const ::rtl::OUString& PropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& xListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XUnoTunnel + virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< + sal_Int8 >& aIdentifier ) + throw(::com::sun::star::uno::RuntimeException); + + static const com::sun::star::uno::Sequence<sal_Int8>& getUnoTunnelId(); + static ScCellSearchObj* getImplementation( const com::sun::star::uno::Reference< + com::sun::star::util::XSearchDescriptor> xObj ); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +#endif + diff --git a/sc/inc/stlpool.hxx b/sc/inc/stlpool.hxx new file mode 100644 index 000000000000..72f92b718532 --- /dev/null +++ b/sc/inc/stlpool.hxx @@ -0,0 +1,119 @@ +/************************************************************************* + * + * $RCSfile: stlpool.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:50 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_STLPOOL_HXX +#define SC_STLPOOL_HXX + +#ifndef _SFXSTYLE_HXX //autogen +#include <svtools/style.hxx> +#endif + + +class ScStyleSheet; +class ScDocument; + +class ScStyleSheetPool : public SfxStyleSheetPool +{ +public: + ScStyleSheetPool( SfxItemPool& rPool, + ScDocument* pDocument ); + virtual ~ScStyleSheetPool(); + + void SetDocument( ScDocument* pDocument ); + ScDocument* GetDocument() const { return pDoc; } + + virtual void Erase( SfxStyleSheetBase* pStyle ); + + void SetActualStyleSheet ( SfxStyleSheetBase* pActStyleSheet ) + { pActualStyleSheet = pActStyleSheet; } + + SfxStyleSheetBase* GetActualStyleSheet () + { return pActualStyleSheet; } + + void CreateStandardStyles(); + void CopyStdStylesFrom( ScStyleSheetPool* pSrcPool ); + void UpdateStdNames(); + + void CopyStyleFrom( ScStyleSheetPool* pSrcPool, + const String& rName, SfxStyleFamily eFamily ); + + ScStyleSheet* FindCaseIns( const String& rName, SfxStyleFamily eFam ); + + void SetForceStdName( const String* pSet ); + const String* GetForceStdName() const { return pForceStdName; } + + virtual SfxStyleSheetBase& Make( const String&, SfxStyleFamily eFam, + USHORT nMask = 0xffff, USHORT nPos = 0xffff ); + +protected: + virtual SfxStyleSheetBase* Create( const String& rName, + SfxStyleFamily eFamily, + USHORT nMask); + virtual SfxStyleSheetBase* Create( const SfxStyleSheetBase& rStyle ); + +private: + SfxStyleSheetBase* pActualStyleSheet; + ScDocument* pDoc; + const String* pForceStdName; +}; + +#endif // SC_STLPOOL_HXX + diff --git a/sc/inc/stlsheet.hxx b/sc/inc/stlsheet.hxx new file mode 100644 index 000000000000..534dc8bfea3a --- /dev/null +++ b/sc/inc/stlsheet.hxx @@ -0,0 +1,109 @@ +/************************************************************************* + * + * $RCSfile: stlsheet.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:50 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_STLSHEET_HXX +#define SC_STLSHEET_HXX + +#ifndef _SFXSTYLE_HXX //autogen +#include <svtools/style.hxx> +#endif + +//------------------------------------------------------------------------ + +#define SCSTYLEBIT_STANDARD 0x0001 + +//------------------------------------------------------------------------ + +class ScStyleSheetPool; + +class ScStyleSheet : public SfxStyleSheet +{ +friend class ScStyleSheetPool; +public: + TYPEINFO(); + virtual ~ScStyleSheet(); + + ScStyleSheet( const ScStyleSheet& rStyle ); + + virtual BOOL SetParent ( const String& rParentName ); + virtual SfxItemSet& GetItemSet (); + virtual BOOL IsUsed () const; + virtual BOOL HasFollowSupport () const; + virtual BOOL HasParentSupport () const; + + virtual const String& GetName() const; + virtual const String& GetParent() const; + virtual const String& GetFollow() const; + + virtual BOOL SetName( const String& ); + +protected: + ScStyleSheet( const String& rName, + ScStyleSheetPool& rPool, + SfxStyleFamily eFamily, + USHORT nMask ); + + virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType, + const SfxHint& rHint, const TypeId& rHintType ); +}; + +#endif // SC_STLSHEET_HXX + diff --git a/sc/inc/strload.hxx b/sc/inc/strload.hxx new file mode 100644 index 000000000000..b66e51c516c9 --- /dev/null +++ b/sc/inc/strload.hxx @@ -0,0 +1,90 @@ +/************************************************************************* + * + * $RCSfile: strload.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:50 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_STRLOAD_HXX +#define SC_STRLOAD_HXX + +#ifndef SC_SCRESID_HXX +#include "scresid.hxx" +#endif + +#ifndef _TOOLS_RC_HXX //autogen +#include <tools/rc.hxx> +#endif + +class ScRscStrLoader : public Resource +{ +public: + ScRscStrLoader( USHORT nRsc, USHORT nStrId ) : + Resource( ScResId( nRsc ) ), theStr( ScResId( nStrId ) ) + { + FreeResource(); + } + + const String& GetString() const { return theStr; } + +private: + String theStr; +}; + + +#endif // SC_STRLOAD_HXX + diff --git a/sc/inc/styleuno.hxx b/sc/inc/styleuno.hxx new file mode 100644 index 000000000000..fa1da441c736 --- /dev/null +++ b/sc/inc/styleuno.hxx @@ -0,0 +1,383 @@ +/************************************************************************* + * + * $RCSfile: styleuno.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:50 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_STYLEUNO_HXX +#define SC_STYLEUNO_HXX + +#ifndef _SFX_ITEMPROP_HXX //autogen +#include <svtools/itemprop.hxx> +#endif + +#ifndef _SFXLSTNER_HXX //autogen +#include <svtools/lstner.hxx> +#endif + +#ifndef _RSCSFX_HXX //autogen +#include <rsc/rscsfx.hxx> +#endif + +#ifndef _COM_SUN_STAR_CONTAINER_XINDEXACCESS_HPP_ +#include <com/sun/star/container/XIndexAccess.hpp> +#endif +#ifndef _COM_SUN_STAR_STYLE_XSTYLE_HPP_ +#include <com/sun/star/style/XStyle.hpp> +#endif +#ifndef _COM_SUN_STAR_STYLE_XSTYLELOADER_HPP_ +#include <com/sun/star/style/XStyleLoader.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_ +#include <com/sun/star/lang/XServiceInfo.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XNAMECONTAINER_HPP_ +#include <com/sun/star/container/XNameContainer.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_ +#include <com/sun/star/beans/XPropertySet.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSTATE_HPP_ +#include <com/sun/star/beans/XPropertyState.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XUNOTUNNEL_HPP_ +#include <com/sun/star/lang/XUnoTunnel.hpp> +#endif + +#ifndef _CPPUHELPER_IMPLBASE3_HXX_ +#include <cppuhelper/implbase3.hxx> +#endif +#ifndef _CPPUHELPER_IMPLBASE4_HXX_ +#include <cppuhelper/implbase4.hxx> +#endif +#ifndef _CPPUHELPER_IMPLBASE5_HXX_ +#include <cppuhelper/implbase5.hxx> +#endif + +class SfxStyleSheetBase; +class ScDocShell; + +class ScStyleFamilyObj; +class ScStyleObj; + + +class ScStyleNameConversion +{ +public: + static const String& DisplayToProgrammaticName( const String& rDispName, UINT16 nType ); + static const String& ProgrammaticToDisplayName( const String& rProgName, UINT16 nType ); +}; + + +class ScStyleFamiliesObj : public ::cppu::WeakImplHelper4< + ::com::sun::star::container::XIndexAccess, + ::com::sun::star::container::XNameAccess, + ::com::sun::star::style::XStyleLoader, + ::com::sun::star::lang::XServiceInfo >, + public SfxListener +{ +private: + ScDocShell* pDocShell; + + ScStyleFamilyObj* GetObjectByType_Impl(UINT16 Type) const; + ScStyleFamilyObj* GetObjectByIndex_Impl(UINT32 nIndex) const; + ScStyleFamilyObj* GetObjectByName_Impl(const rtl::OUString& aName) const; + +public: + ScStyleFamiliesObj(ScDocShell* pDocSh); + virtual ~ScStyleFamiliesObj(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // XIndexAccess + virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) + throw(::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XNameAccess + virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XStyleLoader + virtual void SAL_CALL loadStylesFromURL( const ::rtl::OUString& URL, + const ::com::sun::star::uno::Sequence< + ::com::sun::star::beans::PropertyValue >& aOptions ) + throw(::com::sun::star::io::IOException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL + getStyleLoaderOptions() throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScStyleFamilyObj : public ::cppu::WeakImplHelper3< + ::com::sun::star::container::XNameContainer, + ::com::sun::star::container::XIndexAccess, + ::com::sun::star::lang::XServiceInfo >, + public SfxListener +{ +private: + ScDocShell* pDocShell; + SfxStyleFamily eFamily; // Familie + + ScStyleObj* GetObjectByIndex_Impl(UINT32 nIndex); + ScStyleObj* GetObjectByName_Impl(const rtl::OUString& Name); + +public: + ScStyleFamilyObj(ScDocShell* pDocSh, SfxStyleFamily eFam); + virtual ~ScStyleFamilyObj(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // XNameContainer + virtual void SAL_CALL insertByName( const ::rtl::OUString& aName, + const ::com::sun::star::uno::Any& aElement ) + throw(::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::container::ElementExistException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeByName( const ::rtl::OUString& Name ) + throw(::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XNameReplace + virtual void SAL_CALL replaceByName( const ::rtl::OUString& aName, + const ::com::sun::star::uno::Any& aElement ) + throw(::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XNameAccess + virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XIndexAccess + virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) + throw(::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +class ScStyleObj : public ::cppu::WeakImplHelper5< + ::com::sun::star::style::XStyle, + ::com::sun::star::beans::XPropertySet, + ::com::sun::star::beans::XPropertyState, + ::com::sun::star::lang::XUnoTunnel, + ::com::sun::star::lang::XServiceInfo >, + public SfxListener +{ +private: + SfxItemPropertySet aPropSet; + ScDocShell* pDocShell; + SfxStyleFamily eFamily; // Familie + String aStyleName; + + SfxStyleSheetBase* GetStyle_Impl(); + const SfxItemSet* GetStyleItemSet_Impl( const String& rPropName, UINT16& rWhich ); + void SetOrResetPropertyValue_Impl( const rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Any* pValue ); + +public: + ScStyleObj(); + ScStyleObj(ScDocShell* pDocSh, SfxStyleFamily eFam, const String& rName); + virtual ~ScStyleObj(); + + // per getImplementation gerufen: + sal_Bool IsInserted() const { return pDocShell != NULL; } + SfxStyleFamily GetFamily() const { return eFamily; } + void InitDoc( ScDocShell* pNewDocSh, const String& rNewName ); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // XStyle + virtual sal_Bool SAL_CALL isUserDefined() throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL isInUse() throw(::com::sun::star::uno::RuntimeException); + virtual ::rtl::OUString SAL_CALL getParentStyle() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setParentStyle( const ::rtl::OUString& aParentStyle ) + throw(::com::sun::star::container::NoSuchElementException, + ::com::sun::star::uno::RuntimeException); + + // XNamed + virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setName( const ::rtl::OUString& aName ) + throw(::com::sun::star::uno::RuntimeException); + + // XPropertySet + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > + SAL_CALL getPropertySetInfo() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Any& aValue ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::beans::PropertyVetoException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( + const ::rtl::OUString& PropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& xListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XPropertyState + virtual ::com::sun::star::beans::PropertyState SAL_CALL getPropertyState( + const ::rtl::OUString& PropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyState > SAL_CALL + getPropertyStates( const ::com::sun::star::uno::Sequence< + ::rtl::OUString >& aPropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPropertyToDefault( const ::rtl::OUString& PropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getPropertyDefault( + const ::rtl::OUString& aPropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); + + // XUnoTunnel + virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< + sal_Int8 >& aIdentifier ) + throw(::com::sun::star::uno::RuntimeException); + + static const ::com::sun::star::uno::Sequence<sal_Int8>& getUnoTunnelId(); + static ScStyleObj* getImplementation( const ::com::sun::star::uno::Reference< + ::com::sun::star::uno::XInterface> xObj ); + +}; + +#endif + diff --git a/sc/inc/subtotal.hxx b/sc/inc/subtotal.hxx new file mode 100644 index 000000000000..b11ac30c9d33 --- /dev/null +++ b/sc/inc/subtotal.hxx @@ -0,0 +1,135 @@ +/************************************************************************* + * + * $RCSfile: subtotal.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:50 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_SUBTOTAL_HXX +#define SC_SUBTOTAL_HXX + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" +#endif + +#ifndef MSC + #include <setjmp.h> +#else + extern "C" + { + #define _JBLEN 9 /* bp, di, si, sp, ret addr, ds */ + typedef int jmp_buf[_JBLEN]; + #define _JMP_BUF_DEFINED + #define setjmp _setjmp + int __cdecl _setjmp(jmp_buf); + void __cdecl longjmp(jmp_buf, int); + }; +#endif + + + +class SubTotal +{ +private: + long nCount; + long nCount2; + double nSum; + double nSumSqr; + double nMax; + double nMin; + double nProduct; + BOOL bSumOk; + BOOL bSumSqrOk; + BOOL bProductOk; + USHORT nProgress; + +public: + USHORT nIndex; // Test + static jmp_buf aGlobalJumpBuf; + +public: + SubTotal(); + ~SubTotal(); + + void UpdateNoVal(); + void Update( double nVal ); + void Update( const SubTotal& rVal ); + + short Valid( USHORT nFunction ) const; + // return 0 => Fehler, -1 => kein Wert, 1 => ok + double Result( USHORT nFunction ) const; + static BOOL SafePlus( double& fVal1, double fVal2); + static BOOL SafeMult( double& fVal1, double fVal2); + static BOOL SafeDiv( double& fVal1, double fVal2); +}; + + +struct ScFunctionData // zum Berechnen von einzelnen Funktionen +{ + ScSubTotalFunc eFunc; + double nVal; + long nCount; + BOOL bError; + + ScFunctionData( ScSubTotalFunc eFn ) : + eFunc(eFn), nVal(0.0), nCount(0), bError(FALSE) {} +}; + + +#endif + + diff --git a/sc/inc/table.hxx b/sc/inc/table.hxx new file mode 100644 index 000000000000..e384aaf1cceb --- /dev/null +++ b/sc/inc/table.hxx @@ -0,0 +1,684 @@ +/************************************************************************* + * + * $RCSfile: table.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:50 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_TABLE_HXX +#define SC_TABLE_HXX + +#ifndef _GEN_HXX //autogen +#include <tools/gen.hxx> +#endif +#ifndef _COLOR_HXX //autogen +#include <vcl/color.hxx> +#endif + +#ifndef SC_COLUMN_HXX +#include "column.hxx" +#endif + +class SearchParam; +class SearchText; +class SfxItemSet; +class SfxStyleSheetBase; +class SvxBoxInfoItem; +class SvxBoxItem; +class SvxSearchItem; + +class ScAutoFormat; +class ScAutoFormatData; +class ScBaseCell; +class ScDocument; +class ScDrawLayer; +class ScFormulaCell; +class ScOutlineTable; +class ScPostIt; +class ScPrintSaverTab; +class ScProgress; +class ScProgress; +class ScRangeList; +class ScSortInfoArray; +class ScStyleSheet; +class ScTableLink; +class ScUserListData; +class ScIndexMap; +struct RowInfo; +struct ScFunctionData; +struct ScLineFlags; + + +class ScTable +{ +private: + // Daten pro Tabelle ------------------ + ScColumn aCol[MAXCOL+1]; + + String aName; + String aComment; + BOOL bScenario; + + String aLinkDoc; + String aLinkFlt; + String aLinkOpt; + String aLinkTab; + BYTE nLinkMode; + + // Seitenformatvorlage + String aPageStyle; + BOOL bPageSizeValid; + Size aPageSizeTwips; // Groesse der Druck-Seite + USHORT nRepeatStartX; // Wiederholungszeilen/Spalten + USHORT nRepeatEndX; // REPEAT_NONE, wenn nicht benutzt + USHORT nRepeatStartY; + USHORT nRepeatEndY; + + BOOL bProtected; + String aProtectPass; + + USHORT* pColWidth; + USHORT* pRowHeight; + + BYTE* pColFlags; + BYTE* pRowFlags; + + ScOutlineTable* pOutlineTable; + + USHORT nTableAreaX; + USHORT nTableAreaY; + BOOL bTableAreaValid; + + // interne Verwaltung ------------------ + BOOL bVisible; + + USHORT nTab; + USHORT nRecalcLvl; // Rekursionslevel Size-Recalc + ScDocument* pDocument; + SearchParam* pSearchParam; + SearchText* pSearchText; + + // SortierParameter um den Stackbedarf von Quicksort zu Minimieren + ScSortParam aSortParam; + BOOL bGlobalKeepQuery; + BOOL bSharedNameInserted; + + USHORT nPrintRangeCount; + ScRange* pPrintRanges; + ScRange* pRepeatColRange; + ScRange* pRepeatRowRange; + + USHORT nLockCount; + + ScRangeList* pScenarioRanges; + Color aScenarioColor; + USHORT nScenarioFlags; + BOOL bActiveScenario; + +friend class ScDocument; // fuer FillInfo +friend class ScDocumentIterator; +friend class ScValueIterator; +friend class ScQueryValueIterator; +friend class ScCellIterator; +friend class ScQueryCellIterator; +friend class ScHorizontalCellIterator; +friend class ScHorizontalAttrIterator; +friend class ScDocAttrIterator; +friend class ScAttrRectIterator; + + +public: + ScTable( ScDocument* pDoc, USHORT nNewTab, const String& rNewName, + BOOL bColInfo = TRUE, BOOL bRowInfo = TRUE ); + ~ScTable(); + + ScOutlineTable* GetOutlineTable() { return pOutlineTable; } + + long GetCellCount() const; + long GetWeightedCount() const; + ULONG GetCodeCount() const; // RPN-Code in Formeln + + BOOL SetOutlineTable( const ScOutlineTable* pNewOutline ); + void StartOutlineTable(); + + void DoAutoOutline( USHORT nStartCol, USHORT nStartRow, USHORT nEndCol, USHORT nEndRow ); + + BOOL TestRemoveSubTotals( const ScSubTotalParam& rParam ); + void RemoveSubTotals( ScSubTotalParam& rParam ); + BOOL DoSubTotals( ScSubTotalParam& rParam ); + + BOOL IsVisible() const { return bVisible; } + void SetVisible( BOOL bVis ); + + BOOL IsScenario() const { return bScenario; } + void SetScenario( BOOL bFlag ); + void GetScenarioComment( String& rComment) const { rComment = aComment; } + void SetScenarioComment( const String& rComment ) { aComment = rComment; } + const Color& GetScenarioColor() const { return aScenarioColor; } + void SetScenarioColor(const Color& rNew) { aScenarioColor = rNew; } + USHORT GetScenarioFlags() const { return nScenarioFlags; } + void SetScenarioFlags(USHORT nNew) { nScenarioFlags = nNew; } + void SetActiveScenario(BOOL bSet) { bActiveScenario = bSet; } + BOOL IsActiveScenario() const { return bActiveScenario; } + + BYTE GetLinkMode() const { return nLinkMode; } + BOOL IsLinked() const { return nLinkMode != SC_LINK_NONE; } + const String& GetLinkDoc() const { return aLinkDoc; } + const String& GetLinkFlt() const { return aLinkFlt; } + const String& GetLinkOpt() const { return aLinkOpt; } + const String& GetLinkTab() const { return aLinkTab; } + + void SetLink( BYTE nMode, const String& rDoc, const String& rFlt, const String& rOpt, + const String& rTab ); + + void GetName( String& rName ) const; + void SetName( const String& rNewName ); + + const String& GetPageStyle() const { return aPageStyle; } + void SetPageStyle( const String& rName ); + void PageStyleModified( const String& rNewName ); + + BOOL IsProtected() const { return bProtected; } + const String& GetPassword() const { return aProtectPass; } + void SetProtection( BOOL bProtect, const String& rPasswd ) + { bProtected = bProtect; aProtectPass = rPasswd; } + + Size GetPageSize() const; + void SetPageSize( const Size& rSize ); + void SetRepeatArea( USHORT nStartCol, USHORT nEndCol, USHORT nStartRow, USHORT nEndRow ); + + void RemoveAutoSpellObj(); + + void LockTable(); + void UnlockTable(); + + BOOL IsBlockEditable( USHORT nCol1, USHORT nRow1, USHORT nCol2, + USHORT nRow2, BOOL* pOnlyNotBecauseOfMatrix = NULL ) const; + BOOL IsSelectionEditable( const ScMarkData& rMark, + BOOL* pOnlyNotBecauseOfMatrix = NULL ) const; + + BOOL HasBlockMatrixFragment( USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2 ) const; + BOOL HasSelectionMatrixFragment( const ScMarkData& rMark ) const; + + BOOL IsBlockEmpty( USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2 ) const; + + void PutCell( const ScAddress&, ScBaseCell* pCell ); + void PutCell( const ScAddress&, ULONG nFormatIndex, ScBaseCell* pCell); + void PutCell( USHORT nCol, USHORT nRow, ScBaseCell* pCell ); + void PutCell(USHORT nCol, USHORT nRow, ULONG nFormatIndex, ScBaseCell* pCell); + // TRUE = Zahlformat gesetzt + BOOL SetString( USHORT nCol, USHORT nRow, USHORT nTab, const String& rString ); + void SetValue( USHORT nCol, USHORT nRow, const double& rVal ); + void SetNote( USHORT nCol, USHORT nRow, const ScPostIt& rNote); + void SetError( USHORT nCol, USHORT nRow, USHORT nError); + + void GetString( USHORT nCol, USHORT nRow, String& rString ); + void GetInputString( USHORT nCol, USHORT nRow, String& rString ); + double GetValue( const ScAddress& rPos ) const + { return aCol[rPos.Col()].GetValue( rPos.Row() ); } + double GetValue( USHORT nCol, USHORT nRow ); + void GetFormula( USHORT nCol, USHORT nRow, String& rFormula, + BOOL bAsciiExport = FALSE ); + BOOL GetNote( USHORT nCol, USHORT nRow, ScPostIt& rNote); + + CellType GetCellType( const ScAddress& rPos ) const + { return aCol[rPos.Col()].GetCellType( rPos.Row() ); } + CellType GetCellType( USHORT nCol, USHORT nRow ) const; + ScBaseCell* GetCell( const ScAddress& rPos ) const + { return aCol[rPos.Col()].GetCell( rPos.Row() ); } + ScBaseCell* GetCell( USHORT nCol, USHORT nRow ) const; + + void GetLastDataPos(USHORT& rCol, USHORT& rRow) const; + + BOOL TestInsertRow( USHORT nStartCol, USHORT nEndCol, USHORT nSize ); + void InsertRow( USHORT nStartCol, USHORT nEndCol, USHORT nStartRow, USHORT nSize ); + void DeleteRow( USHORT nStartCol, USHORT nEndCol, USHORT nStartRow, USHORT nSize, + BOOL* pUndoOutline = NULL ); + + BOOL TestInsertCol( USHORT nStartRow, USHORT nEndRow, USHORT nSize ); + void InsertCol( USHORT nStartCol, USHORT nStartRow, USHORT nEndRow, USHORT nSize ); + void DeleteCol( USHORT nStartCol, USHORT nStartRow, USHORT nEndRow, USHORT nSize, + BOOL* pUndoOutline = NULL ); + + void DeleteArea(USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2, USHORT nDelFlag); + void CopyToClip(USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2, ScTable* pTable, + BOOL bKeepScenarioFlags); + void CopyFromClip(USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2, short nDx, short nDy, + USHORT nInsFlag, BOOL bAsLink, ScTable* pTable); + void StartListeningInArea( USHORT nCol1, USHORT nRow1, + USHORT nCol2, USHORT nRow2 ); + void BroadcastInArea( USHORT nCol1, USHORT nRow1, + USHORT nCol2, USHORT nRow2 ); + + void CopyToTable(USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2, + USHORT nFlags, BOOL bMarked, ScTable* pDestTab, + const ScMarkData* pMarkData = NULL, + BOOL bAsLink = FALSE, BOOL bColRowFlags = TRUE); + void UndoToTable(USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2, + USHORT nFlags, BOOL bMarked, ScTable* pDestTab, + const ScMarkData* pMarkData = NULL); + + void TransposeClip( USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2, + ScTable* pTransClip, USHORT nFlags, BOOL bAsLink ); + + // Markierung von diesem Dokument + void MixMarked( const ScMarkData& rMark, USHORT nFunction, + BOOL bSkipEmpty, ScTable* pSrcTab ); + void MixData( USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2, + USHORT nFunction, BOOL bSkipEmpty, ScTable* pSrcTab ); + + void CopyData( USHORT nStartCol, USHORT nStartRow, USHORT nEndCol, USHORT nEndRow, + USHORT nDestCol, USHORT nDestRow, USHORT nDestTab ); + + void CopyScenarioFrom( const ScTable* pSrcTab ); + void CopyScenarioTo( ScTable* pDestTab ) const; + BOOL TestCopyScenarioTo( const ScTable* pDestTab ) const; + void MarkScenarioIn( ScMarkData& rMark, USHORT nNeededBits ) const; + BOOL HasScenarioRange( const ScRange& rRange ) const; + void InvalidateScenarioRanges(); + const ScRangeList* GetScenarioRanges() const; + + void CopyUpdated( const ScTable* pPosTab, ScTable* pDestTab ) const; + + void InvalidateTableArea() { bTableAreaValid = FALSE; } + + BOOL GetCellArea( USHORT& rEndCol, USHORT& rEndRow ) const; // FALSE = leer + BOOL GetTableArea( USHORT& rEndCol, USHORT& rEndRow ) const; + BOOL GetPrintArea( USHORT& rEndCol, USHORT& rEndRow, BOOL bNotes ) const; + BOOL GetPrintAreaHor( USHORT nStartRow, USHORT nEndRow, + USHORT& rEndCol, BOOL bNotes ) const; + BOOL GetPrintAreaVer( USHORT nStartCol, USHORT nEndCol, + USHORT& rEndRow, BOOL bNotes ) const; + + BOOL GetDataStart( USHORT& rStartCol, USHORT& rStartRow ) const; + + void ExtendPrintArea( OutputDevice* pDev, + USHORT nStartCol, USHORT nStartRow, USHORT& rEndCol, USHORT nEndRow ); + + void GetDataArea( USHORT& rStartCol, USHORT& rStartRow, USHORT& rEndCol, USHORT& rEndRow, + BOOL bIncludeOld ); + + USHORT GetEmptyLinesInBlock( USHORT nStartCol, USHORT nStartRow, + USHORT nEndCol, USHORT nEndRow, ScDirection eDir ); + + void FindAreaPos( USHORT& rCol, USHORT& rRow, short nMovX, short nMovY ); + void GetNextPos( USHORT& rCol, USHORT& rRow, short nMovX, short nMovY, + BOOL bMarked, BOOL bUnprotected, const ScMarkData& rMark ); + + void LimitChartArea( USHORT& rStartCol, USHORT& rStartRow, USHORT& rEndCol, USHORT& rEndRow ); + + BOOL HasData( USHORT nCol, USHORT nRow ); + BOOL HasStringData( USHORT nCol, USHORT nRow ); + BOOL HasValueData( USHORT nCol, USHORT nRow ); + USHORT GetErrorData(USHORT nCol, USHORT nRow) const; + BOOL HasStringCells( USHORT nStartCol, USHORT nStartRow, + USHORT nEndCol, USHORT nEndRow ) const; + + USHORT GetErrCode( const ScAddress& rPos ) const + { return aCol[rPos.Col()].GetErrCode( rPos.Row() ); } + USHORT GetErrCode( USHORT nCol, USHORT nRow ) const; + + void ResetChanged( const ScRange& rRange ); + + void SetDirty(); + void SetDirty( const ScRange& ); + void SetDirtyAfterLoad(); + void SetDirtyVar(); + void CalcAll(); + void CalcAfterLoad(); + void CompileAll(); + void CompileXML(); + + void UpdateReference( UpdateRefMode eUpdateRefMode, USHORT nCol1, USHORT nRow1, USHORT nTab1, + USHORT nCol2, USHORT nRow2, USHORT nTab2, + short nDx, short nDy, short nDz, + ScDocument* pUndoDoc = NULL ); + + void UpdateTranspose( const ScRange& rSource, const ScAddress& rDest, + ScDocument* pUndoDoc ); + + void UpdateGrow( const ScRange& rArea, USHORT nGrowX, USHORT nGrowY ); + + void UpdateInsertTab(USHORT nTable); + void UpdateInsertTabOnlyCells(USHORT nTable); + void UpdateDeleteTab( USHORT nTable, BOOL bIsMove, ScTable* pRefUndo = NULL ); + void UpdateMoveTab(USHORT nOldPos, USHORT nNewPos, USHORT nTabNo, ScProgress& ); + void UpdateCompile( BOOL bForceIfNameInUse = FALSE ); + void SetTabNo(USHORT nNewTab); + BOOL IsRangeNameInUse(USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2, + USHORT nIndex) const; + void ReplaceRangeNamesInUse(USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2, + const ScIndexMap& rMap ); + void Fill( USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2, + USHORT nFillCount, FillDir eFillDir, FillCmd eFillCmd, FillDateCmd eFillDateCmd, + double nStepValue, double nMaxValue); + String GetAutoFillPreview( const ScRange& rSource, USHORT nEndX, USHORT nEndY ); + + void UpdateSelectionFunction( ScFunctionData& rData, + USHORT nStartCol, USHORT nStartRow, USHORT nEndCol, USHORT nEndRow, + const ScMarkData& rMark ); + + void AutoFormat( USHORT nStartCol, USHORT nStartRow, USHORT nEndCol, USHORT nEndRow, + USHORT nFormatNo ); + void GetAutoFormatData(USHORT nStartCol, USHORT nStartRow, USHORT nEndCol, USHORT nEndRow, ScAutoFormatData& rData); + void ScReplaceTabsStr( String& rStr, const String& rSrch, const String& rRepl ); // aus sw + BOOL SearchAndReplace(const SvxSearchItem& rSearchItem, + USHORT& rCol, USHORT& rRow, ScMarkData& rMark, + String& rUndoStr, ScDocument* pUndoDoc); + + void FindMaxRotCol( RowInfo* pRowInfo, USHORT nArrCount, USHORT nX1, USHORT nX2 ) const; + + void GetBorderLines( USHORT nCol, USHORT nRow, + const SvxBorderLine** ppLeft, const SvxBorderLine** ppTop, + const SvxBorderLine** ppRight, const SvxBorderLine** ppBottom ) const; + + BOOL HasLines( const ScRange& rRange, Rectangle& rSizes ) const; + BOOL HasAttrib( USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2, USHORT nMask ) const; + BOOL HasAttribSelection( const ScMarkData& rMark, USHORT nMask ) const; + BOOL ExtendMerge( USHORT nStartCol, USHORT nStartRow, + USHORT& rEndCol, USHORT& rEndRow, + BOOL bRefresh, BOOL bAttrs ); + const SfxPoolItem* GetAttr( USHORT nCol, USHORT nRow, USHORT nWhich ) const; + const ScPatternAttr* GetPattern( USHORT nCol, USHORT nRow ) const; + + ULONG GetNumberFormat( const ScAddress& rPos ) const + { return aCol[rPos.Col()].GetNumberFormat( rPos.Row() ); } + ULONG GetNumberFormat( USHORT nCol, USHORT nRow ) const; + void MergeSelectionPattern( SfxItemSet** ppSet, + const ScMarkData& rMark, BOOL bDeep ) const; + void MergePatternArea( SfxItemSet** ppSet, USHORT nCol1, USHORT nRow1, + USHORT nCol2, USHORT nRow2, BOOL bDeep ) const; + void MergeBlockFrame( SvxBoxItem* pLineOuter, SvxBoxInfoItem* pLineInner, + ScLineFlags& rFlags, + USHORT nStartCol, USHORT nStartRow, + USHORT nEndCol, USHORT nEndRow ) const; + void ApplyBlockFrame( const SvxBoxItem* pLineOuter, + const SvxBoxInfoItem* pLineInner, + USHORT nStartCol, USHORT nStartRow, + USHORT nEndCol, USHORT nEndRow ); + + void ApplyAttr( USHORT nCol, USHORT nRow, const SfxPoolItem& rAttr ); + void ApplyPattern( USHORT nCol, USHORT nRow, const ScPatternAttr& rAttr ); + void ApplyPatternArea( USHORT nStartCol, USHORT nStartRow, USHORT nEndCol, USHORT nEndRow, const ScPatternAttr& rAttr ); + void SetPattern( const ScAddress& rPos, const ScPatternAttr& rAttr, BOOL bPutToPool = FALSE ) + { aCol[rPos.Col()].SetPattern( rPos.Row(), rAttr, bPutToPool ); } + void SetPattern( USHORT nCol, USHORT nRow, const ScPatternAttr& rAttr, BOOL bPutToPool = FALSE ); + void ApplyPatternIfNumberformatIncompatible( const ScRange& rRange, + const ScPatternAttr& rPattern, short nNewType ); + + void ApplyStyle( USHORT nCol, USHORT nRow, const ScStyleSheet& rStyle ); + void ApplyStyleArea( USHORT nStartCol, USHORT nStartRow, USHORT nEndCol, USHORT nEndRow, const ScStyleSheet& rStyle ); + void ApplySelectionStyle(const ScStyleSheet& rStyle, const ScMarkData& rMark); + void ApplySelectionLineStyle( const ScMarkData& rMark, + const SvxBorderLine* pLine, BOOL bColorOnly ); + + const ScStyleSheet* GetStyle( USHORT nCol, USHORT nRow ) const; + const ScStyleSheet* GetSelectionStyle( const ScMarkData& rMark, BOOL& rFound ) const; + const ScStyleSheet* GetAreaStyle( BOOL& rFound, USHORT nCol1, USHORT nRow1, + USHORT nCol2, USHORT nRow2 ) const; + + void StyleSheetChanged( const SfxStyleSheetBase* pStyleSheet, BOOL bRemoved, + OutputDevice* pDev, + double nPPTX, double nPPTY, + const Fraction& rZoomX, const Fraction& rZoomY ); + + BOOL IsStyleSheetUsed( const SfxStyleSheetBase& rStyle ) const; + + BOOL ApplyFlags( USHORT nStartCol, USHORT nStartRow, USHORT nEndCol, USHORT nEndRow, INT16 nFlags ); + BOOL RemoveFlags( USHORT nStartCol, USHORT nStartRow, USHORT nEndCol, USHORT nEndRow, INT16 nFlags ); + + void ApplySelectionCache( SfxItemPoolCache* pCache, const ScMarkData& rMark ); + void DeleteSelection( USHORT nDelFlag, const ScMarkData& rMark ); + + void ClearSelectionItems( const USHORT* pWhich, const ScMarkData& rMark ); + void ChangeSelectionIndent( BOOL bIncrement, const ScMarkData& rMark ); + + const ScRange* GetRepeatColRange() const { return pRepeatColRange; } + const ScRange* GetRepeatRowRange() const { return pRepeatRowRange; } + void SetRepeatColRange( const ScRange* pNew ); + void SetRepeatRowRange( const ScRange* pNew ); + + USHORT GetPrintRangeCount() const { return nPrintRangeCount; } + const ScRange* GetPrintRange(USHORT nPos) const; + void SetPrintRangeCount( USHORT nNew ); + void SetPrintRange( USHORT nPos, const ScRange& rNew ); + void FillPrintSaver( ScPrintSaverTab& rSaveTab ) const; + void RestorePrintRanges( const ScPrintSaverTab& rSaveTab ); + + USHORT GetOptimalColWidth( USHORT nCol, OutputDevice* pDev, + double nPPTX, double nPPTY, + const Fraction& rZoomX, const Fraction& rZoomY, + BOOL bFormula, const ScMarkData* pMarkData, + BOOL bSimpleTextImport ); + BOOL SetOptimalHeight( USHORT nStartRow, USHORT nEndRow, USHORT nExtra, + OutputDevice* pDev, + double nPPTX, double nPPTY, + const Fraction& rZoomX, const Fraction& rZoomY, + BOOL bForce ); + long GetNeededSize( USHORT nCol, USHORT nRow, + OutputDevice* pDev, + double nPPTX, double nPPTY, + const Fraction& rZoomX, const Fraction& rZoomY, + BOOL bWidth, BOOL bTotalSize ); + void SetColWidth( USHORT nCol, USHORT nNewWidth ); + void SetRowHeight( USHORT nRow, USHORT nNewHeight ); + BOOL SetRowHeightRange( USHORT nStartRow, USHORT nEndRow, USHORT nNewHeight, + double nPPTX, double nPPTY ); + // nPPT fuer Test auf Veraenderung + void SetManualHeight( USHORT nStartRow, USHORT nEndRow, BOOL bManual ); + + USHORT GetColWidth( USHORT nCol ) const; + USHORT GetRowHeight( USHORT nRow ) const; + ULONG GetColOffset( USHORT nCol ) const; + ULONG GetRowOffset( USHORT nRow ) const; + + USHORT GetOriginalWidth( USHORT nCol ) const; + + USHORT GetHiddenRowCount( USHORT nRow ) const; + + void ShowCol(USHORT nCol, BOOL bShow); + void ShowRow(USHORT nRow, BOOL bShow); + void DBShowRow(USHORT nRow, BOOL bShow); + + void ShowRows(USHORT nRow1, USHORT nRow2, BOOL bShow); + void DBShowRows(USHORT nRow1, USHORT nRow2, BOOL bShow); + + void SetColFlags( USHORT nCol, BYTE nNewFlags ); + void SetRowFlags( USHORT nRow, BYTE nNewFlags ); + + USHORT GetLastFlaggedCol() const; + USHORT GetLastFlaggedRow() const; + + BOOL IsFiltered(USHORT nRow) const; + + BYTE GetColFlags( USHORT nCol ) const; + BYTE GetRowFlags( USHORT nRow ) const; + + BOOL UpdateOutlineCol( USHORT nStartCol, USHORT nEndCol, BOOL bShow ); + BOOL UpdateOutlineRow( USHORT nStartRow, USHORT nEndRow, BOOL bShow ); + + void UpdatePageBreaks( const ScRange* pUserArea ); + void RemoveManualBreaks(); + BOOL HasManualBreaks() const; + + void StripHidden( USHORT& rX1, USHORT& rY1, USHORT& rX2, USHORT& rY2 ); + void ExtendHidden( USHORT& rX1, USHORT& rY1, USHORT& rX2, USHORT& rY2 ); + + BOOL Load( SvStream& rStream, USHORT nVersion, ScProgress* pProgress ); + BOOL Save( SvStream& rStream, long& rSavedDocCells, ScProgress* pProgress ) const; + + void Sort(const ScSortParam& rSortParam, BOOL bKeepQuery); + BOOL ValidQuery(USHORT nRow, const ScQueryParam& rQueryParam, BOOL* pSpecial = NULL); + void TopTenQuery( ScQueryParam& ); + USHORT Query(ScQueryParam& rQueryParam, BOOL bKeepSub); + BOOL CreateQueryParam(USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2, ScQueryParam& rQueryParam); + + void GetFilterEntries(USHORT nCol, USHORT nRow1, USHORT nRow2, TypedStrCollection& rStrings); + BOOL GetDataEntries(USHORT nCol, USHORT nRow, TypedStrCollection& rStrings, BOOL bLimit); + + BOOL HasColHeader( USHORT nStartCol, USHORT nStartRow, USHORT nEndCol, USHORT nEndRow ); + BOOL HasRowHeader( USHORT nStartCol, USHORT nStartRow, USHORT nEndCol, USHORT nEndRow ); + + void DoColResize( USHORT nCol1, USHORT nCol2, USHORT nAdd ); + + // maximale Stringlaengen einer Column, fuer z.B. dBase Export + xub_StrLen GetMaxStringLen( USHORT nCol, + USHORT nRowStart, USHORT nRowEnd ) const; + xub_StrLen GetMaxNumberStringLen( USHORT& nPrecision, + USHORT nCol, + USHORT nRowStart, USHORT nRowEnd ) const; + + void FindConditionalFormat( ULONG nKey, ScRangeList& rRanges ); + + void IncRecalcLevel() { ++nRecalcLvl; } + void DecRecalcLevel() { if (!--nRecalcLvl) SetDrawPageSize(); } + +private: + void FillSeries( USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2, + USHORT nFillCount, FillDir eFillDir, FillCmd eFillCmd, + FillDateCmd eFillDateCmd, + double nStepValue, double nMaxValue, USHORT nMinDigits, + BOOL bAttribs, ScProgress& rProgress ); + void FillAnalyse( USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2, + FillCmd& rCmd, FillDateCmd& rDateCmd, + double& rInc, USHORT& rMinDigits, + ScUserListData*& rListData, USHORT& rListIndex); + void FillAuto( USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2, + USHORT nFillCount, FillDir eFillDir, ScProgress& rProgress ); + + BOOL ValidNextPos( USHORT nCol, USHORT nRow, const ScMarkData& rMark, + BOOL bMarked, BOOL bUnprotected ); + + void AutoFormatArea(USHORT nStartCol, USHORT nStartRow, USHORT nEndCol, USHORT nEndRow, + USHORT nIndex, USHORT nFormatNo); + void GetAutoFormatAttr(USHORT nCol, USHORT nRow, USHORT nIndex, ScAutoFormatData& rData); + void GetAutoFormatFrame(USHORT nCol, USHORT nRow, USHORT nFlags, USHORT nIndex, ScAutoFormatData& rData); + BOOL SearchCell(const SvxSearchItem& rSearchItem, USHORT nCol, USHORT nRow, + const ScMarkData& rMark, String& rUndoStr, ScDocument* pUndoDoc); + BOOL Search(const SvxSearchItem& rSearchItem, USHORT& rCol, USHORT& rRow, + const ScMarkData& rMark, String& rUndoStr, ScDocument* pUndoDoc); + BOOL SearchAll(const SvxSearchItem& rSearchItem, ScMarkData& rMark, + String& rUndoStr, ScDocument* pUndoDoc); + BOOL Replace(const SvxSearchItem& rSearchItem, USHORT& rCol, USHORT& rRow, + const ScMarkData& rMark, String& rUndoStr, ScDocument* pUndoDoc); + BOOL ReplaceAll(const SvxSearchItem& rSearchItem, ScMarkData& rMark, + String& rUndoStr, ScDocument* pUndoDoc); + + BOOL SearchStyle(const SvxSearchItem& rSearchItem, USHORT& rCol, USHORT& rRow, + ScMarkData& rMark); + BOOL ReplaceStyle(const SvxSearchItem& rSearchItem, USHORT& rCol, USHORT& rRow, + ScMarkData& rMark, BOOL bIsUndo); + BOOL SearchAllStyle(const SvxSearchItem& rSearchItem, ScMarkData& rMark); + BOOL ReplaceAllStyle(const SvxSearchItem& rSearchItem, ScMarkData& rMark, + ScDocument* pUndoDoc); + + // benutzen globalen SortParam: + BOOL IsSorted(USHORT nStart, USHORT nEnd); + void DecoladeRow( ScSortInfoArray*, USHORT nRow1, USHORT nRow2 ); + void SwapCol(USHORT nCol1, USHORT nCol2); + void SwapRow(USHORT nRow1, USHORT nRow2); + short CompareCell( USHORT nSort, + ScBaseCell* pCell1, USHORT nCell1Col, USHORT nCell1Row, + ScBaseCell* pCell2, USHORT nCell2Col, USHORT nCell2Row ); + short Compare(USHORT nIndex1, USHORT nIndex2); + short Compare( ScSortInfoArray*, USHORT nIndex1, USHORT nIndex2); + ScSortInfoArray* CreateSortInfoArray( USHORT nInd1, USHORT nInd2 ); + void QuickSort( ScSortInfoArray*, short nLo, short nHi); + void SortReorder( ScSortInfoArray*, ScProgress& ); + + BOOL CreateExcelQuery(USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2, ScQueryParam& rQueryParam); + BOOL CreateStarQuery(USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2, ScQueryParam& rQueryParam); + void GetUpperCellString(USHORT nCol, USHORT nRow, String& rStr); + + BOOL RefVisible(ScFormulaCell* pCell); + + BOOL IsEmptyLine(USHORT nRow, USHORT nStartCol, USHORT nEndCol); + + void IncDate(double& rVal, USHORT& nDayOfMonth, double nStep, FillDateCmd eCmd); + void FillFormula(USHORT& nFormulaCounter, BOOL bFirst, ScFormulaCell* pSrcCell, + USHORT nDestCol, USHORT nDestRow, BOOL bLast ); + void UpdateInsertTabAbs(USHORT nNewPos); + BOOL GetNextSpellingCell(USHORT& rCol, USHORT& rRow, BOOL bInSel, + const ScMarkData& rMark) const; + BOOL GetNextMarkedCell( USHORT& rCol, USHORT& rRow, const ScMarkData& rMark ); + void SetDrawPageSize(); + BOOL TestTabRefAbs(USHORT nTable); + void CompileDBFormula(); + void CompileDBFormula( BOOL bCreateFormulaString ); + void CompileNameFormula( BOOL bCreateFormulaString ); + void CompileColRowNameFormula(); + + void StartListening( const ScAddress& rAddress, SfxListener* pListener ); + void EndListening( const ScAddress& rAddress, SfxListener* pListener ); + void StartAllListeners(); + void StartRelNameListeners(); + void SetRelNameDirty(); + + USHORT FillMaxRot( RowInfo* pRowInfo, USHORT nArrCount, USHORT nX1, USHORT nX2, + USHORT nCol, USHORT nAttrRow1, USHORT nAttrRow2, USHORT nArrY, + const ScPatternAttr* pPattern, const SfxItemSet* pCondSet ) const; + + // Idleberechnung der OutputDevice-Zelltextbreite + void InvalidateTextWidth( const ScAddress* pAdrFrom = NULL, + const ScAddress* pAdrTo = NULL, + BOOL bBroadcast = FALSE ); +}; + + +#endif + + diff --git a/sc/inc/tablink.hxx b/sc/inc/tablink.hxx new file mode 100644 index 000000000000..5cff4dd702b9 --- /dev/null +++ b/sc/inc/tablink.hxx @@ -0,0 +1,140 @@ +/************************************************************************* + * + * $RCSfile: tablink.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:50 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_TABLINK_HXX +#define SC_TABLINK_HXX + +#ifndef _LNKBASE_HXX //autogen +#include <so3/lnkbase.hxx> +#endif + +#ifndef SO2_DECL_SVEMBEDDEDOBJECT_DEFINED +#define SO2_DECL_SVEMBEDDEDOBJECT_DEFINED +SO2_DECL_REF(SvEmbeddedObject) +#endif + +class ScDocShell; +class SfxObjectShell; + +class ScTableLink : public SvBaseLink +{ +private: + ScDocShell* pDocShell; // Container + String aFileName; + String aFilterName; + String aOptions; + BOOL bInCreate; + BOOL bAddUndo; + BOOL bDoPaint; + +public: + TYPEINFO(); + ScTableLink( ScDocShell* pDocSh, const String& rFile, + const String& rFilter, const String& rOpt); + ScTableLink( SfxObjectShell* pShell, const String& rFile, + const String& rFilter, const String& rOpt); + virtual ~ScTableLink(); + virtual void Closed(); + virtual void DataChanged(SvData& rData); + + virtual BOOL Edit(Window* pParent); + + BOOL Refresh(const String& rNewFile, const String& rNewFilter, + const String* pNewOptions = NULL); + void SetInCreate(BOOL bSet) { bInCreate = bSet; } + void SetAddUndo(BOOL bSet) { bAddUndo = bSet; } + void SetPaint(BOOL bSet) { bDoPaint = bSet; } + + const String& GetFileName() const { return aFileName; } + const String& GetFilterName() const { return aFilterName; } + const String& GetOptions() const { return aOptions; } + + BOOL IsUsed() const; +}; + + +class ScDocument; +class SfxMedium; + +class ScDocumentLoader +{ +private: + ScDocShell* pDocShell; + SvEmbeddedObjectRef aRef; + SfxMedium* pMedium; + +public: + ScDocumentLoader( const String& rFileName, + String& rFilterName, String& rOptions, + UINT32 nRekCnt = 0 ); + ~ScDocumentLoader(); + ScDocument* GetDocument(); + ScDocShell* GetDocShell() { return pDocShell; } + BOOL IsError() const; + String GetTitle() const; + + static String GetOptions( SfxMedium& rMedium ); + static void GetFilterName( const String& rFileName, + String& rFilter, String& rOptions ); +}; + +#endif + diff --git a/sc/inc/targuno.hxx b/sc/inc/targuno.hxx new file mode 100644 index 000000000000..58c0dc6e8319 --- /dev/null +++ b/sc/inc/targuno.hxx @@ -0,0 +1,301 @@ +/************************************************************************* + * + * $RCSfile: targuno.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:50 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_TARGUNO_HXX +#define SC_TARGUNO_HXX + +#ifndef _SFXLSTNER_HXX //autogen +#include <svtools/lstner.hxx> +#endif + +#ifndef _COM_SUN_STAR_DOCUMENT_XLINKTARGETSUPPLIER_HPP_ +#include <com/sun/star/document/XLinkTargetSupplier.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XSERVICENAME_HPP_ +#include <com/sun/star/lang/XServiceName.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_ +#include <com/sun/star/lang/XServiceInfo.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_PROPERTYVALUES_HPP_ +#include <com/sun/star/beans/PropertyValues.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_ +#include <com/sun/star/beans/XPropertySet.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_PROPERTYVALUE_HPP_ +#include <com/sun/star/beans/PropertyValue.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_PROPERTYSTATE_HPP_ +#include <com/sun/star/beans/PropertyState.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSETINFO_HPP_ +#include <com/sun/star/beans/XPropertySetInfo.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_XMULTIPROPERTYSET_HPP_ +#include <com/sun/star/beans/XMultiPropertySet.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_XFASTPROPERTYSET_HPP_ +#include <com/sun/star/beans/XFastPropertySet.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_XVETOABLECHANGELISTENER_HPP_ +#include <com/sun/star/beans/XVetoableChangeListener.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSTATE_HPP_ +#include <com/sun/star/beans/XPropertyState.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSTATECHANGELISTENER_HPP_ +#include <com/sun/star/beans/XPropertyStateChangeListener.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_PROPERTYATTRIBUTE_HPP_ +#include <com/sun/star/beans/PropertyAttribute.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTIESCHANGELISTENER_HPP_ +#include <com/sun/star/beans/XPropertiesChangeListener.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYCHANGELISTENER_HPP_ +#include <com/sun/star/beans/XPropertyChangeListener.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYACCESS_HPP_ +#include <com/sun/star/beans/XPropertyAccess.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYCONTAINER_HPP_ +#include <com/sun/star/beans/XPropertyContainer.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_PROPERTYSTATECHANGEEVENT_HPP_ +#include <com/sun/star/beans/PropertyStateChangeEvent.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_PROPERTYCHANGEEVENT_HPP_ +#include <com/sun/star/beans/PropertyChangeEvent.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XENUMERATIONACCESS_HPP_ +#include <com/sun/star/container/XEnumerationAccess.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XHIERARCHICALNAMEACCESS_HPP_ +#include <com/sun/star/container/XHierarchicalNameAccess.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XNAMEACCESS_HPP_ +#include <com/sun/star/container/XNameAccess.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XCONTENTENUMERATIONACCESS_HPP_ +#include <com/sun/star/container/XContentEnumerationAccess.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XENUMERATION_HPP_ +#include <com/sun/star/container/XEnumeration.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XELEMENTACCESS_HPP_ +#include <com/sun/star/container/XElementAccess.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XINDEXACCESS_HPP_ +#include <com/sun/star/container/XIndexAccess.hpp> +#endif + +#ifndef _CPPUHELPER_IMPLBASE2_HXX_ +#include <cppuhelper/implbase2.hxx> +#endif +#ifndef _CPPUHELPER_IMPLBASE3_HXX_ +#include <cppuhelper/implbase3.hxx> +#endif + +class ScDocShell; + + +#define SC_LINKTARGETTYPE_SHEET 0 +#define SC_LINKTARGETTYPE_RANGENAME 1 +#define SC_LINKTARGETTYPE_DBAREA 2 + +#define SC_LINKTARGETTYPE_COUNT 3 + +#define SCLINKTARGET_SERVICE "com.sun.star.document.LinkTarget" + + +//! Graphic / OleObject (need separate collections!) + + +class ScLinkTargetTypesObj : public ::cppu::WeakImplHelper2< + ::com::sun::star::container::XNameAccess, + ::com::sun::star::lang::XServiceInfo >, + public SfxListener +{ +private: + ScDocShell* pDocShell; + String aNames[SC_LINKTARGETTYPE_COUNT]; + +public: + ScLinkTargetTypesObj(ScDocShell* pDocSh); + virtual ~ScLinkTargetTypesObj(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // ::com::sun::star::container::XNameAccess + virtual ::com::sun::star::uno::Any SAL_CALL getByName(const ::rtl::OUString& aName) + throw( ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException ); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString> SAL_CALL getElementNames(void) throw( ::com::sun::star::uno::RuntimeException ); + virtual sal_Bool SAL_CALL hasByName(const ::rtl::OUString& aName) throw( ::com::sun::star::uno::RuntimeException ); + + // ::com::sun::star::container::XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType(void) throw( ::com::sun::star::uno::RuntimeException ); + virtual sal_Bool SAL_CALL hasElements(void) throw( ::com::sun::star::uno::RuntimeException ); + + // ::com::sun::star::lang::XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName(void) throw( ::com::sun::star::uno::RuntimeException ); + virtual sal_Bool SAL_CALL supportsService(const ::rtl::OUString& ServiceName) throw( ::com::sun::star::uno::RuntimeException ); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString> SAL_CALL getSupportedServiceNames(void) throw( ::com::sun::star::uno::RuntimeException ); +}; + + +class ScLinkTargetTypeObj : public ::cppu::WeakImplHelper3< + ::com::sun::star::beans::XPropertySet, + ::com::sun::star::document::XLinkTargetSupplier, + ::com::sun::star::lang::XServiceInfo >, + public SfxListener +{ +private: + ScDocShell* pDocShell; + sal_uInt16 nType; + String aName; + +public: + ScLinkTargetTypeObj(ScDocShell* pDocSh, sal_uInt16 nT); + virtual ~ScLinkTargetTypeObj(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + static void SetLinkTargetBitmap( ::com::sun::star::uno::Any& rRet, sal_uInt16 nType ); + + // ::com::sun::star::beans::XPropertySet + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo(void) throw( ::com::sun::star::uno::RuntimeException ); + virtual void SAL_CALL setPropertyValue(const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Any& aValue) + throw( ::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::beans::PropertyVetoException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException ); + virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue(const ::rtl::OUString& PropertyName) + throw( ::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException ); + virtual void SAL_CALL addPropertyChangeListener(const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener > & xListener) + throw( ::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException ); + virtual void SAL_CALL removePropertyChangeListener(const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener > & aListener) + throw( ::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException ); + virtual void SAL_CALL addVetoableChangeListener(const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener > & aListener) + throw( ::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException ); + virtual void SAL_CALL removeVetoableChangeListener(const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener > & aListener) + throw( ::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException ); + + // ::com::sun::star::document::XLinkTargetSupplier + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > SAL_CALL getLinks(void) throw( ::com::sun::star::uno::RuntimeException ); + + // ::com::sun::star::lang::XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName(void) throw( ::com::sun::star::uno::RuntimeException ); + virtual sal_Bool SAL_CALL supportsService(const ::rtl::OUString& ServiceName) throw( ::com::sun::star::uno::RuntimeException ); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString> SAL_CALL getSupportedServiceNames(void) throw( ::com::sun::star::uno::RuntimeException ); +}; + + +class ScLinkTargetsObj : public ::cppu::WeakImplHelper2< + ::com::sun::star::container::XNameAccess, + ::com::sun::star::lang::XServiceInfo > +{ +private: + ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > xCollection; + +public: + ScLinkTargetsObj( const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > & rColl ); + virtual ~ScLinkTargetsObj(); + + // ::com::sun::star::container::XNameAccess + virtual ::com::sun::star::uno::Any SAL_CALL getByName(const ::rtl::OUString& aName) + throw( ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException ); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString> SAL_CALL getElementNames(void) throw( ::com::sun::star::uno::RuntimeException ); + virtual sal_Bool SAL_CALL hasByName(const ::rtl::OUString& aName) throw( ::com::sun::star::uno::RuntimeException ); + + // ::com::sun::star::container::XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType(void) throw( ::com::sun::star::uno::RuntimeException ); + virtual sal_Bool SAL_CALL hasElements(void) throw( ::com::sun::star::uno::RuntimeException ); + + // ::com::sun::star::lang::XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName(void) throw( ::com::sun::star::uno::RuntimeException ); + virtual sal_Bool SAL_CALL supportsService(const ::rtl::OUString& ServiceName) throw( ::com::sun::star::uno::RuntimeException ); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString> SAL_CALL getSupportedServiceNames(void) throw( ::com::sun::star::uno::RuntimeException ); +}; + + +#endif + diff --git a/sc/inc/textuno.hxx b/sc/inc/textuno.hxx new file mode 100644 index 000000000000..580eb7133276 --- /dev/null +++ b/sc/inc/textuno.hxx @@ -0,0 +1,295 @@ +/************************************************************************* + * + * $RCSfile: textuno.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:50 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_TEXTSUNO_HXX +#define SC_TEXTSUNO_HXX + +#ifndef _SVX_UNOTEXT_HXX +#include <svx/unotext.hxx> +#endif + +#ifndef _COM_SUN_STAR_TEXT_XTEXTFIELDSSUPPLIER_HPP_ +#include <com/sun/star/text/XTextFieldsSupplier.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XHEADERFOOTERCONTENT_HPP_ +#include <com/sun/star/sheet/XHeaderFooterContent.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_ +#include <com/sun/star/lang/XServiceInfo.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XUNOTUNNEL_HPP_ +#include <com/sun/star/lang/XUnoTunnel.hpp> +#endif + +#ifndef _CPPUHELPER_IMPLBASE3_HXX_ +#include <cppuhelper/implbase3.hxx> +#endif +#ifndef _CPPUHELPER_IMPLBASE5_HXX_ +#include <cppuhelper/implbase5.hxx> +#endif + + +class EditEngine; +class EditTextObject; +class ScDocShell; +class ScAddress; + +struct ScHeaderFieldData; + + +#define SC_HDFT_LEFT 0 +#define SC_HDFT_CENTER 1 +#define SC_HDFT_RIGHT 2 + + +// ScHeaderFooterContentObj ist ein dummer Container, der per setPropertyValue +// wieder in die Seitenvorlage geschrieben werden muss + +class ScHeaderFooterContentObj : public cppu::WeakImplHelper3< + com::sun::star::sheet::XHeaderFooterContent, + com::sun::star::lang::XUnoTunnel, + com::sun::star::lang::XServiceInfo > +{ +private: + EditTextObject* pLeftText; + EditTextObject* pCenterText; + EditTextObject* pRightText; + +public: + ScHeaderFooterContentObj(); + ScHeaderFooterContentObj( const EditTextObject* pLeft, + const EditTextObject* pCenter, + const EditTextObject* pRight ); + virtual ~ScHeaderFooterContentObj(); + + // fuer ScPageHFItem (per getImplementation) + const EditTextObject* GetLeftEditObject() const { return pLeftText; } + const EditTextObject* GetCenterEditObject() const { return pCenterText; } + const EditTextObject* GetRightEditObject() const { return pRightText; } + + void UpdateText( USHORT nPart, EditEngine& rSource ); + + // XHeaderFooterContent + virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XText > SAL_CALL + getLeftText() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XText > SAL_CALL + getCenterText() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XText > SAL_CALL + getRightText() throw(::com::sun::star::uno::RuntimeException); + + // XUnoTunnel + virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< + sal_Int8 >& aIdentifier ) + throw(::com::sun::star::uno::RuntimeException); + + static const com::sun::star::uno::Sequence<sal_Int8>& getUnoTunnelId(); + static ScHeaderFooterContentObj* getImplementation( const com::sun::star::uno::Reference< + com::sun::star::sheet::XHeaderFooterContent> xObj ); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +// ScHeaderFooterTextObj veraendert den Text in einem ScHeaderFooterContentObj + +class ScHeaderFooterTextObj : public cppu::WeakImplHelper5< + com::sun::star::text::XText, + com::sun::star::text::XTextRangeMover, + com::sun::star::container::XEnumerationAccess, + com::sun::star::text::XTextFieldsSupplier, + com::sun::star::lang::XServiceInfo > +{ +private: + ScHeaderFooterContentObj& rContentObj; + USHORT nPart; + SvxUnoText* pUnoText; + +public: + ScHeaderFooterTextObj( ScHeaderFooterContentObj& rContent, + USHORT nP ); + virtual ~ScHeaderFooterTextObj(); + + static void FillDummyFieldData( ScHeaderFieldData& rData ); + + // XText + virtual void SAL_CALL insertTextContent( const ::com::sun::star::uno::Reference< + ::com::sun::star::text::XTextRange >& xRange, + const ::com::sun::star::uno::Reference< + ::com::sun::star::text::XTextContent >& xContent, + sal_Bool bAbsorb ) + throw(::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeTextContent( const ::com::sun::star::uno::Reference< + ::com::sun::star::text::XTextContent >& xContent ) + throw(::com::sun::star::container::NoSuchElementException, + ::com::sun::star::uno::RuntimeException); + + // XSimpleText + virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextCursor > SAL_CALL + createTextCursor() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextCursor > SAL_CALL + createTextCursorByRange( const ::com::sun::star::uno::Reference< + ::com::sun::star::text::XTextRange >& aTextPosition ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL insertString( const ::com::sun::star::uno::Reference< + ::com::sun::star::text::XTextRange >& xRange, + const ::rtl::OUString& aString, sal_Bool bAbsorb ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL insertControlCharacter( const ::com::sun::star::uno::Reference< + ::com::sun::star::text::XTextRange >& xRange, + sal_Int16 nControlCharacter, sal_Bool bAbsorb ) + throw(::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::uno::RuntimeException); + + // XTextRange + virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XText > SAL_CALL + getText() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > SAL_CALL + getStart() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > SAL_CALL + getEnd() throw(::com::sun::star::uno::RuntimeException); + virtual ::rtl::OUString SAL_CALL getString() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setString( const ::rtl::OUString& aString ) + throw(::com::sun::star::uno::RuntimeException); + + // XTextRangeMover + virtual void SAL_CALL moveTextRange( const ::com::sun::star::uno::Reference< + ::com::sun::star::text::XTextRange >& xRange, + sal_Int16 nParagraphs ) + throw(::com::sun::star::uno::RuntimeException); + + // XEnumerationAccess + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL + createEnumeration() throw(::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XTextFieldsSupplier + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumerationAccess > SAL_CALL + getTextFields() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > SAL_CALL + getTextFieldMasters() throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); +}; + + +// abgeleitete Cursor-Objekte nur, um per getImplementation unterscheiden zu koennen + +//! uno3: SvxUnoTextCursor is not derived from XUnoTunnel, but should be (?) + +class ScCellTextCursor : public SvxUnoTextCursor +{ +public: + ScCellTextCursor(); + ScCellTextCursor(const ScCellTextCursor& rOther); + ScCellTextCursor(const SvxUnoText& rText); + virtual ~ScCellTextCursor(); + + // XUnoTunnel + virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< + sal_Int8 >& aIdentifier ) + throw(::com::sun::star::uno::RuntimeException); + + static const com::sun::star::uno::Sequence<sal_Int8>& getUnoTunnelId(); + static ScCellTextCursor* getImplementation( const com::sun::star::uno::Reference< + com::sun::star::uno::XInterface> xObj ); +}; + +class ScHeaderFooterTextCursor : public SvxUnoTextCursor +{ +public: + ScHeaderFooterTextCursor(); + ScHeaderFooterTextCursor(const ScHeaderFooterTextCursor& rOther); + ScHeaderFooterTextCursor(const SvxUnoText& rText); + virtual ~ScHeaderFooterTextCursor(); + + // XUnoTunnel + virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< + sal_Int8 >& aIdentifier ) + throw(::com::sun::star::uno::RuntimeException); + + static const com::sun::star::uno::Sequence<sal_Int8>& getUnoTunnelId(); + static ScHeaderFooterTextCursor* getImplementation( const com::sun::star::uno::Reference< + com::sun::star::uno::XInterface> xObj ); +}; + + +// ScAnnotationTextCursor nicht mehr - stattdessen wird einfach SvxUnoTextCursor benutzt + + +#endif + diff --git a/sc/inc/unitconv.hxx b/sc/inc/unitconv.hxx new file mode 100644 index 000000000000..efa5c963f62c --- /dev/null +++ b/sc/inc/unitconv.hxx @@ -0,0 +1,111 @@ +/************************************************************************* + * + * $RCSfile: unitconv.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:50 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_UNITCONV_HXX +#define SC_UNITCONV_HXX + +#include "collect.hxx" + + +class ScUnitConverterData : public StrData +{ + double fValue; + + // not implemented + ScUnitConverterData& operator=( const ScUnitConverterData& ); + +public: + ScUnitConverterData( const String& rFromUnit, + const String& rToUnit, double fValue = 1.0 ); + ScUnitConverterData( const ScUnitConverterData& ); + virtual ~ScUnitConverterData() {}; + + virtual DataObject* Clone() const; + + double GetValue() const { return fValue; } + + static void BuildIndexString( String& rStr, + const String& rFromUnit, const String& rToUnit ); + +}; + + +class International; + +class ScUnitConverter : public StrCollection +{ + void ReadIniFiles(); + void ReadIniFile( const String& rFileName, International& rIntl ); + + // not implemented + ScUnitConverter( const ScUnitConverter& ); + ScUnitConverter& operator=( const ScUnitConverter& ); + +public: + ScUnitConverter( USHORT nInit = 16, USHORT nDelta = 4 ); + virtual ~ScUnitConverter() {}; + + BOOL GetValue( double& fValue, const String& rFromUnit, + const String& rToUnit ) const; +}; + + +#endif diff --git a/sc/inc/unoguard.hxx b/sc/inc/unoguard.hxx new file mode 100644 index 000000000000..28a71495d241 --- /dev/null +++ b/sc/inc/unoguard.hxx @@ -0,0 +1,78 @@ +/************************************************************************* + * + * $RCSfile: unoguard.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:50 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_UNOGUARD_HXX +#define SC_UNOGUARD_HXX + +#ifndef _VOS_MUTEX_HXX_ //autogen +#include <vos/mutex.hxx> +#endif + +class ScUnoGuard : public NAMESPACE_VOS(OGuard) +{ +public: + ScUnoGuard(); + ~ScUnoGuard() {} +}; + + +#endif + diff --git a/sc/inc/unonames.hxx b/sc/inc/unonames.hxx new file mode 100644 index 000000000000..e6b57a01967d --- /dev/null +++ b/sc/inc/unonames.hxx @@ -0,0 +1,376 @@ +/************************************************************************* + * + * $RCSfile: unonames.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:50 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_UNONAMES_HXX +#define SC_UNONAMES_HXX + +// document +#define SC_UNO_AREALINKS "AreaLinks" +#define SC_UNO_DDELINKS "DDELinks" +#define SC_UNO_COLLABELRNG "ColumnLabelRanges" +#define SC_UNO_DATABASERNG "DatabaseRanges" +#define SC_UNO_NAMEDRANGES "NamedRanges" +#define SC_UNO_ROWLABELRNG "RowLabelRanges" +#define SC_UNO_SHEETLINKS "SheetLinks" + +// CharacterProperties +#define SC_UNONAME_CCOLOR "CharColor" +#define SC_UNONAME_CHEIGHT "CharHeight" +#define SC_UNONAME_CUNDER "CharUnderline" +#define SC_UNONAME_CWEIGHT "CharWeight" +#define SC_UNONAME_CPOST "CharPosture" +#define SC_UNONAME_CCROSS "CharCrossedOut" +#define SC_UNONAME_CLOCAL "CharLocale" +#define SC_UNONAME_CSHADD "CharShadowed" +#define SC_UNONAME_CFONT "CharFont" +#define SC_UNONAME_COUTL "CharContoured" +#define SC_UNONAME_CFNAME "CharFontName" + +// CellProperties +#define SC_UNONAME_CELLSTYL "CellStyle" +#define SC_UNONAME_CELLBACK "CellBackColor" +#define SC_UNONAME_CELLTRAN "IsCellBackgroundTransparent" +#define SC_UNONAME_CELLPRO "CellProtection" +#define SC_UNONAME_CELLHJUS "HoriJustify" +#define SC_UNONAME_CELLVJUS "VertJustify" +#define SC_UNONAME_CELLORI "Orientation" +#define SC_UNONAME_NUMFMT "NumberFormat" +#define SC_UNONAME_SHADOW "ShadowFormat" +#define SC_UNONAME_TBLBORD "TableBorder" +#define SC_UNONAME_WRAP "IsTextWrapped" +#define SC_UNONAME_PINDENT "ParaIndent" +#define SC_UNONAME_PTMARGIN "ParaTopMargin" +#define SC_UNONAME_PBMARGIN "ParaBottomMargin" +#define SC_UNONAME_PLMARGIN "ParaLeftMargin" +#define SC_UNONAME_PRMARGIN "ParaRightMargin" +#define SC_UNONAME_ROTANG "RotateAngle" +#define SC_UNONAME_ROTREF "RotateReference" + +#define SC_UNONAME_BOTTBORDER "BottomBorder" +#define SC_UNONAME_LEFTBORDER "LeftBorder" +#define SC_UNONAME_RIGHTBORDER "RightBorder" +#define SC_UNONAME_TOPBORDER "TopBorder" + +// Styles +#define SC_UNONAME_DISPNAME "DisplayName" + +// SheetCellRange +#define SC_UNONAME_POS "Position" +#define SC_UNONAME_SIZE "Size" + +// column/row/sheet +#define SC_UNONAME_CELLHGT "Height" +#define SC_UNONAME_CELLWID "Width" +#define SC_UNONAME_CELLVIS "IsVisible" +#define SC_UNONAME_CELLFILT "IsFiltered" +#define SC_UNONAME_MANPAGE "IsManualPageBreak" +#define SC_UNONAME_NEWPAGE "IsStartOfNewPage" +#define SC_UNONAME_OHEIGHT "OptimalHeight" +#define SC_UNONAME_OWIDTH "OptimalWidth" +#define SC_UNONAME_PAGESTL "PageStyle" + +// LinkTarget +#define SC_UNO_LINKDISPBIT "LinkDisplayBitmap" +#define SC_UNO_LINKDISPNAME "LinkDisplayName" + +// other cell properties +#define SC_UNONAME_CHCOLHDR "ChartColumnAsLabel" +#define SC_UNONAME_CHROWHDR "ChartRowAsLabel" +#define SC_UNONAME_CONDFMT "ConditionalFormat" +#define SC_UNONAME_CONDLOC "ConditionalFormatLocal" +#define SC_UNONAME_VALIDAT "Validation" +#define SC_UNONAME_VALILOC "ValidationLocal" +#define SC_UNONAME_FORMLOC "FormulaLocal" +#define SC_UNONAME_FORMRT "FormulaResultType" + +// auto format +#define SC_UNONAME_INCBACK "IncludeBackground" +#define SC_UNONAME_INCBORD "IncludeBorder" +#define SC_UNONAME_INCFONT "IncludeFont" +#define SC_UNONAME_INCJUST "IncludeJustify" +#define SC_UNONAME_INCNUM "IncludeNumberFormat" +#define SC_UNONAME_INCWIDTH "IncludeWidthAndHeight" + +// function description +#define SC_UNONAME_ARGUMENTS "Arguments" +#define SC_UNONAME_CATEGORY "Category" +#define SC_UNONAME_DESCRIPTION "Description" +#define SC_UNONAME_ID "Id" +#define SC_UNONAME_NAME "Name" + +// application settings +#define SC_UNONAME_DOAUTOCP "DoAutoComplete" +#define SC_UNONAME_ENTERED "EnterEdit" +#define SC_UNONAME_EXPREF "ExpandReferences" +#define SC_UNONAME_EXTFMT "ExtendFormat" +#define SC_UNONAME_LINKUPD "LinkUpdateMode" +#define SC_UNONAME_MARKHDR "MarkHeader" +#define SC_UNONAME_METRIC "Metric" +#define SC_UNONAME_MOVEDIR "MoveDirection" +#define SC_UNONAME_MOVESEL "MoveSelection" +#define SC_UNONAME_RANGEFIN "RangeFinder" +#define SC_UNONAME_SCALE "Scale" +#define SC_UNONAME_STBFUNC "StatusBarFunction" +#define SC_UNONAME_ULISTS "UserLists" +#define SC_UNONAME_USETABCOL "UseTabCol" + +// data pilot field +#define SC_UNONAME_FUNCTION "Function" + +// database options +#define SC_UNONAME_CASE "CaseSensitive" +#define SC_UNONAME_DBNAME "DatabaseName" +#define SC_UNONAME_FORMATS "IncludeFormats" +#define SC_UNONAME_INSBRK "InsertPageBreaks" +#define SC_UNONAME_KEEPFORM "KeepFormats" +#define SC_UNONAME_MOVCELLS "MoveCells" +#define SC_UNONAME_NATIVE "Native" +#define SC_UNONAME_REGEXP "RegularExpressions" +#define SC_UNONAME_SAVEOUT "SaveOutputPosition" +#define SC_UNONAME_SKIPDUP "SkipDuplicates" +#define SC_UNONAME_SRCOBJ "SourceObject" +#define SC_UNONAME_SRCTYPE "SourceType" +#define SC_UNONAME_STRIPDAT "StripData" +#define SC_UNONAME_UNIQUE "UniqueOnly" +#define SC_UNONAME_USEREGEX "UseRegularExpressions" +#define SC_UNONAME_ULIST "UserListEnabled" +#define SC_UNONAME_UINDEX "UserListIndex" +#define SC_UNONAME_BINDFMT "BindFormatsToContent" +#define SC_UNONAME_COPYOUT "CopyOutputData" +#define SC_UNONAME_ISCASE "IsCaseSensitive" +#define SC_UNONAME_ISULIST "IsUserListEnabled" +#define SC_UNONAME_OUTPOS "OutputPosition" +#define SC_UNONAME_CONTHDR "ContainsHeader" +#define SC_UNONAME_MAXFLD "MaxFieldCount" +#define SC_UNONAME_ORIENT "Orientation" +#define SC_UNONAME_SORTFLD "SortFields" + +// url field +#define SC_UNONAME_REPR "Representation" +#define SC_UNONAME_TARGET "TargetFrame" +#define SC_UNONAME_URL "URL" + +// conditional format +#define SC_UNONAME_OPERATOR "Operator" +#define SC_UNONAME_FORMULA1 "Formula1" +#define SC_UNONAME_FORMULA2 "Formula2" +#define SC_UNONAME_SOURCEPOS "SourcePosition" +#define SC_UNONAME_STYLENAME "StyleName" + +// validation +#define SC_UNONAME_ERRALSTY "ErrorAlertStyle" +#define SC_UNONAME_ERRMESS "ErrorMessage" +#define SC_UNONAME_ERRTITLE "ErrorTitle" +#define SC_UNONAME_IGNOREBL "IgnoreBlankCells" +#define SC_UNONAME_INPMESS "InputMessage" +#define SC_UNONAME_INPTITLE "InputTitle" +#define SC_UNONAME_SHOWERR "ShowErrorMessage" +#define SC_UNONAME_SHOWINP "ShowInputMessage" +#define SC_UNONAME_TYPE "Type" + +// links +#define SC_UNONAME_FILTER "Filter" +#define SC_UNONAME_FILTOPT "FilterOptions" +#define SC_UNONAME_LINKURL "Url" + +// search descriptor +#define SC_UNO_SRCHBACK "SearchBackwards" +#define SC_UNO_SRCHBYROW "SearchByRow" +#define SC_UNO_SRCHCASE "SearchCaseSensitive" +#define SC_UNO_SRCHREGEXP "SearchRegularExpression" +#define SC_UNO_SRCHSIM "SearchSimilarity" +#define SC_UNO_SRCHSIMADD "SearchSimilarityAdd" +#define SC_UNO_SRCHSIMEX "SearchSimilarityExchange" +#define SC_UNO_SRCHSIMREL "SearchSimilarityRelax" +#define SC_UNO_SRCHSIMREM "SearchSimilarityRemove" +#define SC_UNO_SRCHSTYLES "SearchStyles" +#define SC_UNO_SRCHTYPE "SearchType" +#define SC_UNO_SRCHWORDS "SearchWords" + +// page styles +#define SC_UNO_PAGE_BACKCOLOR "BackgroundColor" +#define SC_UNO_PAGE_BACKTRANS "IsBackgroundTransparent" +#define SC_UNO_PAGE_GRAPHICFILT "GraphicFilter" +#define SC_UNO_PAGE_GRAPHICLOC "GraphicLocation" +#define SC_UNO_PAGE_GRAPHICURL "GraphicURL" +#define SC_UNO_PAGE_LEFTBORDER SC_UNONAME_LEFTBORDER +#define SC_UNO_PAGE_RIGHTBORDER SC_UNONAME_RIGHTBORDER +#define SC_UNO_PAGE_BOTTBORDER SC_UNONAME_BOTTBORDER +#define SC_UNO_PAGE_TOPBORDER SC_UNONAME_TOPBORDER +#define SC_UNO_PAGE_SHADOWFORM "ShadowFormat" +#define SC_UNO_PAGE_LEFTMARGIN "LeftMargin" +#define SC_UNO_PAGE_RIGHTMARGIN "RightMargin" +#define SC_UNO_PAGE_TOPMARGIN "TopMargin" +#define SC_UNO_PAGE_BOTTMARGIN "BottomMargin" +#define SC_UNO_PAGE_LANDSCAPE "Landscape" +#define SC_UNO_PAGE_NUMBERTYPE "NumberingType" +#define SC_UNO_PAGE_SYTLELAYOUT "PageStyleLayout" +#define SC_UNO_PAGE_PAPERTRAY "PrinterPaperTray" +#define SC_UNO_PAGE_SIZE "Size" +#define SC_UNO_PAGE_WIDTH "PageWidth" +#define SC_UNO_PAGE_HEIGHT "PageHeight" +#define SC_UNO_PAGE_CENTERHOR "CenterHorizontally" +#define SC_UNO_PAGE_CENTERVER "CenterVertically" +#define SC_UNO_PAGE_PRINTANNOT "PrintAnnotations" +#define SC_UNO_PAGE_PRINTGRID "PrintGrid" +#define SC_UNO_PAGE_PRINTHEADER "PrintHeaders" +#define SC_UNO_PAGE_PRINTCHARTS "PrintCharts" +#define SC_UNO_PAGE_PRINTOBJS "PrintObjects" +#define SC_UNO_PAGE_PRINTDRAW "PrintDrawing" +#define SC_UNO_PAGE_PRINTDOWN "PrintDownFirst" +#define SC_UNO_PAGE_SCALEVAL "PageScale" +#define SC_UNO_PAGE_SCALETOPAG "ScaleToPages" +#define SC_UNO_PAGE_FIRSTPAGE "FirstPageNumber" +#define SC_UNO_PAGE_LEFTHDRCONT "LeftPageHeaderContent" +#define SC_UNO_PAGE_LEFTFTRCONT "LeftPageFooterContent" +#define SC_UNO_PAGE_RIGHTHDRCON "RightPageHeaderContent" +#define SC_UNO_PAGE_RIGHTFTRCON "RightPageFooterContent" +#define SC_UNO_PAGE_PRINTFORMUL "PrintFormulas" +#define SC_UNO_PAGE_PRINTZERO "PrintZeroValues" +#define SC_UNO_PAGE_HDRBACKCOL "HeaderBackgroundColor" +#define SC_UNO_PAGE_HDRBACKTRAN "TransparentHeaderBackground" +#define SC_UNO_PAGE_HDRGRFFILT "HeaderGraphicFilter" +#define SC_UNO_PAGE_HDRGRFLOC "HeaderGraphicLocation" +#define SC_UNO_PAGE_HDRGRFURL "HeaderGraphicURL" +#define SC_UNO_PAGE_HDRLEFTBOR "HeaderLeftBorder" +#define SC_UNO_PAGE_HDRRIGHTBOR "HeaderRightBorder" +#define SC_UNO_PAGE_HDRBOTTBOR "HeaderBottomBorder" +#define SC_UNO_PAGE_HDRTOPBOR "HeaderTopBorder" +#define SC_UNO_PAGE_HDRSHADOW "HeaderShadowFormat" +#define SC_UNO_PAGE_HDRLEFTMAR "HeaderLeftMargin" +#define SC_UNO_PAGE_HDRRIGHTMAR "HeaderRightMargin" +#define SC_UNO_PAGE_HDRBODYDIST "HeaderBodyDistance" +#define SC_UNO_PAGE_HDRHEIGHT "HeaderHeight" +#define SC_UNO_PAGE_HDRON "HeaderOn" +#define SC_UNO_PAGE_HDRDYNAMIC "HeaderDynamic" +#define SC_UNO_PAGE_HDRSHARED "HeaderShared" +#define SC_UNO_PAGE_FTRBACKCOL "FooterBackgroundColor" +#define SC_UNO_PAGE_FTRBACKTRAN "TransparentFooterBackground" +#define SC_UNO_PAGE_FTRGRFFILT "FooterGraphicFilter" +#define SC_UNO_PAGE_FTRGRFLOC "FooterGraphicLocation" +#define SC_UNO_PAGE_FTRGRFURL "FooterGraphicURL" +#define SC_UNO_PAGE_FTRLEFTBOR "FooterLeftBorder" +#define SC_UNO_PAGE_FTRRIGHTBOR "FooterRightBorder" +#define SC_UNO_PAGE_FTRBOTTBOR "FooterBottomBorder" +#define SC_UNO_PAGE_FTRTOPBOR "FooterTopBorder" +#define SC_UNO_PAGE_FTRSHADOW "FooterShadowFormat" +#define SC_UNO_PAGE_FTRLEFTMAR "FooterLeftMargin" +#define SC_UNO_PAGE_FTRRIGHTMAR "FooterRightMargin" +#define SC_UNO_PAGE_FTRBODYDIST "FooterBodyDistance" +#define SC_UNO_PAGE_FTRHEIGHT "FooterHeight" +#define SC_UNO_PAGE_FTRON "FooterOn" +#define SC_UNO_PAGE_FTRDYNAMIC "FooterDynamic" +#define SC_UNO_PAGE_FTRSHARED "FooterShared" + +// document settings +#define SC_UNO_CALCASSHOWN "CalcAsShown" +#define SC_UNO_DEFTABSTOP "DefaultTabStop" +#define SC_UNO_IGNORECASE "IgnoreCase" +#define SC_UNO_ITERCOUNT "IterationCount" +#define SC_UNO_ITERENABLED "IsIterationEnabled" +#define SC_UNO_ITEREPSILON "IterationEpsilon" +#define SC_UNO_LOOKUPLABELS "LookUpLabels" +#define SC_UNO_MATCHWHOLE "MatchWholeCell" +#define SC_UNO_NULLDATE "NullDate" +#define SC_UNO_SPELLONLINE "SpellOnline" +#define SC_UNO_STANDARDDEC "StandardDecimals" + +// view options +#define SC_UNO_COLROWHDR "ColumnRowHeaders" +#define SC_UNO_GRIDCOLOR "GridColor" +#define SC_UNO_HIDESPELL "HideSpellMarks" +#define SC_UNO_HORSCROLL "HorizontalScrollBar" +#define SC_UNO_OUTLSYMB "OutlineSymbols" +#define SC_UNO_SHEETTABS "SheetTabs" +#define SC_UNO_SHOWANCHOR "ShowAnchor" +#define SC_UNO_SHOWCHARTS "ShowCharts" +#define SC_UNO_SHOWDRAW "ShowDrawing" +#define SC_UNO_SHOWFORM "ShowFormulas" +#define SC_UNO_SHOWGRID "ShowGrid" +#define SC_UNO_SHOWHELP "ShowHelpLines" +#define SC_UNO_SHOWNOTES "ShowNotes" +#define SC_UNO_SHOWOBJ "ShowObjects" +#define SC_UNO_SHOWPAGEBR "ShowPageBreaks" +#define SC_UNO_SHOWZERO "ShowZeroValues" +#define SC_UNO_SHOWSOLID "SolidHandles" +#define SC_UNO_VALUEHIGH "ValueHighlighting" +#define SC_UNO_VERTSCROLL "VerticalScrollBar" + +// data pilot source +#define SC_UNO_COLGRAND "ColumnGrand" +#define SC_UNO_ROWGRAND "RowGrand" +#define SC_UNO_ORIGINAL "Original" +#define SC_UNO_ISDATALA "IsDataLayoutDimension" +#define SC_UNO_ORIENTAT "Orientation" +#define SC_UNO_POSITION "Position" +#define SC_UNO_FUNCTION "Function" +#define SC_UNO_USEDHIER "UsedHierarchy" +#define SC_UNO_SUBTOTAL "SubTotals" +#define SC_UNO_SHOWEMPT "ShowEmpty" +#define SC_UNO_ISVISIBL "IsVisible" +#define SC_UNO_SHOWDETA "ShowDetails" +#define SC_UNO_IGNOREEM "IgnoreEmptyRows" +#define SC_UNO_REPEATIF "RepeatIfEmpty" +#define SC_UNO_DATADESC "DataDescription" +#define SC_UNO_NUMBERFO "NumberFormat" + +#endif + diff --git a/sc/inc/userdat.hxx b/sc/inc/userdat.hxx new file mode 100644 index 000000000000..63c0e08d2343 --- /dev/null +++ b/sc/inc/userdat.hxx @@ -0,0 +1,135 @@ +/************************************************************************* + * + * $RCSfile: userdat.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:50 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_USERDAT_HXX +#define SC_USERDAT_HXX + +#ifndef _SVDOBJ_HXX //autogen +#include <svx/svdobj.hxx> +#endif + +#ifndef _IMAP_HXX //autogen +#include <svtools/imap.hxx> +#endif + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" +#endif + + +//------------------------------------------------------------------------- + +#define SC_DRAWLAYER 0x30334353 // Inventor: "SC30" + +// Object-Ids fuer UserData +#define SC_UD_OBJDATA 1 +#define SC_UD_IMAPDATA 2 + +//------------------------------------------------------------------------- + +class ScDrawObjFactory +{ + DECL_LINK( MakeUserData, SdrObjFactory * ); +public: + ScDrawObjFactory(); + ~ScDrawObjFactory(); +}; + +//------------------------------------------------------------------------- + +class ScDrawObjData : public SdrObjUserData +{ + virtual SdrObjUserData* Clone(SdrObject* pObj) const; + virtual void WriteData(SvStream& rOut); + virtual void ReadData(SvStream& rIn); +public: + ScTripel aStt, aEnd; + BOOL bValidStart, bValidEnd; + ScDrawObjData(); + ScDrawObjData( const ScDrawObjData& ); + virtual ~ScDrawObjData(); +}; + +//------------------------------------------------------------------------- + +class ScIMapInfo : public SdrObjUserData +{ + ImageMap aImageMap; + +public: + ScIMapInfo(); + ScIMapInfo( const ImageMap& rImageMap ); + ScIMapInfo( const ScIMapInfo& rIMapInfo ); + virtual ~ScIMapInfo(); + + virtual SdrObjUserData* Clone( SdrObject* pObj ) const; + + virtual void WriteData( SvStream& rOStm ); + virtual void ReadData( SvStream& rIStm ); + + void SetImageMap( const ImageMap& rIMap ) { aImageMap = rIMap; } + const ImageMap& GetImageMap() const { return aImageMap; } +}; + + +#endif + + diff --git a/sc/inc/userlist.hxx b/sc/inc/userlist.hxx new file mode 100644 index 000000000000..1a726cc6e817 --- /dev/null +++ b/sc/inc/userlist.hxx @@ -0,0 +1,130 @@ +/************************************************************************* + * + * $RCSfile: userlist.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:50 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_USERLIST_HXX +#define SC_USERLIST_HXX + +#ifndef _STREAM_HXX //autogen +#include <tools/stream.hxx> +#endif + +#ifndef SC_COLLECT_HXX +#include "collect.hxx" +#endif + +//------------------------------------------------------------------------ +class ScUserListData : public DataObject +{ +friend class ScUserList; + String aStr; + USHORT nTokenCount; + String* pSubStrings; + String* pUpperSub; + + void InitTokens(); + +public: + ScUserListData(const String& rStr); + ScUserListData(const ScUserListData& rData); + ScUserListData( SvStream& rStream ); + virtual ~ScUserListData(); + + virtual DataObject* Clone() const { return new ScUserListData(*this); } + BOOL Store( SvStream& rStream ) const; + const String& GetString() const { return aStr; } + void SetString( const String& rStr); + USHORT GetSubCount() const; + BOOL GetSubIndex(const String& rSubStr, USHORT& rIndex) const; + String GetSubStr(USHORT nIndex) const; + StringCompare Compare(const String& rSubStr1, const String& rSubStr2) const; + StringCompare ICompare(const String& rSubStr1, const String& rSubStr2) const; +}; + +//------------------------------------------------------------------------ +class ScUserList : public Collection +{ +public: + ScUserList( USHORT nLim = 4, USHORT nDel = 4); + ScUserList( const ScUserList& rUserList ) : Collection ( rUserList ) {} + + virtual DataObject* Clone() const; + + ScUserListData* GetData( const String& rSubStr ) const; + BOOL Load( SvStream& rStream ); + BOOL Store( SvStream& rStream ) const; + + inline ScUserListData* operator[]( const USHORT nIndex) const; + inline ScUserList& operator= ( const ScUserList& r ); + BOOL operator==( const ScUserList& r ) const; + inline BOOL operator!=( const ScUserList& r ) const; +}; + +inline ScUserList& ScUserList::operator=( const ScUserList& r ) + { return (ScUserList&)Collection::operator=( r ); } + +inline ScUserListData* ScUserList::operator[]( const USHORT nIndex) const + { return (ScUserListData*)At(nIndex); } + +inline BOOL ScUserList::operator!=( const ScUserList& r ) const + { return !operator==( r ); } + +#endif + diff --git a/sc/inc/validat.hxx b/sc/inc/validat.hxx new file mode 100644 index 000000000000..d4f9b65032c9 --- /dev/null +++ b/sc/inc/validat.hxx @@ -0,0 +1,204 @@ +/************************************************************************* + * + * $RCSfile: validat.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:50 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_VALIDAT_HXX +#define SC_VALIDAT_HXX + +#ifndef SC_CONDITIO_HXX +#include "conditio.hxx" +#endif + +class ScPatternAttr; + +enum ScValidationMode +{ + SC_VALID_ANY, + SC_VALID_WHOLE, + SC_VALID_DECIMAL, + SC_VALID_DATE, + SC_VALID_TIME, + SC_VALID_TEXTLEN, + SC_VALID_LIST, + SC_VALID_CUSTOM +}; + +enum ScValidErrorStyle +{ + SC_VALERR_STOP, + SC_VALERR_WARNING, + SC_VALERR_INFO, + SC_VALERR_MACRO +}; + +// +// Eintrag fuer Gueltigkeit (es gibt nur eine Bedingung) +// + +class ScValidationData : public ScConditionEntry +{ + ULONG nKey; // Index in Attributen + + ScValidationMode eDataMode; + BOOL bShowInput; + BOOL bShowError; + ScValidErrorStyle eErrorStyle; + String aInputTitle; + String aInputMessage; + String aErrorTitle; + String aErrorMessage; + + BOOL bIsUsed; // temporaer beim Speichern + + BOOL DoMacro( const ScAddress& rPos, const String& rInput, + ScFormulaCell* pCell, Window* pParent ) const; + +public: + ScValidationData( ScValidationMode eMode, ScConditionMode eOper, + const String& rExpr1, const String& rExpr2, + ScDocument* pDocument, const ScAddress& rPos, + BOOL bCompileEnglish = FALSE ); + ScValidationData( const ScValidationData& r ); + ScValidationData( ScDocument* pDocument, const ScValidationData& r ); + ScValidationData( SvStream& rStream, ScMultipleReadHeader& rHdr, + ScDocument* pDocument ); + ~ScValidationData(); + + void Store(SvStream& rStream, ScMultipleWriteHeader& rHdr) const; + + ScValidationData* Clone() const // echte Kopie + { return new ScValidationData( GetDocument(), *this ); } + ScValidationData* Clone(ScDocument* pNew) const + { return new ScValidationData( pNew, *this ); } + + void ResetInput(); + void ResetError(); + void SetInput( const String& rTitle, const String& rMsg ); + void SetError( const String& rTitle, const String& rMsg, + ScValidErrorStyle eStyle ); + + BOOL GetInput( String& rTitle, String& rMsg ) const + { rTitle = aInputTitle; rMsg = aInputMessage; return bShowInput; } + BOOL GetErrMsg( String& rTitle, String& rMsg, ScValidErrorStyle& rStyle ) const; + + BOOL HasErrMsg() const { return bShowError; } + + ScValidationMode GetDataMode() const { return eDataMode; } + + + // mit String: bei Eingabe, mit Zelle: fuer Detektiv / RC_FORCED + BOOL IsDataValid( const String& rTest, const ScPatternAttr& rPattern, + const ScAddress& rPos ) const; + BOOL IsDataValid( ScBaseCell* pCell, const ScAddress& rPos ) const; + + // TRUE -> Abbruch + BOOL DoError( Window* pParent, const String& rInput, const ScAddress& rPos ) const; + void DoCalcError( ScFormulaCell* pCell ) const; + + BOOL IsEmpty() const; + ULONG GetKey() const { return nKey; } + void SetKey(ULONG nNew) { nKey = nNew; } // nur wenn nicht eingefuegt! + + void SetUsed(BOOL bSet) { bIsUsed = bSet; } + BOOL IsUsed() const { return bIsUsed; } + + BOOL EqualEntries( const ScValidationData& r ) const; // fuer Undo + + // sortiert (per PTRARR) nach Index + // operator== nur fuer die Sortierung + BOOL operator ==( const ScValidationData& r ) const { return nKey == r.nKey; } + BOOL operator < ( const ScValidationData& r ) const { return nKey < r.nKey; } +}; + +// +// Liste der Bedingungen: +// + +typedef ScValidationData* ScValidationDataPtr; + +SV_DECL_PTRARR_SORT(ScValidationEntries_Impl, ScValidationDataPtr, + SC_COND_GROW, SC_COND_GROW); + +class ScValidationDataList : public ScValidationEntries_Impl +{ +public: + ScValidationDataList() {} + ScValidationDataList(const ScValidationDataList& rList); + ScValidationDataList(ScDocument* pNewDoc, const ScValidationDataList& rList); + ~ScValidationDataList() {} + + void InsertNew( ScValidationData* pNew ) + { if (!Insert(pNew)) delete pNew; } + + ScValidationData* GetData( ULONG nKey ); + + void Load( SvStream& rStream, ScDocument* pDocument ); + void Store( SvStream& rStream ) const; + void ResetUsed(); + + void UpdateReference( UpdateRefMode eUpdateRefMode, + const ScRange& rRange, short nDx, short nDy, short nDz ); + + BOOL operator==( const ScValidationDataList& r ) const; // fuer Ref-Undo +}; + +#endif + + diff --git a/sc/inc/viewopti.hxx b/sc/inc/viewopti.hxx new file mode 100644 index 000000000000..0564b2b04cac --- /dev/null +++ b/sc/inc/viewopti.hxx @@ -0,0 +1,258 @@ +/************************************************************************* + * + * $RCSfile: viewopti.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:50 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_VIEWOPTI_HXX +#define SC_VIEWOPTI_HXX + +#ifndef _SVX_OPTGRID_HXX //autogen +#include <svx/optgrid.hxx> +#endif + +#ifndef _SVX_SVXIDS_HRC //autogen +#include <svx/svxids.hrc> +#endif + +#ifndef _UTL_CONFIGITEM_HXX_ +#include <unotools/configitem.hxx> +#endif + +#ifndef SC_SCGLOB_HXX +#include "global.hxx" +#endif + +//================================================================== +// View-Optionen +//================================================================== + +enum ScViewOption +{ + VOPT_FORMULAS = 0, + VOPT_NULLVALS, + VOPT_SYNTAX, + VOPT_NOTES, + VOPT_VSCROLL, + VOPT_HSCROLL, + VOPT_TABCONTROLS, + VOPT_OUTLINER, + VOPT_HEADER, + VOPT_GRID, + VOPT_HELPLINES, + VOPT_ANCHOR, + VOPT_PAGEBREAKS, + VOPT_SOLIDHANDLES, + VOPT_CLIPMARKS, + VOPT_BIGHANDLES +}; + +enum ScVObjType +{ + VOBJ_TYPE_OLE = 0, + VOBJ_TYPE_CHART, + VOBJ_TYPE_DRAW +}; + +#define MAX_OPT (USHORT)VOPT_BIGHANDLES+1 +#define MAX_TYPE (USHORT)VOBJ_TYPE_DRAW+1 + +//================================================================== +// SvxGrid-Optionen mit Standard-Operatoren +//================================================================== + +class ScGridOptions : public SvxOptionsGrid +{ +public: + ScGridOptions() : SvxOptionsGrid() {} + ScGridOptions( const SvxOptionsGrid& rOpt ) : SvxOptionsGrid( rOpt ) {} + + void SetDefaults(); + const ScGridOptions& operator= ( const ScGridOptions& rCpy ); + int operator== ( const ScGridOptions& rOpt ) const; + int operator!= ( const ScGridOptions& rOpt ) const { return !(operator==(rOpt)); } + + friend SvStream& operator>> ( SvStream& rStream, ScGridOptions& rOpt ); + friend SvStream& operator<< ( SvStream& rStream, const ScGridOptions& rOpt ); +}; + +//================================================================== +// Einstellungen - Ansicht +//================================================================== + +class ScViewOptions +{ +public: + ScViewOptions(); + ScViewOptions( const ScViewOptions& rCpy ); + ~ScViewOptions(); + + void SetDefaults(); + + void SetOption( ScViewOption eOpt, BOOL bNew = TRUE ) { aOptArr[eOpt] = bNew; } + BOOL GetOption( ScViewOption eOpt ) const { return aOptArr[eOpt]; } + + void SetObjMode( ScVObjType eObj, ScVObjMode eMode ) { aModeArr[eObj] = eMode; } + ScVObjMode GetObjMode( ScVObjType eObj ) const { return aModeArr[eObj]; } + + void SetGridColor( const Color& rCol, const String& rName ) { aGridCol = rCol; aGridColName = rName;} + Color GetGridColor( String* pStrName = NULL ) const; + + const ScGridOptions& GetGridOptions() const { return aGridOpt; } + void SetGridOptions( const ScGridOptions& rNew ) { aGridOpt = rNew; } + SvxGridItem* CreateGridItem( USHORT nId = SID_ATTR_GRID_OPTIONS ) const; + + BOOL IsHideAutoSpell() const { return bHideAutoSpell; } + void SetHideAutoSpell( BOOL bSet ) { bHideAutoSpell = bSet; } + + const ScViewOptions& operator= ( const ScViewOptions& rCpy ); + int operator== ( const ScViewOptions& rOpt ) const; + int operator!= ( const ScViewOptions& rOpt ) const { return !(operator==(rOpt)); } + + friend SvStream& operator>> ( SvStream& rStream, ScViewOptions& rOpt ); + + void Save(SvStream& rStream, BOOL bConfig = FALSE) const; + +private: + BOOL aOptArr [MAX_OPT]; + ScVObjMode aModeArr [MAX_TYPE]; + Color aGridCol; + String aGridColName; + ScGridOptions aGridOpt; + BOOL bHideAutoSpell; +}; + +inline SvStream& operator<<( SvStream& rStream, const ScViewOptions& rOpt ) +{ + rOpt.Save( rStream, FALSE ); + return rStream; +} + +//================================================================== +// Item fuer Einstellungsdialog - Ansicht +//================================================================== + +class ScTpViewItem : public SfxPoolItem +{ +public: + TYPEINFO(); + ScTpViewItem( USHORT nWhich ); + ScTpViewItem( USHORT nWhich, const ScViewOptions& rOpt ); + ScTpViewItem( const ScTpViewItem& rItem ); + ~ScTpViewItem(); + + virtual String GetValueText() const; + virtual int operator==( const SfxPoolItem& ) const; + virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; + + const ScViewOptions& GetViewOptions() const { return theOptions; } + +private: + ScViewOptions theOptions; +}; + + +// ConfigItem for classes that use items from several sub trees +//! move to separate header file + +class ScLinkConfigItem : public utl::ConfigItem +{ + Link aCommitLink; + +public: + ScLinkConfigItem( const rtl::OUString rSubTree ); + void SetCommitLink( const Link& rLink ); + + virtual void Notify( const com::sun::star::uno::Sequence<rtl::OUString>& aPropertyNames ); + virtual void Commit(); + + ConfigItem::GetProperties; + ConfigItem::EnableNotification; + ConfigItem::PutProperties; + ConfigItem::SetModified; +}; + + +//================================================================== +// CfgItem fuer View-Optionen +//================================================================== + +class ScViewCfg : public ScViewOptions +{ + ScLinkConfigItem aLayoutItem; + ScLinkConfigItem aDisplayItem; + ScLinkConfigItem aGridItem; + + DECL_LINK( LayoutCommitHdl, void* ); + DECL_LINK( DisplayCommitHdl, void* ); + DECL_LINK( GridCommitHdl, void* ); + + com::sun::star::uno::Sequence<rtl::OUString> GetLayoutPropertyNames(); + com::sun::star::uno::Sequence<rtl::OUString> GetDisplayPropertyNames(); + com::sun::star::uno::Sequence<rtl::OUString> GetGridPropertyNames(); + +public: + ScViewCfg(); + + void SetOptions( const ScViewOptions& rNew ); +}; + + +#endif + + diff --git a/sc/inc/viewuno.hxx b/sc/inc/viewuno.hxx new file mode 100644 index 000000000000..e6ad48f37860 --- /dev/null +++ b/sc/inc/viewuno.hxx @@ -0,0 +1,359 @@ +/************************************************************************* + * + * $RCSfile: viewuno.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:51 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_VIEWUNO_HXX +#define SC_VIEWUNO_HXX + +#ifndef _SFX_SFXBASECONTROLLER_HXX_ +#include <sfx2/sfxbasecontroller.hxx> +#endif + +#ifndef _SVARRAY_HXX +#include <svtools/svarray.hxx> +#endif + +#ifndef _SFX_ITEMPROP_HXX +#include <svtools/itemprop.hxx> +#endif + +#ifndef _COM_SUN_STAR_VIEW_XCONTROLACCESS_HPP_ +#include <com/sun/star/view/XControlAccess.hpp> +#endif +#ifndef _COM_SUN_STAR_VIEW_XSELECTIONCHANGELISTENER_HPP_ +#include <com/sun/star/view/XSelectionChangeListener.hpp> +#endif +#ifndef _COM_SUN_STAR_VIEW_XSELECTIONSUPPLIER_HPP_ +#include <com/sun/star/view/XSelectionSupplier.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XCELLRANGEREFERRER_HPP_ +#include <com/sun/star/sheet/XCellRangeReferrer.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XVIEWSPLITABLE_HPP_ +#include <com/sun/star/sheet/XViewSplitable.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XVIEWFREEZABLE_HPP_ +#include <com/sun/star/sheet/XViewFreezable.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XSPREADSHEETVIEW_HPP_ +#include <com/sun/star/sheet/XSpreadsheetView.hpp> +#endif +#ifndef _COM_SUN_STAR_SHEET_XVIEWPANE_HPP_ +#include <com/sun/star/sheet/XViewPane.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_ +#include <com/sun/star/lang/XServiceInfo.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XENUMERATIONACCESS_HPP_ +#include <com/sun/star/container/XEnumerationAccess.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_ +#include <com/sun/star/beans/XPropertySet.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XUNOTUNNEL_HPP_ +#include <com/sun/star/lang/XUnoTunnel.hpp> +#endif + +class ScTabViewShell; + +#define SC_VIEWPANE_ACTIVE 0xFFFF + + +typedef ::com::sun::star::uno::Reference< + ::com::sun::star::lang::XEventListener >* XEventListenerPtr; +SV_DECL_PTRARR_DEL( EventListenerArr, XEventListenerPtr, 4, 4 ); + +typedef ::com::sun::star::uno::Reference< + ::com::sun::star::view::XSelectionChangeListener >* XSelectionChangeListenerPtr; +SV_DECL_PTRARR_DEL( XSelectionChangeListenerArr_Impl, XSelectionChangeListenerPtr, 4, 4 ); + + +// ScViewPaneBase not derived from OWeakObject +// to avoid duplicate OWeakObject in ScTabViewObj + +class ScViewPaneBase : public com::sun::star::sheet::XViewPane, + public com::sun::star::sheet::XCellRangeReferrer, + public com::sun::star::view::XControlAccess, + public com::sun::star::lang::XServiceInfo, + public com::sun::star::lang::XTypeProvider, + public SfxListener +{ +private: + ScTabViewShell* pViewShell; + USHORT nPane; // ScSplitPos oder SC_VIEWPANE_ACTIVE + +protected: + ScTabViewShell* GetViewShell() const { return pViewShell; } + +public: + ScViewPaneBase(ScTabViewShell* pViewSh, USHORT nP); + virtual ~ScViewPaneBase(); + + virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( + const ::com::sun::star::uno::Type & rType ) + throw(::com::sun::star::uno::RuntimeException); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // XViewPane + virtual sal_Int32 SAL_CALL getFirstVisibleColumn() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setFirstVisibleColumn( sal_Int32 nFirstVisibleColumn ) + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Int32 SAL_CALL getFirstVisibleRow() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setFirstVisibleRow( sal_Int32 nFirstVisibleRow ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::table::CellRangeAddress SAL_CALL getVisibleRange() + throw(::com::sun::star::uno::RuntimeException); + + // XCellRangeReferrer + virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XCellRange > SAL_CALL + getReferredCells() throw(::com::sun::star::uno::RuntimeException); + + // XControlAccess + virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl > SAL_CALL + getControl( const ::com::sun::star::uno::Reference< + ::com::sun::star::awt::XControlModel >& xModel ) + throw(::com::sun::star::container::NoSuchElementException, + ::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); + + // XTypeProvider + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() + throw(::com::sun::star::uno::RuntimeException); +}; + + +// ScViewPaneObj for direct use (including OWeakObject) + +class ScViewPaneObj : public ScViewPaneBase, public cppu::OWeakObject +{ +public: + ScViewPaneObj(ScTabViewShell* pViewSh, USHORT nP); + virtual ~ScViewPaneObj(); + + virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( + const ::com::sun::star::uno::Type & rType ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL acquire() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL release() throw(::com::sun::star::uno::RuntimeException); +}; + + +// OWeakObject is base of SfxBaseController -> use ScViewPaneBase + +class ScTabViewObj : public ScViewPaneBase, + public SfxBaseController, + public com::sun::star::sheet::XSpreadsheetView, + public com::sun::star::container::XEnumerationAccess, + public com::sun::star::container::XIndexAccess, + public com::sun::star::view::XSelectionSupplier, + public com::sun::star::beans::XPropertySet, + public com::sun::star::sheet::XViewSplitable, + public com::sun::star::sheet::XViewFreezable, + public com::sun::star::lang::XUnoTunnel +{ +private: + SfxItemPropertySet aPropSet; + XSelectionChangeListenerArr_Impl aSelectionListeners; + + ScViewPaneObj* GetObjectByIndex_Impl(USHORT nIndex) const; + +public: + ScTabViewObj(); + ScTabViewObj(ScTabViewShell* pViewSh); + virtual ~ScTabViewObj(); + + virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( + const ::com::sun::star::uno::Type & rType ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL acquire() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL release() throw(::com::sun::star::uno::RuntimeException); + + void SelectionChanged(); + + // XSelectionSupplier + virtual sal_Bool SAL_CALL select( const ::com::sun::star::uno::Any& aSelection ) + throw(::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getSelection() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addSelectionChangeListener( const ::com::sun::star::uno::Reference< + ::com::sun::star::view::XSelectionChangeListener >& xListener ) + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeSelectionChangeListener( const ::com::sun::star::uno::Reference< + ::com::sun::star::view::XSelectionChangeListener >& xListener ) + throw(::com::sun::star::uno::RuntimeException); + + //! XPrintable? + + // XPropertySet + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > + SAL_CALL getPropertySetInfo() + throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Any& aValue ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::beans::PropertyVetoException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( + const ::rtl::OUString& PropertyName ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& xListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertyChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XVetoableChangeListener >& aListener ) + throw(::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XEnumerationAccess + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL + createEnumeration() throw(::com::sun::star::uno::RuntimeException); + + // XIndexAccess + virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) + throw(::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XSpreadsheetView + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSpreadsheet > SAL_CALL + getActiveSheet() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setActiveSheet( const ::com::sun::star::uno::Reference< + ::com::sun::star::sheet::XSpreadsheet >& xActiveSheet ) + throw(::com::sun::star::uno::RuntimeException); + + // XViewSplitable + virtual sal_Bool SAL_CALL getIsWindowSplit() throw(::com::sun::star::uno::RuntimeException); + virtual sal_Int32 SAL_CALL getSplitHorizontal() throw(::com::sun::star::uno::RuntimeException); + virtual sal_Int32 SAL_CALL getSplitVertical() throw(::com::sun::star::uno::RuntimeException); + virtual sal_Int32 SAL_CALL getSplitColumn() throw(::com::sun::star::uno::RuntimeException); + virtual sal_Int32 SAL_CALL getSplitRow() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL splitAtPosition( sal_Int32 nPixelX, sal_Int32 nPixelY ) + throw(::com::sun::star::uno::RuntimeException); + + // XViewFreezable + virtual sal_Bool SAL_CALL hasFrozenPanes() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL freezeAtPosition( sal_Int32 nColumns, sal_Int32 nRows ) + throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() + throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw(::com::sun::star::uno::RuntimeException); + + // XUnoTunnel + virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< + sal_Int8 >& aIdentifier ) + throw(::com::sun::star::uno::RuntimeException); + + static const com::sun::star::uno::Sequence<sal_Int8>& getUnoTunnelId(); + static ScTabViewObj* getImplementation( const com::sun::star::uno::Reference< + com::sun::star::uno::XInterface> xObj ); + + // XTypeProvider + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() + throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() + throw(::com::sun::star::uno::RuntimeException); +}; + + +#endif + diff --git a/sc/inc/waitoff.hxx b/sc/inc/waitoff.hxx new file mode 100644 index 000000000000..adf59c987244 --- /dev/null +++ b/sc/inc/waitoff.hxx @@ -0,0 +1,82 @@ +/************************************************************************* + * + * $RCSfile: waitoff.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:51 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_WAITOFF_HXX +#define SC_WAITOFF_HXX + +#ifndef _SOLAR_H +#include <tools/solar.h> +#endif + +class Window; + +class ScWaitCursorOff +{ +private: + Window* pWin; + ULONG nWaiters; +public: + ScWaitCursorOff( Window* pWin ); + ~ScWaitCursorOff(); +}; + + +#endif diff --git a/sc/inc/xmlwrap.hxx b/sc/inc/xmlwrap.hxx new file mode 100644 index 000000000000..e044e18bc3d2 --- /dev/null +++ b/sc/inc/xmlwrap.hxx @@ -0,0 +1,80 @@ +/************************************************************************* + * + * $RCSfile: xmlwrap.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:51 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_XMLWRAP_HXX +#define SC_XMLWRAP_HXX + +class ScDocument; +class SfxMedium; + +class ScXMLImportWrapper +{ + ScDocument& rDoc; + SfxMedium& rMedium; + +public: + ScXMLImportWrapper(ScDocument& rD, SfxMedium& rM); + BOOL Import(); + BOOL Export(); +}; + +#endif + diff --git a/sc/inc/zforauto.hxx b/sc/inc/zforauto.hxx new file mode 100644 index 000000000000..5f0f3ef5b9ec --- /dev/null +++ b/sc/inc/zforauto.hxx @@ -0,0 +1,112 @@ +/************************************************************************* + * + * $RCSfile: zforauto.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 16:44:51 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 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 + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef _ZFORAUTO_HXX_ +#define _ZFORAUTO_HXX_ + +#ifndef _STRING_HXX //autogen +#include <tools/string.hxx> +#endif + +#ifndef _LANG_HXX //autogen +#include <tools/lang.hxx> +#endif + + +class SvStream; +class SvNumberFormatter; + + +class ScNumFormatAbbrev +{ + String sFormatstring; + LanguageType eLnge; + LanguageType eSysLnge; +public: + ScNumFormatAbbrev(); + ScNumFormatAbbrev(const ScNumFormatAbbrev& aFormat); + ScNumFormatAbbrev(SvStream& rStream); + ScNumFormatAbbrev(ULONG nFormat, SvNumberFormatter& rFormatter); + void Load( SvStream& rStream ); // Laden der Zahlenformate + void Save( SvStream& rStream ) const; // Speichern der Zahlenformate + void PutFormatIndex(ULONG nFormat, SvNumberFormatter& rFormatter); + ULONG GetFormatIndex( SvNumberFormatter& rFormatter); + inline int operator==(const ScNumFormatAbbrev& rNumFormat) + { + return ((sFormatstring == rNumFormat.sFormatstring) + && (eLnge == rNumFormat.eLnge) + && (eSysLnge == rNumFormat.eSysLnge)); + } + inline ScNumFormatAbbrev& operator=(const ScNumFormatAbbrev& rNumFormat) + { + sFormatstring = rNumFormat.sFormatstring; + eLnge = rNumFormat.eLnge; + eSysLnge = rNumFormat.eSysLnge; + return *this; + } + inline LanguageType GetLanguage() const { return eLnge; } +}; + + + +#endif + + |