1*1d2dbeb0SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*1d2dbeb0SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*1d2dbeb0SAndrew Rist * or more contributor license agreements. See the NOTICE file 5*1d2dbeb0SAndrew Rist * distributed with this work for additional information 6*1d2dbeb0SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*1d2dbeb0SAndrew Rist * to you under the Apache License, Version 2.0 (the 8*1d2dbeb0SAndrew Rist * "License"); you may not use this file except in compliance 9*1d2dbeb0SAndrew Rist * with the License. You may obtain a copy of the License at 10cdf0e10cSrcweir * 11*1d2dbeb0SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12cdf0e10cSrcweir * 13*1d2dbeb0SAndrew Rist * Unless required by applicable law or agreed to in writing, 14*1d2dbeb0SAndrew Rist * software distributed under the License is distributed on an 15*1d2dbeb0SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*1d2dbeb0SAndrew Rist * KIND, either express or implied. See the License for the 17*1d2dbeb0SAndrew Rist * specific language governing permissions and limitations 18*1d2dbeb0SAndrew Rist * under the License. 19cdf0e10cSrcweir * 20*1d2dbeb0SAndrew Rist *************************************************************/ 21*1d2dbeb0SAndrew Rist 22*1d2dbeb0SAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir #ifndef IGRAMMARCONTACT_HXX_INCLUDED 25cdf0e10cSrcweir #define IGRAMMARCONTACT_HXX_INCLUDED 26cdf0e10cSrcweir 27cdf0e10cSrcweir struct SwPosition; 28cdf0e10cSrcweir class SwTxtNode; 29cdf0e10cSrcweir class SwGrammarMarkUp; 30cdf0e10cSrcweir class SwDoc; 31cdf0e10cSrcweir 32cdf0e10cSrcweir /** Organizer of the contact between SwTxtNodes and grammar checker 33cdf0e10cSrcweir */ 34cdf0e10cSrcweir class IGrammarContact 35cdf0e10cSrcweir { 36cdf0e10cSrcweir public: 37cdf0e10cSrcweir 38cdf0e10cSrcweir /** Update cursor position reacts to a change of the current input cursor 39cdf0e10cSrcweir As long as the cursor in inside a paragraph, the grammar checking does 40cdf0e10cSrcweir not show new grammar faults. When the cursor leaves the paragraph, these 41cdf0e10cSrcweir faults are shown. 42cdf0e10cSrcweir @returns void 43cdf0e10cSrcweir */ 44cdf0e10cSrcweir virtual void updateCursorPosition( const SwPosition& rNewPos ) = 0; 45cdf0e10cSrcweir 46cdf0e10cSrcweir /** getGrammarCheck checks if the given text node is blocked by the current cursor 47cdf0e10cSrcweir if not, the normal markup list is returned 48cdf0e10cSrcweir if blocked, it will return a markup list "proxy" 49cdf0e10cSrcweir @returns a markup list (grammar) for the given SwTxtNode 50cdf0e10cSrcweir */ 51cdf0e10cSrcweir virtual SwGrammarMarkUp* getGrammarCheck( SwTxtNode& rTxtNode, bool bCreate ) = 0; 52cdf0e10cSrcweir 53cdf0e10cSrcweir /** finishGrammarCheck() has to be called if a grammar checking has been completed 54cdf0e10cSrcweir for a text node. If this text node has not been hided by the current proxy list 55cdf0e10cSrcweir it will be repainted. Otherwise the proxy list replaces the old list and the 56cdf0e10cSrcweir repaint will be triggered by a timer 57cdf0e10cSrcweir @returns void 58cdf0e10cSrcweir */ 59cdf0e10cSrcweir virtual void finishGrammarCheck( SwTxtNode& rTxtNode ) = 0; 60cdf0e10cSrcweir 61cdf0e10cSrcweir public: ~IGrammarContact()62cdf0e10cSrcweir virtual ~IGrammarContact() {} 63cdf0e10cSrcweir }; 64cdf0e10cSrcweir 65cdf0e10cSrcweir /** Factory for a grammar contact 66cdf0e10cSrcweir @returns a new created grammar contact object 67cdf0e10cSrcweir */ 68cdf0e10cSrcweir IGrammarContact* createGrammarContact(); 69cdf0e10cSrcweir 70cdf0e10cSrcweir /* Helper functions */ 71cdf0e10cSrcweir 72cdf0e10cSrcweir /** getGrammarContact() delivers the grammar contact of the document (for a given textnode) 73cdf0e10cSrcweir @returns grammar contact 74cdf0e10cSrcweir */ 75cdf0e10cSrcweir IGrammarContact* getGrammarContact( const SwTxtNode& ); 76cdf0e10cSrcweir 77cdf0e10cSrcweir /** finishGrammarCheck() calls the same function of the grammar contact of the document (for a given textnode) 78cdf0e10cSrcweir @returns void 79cdf0e10cSrcweir */ 80cdf0e10cSrcweir void finishGrammarCheck( SwTxtNode& ); 81cdf0e10cSrcweir 82cdf0e10cSrcweir #endif // IGRAMMARCONTACT_HXX_INCLUDED 83cdf0e10cSrcweir 84