update credits
[LibreOffice.git] / sw / inc / unoframe.hxx
blobfc34804ba4690366ad89f2d13fe3afa4883bbe9a
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
19 #ifndef SW_UNOFRAME_HXX
20 #define SW_UNOFRAME_HXX
22 #include <com/sun/star/beans/XPropertyState.hpp>
23 #include <com/sun/star/container/XNamed.hpp>
24 #include <com/sun/star/container/XEnumerationAccess.hpp>
25 #include <com/sun/star/document/XEmbeddedObjectSupplier2.hpp>
26 #include <com/sun/star/text/XTextFrame.hpp>
27 #include <com/sun/star/drawing/XShape.hpp>
28 #include <com/sun/star/util/XModifyListener.hpp>
29 #include <com/sun/star/frame/XModel.hpp>
30 #include <com/sun/star/document/XEventsSupplier.hpp>
32 #include <cppuhelper/implbase1.hxx>
33 #include <cppuhelper/implbase3.hxx>
34 #include <cppuhelper/implbase6.hxx>
36 #include <sfx2/objsh.hxx>
38 #include <flyenum.hxx>
39 #include <frmfmt.hxx>
40 #include <unotext.hxx>
42 class SdrObject;
43 class SwDoc;
44 class SwFmt;
45 class SwFlyFrmFmt;
47 class BaseFrameProperties_Impl;
48 class SwXFrame : public cppu::WeakImplHelper6
50 ::com::sun::star::lang::XServiceInfo,
51 ::com::sun::star::beans::XPropertySet,
52 ::com::sun::star::beans::XPropertyState,
53 ::com::sun::star::drawing::XShape,
54 ::com::sun::star::container::XNamed,
55 ::com::sun::star::lang::XUnoTunnel
57 public SwClient
59 private:
60 class Impl;
61 ::sw::UnoImplPtr<Impl> m_pImpl;
63 const SfxItemPropertySet* m_pPropSet;
64 SwDoc* m_pDoc;
66 const FlyCntType eType;
68 // Descriptor-interface
69 BaseFrameProperties_Impl* pProps;
70 bool bIsDescriptor;
71 String sName;
73 SwPaM* m_pCopySource;
75 protected:
76 com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > mxStyleData;
77 com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > mxStyleFamily;
78 virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew);
80 virtual ~SwXFrame();
81 public:
82 SwXFrame(FlyCntType eSet,
83 const SfxItemPropertySet* pPropSet,
84 SwDoc *pDoc ); //Descriptor-If
85 SwXFrame(SwFrmFmt& rFrmFmt, FlyCntType eSet,
86 const SfxItemPropertySet* pPropSet);
89 static const ::com::sun::star::uno::Sequence< sal_Int8 > & getUnoTunnelId();
91 //XUnoTunnel
92 virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) throw(::com::sun::star::uno::RuntimeException);
94 TYPEINFO();
96 //XNamed
97 virtual OUString SAL_CALL getName(void) throw( ::com::sun::star::uno::RuntimeException );
98 virtual void SAL_CALL setName(const OUString& Name_) throw( ::com::sun::star::uno::RuntimeException );
100 //XPropertySet
101 virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw(::com::sun::star::uno::RuntimeException);
102 virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
103 virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
104 virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
105 virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
106 virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
107 virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
109 //XPropertyState
110 virtual ::com::sun::star::beans::PropertyState SAL_CALL getPropertyState( const OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
111 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyState > SAL_CALL getPropertyStates( const ::com::sun::star::uno::Sequence< OUString >& aPropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
112 virtual void SAL_CALL setPropertyToDefault( const OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
113 virtual ::com::sun::star::uno::Any SAL_CALL getPropertyDefault( const OUString& aPropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
115 //XShape
116 virtual ::com::sun::star::awt::Point SAL_CALL getPosition( ) throw(::com::sun::star::uno::RuntimeException);
117 virtual void SAL_CALL setPosition( const ::com::sun::star::awt::Point& aPosition ) throw(::com::sun::star::uno::RuntimeException);
118 virtual ::com::sun::star::awt::Size SAL_CALL getSize( ) throw(::com::sun::star::uno::RuntimeException);
119 virtual void SAL_CALL setSize( const ::com::sun::star::awt::Size& aSize ) throw(::com::sun::star::beans::PropertyVetoException, ::com::sun::star::uno::RuntimeException);
121 //XShapeDescriptor
122 virtual OUString SAL_CALL getShapeType(void) throw( ::com::sun::star::uno::RuntimeException );
124 //Base implementation
125 //XComponent
126 virtual void SAL_CALL dispose( ) throw(::com::sun::star::uno::RuntimeException);
127 virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) throw(::com::sun::star::uno::RuntimeException);
128 virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) throw(::com::sun::star::uno::RuntimeException);
130 virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > SAL_CALL getAnchor(void) throw( ::com::sun::star::uno::RuntimeException );
132 //XServiceInfo
133 virtual OUString SAL_CALL getImplementationName(void) throw( ::com::sun::star::uno::RuntimeException );
134 virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) throw( ::com::sun::star::uno::RuntimeException );
135 virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames(void) throw( ::com::sun::star::uno::RuntimeException );
137 void attachToRange(const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > & xTextRange)throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException );
138 void attach( const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange >& xTextRange ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
140 SwFrmFmt* GetFrmFmt() const
142 return PTR_CAST ( SwFrmFmt, GetRegisteredIn() );
144 FlyCntType GetFlyCntType()const {return eType;}
146 bool IsDescriptor() const {return bIsDescriptor;}
147 void ResetDescriptor();
148 //copy text from a given source PaM
149 void SetSelection(SwPaM& rCopySource);
150 static SW_DLLPUBLIC SdrObject *GetOrCreateSdrObject( SwFlyFrmFmt *pFmt );
153 typedef cppu::WeakImplHelper3
155 ::com::sun::star::text::XTextFrame,
156 ::com::sun::star::container::XEnumerationAccess,
157 ::com::sun::star::document::XEventsSupplier
159 SwXTextFrameBaseClass;
161 class SwXTextFrame : public SwXTextFrameBaseClass,
162 public SwXText,
163 public SwXFrame
165 protected:
166 virtual const SwStartNode *GetStartNode() const;
168 virtual ::com::sun::star::uno::Reference<
169 ::com::sun::star::text::XTextCursor >
170 CreateCursor()
171 throw (::com::sun::star::uno::RuntimeException);
173 virtual ~SwXTextFrame();
174 public:
175 SwXTextFrame(SwDoc *pDoc);
176 SwXTextFrame(SwFrmFmt& rFmt);
178 // FIXME: EVIL HACK: make available for SwXFrame::attachToRange
179 void SetDoc(SwDoc *const pDoc) { SwXText::SetDoc(pDoc); };
181 virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType ) throw(::com::sun::star::uno::RuntimeException);
182 virtual void SAL_CALL acquire( ) throw();
183 virtual void SAL_CALL release( ) throw();
185 //XTypeProvider
186 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException);
187 virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId( ) throw(::com::sun::star::uno::RuntimeException);
189 //XTextFrame
190 virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XText > SAL_CALL getText(void) throw( ::com::sun::star::uno::RuntimeException );
192 //XText
193 virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextCursor > SAL_CALL createTextCursor(void) throw( ::com::sun::star::uno::RuntimeException );
194 virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextCursor > SAL_CALL createTextCursorByRange(const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > & aTextPosition) throw( ::com::sun::star::uno::RuntimeException );
196 //XEnumerationAccess - frueher XParagraphEnumerationAccess
197 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL createEnumeration(void) throw( ::com::sun::star::uno::RuntimeException );
199 //XElementAccess
200 virtual ::com::sun::star::uno::Type SAL_CALL getElementType( ) throw(::com::sun::star::uno::RuntimeException);
201 virtual sal_Bool SAL_CALL hasElements( ) throw(::com::sun::star::uno::RuntimeException);
203 //XTextContent
204 virtual void SAL_CALL attach( const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange >& xTextRange ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
205 virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > SAL_CALL getAnchor( ) throw(::com::sun::star::uno::RuntimeException);
207 //XComponent
208 virtual void SAL_CALL dispose( ) throw(::com::sun::star::uno::RuntimeException);
209 virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) throw(::com::sun::star::uno::RuntimeException);
210 virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) throw(::com::sun::star::uno::RuntimeException);
212 //XServiceInfo
213 virtual OUString SAL_CALL getImplementationName(void) throw( ::com::sun::star::uno::RuntimeException );
214 virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) throw( ::com::sun::star::uno::RuntimeException );
215 virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames(void) throw( ::com::sun::star::uno::RuntimeException );
217 // XEventsSupplier
218 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameReplace > SAL_CALL getEvents( ) throw(::com::sun::star::uno::RuntimeException);
220 //XUnoTunnel
221 virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) throw(::com::sun::star::uno::RuntimeException);
223 //XPropertySet
224 virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
226 void * SAL_CALL operator new( size_t ) throw();
227 void SAL_CALL operator delete( void * ) throw();
230 typedef cppu::WeakImplHelper2
232 ::com::sun::star::text::XTextContent,
233 ::com::sun::star::document::XEventsSupplier
235 SwXTextGraphicObjectBaseClass;
236 class SwXTextGraphicObject : public SwXTextGraphicObjectBaseClass,
237 public SwXFrame
239 protected:
240 virtual ~SwXTextGraphicObject();
241 public:
242 SwXTextGraphicObject( SwDoc *pDoc );
243 SwXTextGraphicObject(SwFrmFmt& rFmt);
246 virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType ) throw(::com::sun::star::uno::RuntimeException);
247 virtual void SAL_CALL acquire( ) throw();
248 virtual void SAL_CALL release( ) throw();
250 //XTypeProvider
251 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException);
252 virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId( ) throw(::com::sun::star::uno::RuntimeException);
254 //XTextContent
255 virtual void SAL_CALL attach(const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > & xTextRange) throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException );
256 virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > SAL_CALL getAnchor(void) throw( ::com::sun::star::uno::RuntimeException );
258 //XComponent
259 virtual void SAL_CALL dispose(void) throw( ::com::sun::star::uno::RuntimeException );
260 virtual void SAL_CALL addEventListener(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener > & aListener) throw( ::com::sun::star::uno::RuntimeException );
261 virtual void SAL_CALL removeEventListener(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener > & aListener) throw( ::com::sun::star::uno::RuntimeException );
263 //XServiceInfo
264 virtual OUString SAL_CALL getImplementationName(void) throw( ::com::sun::star::uno::RuntimeException );
265 virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) throw( ::com::sun::star::uno::RuntimeException );
266 virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames(void) throw( ::com::sun::star::uno::RuntimeException );
268 // XEventsSupplier
269 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameReplace > SAL_CALL getEvents( ) throw(::com::sun::star::uno::RuntimeException);
270 void * SAL_CALL operator new( size_t ) throw();
271 void SAL_CALL operator delete( void * ) throw();
274 class SwOLENode;
275 typedef cppu::WeakImplHelper3
277 ::com::sun::star::text::XTextContent,
278 ::com::sun::star::document::XEmbeddedObjectSupplier2,
279 ::com::sun::star::document::XEventsSupplier
280 >SwXTextEmbeddedObjectBaseClass;
282 class SwXTextEmbeddedObject : public SwXTextEmbeddedObjectBaseClass,
283 public SwXFrame
285 protected:
286 virtual ~SwXTextEmbeddedObject();
288 public:
289 SwXTextEmbeddedObject( SwDoc *pDoc );
290 SwXTextEmbeddedObject(SwFrmFmt& rFmt);
293 virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType ) throw(::com::sun::star::uno::RuntimeException);
294 virtual void SAL_CALL acquire( ) throw();
295 virtual void SAL_CALL release( ) throw();
297 //XTypeProvider
298 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException);
299 virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId( ) throw(::com::sun::star::uno::RuntimeException);
301 //XTextContent
302 virtual void SAL_CALL attach(const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > & xTextRange) throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException );
303 virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > SAL_CALL getAnchor(void) throw( ::com::sun::star::uno::RuntimeException );
305 //XComponent
306 virtual void SAL_CALL dispose(void) throw( ::com::sun::star::uno::RuntimeException );
307 virtual void SAL_CALL addEventListener(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener > & aListener) throw( ::com::sun::star::uno::RuntimeException );
308 virtual void SAL_CALL removeEventListener(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener > & aListener) throw( ::com::sun::star::uno::RuntimeException );
310 //XEmbeddedObjectSupplier2
311 virtual ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > SAL_CALL getEmbeddedObject(void) throw( ::com::sun::star::uno::RuntimeException );
312 virtual ::com::sun::star::uno::Reference< ::com::sun::star::embed::XEmbeddedObject > SAL_CALL getExtendedControlOverEmbeddedObject(void) throw( ::com::sun::star::uno::RuntimeException );
313 virtual ::sal_Int64 SAL_CALL getAspect() throw (::com::sun::star::uno::RuntimeException);
314 virtual void SAL_CALL setAspect( ::sal_Int64 _aspect ) throw (::com::sun::star::uno::RuntimeException);
315 virtual ::com::sun::star::uno::Reference< ::com::sun::star::graphic::XGraphic > SAL_CALL getReplacementGraphic() throw (::com::sun::star::uno::RuntimeException);
317 //XServiceInfo
318 virtual OUString SAL_CALL getImplementationName(void) throw( ::com::sun::star::uno::RuntimeException );
319 virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) throw( ::com::sun::star::uno::RuntimeException );
320 virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames(void) throw( ::com::sun::star::uno::RuntimeException );
322 // XEventsSupplier
323 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameReplace > SAL_CALL getEvents( ) throw(::com::sun::star::uno::RuntimeException);
324 void * SAL_CALL operator new( size_t ) throw();
325 void SAL_CALL operator delete( void * ) throw();
330 class SwXOLEListener : public cppu::WeakImplHelper1
332 ::com::sun::star::util::XModifyListener
334 public SwClient
336 ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > xOLEModel;
338 SwFmt* GetFmt() const { return (SwFmt*)GetRegisteredIn(); }
339 public:
340 SwXOLEListener(SwFmt& rOLEFmt, ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > xOLE);
341 ~SwXOLEListener();
342 TYPEINFO();
344 // ::com::sun::star::lang::XEventListener
345 virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw(::com::sun::star::uno::RuntimeException);
347 // ::com::sun::star::util::XModifyListener
348 virtual void SAL_CALL modified( const ::com::sun::star::lang::EventObject& aEvent ) throw(::com::sun::star::uno::RuntimeException);
350 protected:
351 virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew);
356 #endif
358 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */