45 #include <globstr.hrc>
56 #define ShellClass_ScCellShell
57 #define ShellClass_CellMovement
58 #include <scslots.hxx>
66 SfxVisibilityFlags::Standard | SfxVisibilityFlags::Server,
67 ToolbarId::Objectbar_Format);
69 GetStaticInterface()->RegisterPopupMenu(
"cell");
75 bPastePossible(false),
84 if (
pImpl->m_xClipEvtLstnr.is() )
90 pImpl->m_xClipEvtLstnr->ClearCallbackLink();
92 pImpl->m_xClipEvtLstnr.clear();
95 pImpl->m_pLinkedDlg.disposeAndClear();
96 delete pImpl->m_pRequest;
105 bool bOnlyNotBecauseOfMatrix;
121 bool bDisable =
false;
122 bool bNeedEdit =
true;
125 case FID_FILL_TO_BOTTOM:
127 bDisable = !bSimpleArea || (nRow1 == 0 && nRow2 == 0);
130 if ( !bDisable && bEditable )
133 nCol1, nRow1, nCol2, nRow1, rMark );
137 case FID_FILL_TO_TOP:
139 bDisable = (!bSimpleArea) || (nRow1 == rDoc.
MaxRow() && nRow2 == rDoc.
MaxRow());
142 if ( !bDisable && bEditable )
145 nCol1, nRow2, nCol2, nRow2, rMark );
149 case FID_FILL_TO_RIGHT:
151 bDisable = !bSimpleArea || (nCol1 == 0 && nCol2 == 0);
154 if ( !bDisable && bEditable )
157 nCol1, nRow1, nCol1, nRow2, rMark );
161 case FID_FILL_TO_LEFT:
163 bDisable = (!bSimpleArea) || (nCol1 == rDoc.
MaxCol() && nCol2 == rDoc.
MaxCol());
166 if ( !bDisable && bEditable )
169 nCol2, nRow1, nCol2, nRow2, rMark );
174 case SID_RANDOM_NUMBER_GENERATOR_DIALOG:
177 case SID_SAMPLING_DIALOG:
178 case SID_DESCRIPTIVE_STATISTICS_DIALOG:
179 case SID_ANALYSIS_OF_VARIANCE_DIALOG:
180 case SID_CORRELATION_DIALOG:
181 case SID_COVARIANCE_DIALOG:
183 bDisable = !bSimpleArea;
187 case FID_FILL_SERIES:
188 case SID_OPENDLG_TABOP:
192 bDisable = (!bSimpleArea) || (nCol1 == nCol2 && nRow1 == nRow2);
197 if ( !bDisable && bEditable && nWhich == FID_FILL_SERIES )
200 nCol1, nRow1, nCol2, nRow1, rMark )
202 nCol1, nRow2, nCol2, nRow2, rMark )
204 nCol1, nRow1, nCol1, nRow2, rMark )
206 nCol2, nRow1, nCol2, nRow2, rMark );
209 case FID_FILL_SINGLE_EDIT:
216 bDisable = (!bSimpleArea);
220 case SID_PASTE_SPECIAL:
221 case SID_PASTE_UNFORMATTED:
222 case SID_PASTE_ONLY_VALUE:
223 case SID_PASTE_ONLY_TEXT:
224 case SID_PASTE_ONLY_FORMULA:
225 case SID_PASTE_TEXTIMPORT_DIALOG:
230 case FID_INS_ROWS_BEFORE:
231 case FID_INS_ROWS_AFTER:
234 if (nWhich == FID_INS_ROWS_AFTER)
238 if (!bEditable && nCol1 == 0 && nCol2 == rDoc.
MaxCol())
245 case FID_INS_CELLSDOWN:
250 case FID_INS_COLUMNS_BEFORE:
251 case FID_INS_COLUMNS_AFTER:
254 if (nWhich == FID_INS_COLUMNS_AFTER)
258 if (!bEditable && nRow1 == 0 && nRow2 == rDoc.
MaxRow())
265 case FID_INS_CELLSRIGHT:
274 if ( bEditable || !bOnlyNotBecauseOfMatrix )
280 bDisable = (!bSimpleArea)
281 || ((nCol2 - nCol1) < 2) || ((nRow2 - nRow1) < 2);
284 case SID_CELL_FORMAT_RESET :
285 case FID_CELL_FORMAT :
286 case SID_ENABLE_HYPHENATION :
288 if ( !bEditable && bOnlyNotBecauseOfMatrix )
300 case SID_TRANSLITERATE_HALFWIDTH:
301 case SID_TRANSLITERATE_FULLWIDTH:
302 case SID_TRANSLITERATE_HIRAGANA:
303 case SID_TRANSLITERATE_KATAKANA:
306 case SID_CONVERT_FORMULA_TO_VALUE:
313 if (!bDisable && bNeedEdit && !bEditable)
318 else if (nWhich == SID_ENABLE_HYPHENATION)
341 bool bDisable =
false;
342 bool bNeedEdit =
true;
357 case SID_OPENDLG_FUNCTION:
375 case SID_INSERT_POSTIT:
392 case SID_EDIT_POSTIT:
395 bDisable = rDoc.
GetNote(aPos) ==
nullptr;
399 if (!bDisable && bNeedEdit)
401 aCursor.
Col(),aCursor.
Row() ))
412 if ( rDataHelper.
HasFormat( nFormatId ) )
418 if ( nFormatId == SotClipboardFormatId::EMBED_SOURCE )
421 if ( const_cast<TransferableDataHelper&>(rDataHelper).GetTransferableObjectDescriptor(
422 SotClipboardFormatId::OBJECTDESCRIPTOR, aDesc ) )
425 else if ( nFormatId == SotClipboardFormatId::EMBED_SOURCE_OLE
426 || nFormatId == SotClipboardFormatId::EMBEDDED_OBJ_OLE )
432 if ( !aStrVal.isEmpty() )
450 lcl_TestFormat( rFormats, aDataHelper, SotClipboardFormatId::DRAWING );
451 lcl_TestFormat( rFormats, aDataHelper, SotClipboardFormatId::SVXB );
452 lcl_TestFormat( rFormats, aDataHelper, SotClipboardFormatId::GDIMETAFILE );
453 lcl_TestFormat( rFormats, aDataHelper, SotClipboardFormatId::PNG );
454 lcl_TestFormat( rFormats, aDataHelper, SotClipboardFormatId::BITMAP );
455 lcl_TestFormat( rFormats, aDataHelper, SotClipboardFormatId::EMBED_SOURCE );
459 lcl_TestFormat( rFormats, aDataHelper, SotClipboardFormatId::LINK );
460 lcl_TestFormat( rFormats, aDataHelper, SotClipboardFormatId::STRING );
461 lcl_TestFormat( rFormats, aDataHelper, SotClipboardFormatId::STRING_TSVC );
462 lcl_TestFormat( rFormats, aDataHelper, SotClipboardFormatId::DIF );
463 lcl_TestFormat( rFormats, aDataHelper, SotClipboardFormatId::RTF );
464 lcl_TestFormat( rFormats, aDataHelper, SotClipboardFormatId::RICHTEXT );
465 lcl_TestFormat( rFormats, aDataHelper, SotClipboardFormatId::HTML );
466 lcl_TestFormat( rFormats, aDataHelper, SotClipboardFormatId::HTML_SIMPLE );
467 lcl_TestFormat( rFormats, aDataHelper, SotClipboardFormatId::BIFF_8 );
468 lcl_TestFormat( rFormats, aDataHelper, SotClipboardFormatId::BIFF_5 );
471 if ( !
lcl_TestFormat( rFormats, aDataHelper, SotClipboardFormatId::EMBED_SOURCE_OLE ) )
472 lcl_TestFormat( rFormats, aDataHelper, SotClipboardFormatId::EMBEDDED_OBJ_OLE );
479 bool bPossible =
false;
480 css::uno::Reference< css::datatransfer::XTransferable2 > xTransferable(rData.
GetXTransferable(), css::uno::UNO_QUERY);
485 if ( rData.
HasFormat( SotClipboardFormatId::PNG ) ||
486 rData.
HasFormat( SotClipboardFormatId::BITMAP ) ||
487 rData.
HasFormat( SotClipboardFormatId::GDIMETAFILE ) ||
488 rData.
HasFormat( SotClipboardFormatId::SVXB ) ||
489 rData.
HasFormat( SotClipboardFormatId::PRIVATE ) ||
490 rData.
HasFormat( SotClipboardFormatId::RTF ) ||
491 rData.
HasFormat( SotClipboardFormatId::RICHTEXT ) ||
492 rData.
HasFormat( SotClipboardFormatId::EMBED_SOURCE ) ||
493 rData.
HasFormat( SotClipboardFormatId::LINK_SOURCE ) ||
494 rData.
HasFormat( SotClipboardFormatId::EMBED_SOURCE_OLE ) ||
495 rData.
HasFormat( SotClipboardFormatId::LINK_SOURCE_OLE ) ||
496 rData.
HasFormat( SotClipboardFormatId::EMBEDDED_OBJ_OLE ) ||
497 rData.
HasFormat( SotClipboardFormatId::STRING ) ||
498 rData.
HasFormat( SotClipboardFormatId::STRING_TSVC ) ||
499 rData.
HasFormat( SotClipboardFormatId::SYLK ) ||
500 rData.
HasFormat( SotClipboardFormatId::LINK ) ||
501 rData.
HasFormat( SotClipboardFormatId::HTML ) ||
502 rData.
HasFormat( SotClipboardFormatId::HTML_SIMPLE ) ||
503 rData.
HasFormat( SotClipboardFormatId::DIF ) )
515 return aDataHelper.
HasFormat( nFormatId );
522 SfxBindings& rBindings = GetViewData().GetBindings();
525 rBindings.
Invalidate( SID_PASTE_UNFORMATTED );
528 rBindings.
Invalidate( SID_PASTE_ONLY_FORMULA );
529 rBindings.
Invalidate( SID_PASTE_TEXTIMPORT_DIALOG );
530 rBindings.
Invalidate( SID_CLIPBOARD_FORMAT_ITEMS );
586 if ( !
pImpl->m_xClipEvtLstnr.is() )
591 pImpl->m_xClipEvtLstnr->AddListener( pWin );
626 else if ( rSet.
GetItemState( SID_CLIPBOARD_FORMAT_ITEMS ) != SfxItemState::UNKNOWN )
630 rSet.
Put( aFormats );
642 if ( !
GetViewData().GetView()->HasBookmarkAtCursor( &aHLinkItem ) )
647 rSet.
Put(aHLinkItem);
670 case SID_DETECTIVE_REFRESH:
675 case SID_RANGE_ADDRESS:
686 case SID_RANGE_NOTETEXT:
691 aNoteText = pNote->GetText();
704 case SID_RANGE_TABLE:
708 case SID_RANGE_FORMULA:
711 rDoc.
GetFormula( nPosX, nPosY, nTab, aString );
712 if( aString.isEmpty() )
720 case SID_RANGE_TEXTVALUE:
722 OUString aString = rDoc.
GetString(nPosX, nPosY, nTab);
727 case SID_STATUS_SELMODE:
748 case SID_STATUS_DOCPOS:
752 aStr = aStr.replaceFirst(
"%1", OUString::number( nTab + 1 ) );
753 aStr = aStr.replaceFirst(
"%2", OUString::number( nTabCount ) );
758 case SID_ROWCOL_SELCOUNT:
768 if( nCol2 != nCol1 || nRow1 != nRow2 )
770 const auto nRows = nRow2 - nRow1 + 1;
771 const auto nCols = nCol2 - nCol1 + 1;
773 OUString aRowArg =
ScResId(STR_SELCOUNT_ROWARG, nRows).replaceAll(
"$1", rLocaleData.
getNum(nRows, 0));
774 OUString aColArg =
ScResId(STR_SELCOUNT_COLARG, nCols).replaceAll(
"$1", rLocaleData.
getNum(nCols, 0));
776 aStr = aStr.replaceAll(
"$1", aRowArg);
777 aStr = aStr.replaceAll(
"$2", aColArg);
787 aStr = aStr.replaceAll(
"$1", OUString::number( nSelected ) );
788 aStr = aStr.replaceAll(
"$2", OUString::number( nTotal ) );
815 if ( pTabViewShell->
GetFunction( aFuncStr, nErrCode ) )
821 case SID_DATA_SELECT:
829 case FID_CURRENTVALIDATION:
837 if ( pTabViewShell->
GetFunction( aFuncStr, FormulaError::NONE ) )
852 case FID_MERGE_TOGGLE:
859 if( !bCanMerge && !bCanSplit )
887 if ( nTabSelCount < 2 )
891 case SID_INSERT_CURRENT_DATE:
892 case SID_INSERT_CURRENT_TIME:
900 case SID_SELECT_SCENARIO:
902 std::vector<OUString> aList;
909 SCTAB nScTab = nTab + 1;
915 aList.push_back(aStr);
917 aList.push_back(aStr);
928 OSL_ENSURE( aList.empty(),
"List not empty!" );
929 aList.push_back(aComment);
940 case FID_COL_OPT_WIDTH:
941 case FID_ROW_OPT_HEIGHT:
942 case FID_DELETE_CELL:
947 case SID_OUTLINE_MAKE:
960 case SID_OUTLINE_SHOW:
970 case SID_OUTLINE_HIDE:
980 case SID_OUTLINE_REMOVE:
991 if ( !bCol && !bRow )
1000 rSet.
Put( aWidthItem );
1008 case FID_ROW_HEIGHT:
1011 rSet.
Put( aHeightItem );
1018 case SID_DETECTIVE_FILLMODE:
1022 case FID_INPUTLINE_STATUS:
1023 OSL_FAIL(
"Old update method. Use ScTabViewShell::UpdateInputHandler()." );
1031 case FID_NOTE_VISIBLE:
1034 if ( pNote && rDoc.
IsBlockEditable( nTab, nPosX,nPosY, nPosX,nPosY ) )
1044 bool bEnable =
false;
1045 bool bSearchForHidden = nWhich == FID_SHOW_NOTE;
1050 if ( pNote && rDoc.
IsBlockEditable( nTab, nPosX,nPosY, nPosX,nPosY ) )
1060 std::vector<sc::NoteEntry> aNotes;
1062 for(
const auto& rNote : aNotes)
1067 if (rNote.mpNote->IsCaptionShown() != bSearchForHidden)
1081 case FID_SHOW_ALL_NOTES:
1082 case FID_HIDE_ALL_NOTES:
1083 case FID_DELETE_ALL_NOTES:
1085 bool bHasNotes =
false;
1101 case SID_TOGGLE_NOTES:
1103 bool bHasNotes =
false;
1120 bool bAllNotesInShown = (eState !=
ALLHIDDEN && eState !=
MIXED);
1126 case SID_DELETE_NOTE:
1128 bool bEnable =
false;
1142 rDoc.
GetNote(nPosX, nPosY, nTab);
1149 case SID_OPENDLG_CONSOLIDATE:
1157 case SID_CHINESE_CONVERSION:
1158 case SID_HANGUL_HANJA_CONVERSION:
1175 case FID_DEFINE_NAME:
1176 case FID_INSERT_NAME:
1178 case SID_DEFINE_COLROWNAMERANGES:
1187 case FID_DEFINE_CURRENT_NAME:
1189 ScAddress aCurrentAddress( nPosX, nPosY, nTab );
1199 case SID_SPELL_DIALOG:
1209 if (xController && xController->getDialog()->get_visible())
1222 case SID_OPENDLG_CURRENTCONDFRMT:
1223 case SID_OPENDLG_CURRENTCONDFRMT_MANAGER:
1231 rSet.
DisableItem( SID_OPENDLG_CURRENTCONDFRMT_MANAGER );
ScMarkData & GetMarkData()
bool HasClipboardFormat(SotClipboardFormatId nFormatId)
std::shared_ptr< SfxDialogController > & GetController()
SfxViewFrame * GetViewFrame() const
#define LINK(Instance, Class, Member)
bool IsBlockEditable(SCTAB nTab, SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, bool *pOnlyNotBecauseOfMatrix=nullptr, bool bNoMatrixAtAll=false) const
static ScDrawTransferObj * GetOwnClipboard(const css::uno::Reference< css::datatransfer::XTransferable2 > &)
static void HideDisabledSlot(SfxItemSet &rSet, SfxBindings &rBindings, sal_uInt16 nSlotId)
ScDocShell * GetDocShell() const
SC_DLLPUBLIC bool IsTabProtected(SCTAB nTab) const
SC_DLLPUBLIC void GetInputString(SCCOL nCol, SCROW nRow, SCTAB nTab, OUString &rString)
todo: It should be possible to have MarkArrays for each table, in order to enable "search all" across...
SfxChildWindow * GetChildWindow(sal_uInt16)
bool isContentExtractionLocked() const
constexpr sal_uInt16 KEY_MOD1
#define SFX_IMPL_INTERFACE(Class, SuperClass)
bool IsInInterpreter() const
SC_DLLPUBLIC const ScFormulaCell * GetFormulaCell(const ScAddress &rPos) const
bool IsAddressInRangeName(RangeNameScope eScope, const ScAddress &rAddress)
SC_DLLPUBLIC bool HasTabNotes(SCTAB nTab) const
static const AllSettings & GetSettings()
void FillRangeListWithMarks(ScRangeList *pList, bool bClear, SCTAB nForTab=-1) const
Create a range list of marks.
const ContentProperties & rData
sal_uInt16 GetLockedModifiers() const
ScDocument & GetDocument() const
static css::uno::Reference< css::datatransfer::XTransferable2 > GetClipData(vcl::Window *pWin)
static bool HasThesaurusLanguage(LanguageType nLang)
void Invalidate(sal_uInt16 nId)
virtual ~ScCellShell() override
bool HasFormat(SotClipboardFormatId nFormat) const
const MarkedTabsType & GetSelectedTabs() const
SC_DLLPUBLIC bool HasAttrib(SCCOL nCol1, SCROW nRow1, SCTAB nTab1, SCCOL nCol2, SCROW nRow2, SCTAB nTab2, HasAttrFlags nMask) const
void GetNotesInRange(const ScRangeList &rRange, std::vector< sc::NoteEntry > &rNotes) const
SC_DLLPUBLIC void GetFormula(SCCOL nCol, SCROW nRow, SCTAB nTab, OUString &rFormula) const
SC_DLLPUBLIC ScBreakType HasRowBreak(SCROW nRow, SCTAB nTab) const
SC_DLLPUBLIC sal_uInt16 GetRowHeight(SCROW nRow, SCTAB nTab, bool bHiddenAsZero=true) const
void GetMarkArea(ScRange &rRange) const
SC_DLLPUBLIC ScPostIt * GetNote(const ScAddress &rPos)
Notes.
CommentCaptionState GetAllNoteCaptionsState(const ScRangeList &rRanges)
Reference< XController > xController
bool SelectionEditable(bool *pOnlyNotBecauseOfMatrix=nullptr)
ScClipParam & GetClipParam()
SC_DLLPUBLIC SCROW MaxRow() const
size_t SCSIZE
size_t typedef to be able to find places where code was changed from USHORT to size_t and is used to ...
SC_DLLPUBLIC SCTAB GetTableCount() const
Additional class containing cell annotation data.
bool IsMultiMarked() const
SCTAB GetSelectCount() const
SC_DLLPUBLIC OUString GetString(SCCOL nCol, SCROW nRow, SCTAB nTab, const ScInterpreterContext *pContext=nullptr) const
static TransferableDataHelper CreateFromSystemClipboard(vcl::Window *pWindow)
void push_back(const ScRange &rRange)
const LocaleDataWrapper & GetUILocaleDataWrapper() const
bool GetFunction(OUString &rFuncStr, FormulaError nErrCode)
ScDocument * GetDocument() const
ScChangeTrack * GetChangeTrack() const
SC_DLLPUBLIC const SfxPoolItem * GetAttr(SCCOL nCol, SCROW nRow, SCTAB nTab, sal_uInt16 nWhich) const
bool HasValidationData(SCCOL nCol, SCROW nRow, SCTAB nTab) const
ScCellShell(ScViewData &rData, const VclPtr< vcl::Window > &pFrameWin)
void GetPossibleClipboardFormats(SvxClipboardFormatItem &rFormats)
ScTabViewShell * GetViewShell() const
SC_DLLPUBLIC SCCOL MaxCol() const
void GetState(SfxItemSet &)
IMPL_LINK(ScCellShell, ClipboardChanged, TransferableDataHelper *, pDataHelper, void)
SfxItemState GetItemState(sal_uInt16 nWhich, bool bSrchInParent=true, const SfxPoolItem **ppItem=nullptr) const
static bool lcl_TestFormat(SvxClipboardFormatItem &rFormats, const TransferableDataHelper &rDataHelper, SotClipboardFormatId nFormatId)
static bool lcl_IsCellPastePossible(const TransferableDataHelper &rData)
SfxBindings & GetBindings()
ScMarkType
States GetSimpleArea() returns for the underlying selection marks, so the caller can react if the res...
css::uno::Reference< css::datatransfer::XTransferable > GetXTransferable() const
SC_DLLPUBLIC OUString Format(const ScDocument &rDocument, ScRefFlags nFlags=ScRefFlags::ZERO, const ScAddress::Details &rDetails=ScAddress::detailsOOOa1, bool bFullAddressNotation=false) const
Returns string with formatted cell range from aStart to aEnd, according to provided address conventio...
bool OutlinePossible(bool bHide)
OUString ScResId(const char *pId)
ScMarkType GetSimpleArea(SCCOL &rStartCol, SCROW &rStartRow, SCTAB &rStartTab, SCCOL &rEndCol, SCROW &rEndRow, SCTAB &rEndTab) const
ScGridWindow * GetActiveWin()
std::unique_ptr< CellShell_Impl > pImpl
void SetName(const OUString &rName)
bool HasPageFieldDataAtCursor() const
bool IsMultiMarked() const
bool HasSelectedBlockMatrixFragment(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, const ScMarkData &rMark) const
#define SFX_OBJECTBAR_OBJECT
bool IsEditActionAllowed(sc::ColRowEditAction eAction, SCTAB nTab, SCCOLROW nStart, SCCOLROW nEnd) const
bool IsAuditShell() const
SC_DLLPUBLIC void GetScenarioData(SCTAB nTab, OUString &rComment, Color &rColor, ScScenarioFlags &rFlags) const
bool CheckDestRanges(const ScDocument &rDoc, SCCOL nSrcCols, SCROW nSrcRows, const ScMarkData &rMark, const ScRangeList &rDest)
void GetClipState(SfxItemSet &rSet)
void GetFilterSelCount(SCCOL nCol, SCROW nRow, SCTAB nTab, SCSIZE &nSelected, SCSIZE &nTotal)
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
static const OUString & GetContextName(const Context eContext)
ScRange getWholeRange() const
Return a single range that encompasses all individual ranges.
bool HasChildWindow(sal_uInt16)
bool HasFormulaCell(const ScRange &rRange) const
Check if there is at least one formula cell in specified range.
void DisableItem(sal_uInt16 nWhich)
SC_DLLPUBLIC bool IsScenario(SCTAB nTab) const
bool HasSelectionData(SCCOL nCol, SCROW nRow, SCTAB nTab) const
Returns true, if there is any data to create a selection list for rPos.
SC_DLLPUBLIC ScBreakType HasColBreak(SCCOL nCol, SCTAB nTab) const
bool ContainsNotesInRange(const ScRangeList &rRange) const
void GetBlockState(SfxItemSet &rSet)
static SC_DLLPUBLIC ScTransferObj * GetOwnClipboard(const css::uno::Reference< css::datatransfer::XTransferable2 > &)
constexpr TypedWhichId< ScCondFormatItem > ATTR_CONDITIONAL(154)
const ScDocument & GetDocument() const
void GetCellState(SfxItemSet &rSet)
void GetHLinkState(SfxItemSet &rSet)
void GetMultiArea(ScRangeListRef &rRange) const
OUString getNum(sal_Int64 nNumber, sal_uInt16 nDecimals, bool bUseThousandSep=true, bool bTrailingZeros=true) const
bool SelectionForbidsCellFill()
Disallow cell fill (Paste,Fill,...) on Ctrl+A all selected or another high amount of selected cells...
static LanguageType GetEffLanguage(ScDocument &rDoc, const ScAddress &rPos)
constexpr sal_uInt16 KEY_SHIFT
void TestRemoveOutline(bool &rCol, bool &rRow)
SC_DLLPUBLIC sal_uInt16 GetColWidth(SCCOL nCol, SCTAB nTab, bool bHiddenAsZero=true) const
bool HasDetectiveOperations() const
void SetContextName(const OUString &rsContextName)
SC_DLLPUBLIC bool GetName(SCTAB nTab, OUString &rName) const
virtual SfxObjectShell * GetObjectShell()
bool IsSelectionEditable(const ScMarkData &rMark, bool *pOnlyNotBecauseOfMatrix=nullptr) const
SC_DLLPUBLIC void GetCellType(SCCOL nCol, SCROW nRow, SCTAB nTab, CellType &rCellType) const
#define SCITEM_CONSOLIDATEDATA
static bool GetEmbeddedName(const TransferableDataHelper &rData, OUString &_rName, OUString &_rSource, SotClipboardFormatId const &_nFormat)
bool IsCaptionShown() const
Returns true, if the caption object is visible.