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