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 10*1d2dbeb0SAndrew Rist * 11*1d2dbeb0SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*1d2dbeb0SAndrew Rist * 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. 19*1d2dbeb0SAndrew Rist * 20*1d2dbeb0SAndrew Rist *************************************************************/ 21*1d2dbeb0SAndrew Rist 22*1d2dbeb0SAndrew Rist 23cdf0e10cSrcweir #ifndef _BLINK_HXX 24cdf0e10cSrcweir #define _BLINK_HXX 25cdf0e10cSrcweir 26cdf0e10cSrcweir class SwLinePortion; 27cdf0e10cSrcweir class SwRootFrm; 28cdf0e10cSrcweir class SwTxtFrm; 29cdf0e10cSrcweir 30cdf0e10cSrcweir #include <vcl/timer.hxx> 31cdf0e10cSrcweir #include <tools/gen.hxx> 32cdf0e10cSrcweir 33cdf0e10cSrcweir #include <svl/svarray.hxx> 34cdf0e10cSrcweir 35cdf0e10cSrcweir class SwBlinkPortion 36cdf0e10cSrcweir { 37cdf0e10cSrcweir Point aPos; 38cdf0e10cSrcweir const SwLinePortion *pPor; 39cdf0e10cSrcweir const SwRootFrm *pFrm; 40cdf0e10cSrcweir sal_uInt16 nDir; 41cdf0e10cSrcweir public: SwBlinkPortion(const SwLinePortion * pPortion,sal_uInt16 nDirection)42cdf0e10cSrcweir SwBlinkPortion( const SwLinePortion* pPortion, sal_uInt16 nDirection ) 43cdf0e10cSrcweir { pPor = pPortion; nDir = nDirection; } SwBlinkPortion(const SwBlinkPortion * pBlink,const SwLinePortion * pPort)44cdf0e10cSrcweir SwBlinkPortion( const SwBlinkPortion* pBlink, const SwLinePortion* pPort ) 45cdf0e10cSrcweir { pPor = pPort; pFrm = pBlink->pFrm; aPos = pBlink->aPos; nDir = pBlink->nDir; } SetPos(const Point & aNew)46cdf0e10cSrcweir void SetPos( const Point& aNew ){ aPos = aNew; } GetPos() const47cdf0e10cSrcweir const Point& GetPos() const{ return aPos; } SetRootFrm(const SwRootFrm * pNew)48cdf0e10cSrcweir void SetRootFrm( const SwRootFrm* pNew ){ pFrm = pNew; } GetRootFrm() const49cdf0e10cSrcweir const SwRootFrm* GetRootFrm() const{ return pFrm; } GetPortion() const50cdf0e10cSrcweir const SwLinePortion *GetPortion() const{ return pPor; } GetDirection() const51cdf0e10cSrcweir sal_uInt16 GetDirection() const { return nDir; } operator <(const SwBlinkPortion & rBlinkPortion) const52cdf0e10cSrcweir sal_Bool operator<( const SwBlinkPortion& rBlinkPortion ) const 53cdf0e10cSrcweir { return (long)pPor < (long)rBlinkPortion.pPor; } operator ==(const SwBlinkPortion & rBlinkPortion) const54cdf0e10cSrcweir sal_Bool operator==( const SwBlinkPortion& rBlinkPortion ) const 55cdf0e10cSrcweir { return (long)pPor == (long)rBlinkPortion.pPor; } 56cdf0e10cSrcweir }; 57cdf0e10cSrcweir 58cdf0e10cSrcweir typedef SwBlinkPortion* SwBlinkPortionPtr; 59cdf0e10cSrcweir SV_DECL_PTRARR_SORT_DEL(SwBlinkList, SwBlinkPortionPtr, 0, 10) 60cdf0e10cSrcweir 61cdf0e10cSrcweir class SwBlink 62cdf0e10cSrcweir { 63cdf0e10cSrcweir SwBlinkList aList; 64cdf0e10cSrcweir AutoTimer aTimer; 65cdf0e10cSrcweir sal_Bool bVisible; 66cdf0e10cSrcweir public: 67cdf0e10cSrcweir SwBlink(); 68cdf0e10cSrcweir ~SwBlink(); 69cdf0e10cSrcweir 70cdf0e10cSrcweir DECL_LINK( Blinker, Timer * ); 71cdf0e10cSrcweir 72cdf0e10cSrcweir void Insert( const Point& rPoint, const SwLinePortion* pPor, 73cdf0e10cSrcweir const SwTxtFrm *pTxtFrm, sal_uInt16 nDir ); 74cdf0e10cSrcweir void Replace( const SwLinePortion* pOld, const SwLinePortion* pNew ); 75cdf0e10cSrcweir void Delete( const SwLinePortion* pPor ); 76cdf0e10cSrcweir void FrmDelete( const SwRootFrm* pRoot ); IsVisible() const77cdf0e10cSrcweir inline sal_Bool IsVisible() const { return bVisible ; } 78cdf0e10cSrcweir }; 79cdf0e10cSrcweir 80cdf0e10cSrcweir // Blink-Manager, globale Variable, in Blink.Cxx angelegt 81cdf0e10cSrcweir extern SwBlink *pBlink; 82cdf0e10cSrcweir 83cdf0e10cSrcweir 84cdf0e10cSrcweir #endif 85cdf0e10cSrcweir 86