1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
22 #include "address.hxx"
24 #include <sal/types.h>
25 #include <sfx2/sfxbasemodel.hxx>
26 #include <svl/lstner.hxx>
27 #include <svx/fmdmod.hxx>
28 #include <com/sun/star/view/XRenderable.hpp>
29 #include <com/sun/star/style/XStyleFamiliesSupplier.hpp>
30 #include <com/sun/star/document/XActionLockable.hpp>
31 #include <com/sun/star/document/XLinkTargetSupplier.hpp>
32 #include <com/sun/star/drawing/XDrawPagesSupplier.hpp>
33 #include <com/sun/star/drawing/XDrawPages.hpp>
34 #include <com/sun/star/sheet/XGoalSeek.hpp>
35 #include <com/sun/star/sheet/XCalculatable.hpp>
36 #include <com/sun/star/sheet/XScenarios.hpp>
37 #include <com/sun/star/sheet/XConsolidatable.hpp>
38 #include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
39 #include <com/sun/star/sheet/XSpreadsheets2.hpp>
40 #include <com/sun/star/sheet/XDocumentAuditing.hpp>
41 #include <com/sun/star/chart2/XDataProviderAccess.hpp>
42 #include <com/sun/star/lang/XServiceInfo.hpp>
43 #include <com/sun/star/util/XProtectable.hpp>
44 #include <com/sun/star/container/XEnumerationAccess.hpp>
45 #include <com/sun/star/table/XTableColumns.hpp>
46 #include <com/sun/star/table/XTableRows.hpp>
47 #include <com/sun/star/sheet/XSheetAnnotations.hpp>
48 #include <com/sun/star/beans/XPropertySet.hpp>
49 #include <com/sun/star/sheet/XCellRangesAccess.hpp>
50 #include <com/sun/star/sheet/opencl/XOpenCLSelection.hpp>
51 #include <com/sun/star/util/XChangesNotifier.hpp>
52 #include <com/sun/star/uno/XAggregation.hpp>
53 #include <cppuhelper/implbase.hxx>
54 #include <comphelper/interfacecontainer3.hxx>
55 #include <svl/itemprop.hxx>
56 #include <vcl/ITiledRenderable.hxx>
58 namespace com::sun::star::chart2::data
{ class XDataProvider
; }
59 namespace com::sun::star::sheet::opencl
{ struct OpenCLPlatform
; }
62 class ScAnnotationObj
;
64 class ScPrintFuncCache
;
66 class ScPrintSelectionStatus
;
67 class ScTableColumnObj
;
69 class ScTableSheetObj
;
71 class ScPrintUIOptions
;
72 class ScSheetSaveData
;
73 struct ScFormatSaveData
;
75 class SAL_DLLPUBLIC_RTTI ScModelObj
: public SfxBaseModel
,
76 public vcl::ITiledRenderable
,
77 public css::sheet::XSpreadsheetDocument
,
78 public css::document::XActionLockable
,
79 public css::sheet::XCalculatable
,
80 public css::util::XProtectable
,
81 public css::drawing::XDrawPagesSupplier
,
82 public css::sheet::XGoalSeek
,
83 public css::sheet::XConsolidatable
,
84 public css::sheet::XDocumentAuditing
,
85 public css::style::XStyleFamiliesSupplier
,
86 public css::view::XRenderable
,
87 public css::document::XLinkTargetSupplier
,
88 public css::beans::XPropertySet
,
89 public SvxFmMSFactory
, ///< derived from XMultiServiceFactory
90 public css::lang::XServiceInfo
,
91 public css::util::XChangesNotifier
,
92 public css::chart2::XDataProviderAccess
,
93 public css::sheet::opencl::XOpenCLSelection
96 SfxItemPropertySet aPropSet
;
97 ScDocShell
* pDocShell
;
98 std::unique_ptr
<ScPrintFuncCache
> pPrintFuncCache
;
99 std::unique_ptr
<ScPrintUIOptions
> pPrinterOptions
;
100 std::unique_ptr
<ScPrintState
> m_pPrintState
;
101 css::uno::Reference
<css::uno::XAggregation
> xNumberAgg
;
102 css::uno::Reference
<css::uno::XInterface
> xDrawGradTab
;
103 css::uno::Reference
<css::uno::XInterface
> xDrawHatchTab
;
104 css::uno::Reference
<css::uno::XInterface
> xDrawBitmapTab
;
105 css::uno::Reference
<css::uno::XInterface
> xDrawTrGradTab
;
106 css::uno::Reference
<css::uno::XInterface
> xDrawMarkerTab
;
107 css::uno::Reference
<css::uno::XInterface
> xDrawDashTab
;
108 css::uno::Reference
<css::uno::XInterface
> xChartDataProv
;
109 css::uno::Reference
<css::uno::XInterface
> xObjProvider
;
111 ::comphelper::OInterfaceContainerHelper3
<css::util::XChangesListener
> maChangesListeners
;
113 bool FillRenderMarkData( const css::uno::Any
& aSelection
,
114 const css::uno::Sequence
< css::beans::PropertyValue
>& rOptions
,
115 ScMarkData
& rMark
, ScPrintSelectionStatus
& rStatus
, OUString
& rPagesStr
,
116 bool& rbRenderToGraphic
) const;
117 css::uno::Reference
<css::uno::XAggregation
> const & GetFormatter();
118 void HandleCalculateEvents();
120 css::uno::Reference
<css::uno::XInterface
> create(
121 OUString
const & aServiceSpecifier
,
122 css::uno::Sequence
<css::uno::Any
> const * arguments
);
124 static bool IsOnEvenPage( sal_Int32 nPage
) { return nPage
% 2 == 0; };
127 std::vector
<sal_Int32
> maValidPages
;
129 const SfxItemPropertySet
& GetPropertySet() const { return aPropSet
; }
131 /** abstract SdrModel provider */
132 virtual SdrModel
& getSdrModelFromUnoModel() const override
;
135 ScModelObj(ScDocShell
* pDocSh
);
136 virtual ~ScModelObj() override
;
138 /// create ScModelObj and set at pDocSh (SetBaseModel)
139 static void CreateAndSet(ScDocShell
* pDocSh
);
141 SC_DLLPUBLIC ScDocument
* GetDocument() const;
142 SC_DLLPUBLIC SfxObjectShell
* GetEmbeddedObject() const;
144 SC_DLLPUBLIC
void UpdateAllRowHeights();
146 void BeforeXMLLoading();
147 void AfterXMLLoading();
148 ScSheetSaveData
* GetSheetSaveData();
149 ScFormatSaveData
* GetFormatSaveData();
151 void RepaintRange( const ScRange
& rRange
);
152 void RepaintRange( const ScRangeList
& rRange
);
154 bool HasChangesListeners() const;
156 void NotifyChanges( const OUString
& rOperation
, const ScRangeList
& rRanges
,
157 const css::uno::Sequence
< css::beans::PropertyValue
>& rProperties
);
159 virtual css::uno::Any SAL_CALL
queryInterface( const css::uno::Type
& rType
) override
;
160 virtual void SAL_CALL
acquire() noexcept override
;
161 virtual void SAL_CALL
release() noexcept override
;
163 virtual void Notify( SfxBroadcaster
& rBC
, const SfxHint
& rHint
) override
;
165 /// XSpreadsheetDocument
166 virtual css::uno::Reference
< css::sheet::XSpreadsheets
> SAL_CALL
167 getSheets() override
;
169 /// XDataProviderAccess
170 virtual ::css::uno::Reference
< css::chart2::data::XDataProvider
> SAL_CALL
171 createDataProvider() override
;
173 /// XStyleFamiliesSupplier
174 virtual css::uno::Reference
< css::container::XNameAccess
> SAL_CALL
175 getStyleFamilies() override
;
178 virtual sal_Int32 SAL_CALL
getRendererCount( const css::uno::Any
& aSelection
,
179 const css::uno::Sequence
< css::beans::PropertyValue
>& xOptions
) override
;
180 virtual css::uno::Sequence
< css::beans::PropertyValue
> SAL_CALL
181 getRenderer( sal_Int32 nRenderer
, const css::uno::Any
& aSelection
,
182 const css::uno::Sequence
< css::beans::PropertyValue
>& xOptions
) override
;
183 virtual void SAL_CALL
render( sal_Int32 nRenderer
, const css::uno::Any
& aSelection
,
184 const css::uno::Sequence
< css::beans::PropertyValue
>& xOptions
) override
;
186 /// XLinkTargetSupplier
187 virtual css::uno::Reference
< css::container::XNameAccess
> SAL_CALL
191 virtual sal_Bool SAL_CALL
isActionLocked() override
;
192 virtual void SAL_CALL
addActionLock() override
;
193 virtual void SAL_CALL
removeActionLock() override
;
194 virtual void SAL_CALL
setActionLocks( sal_Int16 nLock
) override
;
195 virtual sal_Int16 SAL_CALL
resetActionLocks() override
;
197 virtual void SAL_CALL
lockControllers() override
;
198 virtual void SAL_CALL
unlockControllers() override
;
201 virtual void SAL_CALL
calculate() override
;
202 virtual void SAL_CALL
calculateAll() override
;
203 virtual sal_Bool SAL_CALL
isAutomaticCalculationEnabled() override
;
204 virtual void SAL_CALL
enableAutomaticCalculation( sal_Bool bEnabled
) override
;
207 virtual void SAL_CALL
protect( const OUString
& aPassword
) override
;
208 virtual void SAL_CALL
unprotect( const OUString
& aPassword
) override
;
209 virtual sal_Bool SAL_CALL
isProtected() override
;
211 /// XDrawPagesSupplier
212 virtual css::uno::Reference
< css::drawing::XDrawPages
> SAL_CALL
213 getDrawPages() override
;
216 virtual css::sheet::GoalResult SAL_CALL
seekGoal(
217 const css::table::CellAddress
& aFormulaPosition
,
218 const css::table::CellAddress
& aVariablePosition
,
219 const OUString
& aGoalValue
) override
;
222 virtual css::uno::Reference
< css::sheet::XConsolidationDescriptor
>
223 SAL_CALL
createConsolidationDescriptor( sal_Bool bEmpty
) override
;
224 virtual void SAL_CALL
consolidate( const css::uno::Reference
< css::sheet::XConsolidationDescriptor
>& xDescriptor
) override
;
226 /// XDocumentAuditing
227 virtual void SAL_CALL
refreshArrows() override
;
229 /// XViewDataSupplier
230 virtual css::uno::Reference
< css::container::XIndexAccess
> SAL_CALL
getViewData( ) override
;
233 virtual css::uno::Reference
< css::beans::XPropertySetInfo
>
234 SAL_CALL
getPropertySetInfo() override
;
235 virtual void SAL_CALL
setPropertyValue( const OUString
& aPropertyName
,
236 const css::uno::Any
& aValue
) override
;
237 virtual css::uno::Any SAL_CALL
getPropertyValue( const OUString
& PropertyName
) override
;
238 virtual void SAL_CALL
addPropertyChangeListener( const OUString
& aPropertyName
,
239 const css::uno::Reference
< css::beans::XPropertyChangeListener
>& xListener
) override
;
240 virtual void SAL_CALL
removePropertyChangeListener( const OUString
& aPropertyName
,
241 const css::uno::Reference
< css::beans::XPropertyChangeListener
>& aListener
) override
;
242 virtual void SAL_CALL
addVetoableChangeListener( const OUString
& PropertyName
,
243 const css::uno::Reference
< css::beans::XVetoableChangeListener
>& aListener
) override
;
244 virtual void SAL_CALL
removeVetoableChangeListener( const OUString
& PropertyName
,
245 const css::uno::Reference
< css::beans::XVetoableChangeListener
>& aListener
) override
;
247 /// XMultiServiceFactory
248 virtual css::uno::Reference
< css::uno::XInterface
> SAL_CALL
249 createInstance( const OUString
& aServiceSpecifier
) override
;
250 virtual css::uno::Reference
< css::uno::XInterface
> SAL_CALL
251 createInstanceWithArguments( const OUString
& ServiceSpecifier
,
252 const css::uno::Sequence
< css::uno::Any
>& Arguments
) override
;
253 virtual css::uno::Sequence
< OUString
> SAL_CALL
getAvailableServiceNames() override
;
256 virtual OUString SAL_CALL
getImplementationName() override
;
257 virtual sal_Bool SAL_CALL
supportsService( const OUString
& ServiceName
) override
;
258 virtual css::uno::Sequence
< OUString
> SAL_CALL
getSupportedServiceNames() override
;
261 virtual sal_Int64 SAL_CALL
getSomething( const css::uno::Sequence
< sal_Int8
>& aIdentifier
) override
;
263 SC_DLLPUBLIC
static const css::uno::Sequence
<sal_Int8
>& getUnoTunnelId();
266 virtual css::uno::Sequence
< css::uno::Type
> SAL_CALL
getTypes() override
;
267 virtual css::uno::Sequence
< sal_Int8
> SAL_CALL
getImplementationId() override
;
270 virtual void SAL_CALL
addChangesListener( const css::uno::Reference
< css::util::XChangesListener
>& aListener
) override
;
271 virtual void SAL_CALL
removeChangesListener( const css::uno::Reference
< css::util::XChangesListener
>& aListener
) override
;
274 virtual sal_Bool SAL_CALL
isOpenCLEnabled() override
;
276 virtual void SAL_CALL
enableOpenCL(sal_Bool bEnable
) override
;
278 virtual void SAL_CALL
enableAutomaticDeviceSelection(sal_Bool bForce
) override
;
280 virtual void SAL_CALL
disableAutomaticDeviceSelection() override
;
282 virtual void SAL_CALL
selectOpenCLDevice( sal_Int32 platform
, sal_Int32 device
) override
;
284 virtual sal_Int32 SAL_CALL
getPlatformID() override
;
286 virtual sal_Int32 SAL_CALL
getDeviceID() override
;
288 virtual css::uno::Sequence
< css::sheet::opencl::OpenCLPlatform
>
289 SAL_CALL
getOpenCLPlatforms() override
;
291 virtual void SAL_CALL
enableOpcodeSubsetTest() override
;
293 virtual void SAL_CALL
disableOpcodeSubsetTest() override
;
295 virtual sal_Bool SAL_CALL
isOpcodeSubsetTested() override
;
297 virtual void SAL_CALL
setFormulaCellNumberLimit( sal_Int32 number
) override
;
299 virtual sal_Int32 SAL_CALL
getFormulaCellNumberLimit() override
;
301 /// @see vcl::ITiledRenderable::paintTile().
302 virtual void paintTile( VirtualDevice
& rDevice
,
307 tools::Long nTileWidth
,
308 tools::Long nTileHeight
) override
;
310 /// @see vcl::ITiledRenderable::getDocumentSize().
311 SC_DLLPUBLIC
virtual Size
getDocumentSize() final override
;
313 /// @see vcl::ITiledRenderable::getDataArea().
314 virtual Size
getDataArea(long nPart
) override
;
316 /// @see vcl::ITiledRenderable::setPart().
317 virtual void setPart(int nPart
, bool bAllowChangeFocus
= true) override
;
319 /// @see vcl::ITiledRenderable::getPart().
320 virtual int getPart() override
;
322 /// @see vcl::ITiledRenderable::getParts().
323 virtual int getParts() override
;
325 /// @see vcl::ITiledRenderable::getPartInfo().
326 virtual OUString
getPartInfo( int nPart
) override
;
328 /// @see vcl::ITiledRenderable::getPartName().
329 virtual OUString
getPartName(int nPart
) override
;
331 /// @see vcl::ITiledRenderable::getPartHash().
332 virtual OUString
getPartHash( int nPart
) override
;
334 /// @see vcl::ITiledRenderable::getDocWindow().
335 virtual VclPtr
<vcl::Window
> getDocWindow() override
;
337 /// @see vcl::ITiledRenderable::initializeForTiledRendering().
338 virtual void initializeForTiledRendering(const css::uno::Sequence
<css::beans::PropertyValue
>& rArguments
) override
;
340 /// @see vcl::ITiledRenderable::postKeyEvent().
341 virtual void postKeyEvent(int nType
, int nCharCode
, int nKeyCode
) override
;
343 /// @see vcl::ITiledRenderable::postMouseEvent().
344 virtual void postMouseEvent(int nType
, int nX
, int nY
, int nCount
, int nButtons
, int nModifier
) override
;
346 /// @see vcl::ITiledRenderable::setTextSelection().
347 virtual void setTextSelection(int nType
, int nX
, int nY
) override
;
349 /// @see vcl::ITiledRenderable::getSelection().
350 virtual css::uno::Reference
<css::datatransfer::XTransferable
> getSelection() override
;
352 /// @see vcl::ITiledRenderable::setGraphicSelection().
353 virtual void setGraphicSelection(int nType
, int nX
, int nY
) override
;
355 /// @see lok::Document::resetSelection().
356 virtual void resetSelection() override
;
358 /// @see vcl::ITiledRenderable::setClipboard().
359 virtual void setClipboard(const css::uno::Reference
<css::datatransfer::clipboard::XClipboard
>& xClipboard
) override
;
361 /// @see vcl::ITiledRenderable::isMimeTypeSupported().
362 virtual bool isMimeTypeSupported() override
;
364 /// @see vcl::ITiledRenderable::setClientZoom().
365 virtual void setClientZoom(int nTilePixelWidth
, int nTilePixelHeight
, int nTileTwipWidth
, int nTileTwipHeight
) override
;
367 /// @see vcl::ITiledRenderable::setOutlineState().
368 virtual void setOutlineState(bool bColumn
, int nLevel
, int nIndex
, bool bHidden
) override
;
370 /// @see vcl::ITiledRenderable::getRowColumnHeaders().
371 virtual void getRowColumnHeaders(const tools::Rectangle
& rRectangle
, tools::JsonWriter
& rJsonWriter
) override
;
373 /// @see vcl::ITiledRenderable::getSheetGeometryData().
374 virtual OString
getSheetGeometryData(bool bColumns
, bool bRows
, bool bSizes
, bool bHidden
,
375 bool bFiltered
, bool bGroups
) override
;
377 /// @see vcl::ITiledRenderable::getCellCursor().
378 virtual void getCellCursor(tools::JsonWriter
& rJsonWriter
) override
;
380 /// @see vcl::ITiledRenderable::getPointer().
381 virtual PointerStyle
getPointer() override
;
383 /// @see vcl::ITiledRenderable::getTrackedChanges().
384 void getTrackedChanges(tools::JsonWriter
&) override
;
386 /// @see vcl::ITiledRenderable::setClientVisibleArea().
387 virtual void setClientVisibleArea(const tools::Rectangle
& rRectangle
) override
;
389 /// @see vcl::ITiledRenderable::getPostIts().
390 void getPostIts(tools::JsonWriter
& rJsonWriter
) override
;
392 /// @see vcl::ITiledRenderable::getPostItsPos().
393 void getPostItsPos(tools::JsonWriter
& rJsonWriter
) override
;
395 /// @see vcl::ITiledRenderable::completeFunction().
396 virtual void completeFunction(const OUString
& rFunctionName
) override
;
398 /// @see vcl::ITiledRenderable::getViewRenderState().
399 OString
getViewRenderState(SfxViewShell
* pViewShell
= nullptr) override
;
402 Size
getDocumentSize(SCCOL
& rnTiledRenderingAreaEndCol
, SCROW
& rnTiledRenderingAreaEndRow
);
405 class ScDrawPagesObj final
: public cppu::WeakImplHelper
<
406 css::drawing::XDrawPages
,
407 css::lang::XServiceInfo
>,
411 ScDocShell
* pDocShell
;
413 css::uno::Reference
< css::drawing::XDrawPage
>
414 GetObjectByIndex_Impl(sal_Int32 nIndex
) const;
417 ScDrawPagesObj(ScDocShell
* pDocSh
);
418 virtual ~ScDrawPagesObj() override
;
420 virtual void Notify( SfxBroadcaster
& rBC
, const SfxHint
& rHint
) override
;
423 virtual css::uno::Reference
< css::drawing::XDrawPage
> SAL_CALL
424 insertNewByIndex( sal_Int32 nIndex
) override
;
425 virtual void SAL_CALL
remove( const css::uno::Reference
< css::drawing::XDrawPage
>& xPage
) override
;
428 virtual sal_Int32 SAL_CALL
getCount() override
;
429 virtual css::uno::Any SAL_CALL
getByIndex( sal_Int32 Index
) override
;
432 virtual css::uno::Type SAL_CALL
getElementType() override
;
433 virtual sal_Bool SAL_CALL
hasElements() override
;
436 virtual OUString SAL_CALL
getImplementationName() override
;
437 virtual sal_Bool SAL_CALL
supportsService( const OUString
& ServiceName
) override
;
438 virtual css::uno::Sequence
< OUString
> SAL_CALL
getSupportedServiceNames() override
;
441 class ScTableSheetsObj final
: public cppu::WeakImplHelper
<
442 css::sheet::XSpreadsheets2
,
443 css::sheet::XCellRangesAccess
,
444 css::container::XEnumerationAccess
,
445 css::container::XIndexAccess
,
446 css::lang::XServiceInfo
>,
450 ScDocShell
* pDocShell
;
452 rtl::Reference
<ScTableSheetObj
> GetObjectByIndex_Impl(sal_Int32 nIndex
) const;
453 rtl::Reference
<ScTableSheetObj
> GetObjectByName_Impl(const OUString
& aName
) const;
456 ScTableSheetsObj(ScDocShell
* pDocSh
);
457 virtual ~ScTableSheetsObj() override
;
459 virtual void Notify( SfxBroadcaster
& rBC
, const SfxHint
& rHint
) override
;
462 virtual void SAL_CALL
insertNewByName( const OUString
& aName
, sal_Int16 nPosition
) override
;
463 virtual void SAL_CALL
moveByName( const OUString
& aName
, sal_Int16 nDestination
) override
;
464 virtual void SAL_CALL
copyByName( const OUString
& aName
,
465 const OUString
& aCopy
, sal_Int16 nDestination
) override
;
468 virtual sal_Int32 SAL_CALL
importSheet(
469 const css::uno::Reference
< css::sheet::XSpreadsheetDocument
> & xDocSrc
,
470 const OUString
& srcName
,
471 sal_Int32 nDestPosition
) override
;
473 /// XCellRangesAccess
475 virtual css::uno::Reference
< css::table::XCell
>
476 SAL_CALL
getCellByPosition( sal_Int32 nColumn
, sal_Int32 nRow
, sal_Int32 nSheet
) override
;
478 virtual css::uno::Reference
< css::table::XCellRange
>
479 SAL_CALL
getCellRangeByPosition( sal_Int32 nLeft
, sal_Int32 nTop
, sal_Int32 nRight
, sal_Int32 nBottom
, sal_Int32 nSheet
) override
;
481 virtual css::uno::Sequence
< css::uno::Reference
< css::table::XCellRange
> >
482 SAL_CALL
getCellRangesByName( const OUString
& aRange
) override
;
485 virtual void SAL_CALL
insertByName( const OUString
& aName
,
486 const css::uno::Any
& aElement
) override
;
487 virtual void SAL_CALL
removeByName( const OUString
& Name
) override
;
490 virtual void SAL_CALL
replaceByName( const OUString
& aName
,
491 const css::uno::Any
& aElement
) override
;
493 /// XEnumerationAccess
494 virtual css::uno::Reference
< css::container::XEnumeration
> SAL_CALL
495 createEnumeration() override
;
498 virtual css::uno::Type SAL_CALL
getElementType() override
;
499 virtual sal_Bool SAL_CALL
hasElements() override
;
502 virtual sal_Int32 SAL_CALL
getCount() override
;
503 virtual css::uno::Any SAL_CALL
getByIndex( sal_Int32 Index
) override
;
506 virtual css::uno::Any SAL_CALL
getByName( const OUString
& aName
) override
;
507 virtual css::uno::Sequence
< OUString
> SAL_CALL
getElementNames() override
;
508 virtual sal_Bool SAL_CALL
hasByName( const OUString
& aName
) override
;
511 virtual OUString SAL_CALL
getImplementationName() override
;
512 virtual sal_Bool SAL_CALL
supportsService( const OUString
& ServiceName
) override
;
513 virtual css::uno::Sequence
< OUString
> SAL_CALL
getSupportedServiceNames() override
;
516 class ScTableColumnsObj final
: public cppu::WeakImplHelper
<
517 css::table::XTableColumns
,
518 css::container::XEnumerationAccess
,
519 css::container::XNameAccess
,
520 css::beans::XPropertySet
,
521 css::lang::XServiceInfo
>,
525 ScDocShell
* pDocShell
;
530 rtl::Reference
<ScTableColumnObj
> GetObjectByIndex_Impl(sal_Int32 nIndex
) const;
531 rtl::Reference
<ScTableColumnObj
> GetObjectByName_Impl(std::u16string_view aName
) const;
534 ScTableColumnsObj(ScDocShell
* pDocSh
, SCTAB nT
,
535 SCCOL nSC
, SCCOL nEC
);
536 virtual ~ScTableColumnsObj() override
;
538 virtual void Notify( SfxBroadcaster
& rBC
, const SfxHint
& rHint
) override
;
541 virtual void SAL_CALL
insertByIndex( sal_Int32 nIndex
, sal_Int32 nCount
) override
;
542 virtual void SAL_CALL
removeByIndex( sal_Int32 nIndex
, sal_Int32 nCount
) override
;
545 virtual css::uno::Any SAL_CALL
getByName( const OUString
& aName
) override
;
546 virtual css::uno::Sequence
< OUString
> SAL_CALL
getElementNames() override
;
547 virtual sal_Bool SAL_CALL
hasByName( const OUString
& aName
) override
;
550 virtual sal_Int32 SAL_CALL
getCount() override
;
551 virtual css::uno::Any SAL_CALL
getByIndex( sal_Int32 Index
) override
;
553 /// XEnumerationAccess
554 virtual css::uno::Reference
< css::container::XEnumeration
> SAL_CALL
555 createEnumeration() override
;
558 virtual css::uno::Type SAL_CALL
getElementType() override
;
559 virtual sal_Bool SAL_CALL
hasElements() override
;
562 virtual css::uno::Reference
< css::beans::XPropertySetInfo
>
563 SAL_CALL
getPropertySetInfo() override
;
564 virtual void SAL_CALL
setPropertyValue( const OUString
& aPropertyName
,
565 const css::uno::Any
& aValue
) override
;
566 virtual css::uno::Any SAL_CALL
getPropertyValue(
567 const OUString
& PropertyName
) override
;
568 virtual void SAL_CALL
addPropertyChangeListener( const OUString
& aPropertyName
,
569 const css::uno::Reference
< css::beans::XPropertyChangeListener
>& xListener
) override
;
570 virtual void SAL_CALL
removePropertyChangeListener( const OUString
& aPropertyName
,
571 const css::uno::Reference
< css::beans::XPropertyChangeListener
>& aListener
) override
;
572 virtual void SAL_CALL
addVetoableChangeListener( const OUString
& PropertyName
,
573 const css::uno::Reference
< css::beans::XVetoableChangeListener
>& aListener
) override
;
574 virtual void SAL_CALL
removeVetoableChangeListener( const OUString
& PropertyName
,
575 const css::uno::Reference
< css::beans::XVetoableChangeListener
>& aListener
) override
;
578 virtual OUString SAL_CALL
getImplementationName() override
;
579 virtual sal_Bool SAL_CALL
supportsService( const OUString
& ServiceName
) override
;
580 virtual css::uno::Sequence
< OUString
> SAL_CALL
getSupportedServiceNames() override
;
583 class ScTableRowsObj final
: public cppu::WeakImplHelper
<
584 css::table::XTableRows
,
585 css::container::XEnumerationAccess
,
586 css::beans::XPropertySet
,
587 css::lang::XServiceInfo
>,
591 ScDocShell
* pDocShell
;
596 rtl::Reference
<ScTableRowObj
> GetObjectByIndex_Impl(sal_Int32 nIndex
) const;
599 ScTableRowsObj(ScDocShell
* pDocSh
, SCTAB nT
,
600 SCROW nSR
, SCROW nER
);
601 virtual ~ScTableRowsObj() override
;
603 virtual void Notify( SfxBroadcaster
& rBC
, const SfxHint
& rHint
) override
;
606 virtual void SAL_CALL
insertByIndex( sal_Int32 nIndex
, sal_Int32 nCount
) override
;
607 virtual void SAL_CALL
removeByIndex( sal_Int32 nIndex
, sal_Int32 nCount
) override
;
610 virtual sal_Int32 SAL_CALL
getCount() override
;
611 virtual css::uno::Any SAL_CALL
getByIndex( sal_Int32 Index
) override
;
613 /// XEnumerationAccess
614 virtual css::uno::Reference
< css::container::XEnumeration
> SAL_CALL
615 createEnumeration() override
;
618 virtual css::uno::Type SAL_CALL
getElementType() override
;
619 virtual sal_Bool SAL_CALL
hasElements() override
;
622 virtual css::uno::Reference
< css::beans::XPropertySetInfo
>
623 SAL_CALL
getPropertySetInfo() override
;
624 virtual void SAL_CALL
setPropertyValue( const OUString
& aPropertyName
,
625 const css::uno::Any
& aValue
) override
;
626 virtual css::uno::Any SAL_CALL
getPropertyValue( const OUString
& PropertyName
) override
;
627 virtual void SAL_CALL
addPropertyChangeListener( const OUString
& aPropertyName
,
628 const css::uno::Reference
< css::beans::XPropertyChangeListener
>& xListener
) override
;
629 virtual void SAL_CALL
removePropertyChangeListener( const OUString
& aPropertyName
,
630 const css::uno::Reference
< css::beans::XPropertyChangeListener
>& aListener
) override
;
631 virtual void SAL_CALL
addVetoableChangeListener( const OUString
& PropertyName
,
632 const css::uno::Reference
< css::beans::XVetoableChangeListener
>& aListener
) override
;
633 virtual void SAL_CALL
removeVetoableChangeListener( const OUString
& PropertyName
,
634 const css::uno::Reference
< css::beans::XVetoableChangeListener
>& aListener
) override
;
637 virtual OUString SAL_CALL
getImplementationName() override
;
638 virtual sal_Bool SAL_CALL
supportsService( const OUString
& ServiceName
) override
;
639 virtual css::uno::Sequence
< OUString
> SAL_CALL
getSupportedServiceNames() override
;
642 class ScSpreadsheetSettingsObj final
: public cppu::WeakImplHelper
<
643 css::beans::XPropertySet
,
644 css::lang::XServiceInfo
>,
648 virtual ~ScSpreadsheetSettingsObj() override
;
651 virtual css::uno::Reference
< css::beans::XPropertySetInfo
>
652 SAL_CALL
getPropertySetInfo() override
;
653 virtual void SAL_CALL
setPropertyValue( const OUString
& aPropertyName
,
654 const css::uno::Any
& aValue
) override
;
655 virtual css::uno::Any SAL_CALL
getPropertyValue( const OUString
& PropertyName
) override
;
656 virtual void SAL_CALL
addPropertyChangeListener( const OUString
& aPropertyName
,
657 const css::uno::Reference
< css::beans::XPropertyChangeListener
>& xListener
) override
;
658 virtual void SAL_CALL
removePropertyChangeListener( const OUString
& aPropertyName
,
659 const css::uno::Reference
< css::beans::XPropertyChangeListener
>& aListener
) override
;
660 virtual void SAL_CALL
addVetoableChangeListener( const OUString
& PropertyName
,
661 const css::uno::Reference
< css::beans::XVetoableChangeListener
>& aListener
) override
;
662 virtual void SAL_CALL
removeVetoableChangeListener( const OUString
& PropertyName
,
663 const css::uno::Reference
< css::beans::XVetoableChangeListener
>& aListener
) override
;
666 virtual OUString SAL_CALL
getImplementationName() override
;
667 virtual sal_Bool SAL_CALL
supportsService( const OUString
& ServiceName
) override
;
668 virtual css::uno::Sequence
< OUString
> SAL_CALL
getSupportedServiceNames() override
;
671 class SAL_DLLPUBLIC_RTTI ScAnnotationsObj final
: public cppu::WeakImplHelper
<
672 css::sheet::XSheetAnnotations
,
673 css::container::XEnumerationAccess
,
674 css::lang::XServiceInfo
>,
678 ScDocShell
* pDocShell
;
679 SCTAB nTab
; ///< Collection belongs to the sheet
681 bool GetAddressByIndex_Impl( sal_Int32 nIndex
, ScAddress
& rPos
) const;
682 rtl::Reference
<ScAnnotationObj
> GetObjectByIndex_Impl( sal_Int32 nIndex
) const;
685 ScAnnotationsObj(ScDocShell
* pDocSh
, SCTAB nT
);
686 virtual ~ScAnnotationsObj() override
;
688 virtual void Notify( SfxBroadcaster
& rBC
, const SfxHint
& rHint
) override
;
690 ScDocShell
* GetDocShell() const { return pDocShell
; }
692 /// XSheetAnnotations
693 virtual void SAL_CALL
insertNew( const css::table::CellAddress
& aPosition
,
694 const OUString
& aText
) override
;
695 virtual void SAL_CALL
removeByIndex( sal_Int32 nIndex
) override
;
698 virtual sal_Int32 SAL_CALL
getCount() override
;
699 virtual css::uno::Any SAL_CALL
getByIndex( sal_Int32 Index
) override
;
701 /// XEnumerationAccess
702 virtual css::uno::Reference
< css::container::XEnumeration
> SAL_CALL
703 createEnumeration() override
;
706 virtual css::uno::Type SAL_CALL
getElementType() override
;
707 virtual sal_Bool SAL_CALL
hasElements() override
;
710 virtual OUString SAL_CALL
getImplementationName() override
;
711 virtual sal_Bool SAL_CALL
supportsService( const OUString
& ServiceName
) override
;
712 virtual css::uno::Sequence
< OUString
> SAL_CALL
getSupportedServiceNames() override
;
715 class ScScenariosObj final
: public cppu::WeakImplHelper
<
716 css::sheet::XScenarios
,
717 css::container::XEnumerationAccess
,
718 css::container::XIndexAccess
,
719 css::lang::XServiceInfo
>,
723 ScDocShell
* pDocShell
;
726 bool GetScenarioIndex_Impl( std::u16string_view rName
, SCTAB
& rIndex
);
727 rtl::Reference
<ScTableSheetObj
> GetObjectByIndex_Impl(sal_Int32 nIndex
);
728 rtl::Reference
<ScTableSheetObj
> GetObjectByName_Impl(std::u16string_view aName
);
731 ScScenariosObj(ScDocShell
* pDocSh
, SCTAB nT
);
732 virtual ~ScScenariosObj() override
;
734 virtual void Notify( SfxBroadcaster
& rBC
, const SfxHint
& rHint
) override
;
737 virtual void SAL_CALL
addNewByName( const OUString
& aName
,
738 const css::uno::Sequence
< css::table::CellRangeAddress
>& aRanges
,
739 const OUString
& aComment
) override
;
740 virtual void SAL_CALL
removeByName( const OUString
& aName
) override
;
743 virtual css::uno::Any SAL_CALL
getByName( const OUString
& aName
) override
;
744 virtual css::uno::Sequence
< OUString
> SAL_CALL
getElementNames() override
;
745 virtual sal_Bool SAL_CALL
hasByName( const OUString
& aName
) override
;
748 virtual sal_Int32 SAL_CALL
getCount() override
;
749 virtual css::uno::Any SAL_CALL
getByIndex( sal_Int32 Index
) override
;
751 /// XEnumerationAccess
752 virtual css::uno::Reference
< css::container::XEnumeration
> SAL_CALL
753 createEnumeration() override
;
756 virtual css::uno::Type SAL_CALL
getElementType() override
;
757 virtual sal_Bool SAL_CALL
hasElements() override
;
760 virtual OUString SAL_CALL
getImplementationName() override
;
761 virtual sal_Bool SAL_CALL
supportsService( const OUString
& ServiceName
) override
;
762 virtual css::uno::Sequence
< OUString
> SAL_CALL
getSupportedServiceNames() override
;
765 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */