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