22#include <config_options.h>
33#include <com/sun/star/table/XTableChartsSupplier.hpp>
34#include <com/sun/star/table/XTablePivotChartsSupplier.hpp>
35#include <com/sun/star/chart/XChartDataArray.hpp>
36#include <com/sun/star/text/XTextFieldsSupplier.hpp>
37#include <com/sun/star/drawing/XDrawPageSupplier.hpp>
38#include <com/sun/star/sheet/XSheetCellRange.hpp>
39#include <com/sun/star/sheet/XFormulaQuery.hpp>
40#include <com/sun/star/sheet/XCellRangeAddressable.hpp>
41#include <com/sun/star/sheet/XSheetOperation.hpp>
42#include <com/sun/star/sheet/XSheetCellRangeContainer.hpp>
43#include <com/sun/star/sheet/XCellFormatRangesSupplier.hpp>
44#include <com/sun/star/sheet/XUniqueCellFormatRangesSupplier.hpp>
45#include <com/sun/star/sheet/XCellRangesQuery.hpp>
46#include <com/sun/star/sheet/XSheetFilterableEx.hpp>
47#include <com/sun/star/sheet/XSpreadsheet.hpp>
48#include <com/sun/star/sheet/XSheetPageBreak.hpp>
49#include <com/sun/star/sheet/XCellRangeMovement.hpp>
50#include <com/sun/star/text/XText.hpp>
51#include <com/sun/star/sheet/XPrintAreas.hpp>
52#include <com/sun/star/sheet/XSheetLinkable.hpp>
53#include <com/sun/star/sheet/XSubTotalCalculatable.hpp>
54#include <com/sun/star/sheet/XArrayFormulaRange.hpp>
55#include <com/sun/star/sheet/XCellRangeData.hpp>
56#include <com/sun/star/sheet/XCellRangeFormula.hpp>
57#include <com/sun/star/sheet/XCellSeries.hpp>
58#include <com/sun/star/sheet/XMultipleOperation.hpp>
59#include <com/sun/star/sheet/XFormulaTokens.hpp>
60#include <com/sun/star/sheet/XArrayFormulaTokens.hpp>
61#include <com/sun/star/sheet/XCellAddressable.hpp>
62#include <com/sun/star/util/XReplaceable.hpp>
63#include <com/sun/star/util/XIndent.hpp>
64#include <com/sun/star/lang/XServiceInfo.hpp>
65#include <com/sun/star/container/XNameContainer.hpp>
66#include <com/sun/star/util/XMergeable.hpp>
67#include <com/sun/star/table/XAutoFormattable.hpp>
68#include <com/sun/star/util/XSortable.hpp>
69#include <com/sun/star/util/XImportable.hpp>
70#include <com/sun/star/table/XColumnRowRange.hpp>
71#include <com/sun/star/table/XCell2.hpp>
72#include <com/sun/star/sheet/XDataPilotTablesSupplier.hpp>
73#include <com/sun/star/sheet/XSheetAnnotationAnchor.hpp>
74#include <com/sun/star/sheet/XScenariosSupplier.hpp>
75#include <com/sun/star/sheet/XSheetAnnotationsSupplier.hpp>
76#include <com/sun/star/sheet/XSheetAuditing.hpp>
77#include <com/sun/star/sheet/XSheetOutline.hpp>
78#include <com/sun/star/util/XProtectable.hpp>
79#include <com/sun/star/sheet/XScenario.hpp>
80#include <com/sun/star/sheet/XScenarioEnhanced.hpp>
81#include <com/sun/star/util/XModifyBroadcaster.hpp>
82#include <com/sun/star/beans/XPropertyState.hpp>
83#include <com/sun/star/beans/XMultiPropertySet.hpp>
84#include <com/sun/star/document/XActionLockable.hpp>
85#include <com/sun/star/beans/XTolerantMultiPropertySet.hpp>
86#include <com/sun/star/sheet/XExternalSheetName.hpp>
87#include <com/sun/star/document/XEventsSupplier.hpp>
118namespace editeng {
class SvxBorderLine; }
143 static void FillBorderLine( css::table::BorderLine& rStruct, const ::editeng::SvxBorderLine* pLine );
144 static void FillBorderLine( css::table::BorderLine2& rStruct, const ::editeng::SvxBorderLine* pLine );
154 class ScVbaCellRangeAccess;
158 public cppu::WeakImplHelper<
159 css::beans::XPropertySet,
160 css::beans::XMultiPropertySet,
161 css::beans::XPropertyState,
162 css::sheet::XSheetOperation,
163 css::chart::XChartDataArray,
165 css::sheet::XCellRangesQuery,
166 css::sheet::XFormulaQuery,
167 css::util::XReplaceable,
168 css::util::XModifyBroadcaster,
169 css::lang::XServiceInfo,
170 css::beans::XTolerantMultiPropertySet>,
180 std::unique_ptr<ScLinkListener> pValueListener;
181 std::unique_ptr<ScPatternAttr> pCurrentFlat;
182 std::unique_ptr<ScPatternAttr> pCurrentDeep;
183 std::optional<SfxItemSet> moCurrentDataSet;
184 std::optional<SfxItemSet> moNoDfltCurrentDataSet;
185 std::unique_ptr<ScMarkData> pMarkData;
191 bool bGotDataChangedHint;
197 void PaintGridRanges_Impl();
198 ScRangeListRef GetLimitedChartRanges_Impl( sal_Int32 nDataColumns, sal_Int32 nDataRows )
const;
199 void ForceChartListener_Impl();
200 std::unique_ptr<ScMemChart> CreateMemChart_Impl()
const;
204 SfxItemSet* GetCurrentDataSet(
bool bNoDflt =
false);
205 void ForgetMarkData();
206 void ForgetCurrentAttrs();
208 css::uno::Reference<css::sheet::XSheetCellRanges>
209 QueryDifferences_Impl(
const css::table::CellAddress& aCompare,
211 css::uno::Reference<css::uno::XInterface>
212 Find_Impl(
const css::uno::Reference<css::util::XSearchDescriptor>& xDesc,
220 css::beans::PropertyState GetOnePropertyState(
228 const css::uno::Any& aValue );
233 virtual ~ScCellRangesBase()
override;
236 virtual void RefChanged();
239 ScDocShell* GetDocShell()
const {
return pDocShell; }
241 const ScRangeList& GetRangeList()
const {
return aRanges; }
242 void AddRange(
const ScRange& rRange,
const bool bMergeRanges);
247 void SetNewRange(
const ScRange& rNew);
250 void SetCursorOnly(
bool bSet);
251 bool IsCursorOnly()
const {
return bCursorOnly; }
254 virtual double SAL_CALL computeFunction( css::sheet::GeneralFunction nFunction )
override;
255 virtual void SAL_CALL clearContents( sal_Int32 nContentFlags )
override;
258 virtual css::uno::Reference< css::beans::XPropertySetInfo >
259 SAL_CALL getPropertySetInfo()
override;
261 const css::uno::Any& aValue )
override;
263 const OUString& PropertyName )
override;
264 virtual void SAL_CALL addPropertyChangeListener(
const OUString& aPropertyName,
265 const css::uno::Reference< css::beans::XPropertyChangeListener >& xListener )
override;
266 virtual void SAL_CALL removePropertyChangeListener(
const OUString& aPropertyName,
267 const css::uno::Reference< css::beans::XPropertyChangeListener >& aListener )
override;
268 virtual void SAL_CALL addVetoableChangeListener(
const OUString& PropertyName,
269 const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener )
override;
270 virtual void SAL_CALL removeVetoableChangeListener(
const OUString& PropertyName,
271 const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener )
override;
274 virtual void SAL_CALL setPropertyValues(
const css::uno::Sequence< OUString >& aPropertyNames,
275 const css::uno::Sequence< css::uno::Any >& aValues )
override;
276 virtual css::uno::Sequence< css::uno::Any > SAL_CALL
277 getPropertyValues(
const css::uno::Sequence< OUString >& aPropertyNames )
override;
278 virtual void SAL_CALL addPropertiesChangeListener(
const css::uno::Sequence< OUString >& aPropertyNames,
279 const css::uno::Reference< css::beans::XPropertiesChangeListener >& xListener )
override;
280 virtual void SAL_CALL removePropertiesChangeListener(
const css::uno::Reference< css::beans::XPropertiesChangeListener >& xListener )
override;
281 virtual void SAL_CALL firePropertiesChangeEvent(
const css::uno::Sequence< OUString >& aPropertyNames,
282 const css::uno::Reference< css::beans::XPropertiesChangeListener >& xListener )
override;
285 virtual css::uno::Sequence< css::beans::SetPropertyTolerantFailed > SAL_CALL
286 setPropertyValuesTolerant(
const css::uno::Sequence< OUString >& aPropertyNames,
287 const css::uno::Sequence< css::uno::Any >& aValues )
override;
288 virtual css::uno::Sequence< css::beans::GetPropertyTolerantResult > SAL_CALL
289 getPropertyValuesTolerant(
const css::uno::Sequence< OUString >& aPropertyNames )
override;
290 virtual css::uno::Sequence< css::beans::GetDirectPropertyTolerantResult > SAL_CALL
291 getDirectPropertyValuesTolerant(
const css::uno::Sequence< OUString >& aPropertyNames )
override;
294 virtual css::beans::PropertyState SAL_CALL getPropertyState(
295 const OUString& PropertyName )
override;
296 virtual css::uno::Sequence< css::beans::PropertyState > SAL_CALL
297 getPropertyStates(
const css::uno::Sequence<
298 OUString >& aPropertyName )
override;
299 virtual void SAL_CALL setPropertyToDefault(
const OUString& PropertyName )
override;
300 virtual css::uno::Any SAL_CALL getPropertyDefault(
301 const OUString& aPropertyName )
override;
304 virtual void SAL_CALL decrementIndent()
override;
305 virtual void SAL_CALL incrementIndent()
override;
308 virtual void SAL_CALL addChartDataChangeEventListener(
309 const css::uno::Reference< css::chart::XChartDataChangeEventListener >& aListener )
override;
310 virtual void SAL_CALL removeChartDataChangeEventListener(
const css::uno::Reference<
311 css::chart::XChartDataChangeEventListener >& aListener )
override;
312 virtual double SAL_CALL getNotANumber()
override;
313 virtual sal_Bool SAL_CALL isNotANumber(
double nNumber )
override;
316 virtual css::uno::Sequence< css::uno::Sequence< double > > SAL_CALL
318 virtual void SAL_CALL setData(
const css::uno::Sequence< css::uno::Sequence< double > >& aData )
override;
319 virtual css::uno::Sequence< OUString > SAL_CALL getRowDescriptions()
override;
320 virtual void SAL_CALL setRowDescriptions(
const css::uno::Sequence< OUString >& aRowDescriptions )
override;
321 virtual css::uno::Sequence< OUString > SAL_CALL getColumnDescriptions()
override;
322 virtual void SAL_CALL setColumnDescriptions(
const css::uno::Sequence< OUString >& aColumnDescriptions )
override;
325 virtual css::uno::Reference< css::sheet::XSheetCellRanges > SAL_CALL
326 queryVisibleCells()
override;
327 virtual css::uno::Reference< css::sheet::XSheetCellRanges > SAL_CALL
328 queryEmptyCells()
override;
329 virtual css::uno::Reference< css::sheet::XSheetCellRanges > SAL_CALL
330 queryContentCells( sal_Int16 nContentFlags )
override;
331 virtual css::uno::Reference< css::sheet::XSheetCellRanges > SAL_CALL
332 queryFormulaCells( sal_Int32 nResultFlags )
override;
333 virtual css::uno::Reference< css::sheet::XSheetCellRanges > SAL_CALL
334 queryColumnDifferences(
335 const css::table::CellAddress& aCompare )
override;
336 virtual css::uno::Reference< css::sheet::XSheetCellRanges > SAL_CALL
338 const css::table::CellAddress& aCompare )
override;
339 virtual css::uno::Reference< css::sheet::XSheetCellRanges > SAL_CALL
341 const css::table::CellRangeAddress& aRange )
override;
344 virtual css::uno::Reference< css::sheet::XSheetCellRanges > SAL_CALL
345 queryDependents(
sal_Bool bRecursive )
override;
346 virtual css::uno::Reference< css::sheet::XSheetCellRanges > SAL_CALL
347 queryPrecedents(
sal_Bool bRecursive )
override;
350 virtual css::uno::Reference< css::util::XSearchDescriptor > SAL_CALL
351 createSearchDescriptor()
override;
352 virtual css::uno::Reference< css::container::XIndexAccess > SAL_CALL
353 findAll(
const css::uno::Reference< css::util::XSearchDescriptor >& xDesc )
override;
354 virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
355 findFirst(
const css::uno::Reference< css::util::XSearchDescriptor >& xDesc )
override;
356 virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
357 findNext(
const css::uno::Reference< css::uno::XInterface >& xStartAt,
358 const css::uno::Reference< css::util::XSearchDescriptor >& xDesc )
override;
361 virtual css::uno::Reference< css::util::XReplaceDescriptor > SAL_CALL
362 createReplaceDescriptor()
override;
363 virtual sal_Int32 SAL_CALL replaceAll(
const css::uno::Reference< css::util::XSearchDescriptor >& xDesc )
override;
366 virtual void SAL_CALL addModifyListener(
const css::uno::Reference< css::util::XModifyListener >& aListener )
override;
367 virtual void SAL_CALL removeModifyListener(
const css::uno::Reference< css::util::XModifyListener >& aListener )
override;
375class UNLESS_MERGELIBS(SC_DLLPUBLIC) ScCellRangesObj final :
public ScCellRangesBase,
376 public css::sheet::XSheetCellRangeContainer,
377 public css::container::XNameContainer,
378 public css::container::XEnumerationAccess
386 const ScRange& GetRange()
const {
return aRange; }
389 std::vector<ScNamedEntry> m_aNamedEntries;
396 virtual ~ScCellRangesObj()
override;
398 virtual css::uno::Any SAL_CALL
queryInterface(
const css::uno::Type & rType )
override;
400 virtual void SAL_CALL acquire() noexcept override;
401 virtual
void SAL_CALL release() noexcept override;
403 virtual
void RefChanged() override;
406 virtual css::
uno::Reference< css::container::XEnumerationAccess > SAL_CALL
408 virtual OUString SAL_CALL getRangeAddressesAsString() override;
409 virtual css::
uno::Sequence< css::table::CellRangeAddress > SAL_CALL
410 getRangeAddresses() override;
413 virtual
void SAL_CALL addRangeAddress( const css::table::CellRangeAddress& rRange,
415 virtual
void SAL_CALL removeRangeAddress( const css::table::CellRangeAddress& rRange ) override;
416 virtual
void SAL_CALL addRangeAddresses( const css::
uno::Sequence<
417 css::table::CellRangeAddress >& rRanges,
419 virtual
void SAL_CALL removeRangeAddresses( const css::
uno::Sequence<
420 css::table::CellRangeAddress >& rRanges ) override;
423 virtual
void SAL_CALL insertByName( const OUString& aName,
424 const css::
uno::Any& aElement ) override;
425 virtual
void SAL_CALL removeByName( const OUString& Name ) override;
428 virtual
void SAL_CALL replaceByName( const OUString& aName,
429 const css::
uno::Any& aElement ) override;
432 virtual css::
uno::Any SAL_CALL getByName( const OUString& aName ) override;
433 virtual css::
uno::Sequence< OUString > SAL_CALL getElementNames() override;
434 virtual
sal_Bool SAL_CALL hasByName( const OUString& aName ) override;
437 virtual sal_Int32 SAL_CALL getCount() override;
438 virtual css::
uno::Any SAL_CALL getByIndex( sal_Int32
Index ) override;
441 virtual css::
uno::
Type SAL_CALL getElementType() override;
442 virtual
sal_Bool SAL_CALL hasElements() override;
445 virtual css::
uno::Reference< css::container::XEnumeration > SAL_CALL
446 createEnumeration() override;
449 virtual OUString SAL_CALL getImplementationName() override;
450 virtual
sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
451 virtual css::
uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
454 virtual css::
uno::Sequence< css::
uno::
Type > SAL_CALL getTypes() override;
455 virtual css::
uno::Sequence<
sal_Int8 > SAL_CALL getImplementationId() override;
459 public css::sheet::XCellRangeAddressable,
460 public css::sheet::XSheetCellRange,
461 public css::sheet::XArrayFormulaRange,
462 public css::sheet::XArrayFormulaTokens,
463 public css::sheet::XCellRangeData,
464 public css::sheet::XCellRangeFormula,
465 public css::sheet::XMultipleOperation,
466 public css::util::XMergeable,
467 public css::sheet::XCellSeries,
468 public css::table::XAutoFormattable,
469 public css::util::XSortable,
470 public css::sheet::XSheetFilterableEx,
471 public css::sheet::XSubTotalCalculatable,
472 public css::util::XImportable,
473 public css::sheet::XCellFormatRangesSupplier,
474 public css::sheet::XUniqueCellFormatRangesSupplier,
475 public css::table::XColumnRowRange
485 css::uno::Any& )
override;
487 const css::uno::Any& aValue )
override;
491 css::uno::Reference< css::table::XCell >
492 GetCellByPosition_Impl( sal_Int32 nColumn, sal_Int32 nRow );
495 void SetArrayFormula_Impl(
const OUString& rFormula,
503 static css::uno::Reference<css::table::XCellRange>
507 const css::uno::Type & rType )
override;
508 virtual void SAL_CALL acquire() noexcept override;
509 virtual
void SAL_CALL release() noexcept override;
511 virtual
void RefChanged() override;
514 virtual css::table::CellRangeAddress SAL_CALL getRangeAddress() override;
517 virtual css::
uno::Reference< css::sheet::XSpreadsheet > SAL_CALL
518 getSpreadsheet() override;
521 virtual OUString SAL_CALL getArrayFormula() override;
522 virtual
void SAL_CALL setArrayFormula( const OUString& aFormula ) override;
525 virtual css::
uno::Sequence< css::sheet::FormulaToken > SAL_CALL getArrayTokens() override;
526 virtual
void SAL_CALL setArrayTokens( const css::
uno::Sequence<
527 css::sheet::FormulaToken >& aTokens ) override;
530 virtual css::
uno::Sequence< css::
uno::Sequence< css::
uno::Any > > SAL_CALL getDataArray() override;
531 virtual
void SAL_CALL setDataArray( const css::
uno::Sequence< css::
uno::Sequence< css::
uno::Any > >& aArray ) override;
534 virtual css::
uno::Sequence< css::
uno::Sequence<
535 OUString > > SAL_CALL getFormulaArray() override;
536 virtual
void SAL_CALL setFormulaArray( const css::
uno::Sequence< css::
uno::Sequence< OUString > >& aArray ) override;
539 virtual
void SAL_CALL setTableOperation(
540 const css::table::CellRangeAddress& aFormulaRange,
541 css::sheet::TableOperationMode nMode,
542 const css::table::CellAddress& aColumnCell,
543 const css::table::CellAddress& aRowCell ) override;
546 virtual
void SAL_CALL merge(
sal_Bool bMerge ) override;
547 virtual
sal_Bool SAL_CALL getIsMerged() override;
550 virtual
void SAL_CALL fillSeries( css::sheet::FillDirection nFillDirection,
551 css::sheet::FillMode nFillMode,
552 css::sheet::FillDateMode nFillDateMode,
553 double fStep,
double fEndValue ) override;
554 virtual
void SAL_CALL fillAuto( css::sheet::FillDirection nFillDirection,
555 sal_Int32 nSourceCount ) override;
558 virtual
void SAL_CALL autoFormat( const OUString& aName ) override;
561 virtual css::
uno::Sequence< css::beans::PropertyValue > SAL_CALL
562 createSortDescriptor() override;
563 virtual
void SAL_CALL sort( const css::
uno::Sequence<
564 css::beans::PropertyValue >& xDescriptor ) override;
567 virtual css::
uno::Reference< css::sheet::XSheetFilterDescriptor > SAL_CALL
568 createFilterDescriptorByObject( const css::
uno::Reference<
569 css::sheet::XSheetFilterable >& xObject ) override;
572 virtual css::
uno::Reference< css::sheet::XSheetFilterDescriptor > SAL_CALL
573 createFilterDescriptor(
sal_Bool bEmpty ) override;
574 virtual
void SAL_CALL
filter( const css::
uno::Reference<
575 css::sheet::XSheetFilterDescriptor >& xDescriptor ) override;
578 virtual css::
uno::Reference< css::sheet::XSubTotalDescriptor > SAL_CALL
579 createSubTotalDescriptor(
sal_Bool bEmpty ) override;
580 virtual
void SAL_CALL applySubTotals(const css::
uno::Reference< css::sheet::XSubTotalDescriptor >& xDescriptor,
582 virtual
void SAL_CALL removeSubTotals() override;
585 virtual css::
uno::Sequence< css::beans::PropertyValue > SAL_CALL
586 createImportDescriptor(
sal_Bool bEmpty ) override;
587 virtual
void SAL_CALL doImport( const css::
uno::Sequence< css::beans::PropertyValue >& aDescriptor ) override;
590 virtual css::
uno::Reference< css::container::XIndexAccess > SAL_CALL
591 getCellFormatRanges() override;
594 virtual css::
uno::Reference< css::container::XIndexAccess > SAL_CALL
595 getUniqueCellFormatRanges() override;
598 virtual css::
uno::Reference< css::table::XTableColumns > SAL_CALL
599 getColumns() override;
600 virtual css::
uno::Reference< css::table::XTableRows > SAL_CALL
604 virtual css::
uno::Reference< css::table::XCell > SAL_CALL
605 getCellByPosition( sal_Int32 nColumn, sal_Int32 nRow ) override;
606 virtual css::
uno::Reference< css::table::XCellRange > SAL_CALL
607 getCellRangeByPosition( sal_Int32 nLeft, sal_Int32 nTop,
608 sal_Int32 nRight, sal_Int32 nBottom ) override;
609 virtual css::
uno::Reference< css::table::XCellRange > SAL_CALL
610 getCellRangeByName( const OUString& aRange ) override;
612 css::
uno::Reference< css::table::XCellRange >
613 getCellRangeByName( const OUString& aRange, const
ScAddress::Details& rDetails );
616 virtual css::
uno::Reference< css::beans::XPropertySetInfo >
617 SAL_CALL getPropertySetInfo() override;
620 virtual OUString SAL_CALL getImplementationName() override;
621 virtual
sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
622 virtual css::
uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
625 virtual css::
uno::Sequence< css::
uno::
Type > SAL_CALL getTypes() override;
626 virtual css::
uno::Sequence<
sal_Int8 > SAL_CALL getImplementationId() override;
632 public css::text::XText,
633 public css::container::XEnumerationAccess,
634 public css::table::XCell2,
635 public css::sheet::XFormulaTokens,
636 public css::sheet::XCellAddressable,
637 public css::sheet::XSheetAnnotationAnchor,
638 public css::text::XTextFieldsSupplier,
639 public css::document::XActionLockable
648 OUString GetInputString_Impl(
bool bEnglish)
const;
649 OUString GetOutputString_Impl()
const;
650 void SetString_Impl(
const OUString& rString,
bool bInterpret,
bool bEnglish);
651 double GetValue_Impl()
const;
652 void SetValue_Impl(
double fValue);
653 css::table::CellContentType GetContentType_Impl();
654 sal_Int32 GetResultType_Impl()
const;
658 css::uno::Any& )
override;
660 const css::uno::Any& aValue )
override;
669 virtual css::uno::Any SAL_CALL
queryInterface(
const css::uno::Type & rType )
override;
670 virtual void SAL_CALL acquire() noexcept override;
671 virtual
void SAL_CALL release() noexcept override;
673 virtual
void RefChanged() override;
679 const
ScAddress& GetPosition()
const {
return aCellPos; }
681 void InputEnglishString(
const OUString& rText );
684 virtual void SAL_CALL insertTextContent(
const css::uno::Reference< css::text::XTextRange >& xRange,
685 const css::uno::Reference< css::text::XTextContent >& xContent,
687 virtual void SAL_CALL removeTextContent(
const css::uno::Reference< css::text::XTextContent >& xContent )
override;
690 virtual css::uno::Reference< css::text::XTextCursor > SAL_CALL
691 createTextCursor()
override;
692 virtual css::uno::Reference< css::text::XTextCursor > SAL_CALL
693 createTextCursorByRange(
const css::uno::Reference< css::text::XTextRange >& aTextPosition )
override;
694 virtual void SAL_CALL insertString(
const css::uno::Reference< css::text::XTextRange >& xRange,
695 const OUString& aString,
sal_Bool bAbsorb )
override;
696 virtual void SAL_CALL insertControlCharacter(
const css::uno::Reference< css::text::XTextRange >& xRange,
697 sal_Int16 nControlCharacter,
sal_Bool bAbsorb )
override;
700 virtual css::uno::Reference< css::text::XText > SAL_CALL
702 virtual css::uno::Reference< css::text::XTextRange > SAL_CALL
704 virtual css::uno::Reference< css::text::XTextRange > SAL_CALL
706 virtual OUString SAL_CALL
getString()
override;
707 virtual void SAL_CALL setString(
const OUString& aString )
override;
710 virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL
711 createEnumeration()
override;
714 virtual css::uno::Type SAL_CALL getElementType()
override;
715 virtual sal_Bool SAL_CALL hasElements()
override;
718 virtual OUString SAL_CALL getFormula()
override;
719 virtual void SAL_CALL setFormula(
const OUString& aFormula )
override;
720 virtual void SAL_CALL setFormulaResult(
double nValue )
override;
721 virtual void SAL_CALL setFormulaString(
const OUString& aFormula )
override;
722 virtual double SAL_CALL
getValue()
override;
723 virtual void SAL_CALL
setValue(
double nValue )
override;
724 virtual css::table::CellContentType SAL_CALL
getType()
override;
725 virtual sal_Int32 SAL_CALL getError()
override;
728 virtual css::uno::Sequence< css::sheet::FormulaToken > SAL_CALL getTokens()
override;
729 virtual void SAL_CALL setTokens(
const css::uno::Sequence< css::sheet::FormulaToken >& aTokens )
override;
732 virtual css::table::CellAddress SAL_CALL getCellAddress()
override;
735 virtual css::uno::Reference< css::sheet::XSheetAnnotation > SAL_CALL
736 getAnnotation()
override;
739 virtual css::uno::Reference< css::container::XEnumerationAccess > SAL_CALL
740 getTextFields()
override;
741 virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL
742 getTextFieldMasters()
override;
745 virtual css::uno::Reference< css::beans::XPropertySetInfo >
746 SAL_CALL getPropertySetInfo()
override;
754 virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes()
override;
755 virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId()
override;
758 virtual sal_Bool SAL_CALL isActionLocked()
override;
759 virtual void SAL_CALL addActionLock()
override;
760 virtual void SAL_CALL removeActionLock()
override;
761 virtual void SAL_CALL setActionLocks( sal_Int16 nLock )
override;
762 virtual sal_Int16 SAL_CALL resetActionLocks()
override;
766 public css::sheet::XSpreadsheet,
767 public css::container::XNamed,
768 public css::sheet::XSheetPageBreak,
769 public css::sheet::XCellRangeMovement,
770 public css::table::XTableChartsSupplier,
771 public css::table::XTablePivotChartsSupplier,
772 public css::sheet::XDataPilotTablesSupplier,
773 public css::sheet::XScenariosSupplier,
774 public css::sheet::XSheetAnnotationsSupplier,
775 public css::drawing::XDrawPageSupplier,
776 public css::sheet::XPrintAreas,
777 public css::sheet::XSheetLinkable,
778 public css::sheet::XSheetAuditing,
779 public css::sheet::XSheetOutline,
780 public css::util::XProtectable,
781 public css::sheet::XScenario,
782 public css::sheet::XScenarioEnhanced,
783 public css::sheet::XExternalSheetName,
784 public css::document::XEventsSupplier
791 SCTAB GetTab_Impl()
const;
792 void PrintAreaUndo_Impl( std::unique_ptr<ScPrintRangeSaver> pOldRanges );
796 css::uno::Any& )
override;
798 const css::uno::Any& aValue )
override;
806 virtual css::uno::Any SAL_CALL
queryInterface(
const css::uno::Type & rType )
override;
807 virtual void SAL_CALL acquire() noexcept override;
808 virtual
void SAL_CALL release() noexcept override;
811 virtual css::
uno::Reference< css::sheet::XSheetCellCursor >
812 SAL_CALL createCursor() override;
813 virtual css::
uno::Reference< css::sheet::XSheetCellCursor > SAL_CALL
814 createCursorByRange( const css::
uno::Reference<
815 css::sheet::XSheetCellRange >& aRange ) override;
818 virtual css::
uno::Reference< css::sheet::XSpreadsheet > SAL_CALL
819 getSpreadsheet() override;
822 virtual css::
uno::Reference< css::table::XCell > SAL_CALL
824 virtual css::
uno::Reference< css::table::XCellRange > SAL_CALL
826 sal_Int32 nRight, sal_Int32 nBottom ) override;
828 virtual css::
uno::Reference< css::table::XCellRange > SAL_CALL
829 getCellRangeByName( const OUString& aRange ) override;
832 virtual OUString SAL_CALL getName() override;
833 virtual
void SAL_CALL setName( const OUString& aName ) override;
836 virtual css::
uno::Sequence< css::sheet::TablePageBreakData > SAL_CALL
837 getColumnPageBreaks() override;
838 virtual css::
uno::Sequence< css::sheet::TablePageBreakData > SAL_CALL
839 getRowPageBreaks() override;
840 virtual
void SAL_CALL removeAllManualPageBreaks() override;
843 virtual
void SAL_CALL insertCells( const css::table::CellRangeAddress& aRange,
844 css::sheet::CellInsertMode nMode ) override;
845 virtual
void SAL_CALL removeRange( const css::table::CellRangeAddress& aRange,
846 css::sheet::CellDeleteMode nMode ) override;
847 virtual
void SAL_CALL moveRange( const css::table::CellAddress& aDestination,
848 const css::table::CellRangeAddress& aSource ) override;
849 virtual
void SAL_CALL copyRange( const css::table::CellAddress& aDestination,
850 const css::table::CellRangeAddress& aSource ) override;
853 virtual css::
uno::Reference< css::table::XTableCharts > SAL_CALL
854 getCharts() override;
857 virtual css::
uno::Reference<css::table::XTablePivotCharts> SAL_CALL
858 getPivotCharts() override;
861 virtual css::
uno::Reference< css::sheet::XDataPilotTables > SAL_CALL
862 getDataPilotTables() override;
865 virtual css::
uno::Reference< css::sheet::XScenarios > SAL_CALL
866 getScenarios() override;
869 virtual css::
uno::Reference< css::sheet::XSheetAnnotations > SAL_CALL
870 getAnnotations() override;
873 virtual css::
uno::Reference< css::
drawing::XDrawPage > SAL_CALL
874 getDrawPage() override;
877 virtual css::
uno::Sequence< css::table::CellRangeAddress > SAL_CALL
878 getPrintAreas() override;
879 virtual
void SAL_CALL setPrintAreas( const css::
uno::Sequence<
880 css::table::CellRangeAddress >& aPrintAreas ) override;
881 virtual
sal_Bool SAL_CALL getPrintTitleColumns() override;
882 virtual
void SAL_CALL setPrintTitleColumns(
sal_Bool bPrintTitleColumns ) override;
883 virtual css::table::CellRangeAddress SAL_CALL getTitleColumns() override;
884 virtual
void SAL_CALL setTitleColumns(
885 const css::table::CellRangeAddress& aTitleColumns ) override;
886 virtual
sal_Bool SAL_CALL getPrintTitleRows() override;
887 virtual
void SAL_CALL setPrintTitleRows(
sal_Bool bPrintTitleRows ) override;
888 virtual css::table::CellRangeAddress SAL_CALL getTitleRows() override;
889 virtual
void SAL_CALL setTitleRows(
890 const css::table::CellRangeAddress& aTitleRows ) override;
893 virtual css::sheet::SheetLinkMode SAL_CALL getLinkMode() override;
894 virtual
void SAL_CALL setLinkMode( css::sheet::SheetLinkMode nLinkMode ) override;
895 virtual OUString SAL_CALL getLinkUrl() override;
896 virtual
void SAL_CALL setLinkUrl( const OUString& aLinkUrl ) override;
897 virtual OUString SAL_CALL getLinkSheetName() override;
898 virtual
void SAL_CALL setLinkSheetName( const OUString& aLinkSheetName ) override;
899 virtual
void SAL_CALL link( const OUString& aUrl,
900 const OUString& aSheetName,
901 const OUString& aFilterName,
902 const OUString& aFilterOptions,
903 css::sheet::SheetLinkMode nMode ) override;
906 virtual
sal_Bool SAL_CALL hideDependents( const css::table::CellAddress& aPosition ) override;
907 virtual
sal_Bool SAL_CALL hidePrecedents( const css::table::CellAddress& aPosition ) override;
908 virtual
sal_Bool SAL_CALL showDependents( const css::table::CellAddress& aPosition ) override;
909 virtual
sal_Bool SAL_CALL showPrecedents( const css::table::CellAddress& aPosition ) override;
910 virtual
sal_Bool SAL_CALL showErrors( const css::table::CellAddress& aPosition ) override;
911 virtual
sal_Bool SAL_CALL showInvalid() override;
912 virtual
void SAL_CALL clearArrows() override;
915 virtual
void SAL_CALL group( const css::table::CellRangeAddress& aRange,
916 css::table::TableOrientation nOrientation ) override;
917 virtual
void SAL_CALL ungroup( const css::table::CellRangeAddress& aRange,
918 css::table::TableOrientation nOrientation ) override;
919 virtual
void SAL_CALL autoOutline( const css::table::CellRangeAddress& aRange ) override;
920 virtual
void SAL_CALL clearOutline() override;
921 virtual
void SAL_CALL hideDetail( const css::table::CellRangeAddress& aRange ) override;
922 virtual
void SAL_CALL showDetail( const css::table::CellRangeAddress& aRange ) override;
923 virtual
void SAL_CALL showLevel( sal_Int16 nLevel,
924 css::table::TableOrientation nOrientation ) override;
927 virtual
void SAL_CALL protect( const OUString& aPassword ) override;
928 virtual
void SAL_CALL unprotect( const OUString& aPassword ) override;
929 virtual
sal_Bool SAL_CALL isProtected() override;
932 virtual
sal_Bool SAL_CALL getIsScenario() override;
933 virtual OUString SAL_CALL getScenarioComment() override;
934 virtual
void SAL_CALL setScenarioComment( const OUString& aScenarioComment ) override;
935 virtual
void SAL_CALL addRanges( const css::
uno::Sequence<
936 css::table::CellRangeAddress >& aRanges ) override;
937 virtual
void SAL_CALL apply() override;
939 virtual css::
uno::Sequence< css::table::CellRangeAddress > SAL_CALL
940 getRanges( ) override;
943 virtual
void SAL_CALL setExternalName( const OUString& aUrl, const OUString& aSheetName ) override;
946 virtual css::
uno::Reference< css::container::XNameReplace > SAL_CALL getEvents() override;
949 virtual css::
uno::Reference< css::beans::XPropertySetInfo >
950 SAL_CALL getPropertySetInfo() override;
958 virtual css::
uno::Sequence< css::
uno::
Type > SAL_CALL getTypes() override;
959 virtual css::
uno::Sequence<
sal_Int8 > SAL_CALL getImplementationId() override;
963 public css::container::XNamed
970 css::uno::Any& )
override;
972 const css::uno::Any& aValue )
override;
979 const css::uno::Type & rType )
override;
980 virtual void SAL_CALL acquire() noexcept override;
981 virtual
void SAL_CALL release() noexcept override;
984 virtual OUString SAL_CALL getName() override;
985 virtual
void SAL_CALL setName( const OUString& aName ) override;
988 virtual css::
uno::Reference< css::beans::XPropertySetInfo >
989 SAL_CALL getPropertySetInfo() override;
997 virtual css::
uno::Sequence< css::
uno::
Type > SAL_CALL getTypes() override;
998 virtual css::
uno::Sequence<
sal_Int8 > SAL_CALL getImplementationId() override;
1008 css::uno::Any& )
override;
1010 const css::uno::Any& aValue )
override;
1017 virtual css::uno::Reference< css::beans::XPropertySetInfo >
1018 SAL_CALL getPropertySetInfo()
override;
1027 css::container::XEnumerationAccess,
1028 css::lang::XServiceInfo >,
1042 virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL
1043 createEnumeration()
override;
1046 virtual css::uno::Type SAL_CALL getElementType()
override;
1047 virtual sal_Bool SAL_CALL hasElements()
override;
1056 css::container::XEnumeration,
1057 css::lang::XServiceInfo >,
1068 void Advance_Impl();
1069 void CheckPos_Impl();
1078 virtual sal_Bool SAL_CALL hasMoreElements()
override;
1079 virtual css::uno::Any SAL_CALL nextElement()
override;
1088 css::container::XIndexAccess,
1089 css::container::XEnumerationAccess,
1090 css::lang::XServiceInfo >,
1107 virtual sal_Int32 SAL_CALL getCount()
override;
1108 virtual css::uno::Any SAL_CALL getByIndex( sal_Int32
Index )
override;
1111 virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL
1112 createEnumeration()
override;
1115 virtual css::uno::Type SAL_CALL getElementType()
override;
1116 virtual sal_Bool SAL_CALL hasElements()
override;
1125 css::container::XEnumeration,
1126 css::lang::XServiceInfo >,
1132 std::unique_ptr<ScAttrRectIterator>
pIter;
1138 void Advance_Impl();
1148 virtual sal_Bool SAL_CALL hasMoreElements()
override;
1149 virtual css::uno::Any SAL_CALL nextElement()
override;
1158 css::container::XIndexAccess,
1159 css::container::XEnumerationAccess,
1160 css::lang::XServiceInfo >,
1174 virtual sal_Int32 SAL_CALL getCount()
override;
1175 virtual css::uno::Any SAL_CALL getByIndex( sal_Int32
Index )
override;
1178 virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL
1179 createEnumeration()
override;
1182 virtual css::uno::Type SAL_CALL getElementType()
override;
1183 virtual sal_Bool SAL_CALL hasElements()
override;
1192 css::container::XEnumeration,
1193 css::lang::XServiceInfo >,
1208 virtual sal_Bool SAL_CALL hasMoreElements()
override;
1209 virtual css::uno::Any SAL_CALL nextElement()
override;
std::vector< css::uno::Reference< css::util::XModifyListener > > XModifyListenerArr_Impl
really derive cell from range?
rtl::Reference< SvxUnoText > mxUnoText
sal_Int16 nActionLockCount
const SfxItemPropertySet * pCellPropSet
const SfxItemPropertySet * pRangePropSet
const ScRange & GetRange() const
virtual OUString SAL_CALL getImplementationName() override
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
std::unique_ptr< ScMarkData > pMark
virtual OUString SAL_CALL getImplementationName() override
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
static void FillBoxItems(SvxBoxItem &rOuter, SvxBoxInfoItem &rInner, const css::table::TableBorder2 &rBorder)
static void AssignTableBorder2ToAny(css::uno::Any &rAny, const SvxBoxItem &rOuter, const SvxBoxInfoItem &rInner, bool bInvalidateHorVerDist=false)
static void FillBorderLine(css::table::BorderLine &rStruct, const ::editeng::SvxBorderLine *pLine)
static void ApplyBorder(ScDocShell *pDocShell, const ScRangeList &rRanges, const SvxBoxItem &rOuter, const SvxBoxInfoItem &rInner)
move lcl_ApplyBorder to docfunc !
static void FillBoxItems(SvxBoxItem &rOuter, SvxBoxInfoItem &rInner, const css::table::TableBorder &rBorder)
static void FillBorderLine(css::table::BorderLine2 &rStruct, const ::editeng::SvxBorderLine *pLine)
static void AssignTableBorderToAny(css::uno::Any &rAny, const SvxBoxItem &rOuter, const SvxBoxInfoItem &rInner, bool bInvalidateHorVerDist=false)
static const ::editeng::SvxBorderLine * GetBorderLine(::editeng::SvxBorderLine &rLine, const css::table::BorderLine2 &rStruct)
static const ::editeng::SvxBorderLine * GetBorderLine(::editeng::SvxBorderLine &rLine, const css::table::BorderLine &rStruct)
virtual void Notify(const SfxHint &rHint) override
Link< const SfxHint &, void > aLink
virtual ~ScLinkListener() override
move ScLinkListener into another file !!!
ScLinkListener(const Link< const SfxHint &, void > &rL)
todo: It should be possible to have MarkArrays for each table, in order to enable "search all" across...
const SfxItemPropertySet * pColPropSet
virtual OUString SAL_CALL getImplementationName() override
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
const SfxItemPropertySet * pRowPropSet
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
const SfxItemPropertySet * pSheetPropSet
virtual css::uno::Reference< css::table::XCellRange > SAL_CALL getCellRangeByPosition(sal_Int32 nLeft, sal_Int32 nTop, sal_Int32 nRight, sal_Int32 nBottom, sal_Int32 nSheet) override
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
virtual css::uno::Reference< css::table::XCell > SAL_CALL getCellByPosition(sal_Int32 nColumn, sal_Int32 nRow, sal_Int32 nSheet) override
XCellRangesAccess.
virtual OUString SAL_CALL getImplementationName() override
XServiceInfo.
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint)
class SAL_WARN_UNUSED SAL_LOPLUGIN_ANNOTATE("crosscast") SwContentIndexReg
virtual OUString GetName() const override
#define DECL_DLLPRIVATE_LINK(Member, ArgType, RetType)
void Notify(ScModelObj &rModelObj, const ScRangeList &rChangeRanges, const OUString &rType=OUString("cell-change"), const css::uno::Sequence< css::beans::PropertyValue > &rProperties=css::uno::Sequence< css::beans::PropertyValue >())
OUString getString(const Any &_rAny)
css::uno::Sequence< OUString > getSupportedServiceNames()
OUString getImplementationName()
css::uno::Any SAL_CALL queryInterface(const css::uno::Type &rType, Interface1 *p1)
bool CPPUHELPER_DLLPUBLIC supportsService(css::lang::XServiceInfo *implementation, rtl::OUString const &name)
css::beans::Optional< css::uno::Any > getValue(std::u16string_view id)
uno::Any getPropertyValue(const uno::Sequence< beans::PropertyValue > &aProp, const OUString &aName)
bool setPropertyValue(uno::Sequence< beans::PropertyValue > &aProp, const OUString &aName, const uno::Any &aValue)
bool getType(BSTR name, Type &type)
RegError REGISTRY_CALLTYPE setValue(RegKeyHandle hKey, rtl_uString *keyName, RegValueType valueType, RegValue pData, sal_uInt32 valueSize)