1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski #ifndef _INC_COMMONEMBOBJ_HXX_
25*b1cdbd2cSJim Jagielski #define _INC_COMMONEMBOBJ_HXX_
26*b1cdbd2cSJim Jagielski 
27*b1cdbd2cSJim Jagielski #include <com/sun/star/uno/Sequence.hxx>
28*b1cdbd2cSJim Jagielski #include <com/sun/star/uno/Reference.hxx>
29*b1cdbd2cSJim Jagielski #include <com/sun/star/uno/Any.hxx>
30*b1cdbd2cSJim Jagielski #include <com/sun/star/container/XChild.hpp>
31*b1cdbd2cSJim Jagielski #include <com/sun/star/document/XStorageBasedDocument.hpp>
32*b1cdbd2cSJim Jagielski #include <com/sun/star/embed/XEmbeddedObject.hpp>
33*b1cdbd2cSJim Jagielski #include <com/sun/star/embed/XVisualObject.hpp>
34*b1cdbd2cSJim Jagielski #include <com/sun/star/embed/XEmbedPersist.hpp>
35*b1cdbd2cSJim Jagielski #include <com/sun/star/embed/XLinkageSupport.hpp>
36*b1cdbd2cSJim Jagielski #include <com/sun/star/embed/XClassifiedObject.hpp>
37*b1cdbd2cSJim Jagielski #include <com/sun/star/embed/XComponentSupplier.hpp>
38*b1cdbd2cSJim Jagielski #include <com/sun/star/embed/XInplaceObject.hpp>
39*b1cdbd2cSJim Jagielski #include <com/sun/star/embed/XStateChangeBroadcaster.hpp>
40*b1cdbd2cSJim Jagielski #include <com/sun/star/awt/XWindow.hpp>
41*b1cdbd2cSJim Jagielski #include <com/sun/star/awt/Rectangle.hpp>
42*b1cdbd2cSJim Jagielski #include <com/sun/star/document/XEventBroadcaster.hpp>
43*b1cdbd2cSJim Jagielski #include <com/sun/star/util/XCloseable.hpp>
44*b1cdbd2cSJim Jagielski #include <com/sun/star/chart2/XDefaultSizeTransmitter.hpp>
45*b1cdbd2cSJim Jagielski #include <cppuhelper/weak.hxx>
46*b1cdbd2cSJim Jagielski 
47*b1cdbd2cSJim Jagielski namespace com { namespace sun { namespace star {
48*b1cdbd2cSJim Jagielski     namespace embed {
49*b1cdbd2cSJim Jagielski         class XStorage;
50*b1cdbd2cSJim Jagielski     }
51*b1cdbd2cSJim Jagielski     namespace frame {
52*b1cdbd2cSJim Jagielski         class XModel;
53*b1cdbd2cSJim Jagielski         class XFrame;
54*b1cdbd2cSJim Jagielski     }
55*b1cdbd2cSJim Jagielski     namespace lang {
56*b1cdbd2cSJim Jagielski         class XMultiServiceFactory;
57*b1cdbd2cSJim Jagielski     }
58*b1cdbd2cSJim Jagielski     namespace util {
59*b1cdbd2cSJim Jagielski         class XCloseListener;
60*b1cdbd2cSJim Jagielski     }
61*b1cdbd2cSJim Jagielski     namespace beans {
62*b1cdbd2cSJim Jagielski         struct PropertyValue;
63*b1cdbd2cSJim Jagielski         struct NamedValue;
64*b1cdbd2cSJim Jagielski     }
65*b1cdbd2cSJim Jagielski }}}
66*b1cdbd2cSJim Jagielski 
67*b1cdbd2cSJim Jagielski namespace cppu {
68*b1cdbd2cSJim Jagielski     class OMultiTypeInterfaceContainerHelper;
69*b1cdbd2cSJim Jagielski }
70*b1cdbd2cSJim Jagielski 
71*b1cdbd2cSJim Jagielski namespace comphelper {
72*b1cdbd2cSJim Jagielski     class NamedValueCollection;
73*b1cdbd2cSJim Jagielski }
74*b1cdbd2cSJim Jagielski 
75*b1cdbd2cSJim Jagielski #define NUM_SUPPORTED_STATES 5
76*b1cdbd2cSJim Jagielski // #define NUM_SUPPORTED_VERBS 5
77*b1cdbd2cSJim Jagielski 
78*b1cdbd2cSJim Jagielski #include "docholder.hxx"
79*b1cdbd2cSJim Jagielski 
80*b1cdbd2cSJim Jagielski class Interceptor;
81*b1cdbd2cSJim Jagielski 
82*b1cdbd2cSJim Jagielski class OCommonEmbeddedObject : public ::com::sun::star::embed::XEmbeddedObject
83*b1cdbd2cSJim Jagielski                             , public ::com::sun::star::embed::XEmbedPersist
84*b1cdbd2cSJim Jagielski                             , public ::com::sun::star::embed::XLinkageSupport
85*b1cdbd2cSJim Jagielski                             , public ::com::sun::star::embed::XInplaceObject
86*b1cdbd2cSJim Jagielski                             , public ::com::sun::star::container::XChild
87*b1cdbd2cSJim Jagielski                             , public ::com::sun::star::chart2::XDefaultSizeTransmitter
88*b1cdbd2cSJim Jagielski                             , public ::cppu::OWeakObject
89*b1cdbd2cSJim Jagielski {
90*b1cdbd2cSJim Jagielski protected:
91*b1cdbd2cSJim Jagielski     ::osl::Mutex    m_aMutex;
92*b1cdbd2cSJim Jagielski 
93*b1cdbd2cSJim Jagielski     DocumentHolder* m_pDocHolder;
94*b1cdbd2cSJim Jagielski 
95*b1cdbd2cSJim Jagielski     ::cppu::OMultiTypeInterfaceContainerHelper* m_pInterfaceContainer;
96*b1cdbd2cSJim Jagielski 
97*b1cdbd2cSJim Jagielski     sal_Bool m_bReadOnly;
98*b1cdbd2cSJim Jagielski 
99*b1cdbd2cSJim Jagielski     sal_Bool m_bDisposed;
100*b1cdbd2cSJim Jagielski     sal_Bool m_bClosed;
101*b1cdbd2cSJim Jagielski 
102*b1cdbd2cSJim Jagielski     sal_Int32 m_nObjectState;
103*b1cdbd2cSJim Jagielski     sal_Int32 m_nTargetState; // should be -1 exept during state changing
104*b1cdbd2cSJim Jagielski     sal_Int32 m_nUpdateMode;
105*b1cdbd2cSJim Jagielski 
106*b1cdbd2cSJim Jagielski     ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xFactory;
107*b1cdbd2cSJim Jagielski 
108*b1cdbd2cSJim Jagielski     ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > m_aDocMediaDescriptor;
109*b1cdbd2cSJim Jagielski 
110*b1cdbd2cSJim Jagielski     ::com::sun::star::uno::Sequence< sal_Int8 > m_aClassID;
111*b1cdbd2cSJim Jagielski     ::rtl::OUString m_aClassName;
112*b1cdbd2cSJim Jagielski 
113*b1cdbd2cSJim Jagielski     ::rtl::OUString m_aDocServiceName;
114*b1cdbd2cSJim Jagielski     ::rtl::OUString m_aPresetFilterName;
115*b1cdbd2cSJim Jagielski 
116*b1cdbd2cSJim Jagielski     sal_Int64 m_nMiscStatus;
117*b1cdbd2cSJim Jagielski 
118*b1cdbd2cSJim Jagielski     ::com::sun::star::uno::Sequence< ::com::sun::star::embed::VerbDescriptor > m_aObjectVerbs;
119*b1cdbd2cSJim Jagielski 
120*b1cdbd2cSJim Jagielski     ::com::sun::star::uno::Sequence< sal_Int32 > m_aAcceptedStates;
121*b1cdbd2cSJim Jagielski     ::com::sun::star::uno::Sequence< sal_Int32 > m_pIntermediateStatesSeqs[NUM_SUPPORTED_STATES][NUM_SUPPORTED_STATES];
122*b1cdbd2cSJim Jagielski     ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< sal_Int32 > > m_aVerbTable;
123*b1cdbd2cSJim Jagielski 
124*b1cdbd2cSJim Jagielski     ::com::sun::star::uno::Reference< ::com::sun::star::embed::XEmbeddedClient > m_xClientSite;
125*b1cdbd2cSJim Jagielski 
126*b1cdbd2cSJim Jagielski     ::rtl::OUString m_aContainerName;
127*b1cdbd2cSJim Jagielski     ::rtl::OUString m_aDefaultParentBaseURL;
128*b1cdbd2cSJim Jagielski     ::rtl::OUString m_aModuleName;
129*b1cdbd2cSJim Jagielski     sal_Bool        m_bEmbeddedScriptSupport;
130*b1cdbd2cSJim Jagielski     sal_Bool        m_bDocumentRecoverySupport;
131*b1cdbd2cSJim Jagielski 
132*b1cdbd2cSJim Jagielski     Interceptor* m_pInterceptor;
133*b1cdbd2cSJim Jagielski 
134*b1cdbd2cSJim Jagielski     // following information will be used between SaveAs and SaveCompleted
135*b1cdbd2cSJim Jagielski     sal_Bool m_bWaitSaveCompleted;
136*b1cdbd2cSJim Jagielski     ::rtl::OUString m_aNewEntryName;
137*b1cdbd2cSJim Jagielski     ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > m_xNewParentStorage;
138*b1cdbd2cSJim Jagielski     ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > m_xNewObjectStorage;
139*b1cdbd2cSJim Jagielski     ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > m_aNewDocMediaDescriptor;
140*b1cdbd2cSJim Jagielski 
141*b1cdbd2cSJim Jagielski     ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow > m_xClientWindow; // ???
142*b1cdbd2cSJim Jagielski     ::com::sun::star::awt::Rectangle m_aOwnRectangle;
143*b1cdbd2cSJim Jagielski     ::com::sun::star::awt::Rectangle m_aClipRectangle;
144*b1cdbd2cSJim Jagielski 
145*b1cdbd2cSJim Jagielski     sal_Bool m_bIsLink;
146*b1cdbd2cSJim Jagielski 
147*b1cdbd2cSJim Jagielski     // embedded object related stuff
148*b1cdbd2cSJim Jagielski     ::rtl::OUString m_aEntryName;
149*b1cdbd2cSJim Jagielski     ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > m_xParentStorage;
150*b1cdbd2cSJim Jagielski     ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > m_xObjectStorage;
151*b1cdbd2cSJim Jagielski     ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > m_xRecoveryStorage;
152*b1cdbd2cSJim Jagielski 
153*b1cdbd2cSJim Jagielski     // link related stuff
154*b1cdbd2cSJim Jagielski     ::rtl::OUString m_aLinkURL;
155*b1cdbd2cSJim Jagielski     ::rtl::OUString m_aLinkFilterName;
156*b1cdbd2cSJim Jagielski     sal_Bool        m_bLinkHasPassword;
157*b1cdbd2cSJim Jagielski     ::rtl::OUString m_aLinkPassword;
158*b1cdbd2cSJim Jagielski 
159*b1cdbd2cSJim Jagielski     ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > m_xParent;
160*b1cdbd2cSJim Jagielski 
161*b1cdbd2cSJim Jagielski     sal_Bool m_bHasClonedSize; // the object has cached size
162*b1cdbd2cSJim Jagielski     ::com::sun::star::awt::Size m_aClonedSize;
163*b1cdbd2cSJim Jagielski     sal_Int32 m_nClonedMapUnit;
164*b1cdbd2cSJim Jagielski     ::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
165*b1cdbd2cSJim Jagielski 
166*b1cdbd2cSJim Jagielski private:
167*b1cdbd2cSJim Jagielski     void CommonInit_Impl( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& aObjectProps );
168*b1cdbd2cSJim Jagielski 
169*b1cdbd2cSJim Jagielski     void LinkInit_Impl( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& aObjectProps,
170*b1cdbd2cSJim Jagielski                         const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aMediaDescr,
171*b1cdbd2cSJim Jagielski                         const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aObjectDescr );
172*b1cdbd2cSJim Jagielski 
173*b1cdbd2cSJim Jagielski 
174*b1cdbd2cSJim Jagielski     void SwitchOwnPersistence(
175*b1cdbd2cSJim Jagielski                 const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xNewParentStorage,
176*b1cdbd2cSJim Jagielski                 const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xNewObjectStorage,
177*b1cdbd2cSJim Jagielski                 const ::rtl::OUString& aNewName );
178*b1cdbd2cSJim Jagielski 
179*b1cdbd2cSJim Jagielski     void SwitchOwnPersistence(
180*b1cdbd2cSJim Jagielski                 const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xNewParentStorage,
181*b1cdbd2cSJim Jagielski                 const ::rtl::OUString& aNewName );
182*b1cdbd2cSJim Jagielski 
GetDocumentServiceName() const183*b1cdbd2cSJim Jagielski     ::rtl::OUString GetDocumentServiceName() const { return m_aDocServiceName; }
GetPresetFilterName() const184*b1cdbd2cSJim Jagielski     ::rtl::OUString GetPresetFilterName() const { return m_aPresetFilterName; }
185*b1cdbd2cSJim Jagielski 
186*b1cdbd2cSJim Jagielski     ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >
187*b1cdbd2cSJim Jagielski         StoreDocumentToTempStream_Impl( sal_Int32 nStorageFormat,
188*b1cdbd2cSJim Jagielski                                         const ::rtl::OUString& aBaseURL,
189*b1cdbd2cSJim Jagielski                                         const ::rtl::OUString& aHierarchName );
190*b1cdbd2cSJim Jagielski 
191*b1cdbd2cSJim Jagielski     sal_Int32 ConvertVerbToState_Impl( sal_Int32 nVerb );
192*b1cdbd2cSJim Jagielski 
193*b1cdbd2cSJim Jagielski     void Deactivate();
194*b1cdbd2cSJim Jagielski 
195*b1cdbd2cSJim Jagielski     void StateChangeNotification_Impl( sal_Bool bBeforeChange, sal_Int32 nOldState, sal_Int32 nNewState,::osl::ResettableMutexGuard& _rGuard );
196*b1cdbd2cSJim Jagielski 
197*b1cdbd2cSJim Jagielski     void SwitchStateTo_Impl( sal_Int32 nNextState );
198*b1cdbd2cSJim Jagielski 
199*b1cdbd2cSJim Jagielski     ::com::sun::star::uno::Sequence< sal_Int32 > GetIntermediateStatesSequence_Impl( sal_Int32 nNewState );
200*b1cdbd2cSJim Jagielski 
201*b1cdbd2cSJim Jagielski     ::rtl::OUString GetFilterName( sal_Int32 nVersion ) const;
202*b1cdbd2cSJim Jagielski     ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseable > LoadDocumentFromStorage_Impl();
203*b1cdbd2cSJim Jagielski 
204*b1cdbd2cSJim Jagielski     ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseable > LoadLink_Impl();
205*b1cdbd2cSJim Jagielski 
206*b1cdbd2cSJim Jagielski     ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseable > InitNewDocument_Impl();
207*b1cdbd2cSJim Jagielski 
208*b1cdbd2cSJim Jagielski     void StoreDocToStorage_Impl( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage,
209*b1cdbd2cSJim Jagielski                                 sal_Int32 nStorageVersion,
210*b1cdbd2cSJim Jagielski                                 const ::rtl::OUString& aBaseURL,
211*b1cdbd2cSJim Jagielski                                 const ::rtl::OUString& aHierarchName,
212*b1cdbd2cSJim Jagielski                                 sal_Bool bAttachToStorage );
213*b1cdbd2cSJim Jagielski 
214*b1cdbd2cSJim Jagielski     void SwitchDocToStorage_Impl(
215*b1cdbd2cSJim Jagielski             const ::com::sun::star::uno::Reference< ::com::sun::star::document::XStorageBasedDocument >& xDoc,
216*b1cdbd2cSJim Jagielski             const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage );
217*b1cdbd2cSJim Jagielski 
218*b1cdbd2cSJim Jagielski     void FillDefaultLoadArgs_Impl(
219*b1cdbd2cSJim Jagielski             const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& i_rxStorage,
220*b1cdbd2cSJim Jagielski                   ::comphelper::NamedValueCollection& o_rLoadArgs
221*b1cdbd2cSJim Jagielski         ) const;
222*b1cdbd2cSJim Jagielski 
223*b1cdbd2cSJim Jagielski     void EmbedAndReparentDoc_Impl(
224*b1cdbd2cSJim Jagielski             const ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseable >& i_rxDocument
225*b1cdbd2cSJim Jagielski         ) const;
226*b1cdbd2cSJim Jagielski 
227*b1cdbd2cSJim Jagielski     ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseable > CreateDocFromMediaDescr_Impl(
228*b1cdbd2cSJim Jagielski                         const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aMedDescr );
229*b1cdbd2cSJim Jagielski 
230*b1cdbd2cSJim Jagielski     ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseable > CreateTempDocFromLink_Impl();
231*b1cdbd2cSJim Jagielski 
232*b1cdbd2cSJim Jagielski     ::rtl::OUString GetBaseURL_Impl() const;
233*b1cdbd2cSJim Jagielski     ::rtl::OUString GetBaseURLFrom_Impl(
234*b1cdbd2cSJim Jagielski                     const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lArguments,
235*b1cdbd2cSJim Jagielski                     const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lObjArgs );
236*b1cdbd2cSJim Jagielski 
237*b1cdbd2cSJim Jagielski public:
238*b1cdbd2cSJim Jagielski     OCommonEmbeddedObject(
239*b1cdbd2cSJim Jagielski         const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xFactory,
240*b1cdbd2cSJim Jagielski         const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& aObjectProps );
241*b1cdbd2cSJim Jagielski 
242*b1cdbd2cSJim Jagielski     // no persistance for linked objects, so the descriptors are provided in constructor
243*b1cdbd2cSJim Jagielski     OCommonEmbeddedObject(
244*b1cdbd2cSJim Jagielski         const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xFactory,
245*b1cdbd2cSJim Jagielski         const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& aObjectProps,
246*b1cdbd2cSJim Jagielski         const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aMediaDescr,
247*b1cdbd2cSJim Jagielski         const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aObjectDescr );
248*b1cdbd2cSJim Jagielski 
249*b1cdbd2cSJim Jagielski     virtual ~OCommonEmbeddedObject();
250*b1cdbd2cSJim Jagielski 
251*b1cdbd2cSJim Jagielski     void SaveObject_Impl();
252*b1cdbd2cSJim Jagielski 
253*b1cdbd2cSJim Jagielski     void requestPositioning( const ::com::sun::star::awt::Rectangle& aRect );
254*b1cdbd2cSJim Jagielski 
255*b1cdbd2cSJim Jagielski     // not a real listener and should not be
256*b1cdbd2cSJim Jagielski     void PostEvent_Impl( const ::rtl::OUString& aEventName,
257*b1cdbd2cSJim Jagielski                          const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xSource =
258*b1cdbd2cSJim Jagielski                                             ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >() );
259*b1cdbd2cSJim Jagielski 
260*b1cdbd2cSJim Jagielski // XInterface
261*b1cdbd2cSJim Jagielski 
262*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& rType )
263*b1cdbd2cSJim Jagielski         throw( ::com::sun::star::uno::RuntimeException ) ;
264*b1cdbd2cSJim Jagielski 
265*b1cdbd2cSJim Jagielski     virtual void SAL_CALL acquire()
266*b1cdbd2cSJim Jagielski         throw();
267*b1cdbd2cSJim Jagielski 
268*b1cdbd2cSJim Jagielski     virtual void SAL_CALL release()
269*b1cdbd2cSJim Jagielski         throw();
270*b1cdbd2cSJim Jagielski 
271*b1cdbd2cSJim Jagielski // XTypeProvider
272*b1cdbd2cSJim Jagielski 
273*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes()
274*b1cdbd2cSJim Jagielski         throw( ::com::sun::star::uno::RuntimeException ) ;
275*b1cdbd2cSJim Jagielski 
276*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId()
277*b1cdbd2cSJim Jagielski         throw( ::com::sun::star::uno::RuntimeException ) ;
278*b1cdbd2cSJim Jagielski 
279*b1cdbd2cSJim Jagielski // XEmbeddedObject
280*b1cdbd2cSJim Jagielski 
281*b1cdbd2cSJim Jagielski     virtual void SAL_CALL changeState( sal_Int32 nNewState )
282*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::embed::UnreachableStateException,
283*b1cdbd2cSJim Jagielski                 ::com::sun::star::embed::WrongStateException,
284*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::Exception,
285*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::RuntimeException );
286*b1cdbd2cSJim Jagielski 
287*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::uno::Sequence< sal_Int32 > SAL_CALL getReachableStates()
288*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::embed::WrongStateException,
289*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::RuntimeException );
290*b1cdbd2cSJim Jagielski 
291*b1cdbd2cSJim Jagielski     virtual sal_Int32 SAL_CALL getCurrentState()
292*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::embed::WrongStateException,
293*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::RuntimeException );
294*b1cdbd2cSJim Jagielski 
295*b1cdbd2cSJim Jagielski     virtual void SAL_CALL doVerb( sal_Int32 nVerbID )
296*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::lang::IllegalArgumentException,
297*b1cdbd2cSJim Jagielski                 ::com::sun::star::embed::WrongStateException,
298*b1cdbd2cSJim Jagielski                 ::com::sun::star::embed::UnreachableStateException,
299*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::Exception,
300*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::RuntimeException );
301*b1cdbd2cSJim Jagielski 
302*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::uno::Sequence< ::com::sun::star::embed::VerbDescriptor > SAL_CALL getSupportedVerbs()
303*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::embed::WrongStateException,
304*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::RuntimeException );
305*b1cdbd2cSJim Jagielski 
306*b1cdbd2cSJim Jagielski     virtual void SAL_CALL setClientSite(
307*b1cdbd2cSJim Jagielski                 const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XEmbeddedClient >& xClient )
308*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::embed::WrongStateException,
309*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::RuntimeException );
310*b1cdbd2cSJim Jagielski 
311*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::uno::Reference< ::com::sun::star::embed::XEmbeddedClient > SAL_CALL getClientSite()
312*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::embed::WrongStateException,
313*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::RuntimeException );
314*b1cdbd2cSJim Jagielski 
315*b1cdbd2cSJim Jagielski     virtual void SAL_CALL update()
316*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::embed::WrongStateException,
317*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::Exception,
318*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::RuntimeException );
319*b1cdbd2cSJim Jagielski 
320*b1cdbd2cSJim Jagielski     virtual void SAL_CALL setUpdateMode( sal_Int32 nMode )
321*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::embed::WrongStateException,
322*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::RuntimeException );
323*b1cdbd2cSJim Jagielski 
324*b1cdbd2cSJim Jagielski     virtual sal_Int64 SAL_CALL getStatus( sal_Int64 nAspect )
325*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::embed::WrongStateException,
326*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::RuntimeException );
327*b1cdbd2cSJim Jagielski 
328*b1cdbd2cSJim Jagielski     virtual void SAL_CALL setContainerName( const ::rtl::OUString& sName )
329*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::uno::RuntimeException );
330*b1cdbd2cSJim Jagielski 
331*b1cdbd2cSJim Jagielski 
332*b1cdbd2cSJim Jagielski // XVisualObject
333*b1cdbd2cSJim Jagielski 
334*b1cdbd2cSJim Jagielski     virtual void SAL_CALL setVisualAreaSize( sal_Int64 nAspect, const ::com::sun::star::awt::Size& aSize )
335*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::lang::IllegalArgumentException,
336*b1cdbd2cSJim Jagielski                 ::com::sun::star::embed::WrongStateException,
337*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::Exception,
338*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::RuntimeException );
339*b1cdbd2cSJim Jagielski 
340*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::awt::Size SAL_CALL getVisualAreaSize( sal_Int64 nAspect )
341*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::lang::IllegalArgumentException,
342*b1cdbd2cSJim Jagielski                 ::com::sun::star::embed::WrongStateException,
343*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::Exception,
344*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::RuntimeException );
345*b1cdbd2cSJim Jagielski 
346*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::embed::VisualRepresentation SAL_CALL getPreferredVisualRepresentation( ::sal_Int64 nAspect )
347*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::lang::IllegalArgumentException,
348*b1cdbd2cSJim Jagielski                 ::com::sun::star::embed::WrongStateException,
349*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::Exception,
350*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::RuntimeException );
351*b1cdbd2cSJim Jagielski 
352*b1cdbd2cSJim Jagielski     virtual sal_Int32 SAL_CALL getMapUnit( sal_Int64 nAspect )
353*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::uno::Exception,
354*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::RuntimeException);
355*b1cdbd2cSJim Jagielski 
356*b1cdbd2cSJim Jagielski // XEmbedPersist
357*b1cdbd2cSJim Jagielski 
358*b1cdbd2cSJim Jagielski     virtual void SAL_CALL setPersistentEntry(
359*b1cdbd2cSJim Jagielski                     const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage,
360*b1cdbd2cSJim Jagielski                     const ::rtl::OUString& sEntName,
361*b1cdbd2cSJim Jagielski                     sal_Int32 nEntryConnectionMode,
362*b1cdbd2cSJim Jagielski                     const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lArguments,
363*b1cdbd2cSJim Jagielski                     const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lObjArgs )
364*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::lang::IllegalArgumentException,
365*b1cdbd2cSJim Jagielski                 ::com::sun::star::embed::WrongStateException,
366*b1cdbd2cSJim Jagielski                 ::com::sun::star::io::IOException,
367*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::Exception,
368*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::RuntimeException );
369*b1cdbd2cSJim Jagielski 
370*b1cdbd2cSJim Jagielski     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 )
371*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::lang::IllegalArgumentException,
372*b1cdbd2cSJim Jagielski                 ::com::sun::star::embed::WrongStateException,
373*b1cdbd2cSJim Jagielski                 ::com::sun::star::io::IOException,
374*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::Exception,
375*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::RuntimeException );
376*b1cdbd2cSJim Jagielski 
377*b1cdbd2cSJim Jagielski     virtual void SAL_CALL storeAsEntry(
378*b1cdbd2cSJim Jagielski                 const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage,
379*b1cdbd2cSJim Jagielski                 const ::rtl::OUString& sEntName,
380*b1cdbd2cSJim Jagielski                 const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lArguments,
381*b1cdbd2cSJim Jagielski                 const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lObjArgs )
382*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::lang::IllegalArgumentException,
383*b1cdbd2cSJim Jagielski                 ::com::sun::star::embed::WrongStateException,
384*b1cdbd2cSJim Jagielski                 ::com::sun::star::io::IOException,
385*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::Exception,
386*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::RuntimeException );
387*b1cdbd2cSJim Jagielski 
388*b1cdbd2cSJim Jagielski     virtual void SAL_CALL saveCompleted( sal_Bool bUseNew )
389*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::embed::WrongStateException,
390*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::Exception,
391*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::RuntimeException );
392*b1cdbd2cSJim Jagielski 
393*b1cdbd2cSJim Jagielski     virtual sal_Bool SAL_CALL hasEntry()
394*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::embed::WrongStateException,
395*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::RuntimeException );
396*b1cdbd2cSJim Jagielski 
397*b1cdbd2cSJim Jagielski     virtual ::rtl::OUString SAL_CALL getEntryName()
398*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::embed::WrongStateException,
399*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::RuntimeException );
400*b1cdbd2cSJim Jagielski 
401*b1cdbd2cSJim Jagielski // XLinkageSupport
402*b1cdbd2cSJim Jagielski 
403*b1cdbd2cSJim Jagielski     virtual void SAL_CALL breakLink( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage,
404*b1cdbd2cSJim Jagielski                                      const ::rtl::OUString& sEntName )
405*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::lang::IllegalArgumentException,
406*b1cdbd2cSJim Jagielski                 ::com::sun::star::embed::WrongStateException,
407*b1cdbd2cSJim Jagielski                 ::com::sun::star::io::IOException,
408*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::Exception,
409*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::RuntimeException );
410*b1cdbd2cSJim Jagielski 
411*b1cdbd2cSJim Jagielski     virtual sal_Bool SAL_CALL isLink()
412*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::embed::WrongStateException,
413*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::RuntimeException);
414*b1cdbd2cSJim Jagielski 
415*b1cdbd2cSJim Jagielski     virtual ::rtl::OUString SAL_CALL getLinkURL()
416*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::embed::WrongStateException,
417*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::Exception,
418*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::RuntimeException);
419*b1cdbd2cSJim Jagielski 
420*b1cdbd2cSJim Jagielski 
421*b1cdbd2cSJim Jagielski // XCommonEmbedPersist
422*b1cdbd2cSJim Jagielski 
423*b1cdbd2cSJim Jagielski     virtual void SAL_CALL storeOwn()
424*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::embed::WrongStateException,
425*b1cdbd2cSJim Jagielski                 ::com::sun::star::io::IOException,
426*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::Exception,
427*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::RuntimeException );
428*b1cdbd2cSJim Jagielski 
429*b1cdbd2cSJim Jagielski     virtual sal_Bool SAL_CALL isReadonly()
430*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::embed::WrongStateException,
431*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::RuntimeException );
432*b1cdbd2cSJim Jagielski 
433*b1cdbd2cSJim Jagielski     virtual void SAL_CALL reload(
434*b1cdbd2cSJim Jagielski                 const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lArguments,
435*b1cdbd2cSJim Jagielski                 const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lObjArgs )
436*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::lang::IllegalArgumentException,
437*b1cdbd2cSJim Jagielski                 ::com::sun::star::embed::WrongStateException,
438*b1cdbd2cSJim Jagielski                 ::com::sun::star::io::IOException,
439*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::Exception,
440*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::RuntimeException );
441*b1cdbd2cSJim Jagielski 
442*b1cdbd2cSJim Jagielski 
443*b1cdbd2cSJim Jagielski // XInplaceObject
444*b1cdbd2cSJim Jagielski 
445*b1cdbd2cSJim Jagielski     virtual void SAL_CALL setObjectRectangles( const ::com::sun::star::awt::Rectangle& aPosRect,
446*b1cdbd2cSJim Jagielski                                           const ::com::sun::star::awt::Rectangle& aClipRect )
447*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::embed::WrongStateException,
448*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::Exception,
449*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::RuntimeException );
450*b1cdbd2cSJim Jagielski 
451*b1cdbd2cSJim Jagielski     virtual void SAL_CALL enableModeless( sal_Bool bEnable )
452*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::embed::WrongStateException,
453*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::Exception,
454*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::RuntimeException );
455*b1cdbd2cSJim Jagielski 
456*b1cdbd2cSJim Jagielski     virtual void SAL_CALL translateAccelerators(
457*b1cdbd2cSJim Jagielski                     const ::com::sun::star::uno::Sequence< ::com::sun::star::awt::KeyEvent >& aKeys )
458*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::embed::WrongStateException,
459*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::RuntimeException );
460*b1cdbd2cSJim Jagielski 
461*b1cdbd2cSJim Jagielski // XClassifiedObject
462*b1cdbd2cSJim Jagielski 
463*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getClassID()
464*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::uno::RuntimeException );
465*b1cdbd2cSJim Jagielski 
466*b1cdbd2cSJim Jagielski     virtual ::rtl::OUString SAL_CALL getClassName()
467*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::uno::RuntimeException );
468*b1cdbd2cSJim Jagielski 
469*b1cdbd2cSJim Jagielski     virtual void SAL_CALL setClassInfo(
470*b1cdbd2cSJim Jagielski                 const ::com::sun::star::uno::Sequence< sal_Int8 >& aClassID, const ::rtl::OUString& aClassName )
471*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::lang::NoSupportException,
472*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::RuntimeException );
473*b1cdbd2cSJim Jagielski 
474*b1cdbd2cSJim Jagielski 
475*b1cdbd2cSJim Jagielski // XComponentSupplier
476*b1cdbd2cSJim Jagielski 
477*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseable > SAL_CALL getComponent()
478*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::uno::RuntimeException );
479*b1cdbd2cSJim Jagielski 
480*b1cdbd2cSJim Jagielski // XStateChangeBroadcaster
481*b1cdbd2cSJim Jagielski     virtual void SAL_CALL addStateChangeListener( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStateChangeListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
482*b1cdbd2cSJim Jagielski     virtual void SAL_CALL removeStateChangeListener( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStateChangeListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
483*b1cdbd2cSJim Jagielski 
484*b1cdbd2cSJim Jagielski // XCloseable
485*b1cdbd2cSJim Jagielski 
486*b1cdbd2cSJim Jagielski     virtual void SAL_CALL close( sal_Bool DeliverOwnership )
487*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::util::CloseVetoException,
488*b1cdbd2cSJim Jagielski                 ::com::sun::star::uno::RuntimeException );
489*b1cdbd2cSJim Jagielski 
490*b1cdbd2cSJim Jagielski     virtual void SAL_CALL addCloseListener(
491*b1cdbd2cSJim Jagielski                 const ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseListener >& Listener )
492*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::uno::RuntimeException );
493*b1cdbd2cSJim Jagielski 
494*b1cdbd2cSJim Jagielski     virtual void SAL_CALL removeCloseListener(
495*b1cdbd2cSJim Jagielski                 const ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseListener >& Listener )
496*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::uno::RuntimeException );
497*b1cdbd2cSJim Jagielski 
498*b1cdbd2cSJim Jagielski // XEventBroadcaster
499*b1cdbd2cSJim Jagielski     virtual void SAL_CALL addEventListener(
500*b1cdbd2cSJim Jagielski                 const ::com::sun::star::uno::Reference< ::com::sun::star::document::XEventListener >& Listener )
501*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::uno::RuntimeException );
502*b1cdbd2cSJim Jagielski 
503*b1cdbd2cSJim Jagielski     virtual void SAL_CALL removeEventListener(
504*b1cdbd2cSJim Jagielski                 const ::com::sun::star::uno::Reference< ::com::sun::star::document::XEventListener >& Listener )
505*b1cdbd2cSJim Jagielski         throw ( ::com::sun::star::uno::RuntimeException );
506*b1cdbd2cSJim Jagielski 
507*b1cdbd2cSJim Jagielski     // XChild
508*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getParent(  ) throw (::com::sun::star::uno::RuntimeException);
509*b1cdbd2cSJim Jagielski     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);
510*b1cdbd2cSJim Jagielski 
511*b1cdbd2cSJim Jagielski     // XDefaultSizeTransmitter
512*b1cdbd2cSJim Jagielski     //#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
513*b1cdbd2cSJim Jagielski     virtual void SAL_CALL setDefaultSize( const ::com::sun::star::awt::Size& rSize_100TH_MM ) throw (::com::sun::star::uno::RuntimeException);
514*b1cdbd2cSJim Jagielski };
515*b1cdbd2cSJim Jagielski 
516*b1cdbd2cSJim Jagielski #endif
517*b1cdbd2cSJim Jagielski 
518