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