12 #include <document.hxx>
15 #include <osl/diagnose.h>
18 mnEnd(static_cast<size_t>(nEndRow)),
23 init(rDoc, nStartRow, nEndRow);
27 mnEnd(static_cast<size_t>(nEndRow)),
30 auto & rCellTextAttrs = rDoc.
maTabs[rStartPos.
Tab()]->aCol[rStartPos.
Col()].maCellTextAttrs;
33 init(rDoc, rStartPos.
Row(), nEndRow);
95 size_t nStart =
static_cast<size_t>(nStartRow);
98 size_t nBlockStart = 0, nBlockEnd = 0;
102 if (nBlockStart <= nStart && nStart < nBlockEnd)
117 size_t nOffsetInBlock = nStart - nBlockStart;
125 nBlockStart = nBlockEnd;
152 "wrong block type - unsigned short block expected.");
189 return CellStoreType::logical_position(
maPos);
199 return maPos.first->type;
sc::CellTextAttrStoreType::iterator miBlockEnd
void setValue(sal_uInt16 nVal)
const mdds::mtv::element_t element_type_celltextattr
sc::celltextattr_block::iterator miDataCur
ScRefCellValue getCell() const
This is very similar to ScCellValue, except that it references the original value instead of copying ...
sc::celltextattr_block::iterator miDataEnd
sc::CellTextAttrStoreType::iterator miBlockCur
mdds::mtv::element_t getType() const
void init(const ScDocument &rDoc, SCROW nStartRow, SCROW nEndRow)
sal_uInt16 getValue() const
mdds::mtv::default_element_block< element_type_celltextattr, CellTextAttr > celltextattr_block
sc::CellTextAttrStoreType maCellTextAttrs
CAUTION! The following defines must be in the same namespace as the respective type.
ColumnIterator(const CellStoreType &rCells, SCROW nRow1, SCROW nRow2)
mdds::mtv::soa::multi_type_vector< CellFunc, CellStoreTrait > CellStoreType
bool ValidRow(SCROW nRow) const
CellStoreType::const_position_type maPosEnd
CellStoreType::const_position_type maPos
void getDataIterators(size_t nOffsetInBlock)
ScRefCellValue toRefCell(const sc::CellStoreType::const_iterator &itPos, size_t nOffset)
constexpr OUStringLiteral first
ScColumnTextWidthIterator(const ScColumnTextWidthIterator &)=delete
bool m_bDetectedRangeSegmentation false