Version 3.6.0.4, tag libreoffice-3.6.0.4
[LibreOffice.git] / embeddedobj / source / inc / commonembobj.hxx
blob14c992fc0d0944d6cefbe2f5f51b0a56c77d965d
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*************************************************************************
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
6 * Copyright 2000, 2010 Oracle and/or its affiliates.
8 * OpenOffice.org - a multi-platform office productivity suite
10 * This file is part of OpenOffice.org.
12 * OpenOffice.org is free software: you can redistribute it and/or modify
13 * it under the terms of the GNU Lesser General Public License version 3
14 * only, as published by the Free Software Foundation.
16 * OpenOffice.org is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU Lesser General Public License version 3 for more details
20 * (a copy is included in the LICENSE file that accompanied this code).
22 * You should have received a copy of the GNU Lesser General Public License
23 * version 3 along with OpenOffice.org. If not, see
24 * <http://www.openoffice.org/license.html>
25 * for a copy of the LGPLv3 License.
27 ************************************************************************/
29 #ifndef _INC_COMMONEMBOBJ_HXX_
30 #define _INC_COMMONEMBOBJ_HXX_
32 #include <com/sun/star/uno/Sequence.hxx>
33 #include <com/sun/star/uno/Reference.hxx>
34 #include <com/sun/star/uno/Any.hxx>
35 #include <com/sun/star/container/XChild.hpp>
36 #include <com/sun/star/document/XStorageBasedDocument.hpp>
37 #include <com/sun/star/embed/XEmbeddedObject.hpp>
38 #include <com/sun/star/embed/XVisualObject.hpp>
39 #include <com/sun/star/embed/XEmbedPersist.hpp>
40 #include <com/sun/star/embed/XLinkageSupport.hpp>
41 #include <com/sun/star/embed/XClassifiedObject.hpp>
42 #include <com/sun/star/embed/XComponentSupplier.hpp>
43 #include <com/sun/star/embed/XInplaceObject.hpp>
44 #include <com/sun/star/embed/XStateChangeBroadcaster.hpp>
45 #include <com/sun/star/awt/XWindow.hpp>
46 #include <com/sun/star/awt/Rectangle.hpp>
47 #include <com/sun/star/document/XEventBroadcaster.hpp>
48 #include <com/sun/star/util/XCloseable.hpp>
49 #include <com/sun/star/chart2/XDefaultSizeTransmitter.hpp>
50 #include <cppuhelper/weak.hxx>
52 namespace com { namespace sun { namespace star {
53 namespace embed {
54 class XStorage;
56 namespace frame {
57 class XModel;
58 class XFrame;
60 namespace lang {
61 class XMultiServiceFactory;
63 namespace util {
64 class XCloseListener;
66 namespace beans {
67 struct PropertyValue;
68 struct NamedValue;
70 }}}
72 namespace cppu {
73 class OMultiTypeInterfaceContainerHelper;
76 namespace comphelper {
77 class NamedValueCollection;
80 #define NUM_SUPPORTED_STATES 5
81 // #define NUM_SUPPORTED_VERBS 5
83 #include "docholder.hxx"
85 class Interceptor;
87 class OCommonEmbeddedObject : public ::com::sun::star::embed::XEmbeddedObject
88 , public ::com::sun::star::embed::XEmbedPersist
89 , public ::com::sun::star::embed::XLinkageSupport
90 , public ::com::sun::star::embed::XInplaceObject
91 , public ::com::sun::star::container::XChild
92 , public ::com::sun::star::chart2::XDefaultSizeTransmitter
93 , public ::cppu::OWeakObject
95 protected:
96 ::osl::Mutex m_aMutex;
98 DocumentHolder* m_pDocHolder;
100 ::cppu::OMultiTypeInterfaceContainerHelper* m_pInterfaceContainer;
102 sal_Bool m_bReadOnly;
104 sal_Bool m_bDisposed;
105 sal_Bool m_bClosed;
107 sal_Int32 m_nObjectState;
108 sal_Int32 m_nTargetState; // should be -1 exept during state changing
109 sal_Int32 m_nUpdateMode;
111 ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xFactory;
113 ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > m_aDocMediaDescriptor;
115 ::com::sun::star::uno::Sequence< sal_Int8 > m_aClassID;
116 ::rtl::OUString m_aClassName;
118 ::rtl::OUString m_aDocServiceName;
119 ::rtl::OUString m_aPresetFilterName;
121 sal_Int64 m_nMiscStatus;
123 ::com::sun::star::uno::Sequence< ::com::sun::star::embed::VerbDescriptor > m_aObjectVerbs;
125 ::com::sun::star::uno::Sequence< sal_Int32 > m_aAcceptedStates;
126 ::com::sun::star::uno::Sequence< sal_Int32 > m_pIntermediateStatesSeqs[NUM_SUPPORTED_STATES][NUM_SUPPORTED_STATES];
127 ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< sal_Int32 > > m_aVerbTable;
129 ::com::sun::star::uno::Reference< ::com::sun::star::embed::XEmbeddedClient > m_xClientSite;
131 ::rtl::OUString m_aContainerName;
132 ::rtl::OUString m_aDefaultParentBaseURL;
133 ::rtl::OUString m_aModuleName;
134 sal_Bool m_bEmbeddedScriptSupport;
135 sal_Bool m_bDocumentRecoverySupport;
137 Interceptor* m_pInterceptor;
139 // following information will be used between SaveAs and SaveCompleted
140 sal_Bool m_bWaitSaveCompleted;
141 ::rtl::OUString m_aNewEntryName;
142 ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > m_xNewParentStorage;
143 ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > m_xNewObjectStorage;
144 ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > m_aNewDocMediaDescriptor;
146 ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow > m_xClientWindow; // ???
147 ::com::sun::star::awt::Rectangle m_aOwnRectangle;
148 ::com::sun::star::awt::Rectangle m_aClipRectangle;
150 sal_Bool m_bIsLink;
152 // embedded object related stuff
153 ::rtl::OUString m_aEntryName;
154 ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > m_xParentStorage;
155 ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > m_xObjectStorage;
156 ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > m_xRecoveryStorage;
158 // link related stuff
159 ::rtl::OUString m_aLinkURL;
160 ::rtl::OUString m_aLinkFilterName;
161 sal_Bool m_bLinkHasPassword;
162 ::rtl::OUString m_aLinkPassword;
164 ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > m_xParent;
166 sal_Bool m_bHasClonedSize; // the object has cached size
167 ::com::sun::star::awt::Size m_aClonedSize;
168 sal_Int32 m_nClonedMapUnit;
169 ::com::sun::star::awt::Size m_aDefaultSizeForChart_In_100TH_MM;//#i103460# charts do not necessaryly have an own size within ODF files, in this case they need to use the size settings from the surrounding frame, which is made available with this member
171 private:
172 void CommonInit_Impl( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& aObjectProps );
174 void LinkInit_Impl( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& aObjectProps,
175 const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aMediaDescr,
176 const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aObjectDescr );
179 void SwitchOwnPersistence(
180 const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xNewParentStorage,
181 const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xNewObjectStorage,
182 const ::rtl::OUString& aNewName );
184 void SwitchOwnPersistence(
185 const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xNewParentStorage,
186 const ::rtl::OUString& aNewName );
188 ::rtl::OUString GetDocumentServiceName() const { return m_aDocServiceName; }
189 ::rtl::OUString GetPresetFilterName() const { return m_aPresetFilterName; }
191 ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >
192 StoreDocumentToTempStream_Impl( sal_Int32 nStorageFormat,
193 const ::rtl::OUString& aBaseURL,
194 const ::rtl::OUString& aHierarchName );
196 sal_Int32 ConvertVerbToState_Impl( sal_Int32 nVerb );
198 void Deactivate();
200 void StateChangeNotification_Impl( sal_Bool bBeforeChange, sal_Int32 nOldState, sal_Int32 nNewState,::osl::ResettableMutexGuard& _rGuard );
202 void SwitchStateTo_Impl( sal_Int32 nNextState );
204 ::com::sun::star::uno::Sequence< sal_Int32 > GetIntermediateStatesSequence_Impl( sal_Int32 nNewState );
206 ::rtl::OUString GetFilterName( sal_Int32 nVersion ) const;
207 ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseable > LoadDocumentFromStorage_Impl();
209 ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseable > LoadLink_Impl();
211 ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseable > InitNewDocument_Impl();
213 void StoreDocToStorage_Impl( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage,
214 sal_Int32 nStorageVersion,
215 const ::rtl::OUString& aBaseURL,
216 const ::rtl::OUString& aHierarchName,
217 sal_Bool bAttachToStorage );
219 void SwitchDocToStorage_Impl(
220 const ::com::sun::star::uno::Reference< ::com::sun::star::document::XStorageBasedDocument >& xDoc,
221 const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage );
223 void FillDefaultLoadArgs_Impl(
224 const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& i_rxStorage,
225 ::comphelper::NamedValueCollection& o_rLoadArgs
226 ) const;
228 void EmbedAndReparentDoc_Impl(
229 const ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseable >& i_rxDocument
230 ) const;
232 ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseable > CreateDocFromMediaDescr_Impl(
233 const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aMedDescr );
235 ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseable > CreateTempDocFromLink_Impl();
237 ::rtl::OUString GetBaseURL_Impl() const;
238 ::rtl::OUString GetBaseURLFrom_Impl(
239 const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lArguments,
240 const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lObjArgs );
242 public:
243 OCommonEmbeddedObject(
244 const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xFactory,
245 const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& aObjectProps );
247 // no persistance for linked objects, so the descriptors are provided in constructor
248 OCommonEmbeddedObject(
249 const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xFactory,
250 const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& aObjectProps,
251 const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aMediaDescr,
252 const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aObjectDescr );
254 virtual ~OCommonEmbeddedObject();
256 void SaveObject_Impl();
258 void requestPositioning( const ::com::sun::star::awt::Rectangle& aRect );
260 // not a real listener and should not be
261 void PostEvent_Impl( const ::rtl::OUString& aEventName );
263 // XInterface
265 virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& rType )
266 throw( ::com::sun::star::uno::RuntimeException ) ;
268 virtual void SAL_CALL acquire()
269 throw();
271 virtual void SAL_CALL release()
272 throw();
274 // XTypeProvider
276 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes()
277 throw( ::com::sun::star::uno::RuntimeException ) ;
279 virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId()
280 throw( ::com::sun::star::uno::RuntimeException ) ;
282 // XEmbeddedObject
284 virtual void SAL_CALL changeState( sal_Int32 nNewState )
285 throw ( ::com::sun::star::embed::UnreachableStateException,
286 ::com::sun::star::embed::WrongStateException,
287 ::com::sun::star::uno::Exception,
288 ::com::sun::star::uno::RuntimeException );
290 virtual ::com::sun::star::uno::Sequence< sal_Int32 > SAL_CALL getReachableStates()
291 throw ( ::com::sun::star::embed::WrongStateException,
292 ::com::sun::star::uno::RuntimeException );
294 virtual sal_Int32 SAL_CALL getCurrentState()
295 throw ( ::com::sun::star::embed::WrongStateException,
296 ::com::sun::star::uno::RuntimeException );
298 virtual void SAL_CALL doVerb( sal_Int32 nVerbID )
299 throw ( ::com::sun::star::lang::IllegalArgumentException,
300 ::com::sun::star::embed::WrongStateException,
301 ::com::sun::star::embed::UnreachableStateException,
302 ::com::sun::star::uno::Exception,
303 ::com::sun::star::uno::RuntimeException );
305 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::embed::VerbDescriptor > SAL_CALL getSupportedVerbs()
306 throw ( ::com::sun::star::embed::WrongStateException,
307 ::com::sun::star::uno::RuntimeException );
309 virtual void SAL_CALL setClientSite(
310 const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XEmbeddedClient >& xClient )
311 throw ( ::com::sun::star::embed::WrongStateException,
312 ::com::sun::star::uno::RuntimeException );
314 virtual ::com::sun::star::uno::Reference< ::com::sun::star::embed::XEmbeddedClient > SAL_CALL getClientSite()
315 throw ( ::com::sun::star::embed::WrongStateException,
316 ::com::sun::star::uno::RuntimeException );
318 virtual void SAL_CALL update()
319 throw ( ::com::sun::star::embed::WrongStateException,
320 ::com::sun::star::uno::Exception,
321 ::com::sun::star::uno::RuntimeException );
323 virtual void SAL_CALL setUpdateMode( sal_Int32 nMode )
324 throw ( ::com::sun::star::embed::WrongStateException,
325 ::com::sun::star::uno::RuntimeException );
327 virtual sal_Int64 SAL_CALL getStatus( sal_Int64 nAspect )
328 throw ( ::com::sun::star::embed::WrongStateException,
329 ::com::sun::star::uno::RuntimeException );
331 virtual void SAL_CALL setContainerName( const ::rtl::OUString& sName )
332 throw ( ::com::sun::star::uno::RuntimeException );
335 // XVisualObject
337 virtual void SAL_CALL setVisualAreaSize( sal_Int64 nAspect, const ::com::sun::star::awt::Size& aSize )
338 throw ( ::com::sun::star::lang::IllegalArgumentException,
339 ::com::sun::star::embed::WrongStateException,
340 ::com::sun::star::uno::Exception,
341 ::com::sun::star::uno::RuntimeException );
343 virtual ::com::sun::star::awt::Size SAL_CALL getVisualAreaSize( sal_Int64 nAspect )
344 throw ( ::com::sun::star::lang::IllegalArgumentException,
345 ::com::sun::star::embed::WrongStateException,
346 ::com::sun::star::uno::Exception,
347 ::com::sun::star::uno::RuntimeException );
349 virtual ::com::sun::star::embed::VisualRepresentation SAL_CALL getPreferredVisualRepresentation( ::sal_Int64 nAspect )
350 throw ( ::com::sun::star::lang::IllegalArgumentException,
351 ::com::sun::star::embed::WrongStateException,
352 ::com::sun::star::uno::Exception,
353 ::com::sun::star::uno::RuntimeException );
355 virtual sal_Int32 SAL_CALL getMapUnit( sal_Int64 nAspect )
356 throw ( ::com::sun::star::uno::Exception,
357 ::com::sun::star::uno::RuntimeException);
359 // XEmbedPersist
361 virtual void SAL_CALL setPersistentEntry(
362 const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage,
363 const ::rtl::OUString& sEntName,
364 sal_Int32 nEntryConnectionMode,
365 const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lArguments,
366 const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lObjArgs )
367 throw ( ::com::sun::star::lang::IllegalArgumentException,
368 ::com::sun::star::embed::WrongStateException,
369 ::com::sun::star::io::IOException,
370 ::com::sun::star::uno::Exception,
371 ::com::sun::star::uno::RuntimeException );
373 virtual void SAL_CALL storeToEntry( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage, const ::rtl::OUString& sEntName, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lArguments, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lObjArgs )
374 throw ( ::com::sun::star::lang::IllegalArgumentException,
375 ::com::sun::star::embed::WrongStateException,
376 ::com::sun::star::io::IOException,
377 ::com::sun::star::uno::Exception,
378 ::com::sun::star::uno::RuntimeException );
380 virtual void SAL_CALL storeAsEntry(
381 const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage,
382 const ::rtl::OUString& sEntName,
383 const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lArguments,
384 const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lObjArgs )
385 throw ( ::com::sun::star::lang::IllegalArgumentException,
386 ::com::sun::star::embed::WrongStateException,
387 ::com::sun::star::io::IOException,
388 ::com::sun::star::uno::Exception,
389 ::com::sun::star::uno::RuntimeException );
391 virtual void SAL_CALL saveCompleted( sal_Bool bUseNew )
392 throw ( ::com::sun::star::embed::WrongStateException,
393 ::com::sun::star::uno::Exception,
394 ::com::sun::star::uno::RuntimeException );
396 virtual sal_Bool SAL_CALL hasEntry()
397 throw ( ::com::sun::star::embed::WrongStateException,
398 ::com::sun::star::uno::RuntimeException );
400 virtual ::rtl::OUString SAL_CALL getEntryName()
401 throw ( ::com::sun::star::embed::WrongStateException,
402 ::com::sun::star::uno::RuntimeException );
404 // XLinkageSupport
406 virtual void SAL_CALL breakLink( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage,
407 const ::rtl::OUString& sEntName )
408 throw ( ::com::sun::star::lang::IllegalArgumentException,
409 ::com::sun::star::embed::WrongStateException,
410 ::com::sun::star::io::IOException,
411 ::com::sun::star::uno::Exception,
412 ::com::sun::star::uno::RuntimeException );
414 virtual sal_Bool SAL_CALL isLink()
415 throw ( ::com::sun::star::embed::WrongStateException,
416 ::com::sun::star::uno::RuntimeException);
418 virtual ::rtl::OUString SAL_CALL getLinkURL()
419 throw ( ::com::sun::star::embed::WrongStateException,
420 ::com::sun::star::uno::Exception,
421 ::com::sun::star::uno::RuntimeException);
424 // XCommonEmbedPersist
426 virtual void SAL_CALL storeOwn()
427 throw ( ::com::sun::star::embed::WrongStateException,
428 ::com::sun::star::io::IOException,
429 ::com::sun::star::uno::Exception,
430 ::com::sun::star::uno::RuntimeException );
432 virtual sal_Bool SAL_CALL isReadonly()
433 throw ( ::com::sun::star::embed::WrongStateException,
434 ::com::sun::star::uno::RuntimeException );
436 virtual void SAL_CALL reload(
437 const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lArguments,
438 const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lObjArgs )
439 throw ( ::com::sun::star::lang::IllegalArgumentException,
440 ::com::sun::star::embed::WrongStateException,
441 ::com::sun::star::io::IOException,
442 ::com::sun::star::uno::Exception,
443 ::com::sun::star::uno::RuntimeException );
446 // XInplaceObject
448 virtual void SAL_CALL setObjectRectangles( const ::com::sun::star::awt::Rectangle& aPosRect,
449 const ::com::sun::star::awt::Rectangle& aClipRect )
450 throw ( ::com::sun::star::embed::WrongStateException,
451 ::com::sun::star::uno::Exception,
452 ::com::sun::star::uno::RuntimeException );
454 virtual void SAL_CALL enableModeless( sal_Bool bEnable )
455 throw ( ::com::sun::star::embed::WrongStateException,
456 ::com::sun::star::uno::Exception,
457 ::com::sun::star::uno::RuntimeException );
459 virtual void SAL_CALL translateAccelerators(
460 const ::com::sun::star::uno::Sequence< ::com::sun::star::awt::KeyEvent >& aKeys )
461 throw ( ::com::sun::star::embed::WrongStateException,
462 ::com::sun::star::uno::RuntimeException );
464 // XClassifiedObject
466 virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getClassID()
467 throw ( ::com::sun::star::uno::RuntimeException );
469 virtual ::rtl::OUString SAL_CALL getClassName()
470 throw ( ::com::sun::star::uno::RuntimeException );
472 virtual void SAL_CALL setClassInfo(
473 const ::com::sun::star::uno::Sequence< sal_Int8 >& aClassID, const ::rtl::OUString& aClassName )
474 throw ( ::com::sun::star::lang::NoSupportException,
475 ::com::sun::star::uno::RuntimeException );
478 // XComponentSupplier
480 virtual ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseable > SAL_CALL getComponent()
481 throw ( ::com::sun::star::uno::RuntimeException );
483 // XStateChangeBroadcaster
484 virtual void SAL_CALL addStateChangeListener( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStateChangeListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
485 virtual void SAL_CALL removeStateChangeListener( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStateChangeListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
487 // XCloseable
489 virtual void SAL_CALL close( sal_Bool DeliverOwnership )
490 throw ( ::com::sun::star::util::CloseVetoException,
491 ::com::sun::star::uno::RuntimeException );
493 virtual void SAL_CALL addCloseListener(
494 const ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseListener >& Listener )
495 throw ( ::com::sun::star::uno::RuntimeException );
497 virtual void SAL_CALL removeCloseListener(
498 const ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseListener >& Listener )
499 throw ( ::com::sun::star::uno::RuntimeException );
501 // XEventBroadcaster
502 virtual void SAL_CALL addEventListener(
503 const ::com::sun::star::uno::Reference< ::com::sun::star::document::XEventListener >& Listener )
504 throw ( ::com::sun::star::uno::RuntimeException );
506 virtual void SAL_CALL removeEventListener(
507 const ::com::sun::star::uno::Reference< ::com::sun::star::document::XEventListener >& Listener )
508 throw ( ::com::sun::star::uno::RuntimeException );
510 // XChild
511 virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getParent( ) throw (::com::sun::star::uno::RuntimeException);
512 virtual void SAL_CALL setParent( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& Parent ) throw (::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException);
514 // XDefaultSizeTransmitter
515 //#i103460# charts do not necessaryly have an own size within ODF files, in this case they need to use the size settings from the surrounding frame, which is made available with this method
516 virtual void SAL_CALL setDefaultSize( const ::com::sun::star::awt::Size& rSize_100TH_MM ) throw (::com::sun::star::uno::RuntimeException);
519 #endif
521 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */