1*38d50f7bSAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*38d50f7bSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*38d50f7bSAndrew Rist * or more contributor license agreements. See the NOTICE file 5*38d50f7bSAndrew Rist * distributed with this work for additional information 6*38d50f7bSAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*38d50f7bSAndrew Rist * to you under the Apache License, Version 2.0 (the 8*38d50f7bSAndrew Rist * "License"); you may not use this file except in compliance 9*38d50f7bSAndrew Rist * with the License. You may obtain a copy of the License at 10*38d50f7bSAndrew Rist * 11*38d50f7bSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*38d50f7bSAndrew Rist * 13*38d50f7bSAndrew Rist * Unless required by applicable law or agreed to in writing, 14*38d50f7bSAndrew Rist * software distributed under the License is distributed on an 15*38d50f7bSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*38d50f7bSAndrew Rist * KIND, either express or implied. See the License for the 17*38d50f7bSAndrew Rist * specific language governing permissions and limitations 18*38d50f7bSAndrew Rist * under the License. 19*38d50f7bSAndrew Rist * 20*38d50f7bSAndrew Rist *************************************************************/ 21*38d50f7bSAndrew Rist 22*38d50f7bSAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir #ifndef SC_SHAPEUNO_HXX 25cdf0e10cSrcweir #define SC_SHAPEUNO_HXX 26cdf0e10cSrcweir 27cdf0e10cSrcweir #include <tools/solar.h> 28cdf0e10cSrcweir #include <com/sun/star/beans/XPropertyState.hpp> 29cdf0e10cSrcweir #include <com/sun/star/beans/XPropertySet.hpp> 30cdf0e10cSrcweir #include <com/sun/star/text/XTextContent.hpp> 31cdf0e10cSrcweir #include <com/sun/star/text/XText.hpp> 32cdf0e10cSrcweir #include <com/sun/star/lang/XTypeProvider.hpp> 33cdf0e10cSrcweir #include <com/sun/star/lang/XServiceInfo.hpp> 34cdf0e10cSrcweir #include <com/sun/star/document/XEventsSupplier.hpp> 35cdf0e10cSrcweir #include <com/sun/star/container/XChild.hpp> 36cdf0e10cSrcweir 37cdf0e10cSrcweir #include <cppuhelper/implbase5.hxx> 38cdf0e10cSrcweir #include <cppuhelper/implbase1.hxx> 39cdf0e10cSrcweir 40cdf0e10cSrcweir namespace com { namespace sun { namespace star { 41cdf0e10cSrcweir namespace uno { 42cdf0e10cSrcweir class XAggregation; 43cdf0e10cSrcweir } 44cdf0e10cSrcweir namespace drawing { 45cdf0e10cSrcweir class XShape; 46cdf0e10cSrcweir } 47cdf0e10cSrcweir }}} 48cdf0e10cSrcweir 49cdf0e10cSrcweir class SdrObject; 50cdf0e10cSrcweir struct SvEventDescription; 51cdf0e10cSrcweir class ShapeUnoEventAccessImpl; 52cdf0e10cSrcweir 53cdf0e10cSrcweir //------------------------------------------------------------------------ 54cdf0e10cSrcweir 55cdf0e10cSrcweir // object which aggregates all svx shape objects, 56cdf0e10cSrcweir // to add own properties 57cdf0e10cSrcweir 58cdf0e10cSrcweir typedef ::cppu::WeakImplHelper5 < ::com::sun::star::beans::XPropertySet 59cdf0e10cSrcweir , ::com::sun::star::beans::XPropertyState 60cdf0e10cSrcweir , ::com::sun::star::text::XTextContent 61cdf0e10cSrcweir , ::com::sun::star::document::XEventsSupplier 62cdf0e10cSrcweir , ::com::sun::star::lang::XServiceInfo 63cdf0e10cSrcweir > ScShapeObj_Base; 64cdf0e10cSrcweir typedef ::cppu::ImplHelper1 < ::com::sun::star::text::XText 65cdf0e10cSrcweir > ScShapeObj_TextBase; 66cdf0e10cSrcweir typedef ::cppu::ImplHelper1 < ::com::sun::star::container::XChild 67cdf0e10cSrcweir > ScShapeObj_ChildBase; 68cdf0e10cSrcweir class ScShapeObj :public ScShapeObj_Base 69cdf0e10cSrcweir ,public ScShapeObj_TextBase 70cdf0e10cSrcweir ,public ScShapeObj_ChildBase 71cdf0e10cSrcweir { 72cdf0e10cSrcweir private: 73cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::uno::XAggregation > mxShapeAgg; 74cdf0e10cSrcweir // cached pointers to avoid repeated queryAggregation calls: 75cdf0e10cSrcweir ::com::sun::star::beans::XPropertySet* pShapePropertySet; 76cdf0e10cSrcweir ::com::sun::star::beans::XPropertyState* pShapePropertyState; 77cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > mxPropSetInfo; 78cdf0e10cSrcweir com::sun::star::uno::Sequence< sal_Int8 >* pImplementationId; 79cdf0e10cSrcweir bool bIsTextShape; 80cdf0e10cSrcweir bool bIsNoteCaption; 81cdf0e10cSrcweir bool bInitializedNotifier; 82cdf0e10cSrcweir 83cdf0e10cSrcweir SdrObject* GetSdrObject() const throw(); 84cdf0e10cSrcweir 85cdf0e10cSrcweir void GetShapePropertySet(); 86cdf0e10cSrcweir void GetShapePropertyState(); 87cdf0e10cSrcweir 88cdf0e10cSrcweir friend class ShapeUnoEventAccessImpl; 89cdf0e10cSrcweir 90cdf0e10cSrcweir public: 91cdf0e10cSrcweir static const SvEventDescription* GetSupportedMacroItems(); 92cdf0e10cSrcweir 93cdf0e10cSrcweir // ctor modifies xShape parameter 94cdf0e10cSrcweir ScShapeObj( ::com::sun::star::uno::Reference< 95cdf0e10cSrcweir ::com::sun::star::drawing::XShape > & xShape ); 96cdf0e10cSrcweir virtual ~ScShapeObj(); 97cdf0e10cSrcweir 98cdf0e10cSrcweir // XInterface 99cdf0e10cSrcweir virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( 100cdf0e10cSrcweir const ::com::sun::star::uno::Type & rType ) 101cdf0e10cSrcweir throw(::com::sun::star::uno::RuntimeException); 102cdf0e10cSrcweir virtual void SAL_CALL acquire() throw(); 103cdf0e10cSrcweir virtual void SAL_CALL release() throw(); 104cdf0e10cSrcweir 105cdf0e10cSrcweir // XPropertySet 106cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > 107cdf0e10cSrcweir SAL_CALL getPropertySetInfo() 108cdf0e10cSrcweir throw(::com::sun::star::uno::RuntimeException); 109cdf0e10cSrcweir virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, 110cdf0e10cSrcweir const ::com::sun::star::uno::Any& aValue ) 111cdf0e10cSrcweir throw(::com::sun::star::beans::UnknownPropertyException, 112cdf0e10cSrcweir ::com::sun::star::beans::PropertyVetoException, 113cdf0e10cSrcweir ::com::sun::star::lang::IllegalArgumentException, 114cdf0e10cSrcweir ::com::sun::star::lang::WrappedTargetException, 115cdf0e10cSrcweir ::com::sun::star::uno::RuntimeException); 116cdf0e10cSrcweir virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( 117cdf0e10cSrcweir const ::rtl::OUString& PropertyName ) 118cdf0e10cSrcweir throw(::com::sun::star::beans::UnknownPropertyException, 119cdf0e10cSrcweir ::com::sun::star::lang::WrappedTargetException, 120cdf0e10cSrcweir ::com::sun::star::uno::RuntimeException); 121cdf0e10cSrcweir virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, 122cdf0e10cSrcweir const ::com::sun::star::uno::Reference< 123cdf0e10cSrcweir ::com::sun::star::beans::XPropertyChangeListener >& xListener ) 124cdf0e10cSrcweir throw(::com::sun::star::beans::UnknownPropertyException, 125cdf0e10cSrcweir ::com::sun::star::lang::WrappedTargetException, 126cdf0e10cSrcweir ::com::sun::star::uno::RuntimeException); 127cdf0e10cSrcweir virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, 128cdf0e10cSrcweir const ::com::sun::star::uno::Reference< 129cdf0e10cSrcweir ::com::sun::star::beans::XPropertyChangeListener >& aListener ) 130cdf0e10cSrcweir throw(::com::sun::star::beans::UnknownPropertyException, 131cdf0e10cSrcweir ::com::sun::star::lang::WrappedTargetException, 132cdf0e10cSrcweir ::com::sun::star::uno::RuntimeException); 133cdf0e10cSrcweir virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, 134cdf0e10cSrcweir const ::com::sun::star::uno::Reference< 135cdf0e10cSrcweir ::com::sun::star::beans::XVetoableChangeListener >& aListener ) 136cdf0e10cSrcweir throw(::com::sun::star::beans::UnknownPropertyException, 137cdf0e10cSrcweir ::com::sun::star::lang::WrappedTargetException, 138cdf0e10cSrcweir ::com::sun::star::uno::RuntimeException); 139cdf0e10cSrcweir virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, 140cdf0e10cSrcweir const ::com::sun::star::uno::Reference< 141cdf0e10cSrcweir ::com::sun::star::beans::XVetoableChangeListener >& aListener ) 142cdf0e10cSrcweir throw(::com::sun::star::beans::UnknownPropertyException, 143cdf0e10cSrcweir ::com::sun::star::lang::WrappedTargetException, 144cdf0e10cSrcweir ::com::sun::star::uno::RuntimeException); 145cdf0e10cSrcweir 146cdf0e10cSrcweir // XPropertyState 147cdf0e10cSrcweir virtual ::com::sun::star::beans::PropertyState SAL_CALL getPropertyState( 148cdf0e10cSrcweir const ::rtl::OUString& PropertyName ) 149cdf0e10cSrcweir throw(::com::sun::star::beans::UnknownPropertyException, 150cdf0e10cSrcweir ::com::sun::star::uno::RuntimeException); 151cdf0e10cSrcweir virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyState > SAL_CALL 152cdf0e10cSrcweir getPropertyStates( const ::com::sun::star::uno::Sequence< 153cdf0e10cSrcweir ::rtl::OUString >& aPropertyName ) 154cdf0e10cSrcweir throw(::com::sun::star::beans::UnknownPropertyException, 155cdf0e10cSrcweir ::com::sun::star::uno::RuntimeException); 156cdf0e10cSrcweir virtual void SAL_CALL setPropertyToDefault( const ::rtl::OUString& PropertyName ) 157cdf0e10cSrcweir throw(::com::sun::star::beans::UnknownPropertyException, 158cdf0e10cSrcweir ::com::sun::star::uno::RuntimeException); 159cdf0e10cSrcweir virtual ::com::sun::star::uno::Any SAL_CALL getPropertyDefault( 160cdf0e10cSrcweir const ::rtl::OUString& aPropertyName ) 161cdf0e10cSrcweir throw(::com::sun::star::beans::UnknownPropertyException, 162cdf0e10cSrcweir ::com::sun::star::lang::WrappedTargetException, 163cdf0e10cSrcweir ::com::sun::star::uno::RuntimeException); 164cdf0e10cSrcweir 165cdf0e10cSrcweir // XTextContent 166cdf0e10cSrcweir virtual void SAL_CALL attach(const ::com::sun::star::uno::Reference< 167cdf0e10cSrcweir ::com::sun::star::text::XTextRange > & xTextRange) 168cdf0e10cSrcweir throw( ::com::sun::star::lang::IllegalArgumentException, 169cdf0e10cSrcweir ::com::sun::star::uno::RuntimeException ); 170cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > SAL_CALL 171cdf0e10cSrcweir getAnchor(void) throw( ::com::sun::star::uno::RuntimeException ); 172cdf0e10cSrcweir 173cdf0e10cSrcweir // XComponent 174cdf0e10cSrcweir virtual void SAL_CALL dispose(void) throw( ::com::sun::star::uno::RuntimeException ); 175cdf0e10cSrcweir virtual void SAL_CALL addEventListener(const ::com::sun::star::uno::Reference< 176cdf0e10cSrcweir ::com::sun::star::lang::XEventListener > & aListener) 177cdf0e10cSrcweir throw( ::com::sun::star::uno::RuntimeException ); 178cdf0e10cSrcweir virtual void SAL_CALL removeEventListener(const ::com::sun::star::uno::Reference< 179cdf0e10cSrcweir ::com::sun::star::lang::XEventListener > & aListener) 180cdf0e10cSrcweir throw( ::com::sun::star::uno::RuntimeException ); 181cdf0e10cSrcweir 182cdf0e10cSrcweir // XText 183cdf0e10cSrcweir virtual void SAL_CALL insertTextContent( const ::com::sun::star::uno::Reference< 184cdf0e10cSrcweir ::com::sun::star::text::XTextRange >& xRange, 185cdf0e10cSrcweir const ::com::sun::star::uno::Reference< 186cdf0e10cSrcweir ::com::sun::star::text::XTextContent >& xContent, 187cdf0e10cSrcweir sal_Bool bAbsorb ) 188cdf0e10cSrcweir throw(::com::sun::star::lang::IllegalArgumentException, 189cdf0e10cSrcweir ::com::sun::star::uno::RuntimeException); 190cdf0e10cSrcweir virtual void SAL_CALL removeTextContent( const ::com::sun::star::uno::Reference< 191cdf0e10cSrcweir ::com::sun::star::text::XTextContent >& xContent ) 192cdf0e10cSrcweir throw(::com::sun::star::container::NoSuchElementException, 193cdf0e10cSrcweir ::com::sun::star::uno::RuntimeException); 194cdf0e10cSrcweir 195cdf0e10cSrcweir // XSimpleText 196cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextCursor > SAL_CALL 197cdf0e10cSrcweir createTextCursor() throw(::com::sun::star::uno::RuntimeException); 198cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextCursor > SAL_CALL 199cdf0e10cSrcweir createTextCursorByRange( const ::com::sun::star::uno::Reference< 200cdf0e10cSrcweir ::com::sun::star::text::XTextRange >& aTextPosition ) 201cdf0e10cSrcweir throw(::com::sun::star::uno::RuntimeException); 202cdf0e10cSrcweir virtual void SAL_CALL insertString( const ::com::sun::star::uno::Reference< 203cdf0e10cSrcweir ::com::sun::star::text::XTextRange >& xRange, 204cdf0e10cSrcweir const ::rtl::OUString& aString, sal_Bool bAbsorb ) 205cdf0e10cSrcweir throw(::com::sun::star::uno::RuntimeException); 206cdf0e10cSrcweir virtual void SAL_CALL insertControlCharacter( const ::com::sun::star::uno::Reference< 207cdf0e10cSrcweir ::com::sun::star::text::XTextRange >& xRange, 208cdf0e10cSrcweir sal_Int16 nControlCharacter, sal_Bool bAbsorb ) 209cdf0e10cSrcweir throw(::com::sun::star::lang::IllegalArgumentException, 210cdf0e10cSrcweir ::com::sun::star::uno::RuntimeException); 211cdf0e10cSrcweir 212cdf0e10cSrcweir // XTextRange 213cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XText > SAL_CALL 214cdf0e10cSrcweir getText() throw(::com::sun::star::uno::RuntimeException); 215cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > SAL_CALL 216cdf0e10cSrcweir getStart() throw(::com::sun::star::uno::RuntimeException); 217cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > SAL_CALL 218cdf0e10cSrcweir getEnd() throw(::com::sun::star::uno::RuntimeException); 219cdf0e10cSrcweir virtual ::rtl::OUString SAL_CALL getString() throw(::com::sun::star::uno::RuntimeException); 220cdf0e10cSrcweir virtual void SAL_CALL setString( const ::rtl::OUString& aString ) 221cdf0e10cSrcweir throw(::com::sun::star::uno::RuntimeException); 222cdf0e10cSrcweir 223cdf0e10cSrcweir // XChild 224cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getParent() 225cdf0e10cSrcweir throw (::com::sun::star::uno::RuntimeException); 226cdf0e10cSrcweir virtual void SAL_CALL setParent( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xParent ) 227cdf0e10cSrcweir throw (::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException); 228cdf0e10cSrcweir 229cdf0e10cSrcweir // XTypeProvider 230cdf0e10cSrcweir virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() 231cdf0e10cSrcweir throw(::com::sun::star::uno::RuntimeException); 232cdf0e10cSrcweir virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() 233cdf0e10cSrcweir throw(::com::sun::star::uno::RuntimeException); 234cdf0e10cSrcweir 235cdf0e10cSrcweir // XEventsSupplier 236cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameReplace > SAL_CALL getEvents() 237cdf0e10cSrcweir throw(::com::sun::star::uno::RuntimeException); 238cdf0e10cSrcweir 239cdf0e10cSrcweir // XServiceInfo 240cdf0e10cSrcweir virtual ::rtl::OUString SAL_CALL getImplementationName( ) 241cdf0e10cSrcweir throw (::com::sun::star::uno::RuntimeException) ; 242cdf0e10cSrcweir virtual ::sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) 243cdf0e10cSrcweir throw (::com::sun::star::uno::RuntimeException); 244cdf0e10cSrcweir virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) 245cdf0e10cSrcweir throw (::com::sun::star::uno::RuntimeException); 246cdf0e10cSrcweir }; 247cdf0e10cSrcweir 248cdf0e10cSrcweir #endif 249cdf0e10cSrcweir 250