Bump version to 4.3-4
[LibreOffice.git] / sc / inc / docuno.hxx
blob61881d4e581b3479ec2bbb3603164e54da814f9e
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
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 .
20 #ifndef INCLUDED_SC_INC_DOCUNO_HXX
21 #define INCLUDED_SC_INC_DOCUNO_HXX
23 #include "address.hxx"
24 #include <sfx2/sfxbasemodel.hxx>
25 #include <svl/lstner.hxx>
26 #include <svx/fmdmod.hxx>
27 #include <com/sun/star/view/XRenderable.hpp>
28 #include <com/sun/star/style/XStyleFamiliesSupplier.hpp>
29 #include <com/sun/star/document/XActionLockable.hpp>
30 #include <com/sun/star/document/XLinkTargetSupplier.hpp>
31 #include <com/sun/star/drawing/XDrawPagesSupplier.hpp>
32 #include <com/sun/star/drawing/XDrawPages.hpp>
33 #include <com/sun/star/sheet/XGoalSeek.hpp>
34 #include <com/sun/star/sheet/XCalculatable.hpp>
35 #include <com/sun/star/sheet/XScenarios.hpp>
36 #include <com/sun/star/sheet/XConsolidatable.hpp>
37 #include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
38 #include <com/sun/star/sheet/XSpreadsheets2.hpp>
39 #include <com/sun/star/sheet/XDocumentAuditing.hpp>
40 #include <com/sun/star/lang/XServiceInfo.hpp>
41 #include <com/sun/star/util/XProtectable.hpp>
42 #include <com/sun/star/container/XEnumerationAccess.hpp>
43 #include <com/sun/star/table/XTableColumns.hpp>
44 #include <com/sun/star/table/XTableRows.hpp>
45 #include <com/sun/star/sheet/XSheetAnnotations.hpp>
46 #include <com/sun/star/beans/XPropertySet.hpp>
47 #include <com/sun/star/sheet/XCellRangesAccess.hpp>
48 #include <com/sun/star/sheet/opencl/XOpenCLSelection.hpp>
49 #include <com/sun/star/sheet/opencl/OpenCLPlatform.hpp>
50 #include <com/sun/star/util/XChangesNotifier.hpp>
51 #include <cppuhelper/implbase2.hxx>
52 #include <cppuhelper/implbase3.hxx>
53 #include <cppuhelper/implbase4.hxx>
54 #include <cppuhelper/implbase5.hxx>
55 #include <cppuhelper/interfacecontainer.h>
56 #include <svl/itemprop.hxx>
57 #include "drwlayer.hxx"
59 class ScDocShell;
60 class ScAnnotationObj;
61 class ScMarkData;
62 class ScPrintFuncCache;
63 class ScPrintSelectionStatus;
64 class ScTableColumnObj;
65 class ScTableRowObj;
66 class ScTableSheetObj;
67 class ScRangeList;
68 class ScPrintUIOptions;
69 class ScSheetSaveData;
71 class SC_DLLPUBLIC ScModelObj : public SfxBaseModel,
72 public com::sun::star::sheet::XSpreadsheetDocument,
73 public com::sun::star::document::XActionLockable,
74 public com::sun::star::sheet::XCalculatable,
75 public com::sun::star::util::XProtectable,
76 public com::sun::star::drawing::XDrawPagesSupplier,
77 public com::sun::star::sheet::XGoalSeek,
78 public com::sun::star::sheet::XConsolidatable,
79 public com::sun::star::sheet::XDocumentAuditing,
80 public com::sun::star::style::XStyleFamiliesSupplier,
81 public com::sun::star::view::XRenderable,
82 public com::sun::star::document::XLinkTargetSupplier,
83 public com::sun::star::beans::XPropertySet,
84 public SvxFmMSFactory, ///< derived from XMultiServiceFactory
85 public com::sun::star::lang::XServiceInfo,
86 public ::com::sun::star::util::XChangesNotifier,
87 public com::sun::star::sheet::opencl::XOpenCLSelection
89 private:
90 SfxItemPropertySet aPropSet;
91 ScDocShell* pDocShell;
92 ScPrintFuncCache* pPrintFuncCache;
93 ScPrintUIOptions* pPrinterOptions;
94 com::sun::star::uno::Reference<com::sun::star::uno::XAggregation> xNumberAgg;
95 com::sun::star::uno::Reference<com::sun::star::uno::XInterface> xDrawGradTab;
96 com::sun::star::uno::Reference<com::sun::star::uno::XInterface> xDrawHatchTab;
97 com::sun::star::uno::Reference<com::sun::star::uno::XInterface> xDrawBitmapTab;
98 com::sun::star::uno::Reference<com::sun::star::uno::XInterface> xDrawTrGradTab;
99 com::sun::star::uno::Reference<com::sun::star::uno::XInterface> xDrawMarkerTab;
100 com::sun::star::uno::Reference<com::sun::star::uno::XInterface> xDrawDashTab;
101 com::sun::star::uno::Reference<com::sun::star::uno::XInterface> xChartDataProv;
102 com::sun::star::uno::Reference<com::sun::star::uno::XInterface> xObjProvider;
104 ::cppu::OInterfaceContainerHelper maChangesListeners;
106 bool FillRenderMarkData( const com::sun::star::uno::Any& aSelection,
107 const com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue >& rOptions,
108 ScMarkData& rMark, ScPrintSelectionStatus& rStatus, OUString& rPagesStr ) const;
109 com::sun::star::uno::Reference<com::sun::star::uno::XAggregation> GetFormatter();
110 void HandleCalculateEvents();
112 css::uno::Reference<css::uno::XInterface> create(
113 OUString const & aServiceSpecifier,
114 css::uno::Sequence<css::uno::Any> const * arguments);
116 OUString maBuildId;
117 protected:
118 const SfxItemPropertySet& GetPropertySet() const { return aPropSet; }
120 public:
121 ScModelObj(ScDocShell* pDocSh);
122 virtual ~ScModelObj();
124 /// create ScModelObj and set at pDocSh (SetBaseModel)
125 static void CreateAndSet(ScDocShell* pDocSh);
127 ScDocument* GetDocument() const;
128 SfxObjectShell* GetEmbeddedObject() const;
130 void UpdateAllRowHeights();
132 void BeforeXMLLoading();
133 void AfterXMLLoading(bool bRet);
134 ScSheetSaveData* GetSheetSaveData();
136 void RepaintRange( const ScRange& rRange );
137 void RepaintRange( const ScRangeList& rRange );
139 bool HasChangesListeners() const;
141 void NotifyChanges( const OUString& rOperation, const ScRangeList& rRanges,
142 const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& rProperties =
143 ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >() );
145 virtual ::com::sun::star::uno::Any SAL_CALL queryInterface(
146 const ::com::sun::star::uno::Type & rType )
147 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
148 virtual void SAL_CALL acquire() throw() SAL_OVERRIDE;
149 virtual void SAL_CALL release() throw() SAL_OVERRIDE;
151 virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) SAL_OVERRIDE;
153 /// XSpreadsheetDocument
154 virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSpreadsheets > SAL_CALL
155 getSheets() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
157 /// XStyleFamiliesSupplier
158 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > SAL_CALL
159 getStyleFamilies() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
161 /// XRenderable
162 virtual sal_Int32 SAL_CALL getRendererCount( const ::com::sun::star::uno::Any& aSelection,
163 const ::com::sun::star::uno::Sequence<
164 ::com::sun::star::beans::PropertyValue >& xOptions )
165 throw (::com::sun::star::lang::IllegalArgumentException,
166 ::com::sun::star::uno::RuntimeException,
167 std::exception) SAL_OVERRIDE;
168 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL
169 getRenderer( sal_Int32 nRenderer, const ::com::sun::star::uno::Any& aSelection,
170 const ::com::sun::star::uno::Sequence<
171 ::com::sun::star::beans::PropertyValue >& xOptions )
172 throw (::com::sun::star::lang::IllegalArgumentException,
173 ::com::sun::star::uno::RuntimeException,
174 std::exception) SAL_OVERRIDE;
175 virtual void SAL_CALL render( sal_Int32 nRenderer, const ::com::sun::star::uno::Any& aSelection,
176 const ::com::sun::star::uno::Sequence<
177 ::com::sun::star::beans::PropertyValue >& xOptions )
178 throw (::com::sun::star::lang::IllegalArgumentException,
179 ::com::sun::star::uno::RuntimeException,
180 std::exception) SAL_OVERRIDE;
182 /// XLinkTargetSupplier
183 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > SAL_CALL
184 getLinks() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
186 /// XActionLockable
187 virtual sal_Bool SAL_CALL isActionLocked() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
188 virtual void SAL_CALL addActionLock() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
189 virtual void SAL_CALL removeActionLock() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
190 virtual void SAL_CALL setActionLocks( sal_Int16 nLock )
191 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
192 virtual sal_Int16 SAL_CALL resetActionLocks() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
194 virtual void SAL_CALL lockControllers() throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
195 virtual void SAL_CALL unlockControllers() throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
197 /// XCalculatable
198 virtual void SAL_CALL calculate() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
199 virtual void SAL_CALL calculateAll() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
200 virtual sal_Bool SAL_CALL isAutomaticCalculationEnabled()
201 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
202 virtual void SAL_CALL enableAutomaticCalculation( sal_Bool bEnabled )
203 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
205 /// XProtectable
206 virtual void SAL_CALL protect( const OUString& aPassword )
207 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
208 virtual void SAL_CALL unprotect( const OUString& aPassword )
209 throw(::com::sun::star::lang::IllegalArgumentException,
210 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
211 virtual sal_Bool SAL_CALL isProtected() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
213 /// XDrawPagesSupplier
214 virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPages > SAL_CALL
215 getDrawPages() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
217 /// XGoalSeek
218 virtual ::com::sun::star::sheet::GoalResult SAL_CALL seekGoal(
219 const ::com::sun::star::table::CellAddress& aFormulaPosition,
220 const ::com::sun::star::table::CellAddress& aVariablePosition,
221 const OUString& aGoalValue )
222 throw (::com::sun::star::uno::RuntimeException,
223 std::exception) SAL_OVERRIDE;
225 /// XConsolidatable
226 virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XConsolidationDescriptor >
227 SAL_CALL createConsolidationDescriptor( sal_Bool bEmpty )
228 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
229 virtual void SAL_CALL consolidate( const ::com::sun::star::uno::Reference<
230 ::com::sun::star::sheet::XConsolidationDescriptor >& xDescriptor )
231 throw (::com::sun::star::uno::RuntimeException,
232 std::exception) SAL_OVERRIDE;
234 /// XDocumentAuditing
235 virtual void SAL_CALL refreshArrows() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
237 /// XViewDataSupplier
238 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL getViewData( )
239 throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
241 /// XPropertySet
242 virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >
243 SAL_CALL getPropertySetInfo()
244 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
245 virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName,
246 const ::com::sun::star::uno::Any& aValue )
247 throw(::com::sun::star::beans::UnknownPropertyException,
248 ::com::sun::star::beans::PropertyVetoException,
249 ::com::sun::star::lang::IllegalArgumentException,
250 ::com::sun::star::lang::WrappedTargetException,
251 ::com::sun::star::uno::RuntimeException,
252 std::exception) SAL_OVERRIDE;
253 virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue(
254 const OUString& PropertyName )
255 throw(::com::sun::star::beans::UnknownPropertyException,
256 ::com::sun::star::lang::WrappedTargetException,
257 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
258 virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName,
259 const ::com::sun::star::uno::Reference<
260 ::com::sun::star::beans::XPropertyChangeListener >& xListener )
261 throw(::com::sun::star::beans::UnknownPropertyException,
262 ::com::sun::star::lang::WrappedTargetException,
263 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
264 virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName,
265 const ::com::sun::star::uno::Reference<
266 ::com::sun::star::beans::XPropertyChangeListener >& aListener )
267 throw(::com::sun::star::beans::UnknownPropertyException,
268 ::com::sun::star::lang::WrappedTargetException,
269 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
270 virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName,
271 const ::com::sun::star::uno::Reference<
272 ::com::sun::star::beans::XVetoableChangeListener >& aListener )
273 throw(::com::sun::star::beans::UnknownPropertyException,
274 ::com::sun::star::lang::WrappedTargetException,
275 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
276 virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName,
277 const ::com::sun::star::uno::Reference<
278 ::com::sun::star::beans::XVetoableChangeListener >& aListener )
279 throw(::com::sun::star::beans::UnknownPropertyException,
280 ::com::sun::star::lang::WrappedTargetException,
281 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
283 /// XMultiServiceFactory
284 virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL
285 createInstance( const OUString& aServiceSpecifier )
286 throw(::com::sun::star::uno::Exception,
287 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
288 virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL
289 createInstanceWithArguments( const OUString& ServiceSpecifier,
290 const ::com::sun::star::uno::Sequence<
291 ::com::sun::star::uno::Any >& Arguments )
292 throw(::com::sun::star::uno::Exception,
293 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
294 virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getAvailableServiceNames()
295 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
297 /// XServiceInfo
298 virtual OUString SAL_CALL getImplementationName()
299 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
300 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName )
301 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
302 virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames()
303 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
305 /// XUnoTunnel
306 virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence<
307 sal_Int8 >& aIdentifier )
308 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
310 static const com::sun::star::uno::Sequence<sal_Int8>& getUnoTunnelId();
311 static ScModelObj* getImplementation( const com::sun::star::uno::Reference<
312 com::sun::star::uno::XInterface> xObj );
314 /// XTypeProvider
315 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes()
316 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
317 virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId()
318 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
320 /// XChangesNotifier
321 virtual void SAL_CALL addChangesListener( const ::com::sun::star::uno::Reference<
322 ::com::sun::star::util::XChangesListener >& aListener )
323 throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
324 virtual void SAL_CALL removeChangesListener( const ::com::sun::star::uno::Reference<
325 ::com::sun::star::util::XChangesListener >& aListener )
326 throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
328 // XOpenCLSelection
329 virtual sal_Bool SAL_CALL isOpenCLEnabled()
330 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
332 virtual void SAL_CALL enableOpenCL(sal_Bool bEnable)
333 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
335 virtual void SAL_CALL enableAutomaticDeviceSelection(sal_Bool bForce)
336 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
338 virtual void SAL_CALL disableAutomaticDeviceSelection()
339 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
341 virtual void SAL_CALL selectOpenCLDevice( sal_Int32 platform, sal_Int32 device )
342 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
344 virtual sal_Int32 SAL_CALL getPlatformID()
345 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
347 virtual sal_Int32 SAL_CALL getDeviceID()
348 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
350 virtual com::sun::star::uno::Sequence< com::sun::star::sheet::opencl::OpenCLPlatform >
351 SAL_CALL getOpenCLPlatforms()
352 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
356 class ScDrawPagesObj : public cppu::WeakImplHelper2<
357 com::sun::star::drawing::XDrawPages,
358 com::sun::star::lang::XServiceInfo>,
359 public SfxListener
361 private:
362 ScDocShell* pDocShell;
364 ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage >
365 GetObjectByIndex_Impl(sal_Int32 nIndex) const;
367 public:
368 ScDrawPagesObj(ScDocShell* pDocSh);
369 virtual ~ScDrawPagesObj();
371 virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) SAL_OVERRIDE;
373 /// XDrawPages
374 virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage > SAL_CALL
375 insertNewByIndex( sal_Int32 nIndex )
376 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
377 virtual void SAL_CALL remove( const ::com::sun::star::uno::Reference<
378 ::com::sun::star::drawing::XDrawPage >& xPage )
379 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
381 /// XIndexAccess
382 virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
383 virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index )
384 throw(::com::sun::star::lang::IndexOutOfBoundsException,
385 ::com::sun::star::lang::WrappedTargetException,
386 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
388 /// XElementAccess
389 virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
390 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
391 virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
393 /// XServiceInfo
394 virtual OUString SAL_CALL getImplementationName()
395 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
396 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName )
397 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
398 virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames()
399 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
403 class ScTableSheetsObj : public cppu::WeakImplHelper5<
404 com::sun::star::sheet::XSpreadsheets2,
405 com::sun::star::sheet::XCellRangesAccess,
406 com::sun::star::container::XEnumerationAccess,
407 com::sun::star::container::XIndexAccess,
408 com::sun::star::lang::XServiceInfo>,
409 public SfxListener
411 private:
412 ScDocShell* pDocShell;
414 ScTableSheetObj* GetObjectByIndex_Impl(sal_Int32 nIndex) const;
415 ScTableSheetObj* GetObjectByName_Impl(const OUString& aName) const;
417 public:
418 ScTableSheetsObj(ScDocShell* pDocSh);
419 virtual ~ScTableSheetsObj();
421 virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) SAL_OVERRIDE;
423 /// XSpreadsheets
424 virtual void SAL_CALL insertNewByName( const OUString& aName, sal_Int16 nPosition )
425 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
426 virtual void SAL_CALL moveByName( const OUString& aName, sal_Int16 nDestination )
427 throw(::com::sun::star::uno::RuntimeException,
428 std::exception) SAL_OVERRIDE;
429 virtual void SAL_CALL copyByName( const OUString& aName,
430 const OUString& aCopy, sal_Int16 nDestination )
431 throw(::com::sun::star::uno::RuntimeException,
432 std::exception) SAL_OVERRIDE;
434 /// XSpreadsheets2
435 virtual sal_Int32 SAL_CALL importSheet(
436 const ::com::sun::star::uno::Reference <
437 ::com::sun::star::sheet::XSpreadsheetDocument > & xDocSrc,
438 const OUString& srcName,
439 const sal_Int32 nDestPosition)
440 throw(::com::sun::star::lang::IllegalArgumentException,
441 ::com::sun::star::lang::IndexOutOfBoundsException,
442 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
444 /// XCellRangesAccess
446 virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XCell >
447 SAL_CALL getCellByPosition( sal_Int32 nColumn, sal_Int32 nRow, sal_Int32 nSheet )
448 throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
450 virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XCellRange >
451 SAL_CALL getCellRangeByPosition( sal_Int32 nLeft, sal_Int32 nTop, sal_Int32 nRight, sal_Int32 nBottom, sal_Int32 nSheet )
452 throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
454 virtual ::com::sun::star::uno::Sequence < ::com::sun::star::uno::Reference< ::com::sun::star::table::XCellRange > >
455 SAL_CALL getCellRangesByName( const OUString& aRange )
456 throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
458 /// XNameContainer
459 virtual void SAL_CALL insertByName( const OUString& aName,
460 const ::com::sun::star::uno::Any& aElement )
461 throw(::com::sun::star::lang::IllegalArgumentException,
462 ::com::sun::star::container::ElementExistException,
463 ::com::sun::star::lang::WrappedTargetException,
464 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
465 virtual void SAL_CALL removeByName( const OUString& Name )
466 throw(::com::sun::star::container::NoSuchElementException,
467 ::com::sun::star::lang::WrappedTargetException,
468 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
470 /// XNameReplace
471 virtual void SAL_CALL replaceByName( const OUString& aName,
472 const ::com::sun::star::uno::Any& aElement )
473 throw(::com::sun::star::lang::IllegalArgumentException,
474 ::com::sun::star::container::NoSuchElementException,
475 ::com::sun::star::lang::WrappedTargetException,
476 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
478 /// XEnumerationAccess
479 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL
480 createEnumeration() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
482 /// XElementAccess
483 virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
484 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
485 virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
487 /// XIndexAccess
488 virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
489 virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index )
490 throw(::com::sun::star::lang::IndexOutOfBoundsException,
491 ::com::sun::star::lang::WrappedTargetException,
492 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
494 /// XNameAccess
495 virtual ::com::sun::star::uno::Any SAL_CALL getByName( const OUString& aName )
496 throw(::com::sun::star::container::NoSuchElementException,
497 ::com::sun::star::lang::WrappedTargetException,
498 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
499 virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getElementNames()
500 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
501 virtual sal_Bool SAL_CALL hasByName( const OUString& aName )
502 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
504 /// XServiceInfo
505 virtual OUString SAL_CALL getImplementationName()
506 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
507 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName )
508 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
509 virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames()
510 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
514 class ScTableColumnsObj : public cppu::WeakImplHelper5<
515 com::sun::star::table::XTableColumns,
516 com::sun::star::container::XEnumerationAccess,
517 com::sun::star::container::XNameAccess,
518 com::sun::star::beans::XPropertySet,
519 com::sun::star::lang::XServiceInfo>,
520 public SfxListener
522 private:
523 ScDocShell* pDocShell;
524 SCTAB nTab;
525 SCCOL nStartCol;
526 SCCOL nEndCol;
528 ScTableColumnObj* GetObjectByIndex_Impl(sal_Int32 nIndex) const;
529 ScTableColumnObj* GetObjectByName_Impl(const OUString& aName) const;
531 public:
532 ScTableColumnsObj(ScDocShell* pDocSh, SCTAB nT,
533 SCCOL nSC, SCCOL nEC);
534 virtual ~ScTableColumnsObj();
536 virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) SAL_OVERRIDE;
538 /// XTableColumns
539 virtual void SAL_CALL insertByIndex( sal_Int32 nIndex, sal_Int32 nCount )
540 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
541 virtual void SAL_CALL removeByIndex( sal_Int32 nIndex, sal_Int32 nCount )
542 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
544 /// XNameAccess
545 virtual ::com::sun::star::uno::Any SAL_CALL getByName( const OUString& aName )
546 throw(::com::sun::star::container::NoSuchElementException,
547 ::com::sun::star::lang::WrappedTargetException,
548 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
549 virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getElementNames()
550 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
551 virtual sal_Bool SAL_CALL hasByName( const OUString& aName )
552 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
554 /// XIndexAccess
555 virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
556 virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index )
557 throw(::com::sun::star::lang::IndexOutOfBoundsException,
558 ::com::sun::star::lang::WrappedTargetException,
559 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
561 /// XEnumerationAccess
562 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL
563 createEnumeration() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
565 /// XElementAccess
566 virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
567 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
568 virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
570 /// XPropertySet
571 virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >
572 SAL_CALL getPropertySetInfo()
573 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
574 virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName,
575 const ::com::sun::star::uno::Any& aValue )
576 throw(::com::sun::star::beans::UnknownPropertyException,
577 ::com::sun::star::beans::PropertyVetoException,
578 ::com::sun::star::lang::IllegalArgumentException,
579 ::com::sun::star::lang::WrappedTargetException,
580 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
581 virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue(
582 const OUString& PropertyName )
583 throw(::com::sun::star::beans::UnknownPropertyException,
584 ::com::sun::star::lang::WrappedTargetException,
585 ::com::sun::star::uno::RuntimeException,
586 std::exception) SAL_OVERRIDE;
587 virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName,
588 const ::com::sun::star::uno::Reference<
589 ::com::sun::star::beans::XPropertyChangeListener >& xListener )
590 throw(::com::sun::star::beans::UnknownPropertyException,
591 ::com::sun::star::lang::WrappedTargetException,
592 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
593 virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName,
594 const ::com::sun::star::uno::Reference<
595 ::com::sun::star::beans::XPropertyChangeListener >& aListener )
596 throw(::com::sun::star::beans::UnknownPropertyException,
597 ::com::sun::star::lang::WrappedTargetException,
598 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
599 virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName,
600 const ::com::sun::star::uno::Reference<
601 ::com::sun::star::beans::XVetoableChangeListener >& aListener )
602 throw(::com::sun::star::beans::UnknownPropertyException,
603 ::com::sun::star::lang::WrappedTargetException,
604 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
605 virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName,
606 const ::com::sun::star::uno::Reference<
607 ::com::sun::star::beans::XVetoableChangeListener >& aListener )
608 throw(::com::sun::star::beans::UnknownPropertyException,
609 ::com::sun::star::lang::WrappedTargetException,
610 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
612 /// XServiceInfo
613 virtual OUString SAL_CALL getImplementationName()
614 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
615 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName )
616 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
617 virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames()
618 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
622 class ScTableRowsObj : public cppu::WeakImplHelper4<
623 com::sun::star::table::XTableRows,
624 com::sun::star::container::XEnumerationAccess,
625 com::sun::star::beans::XPropertySet,
626 com::sun::star::lang::XServiceInfo>,
627 public SfxListener
629 private:
630 ScDocShell* pDocShell;
631 SCTAB nTab;
632 SCROW nStartRow;
633 SCROW nEndRow;
635 ScTableRowObj* GetObjectByIndex_Impl(sal_Int32 nIndex) const;
637 public:
638 ScTableRowsObj(ScDocShell* pDocSh, SCTAB nT,
639 SCROW nSR, SCROW nER);
640 virtual ~ScTableRowsObj();
642 virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) SAL_OVERRIDE;
644 /// XTableRows
645 virtual void SAL_CALL insertByIndex( sal_Int32 nIndex, sal_Int32 nCount )
646 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
647 virtual void SAL_CALL removeByIndex( sal_Int32 nIndex, sal_Int32 nCount )
648 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
650 /// XIndexAccess
651 virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
652 virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index )
653 throw(::com::sun::star::lang::IndexOutOfBoundsException,
654 ::com::sun::star::lang::WrappedTargetException,
655 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
657 /// XEnumerationAccess
658 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL
659 createEnumeration() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
661 /// XElementAccess
662 virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
663 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
664 virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
666 /// XPropertySet
667 virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >
668 SAL_CALL getPropertySetInfo()
669 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
670 virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName,
671 const ::com::sun::star::uno::Any& aValue )
672 throw(::com::sun::star::beans::UnknownPropertyException,
673 ::com::sun::star::beans::PropertyVetoException,
674 ::com::sun::star::lang::IllegalArgumentException,
675 ::com::sun::star::lang::WrappedTargetException,
676 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
677 virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue(
678 const OUString& PropertyName )
679 throw(::com::sun::star::beans::UnknownPropertyException,
680 ::com::sun::star::lang::WrappedTargetException,
681 ::com::sun::star::uno::RuntimeException,
682 std::exception) SAL_OVERRIDE;
683 virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName,
684 const ::com::sun::star::uno::Reference<
685 ::com::sun::star::beans::XPropertyChangeListener >& xListener )
686 throw(::com::sun::star::beans::UnknownPropertyException,
687 ::com::sun::star::lang::WrappedTargetException,
688 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
689 virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName,
690 const ::com::sun::star::uno::Reference<
691 ::com::sun::star::beans::XPropertyChangeListener >& aListener )
692 throw(::com::sun::star::beans::UnknownPropertyException,
693 ::com::sun::star::lang::WrappedTargetException,
694 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
695 virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName,
696 const ::com::sun::star::uno::Reference<
697 ::com::sun::star::beans::XVetoableChangeListener >& aListener )
698 throw(::com::sun::star::beans::UnknownPropertyException,
699 ::com::sun::star::lang::WrappedTargetException,
700 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
701 virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName,
702 const ::com::sun::star::uno::Reference<
703 ::com::sun::star::beans::XVetoableChangeListener >& aListener )
704 throw(::com::sun::star::beans::UnknownPropertyException,
705 ::com::sun::star::lang::WrappedTargetException,
706 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
708 /// XServiceInfo
709 virtual OUString SAL_CALL getImplementationName()
710 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
711 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName )
712 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
713 virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames()
714 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
718 class ScSpreadsheetSettingsObj : public cppu::WeakImplHelper2<
719 com::sun::star::beans::XPropertySet,
720 com::sun::star::lang::XServiceInfo>,
721 public SfxListener
723 private:
724 ScDocShell* pDocShell;
726 public:
727 virtual ~ScSpreadsheetSettingsObj();
729 virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) SAL_OVERRIDE;
731 /// XPropertySet
732 virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >
733 SAL_CALL getPropertySetInfo()
734 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
735 virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName,
736 const ::com::sun::star::uno::Any& aValue )
737 throw(::com::sun::star::beans::UnknownPropertyException,
738 ::com::sun::star::beans::PropertyVetoException,
739 ::com::sun::star::lang::IllegalArgumentException,
740 ::com::sun::star::lang::WrappedTargetException,
741 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
742 virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue(
743 const OUString& PropertyName )
744 throw(::com::sun::star::beans::UnknownPropertyException,
745 ::com::sun::star::lang::WrappedTargetException,
746 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
747 virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName,
748 const ::com::sun::star::uno::Reference<
749 ::com::sun::star::beans::XPropertyChangeListener >& xListener )
750 throw(::com::sun::star::beans::UnknownPropertyException,
751 ::com::sun::star::lang::WrappedTargetException,
752 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
753 virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName,
754 const ::com::sun::star::uno::Reference<
755 ::com::sun::star::beans::XPropertyChangeListener >& aListener )
756 throw(::com::sun::star::beans::UnknownPropertyException,
757 ::com::sun::star::lang::WrappedTargetException,
758 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
759 virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName,
760 const ::com::sun::star::uno::Reference<
761 ::com::sun::star::beans::XVetoableChangeListener >& aListener )
762 throw(::com::sun::star::beans::UnknownPropertyException,
763 ::com::sun::star::lang::WrappedTargetException,
764 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
765 virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName,
766 const ::com::sun::star::uno::Reference<
767 ::com::sun::star::beans::XVetoableChangeListener >& aListener )
768 throw(::com::sun::star::beans::UnknownPropertyException,
769 ::com::sun::star::lang::WrappedTargetException,
770 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
772 /// XServiceInfo
773 virtual OUString SAL_CALL getImplementationName()
774 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
775 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName )
776 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
777 virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames()
778 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
782 class ScAnnotationsObj : public cppu::WeakImplHelper3<
783 com::sun::star::sheet::XSheetAnnotations,
784 com::sun::star::container::XEnumerationAccess,
785 com::sun::star::lang::XServiceInfo>,
786 public SfxListener
788 private:
789 ScDocShell* pDocShell;
790 SCTAB nTab; ///< Collection belongs to the sheet
792 bool GetAddressByIndex_Impl( sal_Int32 nIndex, ScAddress& rPos ) const;
793 ScAnnotationObj* GetObjectByIndex_Impl( sal_Int32 nIndex ) const;
795 public:
796 ScAnnotationsObj(ScDocShell* pDocSh, SCTAB nT);
797 virtual ~ScAnnotationsObj();
799 virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) SAL_OVERRIDE;
801 /// XSheetAnnotations
802 virtual void SAL_CALL insertNew( const ::com::sun::star::table::CellAddress& aPosition,
803 const OUString& aText )
804 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
805 virtual void SAL_CALL removeByIndex( sal_Int32 nIndex )
806 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
808 /// XIndexAccess
809 virtual sal_Int32 SAL_CALL getCount()
810 throw(::com::sun::star::uno::RuntimeException,
811 std::exception) SAL_OVERRIDE;
812 virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index )
813 throw(::com::sun::star::lang::IndexOutOfBoundsException,
814 ::com::sun::star::lang::WrappedTargetException,
815 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
817 /// XEnumerationAccess
818 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL
819 createEnumeration() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
821 /// XElementAccess
822 virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
823 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
824 virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
826 /// XServiceInfo
827 virtual OUString SAL_CALL getImplementationName()
828 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
829 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName )
830 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
831 virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames()
832 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
836 class ScScenariosObj : public cppu::WeakImplHelper4<
837 com::sun::star::sheet::XScenarios,
838 com::sun::star::container::XEnumerationAccess,
839 com::sun::star::container::XIndexAccess,
840 com::sun::star::lang::XServiceInfo>,
841 public SfxListener
843 private:
844 ScDocShell* pDocShell;
845 SCTAB nTab;
847 bool GetScenarioIndex_Impl( const OUString& rName, SCTAB& rIndex );
848 ScTableSheetObj* GetObjectByIndex_Impl(sal_Int32 nIndex);
849 ScTableSheetObj* GetObjectByName_Impl(const OUString& aName);
851 public:
852 ScScenariosObj(ScDocShell* pDocSh, SCTAB nT);
853 virtual ~ScScenariosObj();
855 virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) SAL_OVERRIDE;
857 /// XScenarios
858 virtual void SAL_CALL addNewByName( const OUString& aName,
859 const ::com::sun::star::uno::Sequence<
860 ::com::sun::star::table::CellRangeAddress >& aRanges,
861 const OUString& aComment )
862 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
863 virtual void SAL_CALL removeByName( const OUString& aName )
864 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
866 /// XNameAccess
867 virtual ::com::sun::star::uno::Any SAL_CALL getByName( const OUString& aName )
868 throw(::com::sun::star::container::NoSuchElementException,
869 ::com::sun::star::lang::WrappedTargetException,
870 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
871 virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getElementNames()
872 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
873 virtual sal_Bool SAL_CALL hasByName( const OUString& aName )
874 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
876 /// XIndexAccess
877 virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
878 virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index )
879 throw(::com::sun::star::lang::IndexOutOfBoundsException,
880 ::com::sun::star::lang::WrappedTargetException,
881 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
883 /// XEnumerationAccess
884 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL
885 createEnumeration() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
887 /// XElementAccess
888 virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
889 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
890 virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
892 /// XServiceInfo
893 virtual OUString SAL_CALL getImplementationName()
894 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
895 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName )
896 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
897 virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames()
898 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
902 #endif
904 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */