20 #include <config_features.h>
22 #include <com/sun/star/i18n/TextConversionOption.hpp>
23 #include <com/sun/star/sheet/DataPilotFieldFilter.hpp>
52 #include <document.hxx>
56 #include <uiitems.hxx>
61 #include <docfunc.hxx>
79 #include <globstr.hrc>
85 #include <tokenarray.hxx>
90 #include <com/sun/star/ui/dialogs/XExecutableDialog.hpp>
91 #include <com/sun/star/lang/XInitialization.hpp>
92 #include <com/sun/star/beans/XPropertySet.hpp>
93 #include <com/sun/star/uno/XComponentContext.hpp>
106 OUString aFlagsStr = rFlagsStr.toAsciiUpperCase();
109 for (sal_Int32 i=0 ;
i < aFlagsStr.getLength(); ++
i)
111 switch (aFlagsStr[i])
137 nFlags &= nFlagsMask;
150 void SetTabNoAndCursor(
const ScViewData& rViewData,
const OUString& rCellId )
155 std::vector<sc::NoteEntry> aNotes;
158 sal_uInt32
nId = rCellId.toUInt32();
159 auto lComp = [nId](
const sc::NoteEntry& rNote) {
return rNote.mpNote->GetId() == nId; };
161 const auto& aFoundNoteIt = std::find_if(aNotes.begin(), aNotes.end(), lComp);
162 if (aFoundNoteIt != aNotes.end())
164 ScAddress aFoundPos = aFoundNoteIt->maPos;
177 sal_uInt16 nSlot = rReq.
GetSlot();
186 case FID_DEFINE_NAME:
189 case FID_INSERT_NAME:
190 case SID_SPELL_DIALOG:
191 case SID_HANGUL_HANJA_CONVERSION:
192 case SID_OPENDLG_CONDFRMT:
193 case SID_OPENDLG_CURRENTCONDFRMT:
194 case SID_OPENDLG_COLORSCALE:
195 case SID_OPENDLG_DATABAR:
211 case FID_INS_ROWS_BEFORE:
217 case FID_INS_COLUMNS_BEFORE:
222 case FID_INS_ROWS_AFTER:
227 case FID_INS_COLUMNS_AFTER:
232 case FID_INS_CELLSDOWN:
237 case FID_INS_CELLSRIGHT:
261 if( pReqArgs->
HasItem( FID_INS_CELL, &pItem ) )
262 aFlags = static_cast<const SfxStringItem*>(pItem)->GetValue();
263 if( !aFlags.isEmpty() )
319 case FID_DELETE_CELL:
328 if( pReqArgs->
HasItem( FID_DELETE_CELL, &pItem ) )
329 aFlags = static_cast<const SfxStringItem*>(pItem)->GetValue();
330 if( !aFlags.isEmpty() )
392 case SID_DELETE_CONTENTS:
404 OUString aFlags(
'A');
406 if( pReqArgs->
HasItem( SID_DELETE, &pItem ) )
407 aFlags = static_cast<const SfxStringItem*>(pItem)->GetValue();
449 case FID_FILL_TO_BOTTOM:
454 case FID_FILL_TO_RIGHT:
459 case FID_FILL_TO_TOP:
464 case FID_FILL_TO_LEFT:
473 bool bSkipEmpty =
false;
474 bool bAsLink =
false;
479 OUString aFlags(
'A');
481 if( pReqArgs->
HasItem( FID_FILL_TAB, &pItem ) )
482 aFlags = static_cast<const SfxStringItem*>(pItem)->GetValue();
484 nFlags |= FlagsFromString(aFlags);
491 new OUString(
ScResId(STR_FILL_TAB))));
506 pTabViewShell->
FillTab( nFlags, nFunction, bSkipEmpty, bAsLink );
510 OUString aFlags = FlagsToString( nFlags );
519 case FID_FILL_SERIES:
543 nEndCol, nEndRow, nEndTab );
545 if( nStartCol!=nEndCol )
551 if( nStartRow!=nEndRow )
563 OUString aFillDir, aFillCmd, aFillDateCmd;
564 OUString aFillStep, aFillStart, aFillMax;
568 if( pReqArgs->
HasItem( FID_FILL_SERIES, &pItem ) )
569 aFillDir = static_cast<const SfxStringItem*>(pItem)->GetValue();
570 if( pReqArgs->
HasItem( FN_PARAM_1, &pItem ) )
571 aFillCmd = static_cast<const SfxStringItem*>(pItem)->GetValue();
572 if( pReqArgs->
HasItem( FN_PARAM_2, &pItem ) )
573 aFillDateCmd = static_cast<const SfxStringItem*>(pItem)->GetValue();
574 if( pReqArgs->
HasItem( FN_PARAM_3, &pItem ) )
575 aFillStep = static_cast<const SfxStringItem*>(pItem)->GetValue();
576 if( pReqArgs->
HasItem( FN_PARAM_4, &pItem ) )
577 aFillStart = static_cast<const SfxStringItem*>(pItem)->GetValue();
578 if( pReqArgs->
HasItem( FN_PARAM_5, &pItem ) )
579 aFillMax = static_cast<const SfxStringItem*>(pItem)->GetValue();
581 if( !aFillDir.isEmpty() )
582 switch( aFillDir[0] )
590 if( !aFillCmd.isEmpty() )
591 switch( aFillCmd[0] )
596 case 'D':
case 'd': eFillCmd=
FILL_DATE;
break;
597 case 'A':
case 'a': eFillCmd=
FILL_AUTO;
break;
600 if( !aFillDateCmd.isEmpty() )
601 switch( aFillDateCmd[0] )
603 case 'D':
case 'd': eFillDateCmd=
FILL_DAY;
break;
605 case 'M':
case 'm': eFillDateCmd=
FILL_MONTH;
break;
606 case 'Y':
case 'y': eFillDateCmd=
FILL_YEAR;
break;
626 sal_uInt32 nPrivFormat;
629 rDoc.
GetCellType( nStartCol, nStartRow, nStartTab,eCellType );
631 const SCSIZE nSelectHeight = nEndRow - nStartRow + 1;
632 const SCSIZE nSelectWidth = nEndCol - nStartCol + 1;
636 OSL_FAIL(
"Numberformat not found !!!");
641 if (nPrivType & SvNumFormatType::DATE)
654 if ( nStartCol == nEndCol || nStartRow == nEndRow )
656 double fInputEndVal = 0.0;
660 rDoc.
GetValue( nStartCol, nStartRow, nStartTab, fStartVal );
665 if(!aEndStr.isEmpty())
667 rDoc.
GetValue( nStartCol, nStartRow+1, nStartTab, fInputEndVal);
668 fIncVal=fInputEndVal-fStartVal;
673 if(nStartCol < nEndCol)
676 if(!aEndStr.isEmpty())
678 rDoc.
GetValue( nStartCol+1, nStartRow, nStartTab, fInputEndVal);
679 fIncVal=fInputEndVal-fStartVal;
686 Date aStartDate = rNullDate;
688 Date aEndDate = rNullDate;
689 aEndDate.
AddDays(fInputEndVal);
712 eFillDir, eFillCmd, eFillDateCmd,
713 aStartStr, fIncVal, fMaxVal,
714 nSelectHeight, nSelectWidth, nPossDir));
716 if ( nStartCol != nEndCol && nStartRow != nEndRow )
731 pTabViewShell->
EnterData( nStartCol, nStartRow, nStartTab, aStr );
743 pTabViewShell->
FillSeries( eFillDir, eFillCmd, eFillDateCmd, fStartVal, fIncVal, fMaxVal );
748 const Color* pColor =
nullptr;
771 switch( eFillDateCmd )
811 if( pReqArgs !=
nullptr )
815 if( pReqArgs->
HasItem( FID_FILL_AUTO, &pItem ) )
822 nFillRow = aScAddress.
Row();
823 nFillCol = aScAddress.
Col();
827 SCTAB nStartTab, nEndTab;
829 nEndCol,nEndRow,nEndTab );
835 if ( nStartCol == nEndCol && nStartRow == nEndRow )
837 SCCOL nMergeCol = nStartCol;
838 SCROW nMergeRow = nStartRow;
840 nStartCol, nStartRow, nMergeCol, nMergeRow,
843 if ( nFillCol >= nStartCol && nFillCol <= nMergeCol && nFillRow == nStartRow )
844 nFillCol = nStartCol;
845 if ( nFillRow >= nStartRow && nFillRow <= nMergeRow && nFillCol == nStartCol )
846 nFillRow = nStartRow;
851 if ( nFillCol != nEndCol || nFillRow != nEndRow )
853 if ( nFillCol==nEndCol || nFillRow==nEndRow )
858 if ( nFillCol==nEndCol )
860 if ( nFillRow > nEndRow )
863 nCount = nFillRow - nEndRow;
865 else if ( nFillRow < nStartRow )
868 nCount = nStartRow - nFillRow;
873 if ( nFillCol > nEndCol )
876 nCount = nFillCol - nEndCol;
878 else if ( nFillCol < nStartCol )
881 nCount = nStartCol - nFillCol;
887 pTabViewShell->
FillAuto( eDir, nStartCol, nStartRow, nEndCol, nEndRow, nCount );
902 OSL_FAIL(
"Direction not unique for autofill" );
907 case FID_FILL_SINGLE_EDIT:
910 case SID_RANDOM_NUMBER_GENERATOR_DIALOG:
920 case SID_SAMPLING_DIALOG:
929 case SID_DESCRIPTIVE_STATISTICS_DIALOG:
938 case SID_ANALYSIS_OF_VARIANCE_DIALOG:
947 case SID_CORRELATION_DIALOG:
956 case SID_COVARIANCE_DIALOG:
965 case SID_EXPONENTIAL_SMOOTHING_DIALOG:
974 case SID_MOVING_AVERAGE_DIALOG:
983 case SID_REGRESSION_DIALOG:
992 case SID_TTEST_DIALOG:
1002 case SID_FTEST_DIALOG:
1012 case SID_ZTEST_DIALOG:
1022 case SID_CHI_SQUARE_TEST_DIALOG:
1032 case SID_FOURIER_ANALYSIS_DIALOG:
1042 case SID_SEARCH_RESULTS_DIALOG:
1045 if (pReqArgs && pReqArgs->
HasItem(SID_SEARCH_RESULTS_DIALOG, &pItem))
1050 sal_uInt16 nId = sc::SearchResultsDlgWrapper::GetChildWindowId();
1060 case SID_OUTLINE_HIDE:
1069 case SID_OUTLINE_SHOW:
1075 Sequence<sheet::DataPilotFieldFilter> aFilters;
1076 css::sheet::DataPilotFieldOrientation nOrientation;
1081 pTabViewShell->
GetFrameWeld(), *pDPObj, nOrientation ) );
1102 case SID_OUTLINE_MAKE:
1104 bool bColumns =
false;
1114 sal_Int32 nParts = 0;
1121 aNumInfo, nParts, rNullDate ) );
1141 else if( pReqArgs !=
nullptr )
1146 if( pReqArgs->
HasItem( SID_OUTLINE_MAKE, &pItem ) )
1149 aCol = aCol.toAsciiUpperCase();
1153 case 'R': bColumns=
false; bOk =
true;
break;
1154 case 'C': bColumns=
true; bOk =
true;
break;
1171 [pDlg, pTabViewShell] (sal_Int32 nResult) {
1188 if( ! rReq.
IsAPI() )
1190 OUString aCol = bColumns ? OUString(
'C') : OUString(
'R');
1198 case SID_OUTLINE_REMOVE:
1200 bool bColumns =
false;
1209 else if( pReqArgs !=
nullptr )
1214 if( pReqArgs->
HasItem( SID_OUTLINE_REMOVE, &pItem ) )
1217 aCol = aCol.toAsciiUpperCase();
1221 case 'R': bColumns=
false; bOk =
true;
break;
1222 case 'C': bColumns=
true; bOk =
true;
break;
1228 bool bColPoss, bRowPoss;
1238 [pDlg, pTabViewShell] (sal_Int32 nResult) {
1250 else if ( bColPoss )
1252 else if ( bRowPoss )
1261 if( ! rReq.
IsAPI() )
1263 OUString aCol = bColumns ? OUString(
'C') : OUString(
'R');
1276 pTabViewShell->
CopyToClip(
nullptr,
false,
false,
true );
1302 case SID_CLIPBOARD_FORMAT_ITEMS:
1308 if ( pReqArgs && pReqArgs->
GetItemState(nSlot,
true, &pItem) == SfxItemState::SET )
1309 if (
auto pIntItem = dynamic_cast<const SfxUInt32Item*>(pItem) )
1310 nFormat = static_cast<SotClipboardFormatId>(pIntItem->GetValue());
1312 if ( nFormat != SotClipboardFormatId::NONE )
1317 bool bOle = ( nFormat == SotClipboardFormatId::EMBED_SOURCE );
1319 if ( bCells && bOle )
1321 else if ( bDraw && bOle )
1334 case FID_INS_CELL_CONTENTS:
1345 bool bSkipEmpty =
false;
1346 bool bTranspose =
false;
1347 bool bAsLink =
false;
1352 OUString aFlags(
'A');
1354 if( pReqArgs->
HasItem( FID_INS_CELL_CONTENTS, &pItem ) )
1355 aFlags = static_cast<const SfxStringItem*>(pItem)->GetValue();
1357 nFlags |= FlagsFromString(aFlags);
1367 bSkipEmpty = pSkipItem->
GetValue();
1368 if ( pTransposeItem )
1369 bTranspose = pTransposeItem->GetValue();
1371 bAsLink = pLinkItem->GetValue();
1373 eMoveMode =
static_cast<InsCellCmd>(pMoveItem->GetValue());
1392 SCCOL nStartX, nEndX, nClipStartX, nClipSizeX, nRangeSizeX;
1393 SCROW nStartY, nEndY, nClipStartY, nClipSizeY, nRangeSizeY;
1394 SCTAB nStartTab, nEndTab;
1400 nStartTab != nEndTab )
1404 nStartX = nEndX = rData.
GetCurX();
1405 nStartY = nEndY = rData.
GetCurY();
1410 nRangeSizeX = nClipSizeX >= nEndX - nStartX ? nClipSizeX : nEndX - nStartX;
1411 nRangeSizeY = nClipSizeY >= nEndY - nStartY ? nClipSizeY : nEndY - nStartY;
1415 ScRange aSource( nClipStartX, nClipStartY, nStartTab,
1416 nClipStartX + nClipSizeX, nClipStartY + nClipSizeY, nStartTab );
1417 ScRange aDest( nStartX, nStartY, nStartTab,
1418 nStartX + nRangeSizeX, nStartY + nRangeSizeY, nStartTab );
1431 rDoc.
MaxCol() - nRangeSizeX, nStartY,
1432 rDoc.
MaxCol(), nStartY + nRangeSizeY ) )
1437 nStartX, rDoc.
MaxRow() - nRangeSizeY,
1438 nStartX + nRangeSizeX, rDoc.
MaxRow() ) )
1452 bAsLink = pDlg->
IsLink();
1464 if ( bAsLink && bOtherDoc )
1469 nFunction, bSkipEmpty, bTranspose, bAsLink,
1476 OUString aFlags = FlagsToString( nFlags );
1491 case SID_PASTE_ONLY_VALUE:
1492 case SID_PASTE_ONLY_TEXT:
1493 case SID_PASTE_ONLY_FORMULA:
1497 rReq.
SetSlot( FID_INS_CELL_CONTENTS );
1499 if ( nSlot == SID_PASTE_ONLY_VALUE )
1501 else if ( nSlot == SID_PASTE_ONLY_TEXT )
1514 case SID_PASTE_TEXTIMPORT_DIALOG:
1519 const uno::Reference<datatransfer::XTransferable>& xTransferable
1522 bool bSuccess =
false;
1525 OUString sStrBuffer;
1526 bSuccess = aDataHelper.
GetString(format, sStrBuffer);
1529 auto pStrm = std::make_shared<ScImportStringStream>(sStrBuffer);
1548 pObj->SetOverwriting(
true);
1553 pObj->SetExtOptions(aOptions);
1554 pObj->ImportString(sStrBuffer, format);
1568 case SID_PASTE_SPECIAL:
1578 pReqArgs->
GetItemState(nSlot,
true, &pItem) == SfxItemState::SET &&
1586 if ( bDraw && nFormat == SotClipboardFormatId::EMBED_SOURCE )
1606 rReq.
SetSlot( FID_INS_CELL_CONTENTS );
1617 sal_uInt16 nFormatCount = aFormats.
Count();
1622 for (sal_uInt16
i=0;
i<nFormatCount;
i++)
1627 if ( nFormatId == SotClipboardFormatId::EMBED_SOURCE )
1629 pDlg->
Insert( nFormatId, aName );
1637 pDlg->
InsertUno(
".uno:PasteTextImportDialog", sLabel);
1642 if (nFormat != SotClipboardFormatId::NONE)
1646 if ( bDraw && nFormat == SotClipboardFormatId::EMBED_SOURCE )
1669 case SID_PASTE_UNFORMATTED:
1680 SotClipboardFormatId::STRING_TSVC : SotClipboardFormatId::STRING;
1699 case FID_INS_ROWBRK:
1704 case FID_INS_COLBRK:
1709 case FID_DEL_ROWBRK:
1714 case FID_DEL_COLBRK:
1719 case SID_DETECTIVE_ADD_PRED:
1724 case SID_DETECTIVE_DEL_PRED:
1729 case SID_DETECTIVE_ADD_SUCC:
1734 case SID_DETECTIVE_DEL_SUCC:
1739 case SID_DETECTIVE_ADD_ERR:
1744 case SID_DETECTIVE_INVALID:
1749 case SID_DETECTIVE_REFRESH:
1754 case SID_DETECTIVE_MARK_PRED:
1757 case SID_DETECTIVE_MARK_SUCC:
1760 case SID_INSERT_CURRENT_DATE:
1762 SvNumFormatType::DATE,
ScResId(STR_UNDO_INSERT_CURRENT_DATE));
1764 case SID_INSERT_CURRENT_TIME:
1766 SvNumFormatType::TIME,
ScResId(STR_UNDO_INSERT_CURRENT_TIME));
1769 case SID_SPELL_DIALOG:
1774 static_cast< const SfxBoolItem& >( rReq.
GetArgs()->
1784 case SID_HANGUL_HANJA_CONVERSION:
1788 case SID_CHINESE_CONVERSION:
1795 Reference< lang::XMultiComponentFactory > xMCF( xContext->getServiceManager() );
1798 Reference< ui::dialogs::XExecutableDialog > xDialog(
1799 xMCF->createInstanceWithContext(
1800 "com.sun.star.linguistic2.ChineseTranslationDialog"
1803 Reference< lang::XInitialization > xInit( xDialog, UNO_QUERY );
1809 {
"ParentWindow",
uno::Any(Reference< awt::XWindow >())}
1811 xInit->initialize( aSeq );
1814 sal_Int16 nDialogRet = xDialog->execute();
1815 if(
RET_OK == nDialogRet )
1818 bool bToSimplified =
true;
1819 bool bUseVariants =
true;
1820 bool bCommonTerms =
true;
1826 xProp->getPropertyValue(
"IsDirectionToSimplified") >>= bToSimplified;
1827 xProp->getPropertyValue(
"IsUseCharacterVariants") >>= bUseVariants;
1828 xProp->getPropertyValue(
"IsTranslateCommonTerms") >>= bCommonTerms;
1838 sal_Int32 nOptions = bUseVariants ? i18n::TextConversionOption::USE_CHARACTER_VARIANTS : 0;
1840 nOptions |= i18n::TextConversionOption::CHARACTER_BY_CHARACTER;
1843 DefaultFontType::CJK_SPREADSHEET,
1844 eTargetLang, GetDefaultFontFlags::OnlyOne );
1846 eSourceLang, eTargetLang, aTargetFont, nOptions,
false );
1851 if( xComponent.is() )
1852 xComponent->dispose();
1858 case SID_CONVERT_FORMULA_TO_VALUE:
1867 case SID_TOGGLE_REL:
1871 case SID_DEC_INDENT:
1874 case SID_INC_INDENT:
1894 case SID_CONSOLIDATE:
1897 if ( pReqArgs && SfxItemState::SET ==
1908 #if HAVE_FEATURE_SCRIPTING
1909 else if (rReq.
IsAPI())
1915 case SID_INS_FUNCTION:
1936 case FID_DEFINE_NAME:
1937 case FID_DEFINE_CURRENT_NAME:
1941 OUString
aName, aSymbol, aAttrib;
1943 if( pReqArgs->
HasItem( FID_DEFINE_NAME, &pItem ) )
1944 aName = static_cast<const SfxStringItem*>(pItem)->GetValue();
1946 if( pReqArgs->
HasItem( FN_PARAM_1, &pItem ) )
1947 aSymbol = static_cast<const SfxStringItem*>(pItem)->GetValue();
1949 if( pReqArgs->
HasItem( FN_PARAM_2, &pItem ) )
1950 aAttrib = static_cast<const SfxStringItem*>(pItem)->GetValue();
1952 if ( !aName.isEmpty() && !aSymbol.isEmpty() )
1954 if (pTabViewShell->
InsertName( aName, aSymbol, aAttrib ))
1956 #if HAVE_FEATURE_SCRIPTING
1964 sal_uInt16 nId = ScNameDlgWrapper::GetChildWindowId();
1973 sal_uInt16 nId = ScNameDefDlgWrapper::GetChildWindowId();
1981 case SID_OPENDLG_CONDFRMT:
1982 case SID_OPENDLG_CURRENTCONDFRMT:
1983 case SID_OPENDLG_COLORSCALE:
1984 case SID_OPENDLG_DATABAR:
1985 case SID_OPENDLG_ICONSET:
1986 case SID_OPENDLG_CONDDATE:
1988 sal_uInt32
nIndex = sal_uInt32(-1);
1989 bool bManaged =
false;
1993 if (itemsRange.begin() != itemsRange.end())
2004 sal_uInt16 nId = ScCondFormatDlgWrapper::GetChildWindowId();
2019 pTabViewShell->
ErrorMessage( STR_ERR_CONDFORMAT_PROTECTED );
2024 if(aRangeList.
empty())
2034 bool bContainsCondFormat = !rCondFormats.
empty();
2035 bool bCondFormatDlg =
false;
2036 bool bContainsExistingCondFormat =
false;
2037 if(bContainsCondFormat)
2039 for (
const auto& rCondFormat : rCondFormats)
2042 pCondFormat = pList->
GetFormat(rCondFormat);
2046 bContainsExistingCondFormat =
true;
2048 if(rCondFormatRange == aRangeList)
2051 bCondFormatDlg =
true;
2052 nIndex = pCondFormat->
GetKey();
2060 if (pParam && nSlot == SID_OPENDLG_ICONSET)
2062 auto pFormat = std::make_unique<ScConditionalFormat>(0, &rDoc);
2063 pFormat->SetRange(aRangeList);
2080 pFormat->AddEntry(pEntry);
2090 if(bContainsCondFormat && !bCondFormatDlg && bContainsExistingCondFormat)
2093 VclMessageType::Question, VclButtonsType::YesNo,
2094 ScResId(STR_EDIT_EXISTING_COND_FORMATS)));
2095 xQueryBox->set_default_response(
RET_YES);
2096 bool bEditExisting = xQueryBox->run() ==
RET_YES;
2103 if (rCondFormats.
size() == 1)
2105 pCondFormat = pList->
GetFormat(rCondFormats[0]);
2107 bCondFormatDlg =
true;
2126 case SID_OPENDLG_CONDFRMT:
2127 case SID_OPENDLG_CURRENTCONDFRMT:
2130 case SID_OPENDLG_COLORSCALE:
2133 case SID_OPENDLG_DATABAR:
2136 case SID_OPENDLG_ICONSET:
2139 case SID_OPENDLG_CONDDATE:
2148 if(bCondFormatDlg || !bContainsCondFormat)
2156 sal_uInt16 nId = ScCondFormatDlgWrapper::GetChildWindowId();
2165 case SID_DEFINE_COLROWNAMERANGES:
2168 sal_uInt16 nId = ScColRowNameRangesDlgWrapper::GetChildWindowId();
2177 case SID_UPDATECHART:
2185 if( pReqArgs->
HasItem( SID_UPDATECHART, &pItem ) )
2186 bAll = static_cast<const SfxBoolItem*>(pItem)->GetValue();
2191 if( ! rReq.
IsAPI() )
2204 pReqArgs->
Get( SID_TABOP ));
2208 rReq.
Done( *pReqArgs );
2221 rReq.
Done( *pReqArgs );
2225 case FID_INSERT_NAME:
2244 if (!aNames.empty())
2247 for (
const auto& rName : aNames)
2249 aBuffer.append(rName).append(
' ');
2260 case SID_RANGE_NOTETEXT:
2272 case SID_INSERT_POSTIT:
2273 case SID_EDIT_POSTIT:
2276 if ( pReqArgs && pReqArgs->
HasItem( SID_ATTR_POSTIT_TEXT, &pText) )
2281 if (pReqArgs->
HasItem( SID_ATTR_POSTIT_ID, &pCellId ))
2282 aCellId = static_cast<const SvxPostItIdItem*>(pCellId)->GetValue();
2288 if (!aCellId.isEmpty())
2294 pTabViewShell->
ReplaceNote( aPos, pTextItem->GetValue(),
2295 pAuthorItem ? &pAuthorItem->GetValue() :
nullptr,
2296 pDateItem ? &pDateItem->GetValue() : nullptr );
2306 case FID_NOTE_VISIBLE:
2314 if ( pReqArgs && (pReqArgs->
GetItemState( FID_NOTE_VISIBLE,
true, &pItem ) == SfxItemState::SET) )
2317 bShow = !pNote->IsCaptionShown();
2335 bool bShowNote = nSlot == FID_SHOW_NOTE;
2357 OUString aUndo =
ScResId( bShowNote ? STR_UNDO_SHOWNOTE : STR_UNDO_HIDENOTE );
2363 std::vector<sc::NoteEntry> aNotes;
2398 case FID_SHOW_ALL_NOTES:
2399 case FID_HIDE_ALL_NOTES:
2401 bool bShowNote = nSlot == FID_SHOW_ALL_NOTES;
2405 std::vector<sc::NoteEntry> aNotes;
2407 OUString aUndo =
ScResId( bShowNote ? STR_UNDO_SHOWALLNOTES : STR_UNDO_HIDEALLNOTES );
2425 case SID_TOGGLE_NOTES:
2431 std::vector<sc::NoteEntry> aNotes;
2440 OUString aUndo =
ScResId( bShowNote ? STR_UNDO_SHOWALLNOTES : STR_UNDO_HIDEALLNOTES );
2443 for(
const auto& rNote : aNotes)
2459 case SID_DELETE_NOTE:
2463 if ( pReqArgs && pReqArgs->
HasItem( SID_ATTR_POSTIT_ID, &pId) )
2466 const OUString& aCellId = pIdItem->GetValue();
2467 if (!aCellId.isEmpty())
2478 case FID_DELETE_ALL_NOTES:
2491 aNewMark.MarkFromRangeList( aRangeList,
true );
2497 if( pReqArgs !=
nullptr )
2499 OUString aChars, aFontName;
2516 if ( !aChars.isEmpty() )
2521 if ( !aFontName.isEmpty() )
2524 if( ! rReq.
IsAPI() )
2547 case SID_SELECT_SCENARIO:
2563 case SID_HYPERLINK_SETLINK:
2567 if( pReqArgs->
HasItem( SID_HYPERLINK_SETLINK, &pItem ) )
2570 const OUString& rName = pHyper->
GetName();
2571 const OUString& rURL = pHyper->
GetURL();
2575 pTabViewShell->
InsertURL( rName, rURL, rTarget, nType );
2583 case SID_OPENDLG_CONDFRMT_MANAGER:
2584 case SID_OPENDLG_CURRENTCONDFRMT_MANAGER:
2593 pTabViewShell->
ErrorMessage( STR_ERR_CONDFORMAT_PROTECTED );
2603 if (itemsRange.begin() != itemsRange.end())
2618 pDlg->
StartExecuteAsync([
this, pDlg, &rData, pTabViewShell, pDlgItem, aPos](sal_Int32 nRet){
2629 std::shared_ptr<ScConditionalFormatList>(pCondFormatList.release()), -1,
true));
2640 std::shared_ptr<ScConditionalFormatList>(pCondFormatList.release()), nIndex,
true));
2646 pCondFormatList.reset();
2656 case SID_EXTERNAL_SOURCE:
2660 if ( pFile && pSource )
2669 aSource = pSource->GetValue();
2686 pImpl->m_pLinkedDlg.disposeAndClear();
2687 pImpl->m_pLinkedDlg =
2689 delete pImpl->m_pRequest;
2691 OUString sFile, sFilter, sOptions, sSource;
2695 sFile =
pImpl->m_pLinkedDlg->GetURL();
2696 sFilter =
pImpl->m_pLinkedDlg->GetFilter();
2697 sOptions =
pImpl->m_pLinkedDlg->GetOptions();
2698 sSource =
pImpl->m_pLinkedDlg->GetSource();
2699 nRefresh =
pImpl->m_pLinkedDlg->GetRefresh();
2700 if ( !sFile.isEmpty() )
2702 if ( !sFilter.isEmpty() )
2704 if ( !sOptions.isEmpty() )
2706 if ( !sSource.isEmpty() )
2719 bool bSubTotal =
false;
2720 bool bRangeFinder =
false;
2721 const OUString aFormula = pTabViewShell->
DoAutoSum( bRangeFinder, bSubTotal ,
ocSum );
2722 if ( !aFormula.isEmpty() )
2724 const sal_Int32 nPar = aFormula.indexOf(
'(' );
2725 const sal_Int32 nLen = aFormula.getLength();
2728 if ( pHdl && nPar != -1 )
2757 case SID_SELECT_UNPROTECTED_CELLS:
2772 OSL_FAIL(
"incorrect slot in ExecuteEdit");
2780 if ( nType != TransliterationFlags::NONE )
2789 if( rReq.
GetSlot() == SID_TRANSLITERATE_ROTATE_CASE )
2794 const OUString& _rFile,
const OUString& _rFilter,
const OUString& _rOptions,
2797 if ( !_rFile.isEmpty() && !_rSource.isEmpty() )
2814 aLinkRange, _nRefresh, bMove,
false );
2823 bool isDPSourceValid(
const ScDPObject& rDPObj)
2845 void RunPivotLayoutDialog(
ScModule* pScMod,
2847 std::unique_ptr<ScDPObject>& pNewDPObject)
2849 bool bHadNewDPObject = pNewDPObject !=
nullptr;
2851 if ( bHadNewDPObject )
2855 sal_uInt16 nId = ScPivotLayoutWrapper::GetChildWindowId();
2877 std::unique_ptr<ScDPObject> pNewDPObject;
2879 if (isDPSourceValid(*pDPObj))
2882 RunPivotLayoutDialog(pScMod, pTabViewShell, pNewDPObject);
2911 for (; itr != itrEnd; ++itr)
2916 pScMod, pFact, &rDoc, &rMark, aDestPos](
int nResult)
mutable {
2928 aDestPos, &rDoc](
int nResult2)
mutable {
2929 if ( nResult2 ==
RET_OK )
2937 std::unique_ptr<ScDPObject> pNewDPObject(
new ScDPObject(&rDoc));
2938 pNewDPObject->SetServiceData( aServDesc );
2941 pNewDPObject->SetOutRange( aDestPos );
2943 RunPivotLayoutDialog(pScMod, pTabViewShell, pNewDPObject);
2951 assert(pFact &&
"ScAbstractFactory create fail!");
2954 assert(pDataDlg &&
"Dialog create fail!");
2957 aDestPos, &rDoc](
int nResult2)
mutable {
2958 if ( nResult2 ==
RET_OK )
2962 std::unique_ptr<ScDPObject> pNewDPObject(
new ScDPObject(&rDoc));
2963 pNewDPObject->SetImportDesc( aImpDesc );
2966 pNewDPObject->SetOutRange( aDestPos );
2968 RunPivotLayoutDialog(pScMod, pTabViewShell, pNewDPObject);
2976 std::unique_ptr<ScDPObject> pNewDPObject;
2977 const char* pSrcErrorId =
nullptr;
2988 pNewDPObject->SetSheetDesc(aShtDesc);
3016 VclMessageType::Question, VclButtonsType::YesNo,
3017 ScResId(STR_DATAPILOT_SUBTOTAL)));
3018 xQueryBox->set_default_response(
RET_YES);
3019 if (xQueryBox->run() ==
RET_NO)
3030 pNewDPObject->SetSheetDesc( aShtDesc );
3046 VclMessageType::Info, VclButtonsType::Ok,
3053 pNewDPObject->SetOutRange( aDestPos );
3055 RunPivotLayoutDialog(pScMod, pTabViewShell, pNewDPObject);
3072 sal_uInt16 nId = ScXMLSourceDlgWrapper::GetChildWindowId();
3085 GetSubTotalData() );
3108 pTabViewShell->
MarkRange(aDataRange,
false);
3126 short bResult = pDlg->Execute();
3147 &aSubTotalParam ) );
3151 rReq.
Done( *pOutSet );
3163 if (aCurPos.
Row() > 0)
3188 m_pRequest( nullptr ) {}
virtual void AppendNamedRange(const OUString &rName)=0
ScMarkData & GetMarkData()
virtual void SetFillMode(bool bSet)=0
const SfxPoolItem * ExecuteSlot(SfxRequest &rReq, const SfxInterface *pIF=nullptr)
bool HasClipboardFormat(SotClipboardFormatId nFormatId)
void DetectiveMarkInvalid()
SC_DLLPUBLIC void InsertPageBreak(bool bColumn, bool bRecord=true, const ScAddress *pPos=nullptr, bool bSetModified=true)
SfxViewFrame * GetViewFrame() const
virtual VclPtr< AbstractScDPDateGroupDlg > CreateScDPDateGroupDlg(weld::Window *pParent, const ScDPNumGroupInfo &rInfo, sal_Int32 nDatePart, const Date &rNullDate)=0
bool IsBlockEditable(SCTAB nTab, SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, bool *pOnlyNotBecauseOfMatrix=nullptr, bool bNoMatrixAtAll=false) const
Numeric values (and numeric results if InsertDeleteFlags::FORMULA is not set).
const ScDPDimensionSaveData * GetExistingDimensionData() const
SC_DLLPUBLIC ScDPObject * GetDPAtCursor(SCCOL nCol, SCROW nRow, SCTAB nTab) const
CreateNameFlags GetCreateNameFlags()
void DeleteContents(InsertDeleteFlags nFlags)
virtual VclPtr< AbstractScNameCreateDlg > CreateScNameCreateDlg(weld::Window *pParent, CreateNameFlags nFlags)=0
SC_DLLPUBLIC void Format(OStringBuffer &r, ScRefFlags nFlags, const ScDocument *pDocument=nullptr, const Details &rDetails=detailsOOOa1) const
static ScDrawTransferObj * GetOwnClipboard(const css::uno::Reference< css::datatransfer::XTransferable2 > &)
void ExecuteExternalSource(const OUString &_rFile, const OUString &_rFilter, const OUString &_rOptions, const OUString &_rSource, sal_uLong _nRefresh, SfxRequest &_rRequest)
void MarkDataArea(bool bIncludeCursor=true)
static vcl::Font GetDefaultFont(DefaultFontType nType, LanguageType eLang, GetDefaultFontFlags nFlags, const OutputDevice *pOutDev=nullptr)
virtual VclPtr< AbstractScDeleteContentsDlg > CreateScDeleteContentsDlg(weld::Window *pParent)=0
virtual DelCellCmd GetDelCellCmd() const =0
void GetClipStart(SCCOL &nClipX, SCROW &nClipY)
ScDBData * GetDBData(bool bMarkArea=true, ScGetDBMode eMode=SC_DB_MAKE, ScGetDBSelection eSel=ScGetDBSelection::Keep)
ScDocShell * GetDocShell() const
virtual InsertDeleteFlags GetDelContentsCmdBits() const =0
void ShowDataPilotSourceData(ScDPObject &rDPObj, const css::uno::Sequence< css::sheet::DataPilotFieldFilter > &rFilters)
void SetConsolidateDlgData(std::unique_ptr< ScConsolidateParam > pData)
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...
This class has to do with handling exclusively grouped dimensions? TODO: Find out what this class doe...
SfxChildWindow * GetChildWindow(sal_uInt16)
const OUString & GetFamilyName() const
SC_DLLPUBLIC bool CopyToClip(ScDocument *pClipDoc, bool bCut, bool bApi=false, bool bIncludeObjects=false, bool bStopEdit=true)
virtual void SetOtherDoc(bool bSet)=0
SC_DLLPUBLIC bool DeleteContents(const ScMarkData &rMark, InsertDeleteFlags nFlags, bool bRecord, bool bApi)
void CreateNames(CreateNameFlags nFlags)
OUString GetTooltipLabelForCommand(const css::uno::Sequence< css::beans::PropertyValue > &rProperties)
OUString getString(const ScDocument *pDoc) const
Retrieve string value.
virtual InsCellCmd GetInsCellCmd() const =0
void SetDialogDPObject(std::unique_ptr< ScDPObject > pObj)
void DoSheetConversion(const ScConversionParam &rParam)
Generic implementation of sheet conversion functions.
void FillTab(InsertDeleteFlags nFlags, ScPasteFunc nFunction, bool bSkipEmpty, bool bAsLink)
virtual const SfxItemSet * GetOutputItemSet() const =0
const OUString & GetStyleName() const
virtual bool GetColsChecked() const =0
virtual VclPtr< AbstractScDeleteCellDlg > CreateScDeleteCellDlg(weld::Window *pParent, bool bDisallowCellMove)=0
void DeleteCells(DelCellCmd eCmd)
bool isTiledAnnotations()
void MarkRange(const ScRange &rRange, bool bSetCursor=true, bool bContinue=false)
constexpr::Color COL_RED(0x80, 0x00, 0x00)
const OUString & GetTargetFrame() const
SC_DLLPUBLIC bool Intersects(const ScRange &rRange) const
void ExecuteEdit(SfxRequest &rReq)
virtual ScDPNumGroupInfo GetGroupInfo() const =0
static SvxAbstractDialogFactory * Create()
virtual VclPtr< AbstractScDPShowDetailDlg > CreateScDPShowDetailDlg(weld::Window *pParent, ScDPObject &rDPObj, css::sheet::DataPilotFieldOrientation nOrient)=0
Reference< XFrame > xFrame
virtual FillDateCmd GetFillDateCmd() const =0
virtual VclPtr< AbstractScNamePasteDlg > CreateScNamePasteDlg(weld::Window *pParent, ScDocShell *pShell)=0
virtual void GetOptions(ScAsciiOptions &rOpt)=0
void SetPasteMode(ScPasteFlags nFlags)
SC_DLLPUBLIC ScRangeName * GetRangeName(SCTAB nTab) const
virtual OUString GetStartStr() const =0
ScDocFunc & GetDocFunc() const
virtual VclPtr< AbstractScInsertContentsDlg > CreateScInsertContentsDlg(weld::Window *pParent, const OUString *pStrTitle=nullptr)=0
sal_uInt16 GetValue() const
void FillRangeListWithMarks(ScRangeList *pList, bool bClear, SCTAB nForTab=-1) const
Create a range list of marks.
void MakeOutline(bool bColumns, bool bRecord=true)
const ContentProperties & rData
void Solve(const ScSolveParam &rParam)
SC_DLLPUBLIC void GetNumberFormat(SCCOL nCol, SCROW nRow, SCTAB nTab, sal_uInt32 &rFormat) const
void ExecuteDataPilotDialog()
virtual VclPtr< AbstractScDataPilotServiceDlg > CreateScDataPilotServiceDlg(weld::Window *pParent, const std::vector< OUString > &rServices)=0
virtual double GetStep() const =0
SC_DLLPUBLIC bool ShowNote(const ScAddress &rPos, bool bShow)
void Done(bool bRemove=false)
ScDocument & GetDocument() const
static css::uno::Reference< css::datatransfer::XTransferable2 > GetClipData(vcl::Window *pWin)
void GetFillData(SCCOL &rStartCol, SCROW &rStartRow, SCCOL &rEndCol, SCROW &rEndRow)
void ExecuteSubtotals(SfxRequest &rReq)
virtual bool IsSkipEmptyCells() const =0
This is very similar to ScCellValue, except that it references the original value instead of copying ...
SC_DLLPUBLIC formula::FormulaGrammar::Grammar GetGrammar() const
const SfxItemSet * GetArgs() const
void Invalidate(sal_uInt16 nId)
void Remove(const SfxPoolItem &)
virtual VclPtr< AbstractScGroupDlg > CreateAbstractScGroupDlg(weld::Window *pParent, bool bUnGroup=false)=0
This class represents the cached data part of the datapilot cache table implementation.
virtual short Execute()=0
SC_DLLPUBLIC void SetCursor(SCCOL nPosX, SCROW nPosY, bool bNew=false)
const MarkedTabsType & GetSelectedTabs() const
void GetClipArea(SCCOL &nClipX, SCROW &nClipY, bool bIncludeFiltered)
SC_DLLPUBLIC formula::FormulaGrammar::AddressConvention GetAddressConvention() const
OUString DoAutoSum(bool &rRangeFinder, bool &rSubTotal, const OpCode eCode)
virtual bool IsLink() const =0
void GetNotesInRange(const ScRangeList &rRange, std::vector< sc::NoteEntry > &rNotes) const
bool IsImportData() const
void HideMarkedOutlines(bool bRecord=true)
void ConvertFormulaToValue()
void MarkFromRangeList(const ScRangeList &rList, bool bReset)
FontFamily GetFamilyType()
SC_DLLPUBLIC void InputEnterHandler(ScEnterMode nBlockMode=ScEnterMode::NORMAL)
virtual void ShowCursor(bool bOn) override
bool HasSelectionForDateGroup(ScDPNumGroupInfo &rOldInfo, sal_Int32 &rParts)
const char * CheckSourceRange() const
Check the sanity of the data source range.
Internal use only (d&d undo): do not delete caption objects of cell notes.
void GetMarkArea(ScRange &rRange) const
virtual SfxUndoManager * GetUndoManager() override
void DateGroupDataPilot(const ScDPNumGroupInfo &rInfo, sal_Int32 nParts)
void ToggleChildWindow(sal_uInt16)
const ScDPCache * CreateCache(const ScDPDimensionSaveData *pDimData) const
void ExecuteFillSingleEdit()
void UpdateCopySourceOverlay()
weld::Window * GetFrameWeld() const
void disposeAndReset(reference_type *pBody)
SC_DLLPUBLIC void SetSourceRange(const ScRange &rRange)
SC_DLLPUBLIC ScPostIt * GetNote(const ScAddress &rPos)
Notes.
void SetSlot(sal_uInt16 nNewSlot)
bool InsertName(const OUString &rName, const OUString &rSymbol, const OUString &rType)
SC_DLLPUBLIC ScConditionalFormatList * GetCondFormList(SCTAB nTab) const
CommentCaptionState GetAllNoteCaptionsState(const ScRangeList &rRanges)
virtual VclPtr< AbstractScLinkedAreaDlg > CreateScLinkedAreaDlg(weld::Window *pParent)=0
static bool HasRegisteredSources()
SC_DLLPUBLIC void CutToClip()
Not used?
DataType::const_iterator const_iterator
void FillSeries(FillDir eDir, FillCmd eCmd, FillDateCmd eDateCmd, double fStart, double fStep, double fMax)
bool SelectionEditable(bool *pOnlyNotBecauseOfMatrix=nullptr)
PropertiesInfo aProperties
virtual bool IsExternal() const =0
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 ...
sal_Int32 SCCOLROW
a type capable of holding either SCCOL or SCROW
const BorderLinePrimitive2D *pCandidateB assert(pCandidateA)
void ExecuteRotateTrans(const SfxRequest &rReq)
Additional class containing cell annotation data.
sal_uInt16 GetMonth() const
bool IsMultiMarked() const
virtual void InsertUno(const OUString &sCmd, const OUString &sLabel)=0
SfxFrame & GetFrame() const
void TransliterateText(TransliterationFlags nType)
SC_DLLPUBLIC void SetRefDialog(sal_uInt16 nId, bool bVis, SfxViewFrame *pViewFrm=nullptr)
Reference dialogs.
void DoSubTotals(const ScSubTotalParam &rParam, bool bRecord=true, const ScSortParam *pForceNewSort=nullptr)
static TransferableDataHelper CreateFromSystemClipboard(vcl::Window *pWindow)
void push_back(const ScRange &rRange)
void UpdateCharts(bool bAllCharts)
void UpdateInputHandler(bool bForce=false, bool bStopEditing=true)
ScFormulaCell * mpFormula
virtual VclPtr< AbstractScDataPilotDatabaseDlg > CreateScDataPilotDatabaseDlg(weld::Window *pParent)=0
void ExecuteXMLSourceDialog()
SC_DLLPUBLIC const_iterator begin() const
virtual bool IsTranspose() const =0
const ScRange * Find(const ScAddress &) const
virtual void SetChangeTrack(bool bSet)=0
ScDocument * GetDocument() const
bool HasSelectionForNumGroup(ScDPNumGroupInfo &rOldInfo)
SC_DLLPUBLIC const ScPatternAttr * GetPattern(SCCOL nCol, SCROW nRow, SCTAB nTab) const
SC_DLLPUBLIC void PasteFromSystem()
SvtScriptType GetSelectionScriptType()
ScChangeTrack * GetChangeTrack() const
SC_DLLPUBLIC void DeletePageBreak(bool bColumn, bool bRecord=true, const ScAddress *pPos=nullptr, bool bSetModified=true)
bool IsServiceData() const
#define SCITEM_CONDFORMATDLGDATA
static void SetError(ErrCode)
SfxItemPool & GetPool() const
const SfxPoolItem & GetItem(sal_uInt16 nWhichP) const
bool InputKeyEvent(const KeyEvent &rKEvt, bool bStartEdit=false)
void GetPossibleClipboardFormats(SvxClipboardFormatItem &rFormats)
SC_DLLPUBLIC double GetValue(const ScAddress &rPos) const
ScTabViewShell * GetViewShell() const
void SetNoteText(const ScAddress &rPos, const OUString &rNoteText)
sal_Int16 GetYear() const
const char * GetMessageId() const
void SetMarkArea(const ScRange &rRange)
OUString CreateString(sc::TokenStringContext &rCxt, const ScAddress &rPos) const
Create a string representation of formula token array without modifying the internal state of the tok...
SC_DLLPUBLIC SCCOL MaxCol() const
void InsertURL(const OUString &rName, const OUString &rURL, const OUString &rTarget, sal_uInt16 nMode)
SC_DLLPUBLIC SvNumberFormatter * GetFormatTable() const
void UseScenario(const OUString &rName)
virtual sal_Int32 GetDatePart() const =0
SC_DLLPUBLIC const_iterator end() const
static void GetFont(vcl::Font &rFont, const SfxItemSet &rItemSet, ScAutoFontColorMode eAutoMode, const OutputDevice *pOutDev=nullptr, const Fraction *pScale=nullptr, const SfxItemSet *pCondSet=nullptr, SvtScriptType nScript=SvtScriptType::NONE, const Color *pBackConfigColor=nullptr, const Color *pTextConfigColor=nullptr)
Static helper function to fill a font object from the passed item set.
const OUString & GetURL() const
virtual OUString GetParUser() const =0
sal_Int16 GetValue() const
OUString GetModuleIdentifier(const Reference< frame::XFrame > &rxFrame)
SfxItemState GetItemState(sal_uInt16 nWhich, bool bSrchInParent=true, const SfxPoolItem **ppItem=nullptr) const
virtual VclPtr< AbstractScDPNumGroupDlg > CreateScDPNumGroupDlg(weld::Window *pParent, const ScDPNumGroupInfo &rInfo)=0
css::uno::Sequence< css::uno::Any > InitAnyPropertySequence(::std::initializer_list< ::std::pair< OUString, css::uno::Any > > vInit)
ScMarkType
States GetSimpleArea() returns for the underlying selection marks, so the caller can react if the res...
bool GetString(SotClipboardFormatId nFormat, OUString &rStr)
SfxBindings & GetBindings()
virtual OUString GetParName() const =0
virtual void SetEdStartValEnabled(bool bFlag)=0
Parameters for conversion.
ScSheetLimits & GetSheetLimits() const
const OUString & GetValue() const
void GetUnprotectedCells(ScRangeList &rRange, SCTAB nTab) const
SC_DLLPUBLIC void SetTabNo(SCTAB nTab, bool bNew=false, bool bExtendSelection=false, bool bSameTabButMoved=false)
const T * GetArg(sal_uInt16 nSlotId) const
void ExecuteTrans(SfxRequest &rReq)
virtual ScPasteFunc GetFormulaCmdBits() const =0
virtual OUString GetDimensionName() const =0
void IncRow(SCROW nDelta=1)
OUString ScResId(const char *pId)
ScMarkType GetSimpleArea(SCCOL &rStartCol, SCROW &rStartRow, SCTAB &rStartTab, SCCOL &rEndCol, SCROW &rEndRow, SCTAB &rEndTab) const
virtual void SetCurPageId(const OString &rName)=0
void ChangeIndent(bool bIncrement)
Context for creating string from an array of formula tokens, used in ScTokenArray::CreateString().
TransliterationFlags getNextMode()
virtual SotClipboardFormatId GetFormat(const TransferableDataHelper &aHelper)=0
ScGridWindow * GetActiveWin()
bool ShrinkToDataArea(SCTAB nTab, SCCOL &rStartCol, SCROW &rStartRow, SCCOL &rEndCol, SCROW &rEndRow) const
Shrink a range to only include data area.
std::unique_ptr< CellShell_Impl > pImpl
sal_uInt16 GetDay() const
virtual bool IsNamedRange() const =0
#define LANGUAGE_CHINESE_SIMPLIFIED
ScDPSaveData * GetSaveData() const
CPPUHELPER_DLLPUBLIC css::uno::Reference< css::uno::XComponentContext > SAL_CALL defaultBootstrap_InitialComponentContext()
void Consolidate(const ScConsolidateParam &rParam)
void AddDays(sal_Int32 nAddDays)
void ReplaceNote(const ScAddress &rPos, const OUString &rNoteText, const OUString *pAuthor, const OUString *pDate)
const ScImportSourceDesc * GetImportSourceDesc() const
void InsertText(const OUString &rNew, bool bSelect=false)
virtual VclPtr< SfxAbstractDialog > CreateCharMapDialog(weld::Window *pParent, const SfxItemSet &rAttr, const css::uno::Reference< css::frame::XFrame > &rFrame)=0
bool IsBlockEmpty(SCTAB nTab, SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, bool bIgnoreNotes=false) const
virtual VclPtr< AbstractScFillSeriesDlg > CreateScFillSeriesDlg(weld::Window *pParent, ScDocument &rDocument, FillDir eFillDir, FillCmd eFillCmd, FillDateCmd eFillDateCmd, const OUString &aStartStr, double fStep, double fMax, SCSIZE nSelectHeight, SCSIZE nSelectWidth, sal_uInt16 nPossDir)=0
const ScTabOpParam & GetData() const
virtual double GetMax() const =0
void ShowMarkedOutlines(bool bRecord=true)
static SC_DLLPUBLIC LanguageType eLnge
void ReplaceConditionalFormat(sal_uLong nOldIndex, std::unique_ptr< ScConditionalFormat > pFormat, SCTAB nTab, const ScRangeList &rRanges)
virtual CreateNameFlags GetFlags() const =0
bool IsMultiMarked() const
bool StartExecuteAsync(const std::function< void(sal_Int32)> &rEndDialogFn)
virtual OUString GetSelectedNamedRange() const =0
void GetArea(SCTAB &rTab, SCCOL &rCol1, SCROW &rRow1, SCCOL &rCol2, SCROW &rRow2) const
SC_DLLPUBLIC bool PasteFromClip(InsertDeleteFlags nFlags, ScDocument *pClipDoc, ScPasteFunc nFunction=ScPasteFunc::NONE, bool bSkipEmpty=false, bool bTranspose=false, bool bAsLink=false, InsCellCmd eMoveMode=INS_NONE, InsertDeleteFlags nUndoExtraFlags=InsertDeleteFlags::NONE, bool bAllowDialogs=false)
virtual FillCmd GetFillCmd() const =0
virtual VclPtr< SfxAbstractTabDialog > CreateScSubTotalDlg(weld::Window *pParent, const SfxItemSet &rArgSet)=0
const css::uno::Reference< css::frame::XFrame > & GetFrameInterface() const
bool GetDataFieldPositionData(const ScAddress &rPos, css::uno::Sequence< css::sheet::DataPilotFieldFilter > &rFilters)
SC_DLLPUBLIC const ScPatternAttr * GetSelectionPattern()
void GetSubTotalParam(ScSubTotalParam &rSubTotalParam) const
ScDBFunc * GetView() const
void SetInputMode(ScInputMode eMode, const OUString *pInitText=nullptr)
virtual void Insert(SotClipboardFormatId nFormat, const OUString &rFormatName)=0
ScAddress GetCurPos() const
void InsertAreaLink(const OUString &rFile, const OUString &rFilter, const OUString &rOptions, const OUString &rSource, const ScRange &rDestRange, sal_uLong nRefresh, bool bFitBlock, bool bApi)
void InsertCurrentTime(SvNumFormatType nCellFmt, const OUString &rUndoStr)
Insert date or time into current cell.
virtual double GetStart() const =0
void SetReturnValue(const SfxPoolItem &)
#define ERRCODE_BASIC_BAD_PARAMETER
bool bReplace
replace existing results
Sequence< beans::PropertyValue > GetCommandProperties(const OUString &rsCommandName, const OUString &rsModuleName)
SC_DLLPUBLIC void FillAuto(FillDir eDir, SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, sal_uLong nCount)
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
sal_uInt16 GetSlot() const
std::unique_ptr< char[]> aBuffer
virtual VclPtr< AbstractScDataPilotSourceTypeDlg > CreateScDataPilotSourceTypeDlg(weld::Window *pParent, bool bEnableExternal)=0
virtual InsCellCmd GetMoveMode()=0
virtual bool IsDatabase() const =0
void ShowNote(bool bShow)
weld::Window * GetFrameWeld() const
const SfxPoolItem & Get(sal_uInt16 nWhich, bool bSrchInParent=true) const
sal_uInt16 GetWhich(sal_uInt16 nSlot, bool bDeep=true) const
static TransliterationFlags GetTransliterationType(sal_uInt16 nSlotID)
void ErrorMessage(const char *pGlobStrId)
constexpr::Color COL_GREEN(0x00, 0x80, 0x00)
void ActivateInputWindow(const OUString *pStr=nullptr, bool bMatrix=false)
const ::std::vector< Color > ImpSvNumberformatScan::StandardColor COL_WHITE
static SC_DLLPUBLIC ScAbstractDialogFactory * Create()
const ::std::vector< Color > ImpSvNumberformatScan::StandardColor COL_BROWN
SfxDispatcher & GetDispatcher()
Dates, times, datetime values.
Item2Range GetItemSurrogates(sal_uInt16 nWhich) const
bool bIncludePattern
sort formats
void SetChildWindow(sal_uInt16 nId, bool bVisible, bool bSetFocus=true)
const T & Put(std::unique_ptr< T > xItem, sal_uInt16 nWhich=0)
virtual void GetValues(ScImportSourceDesc &rDesc)=0
static SC_DLLPUBLIC ScTransferObj * GetOwnClipboard(const css::uno::Reference< css::datatransfer::XTransferable2 > &)
bool HasItem(sal_uInt16 nWhich, const SfxPoolItem **ppItem=nullptr) const
virtual void EnterListAction(const OUString &rComment, const OUString &rRepeatComment, sal_uInt16 nId, ViewShellId nViewShellId)
void NumGroupDataPilot(const ScDPNumGroupInfo &rInfo)
SC_DLLPUBLIC void FillSimple(FillDir eDir)
constexpr TypedWhichId< ScCondFormatItem > ATTR_CONDITIONAL(154)
virtual VclPtr< AbstractScInsertCellDlg > CreateScInsertCellDlg(weld::Window *pParent, bool bDisallowCellMove)=0
const ::std::vector< Color > ImpSvNumberformatScan::StandardColor COL_YELLOW
Sequence< sal_Int8 > aSeq
const ScDocument & GetDocument() const
const ScSolveParam & GetData() const
void SetDataPilotDetails(bool bShow, const OUString *pNewDimensionName=nullptr)
virtual void SetCellShiftDisabled(CellShiftDisabledFlags nDisable)=0
virtual VclPtr< AbstractScCondFormatManagerDlg > CreateScCondFormatMgrDlg(weld::Window *pParent, ScDocument &rDoc, const ScConditionalFormatList *pFormatList)=0
void SetSelection(const ESelection &rNewSel)
bool HasSelectionForDrillDown(css::sheet::DataPilotFieldOrientation &rOrientation)
virtual SfxInterface * GetInterface() const
RotateTransliteration m_aRotateCase
void GetMultiArea(ScRangeListRef &rRange) const
sal_uInt32 GetValue() const
void SetConditionalFormatList(ScConditionalFormatList *pList, SCTAB nTab)
Sets or replaces the conditional format list of a table.
const OUString & GetName() const
SvxLinkInsertMode GetInsertMode() const
void AppendItem(const SfxPoolItem &)
#define LANGUAGE_CHINESE_TRADITIONAL
void DoHangulHanjaConversion()
virtual FillDir GetFillDir() const =0
SVXCORE_DLLPUBLIC MSO_SPT Get(const OUString &)
ESelection GetSelection() const
ScInputHandler * GetInputHdl(ScTabViewShell *pViewSh=nullptr, bool bUseRef=true)
Input-Handler.
SC_DLLPUBLIC ScRefFlags Parse(const OUString &, const ScDocument &, const Details &rDetails=detailsOOOa1, ExternalInfo *pExtInfo=nullptr, const css::uno::Sequence< css::sheet::ExternalLinkInfo > *pExternalLinks=nullptr, sal_Int32 *pSheetEndPos=nullptr, const OUString *pErrRef=nullptr)
ScDBData * GetAnonymousDBData()
const SfxPoolItem * Execute(sal_uInt16 nSlot, SfxCallMode nCall=SfxCallMode::SLOT, const SfxPoolItem **pArgs=nullptr, sal_uInt16 nModi=0, const SfxPoolItem **pInternalArgs=nullptr)
virtual ScDPNumGroupInfo GetGroupInfo() const =0
void RemoveOutline(bool bColumns, bool bRecord=true)
void InsertSpecialChar(const OUString &rStr, const vcl::Font &rFont)
bool HasSubTotalCells(const ScRange &rRange)
SC_DLLPUBLIC void SetRangeName(const OUString &rName)
bool GetTableSelect(SCTAB nTab) const
virtual void SaveParameters()=0
void PasteFromClipboard(ScViewData &rViewData, ScTabViewShell *pTabViewShell, bool bShowDialog)
void TestRemoveOutline(bool &rCol, bool &rRow)
const SfxPoolItem * GetItem(sal_uInt16 nWhich, bool bSearchInParent=true) const
const css::uno::Reference< css::datatransfer::XTransferable > & GetTransferable() const
static std::vector< OUString > GetRegisteredSources()
virtual OUString GetParSource() const =0
This class contains authoritative information on the internal reference used as the data source for d...
SC_DLLPUBLIC void CellContentChanged()
bool IsClipboardSource() const
virtual OUString GetParPass() const =0
Strings (and string results if InsertDeleteFlags::FORMULA is not set).
static weld::MessageDialog * CreateMessageDialog(weld::Widget *pParent, VclMessageType eMessageType, VclButtonsType eButtonType, const OUString &rPrimaryMessage, bool bMobile=false)
SC_DLLPUBLIC void GetCellType(SCCOL nCol, SCROW nRow, SCTAB nTab, CellType &rCellType) const
virtual std::vector< OUString > GetSelectedNames() const =0
#define SCITEM_CONSOLIDATEDATA
rtl_TextEncoding GetCharSet() const
virtual void DisableObjects()=0
virtual OUString GetServiceName() const =0
bool InsertCells(InsCellCmd eCmd, bool bRecord=true, bool bPartOfPaste=false)
void EnterData(SCCOL nCol, SCROW nRow, SCTAB nTab, const OUString &rString, const EditTextObject *pData=nullptr)
virtual InsertDeleteFlags GetInsContentsCmdBits() const =0
ViewShellId GetViewShellId() const override
void SetMarkData(const ScMarkData &rNew)
void TabOp(const ScTabOpParam &rParam, bool bRecord=true)
SC_DLLPUBLIC void GetAllNoteEntries(std::vector< sc::NoteEntry > &rNotes) const
static sal_uInt16 GetChildWindowId()