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_RICHTEXTENGINE_HXX 24cdf0e10cSrcweir #define FORMS_SOURCE_RICHTEXT_RICHTEXTENGINE_HXX 25cdf0e10cSrcweir 26cdf0e10cSrcweir #include <editeng/editeng.hxx> 27cdf0e10cSrcweir #include <tools/link.hxx> 28cdf0e10cSrcweir 29cdf0e10cSrcweir #include <vector> 30cdf0e10cSrcweir 31cdf0e10cSrcweir class SfxItemPool; 32cdf0e10cSrcweir class EditStatus; 33cdf0e10cSrcweir //........................................................................ 34cdf0e10cSrcweir namespace frm 35cdf0e10cSrcweir { 36cdf0e10cSrcweir //........................................................................ 37cdf0e10cSrcweir 38cdf0e10cSrcweir //==================================================================== 39cdf0e10cSrcweir //= IEngineStatusListener 40cdf0e10cSrcweir //==================================================================== 41cdf0e10cSrcweir class IEngineStatusListener 42cdf0e10cSrcweir { 43cdf0e10cSrcweir public: 44cdf0e10cSrcweir virtual void EditEngineStatusChanged( const EditStatus& _rStatus ) = 0; 45cdf0e10cSrcweir }; 46cdf0e10cSrcweir 47cdf0e10cSrcweir //==================================================================== 48cdf0e10cSrcweir //= RichTextEngine 49cdf0e10cSrcweir //==================================================================== 50cdf0e10cSrcweir class RichTextEngine : public EditEngine 51cdf0e10cSrcweir { 52cdf0e10cSrcweir private: 53cdf0e10cSrcweir SfxItemPool* m_pEnginePool; 54cdf0e10cSrcweir ::std::vector< IEngineStatusListener* > m_aStatusListeners; 55cdf0e10cSrcweir 56cdf0e10cSrcweir public: 57cdf0e10cSrcweir static RichTextEngine* Create(); 58cdf0e10cSrcweir RichTextEngine* Clone(); 59cdf0e10cSrcweir 60cdf0e10cSrcweir ~RichTextEngine( ); 61cdf0e10cSrcweir 62cdf0e10cSrcweir // for multiplexing the StatusChanged events of the edit engine 63cdf0e10cSrcweir void registerEngineStatusListener( IEngineStatusListener* _pListener ); 64cdf0e10cSrcweir void revokeEngineStatusListener( IEngineStatusListener* _pListener ); 65cdf0e10cSrcweir getPool()66cdf0e10cSrcweir inline SfxItemPool* getPool() { return m_pEnginePool; } 67cdf0e10cSrcweir 68cdf0e10cSrcweir protected: 69cdf0e10cSrcweir /** constructs a new RichTextEngine. The instances takes the ownership of the given SfxItemPool 70cdf0e10cSrcweir */ 71cdf0e10cSrcweir RichTextEngine( SfxItemPool* _pPool ); 72cdf0e10cSrcweir 73cdf0e10cSrcweir private: 74cdf0e10cSrcweir RichTextEngine( ); // never implemented 75cdf0e10cSrcweir RichTextEngine( const RichTextEngine& ); // never implemented 76cdf0e10cSrcweir RichTextEngine& operator=( const RichTextEngine& ); // never implemented 77cdf0e10cSrcweir 78cdf0e10cSrcweir private: 79cdf0e10cSrcweir DECL_LINK( EditEngineStatusChanged, EditStatus* ); 80cdf0e10cSrcweir }; 81cdf0e10cSrcweir 82cdf0e10cSrcweir //........................................................................ 83cdf0e10cSrcweir } // namespace frm 84cdf0e10cSrcweir //........................................................................ 85cdf0e10cSrcweir 86cdf0e10cSrcweir #endif // FORMS_SOURCE_RICHTEXT_RICHTEXTENGINE_HXX 87cdf0e10cSrcweir 88