office-gobmx/sc/inc/docoptio.hxx
2001-05-15 17:16:43 +00:00

261 lines
9.9 KiB
C++

/*************************************************************************
*
* $RCSfile: docoptio.hxx,v $
*
* $Revision: 1.4 $
*
* last change: $Author: er $ $Date: 2001-05-15 18:16:43 $
*
* 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 _UTL_CONFIGITEM_HXX_
#include <unotools/configitem.hxx>
#endif
#ifndef _SFXPOOLITEM_HXX //autogen
#include <svtools/poolitem.hxx>
#endif
#ifndef SC_OPTUTIL_HXX
#include "optutil.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
BOOL bFormulaRegexEnabled; // regular expressions in formulas enabled
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; }
void SetFormulaRegexEnabled( BOOL bVal ) { bFormulaRegexEnabled = bVal; }
BOOL IsFormulaRegexEnabled() const { return bFormulaRegexEnabled; }
};
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;
rOpt.bFormulaRegexEnabled = bFormulaRegexEnabled;
}
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;
bFormulaRegexEnabled= rCpy.bFormulaRegexEnabled;
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
&& rOpt.bFormulaRegexEnabled == bFormulaRegexEnabled
);
}
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;
};
//==================================================================
// Config Item containing document options
//==================================================================
class ScDocCfg : public ScDocOptions
{
ScLinkConfigItem aCalcItem;
ScLinkConfigItem aLayoutItem;
DECL_LINK( CalcCommitHdl, void* );
DECL_LINK( LayoutCommitHdl, void* );
com::sun::star::uno::Sequence<rtl::OUString> GetCalcPropertyNames();
com::sun::star::uno::Sequence<rtl::OUString> GetLayoutPropertyNames();
public:
ScDocCfg();
void SetOptions( const ScDocOptions& rNew );
};
#endif