diff -r 000000000000 -r 7f656887cf89 commands/fed/inc/textview.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/commands/fed/inc/textview.h Wed Jun 23 15:52:26 2010 +0100 @@ -0,0 +1,81 @@ +// textview.h +// +// Copyright (c) 2009 - 2010 Accenture. All rights reserved. +// This component and the accompanying materials are made available +// under the terms of the "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Accenture - Initial contribution +// +#ifndef TEXTVIEW_H_ +#define TEXTVIEW_H_ + +#include + +#include "viewbase.h" + +class CColorConsoleBase; +class CFileBuffer; + +/* + Main parent class for all views able to show any texts on the screen using data read/written from/to the universal + memory buffer CFileBuffer (unicode, left-to-right, right-to-left, up-to-down), etc. +*/ +class CTextView : public CFedViewBase +{ +protected: + CTextView(MConsoleProvider& aConsoleProvider, CFedBufferBase& aBuffer, TInt aPriority = CActive::EPriorityStandard); + void ConstructL(); + ~CTextView(); + +public: + //CActive + void DoCancel(); + void RunL(); + TInt RunError(TInt aError); + + void ResizeL(const TWindow& aWindow); + void RedrawL(const TWindow& aWindow); + void DeactivateL(); + + //MSharedCacheClient + void InvalidateBuffer(TRequestStatus& aStatus); + + CFedBufferBase& Buffer(); + +protected: + void RequestData(TBool aFromTheTop, TInt aOffset); + void SeekData(TInt aDocumentPosition, TInt aNumLines); + virtual void UpdateCursor(const TPoint& aNewPos); + virtual void ValidateCursor(); + void ShowCursor(); + void HideCursor(); + void HandleDataLoadError(TInt aError); + +protected: + virtual void DoResizeL(const TWindow& aOldWindow) = 0; + virtual void DoRedrawL() = 0; + virtual void DoDrawL() = 0; + +private: + enum TState + { + EStateNone, + EStateGetData, + } iState; + + //member variables to use by inheriting classes +protected: + CFedBufferBase& iBuffer; + TPtrC16 iDes; // This is set to whatever cache block is currently active + TBool iActive; // Whether the view is active and can draw on the screen or not + TPoint iCursor; // Current position of cursor on the screen (in window coords, NOT console coords) + TPoint iDrawPoint; // Current position of drawing new characters on the screen (in console coordinates) + RBuf iLine; // Temp buffer for chars to be drawn on the screen + TRange iRange; // Document range of last fetched data (iDes) + TInt iRangeStartLineNumber; // Line number for the first character of iRange +}; + +#endif /*TEXTVIEW_H_*/