21#include <document.hxx>
22#include <viewfunc.hxx>
36 TestBlock( rDoc, nTab, nStartCol, nStartRow, nEndCol, nEndRow, bNoMatrixAtAll );
88 if (!rDoc.
IsBlockEditable( nTab, nStartCol, nStartRow, nEndCol, nEndRow, &bThisMatrix, bNoMatrixAtAll))
102 for (
const auto& rTab : rMark)
104 if (rTab >= nTabCount)
107 TestBlock( rDoc, rTab, nStartCol, nStartRow, nEndCol, nEndRow,
false );
119 for (
SCTAB nTab=nStartTab; nTab<=nEndTab; nTab++)
120 TestBlock( rDoc, nTab, nStartCol, nStartRow, nEndCol, nEndRow,
false );
143 for (
const auto& rTab : rMark)
157 return STR_MATRIXFRAGMENTERR;
159 return STR_PROTECTIONERR;
bool IsEditActionAllowed(sc::ColRowEditAction eAction, SCTAB nTab, SCCOLROW nStart, SCCOLROW nEnd) const
bool IsSelectionEditable(const ScMarkData &rMark, bool *pOnlyNotBecauseOfMatrix=nullptr) const
bool IsBlockEditable(SCTAB nTab, SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, bool *pOnlyNotBecauseOfMatrix=nullptr, bool bNoMatrixAtAll=false) const
SC_DLLPUBLIC SCTAB GetTableCount() const
void TestSelection(const ScDocument &rDoc, const ScMarkData &rMark)
TranslateId GetMessageId() const
void TestBlock(const ScDocument &rDoc, SCTAB nTab, SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, bool bNoMatrixAtAll=false)
void TestRange(const ScDocument &rDoc, const ScRange &rRange)
void TestBlockForAction(const ScDocument &rDoc, sc::ColRowEditAction eAction, SCCOLROW nStart, SCCOLROW nEnd, const ScMarkData &rMark)
void TestSelectedBlock(const ScDocument &rDoc, SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, const ScMarkData &rMark)
todo: It should be possible to have MarkArrays for each table, in order to enable "search all" across...
bool SelectionEditable(bool *pOnlyNotBecauseOfMatrix=nullptr)
sal_Int32 SCCOLROW
a type capable of holding either SCCOL or SCROW