1*2d785d7eSAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*2d785d7eSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*2d785d7eSAndrew Rist * or more contributor license agreements. See the NOTICE file 5*2d785d7eSAndrew Rist * distributed with this work for additional information 6*2d785d7eSAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*2d785d7eSAndrew Rist * to you under the Apache License, Version 2.0 (the 8*2d785d7eSAndrew Rist * "License"); you may not use this file except in compliance 9*2d785d7eSAndrew Rist * with the License. You may obtain a copy of the License at 10*2d785d7eSAndrew Rist * 11*2d785d7eSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*2d785d7eSAndrew Rist * 13*2d785d7eSAndrew Rist * Unless required by applicable law or agreed to in writing, 14*2d785d7eSAndrew Rist * software distributed under the License is distributed on an 15*2d785d7eSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*2d785d7eSAndrew Rist * KIND, either express or implied. See the License for the 17*2d785d7eSAndrew Rist * specific language governing permissions and limitations 18*2d785d7eSAndrew Rist * under the License. 19*2d785d7eSAndrew Rist * 20*2d785d7eSAndrew Rist *************************************************************/ 21*2d785d7eSAndrew Rist 22*2d785d7eSAndrew Rist 23cdf0e10cSrcweir #ifndef FORMS_SOURCE_RICHTEXT_ATTRIBUTEDISPATCHER_HXX 24cdf0e10cSrcweir #define FORMS_SOURCE_RICHTEXT_ATTRIBUTEDISPATCHER_HXX 25cdf0e10cSrcweir 26cdf0e10cSrcweir #include "featuredispatcher.hxx" 27cdf0e10cSrcweir #include "rtattributes.hxx" 28cdf0e10cSrcweir #include "textattributelistener.hxx" 29cdf0e10cSrcweir 30cdf0e10cSrcweir //........................................................................ 31cdf0e10cSrcweir namespace frm 32cdf0e10cSrcweir { 33cdf0e10cSrcweir //........................................................................ 34cdf0e10cSrcweir 35cdf0e10cSrcweir //==================================================================== 36cdf0e10cSrcweir //= OAttributeDispatcher 37cdf0e10cSrcweir //==================================================================== 38cdf0e10cSrcweir class OAttributeDispatcher :public ORichTextFeatureDispatcher 39cdf0e10cSrcweir ,public ITextAttributeListener 40cdf0e10cSrcweir { 41cdf0e10cSrcweir protected: 42cdf0e10cSrcweir IMultiAttributeDispatcher* m_pMasterDispatcher; 43cdf0e10cSrcweir AttributeId m_nAttributeId; 44cdf0e10cSrcweir 45cdf0e10cSrcweir public: 46cdf0e10cSrcweir /** ctor 47cdf0e10cSrcweir @param _nAttributeId 48cdf0e10cSrcweir the id of the attribute which this instance is responsible for 49cdf0e10cSrcweir @param _rURL 50cdf0e10cSrcweir the URL of the feature which this instance is responsible for 51cdf0e10cSrcweir @param _pMasterDispatcher 52cdf0e10cSrcweir the dispatcher which can execute the given attribute 53cdf0e10cSrcweir @param _pConverter 54cdf0e10cSrcweir an instance which is able to convert between SfxPoolItems and XDispatch-Parameters 55cdf0e10cSrcweir If not <NULL/>, the parametrized version of IMultiAttributeDispatcher::executeAttribute 56cdf0e10cSrcweir will be used. 57cdf0e10cSrcweir */ 58cdf0e10cSrcweir OAttributeDispatcher( 59cdf0e10cSrcweir EditView& _rView, 60cdf0e10cSrcweir AttributeId _nAttributeId, 61cdf0e10cSrcweir const ::com::sun::star::util::URL& _rURL, 62cdf0e10cSrcweir IMultiAttributeDispatcher* _pMasterDispatcher 63cdf0e10cSrcweir ); 64cdf0e10cSrcweir 65cdf0e10cSrcweir /// notifies a new attribute state 66cdf0e10cSrcweir void notifyAttributeState( const AttributeState& _rState ) SAL_THROW (()); 67cdf0e10cSrcweir 68cdf0e10cSrcweir protected: 69cdf0e10cSrcweir ~OAttributeDispatcher( ); 70cdf0e10cSrcweir 71cdf0e10cSrcweir protected: 72cdf0e10cSrcweir // XDispatch 73cdf0e10cSrcweir virtual void SAL_CALL dispatch( const ::com::sun::star::util::URL& URL, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& Arguments ) throw (::com::sun::star::uno::RuntimeException); 74cdf0e10cSrcweir 75cdf0e10cSrcweir // ITextAttributeListener 76cdf0e10cSrcweir virtual void onAttributeStateChanged( AttributeId _nAttributeId, const AttributeState& _rState ); 77cdf0e10cSrcweir 78cdf0e10cSrcweir // ORichTextFeatureDispatcher 79cdf0e10cSrcweir virtual void disposing( ::osl::ClearableMutexGuard& _rClearBeforeNotify ); 80cdf0e10cSrcweir 81cdf0e10cSrcweir // ORichTextFeatureDispatcher 82cdf0e10cSrcweir virtual ::com::sun::star::frame::FeatureStateEvent buildStatusEvent() const; 83cdf0e10cSrcweir 84cdf0e10cSrcweir // own overridables 85cdf0e10cSrcweir virtual void fillFeatureEventFromAttributeState( ::com::sun::star::frame::FeatureStateEvent& _rEvent, const AttributeState& _rState ) const; 86cdf0e10cSrcweir 87cdf0e10cSrcweir protected: 88cdf0e10cSrcweir /// notifies our feature state to one particular listener 89cdf0e10cSrcweir void notifyState( 90cdf0e10cSrcweir const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XStatusListener >& _rxControl, 91cdf0e10cSrcweir const AttributeState& _rState 92cdf0e10cSrcweir ) SAL_THROW (()); 93cdf0e10cSrcweir }; 94cdf0e10cSrcweir 95cdf0e10cSrcweir //........................................................................ 96cdf0e10cSrcweir } // namespace frm 97cdf0e10cSrcweir //........................................................................ 98cdf0e10cSrcweir 99cdf0e10cSrcweir #endif // FORMS_SOURCE_RICHTEXT_ATTRIBUTEDISPATCHER_HXX 100cdf0e10cSrcweir 101