summaryrefslogtreecommitdiff
path: root/sc/inc/cell.hxx
diff options
context:
space:
mode:
authorVladimir Glazounov <vg@openoffice.org>2005-03-08 10:27:14 +0000
committerVladimir Glazounov <vg@openoffice.org>2005-03-08 10:27:14 +0000
commit8dc8021550d33bd28e8a9053fe22c8972ea699f9 (patch)
tree59669da050eaf2a13037684acd55497c8d437208 /sc/inc/cell.hxx
parentef80f426c6346524b1c35bcb25c7b846aa80c007 (diff)
INTEGRATION: CWS calcer (1.16.30); FILE MERGED
2005/02/21 15:17:20 er 1.16.30.3: RESYNC: (1.16-1.17); FILE MERGED 2005/02/18 18:52:23 er 1.16.30.2: #i20986# #i21124# #i4874# #i7309# new algorithm for recursions and iterations 2004/11/16 14:20:32 er 1.16.30.1: initialization order (gcc warning)
Diffstat (limited to 'sc/inc/cell.hxx')
-rw-r--r--sc/inc/cell.hxx28
1 files changed, 21 insertions, 7 deletions
diff --git a/sc/inc/cell.hxx b/sc/inc/cell.hxx
index 97807a51d435..b97061cf440f 100644
--- a/sc/inc/cell.hxx
+++ b/sc/inc/cell.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: cell.hxx,v $
*
- * $Revision: 1.17 $
+ * $Revision: 1.18 $
*
- * last change: $Author: hr $ $Date: 2004-11-09 17:53:48 $
+ * last change: $Author: vg $ $Date: 2005-03-08 11:27:14 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -271,7 +271,6 @@ class ScIndexMap;
class ScFormulaCell : public ScBaseCell, public SvtListener
{
private:
- static INT8 nIterMode; // Markiert cirk. Iteration
String aErgString;
double nErgValue;
ScTokenArray* pCode; // das neue Token-Array
@@ -284,6 +283,7 @@ private:
ULONG nFormatIndex; // durch Berechnung gesetztes Format
SCCOL nMatCols; // wenn MM_FORMULA Matrixzelle
SCROW nMatRows; // belegte Area
+ USHORT nSeenInIteration; // Iteration cycle in which the cell was last encountered
short nFormatType;
BOOL bIsValue : 1; // Result is numerical, not textual
BOOL bDirty : 1; // Must be (re)calculated
@@ -297,6 +297,14 @@ private:
BOOL bNeedListening : 1; // Listeners need to be re-established after UpdateReference
BYTE cMatrixFlag; // 1 = links oben, 2 = Restmatrix, 0 = keine
+ enum ScInterpretTailParameter
+ {
+ SCITP_NORMAL,
+ SCITP_FROM_ITERATION,
+ SCITP_CLOSE_ITERATION_CIRCLE
+ };
+ void InterpretTail( ScInterpretTailParameter );
+
public:
#ifdef USE_MEMPOOL
@@ -335,7 +343,7 @@ public:
inline void SetDirtyVar() { bDirty = TRUE; }
inline void ResetTableOpDirtyVar() { bTableOpDirty = FALSE; }
void SetTableOpDirty();
- BOOL IsDirtyOrInTableOpDirty();
+ BOOL IsDirtyOrInTableOpDirty() const;
BOOL GetDirty() const { return bDirty; }
BOOL NeedsListening() const { return bNeedListening; }
void SetNeedsListening( BOOL bVar ) { bNeedListening = bVar; }
@@ -344,6 +352,8 @@ public:
void CompileXML( ScProgress& rProgress ); // compile temporary string tokens
void CalcAfterLoad();
void Interpret();
+ inline BOOL IsIterCell() const { return bIsIterCell; }
+ inline USHORT GetSeenInIteration() const { return nSeenInIteration; }
BOOL HasOneReference( ScRange& r ) const;
BOOL HasRelNameReference() const;
@@ -466,15 +476,19 @@ public:
// ScBaseCell
inline ScBaseCell::ScBaseCell( CellType eNewType ) :
- eCellType( eNewType ),
pNote( NULL ),
- pBroadcaster( NULL ), nTextWidth( TEXTWIDTH_DIRTY ), nScriptType( SC_SCRIPTTYPE_UNKNOWN )
+ pBroadcaster( NULL ),
+ nTextWidth( TEXTWIDTH_DIRTY ),
+ eCellType( eNewType ),
+ nScriptType( SC_SCRIPTTYPE_UNKNOWN )
{
}
inline ScBaseCell::ScBaseCell( const ScBaseCell& rBaseCell, ScDocument* pDoc ) :
+ pBroadcaster( NULL ),
+ nTextWidth( rBaseCell.nTextWidth ),
eCellType( rBaseCell.eCellType ),
- pBroadcaster( NULL ), nTextWidth( rBaseCell.nTextWidth ), nScriptType( SC_SCRIPTTYPE_UNKNOWN )
+ nScriptType( SC_SCRIPTTYPE_UNKNOWN )
{
if (rBaseCell.pNote)
pNote = new ScPostIt( *rBaseCell.pNote, pDoc );