LibreOffice Module sc (master)
1
|
#include <markmulti.hxx>
Public Member Functions | |
ScMultiSel (ScSheetLimits const &) | |
ScMultiSel (const ScMultiSel &rMultiSel)=default | |
ScMultiSel (ScMultiSel &&rMultiSel)=default | |
~ScMultiSel () | |
ScMultiSel & | operator= (const ScMultiSel &rMultiSel) |
ScMultiSel & | operator= (ScMultiSel &&rMultiSel) |
SCCOL | GetMultiSelectionCount () const |
bool | HasMarks (SCCOL nCol) const |
bool | HasOneMark (SCCOL nCol, SCROW &rStartRow, SCROW &rEndRow) const |
bool | GetMark (SCCOL nCol, SCROW nRow) const |
bool | IsAllMarked (SCCOL nCol, SCROW nStartRow, SCROW nEndRow) const |
bool | HasEqualRowsMarked (SCCOL nCol1, SCCOL nCol2) const |
SCROW | GetNextMarked (SCCOL nCol, SCROW nRow, bool bUp) const |
void | SetMarkArea (SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCROW nEndRow, bool bMark) |
void | Set (ScRangeList const &) |
optimised init-from-range-list. More... | |
bool | IsRowMarked (SCROW nRow) const |
bool | IsRowRangeMarked (SCROW nStartRow, SCROW nEndRow) const |
bool | IsEmpty () const |
ScMarkArray | GetMarkArray (SCCOL nCol) const |
void | Clear () |
void | MarkAllCols (SCROW nStartRow, SCROW nEndRow) |
bool | HasAnyMarks () const |
void | ShiftCols (SCCOL nStartCol, sal_Int32 nColOffset) |
void | ShiftRows (SCROW nStartRow, sal_Int32 nRowOffset) |
const ScMarkArray & | GetRowSelArray () const |
const ScMarkArray * | GetMultiSelArray (SCCOL nCol) const |
Private Types | |
typedef std::vector< ScMarkArray > | MapType |
Private Attributes | |
MapType | aMultiSelContainer |
ScMarkArray | aRowSel |
const ScSheetLimits & | mrSheetLimits |
Friends | |
class | ScMultiSelIter |
Definition at line 31 of file markmulti.hxx.
|
private |
Definition at line 35 of file markmulti.hxx.
ScMultiSel::ScMultiSel | ( | ScSheetLimits const & | ) |
|
default |
|
default |
ScMultiSel::~ScMultiSel | ( | ) |
Definition at line 33 of file markmulti.cxx.
void ScMultiSel::Clear | ( | ) |
Definition at line 52 of file markmulti.cxx.
References aMultiSelContainer, aRowSel, and ScMarkArray::Reset().
Referenced by ScMarkData::ResetMark(), Set(), and ShiftCols().
Definition at line 110 of file markmulti.cxx.
References aMultiSelContainer, aRowSel, and ScMarkArray::GetMark().
Referenced by ScMarkData::IsCellMarked().
ScMarkArray ScMultiSel::GetMarkArray | ( | SCCOL | nCol | ) | const |
Definition at line 322 of file markmulti.cxx.
References mrSheetLimits, ScMultiSelIter::Next(), and ScMarkArray::SetMarkArea().
Referenced by ScMarkData::GetMarkArray().
const ScMarkArray * ScMultiSel::GetMultiSelArray | ( | SCCOL | nCol | ) | const |
Definition at line 405 of file markmulti.cxx.
References aMultiSelContainer.
Referenced by ScMarkData::GetMarkedColSpans().
SCCOL ScMultiSel::GetMultiSelectionCount | ( | ) | const |
Definition at line 58 of file markmulti.cxx.
References aMultiSelContainer, i, and nCount.
Definition at line 159 of file markmulti.cxx.
References aMultiSelContainer, aRowSel, ScMarkArray::GetNextMarked(), HasMarks(), and PutInOrder().
Referenced by ScMarkData::GetNextMarked().
const ScMarkArray & ScMultiSel::GetRowSelArray | ( | ) | const |
Definition at line 400 of file markmulti.cxx.
References aRowSel.
Referenced by ScMarkData::GetMarkedColSpans().
bool ScMultiSel::HasAnyMarks | ( | ) | const |
Definition at line 332 of file markmulti.cxx.
References aMultiSelContainer, aRowSel, and ScMarkArray::HasMarks().
Referenced by ScMarkData::HasAnyMultiMarks().
Definition at line 142 of file markmulti.cxx.
References aMultiSelContainer.
Referenced by ScMarkData::FillRangeListWithMarks().
bool ScMultiSel::HasMarks | ( | SCCOL | nCol | ) | const |
Definition at line 67 of file markmulti.cxx.
References aMultiSelContainer, aRowSel, and ScMarkArray::HasMarks().
Referenced by ScMarkData::FillRangeListWithMarks(), ScFormatShell::GetCurrentNumberFormatType(), GetNextMarked(), ScMarkData::GetSelectionCover(), ScMarkData::HasMultiMarks(), IsAllMarked(), ScMarkData::MarkToSimple(), and ScColumn::MergeSelectionPattern().
Definition at line 74 of file markmulti.cxx.
References aMultiSelContainer, aRowSel, and ScMarkArray::HasOneMark().
Referenced by ScMarkData::MarkToSimple().
Definition at line 117 of file markmulti.cxx.
References aMultiSelContainer, aRowSel, ScMultiSelIter::GetRangeData(), HasMarks(), ScMarkArray::HasMarks(), ScMarkArray::IsAllMarked(), ScFlatBoolRowSegments::RangeData::mbValue, and ScFlatBoolRowSegments::RangeData::mnRow2.
Referenced by ScMarkData::IsAllMarked(), and ScMarkData::IsColumnMarked().
|
inline |
Definition at line 62 of file markmulti.hxx.
References ScMarkArray::HasMarks().
Referenced by ScMarkData::SetMultiMarkArea().
bool ScMultiSel::IsRowMarked | ( | SCROW | nRow | ) | const |
Definition at line 309 of file markmulti.cxx.
References aRowSel, and ScMarkArray::GetMark().
Referenced by ScMarkData::IsRowMarked().
Definition at line 314 of file markmulti.cxx.
References aRowSel, ScMarkArray::GetMark(), and ScMarkArray::GetMarkEnd().
Referenced by ScMarkData::IsAllMarked().
Definition at line 178 of file markmulti.cxx.
References aMultiSelContainer, ScSheetLimits::mnMaxCol, and mrSheetLimits.
Referenced by SetMarkArea().
ScMultiSel & ScMultiSel::operator= | ( | const ScMultiSel & | rMultiSel | ) |
Definition at line 37 of file markmulti.cxx.
References aMultiSelContainer, and aRowSel.
ScMultiSel & ScMultiSel::operator= | ( | ScMultiSel && | rMultiSel | ) |
Definition at line 44 of file markmulti.cxx.
References aMultiSelContainer, and aRowSel.
void ScMultiSel::Set | ( | ScRangeList const & | rList | ) |
optimised init-from-range-list.
Specifically this is optimised for cases where we have very large data columns with lots and lots of ranges.
Definition at line 247 of file markmulti.cxx.
References aMultiSelContainer, aRowSel, assert(), ScRange::aStart, Clear(), i, ScSheetLimits::mnMaxCol, mrSheetLimits, ScAddress::Row(), ScMarkArray::SetMarkArea(), and ScRangeList::size().
Referenced by ScMarkData::ScMarkData().
void ScMultiSel::SetMarkArea | ( | SCCOL | nStartCol, |
SCCOL | nEndCol, | ||
SCROW | nStartRow, | ||
SCROW | nEndRow, | ||
bool | bMark | ||
) |
Definition at line 187 of file markmulti.cxx.
References aMultiSelContainer, aRowSel, ScMarkArray::GetMark(), ScMarkArray::GetMarkEnd(), ScSheetLimits::GetMaxRowCount(), ScMarkArray::GetNextMarked(), ScMarkArray::HasMarks(), MarkAllCols(), ScSheetLimits::mnMaxCol, mrSheetLimits, and ScMarkArray::SetMarkArea().
Referenced by ScMarkData::SetMultiMarkArea().
Definition at line 342 of file markmulti.cxx.
References aMultiSelContainer, aRowSel, Clear(), i, ScSheetLimits::mnMaxCol, and mrSheetLimits.
Referenced by ScMarkData::ShiftCols().
Definition at line 393 of file markmulti.cxx.
References aMultiSelContainer, aRowSel, and ScMarkArray::Shift().
Referenced by ScMarkData::ShiftRows().
|
friend |
Definition at line 40 of file markmulti.hxx.
|
private |
Definition at line 36 of file markmulti.hxx.
Referenced by Clear(), GetMark(), GetMultiSelArray(), GetMultiSelectionCount(), GetNextMarked(), HasAnyMarks(), HasEqualRowsMarked(), HasMarks(), HasOneMark(), IsAllMarked(), MarkAllCols(), operator=(), ScMultiSelIter::ScMultiSelIter(), Set(), SetMarkArea(), ShiftCols(), and ShiftRows().
|
private |
Definition at line 37 of file markmulti.hxx.
Referenced by Clear(), GetMark(), GetNextMarked(), GetRowSelArray(), HasAnyMarks(), HasMarks(), HasOneMark(), IsAllMarked(), IsRowMarked(), IsRowRangeMarked(), operator=(), ScMultiSelIter::ScMultiSelIter(), Set(), SetMarkArea(), ShiftCols(), and ShiftRows().
|
private |
Definition at line 38 of file markmulti.hxx.
Referenced by GetMarkArray(), MarkAllCols(), ScMultiSelIter::ScMultiSelIter(), Set(), SetMarkArea(), and ShiftCols().