summaryrefslogtreecommitdiff
path: root/sc/inc
diff options
context:
space:
mode:
authorJens-Heiner Rechtien <hr@openoffice.org>2000-09-18 16:07:07 +0000
committerJens-Heiner Rechtien <hr@openoffice.org>2000-09-18 16:07:07 +0000
commit9ae5a91f7955e44d3b24a3f7741f9bca02ac7f24 (patch)
tree13c111a6380728f470fa177e679b80089a01efc4 /sc/inc
initial import
Diffstat (limited to 'sc/inc')
-rw-r--r--sc/inc/addincol.hxx187
-rw-r--r--sc/inc/afmtuno.hxx383
-rw-r--r--sc/inc/appluno.hxx265
-rw-r--r--sc/inc/appoptio.hxx162
-rw-r--r--sc/inc/arealink.hxx120
-rw-r--r--sc/inc/attarray.hxx265
-rw-r--r--sc/inc/attrib.hxx406
-rw-r--r--sc/inc/autoform.hxx277
-rw-r--r--sc/inc/bigrange.hxx309
-rw-r--r--sc/inc/brdcst.hxx107
-rw-r--r--sc/inc/callform.hxx161
-rw-r--r--sc/inc/cell.hxx596
-rw-r--r--sc/inc/cellform.hxx100
-rw-r--r--sc/inc/cellsuno.hxx1405
-rw-r--r--sc/inc/cfgids.hxx78
-rw-r--r--sc/inc/chartarr.hxx244
-rw-r--r--sc/inc/chartlis.hxx176
-rw-r--r--sc/inc/chartuno.hxx214
-rw-r--r--sc/inc/chgtrack.hxx1248
-rw-r--r--sc/inc/chgviset.hxx179
-rw-r--r--sc/inc/collect.hxx241
-rw-r--r--sc/inc/column.hxx474
-rw-r--r--sc/inc/compiler.hrc401
-rw-r--r--sc/inc/compiler.hxx1123
-rw-r--r--sc/inc/conditio.hxx318
-rw-r--r--sc/inc/consoli.hxx169
-rw-r--r--sc/inc/convuno.hxx90
-rw-r--r--sc/inc/cursuno.hxx150
-rw-r--r--sc/inc/dapiuno.hxx495
-rw-r--r--sc/inc/datauno.hxx719
-rw-r--r--sc/inc/dbcolect.hxx280
-rw-r--r--sc/inc/dbtoken.hxx90
-rw-r--r--sc/inc/detdata.hxx142
-rw-r--r--sc/inc/detfunc.hxx148
-rw-r--r--sc/inc/dociter.hxx389
-rw-r--r--sc/inc/docoptio.hxx246
-rw-r--r--sc/inc/docpool.hxx109
-rw-r--r--sc/inc/document.hxx1439
-rw-r--r--sc/inc/docuno.hxx775
-rw-r--r--sc/inc/dpobject.hxx251
-rw-r--r--sc/inc/dpoutput.hxx170
-rw-r--r--sc/inc/dpsave.hxx221
-rw-r--r--sc/inc/dpsdbtab.hxx117
-rw-r--r--sc/inc/dpshttab.hxx116
-rw-r--r--sc/inc/dptabdat.hxx176
-rw-r--r--sc/inc/dptabres.hxx343
-rw-r--r--sc/inc/dptabsrc.hxx795
-rw-r--r--sc/inc/drawattr.hxx104
-rw-r--r--sc/inc/drawpage.hxx86
-rw-r--r--sc/inc/drwlayer.hxx212
-rw-r--r--sc/inc/editsrc.hxx157
-rw-r--r--sc/inc/editutil.hxx275
-rw-r--r--sc/inc/eeimport.hxx100
-rw-r--r--sc/inc/eetext.hxx77
-rw-r--r--sc/inc/fielduno.hxx446
-rw-r--r--sc/inc/filter.hxx166
-rw-r--r--sc/inc/fmtuno.hxx364
-rw-r--r--sc/inc/global.hxx1619
-rw-r--r--sc/inc/globstr.hrc543
-rw-r--r--sc/inc/hints.hxx199
-rw-r--r--sc/inc/htmlimp.hxx78
-rw-r--r--sc/inc/indexmap.hxx92
-rw-r--r--sc/inc/inputopt.hxx140
-rw-r--r--sc/inc/linkuno.hxx538
-rw-r--r--sc/inc/markarr.hxx120
-rw-r--r--sc/inc/markdata.hxx154
-rw-r--r--sc/inc/miscuno.hxx345
-rw-r--r--sc/inc/nameuno.hxx397
-rw-r--r--sc/inc/navicfg.hxx100
-rw-r--r--sc/inc/notesuno.hxx172
-rw-r--r--sc/inc/olinetab.hxx220
-rw-r--r--sc/inc/pagepar.hxx121
-rw-r--r--sc/inc/patattr.hxx140
-rw-r--r--sc/inc/pivot.hxx364
-rw-r--r--sc/inc/printopt.hxx69
-rw-r--r--sc/inc/prnsave.hxx112
-rw-r--r--sc/inc/progress.hxx185
-rw-r--r--sc/inc/rangelst.hxx147
-rw-r--r--sc/inc/rangenam.hxx254
-rw-r--r--sc/inc/rangeseq.hxx101
-rw-r--r--sc/inc/rangeutl.hxx198
-rw-r--r--sc/inc/rechead.hxx233
-rw-r--r--sc/inc/reffind.hxx100
-rw-r--r--sc/inc/rtfimp.hxx75
-rw-r--r--sc/inc/sc.hrc1370
-rw-r--r--sc/inc/scdll.hxx161
-rw-r--r--sc/inc/scerrors.hxx105
-rw-r--r--sc/inc/scextopt.hxx286
-rw-r--r--sc/inc/scfuncs.hrc348
-rw-r--r--sc/inc/scitems.hxx248
-rw-r--r--sc/inc/scmod.hxx287
-rw-r--r--sc/inc/scresid.hxx80
-rw-r--r--sc/inc/scwarngs.hxx70
-rw-r--r--sc/inc/segdefs.hxx73
-rw-r--r--sc/inc/segdefs_.hxx5019
-rw-r--r--sc/inc/servuno.hxx120
-rw-r--r--sc/inc/shellids.hxx88
-rw-r--r--sc/inc/srchuno.hxx175
-rw-r--r--sc/inc/stlpool.hxx119
-rw-r--r--sc/inc/stlsheet.hxx109
-rw-r--r--sc/inc/strload.hxx90
-rw-r--r--sc/inc/styleuno.hxx383
-rw-r--r--sc/inc/subtotal.hxx135
-rw-r--r--sc/inc/table.hxx684
-rw-r--r--sc/inc/tablink.hxx140
-rw-r--r--sc/inc/targuno.hxx301
-rw-r--r--sc/inc/textuno.hxx295
-rw-r--r--sc/inc/unitconv.hxx111
-rw-r--r--sc/inc/unoguard.hxx78
-rw-r--r--sc/inc/unonames.hxx376
-rw-r--r--sc/inc/userdat.hxx135
-rw-r--r--sc/inc/userlist.hxx130
-rw-r--r--sc/inc/validat.hxx204
-rw-r--r--sc/inc/viewopti.hxx258
-rw-r--r--sc/inc/viewuno.hxx359
-rw-r--r--sc/inc/waitoff.hxx82
-rw-r--r--sc/inc/xmlwrap.hxx80
-rw-r--r--sc/inc/zforauto.hxx112
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 für 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 für 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 // Gel”schte 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
+
+