diff -r 000000000000 -r 5e5d6b214f4f imstutils/imconversationview/imcvuiapp/inc/mimcvapptextview.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/imstutils/imconversationview/imcvuiapp/inc/mimcvapptextview.h Tue Feb 02 10:12:18 2010 +0200 @@ -0,0 +1,165 @@ +/* +* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "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: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Interface for text viewer +* +*/ + + + +#ifndef MIMCVAPPTEXTVIEW_H +#define MIMCVAPPTEXTVIEW_H + +// CLASS DECLARATION +class TPointerEvent; + +/** +* Interface for text viewer +* +* imcvuiapp.exe +* @since Series 60 5.0 +*/ +class MIMCVAppTextView + { + public: // Enumerations + + enum TPenBehaviour + { + EPenForwardToChild = 0, + EPenForwardToParent, + EPenProcessEvent, + EPenIgnoreEvent + }; + + public: // New functions + + /** + * Update the view + */ + virtual void UpdateChatViewL() = 0; + + + /** + * Handles changed format. + * @param aChanged Changed section of rich text + * @param aPreserveFocus ETrue : Keeps focus of text control in place + * EFalse : Focus moves with changes + */ + virtual void HandleFormatChangedL( TCursorSelection& aChanged, + TBool aPreserveFocus = EFalse ) = 0; + + /** + * Handles insertion and deletion + * @param aChanged Changed section of rich text. If this function is + * being used to handle deletion only, this argument + * should be of length zero and its start position + * should be the beginning of the deletion. + * @param aDeletedChars The number of deleted characters. Specify zero + * if this function is being used to handle insertion + * only. + */ + virtual void HandleInsertDeleteL( TCursorSelection& aChanged, + TInt aDeletedChars ) = 0; + + /** + * Handles addition of text + * @param aFirst Should be set to ETrue if + * this is the first addition of text + * @param aSelection Selection + * @param aTop If selection doesn't fit to screen, should the top of the + * selection be visible. I.e. If ETrue, top of the message is shown. + * if EFalse, bottom of the message is shown. + */ + virtual void HandleAdditionL( TBool aFirst, TCursorSelection& aSelection, + TBool aTop ) = 0; + + /** + * Scrolls selection to screen and updates scroll bars + * @param aSelection Selection + * @param aTop If selection doesn't fit to screen, should the top of the + * selection be visible. I.e. If ETrue, top of the message is shown. + * if EFalse, bottom of the message is shown. + */ + virtual void ScrollVisibleL( TCursorSelection& aSelection, TBool aTop ) = 0; + + /** + * @return Current scroll selection (i.e. the visible part) + */ + virtual TCursorSelection ScrollSelection() = 0; + + /** + * Scrolls view up or down + * @param aAmount Amount of lines to be scrolled + * Use negative values for scrolling up + */ + virtual void ScrollLinesL( TInt aAmount ) = 0; + + /** + * @return ETrue if aPos is visible on screen, EFalse otherwise. + */ + virtual TBool IsVisible( TInt aPos ) = 0; + + /** + * @return ETrue if the paragraph in aPos fits to screen + */ + virtual TBool ParagraphFits( TInt aPos ) = 0; + + /** + * Redraws the view + */ + virtual void Redraw() = 0; + + /** + * Sets the behaviour of this control to pointer events. + * see TPenBehaviour for more detailed info. + * @param aPen How this control should react to pointer events + */ + virtual void SetPenBehaviour( TPenBehaviour aPen ) = 0; + + /** + * Return current pen behaviour state. Determines how this control + * reacts to pointer events. + * @return Current pen behaviour + */ + virtual TPenBehaviour PenBehaviour() = 0; + + /** + * Reformats the view after a global change has been made to the layout, + * but without causing a redraw. + * @since S60 v3.2 + * @param aYPosQualifier Specifies whether the visible area is to be + * filled and whether the top line should be made + * fully visible if possible. + */ + virtual void HandleGlobalChangeNoRedrawL( + TViewYPosQualifier aYPosQualifier = TViewYPosQualifier() ) = 0; + + protected: + + /** + * This gets called when the pointer event is inside the text message. + * @param aPointerEvent Pointer event + */ + virtual void ProcessStylusEventL( + const TPointerEvent& aPointerEvent ) = 0; + + /** + * Destructor. + */ + virtual ~MIMCVAppTextView() {}; + + }; + +#endif // MIMCVAPPTEXTVIEW_H + +// End of File