LibreOffice Module sc (master) 1
Public Member Functions | Private Attributes | Friends | List of all members
ScMultiSel Class Reference

#include <markmulti.hxx>

Collaboration diagram for ScMultiSel:
[legend]

Public Member Functions

 ScMultiSel (ScSheetLimits const &)
 
 ScMultiSel (const ScMultiSel &rMultiSel)=default
 
 ScMultiSel (ScMultiSel &&rMultiSel)=default
 
ScMultiSeloperator= (const ScMultiSel &rMultiSel)
 
ScMultiSeloperator= (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
 
SCCOL GetStartOfEqualColumns (SCCOL nLastCol, SCCOL nMinCol=0) 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 ScMarkArrayGetRowSelArray () const
 
const ScMarkArrayGetMultiSelArray (SCCOL nCol) const
 

Private Attributes

std::vector< ScMarkArrayaMultiSelContainer
 
ScMarkArray aRowSel
 
const ScSheetLimitsmrSheetLimits
 

Friends

class ScMultiSelIter
 

Detailed Description

Definition at line 30 of file markmulti.hxx.

Constructor & Destructor Documentation

◆ ScMultiSel() [1/3]

ScMultiSel::ScMultiSel ( ScSheetLimits const &  rSheetLimits)

Definition at line 30 of file markmulti.cxx.

◆ ScMultiSel() [2/3]

ScMultiSel::ScMultiSel ( const ScMultiSel rMultiSel)
default

◆ ScMultiSel() [3/3]

ScMultiSel::ScMultiSel ( ScMultiSel &&  rMultiSel)
default

References Set.

Member Function Documentation

◆ Clear()

void ScMultiSel::Clear ( )

Definition at line 50 of file markmulti.cxx.

References aMultiSelContainer, aRowSel, and ScMarkArray::Reset().

Referenced by ScMarkData::ResetMark(), Set(), and ShiftCols().

◆ GetMark()

bool ScMultiSel::GetMark ( SCCOL  nCol,
SCROW  nRow 
) const

Definition at line 108 of file markmulti.cxx.

References aMultiSelContainer, aRowSel, and ScMarkArray::GetMark().

Referenced by ScMarkData::IsCellMarked().

◆ GetMarkArray()

ScMarkArray ScMultiSel::GetMarkArray ( SCCOL  nCol) const

◆ GetMultiSelArray()

const ScMarkArray * ScMultiSel::GetMultiSelArray ( SCCOL  nCol) const

Definition at line 412 of file markmulti.cxx.

References aMultiSelContainer.

Referenced by ScMarkData::GetMarkedColSpans().

◆ GetMultiSelectionCount()

SCCOL ScMultiSel::GetMultiSelectionCount ( ) const

Definition at line 56 of file markmulti.cxx.

References aMultiSelContainer, i, and nCount.

◆ GetNextMarked()

SCROW ScMultiSel::GetNextMarked ( SCCOL  nCol,
SCROW  nRow,
bool  bUp 
) const

◆ GetRowSelArray()

const ScMarkArray & ScMultiSel::GetRowSelArray ( ) const
inline

Definition at line 72 of file markmulti.hxx.

Referenced by ScMarkData::GetMarkedColSpans().

◆ GetStartOfEqualColumns()

SCCOL ScMultiSel::GetStartOfEqualColumns ( SCCOL  nLastCol,
SCCOL  nMinCol = 0 
) const

Definition at line 157 of file markmulti.cxx.

References aMultiSelContainer, and aRowSel.

Referenced by ScMarkData::GetStartOfEqualColumns().

◆ HasAnyMarks()

bool ScMultiSel::HasAnyMarks ( ) const

Definition at line 344 of file markmulti.cxx.

References aMultiSelContainer, aRowSel, and ScMarkArray::HasMarks().

Referenced by ScMarkData::HasAnyMultiMarks().

◆ HasEqualRowsMarked()

bool ScMultiSel::HasEqualRowsMarked ( SCCOL  nCol1,
SCCOL  nCol2 
) const

Definition at line 140 of file markmulti.cxx.

References aMultiSelContainer.

Referenced by ScMarkData::FillRangeListWithMarks().

◆ HasMarks()

bool ScMultiSel::HasMarks ( SCCOL  nCol) const

◆ HasOneMark()

bool ScMultiSel::HasOneMark ( SCCOL  nCol,
SCROW rStartRow,
SCROW rEndRow 
) const

Definition at line 72 of file markmulti.cxx.

References aMultiSelContainer, aRowSel, and ScMarkArray::HasOneMark().

Referenced by ScMarkData::MarkToSimple().

◆ IsAllMarked()

bool ScMultiSel::IsAllMarked ( SCCOL  nCol,
SCROW  nStartRow,
SCROW  nEndRow 
) const

◆ IsEmpty()

bool ScMultiSel::IsEmpty ( ) const
inline

Definition at line 62 of file markmulti.hxx.

References ScMarkArray::HasMarks().

Referenced by ScMarkData::SetMultiMarkArea().

◆ IsRowMarked()

bool ScMultiSel::IsRowMarked ( SCROW  nRow) const

Definition at line 321 of file markmulti.cxx.

References aRowSel, and ScMarkArray::GetMark().

Referenced by ScMarkData::IsRowMarked().

◆ IsRowRangeMarked()

bool ScMultiSel::IsRowRangeMarked ( SCROW  nStartRow,
SCROW  nEndRow 
) const

Definition at line 326 of file markmulti.cxx.

References aRowSel, ScMarkArray::GetMark(), and ScMarkArray::GetMarkEnd().

Referenced by ScMarkData::IsAllMarked().

◆ MarkAllCols()

void ScMultiSel::MarkAllCols ( SCROW  nStartRow,
SCROW  nEndRow 
)

Definition at line 195 of file markmulti.cxx.

References aMultiSelContainer, ScSheetLimits::mnMaxCol, and mrSheetLimits.

Referenced by SetMarkArea().

◆ operator=() [1/2]

ScMultiSel & ScMultiSel::operator= ( const ScMultiSel rMultiSel)

Definition at line 35 of file markmulti.cxx.

References aMultiSelContainer, and aRowSel.

◆ operator=() [2/2]

ScMultiSel & ScMultiSel::operator= ( ScMultiSel &&  rMultiSel)

Definition at line 42 of file markmulti.cxx.

References aMultiSelContainer, and aRowSel.

◆ Set()

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 264 of file markmulti.cxx.

References aMultiSelContainer, aRowSel, Clear(), ScSheetLimits::mnMaxCol, mrSheetLimits, ScMarkArray::SetMarkArea(), and ScRangeList::size().

Referenced by ScMarkData::ScMarkData().

◆ SetMarkArea()

void ScMultiSel::SetMarkArea ( SCCOL  nStartCol,
SCCOL  nEndCol,
SCROW  nStartRow,
SCROW  nEndRow,
bool  bMark 
)

◆ ShiftCols()

void ScMultiSel::ShiftCols ( SCCOL  nStartCol,
sal_Int32  nColOffset 
)

◆ ShiftRows()

void ScMultiSel::ShiftRows ( SCROW  nStartRow,
sal_Int32  nRowOffset 
)

Definition at line 405 of file markmulti.cxx.

References aMultiSelContainer, aRowSel, and ScMarkArray::Shift().

Referenced by ScMarkData::ShiftRows().

Friends And Related Function Documentation

◆ ScMultiSelIter

friend class ScMultiSelIter
friend

Definition at line 38 of file markmulti.hxx.

Member Data Documentation

◆ aMultiSelContainer

std::vector<ScMarkArray> ScMultiSel::aMultiSelContainer
private

◆ aRowSel

ScMarkArray ScMultiSel::aRowSel
private

◆ mrSheetLimits

const ScSheetLimits& ScMultiSel::mrSheetLimits
private

The documentation for this class was generated from the following files: