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::ScMultiSel ( ScSheetLimits const &  )
ScMultiSel::ScMultiSel ( const ScMultiSel rMultiSel)
default
ScMultiSel::ScMultiSel ( ScMultiSel &&  rMultiSel)
default

Member Function Documentation

void ScMultiSel::Clear ( )

Definition at line 48 of file markmulti.cxx.

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

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

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

Definition at line 106 of file markmulti.cxx.

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

Referenced by ScMarkData::IsCellMarked().

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

Definition at line 410 of file markmulti.cxx.

References aMultiSelContainer.

Referenced by ScMarkData::GetMarkedColSpans().

SCCOL ScMultiSel::GetMultiSelectionCount ( ) const

Definition at line 54 of file markmulti.cxx.

References aMultiSelContainer, i, and nCount.

SCROW ScMultiSel::GetNextMarked ( SCCOL  nCol,
SCROW  nRow,
bool  bUp 
) const
const ScMarkArray& ScMultiSel::GetRowSelArray ( ) const
inline

Definition at line 72 of file markmulti.hxx.

Referenced by ScMarkData::GetMarkedColSpans().

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

Definition at line 155 of file markmulti.cxx.

References aMultiSelContainer, and aRowSel.

Referenced by ScMarkData::GetStartOfEqualColumns().

bool ScMultiSel::HasAnyMarks ( ) const

Definition at line 342 of file markmulti.cxx.

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

Referenced by ScMarkData::HasAnyMultiMarks().

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

Definition at line 138 of file markmulti.cxx.

References aMultiSelContainer.

Referenced by ScMarkData::FillRangeListWithMarks().

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

Definition at line 70 of file markmulti.cxx.

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

Referenced by ScMarkData::MarkToSimple().

bool ScMultiSel::IsAllMarked ( SCCOL  nCol,
SCROW  nStartRow,
SCROW  nEndRow 
) const
bool ScMultiSel::IsEmpty ( ) const
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 319 of file markmulti.cxx.

References aRowSel, and ScMarkArray::GetMark().

Referenced by ScMarkData::IsRowMarked().

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

Definition at line 324 of file markmulti.cxx.

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

Referenced by ScMarkData::IsAllMarked().

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

Definition at line 193 of file markmulti.cxx.

References aMultiSelContainer, ScSheetLimits::mnMaxCol, and mrSheetLimits.

Referenced by SetMarkArea().

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

Definition at line 33 of file markmulti.cxx.

References aMultiSelContainer, and aRowSel.

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

Definition at line 40 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 262 of file markmulti.cxx.

References aMultiSelContainer, aRowSel, ScRange::aStart, Clear(), 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 
)
void ScMultiSel::ShiftCols ( SCCOL  nStartCol,
sal_Int32  nColOffset 
)

Definition at line 352 of file markmulti.cxx.

References aMultiSelContainer, aRowSel, Clear(), i, ScSheetLimits::mnMaxCol, and mrSheetLimits.

Referenced by ScMarkData::ShiftCols().

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

Definition at line 403 of file markmulti.cxx.

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

Referenced by ScMarkData::ShiftRows().

Friends And Related Function Documentation

friend class ScMultiSelIter
friend

Definition at line 38 of file markmulti.hxx.

Member Data Documentation

std::vector<ScMarkArray> ScMultiSel::aMultiSelContainer
private
ScMarkArray ScMultiSel::aRowSel
private
const ScSheetLimits& ScMultiSel::mrSheetLimits
private

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