LibreOffice Module sc (master)  1
Public Member Functions | Private Types | 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
 
 ~ScMultiSel ()
 
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
 
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, long nColOffset)
 
void ShiftRows (SCROW nStartRow, long nRowOffset)
 
const ScMarkArrayGetRowSelArray () const
 
const ScMarkArrayGetMultiSelArray (SCCOL nCol) const
 

Private Types

typedef std::vector< ScMarkArrayMapType
 

Private Attributes

MapType aMultiSelContainer
 
ScMarkArray aRowSel
 
const ScSheetLimitsmrSheetLimits
 

Friends

class ScMultiSelIter
 

Detailed Description

Definition at line 31 of file markmulti.hxx.

Member Typedef Documentation

typedef std::vector<ScMarkArray> ScMultiSel::MapType
private

Definition at line 35 of file markmulti.hxx.

Constructor & Destructor Documentation

ScMultiSel::ScMultiSel ( ScSheetLimits const &  )
ScMultiSel::ScMultiSel ( const ScMultiSel rMultiSel)
default
ScMultiSel::ScMultiSel ( ScMultiSel &&  rMultiSel)
default
ScMultiSel::~ScMultiSel ( )

Definition at line 35 of file markmulti.cxx.

Member Function Documentation

void ScMultiSel::Clear ( )

Definition at line 54 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 112 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 407 of file markmulti.cxx.

References aMultiSelContainer.

Referenced by ScMarkData::GetMarkedColSpans().

SCCOL ScMultiSel::GetMultiSelectionCount ( ) const

Definition at line 60 of file markmulti.cxx.

References aMultiSelContainer, i, and nCount.

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

Definition at line 402 of file markmulti.cxx.

References aRowSel.

Referenced by ScMarkData::GetMarkedColSpans().

bool ScMultiSel::HasAnyMarks ( ) const

Definition at line 334 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 144 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 76 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 311 of file markmulti.cxx.

References aRowSel, and ScMarkArray::GetMark().

Referenced by ScMarkData::IsRowMarked().

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

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

References aMultiSelContainer, ScSheetLimits::mnMaxCol, and mrSheetLimits.

Referenced by SetMarkArea().

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

Definition at line 39 of file markmulti.cxx.

References aMultiSelContainer, and aRowSel.

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

Definition at line 46 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 249 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 
)
void ScMultiSel::ShiftCols ( SCCOL  nStartCol,
long  nColOffset 
)

Definition at line 344 of file markmulti.cxx.

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

Referenced by ScMarkData::ShiftCols().

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

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

Member Data Documentation

MapType ScMultiSel::aMultiSelContainer
private
ScMarkArray ScMultiSel::aRowSel
private
const ScSheetLimits& ScMultiSel::mrSheetLimits
private

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