summaryrefslogtreecommitdiff
path: root/sc/inc/table.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'sc/inc/table.hxx')
-rw-r--r--sc/inc/table.hxx962
1 files changed, 0 insertions, 962 deletions
diff --git a/sc/inc/table.hxx b/sc/inc/table.hxx
deleted file mode 100644
index 6d02ad531..000000000
--- a/sc/inc/table.hxx
+++ /dev/null
@@ -1,962 +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_TABLE_HXX
-#define SC_TABLE_HXX
-
-#include <vector>
-#include <memory>
-#include <utility>
-#include <tools/gen.hxx>
-#include <tools/color.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-#include "column.hxx"
-#include "sortparam.hxx"
-#include "compressedarray.hxx"
-#include "dbdata.hxx"
-
-#include <memory>
-#include <set>
-#include <boost/shared_ptr.hpp>
-
-namespace utl {
- class TextSearch;
-}
-
-namespace com { namespace sun { namespace star {
- namespace sheet {
- struct TablePageBreakData;
- }
-} } }
-
-class SfxItemSet;
-class SfxStyleSheetBase;
-class SvxBoxInfoItem;
-class SvxBoxItem;
-class SvxSearchItem;
-
-class ScAutoFormat;
-class ScAutoFormatData;
-class ScBaseCell;
-class ScDocument;
-class ScDrawLayer;
-class ScEditDataArray;
-class ScFormulaCell;
-class ScOutlineTable;
-class ScPostIt;
-class ScPrintSaverTab;
-class ScProgress;
-class ScProgress;
-class ScRangeList;
-class ScSheetEvents;
-class ScSortInfoArray;
-class ScStyleSheet;
-class ScTableLink;
-class ScTableProtection;
-class ScUserListData;
-struct RowInfo;
-struct ScFunctionData;
-struct ScLineFlags;
-class CollatorWrapper;
-class ScFlatUInt16RowSegments;
-class ScFlatBoolRowSegments;
-class ScFlatBoolColSegments;
-struct ScSetStringParam;
-struct ScColWidthParam;
-struct ScColWidthParam;
-class ScRangeName;
-
-typedef boost::unordered_map< ::rtl::OUString, rtl::OUString, ::rtl::OUStringHash, ::std::equal_to< ::rtl::OUString > > NameToNameMap;
-
-class ScTable
-{
-private:
- typedef ::std::vector< ScRange > ScRangeVec;
- typedef ::std::pair< SCCOL, SCROW > ScAddress2D;
- typedef ::std::vector< ScAddress2D > ScAddress2DVec;
- typedef ::std::auto_ptr< ScAddress2DVec > ScAddress2DVecPtr;
-
- // data per table
- ScColumn aCol[MAXCOLCOUNT];
-
- String aName;
- String aCodeName;
- String aComment;
- sal_Bool bScenario;
- sal_Bool bLayoutRTL;
- sal_Bool bLoadingRTL;
-
- String aLinkDoc;
- String aLinkFlt;
- String aLinkOpt;
- String aLinkTab;
- sal_uLong nLinkRefreshDelay;
- sal_uInt8 nLinkMode;
-
- // page style template
- String aPageStyle;
- sal_Bool bPageSizeValid;
- Size aPageSizeTwips; // size of the print-page
- SCCOL nRepeatStartX; // repeating rows/columns
- SCCOL nRepeatEndX; // REPEAT_NONE, if not used
- SCROW nRepeatStartY;
- SCROW nRepeatEndY;
-
- ::std::auto_ptr<ScTableProtection> pTabProtection;
-
- sal_uInt16* pColWidth;
- ::boost::shared_ptr<ScFlatUInt16RowSegments> mpRowHeights;
-
- sal_uInt8* pColFlags;
- ScBitMaskCompressedArray< SCROW, sal_uInt8>* pRowFlags;
- ::boost::shared_ptr<ScFlatBoolColSegments> mpHiddenCols;
- ::boost::shared_ptr<ScFlatBoolRowSegments> mpHiddenRows;
- ::boost::shared_ptr<ScFlatBoolColSegments> mpFilteredCols;
- ::boost::shared_ptr<ScFlatBoolRowSegments> mpFilteredRows;
-
- ::std::set<SCROW> maRowPageBreaks;
- ::std::set<SCROW> maRowManualBreaks;
- ::std::set<SCCOL> maColPageBreaks;
- ::std::set<SCCOL> maColManualBreaks;
-
- ScOutlineTable* pOutlineTable;
-
- ScSheetEvents* pSheetEvents;
-
- SCCOL nTableAreaX;
- SCROW nTableAreaY;
- sal_Bool bTableAreaValid;
-
- // internal management
- sal_Bool bVisible;
- sal_Bool bStreamValid;
- sal_Bool bPendingRowHeights;
- sal_Bool bCalcNotification;
-
- SCTAB nTab;
- sal_uInt16 nRecalcLvl; // recursion level Size-Recalc
- ScDocument* pDocument;
- utl::TextSearch* pSearchText;
-
- mutable String aUpperName; // #i62977# filled only on demand, reset in SetName
-
- ScAddress2DVecPtr mxUninitNotes;
-
- // sort parameter to minimize stack size of quicksort
- ScSortParam aSortParam;
- CollatorWrapper* pSortCollator;
- sal_Bool bGlobalKeepQuery;
-
- ScRangeVec aPrintRanges;
- bool bPrintEntireSheet;
-
- ScRange* pRepeatColRange;
- ScRange* pRepeatRowRange;
-
- sal_uInt16 nLockCount;
-
- ScRangeList* pScenarioRanges;
- Color aScenarioColor;
- Color aTabBgColor;
- sal_uInt16 nScenarioFlags;
- sal_Bool bActiveScenario;
- ScDBData* pDBDataNoName;
- mutable ScRangeName* mpRangeName;
- bool mbPageBreaksValid;
-
-friend class ScDocument; // for FillInfo
-friend class ScDocumentIterator;
-friend class ScValueIterator;
-friend class ScDBQueryDataIterator;
-friend class ScCellIterator;
-friend class ScQueryCellIterator;
-friend class ScHorizontalCellIterator;
-friend class ScHorizontalAttrIterator;
-friend class ScDocAttrIterator;
-friend class ScAttrRectIterator;
-
-
-public:
- ScTable( ScDocument* pDoc, SCTAB nNewTab, const String& rNewName,
- sal_Bool bColInfo = sal_True, sal_Bool bRowInfo = sal_True );
- ~ScTable();
-
- ScOutlineTable* GetOutlineTable() { return pOutlineTable; }
-
- SCSIZE GetCellCount(SCCOL nCol) const;
- sal_uLong GetCellCount() const;
- sal_uLong GetWeightedCount() const;
- sal_uLong GetCodeCount() const; // RPN code in formula
-
- sal_Bool SetOutlineTable( const ScOutlineTable* pNewOutline );
- void StartOutlineTable();
-
- void DoAutoOutline( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow );
-
- sal_Bool TestRemoveSubTotals( const ScSubTotalParam& rParam );
- void RemoveSubTotals( ScSubTotalParam& rParam );
- sal_Bool DoSubTotals( ScSubTotalParam& rParam );
-
- const ScSheetEvents* GetSheetEvents() const { return pSheetEvents; }
- void SetSheetEvents( const ScSheetEvents* pNew );
-
- sal_Bool IsVisible() const { return bVisible; }
- void SetVisible( sal_Bool bVis );
-
- sal_Bool IsStreamValid() const { return bStreamValid; }
- void SetStreamValid( sal_Bool bSet, sal_Bool bIgnoreLock = false );
-
- sal_Bool IsPendingRowHeights() const { return bPendingRowHeights; }
- void SetPendingRowHeights( sal_Bool bSet );
-
- sal_Bool GetCalcNotification() const { return bCalcNotification; }
- void SetCalcNotification( sal_Bool bSet );
-
- sal_Bool IsLayoutRTL() const { return bLayoutRTL; }
- sal_Bool IsLoadingRTL() const { return bLoadingRTL; }
- void SetLayoutRTL( sal_Bool bSet );
- void SetLoadingRTL( sal_Bool bSet );
-
- sal_Bool IsScenario() const { return bScenario; }
- void SetScenario( sal_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; }
- const Color& GetTabBgColor() const;
- void SetTabBgColor(const Color& rColor);
- sal_uInt16 GetScenarioFlags() const { return nScenarioFlags; }
- void SetScenarioFlags(sal_uInt16 nNew) { nScenarioFlags = nNew; }
- void SetActiveScenario(sal_Bool bSet) { bActiveScenario = bSet; }
- sal_Bool IsActiveScenario() const { return bActiveScenario; }
-
- sal_uInt8 GetLinkMode() const { return nLinkMode; }
- sal_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; }
- sal_uLong GetLinkRefreshDelay() const { return nLinkRefreshDelay; }
-
- void SetLink( sal_uInt8 nMode, const String& rDoc, const String& rFlt,
- const String& rOpt, const String& rTab, sal_uLong nRefreshDelay );
-
- void GetName( String& rName ) const;
- void SetName( const String& rNewName );
-
- void SetAnonymousDBData(ScDBData* pDBData);
- ScDBData* GetAnonymousDBData();
-
- void GetCodeName( String& rName ) const { rName = aCodeName; }
- void SetCodeName( const String& rNewName ) { aCodeName = rNewName; }
-
- const String& GetUpperName() const;
-
- const String& GetPageStyle() const { return aPageStyle; }
- void SetPageStyle( const String& rName );
- void PageStyleModified( const String& rNewName );
-
- sal_Bool IsProtected() const;
- void SetProtection(const ScTableProtection* pProtect);
- ScTableProtection* GetProtection();
-
- Size GetPageSize() const;
- void SetPageSize( const Size& rSize );
- void SetRepeatArea( SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCROW nEndRow );
-
- void RemoveAutoSpellObj();
-
- void LockTable();
- void UnlockTable();
-
- sal_Bool IsBlockEditable( SCCOL nCol1, SCROW nRow1, SCCOL nCol2,
- SCROW nRow2, sal_Bool* pOnlyNotBecauseOfMatrix = NULL ) const;
- sal_Bool IsSelectionEditable( const ScMarkData& rMark,
- sal_Bool* pOnlyNotBecauseOfMatrix = NULL ) const;
-
- sal_Bool HasBlockMatrixFragment( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 ) const;
- bool HasSelectionMatrixFragment( const ScMarkData& rMark ) const;
-
- sal_Bool IsBlockEmpty( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, bool bIgnoreNotes = false ) const;
-
- void PutCell( const ScAddress&, ScBaseCell* pCell );
- void PutCell( SCCOL nCol, SCROW nRow, ScBaseCell* pCell );
- void PutCell(SCCOL nCol, SCROW nRow, sal_uLong nFormatIndex, ScBaseCell* pCell);
- // TRUE = numberformat set
- sal_Bool SetString( SCCOL nCol, SCROW nRow, SCTAB nTab, const String& rString,
- ScSetStringParam* pParam = NULL );
- void SetValue( SCCOL nCol, SCROW nRow, const double& rVal );
- void SetError( SCCOL nCol, SCROW nRow, sal_uInt16 nError);
-
- void GetString( SCCOL nCol, SCROW nRow, String& rString );
- void GetInputString( SCCOL nCol, SCROW nRow, String& rString );
- double GetValue( const ScAddress& rPos ) const
- {
- return ValidColRow(rPos.Col(),rPos.Row()) ?
- aCol[rPos.Col()].GetValue( rPos.Row() ) :
- 0.0;
- }
- double GetValue( SCCOL nCol, SCROW nRow );
- void GetFormula( SCCOL nCol, SCROW nRow, String& rFormula );
-
- CellType GetCellType( const ScAddress& rPos ) const
- {
- return ValidColRow(rPos.Col(),rPos.Row()) ?
- aCol[rPos.Col()].GetCellType( rPos.Row() ) :
- CELLTYPE_NONE;
- }
- CellType GetCellType( SCCOL nCol, SCROW nRow ) const;
- ScBaseCell* GetCell( const ScAddress& rPos ) const
- {
- return ValidColRow(rPos.Col(),rPos.Row()) ?
- aCol[rPos.Col()].GetCell( rPos.Row() ) :
- NULL;
- }
- ScBaseCell* GetCell( SCCOL nCol, SCROW nRow ) const;
-
- void GetFirstDataPos(SCCOL& rCol, SCROW& rRow) const;
- void GetLastDataPos(SCCOL& rCol, SCROW& rRow) const;
-
- /** Returns the pointer to a cell note object at the passed cell address. */
- ScPostIt* GetNote( SCCOL nCol, SCROW nRow );
- /** Sets the passed cell note object at the passed cell address. Takes ownership! */
- void TakeNote( SCCOL nCol, SCROW nRow, ScPostIt*& rpNote );
- /** Returns and forgets the cell note object at the passed cell address. */
- ScPostIt* ReleaseNote( SCCOL nCol, SCROW nRow );
- /** Deletes the note at the passed cell address. */
- void DeleteNote( SCCOL nCol, SCROW nRow );
- /** Creates the captions of all uninitialized cell notes.
- @param bForced True = always create all captions, false = skip when Undo is disabled. */
- void InitializeNoteCaptions( bool bForced = false );
-
- sal_Bool TestInsertRow( SCCOL nStartCol, SCCOL nEndCol, SCSIZE nSize );
- void InsertRow( SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE nSize );
- void DeleteRow( SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE nSize,
- sal_Bool* pUndoOutline = NULL );
-
- sal_Bool TestInsertCol( SCROW nStartRow, SCROW nEndRow, SCSIZE nSize );
- void InsertCol( SCCOL nStartCol, SCROW nStartRow, SCROW nEndRow, SCSIZE nSize );
- void DeleteCol( SCCOL nStartCol, SCROW nStartRow, SCROW nEndRow, SCSIZE nSize,
- sal_Bool* pUndoOutline = NULL );
-
- void DeleteArea(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, sal_uInt16 nDelFlag);
- void CopyToClip(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScTable* pTable,
- sal_Bool bKeepScenarioFlags, sal_Bool bCloneNoteCaptions);
- void CopyToClip(const ScRangeList& rRanges, ScTable* pTable,
- bool bKeepScenarioFlags, bool bCloneNoteCaptions);
- void CopyFromClip(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, SCsCOL nDx, SCsROW nDy,
- sal_uInt16 nInsFlag, sal_Bool bAsLink, sal_Bool bSkipAttrForEmpty, ScTable* pTable);
- void StartListeningInArea( SCCOL nCol1, SCROW nRow1,
- SCCOL nCol2, SCROW nRow2 );
- void BroadcastInArea( SCCOL nCol1, SCROW nRow1,
- SCCOL nCol2, SCROW nRow2 );
-
- void CopyToTable(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
- sal_uInt16 nFlags, sal_Bool bMarked, ScTable* pDestTab,
- const ScMarkData* pMarkData = NULL,
- sal_Bool bAsLink = false, sal_Bool bColRowFlags = sal_True);
- void UndoToTable(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
- sal_uInt16 nFlags, sal_Bool bMarked, ScTable* pDestTab,
- const ScMarkData* pMarkData = NULL);
-
- void TransposeClip( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
- ScTable* pTransClip, sal_uInt16 nFlags, sal_Bool bAsLink );
-
- // mark of this document
- void MixMarked( const ScMarkData& rMark, sal_uInt16 nFunction,
- sal_Bool bSkipEmpty, ScTable* pSrcTab );
- void MixData( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
- sal_uInt16 nFunction, sal_Bool bSkipEmpty, ScTable* pSrcTab );
-
- void CopyData( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow,
- SCCOL nDestCol, SCROW nDestRow, SCTAB nDestTab );
-
- void CopyScenarioFrom( const ScTable* pSrcTab );
- void CopyScenarioTo( ScTable* pDestTab ) const;
- sal_Bool TestCopyScenarioTo( const ScTable* pDestTab ) const;
- void MarkScenarioIn( ScMarkData& rMark, sal_uInt16 nNeededBits ) const;
- sal_Bool HasScenarioRange( const ScRange& rRange ) const;
- void InvalidateScenarioRanges();
- const ScRangeList* GetScenarioRanges() const;
-
- void CopyUpdated( const ScTable* pPosTab, ScTable* pDestTab ) const;
-
- void InvalidateTableArea();
- void InvalidatePageBreaks();
-
- sal_Bool GetCellArea( SCCOL& rEndCol, SCROW& rEndRow ) const; // FALSE = empty
- sal_Bool GetTableArea( SCCOL& rEndCol, SCROW& rEndRow ) const;
- sal_Bool GetPrintArea( SCCOL& rEndCol, SCROW& rEndRow, sal_Bool bNotes ) const;
- sal_Bool GetPrintAreaHor( SCROW nStartRow, SCROW nEndRow,
- SCCOL& rEndCol, sal_Bool bNotes ) const;
- sal_Bool GetPrintAreaVer( SCCOL nStartCol, SCCOL nEndCol,
- SCROW& rEndRow, sal_Bool bNotes ) const;
-
- sal_Bool GetDataStart( SCCOL& rStartCol, SCROW& rStartRow ) const;
-
- void ExtendPrintArea( OutputDevice* pDev,
- SCCOL nStartCol, SCROW nStartRow, SCCOL& rEndCol, SCROW nEndRow );
-
- void GetDataArea( SCCOL& rStartCol, SCROW& rStartRow, SCCOL& rEndCol, SCROW& rEndRow,
- sal_Bool bIncludeOld, bool bOnlyDown ) const;
-
- bool ShrinkToUsedDataArea( bool& o_bShrunk, SCCOL& rStartCol, SCROW& rStartRow,
- SCCOL& rEndCol, SCROW& rEndRow, bool bColumnsOnly ) const;
-
- SCSIZE GetEmptyLinesInBlock( SCCOL nStartCol, SCROW nStartRow,
- SCCOL nEndCol, SCROW nEndRow, ScDirection eDir );
-
- void FindAreaPos( SCCOL& rCol, SCROW& rRow, SCsCOL nMovX, SCsROW nMovY );
- void GetNextPos( SCCOL& rCol, SCROW& rRow, SCsCOL nMovX, SCsROW nMovY,
- sal_Bool bMarked, sal_Bool bUnprotected, const ScMarkData& rMark );
-
- void LimitChartArea( SCCOL& rStartCol, SCROW& rStartRow, SCCOL& rEndCol, SCROW& rEndRow );
-
- sal_Bool HasData( SCCOL nCol, SCROW nRow );
- sal_Bool HasStringData( SCCOL nCol, SCROW nRow );
- sal_Bool HasValueData( SCCOL nCol, SCROW nRow );
- sal_Bool HasStringCells( SCCOL nStartCol, SCROW nStartRow,
- SCCOL nEndCol, SCROW nEndRow ) const;
-
- sal_uInt16 GetErrCode( const ScAddress& rPos ) const
- {
- return ValidColRow(rPos.Col(),rPos.Row()) ?
- aCol[rPos.Col()].GetErrCode( rPos.Row() ) :
- 0;
- }
-
- void ResetChanged( const ScRange& rRange );
-
- void SetDirty();
- void SetDirty( const ScRange& );
- void SetDirtyAfterLoad();
- void SetDirtyVar();
- void SetTableOpDirty( const ScRange& );
- void CalcAll();
- void CalcAfterLoad();
- void CompileAll();
- void CompileXML( ScProgress& rProgress );
-
- void UpdateReference( UpdateRefMode eUpdateRefMode, SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
- SCCOL nCol2, SCROW nRow2, SCTAB nTab2,
- SCsCOL nDx, SCsROW nDy, SCsTAB nDz,
- ScDocument* pUndoDoc = NULL, sal_Bool bIncludeDraw = sal_True, bool bUpdateNoteCaptionPos = true );
-
- void UpdateDrawRef( UpdateRefMode eUpdateRefMode, SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
- SCCOL nCol2, SCROW nRow2, SCTAB nTab2,
- SCsCOL nDx, SCsROW nDy, SCsTAB nDz, bool bUpdateNoteCaptionPos = true );
-
- void UpdateTranspose( const ScRange& rSource, const ScAddress& rDest,
- ScDocument* pUndoDoc );
-
- void UpdateGrow( const ScRange& rArea, SCCOL nGrowX, SCROW nGrowY );
-
- void UpdateInsertTab(SCTAB nTable, SCTAB nNewSheets = 1);
- void UpdateDeleteTab( SCTAB nTable, sal_Bool bIsMove, ScTable* pRefUndo = NULL, SCTAB nSheets = 1 );
- void UpdateMoveTab(SCTAB nOldPos, SCTAB nNewPos, SCTAB nTabNo, ScProgress* pProgress );
- void UpdateCompile( sal_Bool bForceIfNameInUse = false );
- void SetTabNo(SCTAB nNewTab);
- sal_Bool IsRangeNameInUse(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
- sal_uInt16 nIndex) const;
- void FindRangeNamesInUse(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
- std::set<sal_uInt16>& rIndexes) const;
- void ReplaceRangeNamesInUse(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
- const ScRangeData::IndexMap& rMap );
- void Fill( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
- sal_uLong nFillCount, FillDir eFillDir, FillCmd eFillCmd, FillDateCmd eFillDateCmd,
- double nStepValue, double nMaxValue);
- String GetAutoFillPreview( const ScRange& rSource, SCCOL nEndX, SCROW nEndY );
-
- void UpdateSelectionFunction( ScFunctionData& rData,
- SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow,
- const ScMarkData& rMark );
-
- void AutoFormat( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow,
- sal_uInt16 nFormatNo );
- void GetAutoFormatData(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, ScAutoFormatData& rData);
- void ScReplaceTabsStr( String& rStr, const String& rSrch, const String& rRepl ); // from sw
- sal_Bool SearchAndReplace(const SvxSearchItem& rSearchItem,
- SCCOL& rCol, SCROW& rRow, ScMarkData& rMark,
- String& rUndoStr, ScDocument* pUndoDoc);
-
- void FindMaxRotCol( RowInfo* pRowInfo, SCSIZE nArrCount, SCCOL nX1, SCCOL nX2 );
-
- void GetBorderLines( SCCOL nCol, SCROW nRow,
- const ::editeng::SvxBorderLine** ppLeft, const ::editeng::SvxBorderLine** ppTop,
- const ::editeng::SvxBorderLine** ppRight, const ::editeng::SvxBorderLine** ppBottom ) const;
-
- bool HasAttrib( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, sal_uInt16 nMask ) const;
- bool HasAttribSelection( const ScMarkData& rMark, sal_uInt16 nMask ) const;
- bool ExtendMerge( SCCOL nStartCol, SCROW nStartRow,
- SCCOL& rEndCol, SCROW& rEndRow,
- sal_Bool bRefresh, sal_Bool bAttrs );
- const SfxPoolItem* GetAttr( SCCOL nCol, SCROW nRow, sal_uInt16 nWhich ) const;
- const ScPatternAttr* GetPattern( SCCOL nCol, SCROW nRow ) const;
- const ScPatternAttr* GetMostUsedPattern( SCCOL nCol, SCROW nStartRow, SCROW nEndRow ) const;
-
- sal_uLong GetNumberFormat( const ScAddress& rPos ) const
- {
- return ValidColRow(rPos.Col(),rPos.Row()) ?
- aCol[rPos.Col()].GetNumberFormat( rPos.Row() ) :
- 0;
- }
- sal_uLong GetNumberFormat( SCCOL nCol, SCROW nRow ) const;
- sal_uInt32 GetNumberFormat( SCCOL nCol, SCROW nStartRow, SCROW nEndRow ) const;
- void MergeSelectionPattern( ScMergePatternState& rState,
- const ScMarkData& rMark, sal_Bool bDeep ) const;
- void MergePatternArea( ScMergePatternState& rState, SCCOL nCol1, SCROW nRow1,
- SCCOL nCol2, SCROW nRow2, sal_Bool bDeep ) const;
- void MergeBlockFrame( SvxBoxItem* pLineOuter, SvxBoxInfoItem* pLineInner,
- ScLineFlags& rFlags,
- SCCOL nStartCol, SCROW nStartRow,
- SCCOL nEndCol, SCROW nEndRow ) const;
- void ApplyBlockFrame( const SvxBoxItem* pLineOuter,
- const SvxBoxInfoItem* pLineInner,
- SCCOL nStartCol, SCROW nStartRow,
- SCCOL nEndCol, SCROW nEndRow );
-
- void ApplyAttr( SCCOL nCol, SCROW nRow, const SfxPoolItem& rAttr );
- void ApplyPattern( SCCOL nCol, SCROW nRow, const ScPatternAttr& rAttr );
- void ApplyPatternArea( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow,
- const ScPatternAttr& rAttr, ScEditDataArray* pDataArray = NULL );
- bool SetAttrEntries(SCCOL nCol, ScAttrEntry* pData, SCSIZE nSize);
-
- void SetPattern( const ScAddress& rPos, const ScPatternAttr& rAttr, sal_Bool bPutToPool = false )
- {
- if (ValidColRow(rPos.Col(),rPos.Row()))
- aCol[rPos.Col()].SetPattern( rPos.Row(), rAttr, bPutToPool );
- }
- void SetPattern( SCCOL nCol, SCROW nRow, const ScPatternAttr& rAttr, sal_Bool bPutToPool = false );
- void ApplyPatternIfNumberformatIncompatible( const ScRange& rRange,
- const ScPatternAttr& rPattern, short nNewType );
-
- void ApplyStyle( SCCOL nCol, SCROW nRow, const ScStyleSheet& rStyle );
- void ApplyStyleArea( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, const ScStyleSheet& rStyle );
- void ApplySelectionStyle(const ScStyleSheet& rStyle, const ScMarkData& rMark);
- void ApplySelectionLineStyle( const ScMarkData& rMark,
- const ::editeng::SvxBorderLine* pLine, sal_Bool bColorOnly );
-
- const ScStyleSheet* GetStyle( SCCOL nCol, SCROW nRow ) const;
- const ScStyleSheet* GetSelectionStyle( const ScMarkData& rMark, sal_Bool& rFound ) const;
- const ScStyleSheet* GetAreaStyle( sal_Bool& rFound, SCCOL nCol1, SCROW nRow1,
- SCCOL nCol2, SCROW nRow2 ) const;
-
- void StyleSheetChanged( const SfxStyleSheetBase* pStyleSheet, sal_Bool bRemoved,
- OutputDevice* pDev,
- double nPPTX, double nPPTY,
- const Fraction& rZoomX, const Fraction& rZoomY );
-
- sal_Bool IsStyleSheetUsed( const ScStyleSheet& rStyle, sal_Bool bGatherAllStyles ) const;
-
- bool ApplyFlags( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, sal_Int16 nFlags );
- bool RemoveFlags( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, sal_Int16 nFlags );
-
- void ApplySelectionCache( SfxItemPoolCache* pCache, const ScMarkData& rMark, ScEditDataArray* pDataArray = NULL );
- void DeleteSelection( sal_uInt16 nDelFlag, const ScMarkData& rMark );
-
- void ClearSelectionItems( const sal_uInt16* pWhich, const ScMarkData& rMark );
- void ChangeSelectionIndent( sal_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 );
-
- sal_uInt16 GetPrintRangeCount() const { return static_cast< sal_uInt16 >( aPrintRanges.size() ); }
- const ScRange* GetPrintRange(sal_uInt16 nPos) const;
- /** Returns true, if the sheet is always printed. */
- bool IsPrintEntireSheet() const { return bPrintEntireSheet; }
-
- /** Removes all print ranges. */
- void ClearPrintRanges();
- /** Adds a new print ranges. */
- void AddPrintRange( const ScRange& rNew );
- /** Marks the specified sheet to be printed completely. Deletes old print ranges! */
- void SetPrintEntireSheet();
-
- void FillPrintSaver( ScPrintSaverTab& rSaveTab ) const;
- void RestorePrintRanges( const ScPrintSaverTab& rSaveTab );
-
- sal_uInt16 GetOptimalColWidth( SCCOL nCol, OutputDevice* pDev,
- double nPPTX, double nPPTY,
- const Fraction& rZoomX, const Fraction& rZoomY,
- sal_Bool bFormula, const ScMarkData* pMarkData,
- const ScColWidthParam* pParam );
- sal_Bool SetOptimalHeight( SCROW nStartRow, SCROW nEndRow, sal_uInt16 nExtra,
- OutputDevice* pDev,
- double nPPTX, double nPPTY,
- const Fraction& rZoomX, const Fraction& rZoomY,
- sal_Bool bForce,
- ScProgress* pOuterProgress = NULL, sal_uLong nProgressStart = 0 );
-
- void SetOptimalHeightOnly(SCROW nStartRow, SCROW nEndRow, sal_uInt16 nExtra,
- OutputDevice* pDev,
- double nPPTX, double nPPTY,
- const Fraction& rZoomX, const Fraction& rZoomY,
- sal_Bool bForce,
- ScProgress* pOuterProgress = NULL, sal_uLong nProgressStart = 0 );
-
- long GetNeededSize( SCCOL nCol, SCROW nRow,
- OutputDevice* pDev,
- double nPPTX, double nPPTY,
- const Fraction& rZoomX, const Fraction& rZoomY,
- sal_Bool bWidth, sal_Bool bTotalSize );
- void SetColWidth( SCCOL nCol, sal_uInt16 nNewWidth );
- void SetColWidthOnly( SCCOL nCol, sal_uInt16 nNewWidth );
- void SetRowHeight( SCROW nRow, sal_uInt16 nNewHeight );
- sal_Bool SetRowHeightRange( SCROW nStartRow, SCROW nEndRow, sal_uInt16 nNewHeight,
- double nPPTX, double nPPTY );
-
- /**
- * Set specified row height to specified ranges. Don't check for drawing
- * objects etc. Just set the row height. Nothing else.
- *
- * Note that setting a new row height via this function will not
- * invalidate page breaks.
- */
- void SetRowHeightOnly( SCROW nStartRow, SCROW nEndRow, sal_uInt16 nNewHeight );
-
- // nPPT to test for modification
- void SetManualHeight( SCROW nStartRow, SCROW nEndRow, sal_Bool bManual );
-
- sal_uInt16 GetColWidth( SCCOL nCol ) const;
- SC_DLLPUBLIC sal_uInt16 GetRowHeight( SCROW nRow, SCROW* pStartRow = NULL, SCROW* pEndRow = NULL, bool bHiddenAsZero = true ) const;
- sal_uLong GetRowHeight( SCROW nStartRow, SCROW nEndRow ) const;
- sal_uLong GetScaledRowHeight( SCROW nStartRow, SCROW nEndRow, double fScale ) const;
- sal_uLong GetColOffset( SCCOL nCol ) const;
- sal_uLong GetRowOffset( SCROW nRow ) const;
-
- /**
- * Get the last row such that the height of row 0 to the end row is as
- * high as possible without exceeding the specified height value.
- *
- * @param nHeight maximum desired height
- *
- * @return SCROW last row of the range within specified height.
- */
- SCROW GetRowForHeight(sal_uLong nHeight) const;
-
- sal_uInt16 GetOriginalWidth( SCCOL nCol ) const;
- sal_uInt16 GetOriginalHeight( SCROW nRow ) const;
-
- sal_uInt16 GetCommonWidth( SCCOL nEndCol );
-
- SCROW GetHiddenRowCount( SCROW nRow );
-
- void ShowCol(SCCOL nCol, bool bShow);
- void ShowRow(SCROW nRow, bool bShow);
- void DBShowRow(SCROW nRow, bool bShow);
-
- void ShowRows(SCROW nRow1, SCROW nRow2, bool bShow);
- void DBShowRows(SCROW nRow1, SCROW nRow2, bool bShow);
-
- void SetColFlags( SCCOL nCol, sal_uInt8 nNewFlags );
- void SetRowFlags( SCROW nRow, sal_uInt8 nNewFlags );
- void SetRowFlags( SCROW nStartRow, SCROW nEndRow, sal_uInt8 nNewFlags );
-
- /// @return the index of the last row with any set flags (auto-pagebreak is ignored).
- SCROW GetLastFlaggedRow() const;
-
- /// @return the index of the last changed column (flags and column width, auto pagebreak is ignored).
- SCCOL GetLastChangedCol() const;
- /// @return the index of the last changed row (flags and row height, auto pagebreak is ignored).
- SCROW GetLastChangedRow() const;
-
- bool IsDataFiltered() const;
- sal_uInt8 GetColFlags( SCCOL nCol ) const;
- sal_uInt8 GetRowFlags( SCROW nRow ) const;
-
- const ScBitMaskCompressedArray< SCROW, sal_uInt8> * GetRowFlagsArray() const
- { return pRowFlags; }
-
- sal_Bool UpdateOutlineCol( SCCOL nStartCol, SCCOL nEndCol, sal_Bool bShow );
- sal_Bool UpdateOutlineRow( SCROW nStartRow, SCROW nEndRow, sal_Bool bShow );
-
- void UpdatePageBreaks( const ScRange* pUserArea );
- void RemoveManualBreaks();
- sal_Bool HasManualBreaks() const;
- void SetRowManualBreaks( const ::std::set<SCROW>& rBreaks );
- void SetColManualBreaks( const ::std::set<SCCOL>& rBreaks );
-
- void GetAllRowBreaks(::std::set<SCROW>& rBreaks, bool bPage, bool bManual) const;
- void GetAllColBreaks(::std::set<SCCOL>& rBreaks, bool bPage, bool bManual) const;
- bool HasRowPageBreak(SCROW nRow) const;
- bool HasColPageBreak(SCCOL nCol) const;
- bool HasRowManualBreak(SCROW nRow) const;
- bool HasColManualBreak(SCCOL nCol) const;
-
- /**
- * Get the row position of the next manual break that occurs at or below
- * specified row. When no more manual breaks are present at or below
- * the specified row, -1 is returned.
- *
- * @param nRow row at which the search begins.
- *
- * @return SCROW next row position with manual page break, or -1 if no
- * more manual breaks are present.
- */
- SCROW GetNextManualBreak(SCROW nRow) const;
-
- void RemoveRowPageBreaks(SCROW nStartRow, SCROW nEndRow);
- void RemoveRowBreak(SCROW nRow, bool bPage, bool bManual);
- void RemoveColBreak(SCCOL nCol, bool bPage, bool bManual);
- void SetRowBreak(SCROW nRow, bool bPage, bool bManual);
- void SetColBreak(SCCOL nCol, bool bPage, bool bManual);
- ::com::sun::star::uno::Sequence<
- ::com::sun::star::sheet::TablePageBreakData> GetRowBreakData() const;
-
- bool RowHidden(SCROW nRow, SCROW* pFirstRow = NULL, SCROW* pLastRow = NULL) const;
- bool RowHiddenLeaf(SCROW nRow, SCROW* pFirstRow = NULL, SCROW* pLastRow = NULL) const;
- bool HasHiddenRows(SCROW nStartRow, SCROW nEndRow) const;
- bool ColHidden(SCCOL nCol, SCCOL* pFirstCol = NULL, SCCOL* pLastCol = NULL) const;
- bool SetRowHidden(SCROW nStartRow, SCROW nEndRow, bool bHidden);
- bool SetColHidden(SCCOL nStartCol, SCCOL nEndCol, bool bHidden);
- void CopyColHidden(ScTable& rTable, SCCOL nStartCol, SCCOL nEndCol);
- void CopyRowHidden(ScTable& rTable, SCROW nStartRow, SCROW nEndRow);
- void CopyRowHeight(ScTable& rSrcTable, SCROW nStartRow, SCROW nEndRow, SCROW nSrcOffset);
- SCROW FirstVisibleRow(SCROW nStartRow, SCROW nEndRow) const;
- SCROW LastVisibleRow(SCROW nStartRow, SCROW nEndRow) const;
- SCROW CountVisibleRows(SCROW nStartRow, SCROW nEndRow) const;
- sal_uInt32 GetTotalRowHeight(SCROW nStartRow, SCROW nEndRow) const;
-
- SCCOLROW LastHiddenColRow(SCCOLROW nPos, bool bCol) const;
-
- bool RowFiltered(SCROW nRow, SCROW* pFirstRow = NULL, SCROW* pLastRow = NULL) const;
- bool ColFiltered(SCCOL nCol, SCCOL* pFirstCol = NULL, SCCOL* pLastCol = NULL) const;
- bool HasFilteredRows(SCROW nStartRow, SCROW nEndRow) const;
- void CopyColFiltered(ScTable& rTable, SCCOL nStartCol, SCCOL nEndCol);
- void CopyRowFiltered(ScTable& rTable, SCROW nStartRow, SCROW nEndRow);
- void SetRowFiltered(SCROW nStartRow, SCROW nEndRow, bool bFiltered);
- void SetColFiltered(SCCOL nStartCol, SCCOL nEndCol, bool bFiltered);
- SCROW FirstNonFilteredRow(SCROW nStartRow, SCROW nEndRow) const;
- SCROW LastNonFilteredRow(SCROW nStartRow, SCROW nEndRow) const;
- SCROW CountNonFilteredRows(SCROW nStartRow, SCROW nEndRow) const;
-
- void SyncColRowFlags();
-
- void StripHidden( SCCOL& rX1, SCROW& rY1, SCCOL& rX2, SCROW& rY2 );
- void ExtendHidden( SCCOL& rX1, SCROW& rY1, SCCOL& rX2, SCROW& rY2 );
-
- void Sort(const ScSortParam& rSortParam, sal_Bool bKeepQuery);
- sal_Bool ValidQuery(SCROW nRow, const ScQueryParam& rQueryParam,
- sal_Bool* pSpecial = NULL, ScBaseCell* pCell = NULL,
- sal_Bool* pbTestEqualCondition = NULL );
- void TopTenQuery( ScQueryParam& );
- SCSIZE Query(ScQueryParam& rQueryParam, sal_Bool bKeepSub);
- sal_Bool CreateQueryParam(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam& rQueryParam);
-
- void GetFilterEntries(SCCOL nCol, SCROW nRow1, SCROW nRow2, TypedScStrCollection& rStrings, bool& rHasDates);
- void GetFilteredFilterEntries( SCCOL nCol, SCROW nRow1, SCROW nRow2, const ScQueryParam& rParam, TypedScStrCollection& rStrings, bool& rHasDates );
- sal_Bool GetDataEntries(SCCOL nCol, SCROW nRow, TypedScStrCollection& rStrings, sal_Bool bLimit);
-
- sal_Bool HasColHeader( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow );
- sal_Bool HasRowHeader( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow );
-
- void DoColResize( SCCOL nCol1, SCCOL nCol2, SCSIZE nAdd );
-
-
- sal_Int32 GetMaxStringLen( SCCOL nCol,
- SCROW nRowStart, SCROW nRowEnd, CharSet eCharSet ) const;
- xub_StrLen GetMaxNumberStringLen( sal_uInt16& nPrecision,
- SCCOL nCol,
- SCROW nRowStart, SCROW nRowEnd ) const;
-
- void FindConditionalFormat( sal_uLong nKey, ScRangeList& rRanges );
-
- void IncRecalcLevel();
- void DecRecalcLevel( bool bUpdateNoteCaptionPos = true );
-
- sal_Bool IsSortCollatorGlobal() const;
- void InitSortCollator( const ScSortParam& rPar );
- void DestroySortCollator();
- void SetDrawPageSize( bool bResetStreamValid = true, bool bUpdateNoteCaptionPos = true );
-
- void SetRangeName(ScRangeName* pNew);
- ScRangeName* GetRangeName() const;
- void UpdateMoveTab(SCTAB nOldPos,SCTAB nNewPos);
-
-private:
- void FillSeries( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
- sal_uLong nFillCount, FillDir eFillDir, FillCmd eFillCmd,
- FillDateCmd eFillDateCmd,
- double nStepValue, double nMaxValue, sal_uInt16 nMinDigits,
- sal_Bool bAttribs, ScProgress& rProgress );
- void FillAnalyse( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
- FillCmd& rCmd, FillDateCmd& rDateCmd,
- double& rInc, sal_uInt16& rMinDigits,
- ScUserListData*& rListData, sal_uInt16& rListIndex);
- void FillAuto( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
- sal_uLong nFillCount, FillDir eFillDir, ScProgress& rProgress );
-
- sal_Bool ValidNextPos( SCCOL nCol, SCROW nRow, const ScMarkData& rMark,
- sal_Bool bMarked, sal_Bool bUnprotected );
-
- void AutoFormatArea(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow,
- const ScPatternAttr& rAttr, sal_uInt16 nFormatNo);
- void GetAutoFormatAttr(SCCOL nCol, SCROW nRow, sal_uInt16 nIndex, ScAutoFormatData& rData);
- void GetAutoFormatFrame(SCCOL nCol, SCROW nRow, sal_uInt16 nFlags, sal_uInt16 nIndex, ScAutoFormatData& rData);
- sal_Bool SearchCell(const SvxSearchItem& rSearchItem, SCCOL nCol, SCROW nRow,
- const ScMarkData& rMark, String& rUndoStr, ScDocument* pUndoDoc);
- sal_Bool Search(const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow,
- const ScMarkData& rMark, String& rUndoStr, ScDocument* pUndoDoc);
- sal_Bool SearchAll(const SvxSearchItem& rSearchItem, ScMarkData& rMark,
- String& rUndoStr, ScDocument* pUndoDoc);
- sal_Bool Replace(const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow,
- const ScMarkData& rMark, String& rUndoStr, ScDocument* pUndoDoc);
- sal_Bool ReplaceAll(const SvxSearchItem& rSearchItem, ScMarkData& rMark,
- String& rUndoStr, ScDocument* pUndoDoc);
-
- sal_Bool SearchStyle(const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow,
- ScMarkData& rMark);
- sal_Bool ReplaceStyle(const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow,
- ScMarkData& rMark, sal_Bool bIsUndo);
- sal_Bool SearchAllStyle(const SvxSearchItem& rSearchItem, ScMarkData& rMark);
- sal_Bool ReplaceAllStyle(const SvxSearchItem& rSearchItem, ScMarkData& rMark,
- ScDocument* pUndoDoc);
- bool SearchAndReplaceEmptyCells(
- const SvxSearchItem& rSearchItem,
- SCCOL& rCol, SCROW& rRow, ScMarkData& rMark,
- String& rUndoStr, ScDocument* pUndoDoc);
- bool SearchRangeForEmptyCell(const ScRange& rRange,
- const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow,
- String& rUndoStr, ScDocument* pUndoDoc);
- bool SearchRangeForAllEmptyCells(const ScRange& rRange,
- const SvxSearchItem& rSearchItem, ScMarkData& rMark,
- String& rUndoStr, ScDocument* pUndoDoc);
-
- // use the global sort parameter:
- sal_Bool IsSorted(SCCOLROW nStart, SCCOLROW nEnd);
- void DecoladeRow( ScSortInfoArray*, SCROW nRow1, SCROW nRow2 );
- void SwapCol(SCCOL nCol1, SCCOL nCol2);
- void SwapRow(SCROW nRow1, SCROW nRow2);
- short CompareCell( sal_uInt16 nSort,
- ScBaseCell* pCell1, SCCOL nCell1Col, SCROW nCell1Row,
- ScBaseCell* pCell2, SCCOL nCell2Col, SCROW nCell2Row );
- short Compare(SCCOLROW nIndex1, SCCOLROW nIndex2);
- short Compare( ScSortInfoArray*, SCCOLROW nIndex1, SCCOLROW nIndex2);
- ScSortInfoArray* CreateSortInfoArray( SCCOLROW nInd1, SCCOLROW nInd2 );
- void QuickSort( ScSortInfoArray*, SCsCOLROW nLo, SCsCOLROW nHi);
- void SortReorder( ScSortInfoArray*, ScProgress& );
-
- sal_Bool CreateExcelQuery(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam& rQueryParam);
- sal_Bool CreateStarQuery(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam& rQueryParam);
- void GetUpperCellString(SCCOL nCol, SCROW nRow, String& rStr);
-
- sal_Bool RefVisible(ScFormulaCell* pCell);
-
- sal_Bool IsEmptyLine(SCROW nRow, SCCOL nStartCol, SCCOL nEndCol);
-
- void IncDate(double& rVal, sal_uInt16& nDayOfMonth, double nStep, FillDateCmd eCmd);
- void FillFormula(sal_uLong& nFormulaCounter, sal_Bool bFirst, ScFormulaCell* pSrcCell,
- SCCOL nDestCol, SCROW nDestRow, sal_Bool bLast );
- void UpdateInsertTabAbs(SCTAB nNewPos);
- sal_Bool GetNextSpellingCell(SCCOL& rCol, SCROW& rRow, sal_Bool bInSel,
- const ScMarkData& rMark) const;
- sal_Bool GetNextMarkedCell( SCCOL& rCol, SCROW& rRow, const ScMarkData& rMark );
- sal_Bool TestTabRefAbs(SCTAB nTable);
- void CompileDBFormula();
- void CompileDBFormula( sal_Bool bCreateFormulaString );
- void CompileNameFormula( sal_Bool bCreateFormulaString );
- void CompileColRowNameFormula();
-
- void StartListening( const ScAddress& rAddress, SvtListener* pListener );
- void EndListening( const ScAddress& rAddress, SvtListener* pListener );
- void StartAllListeners();
- void StartNeededListeners(); // only for cells where NeedsListening()==TRUE
- void SetRelNameDirty();
-
- void SetLoadingMedium(bool bLoading);
-
- SCSIZE FillMaxRot( RowInfo* pRowInfo, SCSIZE nArrCount, SCCOL nX1, SCCOL nX2,
- SCCOL nCol, SCROW nAttrRow1, SCROW nAttrRow2, SCSIZE nArrY,
- const ScPatternAttr* pPattern, const SfxItemSet* pCondSet );
-
- // idle calculation of OutputDevice text width for cell
- // also invalidates script type, broadcasts for "calc as shown"
- void InvalidateTextWidth( const ScAddress* pAdrFrom, const ScAddress* pAdrTo,
- sal_Bool bNumFormatChanged, sal_Bool bBroadcast );
-
- void SkipFilteredRows(SCROW& rRow, SCROW& rLastNonFilteredRow, bool bForward);
-
- /**
- * In case the cell text goes beyond the column width, move the max column
- * position to the right. This is called from ExtendPrintArea.
- */
- void MaybeAddExtraColumn(SCCOL& rCol, SCROW nRow, OutputDevice* pDev, double nPPTX, double nPPTY);
-
- void CopyPrintRange(const ScTable& rTable);
-
- /**
- * Use this to iterate through non-empty visible cells in a single column.
- */
- class VisibleDataCellIterator
- {
- public:
- static SCROW ROW_NOT_FOUND;
-
- explicit VisibleDataCellIterator(ScFlatBoolRowSegments& rRowSegs, ScColumn& rColumn);
- ~VisibleDataCellIterator();
-
- /**
- * Set the start row position. In case there is not visible data cell
- * at the specified row position, it will move to the position of the
- * first visible data cell below that point.
- *
- * @return First visible data cell if found, or NULL otherwise.
- */
- ScBaseCell* reset(SCROW nRow);
-
- /**
- * Find the next visible data cell position.
- *
- * @return Next visible data cell if found, or NULL otherwise.
- */
- ScBaseCell* next();
-
- /**
- * Get the current row position.
- *
- * @return Current row position, or ROW_NOT_FOUND if the iterator
- * doesn't point to a valid data cell position.
- */
- SCROW getRow() const;
-
- private:
- ScFlatBoolRowSegments& mrRowSegs;
- ScColumn& mrColumn;
- ScBaseCell* mpCell;
- SCROW mnCurRow;
- SCROW mnUBound;
- };
-};
-
-
-#endif
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */