summaryrefslogtreecommitdiff
path: root/sc/inc/conditio.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'sc/inc/conditio.hxx')
-rw-r--r--sc/inc/conditio.hxx308
1 files changed, 0 insertions, 308 deletions
diff --git a/sc/inc/conditio.hxx b/sc/inc/conditio.hxx
deleted file mode 100644
index d5f52e73b..000000000
--- a/sc/inc/conditio.hxx
+++ /dev/null
@@ -1,308 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef SC_CONDITIO_HXX
-#define SC_CONDITIO_HXX
-
-#include "global.hxx"
-#include "address.hxx"
-#include "formula/grammar.hxx"
-#include <svl/svarray.hxx>
-#include "scdllapi.h"
-#include "rangelst.hxx"
-
-class ScBaseCell;
-class ScFormulaCell;
-class ScTokenArray;
-
-
-#define SC_COND_GROW 16
-
-// nOptions Flags
-#define SC_COND_NOBLANKS 1
-
-
-// ordering of ScConditionMode and ScQueryOp is equal,
-// to facilitate the merging of both in the future
-
-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_DUPLICATE,
- SC_COND_NOTDUPLICATE,
- SC_COND_DIRECT,
- SC_COND_NONE
-};
-
-enum ScConditionValType
-{
- SC_VAL_VALUE,
- SC_VAL_STRING,
- SC_VAL_FORMULA
-};
-
-class ScConditionalFormat;
-
-class SC_DLLPUBLIC ScConditionEntry
-{
- // stored data:
- ScConditionMode eOp;
- sal_uInt16 nOptions;
- double nVal1; // input or calculated
- double nVal2;
- String aStrVal1; // input or calculated
- String aStrVal2;
- String aStrNmsp1; // namespace to be used on (re)compilation, e.g. in XML import
- String aStrNmsp2; // namespace to be used on (re)compilation, e.g. in XML import
- formula::FormulaGrammar::Grammar eTempGrammar1; // grammar to be used on (re)compilation, e.g. in XML import
- formula::FormulaGrammar::Grammar eTempGrammar2; // grammar to be used on (re)compilation, e.g. in XML import
- sal_Bool bIsStr1; // for recognition of empty strings
- sal_Bool bIsStr2;
- ScTokenArray* pFormula1; // entered formula
- ScTokenArray* pFormula2;
- ScAddress aSrcPos; // source position for formulas
- // temporary data:
- String aSrcString; // formula source position as text during XML import
- ScFormulaCell* pFCell1;
- ScFormulaCell* pFCell2;
- ScDocument* pDoc;
- sal_Bool bRelRef1;
- sal_Bool bRelRef2;
- sal_Bool bFirstRun;
-
- void MakeCells( const ScAddress& rPos );
- void Compile( const String& rExpr1, const String& rExpr2,
- const String& rExprNmsp1, const String& rExprNmsp2,
- formula::FormulaGrammar::Grammar eGrammar1,
- formula::FormulaGrammar::Grammar eGrammar2,
- sal_Bool bTextToReal );
- void Interpret( const ScAddress& rPos );
-
- sal_Bool IsValid( double nArg, const ScAddress& rAddr ) const;
- sal_Bool IsValidStr( const String& rArg, const ScAddress& rAddr ) const;
-
-public:
- ScConditionEntry( ScConditionMode eOper,
- const String& rExpr1, const String& rExpr2,
- ScDocument* pDocument, const ScAddress& rPos,
- const String& rExprNmsp1, const String& rExprNmsp2,
- formula::FormulaGrammar::Grammar eGrammar1,
- formula::FormulaGrammar::Grammar eGrammar2 );
- ScConditionEntry( ScConditionMode eOper,
- const ScTokenArray* pArr1, const ScTokenArray* pArr2,
- ScDocument* pDocument, const ScAddress& rPos );
- ScConditionEntry( const ScConditionEntry& r ); // flat copy of formulas
- // true copy of formulas (for Ref-Undo):
- ScConditionEntry( ScDocument* pDocument, const ScConditionEntry& r );
- virtual ~ScConditionEntry();
-
- int operator== ( const ScConditionEntry& r ) const;
-
- void SetParent( ScConditionalFormat* pNew ) { pCondFormat = pNew; }
-
- sal_Bool IsCellValid( ScBaseCell* pCell, const ScAddress& rPos ) const;
-
- ScConditionMode GetOperation() const { return eOp; }
- sal_Bool IsIgnoreBlank() const { return ( nOptions & SC_COND_NOBLANKS ) == 0; }
- void SetIgnoreBlank(sal_Bool bSet);
- ScAddress GetSrcPos() const { return aSrcPos; }
-
- ScAddress GetValidSrcPos() const; // adjusted to allow textual representation of expressions
-
- void SetSrcString( const String& rNew ); // for XML import
-
- void SetFormula1( const ScTokenArray& rArray );
- void SetFormula2( const ScTokenArray& rArray );
-
- String GetExpression( const ScAddress& rCursor, sal_uInt16 nPos, sal_uLong nNumFmt = 0,
- const formula::FormulaGrammar::Grammar eGrammar = formula::FormulaGrammar::GRAM_DEFAULT ) const;
-
- ScTokenArray* CreateTokenArry( sal_uInt16 nPos ) const;
-
- void CompileAll();
- void CompileXML();
- void UpdateReference( UpdateRefMode eUpdateRefMode,
- const ScRange& rRange, SCsCOL nDx, SCsROW nDy, SCsTAB nDz );
- void UpdateMoveTab( SCTAB nOldPos, SCTAB nNewPos );
-
- void SourceChanged( const ScAddress& rChanged );
-
- bool MarkUsedExternalReferences() const;
-
-protected:
- virtual void DataChanged( const ScRange* pModified ) const;
- ScDocument* GetDocument() const { return pDoc; }
- ScConditionalFormat* pCondFormat;
-};
-
-//
-// single entry for conditional formatting
-//
-
-class SC_DLLPUBLIC ScCondFormatEntry : public ScConditionEntry
-{
- String aStyleName;
-
- using ScConditionEntry::operator==;
-
-public:
- ScCondFormatEntry( ScConditionMode eOper,
- const String& rExpr1, const String& rExpr2,
- ScDocument* pDocument, const ScAddress& rPos,
- const String& rStyle,
- const String& rExprNmsp1 = EMPTY_STRING,
- const String& rExprNmsp2 = EMPTY_STRING,
- formula::FormulaGrammar::Grammar eGrammar1 = formula::FormulaGrammar::GRAM_DEFAULT,
- formula::FormulaGrammar::Grammar eGrammar2 = formula::FormulaGrammar::GRAM_DEFAULT );
- 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 );
- virtual ~ScCondFormatEntry();
-
- int operator== ( const ScCondFormatEntry& r ) const;
-
- const String& GetStyle() const { return aStyleName; }
- void UpdateStyleName(const String& rNew) { aStyleName=rNew; }
-
-protected:
- virtual void DataChanged( const ScRange* pModified ) const;
-};
-
-//
-// complete conditional formatting
-//
-
-class SC_DLLPUBLIC ScConditionalFormat
-{
- ScDocument* pDoc;
- ScRangeList* pAreas; // area for Paint
- sal_uInt32 nKey; // Index in attributes
- ScCondFormatEntry** ppEntries;
- sal_uInt16 nEntryCount;
- sal_Bool bIsUsed; // temporary at Save
- ScRangeListRef pRanges; // Ranges for conditional format
-
-public:
- ScConditionalFormat(sal_uInt32 nNewKey, ScDocument* pDocument);
- ScConditionalFormat(const ScConditionalFormat& r);
- ~ScConditionalFormat();
-
- // true copy of formulas (for Ref-Undo / between documents)
- ScConditionalFormat* Clone(ScDocument* pNewDoc = NULL) const;
-
- void AddEntry( const ScCondFormatEntry& rNew );
- void AddRangeInfo( const ScRangeListRef& rRanges );
- const ScRangeListRef& GetRangeInfo() const { return pRanges; }
-
- sal_Bool IsEmpty() const { return (nEntryCount == 0); }
- sal_uInt16 Count() const { return nEntryCount; }
-
- void CompileAll();
- void CompileXML();
- void UpdateReference( UpdateRefMode eUpdateRefMode,
- const ScRange& rRange, SCsCOL nDx, SCsROW nDy, SCsTAB nDz );
- void UpdateMoveTab( SCTAB nOldPos, SCTAB nNewPos );
- void RenameCellStyle( const String& rOld, const String& rNew );
-
- void SourceChanged( const ScAddress& rAddr );
-
- const ScCondFormatEntry* GetEntry( sal_uInt16 nPos ) const;
-
- const String& GetCellStyle( ScBaseCell* pCell, const ScAddress& rPos ) const;
-
- sal_Bool EqualEntries( const ScConditionalFormat& r ) const;
-
- void DoRepaint( const ScRange* pModified );
- void InvalidateArea();
-
- sal_uInt32 GetKey() const { return nKey; }
- void SetKey(sal_uInt32 nNew) { nKey = nNew; } // only if not inserted!
-
- void SetUsed(sal_Bool bSet) { bIsUsed = bSet; }
- sal_Bool IsUsed() const { return bIsUsed; }
-
- bool MarkUsedExternalReferences() const;
-
- // sorted (via PTRARR) by Index
- // operator== only for sorting
- sal_Bool operator ==( const ScConditionalFormat& r ) const { return nKey == r.nKey; }
- sal_Bool operator < ( const ScConditionalFormat& r ) const { return nKey < r.nKey; }
-};
-
-//
-// List of areas and formats:
-//
-
-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( sal_uInt32 nKey );
-
- void CompileAll();
- void CompileXML();
- void UpdateReference( UpdateRefMode eUpdateRefMode,
- const ScRange& rRange, SCsCOL nDx, SCsROW nDy, SCsTAB nDz );
- void RenameCellStyle( const String& rOld, const String& rNew );
- void UpdateMoveTab( SCTAB nOldPos, SCTAB nNewPos );
-
- void SourceChanged( const ScAddress& rAddr );
-
- /** Temporarily during save, returns RefManager's decision whether ALL
- * references are marked now. */
- bool MarkUsedExternalReferences() const;
-
- sal_Bool operator==( const ScConditionalFormatList& r ) const; // for Ref-Undo
-};
-
-#endif
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */