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, sal_Int32 nColOffset)
 
void ShiftRows (SCROW nStartRow, sal_Int32 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 33 of file markmulti.cxx.

Member Function Documentation

void ScMultiSel::Clear ( )

Definition at line 52 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 110 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 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.

SCROW ScMultiSel::GetNextMarked ( SCCOL  nCol,
SCROW  nRow,
bool  bUp 
) const
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().

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

Definition at line 142 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 74 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 309 of file markmulti.cxx.

References aRowSel, and ScMarkArray::GetMark().

Referenced by ScMarkData::IsRowMarked().

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

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

Definition at line 342 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 393 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: