50 SCCOL GetMultiSelectionCount()
const;
51 bool HasMarks(
SCCOL nCol )
const;
55 bool HasEqualRowsMarked(
SCCOL nCol1,
SCCOL nCol2 )
const;
59 bool IsRowMarked(
SCROW nRow )
const;
60 bool IsRowRangeMarked(
SCROW nStartRow,
SCROW nEndRow )
const;
61 bool IsEmpty()
const {
return ( aMultiSelContainer.empty() && !aRowSel.
HasMarks() ); }
64 void MarkAllCols(
SCROW nStartRow,
SCROW nEndRow );
65 bool HasAnyMarks()
const;
66 void ShiftCols(
SCCOL nStartCol, sal_Int32 nColOffset);
67 void ShiftRows(
SCROW nStartRow, sal_Int32 nRowOffset);
79 std::unique_ptr<ScFlatBoolRowSegments>
pRowSegs;
MapType aMultiSelContainer
ScMarkArrayIter aMarkArrayIter
bool GetRangeData(SCROW nRow, ScFlatBoolRowSegments::RangeData &rRowRange) const
Only to be used by ScMultiSel::IsAllMarked() or otherwise sure that a segment tree is actually used...
bool Next(SCROW &rTop, SCROW &rBottom)
ScMultiSelIter(const ScMultiSel &rMultiSel, SCCOL nCol)
This is a rather odd datastructure.
std::vector< ScMarkArray > MapType
std::unique_ptr< ScFlatBoolRowSegments > pRowSegs
const ScSheetLimits & mrSheetLimits