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 _SVX_UNOSHAPE_HXX
21 : #define _SVX_UNOSHAPE_HXX
22 :
23 : #include <com/sun/star/document/XActionLockable.hpp>
24 : #include <com/sun/star/drawing/XEnhancedCustomShapeDefaulter.hpp>
25 : #include <com/sun/star/drawing/XGluePointsSupplier.hpp>
26 : #include <com/sun/star/drawing/XShape.hpp>
27 : #include <com/sun/star/lang/XComponent.hpp>
28 : #include <com/sun/star/beans/XPropertySet.hpp>
29 : #include <com/sun/star/beans/XPropertyState.hpp>
30 : #include <com/sun/star/lang/XServiceInfo.hpp>
31 : #include <com/sun/star/uno/XAggregation.hpp>
32 : #include <com/sun/star/lang/XTypeProvider.hpp>
33 : #include <com/sun/star/lang/XUnoTunnel.hpp>
34 : #include <com/sun/star/awt/Point.hpp>
35 : #include <com/sun/star/drawing/PolygonKind.hpp>
36 : #include <com/sun/star/container/XNamed.hpp>
37 : #include <com/sun/star/container/XChild.hpp>
38 : #include <com/sun/star/beans/XMultiPropertySet.hpp>
39 : #include <com/sun/star/beans/XMultiPropertyStates.hpp>
40 : #include <tools/gen.hxx>
41 : #include <tools/weakbase.hxx>
42 : #include <svl/lstner.hxx>
43 : #include <editeng/unoipset.hxx>
44 : #include <cppuhelper/weak.hxx>
45 : #include <cppuhelper/weakagg.hxx>
46 : #include <cppuhelper/interfacecontainer.h>
47 : #include <osl/mutex.hxx>
48 : #include "svx/svxdllapi.h"
49 : #include <rtl/ref.hxx>
50 : #include <com/sun/star/uno/Any.hxx>
51 :
52 : #include <svx/svdouno.hxx>
53 :
54 : #include <comphelper/servicehelper.hxx>
55 :
56 : #include <cppuhelper/implbase1.hxx>
57 : #include <cppuhelper/implbase12.hxx>
58 :
59 : #include <svx/unoprov.hxx>
60 :
61 : class SfxItemSet;
62 : class SdrModel;
63 : class SvxDrawPage;
64 : class SvGlobalName;
65 : // Dimension arrows change size/position on save/reload (#i59051#)
66 : namespace basegfx
67 : {
68 : class B2DPolyPolygon;
69 : } // end of namespace basegfx
70 :
71 : class SvxShapeMutex
72 : {
73 : protected:
74 : ::osl::Mutex maMutex;
75 : };
76 :
77 : struct SvxShapeImpl;
78 : class SvxShapeMaster;
79 : class SvxItemPropertySet;
80 : class SfxItemSet;
81 :
82 : void SVX_DLLPUBLIC SvxItemPropertySet_setPropertyValue( const SvxItemPropertySet& rPropSet, const SfxItemPropertySimpleEntry* pMap,
83 : const com::sun::star::uno::Any& rVal, SfxItemSet& rSet );
84 :
85 : com::sun::star::uno::Any SVX_DLLPUBLIC SvxItemPropertySet_getPropertyValue( const SvxItemPropertySet& rPropSet, const SfxItemPropertySimpleEntry* pMap, const SfxItemSet& rSet );
86 :
87 :
88 : // WARNING: if you update the supported interfaces,
89 : // also update SvxShape::_getTypes()
90 : typedef ::cppu::WeakAggImplHelper12<
91 : ::com::sun::star::drawing::XShape,
92 : ::com::sun::star::lang::XComponent,
93 : ::com::sun::star::beans::XPropertySet,
94 : ::com::sun::star::beans::XMultiPropertySet,
95 : ::com::sun::star::beans::XPropertyState,
96 : ::com::sun::star::lang::XUnoTunnel,
97 : ::com::sun::star::container::XNamed,
98 : ::com::sun::star::drawing::XGluePointsSupplier,
99 : ::com::sun::star::container::XChild,
100 : ::com::sun::star::lang::XServiceInfo,
101 : ::com::sun::star::document::XActionLockable,
102 : ::com::sun::star::beans::XMultiPropertyStates> SvxShape_UnoImplHelper;
103 :
104 : class SVX_DLLPUBLIC SvxShape : public SvxShape_UnoImplHelper,
105 : public SfxListener,
106 : public SvxShapeMutex
107 : {
108 : private:
109 : ::com::sun::star::awt::Size maSize;
110 : ::com::sun::star::awt::Point maPosition;
111 : ::rtl::OUString maShapeType;
112 : ::rtl::OUString maShapeName;
113 :
114 : /** these members are used to optimize XMultiProperty calls */
115 : SvxShapeImpl* mpImpl;
116 : bool mbIsMultiPropertyCall;
117 :
118 : ::com::sun::star::uno::WeakReference< ::com::sun::star::container::XIndexContainer > mxGluePoints;
119 :
120 : protected:
121 : friend class SvxDrawPage;
122 : friend class SvxShapeConnector;
123 : friend class SdXShape;
124 :
125 : const SvxItemPropertySet* mpPropSet;
126 : const SfxItemPropertyMapEntry* maPropMapEntries;
127 :
128 : ::tools::WeakReference< SdrObject > mpObj;
129 : SdrModel* mpModel;
130 : // Umrechnungen fuer den Writer, der in TWIPS arbeitet
131 : void ForceMetricToItemPoolMetric(Pair& rPoint) const throw();
132 : void ForceMetricTo100th_mm(Pair& rPoint) const throw();
133 : // Dimension arrows change size/position on save/reload (#i59051#)
134 : void ForceMetricToItemPoolMetric(basegfx::B2DPolyPolygon& rPolyPolygon) const throw();
135 : void ForceMetricTo100th_mm(basegfx::B2DPolyPolygon& rPolyPolygon) const throw();
136 :
137 : ::com::sun::star::uno::Any GetAnyForItem( SfxItemSet& aSet, const SfxItemPropertySimpleEntry* pMap ) const;
138 :
139 : sal_Bool SAL_CALL SetFillAttribute( sal_Int32 nWID, const ::rtl::OUString& rName );
140 :
141 : /** called from the XActionLockable interface methods on initial locking */
142 : virtual void lock();
143 :
144 : /** called from the XActionLockable interface methods on final unlock */
145 : virtual void unlock();
146 :
147 : /** used from the XActionLockable interface */
148 : sal_uInt16 mnLockCount;
149 :
150 781 : const SfxItemPropertyMapEntry* getPropertyMapEntries() const { return maPropMapEntries; }
151 :
152 : void updateShapeKind();
153 : void endSetPropertyValues();
154 :
155 : // overide these for special property handling in subcasses. Return true if property is handled
156 : virtual bool setPropertyValueImpl( const ::rtl::OUString& rName, const SfxItemPropertySimpleEntry* pProperty, const ::com::sun::star::uno::Any& rValue ) 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);
157 : virtual bool getPropertyValueImpl( const ::rtl::OUString& rName, const SfxItemPropertySimpleEntry* pProperty, ::com::sun::star::uno::Any& rValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
158 : virtual bool getPropertyStateImpl( const SfxItemPropertySimpleEntry* pProperty, ::com::sun::star::beans::PropertyState& rState ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
159 : virtual bool setPropertyToDefaultImpl( const SfxItemPropertySimpleEntry* pProperty ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
160 :
161 : public:
162 : SvxShape( SdrObject* pObj ) throw ();
163 : SvxShape( SdrObject* pObject, const SfxItemPropertyMapEntry* pEntries, const SvxItemPropertySet* pPropertySet ) throw ();
164 : SvxShape() throw ();
165 : virtual ~SvxShape() throw ();
166 :
167 : // Internals
168 : void ObtainSettingsFromPropertySet(const SvxItemPropertySet& rPropSet);
169 : virtual void Create( SdrObject* pNewOpj, SvxDrawPage* pNewPage = NULL );
170 : /** takes the ownership of the SdrObject.
171 :
172 : When the shape is disposed, and it has the ownership of its associated SdrObject, then
173 : it will delete this object.
174 : */
175 : void TakeSdrObjectOwnership();
176 : bool HasSdrObjectOwnership() const;
177 :
178 : void ChangeModel( SdrModel* pNewModel );
179 :
180 : void InvalidateSdrObject() { mpObj.reset( NULL ); };
181 : const SvxItemPropertySet& GetPropertySet() { return *mpPropSet; }
182 2958 : SdrObject* GetSdrObject() const {return mpObj.get();}
183 151 : void SetShapeType( const ::rtl::OUString& ShapeType ) { maShapeType = ShapeType; }
184 : ::com::sun::star::uno::Any GetBitmap( sal_Bool bMetaFile = sal_False ) const throw ();
185 :
186 : ::svx::PropertyChangeNotifier& getShapePropertyChangeNotifier();
187 :
188 : void setShapeKind( sal_uInt32 nKind );
189 : sal_uInt32 getShapeKind() const;
190 :
191 : // styles need this
192 : static sal_Bool SAL_CALL SetFillAttribute( sal_Int32 nWID, const ::rtl::OUString& rName, SfxItemSet& rSet, SdrModel* pModel );
193 : static sal_Bool SAL_CALL SetFillAttribute( sal_Int32 nWID, const ::rtl::OUString& rName, SfxItemSet& rSet );
194 :
195 : /** same as SetFillAttribute but for property names instead of which ids,
196 : and the property found is returned instead of set at the object
197 : directly.
198 : */
199 :
200 : UNO3_GETIMPLEMENTATION_DECL( SvxShape )
201 :
202 : // access methods for master objects
203 : ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL _getPropertySetInfo( ) throw(::com::sun::star::uno::RuntimeException);
204 : void SAL_CALL _setPropertyValue( const ::rtl::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);
205 : ::com::sun::star::uno::Any SAL_CALL _getPropertyValue( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
206 :
207 : ::com::sun::star::beans::PropertyState SAL_CALL _getPropertyState( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
208 : void SAL_CALL _setPropertyToDefault( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
209 : ::com::sun::star::uno::Any SAL_CALL _getPropertyDefault( const ::rtl::OUString& aPropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
210 :
211 : ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL _getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException);
212 :
213 : ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL _getTypes( ) throw(::com::sun::star::uno::RuntimeException);
214 :
215 : void setMaster( SvxShapeMaster* pMaster );
216 :
217 : // SfxListener
218 : virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) throw ();
219 :
220 : // XAggregation
221 : virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( const ::com::sun::star::uno::Type& aType ) throw (::com::sun::star::uno::RuntimeException);
222 :
223 : // XNamed
224 : virtual ::rtl::OUString SAL_CALL getName( ) throw(::com::sun::star::uno::RuntimeException);
225 : virtual void SAL_CALL setName( const ::rtl::OUString& aName ) throw(::com::sun::star::uno::RuntimeException);
226 :
227 : // XShapeDescriptor
228 : virtual ::rtl::OUString SAL_CALL getShapeType() throw(::com::sun::star::uno::RuntimeException);
229 :
230 : // XShape
231 : virtual ::com::sun::star::awt::Point SAL_CALL getPosition() throw(::com::sun::star::uno::RuntimeException);
232 : virtual void SAL_CALL setPosition( const ::com::sun::star::awt::Point& aPosition ) throw(::com::sun::star::uno::RuntimeException);
233 : virtual ::com::sun::star::awt::Size SAL_CALL getSize() throw(::com::sun::star::uno::RuntimeException);
234 : virtual void SAL_CALL setSize( const ::com::sun::star::awt::Size& aSize ) throw(::com::sun::star::beans::PropertyVetoException, ::com::sun::star::uno::RuntimeException);
235 :
236 : // XComponent
237 : virtual void SAL_CALL dispose() throw(::com::sun::star::uno::RuntimeException);
238 : virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) throw(::com::sun::star::uno::RuntimeException);
239 : virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) throw(::com::sun::star::uno::RuntimeException);
240 :
241 : // XPropertySet
242 : virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw(::com::sun::star::uno::RuntimeException);
243 : virtual void SAL_CALL setPropertyValue( const ::rtl::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);
244 : virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
245 : virtual void SAL_CALL addPropertyChangeListener( const ::rtl::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);
246 : virtual void SAL_CALL removePropertyChangeListener( const ::rtl::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);
247 : virtual void SAL_CALL addVetoableChangeListener( const ::rtl::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);
248 : virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::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);
249 :
250 : // XMultiPropertySet
251 : virtual void SAL_CALL setPropertyValues( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames, const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aValues ) throw (::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
252 : virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > SAL_CALL getPropertyValues( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames ) throw (::com::sun::star::uno::RuntimeException);
253 : virtual void SAL_CALL addPropertiesChangeListener( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertiesChangeListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
254 : virtual void SAL_CALL removePropertiesChangeListener( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertiesChangeListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
255 : virtual void SAL_CALL firePropertiesChangeEvent( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertiesChangeListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
256 :
257 : // XPropertyState
258 : virtual ::com::sun::star::beans::PropertyState SAL_CALL getPropertyState( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
259 : virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyState > SAL_CALL getPropertyStates( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
260 : virtual void SAL_CALL setPropertyToDefault( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
261 : virtual ::com::sun::star::uno::Any SAL_CALL getPropertyDefault( const ::rtl::OUString& aPropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
262 :
263 : // XMultiPropertyStates
264 : virtual void SAL_CALL setAllPropertiesToDefault()
265 : throw (::com::sun::star::uno::RuntimeException);
266 : virtual void SAL_CALL setPropertiesToDefault(
267 : const ::com::sun::star::uno::Sequence<
268 : ::rtl::OUString >& aPropertyNames )
269 : throw (::com::sun::star::beans::UnknownPropertyException,
270 : ::com::sun::star::uno::RuntimeException);
271 : virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >
272 : SAL_CALL getPropertyDefaults(
273 : const ::com::sun::star::uno::Sequence<
274 : ::rtl::OUString >& aPropertyNames )
275 : throw (::com::sun::star::beans::UnknownPropertyException,
276 : ::com::sun::star::lang::WrappedTargetException,
277 : ::com::sun::star::uno::RuntimeException);
278 :
279 : // XServiceInfo
280 : virtual ::rtl::OUString SAL_CALL getImplementationName() throw(::com::sun::star::uno::RuntimeException);
281 : virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException);
282 : virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
283 :
284 : // XGluePointsSupplier
285 : virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer > SAL_CALL getGluePoints( ) throw(::com::sun::star::uno::RuntimeException);
286 :
287 : // XChild
288 : virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getParent( ) throw(::com::sun::star::uno::RuntimeException);
289 : 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);
290 :
291 : // XTypeProvider
292 : virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException);
293 : virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId( ) throw(::com::sun::star::uno::RuntimeException);
294 :
295 : // XActionLockable
296 : virtual sal_Bool SAL_CALL isActionLocked( ) throw (::com::sun::star::uno::RuntimeException);
297 : virtual void SAL_CALL addActionLock( ) throw (::com::sun::star::uno::RuntimeException);
298 : virtual void SAL_CALL removeActionLock( ) throw (::com::sun::star::uno::RuntimeException);
299 : virtual void SAL_CALL setActionLocks( sal_Int16 nLock ) throw (::com::sun::star::uno::RuntimeException);
300 : virtual sal_Int16 SAL_CALL resetActionLocks( ) throw (::com::sun::star::uno::RuntimeException);
301 :
302 : private:
303 : /** initializes SdrObj-dependent members. Only to be called when GetSdrObject() != NULL
304 : */
305 : SVX_DLLPRIVATE void impl_initFromSdrObject();
306 : /// CTOR-Impl
307 : SVX_DLLPRIVATE void impl_construct();
308 : };
309 :
310 : #include <editeng/unotext.hxx>
311 :
312 : class SVX_DLLPUBLIC SvxShapeText : public SvxShape, public SvxUnoTextBase
313 : {
314 : protected:
315 : /** called from the XActionLockable interface methods on initial locking */
316 : virtual void lock();
317 :
318 : /** called from the XActionLockable interface methods on final unlock */
319 : virtual void unlock();
320 :
321 : protected:
322 : using SvxUnoTextRangeBase::setPropertyValue;
323 : using SvxUnoTextRangeBase::getPropertyValue;
324 :
325 : // overide these for special property handling in subcasses. Return true if property is handled
326 : virtual bool setPropertyValueImpl( const ::rtl::OUString& rName, const SfxItemPropertySimpleEntry* pProperty, const ::com::sun::star::uno::Any& rValue ) 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);
327 : virtual bool getPropertyValueImpl( const ::rtl::OUString& rName, const SfxItemPropertySimpleEntry* pProperty, ::com::sun::star::uno::Any& rValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
328 : virtual bool getPropertyStateImpl( const SfxItemPropertySimpleEntry* pProperty, ::com::sun::star::beans::PropertyState& rState ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
329 : virtual bool setPropertyToDefaultImpl( const SfxItemPropertySimpleEntry* pProperty ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
330 :
331 : public:
332 : SvxShapeText( SdrObject* pObj ) throw ();
333 : SvxShapeText( SdrObject* pObject, const SfxItemPropertyMapEntry* pPropertyMap, const SvxItemPropertySet* pPropertySet ) throw ();
334 : virtual ~SvxShapeText() throw ();
335 :
336 : virtual void Create( SdrObject* pNewOpj, SvxDrawPage* pNewPage = NULL );
337 :
338 : // XInterface
339 : virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException);
340 : virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException);
341 : virtual void SAL_CALL acquire() throw();
342 : virtual void SAL_CALL release() throw();
343 :
344 : // XServiceInfo
345 : virtual ::rtl::OUString SAL_CALL getImplementationName() throw(::com::sun::star::uno::RuntimeException);
346 : virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException);
347 : virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
348 :
349 : // ::com::sun::star::text::XTextRange
350 : virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > SAL_CALL getStart() throw(::com::sun::star::uno::RuntimeException);
351 : virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > SAL_CALL getEnd() throw(::com::sun::star::uno::RuntimeException);
352 : virtual ::rtl::OUString SAL_CALL getString() throw(::com::sun::star::uno::RuntimeException);
353 : virtual void SAL_CALL setString( const ::rtl::OUString& aString ) throw(::com::sun::star::uno::RuntimeException);
354 :
355 : // XUnoTunnel
356 : virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) throw (::com::sun::star::uno::RuntimeException);
357 :
358 : // XTypeProvider
359 : virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException);
360 : virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId( ) throw(::com::sun::star::uno::RuntimeException);
361 : };
362 :
363 : class SvxShapeRect : public SvxShapeText
364 : {
365 : public:
366 : SvxShapeRect( SdrObject* pObj ) throw ();
367 : virtual ~SvxShapeRect() throw ();
368 :
369 : // XInterface
370 : virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException);
371 : virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException);
372 : virtual void SAL_CALL acquire() throw();
373 : virtual void SAL_CALL release() throw();
374 :
375 : // XServiceInfo
376 : virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException);
377 : };
378 : #include <com/sun/star/drawing/XShapes.hpp>
379 : #include <com/sun/star/drawing/XShapeGroup.hpp>
380 : #include <com/sun/star/container/XIndexAccess.hpp>
381 :
382 : /***********************************************************************
383 : * *
384 : ***********************************************************************/
385 : class SvxShapeGroup : public SvxShape,
386 : public ::com::sun::star::drawing::XShapeGroup,
387 : public ::com::sun::star::drawing::XShapes
388 : {
389 : private:
390 : rtl::Reference< SvxDrawPage> mxPage;
391 :
392 : public:
393 : SvxShapeGroup( SdrObject* pObj,SvxDrawPage* pDrawPage ) throw ();
394 : virtual ~SvxShapeGroup() throw ();
395 :
396 : virtual void Create( SdrObject* pNewOpj, SvxDrawPage* pNewPage = NULL );
397 :
398 : // XInterface
399 : virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException);
400 : virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException);
401 : virtual void SAL_CALL acquire() throw();
402 : virtual void SAL_CALL release() throw();
403 :
404 : // XShapes
405 : virtual void SAL_CALL add( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >& xShape ) throw(::com::sun::star::uno::RuntimeException);
406 : virtual void SAL_CALL remove( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >& xShape ) throw(::com::sun::star::uno::RuntimeException);
407 :
408 : // XElementAccess
409 : virtual ::com::sun::star::uno::Type SAL_CALL getElementType() throw(::com::sun::star::uno::RuntimeException);
410 : virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
411 :
412 : // XIndexAccess
413 : virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException) ;
414 : virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) throw(::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
415 :
416 : // XShapeDescriptor
417 : virtual ::rtl::OUString SAL_CALL getShapeType() throw(::com::sun::star::uno::RuntimeException);
418 :
419 : // XShape
420 : virtual ::com::sun::star::awt::Point SAL_CALL getPosition() throw(::com::sun::star::uno::RuntimeException);
421 : virtual void SAL_CALL setPosition( const ::com::sun::star::awt::Point& aPosition ) throw(::com::sun::star::uno::RuntimeException);
422 : virtual ::com::sun::star::awt::Size SAL_CALL getSize() throw(::com::sun::star::uno::RuntimeException);
423 : virtual void SAL_CALL setSize( const ::com::sun::star::awt::Size& aSize ) throw(::com::sun::star::beans::PropertyVetoException, ::com::sun::star::uno::RuntimeException);
424 :
425 : // XShapeGroup
426 : virtual void SAL_CALL enterGroup( ) throw(::com::sun::star::uno::RuntimeException);
427 : virtual void SAL_CALL leaveGroup( ) throw(::com::sun::star::uno::RuntimeException);
428 :
429 : // XServiceInfo
430 : virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException);
431 :
432 : // XTypeProvider
433 : virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException);
434 : virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId( ) throw(::com::sun::star::uno::RuntimeException);
435 : };
436 : #include <com/sun/star/drawing/XConnectorShape.hpp>
437 :
438 : /***********************************************************************
439 : * *
440 : ***********************************************************************/
441 : class SvxShapeConnector : public ::com::sun::star::drawing::XConnectorShape,
442 : public SvxShapeText
443 : {
444 : public:
445 : SvxShapeConnector( SdrObject* pObj ) throw();
446 : virtual ~SvxShapeConnector() throw();
447 :
448 : // XInterface
449 : virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException);
450 : virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException);
451 : virtual void SAL_CALL acquire() throw();
452 : virtual void SAL_CALL release() throw();
453 :
454 : // XShapeDescriptor
455 : virtual ::rtl::OUString SAL_CALL getShapeType() throw(::com::sun::star::uno::RuntimeException);
456 :
457 : // XShape
458 : virtual ::com::sun::star::awt::Point SAL_CALL getPosition() throw(::com::sun::star::uno::RuntimeException);
459 : virtual void SAL_CALL setPosition( const ::com::sun::star::awt::Point& aPosition ) throw(::com::sun::star::uno::RuntimeException);
460 : virtual ::com::sun::star::awt::Size SAL_CALL getSize() throw(::com::sun::star::uno::RuntimeException);
461 : virtual void SAL_CALL setSize( const ::com::sun::star::awt::Size& aSize ) throw(::com::sun::star::beans::PropertyVetoException, ::com::sun::star::uno::RuntimeException);
462 :
463 : // XConnectorShape
464 : virtual void SAL_CALL connectStart( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XConnectableShape >& xShape, ::com::sun::star::drawing::ConnectionType nPos ) throw(::com::sun::star::uno::RuntimeException);
465 : virtual void SAL_CALL connectEnd( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XConnectableShape >& xShape, ::com::sun::star::drawing::ConnectionType nPos ) throw(::com::sun::star::uno::RuntimeException);
466 : virtual void SAL_CALL disconnectBegin( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XConnectableShape >& xShape ) throw(::com::sun::star::uno::RuntimeException);
467 : virtual void SAL_CALL disconnectEnd( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XConnectableShape >& xShape ) throw(::com::sun::star::uno::RuntimeException);
468 :
469 : // XServiceInfo
470 : virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException);
471 :
472 : // XTypeProvider
473 : virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException);
474 : virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId( ) throw(::com::sun::star::uno::RuntimeException);
475 : };
476 : #include <com/sun/star/drawing/XControlShape.hpp>
477 :
478 : /***********************************************************************
479 : * *
480 : ***********************************************************************/
481 : class SVX_DLLPUBLIC SvxShapeControl : public ::com::sun::star::drawing::XControlShape, public SvxShapeText
482 : {
483 : protected:
484 : using SvxUnoTextRangeBase::setPropertyValue;
485 : using SvxUnoTextRangeBase::getPropertyValue;
486 :
487 : public:
488 : SvxShapeControl( SdrObject* pObj ) throw();
489 : virtual ~SvxShapeControl() throw();
490 :
491 : // XInterface
492 : virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException);
493 : virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException);
494 : virtual void SAL_CALL acquire() throw();
495 : virtual void SAL_CALL release() throw();
496 :
497 : // XPropertySet
498 : virtual void SAL_CALL setPropertyValue( const ::rtl::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);
499 : virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
500 :
501 : // XPropertyState
502 : virtual ::com::sun::star::beans::PropertyState SAL_CALL getPropertyState( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
503 : virtual void SAL_CALL setPropertyToDefault( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
504 : virtual ::com::sun::star::uno::Any SAL_CALL getPropertyDefault( const ::rtl::OUString& aPropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
505 :
506 : // XShapeDescriptor
507 : virtual ::rtl::OUString SAL_CALL getShapeType() throw(::com::sun::star::uno::RuntimeException);
508 :
509 : // XShape
510 : virtual ::com::sun::star::awt::Point SAL_CALL getPosition() throw(::com::sun::star::uno::RuntimeException);
511 : virtual void SAL_CALL setPosition( const ::com::sun::star::awt::Point& aPosition ) throw(::com::sun::star::uno::RuntimeException);
512 : virtual ::com::sun::star::awt::Size SAL_CALL getSize() throw(::com::sun::star::uno::RuntimeException);
513 : virtual void SAL_CALL setSize( const ::com::sun::star::awt::Size& aSize ) throw(::com::sun::star::beans::PropertyVetoException, ::com::sun::star::uno::RuntimeException);
514 :
515 : // XControlShape
516 : virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel > SAL_CALL getControl() throw(::com::sun::star::uno::RuntimeException);
517 : virtual void SAL_CALL setControl( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel >& xControl ) throw(::com::sun::star::uno::RuntimeException);
518 :
519 : // XServiceInfo
520 : virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException);
521 :
522 : // XTypeProvider
523 : virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException);
524 : virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId( ) throw(::com::sun::star::uno::RuntimeException);
525 : };
526 :
527 : /***********************************************************************
528 : * *
529 : ***********************************************************************/
530 : class SvxShapeDimensioning : public SvxShapeText
531 : {
532 : public:
533 : SvxShapeDimensioning( SdrObject* pObj ) throw();
534 : virtual ~SvxShapeDimensioning() throw();
535 :
536 : // XServiceInfo
537 : virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException);
538 : };
539 :
540 : /***********************************************************************
541 : * *
542 : ***********************************************************************/
543 : class SvxShapeCircle : public SvxShapeText
544 : {
545 : public:
546 : SvxShapeCircle( SdrObject* pObj ) throw ();
547 : virtual ~SvxShapeCircle() throw ();
548 :
549 : // XServiceInfo
550 : virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException);
551 : };
552 :
553 : /***********************************************************************
554 : * *
555 : ***********************************************************************/
556 :
557 : // #i118485# changed parent to SvxShapeText to allow Text handling over UNO API
558 : class SVX_DLLPUBLIC SvxOle2Shape : public SvxShapeText
559 : {
560 : protected:
561 : // overide these for special property handling in subcasses. Return true if property is handled
562 : virtual bool setPropertyValueImpl( const ::rtl::OUString& rName, const SfxItemPropertySimpleEntry* pProperty, const ::com::sun::star::uno::Any& rValue ) 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);
563 : virtual bool getPropertyValueImpl( const ::rtl::OUString& rName, const SfxItemPropertySimpleEntry* pProperty, ::com::sun::star::uno::Any& rValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
564 :
565 : void resetModifiedState();
566 :
567 : const SvGlobalName GetClassName_Impl(rtl::OUString& rHexCLSID);
568 : public:
569 : SvxOle2Shape( SdrObject* pObj ) throw();
570 : SvxOle2Shape( SdrObject* pObject, const SfxItemPropertyMapEntry* pPropertyMap, const SvxItemPropertySet* pPropertySet ) throw ();
571 : virtual ~SvxOle2Shape() throw();
572 :
573 : sal_Bool createObject( const SvGlobalName &aClassName );
574 :
575 : sal_Bool createLink( const ::rtl::OUString& aLinkURL );
576 :
577 : // XInterface
578 : virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException);
579 : };
580 :
581 :
582 : #include <basegfx/polygon/b2dpolypolygon.hxx>
583 :
584 : /***********************************************************************
585 : * *
586 : ***********************************************************************/
587 : class SvxShapePolyPolygon : public SvxShapeText
588 : {
589 : private:
590 : ::com::sun::star::drawing::PolygonKind mePolygonKind;
591 :
592 : protected:
593 : using SvxUnoTextRangeBase::setPropertyValue;
594 : using SvxUnoTextRangeBase::getPropertyValue;
595 :
596 : // overide these for special property handling in subcasses. Return true if property is handled
597 : virtual bool setPropertyValueImpl( const ::rtl::OUString& rName, const SfxItemPropertySimpleEntry* pProperty, const ::com::sun::star::uno::Any& rValue ) 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);
598 : virtual bool getPropertyValueImpl( const ::rtl::OUString& rName, const SfxItemPropertySimpleEntry* pProperty, ::com::sun::star::uno::Any& rValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
599 :
600 : public:
601 : SvxShapePolyPolygon( SdrObject* pObj , ::com::sun::star::drawing::PolygonKind eNew = com::sun::star::drawing::PolygonKind_LINE ) throw(com::sun::star::lang::IllegalArgumentException, com::sun::star::beans::PropertyVetoException);
602 : virtual ~SvxShapePolyPolygon() throw();
603 :
604 : // Local support functions
605 : ::com::sun::star::drawing::PolygonKind GetPolygonKind() const throw();
606 : void SetPolygon(const basegfx::B2DPolyPolygon& rNew) throw();
607 : basegfx::B2DPolyPolygon GetPolygon() const throw();
608 :
609 : // XServiceInfo
610 : virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException);
611 : };
612 :
613 : /***********************************************************************
614 : * *
615 : ***********************************************************************/
616 :
617 : class SvxShapePolyPolygonBezier : public SvxShapeText
618 : {
619 : private:
620 : ::com::sun::star::drawing::PolygonKind mePolygonKind;
621 :
622 : protected:
623 : using SvxUnoTextRangeBase::setPropertyValue;
624 : using SvxUnoTextRangeBase::getPropertyValue;
625 :
626 : public:
627 : // overide these for special property handling in subcasses. Return true if property is handled
628 : virtual bool setPropertyValueImpl( const ::rtl::OUString& rName, const SfxItemPropertySimpleEntry* pProperty, const ::com::sun::star::uno::Any& rValue ) 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);
629 : virtual bool getPropertyValueImpl( const ::rtl::OUString& rName, const SfxItemPropertySimpleEntry* pProperty, ::com::sun::star::uno::Any& rValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
630 :
631 : SvxShapePolyPolygonBezier( SdrObject* pObj , ::com::sun::star::drawing::PolygonKind eNew = com::sun::star::drawing::PolygonKind_PATHLINE) throw();
632 : virtual ~SvxShapePolyPolygonBezier() throw();
633 :
634 : // Local support functions
635 : ::com::sun::star::drawing::PolygonKind GetPolygonKind() const throw();
636 : void SetPolygon(const basegfx::B2DPolyPolygon & rNew) throw();
637 : basegfx::B2DPolyPolygon GetPolygon() const throw();
638 :
639 : // XServiceInfo
640 : virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException);
641 : };
642 :
643 : /***********************************************************************
644 : * *
645 : ***********************************************************************/
646 : class SvxGraphicObject : public SvxShapeText
647 : {
648 : protected:
649 : using SvxUnoTextRangeBase::setPropertyValue;
650 : using SvxUnoTextRangeBase::getPropertyValue;
651 :
652 : // overide these for special property handling in subcasses. Return true if property is handled
653 : virtual bool setPropertyValueImpl( const ::rtl::OUString& rName, const SfxItemPropertySimpleEntry* pProperty, const ::com::sun::star::uno::Any& rValue ) 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);
654 : virtual bool getPropertyValueImpl( const ::rtl::OUString& rName, const SfxItemPropertySimpleEntry* pProperty, ::com::sun::star::uno::Any& rValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
655 :
656 : public:
657 : SvxGraphicObject( SdrObject* pObj ) throw();
658 : virtual ~SvxGraphicObject() throw();
659 : };
660 :
661 : /***********************************************************************
662 : * *
663 : ***********************************************************************/
664 : class Svx3DSceneObject : public ::com::sun::star::drawing::XShapes, public SvxShape
665 : {
666 : private:
667 : rtl::Reference< SvxDrawPage > mxPage;
668 :
669 : protected:
670 : using SvxShape::setPropertyValue;
671 : using SvxShape::getPropertyValue;
672 :
673 : public:
674 : Svx3DSceneObject( SdrObject* pObj, SvxDrawPage* pDrawPage ) throw();
675 : // overide these for special property handling in subcasses. Return true if property is handled
676 : virtual bool setPropertyValueImpl( const ::rtl::OUString& rName, const SfxItemPropertySimpleEntry* pProperty, const ::com::sun::star::uno::Any& rValue ) 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);
677 : virtual bool getPropertyValueImpl( const ::rtl::OUString& rName, const SfxItemPropertySimpleEntry* pProperty, ::com::sun::star::uno::Any& rValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
678 :
679 : virtual ~Svx3DSceneObject() throw();
680 :
681 : virtual void Create( SdrObject* pNewOpj, SvxDrawPage* pNewPage = NULL );
682 :
683 : // XInterface
684 : virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException);
685 : virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException);
686 : virtual void SAL_CALL acquire() throw();
687 : virtual void SAL_CALL release() throw();
688 :
689 : // XShapes
690 : virtual void SAL_CALL add( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >& xShape ) throw(::com::sun::star::uno::RuntimeException);
691 : virtual void SAL_CALL remove( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >& xShape ) throw(::com::sun::star::uno::RuntimeException);
692 :
693 : // XElementAccess
694 : virtual ::com::sun::star::uno::Type SAL_CALL getElementType( ) throw(::com::sun::star::uno::RuntimeException);
695 : virtual sal_Bool SAL_CALL hasElements( ) throw(::com::sun::star::uno::RuntimeException);
696 :
697 : // XIndexAccess
698 : virtual sal_Int32 SAL_CALL getCount( ) throw(::com::sun::star::uno::RuntimeException) ;
699 : virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) throw(::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
700 :
701 : // XServiceInfo
702 : virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException);
703 :
704 : // XTypeProvider
705 : virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException);
706 : virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId( ) throw(::com::sun::star::uno::RuntimeException);
707 : };
708 :
709 : /***********************************************************************
710 : * *
711 : ***********************************************************************/
712 : class Svx3DCubeObject : public SvxShape
713 : {
714 : protected:
715 : // overide these for special property handling in subcasses. Return true if property is handled
716 : virtual bool setPropertyValueImpl( const ::rtl::OUString& rName, const SfxItemPropertySimpleEntry* pProperty, const ::com::sun::star::uno::Any& rValue ) 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);
717 : virtual bool getPropertyValueImpl( const ::rtl::OUString& rName, const SfxItemPropertySimpleEntry* pProperty, ::com::sun::star::uno::Any& rValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
718 :
719 : public:
720 : Svx3DCubeObject( SdrObject* pObj ) throw();
721 : virtual ~Svx3DCubeObject() throw();
722 :
723 : // XServiceInfo
724 : virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw(::com::sun::star::uno::RuntimeException);
725 : };
726 :
727 : /***********************************************************************
728 : * *
729 : ***********************************************************************/
730 : class Svx3DSphereObject : public SvxShape
731 : {
732 : public:
733 : Svx3DSphereObject( SdrObject* pObj ) throw();
734 : protected:
735 : // overide these for special property handling in subcasses. Return true if property is handled
736 : virtual bool setPropertyValueImpl( const ::rtl::OUString& rName, const SfxItemPropertySimpleEntry* pProperty, const ::com::sun::star::uno::Any& rValue ) 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);
737 : virtual bool getPropertyValueImpl( const ::rtl::OUString& rName, const SfxItemPropertySimpleEntry* pProperty, ::com::sun::star::uno::Any& rValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
738 :
739 : virtual ~Svx3DSphereObject() throw();
740 :
741 : // XServiceInfo
742 : virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw(::com::sun::star::uno::RuntimeException);
743 : };
744 :
745 : /***********************************************************************
746 : * *
747 : ***********************************************************************/
748 : class Svx3DLatheObject : public SvxShape
749 : {
750 : protected:
751 : // overide these for special property handling in subcasses. Return true if property is handled
752 : virtual bool setPropertyValueImpl( const ::rtl::OUString& rName, const SfxItemPropertySimpleEntry* pProperty, const ::com::sun::star::uno::Any& rValue ) 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);
753 : virtual bool getPropertyValueImpl( const ::rtl::OUString& rName, const SfxItemPropertySimpleEntry* pProperty, ::com::sun::star::uno::Any& rValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
754 :
755 : public:
756 : Svx3DLatheObject( SdrObject* pObj ) throw();
757 : virtual ~Svx3DLatheObject() throw();
758 :
759 : // XServiceInfo
760 : virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw(::com::sun::star::uno::RuntimeException);
761 : };
762 :
763 : /***********************************************************************
764 : * *
765 : ***********************************************************************/
766 : class Svx3DExtrudeObject : public SvxShape
767 : {
768 : public:
769 : Svx3DExtrudeObject( SdrObject* pObj ) throw();
770 : protected:
771 : // overide these for special property handling in subcasses. Return true if property is handled
772 : virtual bool setPropertyValueImpl( const ::rtl::OUString& rName, const SfxItemPropertySimpleEntry* pProperty, const ::com::sun::star::uno::Any& rValue ) 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);
773 : virtual bool getPropertyValueImpl( const ::rtl::OUString& rName, const SfxItemPropertySimpleEntry* pProperty, ::com::sun::star::uno::Any& rValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
774 :
775 : virtual ~Svx3DExtrudeObject() throw();
776 :
777 : // XServiceInfo
778 : virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw(::com::sun::star::uno::RuntimeException);
779 : };
780 :
781 : /***********************************************************************
782 : * *
783 : ***********************************************************************/
784 : class Svx3DPolygonObject : public SvxShape
785 : {
786 : protected:
787 : // overide these for special property handling in subcasses. Return true if property is handled
788 : virtual bool setPropertyValueImpl( const ::rtl::OUString& rName, const SfxItemPropertySimpleEntry* pProperty, const ::com::sun::star::uno::Any& rValue ) 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);
789 : virtual bool getPropertyValueImpl( const ::rtl::OUString& rName, const SfxItemPropertySimpleEntry* pProperty, ::com::sun::star::uno::Any& rValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
790 :
791 : public:
792 : Svx3DPolygonObject( SdrObject* pObj ) throw();
793 : virtual ~Svx3DPolygonObject() throw();
794 :
795 : // XServiceInfo
796 : virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw(::com::sun::star::uno::RuntimeException);
797 : };
798 :
799 : /***********************************************************************
800 : * *
801 : ***********************************************************************/
802 : typedef ::cppu::WeakAggImplHelper1<
803 : ::com::sun::star::drawing::XEnhancedCustomShapeDefaulter
804 : > SvxShape_UnoImplHelper1;
805 :
806 : class SVX_DLLPUBLIC SvxCustomShape : public SvxShapeText, public SvxShape_UnoImplHelper1
807 : {
808 : private:
809 : rtl::Reference< SvxDrawPage > mxPage;
810 :
811 : protected:
812 : using SvxUnoTextRangeBase::setPropertyValue;
813 : using SvxUnoTextRangeBase::getPropertyValue;
814 :
815 : public:
816 : SvxCustomShape( SdrObject* pObj ) throw ();
817 : // overide these for special property handling in subcasses. Return true if property is handled
818 : virtual bool getPropertyValueImpl( const ::rtl::OUString& rName, const SfxItemPropertySimpleEntry* pProperty, ::com::sun::star::uno::Any& rValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
819 :
820 :
821 : virtual ~SvxCustomShape() throw ();
822 :
823 : virtual void Create( SdrObject* pNewOpj, SvxDrawPage* pNewPage = NULL );
824 :
825 : // XInterface
826 : virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException);
827 : virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException);
828 : virtual void SAL_CALL acquire() throw();
829 : virtual void SAL_CALL release() throw();
830 :
831 : // XShapeDescriptor
832 : virtual ::rtl::OUString SAL_CALL getShapeType() throw(::com::sun::star::uno::RuntimeException);
833 :
834 : // XShape
835 : virtual ::com::sun::star::awt::Point SAL_CALL getPosition() throw(::com::sun::star::uno::RuntimeException);
836 : virtual void SAL_CALL setPosition( const ::com::sun::star::awt::Point& aPosition ) throw(::com::sun::star::uno::RuntimeException);
837 : virtual ::com::sun::star::awt::Size SAL_CALL getSize() throw(::com::sun::star::uno::RuntimeException);
838 : virtual void SAL_CALL setSize( const ::com::sun::star::awt::Size& aSize ) throw(::com::sun::star::beans::PropertyVetoException, ::com::sun::star::uno::RuntimeException);
839 :
840 : // XPropertySet
841 : void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue ) throw( ::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException, com::sun::star::beans::PropertyVetoException, com::sun::star::lang::IllegalArgumentException);
842 :
843 : // XTypeProvider
844 : virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException);
845 : virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId( ) throw(::com::sun::star::uno::RuntimeException);
846 :
847 : //XEnhancedCustomShapeDefaulter
848 : virtual void SAL_CALL createCustomShapeDefaults( const rtl::OUString& rShapeType ) throw (::com::sun::star::uno::RuntimeException);
849 : };
850 :
851 : /***********************************************************************
852 : * *
853 : ***********************************************************************/
854 :
855 : class SvxMediaShape : public SvxShape
856 : {
857 : public:
858 : SvxMediaShape( SdrObject* pObj ) throw();
859 : virtual ~SvxMediaShape() throw();
860 :
861 : protected:
862 : // overide these for special property handling in subcasses. Return true if property is handled
863 : virtual bool setPropertyValueImpl( const ::rtl::OUString& rName, const SfxItemPropertySimpleEntry* pProperty, const ::com::sun::star::uno::Any& rValue ) 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);
864 : virtual bool getPropertyValueImpl( const ::rtl::OUString& rName, const SfxItemPropertySimpleEntry* pProperty, ::com::sun::star::uno::Any& rValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
865 : };
866 :
867 : #endif
868 :
869 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|