LCOV - code coverage report
Current view: top level - include/svx - unoshape.hxx (source / functions) Hit Total Coverage
Test: commit 0e63ca4fde4e446f346e35849c756a30ca294aab Lines: 7 9 77.8 %
Date: 2014-04-11 Functions: 9 10 90.0 %
Legend: Lines: hit not hit

          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      206761 : 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        5965 :     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       15895 :     void InvalidateSdrObject() { mpObj.reset( NULL ); };
     186             :     const SvxItemPropertySet& GetPropertySet() { return *mpPropSet; }
     187      134399 :     SdrObject* GetSdrObject() const {return mpObj.get();}
     188        2068 :     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           1 :     SvxOpenGLObject( SdrObject* pObj ) throw() : SvxShape(pObj){}
     883           2 :     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: */

Generated by: LCOV version 1.10