LibreOffice Module sc (master)  1
docuno.hxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
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/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
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 .
18  */
19 
20 #pragma once
21 
22 #include "address.hxx"
23 
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>
55 #include <svl/itemprop.hxx>
56 #include <vcl/ITiledRenderable.hxx>
57 
58 namespace com::sun::star::chart2::data { class XDataProvider; }
59 namespace com::sun::star::sheet::opencl { struct OpenCLPlatform; }
60 
61 class ScDocShell;
62 class ScAnnotationObj;
63 class ScMarkData;
64 class ScPrintFuncCache;
65 struct ScPrintState;
67 class ScTableColumnObj;
68 class ScTableRowObj;
69 class ScTableSheetObj;
70 class ScRangeList;
71 class ScPrintUIOptions;
72 class ScSheetSaveData;
73 struct ScFormatSaveData;
74 
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,
90  public css::lang::XServiceInfo,
91  public css::util::XChangesNotifier,
92  public css::chart2::XDataProviderAccess,
93  public css::sheet::opencl::XOpenCLSelection
94 {
95 private:
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;
110 
112 
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();
119 
120  css::uno::Reference<css::uno::XInterface> create(
121  OUString const & aServiceSpecifier,
122  css::uno::Sequence<css::uno::Any> const * arguments);
123 
124  static bool IsOnEvenPage( sal_Int32 nPage ) { return nPage % 2 == 0; };
125 
126  OUString maBuildId;
127  std::vector<sal_Int32> maValidPages;
128 protected:
129  const SfxItemPropertySet& GetPropertySet() const { return aPropSet; }
130 
132  virtual SdrModel& getSdrModelFromUnoModel() const override;
133 
134 public:
135  ScModelObj(ScDocShell* pDocSh);
136  virtual ~ScModelObj() override;
137 
139  static void CreateAndSet(ScDocShell* pDocSh);
140 
141  ScDocument* GetDocument() const;
142  SfxObjectShell* GetEmbeddedObject() const;
143 
144  void UpdateAllRowHeights();
145 
146  void BeforeXMLLoading();
147  void AfterXMLLoading();
148  ScSheetSaveData* GetSheetSaveData();
149  ScFormatSaveData* GetFormatSaveData();
150 
151  void RepaintRange( const ScRange& rRange );
152  void RepaintRange( const ScRangeList& rRange );
153 
154  bool HasChangesListeners() const;
155 
156  void NotifyChanges( const OUString& rOperation, const ScRangeList& rRanges,
157  const css::uno::Sequence< css::beans::PropertyValue >& rProperties );
158 
159  virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type & rType ) override;
160  virtual void SAL_CALL acquire() throw() override;
161  virtual void SAL_CALL release() throw() override;
162 
163  virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) override;
164 
166  virtual css::uno::Reference< css::sheet::XSpreadsheets > SAL_CALL
167  getSheets() override;
168 
170  virtual ::css::uno::Reference< css::chart2::data::XDataProvider > SAL_CALL
171  createDataProvider() override;
172 
174  virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL
175  getStyleFamilies() override;
176 
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;
185 
187  virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL
188  getLinks() override;
189 
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;
196 
197  virtual void SAL_CALL lockControllers() override;
198  virtual void SAL_CALL unlockControllers() override;
199 
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;
205 
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;
210 
212  virtual css::uno::Reference< css::drawing::XDrawPages > SAL_CALL
213  getDrawPages() override;
214 
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;
220 
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;
225 
227  virtual void SAL_CALL refreshArrows() override;
228 
230  virtual css::uno::Reference< css::container::XIndexAccess > SAL_CALL getViewData( ) override;
231 
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;
246 
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;
254 
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;
259 
261  virtual sal_Int64 SAL_CALL getSomething( const css::uno::Sequence< sal_Int8 >& aIdentifier ) override;
262 
263  static const css::uno::Sequence<sal_Int8>& getUnoTunnelId();
264 
266  virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override;
267  virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override;
268 
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;
272 
273  // XOpenCLSelection
274  virtual sal_Bool SAL_CALL isOpenCLEnabled() override;
275 
276  virtual void SAL_CALL enableOpenCL(sal_Bool bEnable) override;
277 
278  virtual void SAL_CALL enableAutomaticDeviceSelection(sal_Bool bForce) override;
279 
280  virtual void SAL_CALL disableAutomaticDeviceSelection() override;
281 
282  virtual void SAL_CALL selectOpenCLDevice( sal_Int32 platform, sal_Int32 device ) override;
283 
284  virtual sal_Int32 SAL_CALL getPlatformID() override;
285 
286  virtual sal_Int32 SAL_CALL getDeviceID() override;
287 
288  virtual css::uno::Sequence< css::sheet::opencl::OpenCLPlatform >
289  SAL_CALL getOpenCLPlatforms() override;
290 
291  virtual void SAL_CALL enableOpcodeSubsetTest() override;
292 
293  virtual void SAL_CALL disableOpcodeSubsetTest() override;
294 
295  virtual sal_Bool SAL_CALL isOpcodeSubsetTested() override;
296 
297  virtual void SAL_CALL setFormulaCellNumberLimit( sal_Int32 number ) override;
298 
299  virtual sal_Int32 SAL_CALL getFormulaCellNumberLimit() override;
300 
302  virtual void paintTile( VirtualDevice& rDevice,
303  int nOutputWidth,
304  int nOutputHeight,
305  int nTilePosX,
306  int nTilePosY,
307  tools::Long nTileWidth,
308  tools::Long nTileHeight ) override;
309 
311  virtual Size getDocumentSize() override;
312 
314  virtual void setPart(int nPart, bool bAllowChangeFocus = true) override;
315 
317  virtual int getPart() override;
318 
320  virtual int getParts() override;
321 
323  virtual OUString getPartInfo( int nPart ) override;
324 
326  virtual OUString getPartName(int nPart) override;
327 
329  virtual OUString getPartHash( int nPart ) override;
330 
332  virtual VclPtr<vcl::Window> getDocWindow() override;
333 
335  virtual void initializeForTiledRendering(const css::uno::Sequence<css::beans::PropertyValue>& rArguments) override;
336 
338  virtual void postKeyEvent(int nType, int nCharCode, int nKeyCode) override;
339 
341  virtual void postMouseEvent(int nType, int nX, int nY, int nCount, int nButtons, int nModifier) override;
342 
344  virtual void setTextSelection(int nType, int nX, int nY) override;
345 
347  virtual css::uno::Reference<css::datatransfer::XTransferable> getSelection() override;
348 
350  virtual void setGraphicSelection(int nType, int nX, int nY) override;
351 
353  virtual void resetSelection() override;
354 
356  virtual void setClipboard(const css::uno::Reference<css::datatransfer::clipboard::XClipboard>& xClipboard) override;
357 
359  virtual bool isMimeTypeSupported() override;
360 
362  virtual void setClientZoom(int nTilePixelWidth, int nTilePixelHeight, int nTileTwipWidth, int nTileTwipHeight) override;
363 
365  virtual void setOutlineState(bool bColumn, int nLevel, int nIndex, bool bHidden) override;
366 
368  virtual void getRowColumnHeaders(const tools::Rectangle& rRectangle, tools::JsonWriter& rJsonWriter) override;
369 
371  virtual OString getSheetGeometryData(bool bColumns, bool bRows, bool bSizes, bool bHidden,
372  bool bFiltered, bool bGroups) override;
373 
375  virtual void getCellCursor(tools::JsonWriter& rJsonWriter) override;
376 
378  virtual PointerStyle getPointer() override;
379 
381  void getTrackedChanges(tools::JsonWriter&) override;
382 
384  virtual void setClientVisibleArea(const tools::Rectangle& rRectangle) override;
385 
387  void getPostIts(tools::JsonWriter& rJsonWriter) override;
388 
390  void getPostItsPos(tools::JsonWriter& rJsonWriter) override;
391 
393  virtual void completeFunction(const OUString& rFunctionName) override;
394 };
395 
396 class ScDrawPagesObj final : public cppu::WeakImplHelper<
397  css::drawing::XDrawPages,
398  css::lang::XServiceInfo>,
399  public SfxListener
400 {
401 private:
403 
404 css::uno::Reference< css::drawing::XDrawPage >
405  GetObjectByIndex_Impl(sal_Int32 nIndex) const;
406 
407 public:
408  ScDrawPagesObj(ScDocShell* pDocSh);
409  virtual ~ScDrawPagesObj() override;
410 
411  virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) override;
412 
414  virtual css::uno::Reference< css::drawing::XDrawPage > SAL_CALL
415  insertNewByIndex( sal_Int32 nIndex ) override;
416  virtual void SAL_CALL remove( const css::uno::Reference< css::drawing::XDrawPage >& xPage ) override;
417 
419  virtual sal_Int32 SAL_CALL getCount() override;
420  virtual css::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) override;
421 
423  virtual css::uno::Type SAL_CALL getElementType() override;
424  virtual sal_Bool SAL_CALL hasElements() override;
425 
427  virtual OUString SAL_CALL getImplementationName() override;
428  virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
429  virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
430 };
431 
432 class ScTableSheetsObj final : public cppu::WeakImplHelper<
433  css::sheet::XSpreadsheets2,
434  css::sheet::XCellRangesAccess,
435  css::container::XEnumerationAccess,
436  css::container::XIndexAccess,
437  css::lang::XServiceInfo>,
438  public SfxListener
439 {
440 private:
442 
443  rtl::Reference<ScTableSheetObj> GetObjectByIndex_Impl(sal_Int32 nIndex) const;
444  rtl::Reference<ScTableSheetObj> GetObjectByName_Impl(const OUString& aName) const;
445 
446 public:
447  ScTableSheetsObj(ScDocShell* pDocSh);
448  virtual ~ScTableSheetsObj() override;
449 
450  virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) override;
451 
453  virtual void SAL_CALL insertNewByName( const OUString& aName, sal_Int16 nPosition ) override;
454  virtual void SAL_CALL moveByName( const OUString& aName, sal_Int16 nDestination ) override;
455  virtual void SAL_CALL copyByName( const OUString& aName,
456  const OUString& aCopy, sal_Int16 nDestination ) override;
457 
459  virtual sal_Int32 SAL_CALL importSheet(
460  const css::uno::Reference< css::sheet::XSpreadsheetDocument > & xDocSrc,
461  const OUString& srcName,
462  sal_Int32 nDestPosition) override;
463 
465 
466  virtual css::uno::Reference< css::table::XCell >
467  SAL_CALL getCellByPosition( sal_Int32 nColumn, sal_Int32 nRow, sal_Int32 nSheet ) override;
468 
469  virtual css::uno::Reference< css::table::XCellRange >
470  SAL_CALL getCellRangeByPosition( sal_Int32 nLeft, sal_Int32 nTop, sal_Int32 nRight, sal_Int32 nBottom, sal_Int32 nSheet ) override;
471 
472  virtual css::uno::Sequence < css::uno::Reference< css::table::XCellRange > >
473  SAL_CALL getCellRangesByName( const OUString& aRange ) override;
474 
476  virtual void SAL_CALL insertByName( const OUString& aName,
477  const css::uno::Any& aElement ) override;
478  virtual void SAL_CALL removeByName( const OUString& Name ) override;
479 
481  virtual void SAL_CALL replaceByName( const OUString& aName,
482  const css::uno::Any& aElement ) override;
483 
485  virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL
486  createEnumeration() override;
487 
489  virtual css::uno::Type SAL_CALL getElementType() override;
490  virtual sal_Bool SAL_CALL hasElements() override;
491 
493  virtual sal_Int32 SAL_CALL getCount() override;
494  virtual css::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) override;
495 
497  virtual css::uno::Any SAL_CALL getByName( const OUString& aName ) override;
498  virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override;
499  virtual sal_Bool SAL_CALL hasByName( const OUString& aName ) override;
500 
502  virtual OUString SAL_CALL getImplementationName() override;
503  virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
504  virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
505 };
506 
507 class ScTableColumnsObj final : public cppu::WeakImplHelper<
508  css::table::XTableColumns,
509  css::container::XEnumerationAccess,
510  css::container::XNameAccess,
511  css::beans::XPropertySet,
512  css::lang::XServiceInfo>,
513  public SfxListener
514 {
515 private:
520 
521  rtl::Reference<ScTableColumnObj> GetObjectByIndex_Impl(sal_Int32 nIndex) const;
522  rtl::Reference<ScTableColumnObj> GetObjectByName_Impl(const OUString& aName) const;
523 
524 public:
525  ScTableColumnsObj(ScDocShell* pDocSh, SCTAB nT,
526  SCCOL nSC, SCCOL nEC);
527  virtual ~ScTableColumnsObj() override;
528 
529  virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) override;
530 
532  virtual void SAL_CALL insertByIndex( sal_Int32 nIndex, sal_Int32 nCount ) override;
533  virtual void SAL_CALL removeByIndex( sal_Int32 nIndex, sal_Int32 nCount ) override;
534 
536  virtual css::uno::Any SAL_CALL getByName( const OUString& aName ) override;
537  virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override;
538  virtual sal_Bool SAL_CALL hasByName( const OUString& aName ) override;
539 
541  virtual sal_Int32 SAL_CALL getCount() override;
542  virtual css::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) override;
543 
545  virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL
546  createEnumeration() override;
547 
549  virtual css::uno::Type SAL_CALL getElementType() override;
550  virtual sal_Bool SAL_CALL hasElements() override;
551 
553  virtual css::uno::Reference< css::beans::XPropertySetInfo >
554  SAL_CALL getPropertySetInfo() override;
555  virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName,
556  const css::uno::Any& aValue ) override;
557  virtual css::uno::Any SAL_CALL getPropertyValue(
558  const OUString& PropertyName ) override;
559  virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName,
560  const css::uno::Reference< css::beans::XPropertyChangeListener >& xListener ) override;
561  virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName,
562  const css::uno::Reference< css::beans::XPropertyChangeListener >& aListener ) override;
563  virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName,
564  const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
565  virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName,
566  const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
567 
569  virtual OUString SAL_CALL getImplementationName() override;
570  virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
571  virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
572 };
573 
574 class ScTableRowsObj final : public cppu::WeakImplHelper<
575  css::table::XTableRows,
576  css::container::XEnumerationAccess,
577  css::beans::XPropertySet,
578  css::lang::XServiceInfo>,
579  public SfxListener
580 {
581 private:
586 
587  rtl::Reference<ScTableRowObj> GetObjectByIndex_Impl(sal_Int32 nIndex) const;
588 
589 public:
590  ScTableRowsObj(ScDocShell* pDocSh, SCTAB nT,
591  SCROW nSR, SCROW nER);
592  virtual ~ScTableRowsObj() override;
593 
594  virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) override;
595 
597  virtual void SAL_CALL insertByIndex( sal_Int32 nIndex, sal_Int32 nCount ) override;
598  virtual void SAL_CALL removeByIndex( sal_Int32 nIndex, sal_Int32 nCount ) override;
599 
601  virtual sal_Int32 SAL_CALL getCount() override;
602  virtual css::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) override;
603 
605  virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL
606  createEnumeration() override;
607 
609  virtual css::uno::Type SAL_CALL getElementType() override;
610  virtual sal_Bool SAL_CALL hasElements() override;
611 
613  virtual css::uno::Reference< css::beans::XPropertySetInfo >
614  SAL_CALL getPropertySetInfo() override;
615  virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName,
616  const css::uno::Any& aValue ) override;
617  virtual css::uno::Any SAL_CALL getPropertyValue( const OUString& PropertyName ) override;
618  virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName,
619  const css::uno::Reference< css::beans::XPropertyChangeListener >& xListener ) override;
620  virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName,
621  const css::uno::Reference< css::beans::XPropertyChangeListener >& aListener ) override;
622  virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName,
623  const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
624  virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName,
625  const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
626 
628  virtual OUString SAL_CALL getImplementationName() override;
629  virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
630  virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
631 };
632 
633 class ScSpreadsheetSettingsObj final : public cppu::WeakImplHelper<
634  css::beans::XPropertySet,
635  css::lang::XServiceInfo>,
636  public SfxListener
637 {
638 public:
639  virtual ~ScSpreadsheetSettingsObj() override;
640 
642  virtual css::uno::Reference< css::beans::XPropertySetInfo >
643  SAL_CALL getPropertySetInfo() override;
644  virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName,
645  const css::uno::Any& aValue ) override;
646  virtual css::uno::Any SAL_CALL getPropertyValue( const OUString& PropertyName ) override;
647  virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName,
648  const css::uno::Reference< css::beans::XPropertyChangeListener >& xListener ) override;
649  virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName,
650  const css::uno::Reference< css::beans::XPropertyChangeListener >& aListener ) override;
651  virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName,
652  const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
653  virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName,
654  const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
655 
657  virtual OUString SAL_CALL getImplementationName() override;
658  virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
659  virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
660 };
661 
662 class SAL_DLLPUBLIC_RTTI ScAnnotationsObj final : public cppu::WeakImplHelper<
663  css::sheet::XSheetAnnotations,
664  css::container::XEnumerationAccess,
665  css::lang::XServiceInfo>,
666  public SfxListener
667 {
668 private:
671 
672  bool GetAddressByIndex_Impl( sal_Int32 nIndex, ScAddress& rPos ) const;
673  rtl::Reference<ScAnnotationObj> GetObjectByIndex_Impl( sal_Int32 nIndex ) const;
674 
675 public:
676  ScAnnotationsObj(ScDocShell* pDocSh, SCTAB nT);
677  virtual ~ScAnnotationsObj() override;
678 
679  virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) override;
680 
681  ScDocShell* GetDocShell() const { return pDocShell; }
682 
684  virtual void SAL_CALL insertNew( const css::table::CellAddress& aPosition,
685  const OUString& aText ) override;
686  virtual void SAL_CALL removeByIndex( sal_Int32 nIndex ) override;
687 
689  virtual sal_Int32 SAL_CALL getCount() override;
690  virtual css::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) override;
691 
693  virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL
694  createEnumeration() override;
695 
697  virtual css::uno::Type SAL_CALL getElementType() override;
698  virtual sal_Bool SAL_CALL hasElements() override;
699 
701  virtual OUString SAL_CALL getImplementationName() override;
702  virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
703  virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
704 };
705 
706 class ScScenariosObj final : public cppu::WeakImplHelper<
707  css::sheet::XScenarios,
708  css::container::XEnumerationAccess,
709  css::container::XIndexAccess,
710  css::lang::XServiceInfo>,
711  public SfxListener
712 {
713 private:
716 
717  bool GetScenarioIndex_Impl( std::u16string_view rName, SCTAB& rIndex );
718  rtl::Reference<ScTableSheetObj> GetObjectByIndex_Impl(sal_Int32 nIndex);
719  rtl::Reference<ScTableSheetObj> GetObjectByName_Impl(std::u16string_view aName);
720 
721 public:
722  ScScenariosObj(ScDocShell* pDocSh, SCTAB nT);
723  virtual ~ScScenariosObj() override;
724 
725  virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) override;
726 
728  virtual void SAL_CALL addNewByName( const OUString& aName,
729  const css::uno::Sequence< css::table::CellRangeAddress >& aRanges,
730  const OUString& aComment ) override;
731  virtual void SAL_CALL removeByName( const OUString& aName ) override;
732 
734  virtual css::uno::Any SAL_CALL getByName( const OUString& aName ) override;
735  virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override;
736  virtual sal_Bool SAL_CALL hasByName( const OUString& aName ) override;
737 
739  virtual sal_Int32 SAL_CALL getCount() override;
740  virtual css::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) override;
741 
743  virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL
744  createEnumeration() override;
745 
747  virtual css::uno::Type SAL_CALL getElementType() override;
748  virtual sal_Bool SAL_CALL hasElements() override;
749 
751  virtual OUString SAL_CALL getImplementationName() override;
752  virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
753  virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
754 };
755 
756 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Stores the selection in the ScPrintFuncCache so it is only used for the same selection again...
Definition: pfuncache.hxx:45
SCTAB nTab
Collection belongs to the sheet.
Definition: docuno.hxx:670
virtual void SAL_CALL acquire() override
Type
todo: It should be possible to have MarkArrays for each table, in order to enable "search all" across...
Definition: markdata.hxx:42
signed char sal_Int8
css::uno::Reference< css::uno::XInterface > xObjProvider
Definition: docuno.hxx:109
ScDocShell * pDocShell
Definition: docuno.hxx:714
css::uno::Reference< css::uno::XInterface > xDrawBitmapTab
Definition: docuno.hxx:104
long Long
ScDocShell * pDocShell
Definition: docuno.hxx:669
virtual SdrModel & getSdrModelFromUnoModel() const =0
css::uno::Sequence< OUString > getSupportedServiceNames()
OUString getImplementationName()
ScDocShell * pDocShell
Definition: docuno.hxx:516
css::uno::Reference< css::uno::XInterface > xDrawHatchTab
Definition: docuno.hxx:103
void Notify(SfxBroadcaster &aBC, const SfxHint &aHint) override
css::uno::Reference< css::uno::XInterface > xDrawMarkerTab
Definition: docuno.hxx:106
Stores the data for printing that is needed from several sheets, so it doesn't have to be calculated ...
Definition: pfuncache.hxx:84
bool getPropertyValue(ValueType &rValue, css::uno::Reference< css::beans::XPropertySet > const &xPropSet, OUString const &propName)
css::uno::Reference< css::uno::XInterface > xDrawGradTab
Definition: docuno.hxx:102
bool CPPUHELPER_DLLPUBLIC supportsService(css::lang::XServiceInfo *implementation, rtl::OUString const &name)
ScDocShell * pDocShell
Definition: docuno.hxx:402
ScDocShell * pDocShell
Definition: docuno.hxx:97
virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type &rType) override
Reference< deployment::XPackageRegistry > create(Reference< deployment::XPackageRegistry > const &xRootRegistry, OUString const &context, OUString const &cachePath, Reference< XComponentContext > const &xComponentContext)
css::uno::Reference< css::uno::XInterface > xDrawTrGradTab
Definition: docuno.hxx:105
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 >())
Definition: docsh.hxx:478
ScDocShell * GetDocShell() const
Definition: docuno.hxx:681
css::uno::Reference< css::uno::XAggregation > xNumberAgg
Definition: docuno.hxx:101
sal_Int16 SCCOL
Definition: types.hxx:21
unsigned char sal_Bool
css::uno::Reference< css::uno::XInterface > xChartDataProv
Definition: docuno.hxx:108
std::unique_ptr< ScPrintFuncCache > pPrintFuncCache
Definition: docuno.hxx:98
bool setPropertyValue(uno::Sequence< beans::PropertyValue > &aProp, const OUString &aName, const uno::Any &aValue)
ScDocShell * pDocShell
Definition: docuno.hxx:441
sal_Int32 SCROW
Definition: types.hxx:17
SCROW nStartRow
Definition: docuno.hxx:584
std::unique_ptr< ScPrintUIOptions > pPrinterOptions
Definition: docuno.hxx:99
std::vector< sal_Int32 > maValidPages
Definition: docuno.hxx:127
ScDocShell * pDocShell
Definition: docuno.hxx:582
QPRO_FUNC_TYPE nType
Definition: qproform.cxx:400
PointerStyle
const SfxItemPropertySet & GetPropertySet() const
Definition: docuno.hxx:129
css::uno::Reference< css::uno::XInterface > xDrawDashTab
Definition: docuno.hxx:107
::comphelper::OInterfaceContainerHelper2 maChangesListeners
Definition: docuno.hxx:111
SCROW nEndRow
Definition: docuno.hxx:585
struct _ADOIndex Index
#define SC_DLLPUBLIC
Definition: scdllapi.h:27
std::unique_ptr< ScPrintState > m_pPrintState
Definition: docuno.hxx:100
SfxItemPropertySet aPropSet
Definition: docuno.hxx:96
sal_Int16 SCTAB
Definition: types.hxx:22