diff -r 000000000000 -r eb1f2e154e89 fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/aknfepuictrleepcontrol.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/aknfepuictrleepcontrol.h Tue Feb 02 01:02:04 2010 +0200 @@ -0,0 +1,360 @@ +/* +* Copyright (c) 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: + * Provides the CAknFepUICtrlEEPControl definition + * +*/ + + + + + + + + + + + + +#ifndef C_AKNFEPUICTRLEEPCONTROL_H +#define C_AKNFEPUICTRLEEPCONTROL_H + +#include +#include +#include + +#include "insertionpoint.h" + +class CAknFepUiLayoutDataMgr; +/** + * The editable entry pane control class. + * + * @lib aknfepuiavkonplugin.dll + * @since S60 v5.0 + */ +const TInt KLROffset = 5; +const TInt KCursorResetOffset = 20; +const TInt KCursorResetStartOffset = 85; +const TInt KDenominator = 100; + +class CAknFepUICtrlEEPControl : public CCoeControl, public MRefreshObserver + { +public: + /** + * The display style for the text. + */ + enum TDspStyle + { + ENomal, + EUnderline, + EHighlight, + EUnderlineHighlight + }; + + class TSegment + { + public: + /** + * C++ constructor. + * + * @since S60 v5.0 + * @param None. + * @return self object. + */ + TSegment( TInt aBeg, TInt aEnd, TDspStyle aStyle ); + + /** + * Compare the Index + * + * @since S60 v5.0 + * + * @param s1 the TSegment object. + * @param s2 the TSegment object. + * @return index + */ + static TInt + CompareByBegIndex( const TSegment& s1, const TSegment& s2 ); + TInt iBegin; + TInt iEnd; + TDspStyle iStyle; + }; + + /** + * NewL function. + * + * @since S60 v5.0 + * @param aParent. the RWindow object. + * @return self object. + */ + static CAknFepUICtrlEEPControl* NewL( RWindow& aParent, CAknFepUiLayoutDataMgr* aLafDataMgr ); + + /** + * NewLC function. + * + * @since S60 v5.0 + * @param aParent. the RWindow object. + * @return self object. + */ + static CAknFepUICtrlEEPControl* NewLC( RWindow& aParent, CAknFepUiLayoutDataMgr* aLafDataMgr ); + + + /** + * Cancel and destroy. + * + * @since S60 v5.0 + * + * @return none. + */ + virtual ~CAknFepUICtrlEEPControl( ); + + /** + * From CCoeControl + * Draw the control. + * + * @since S60 v5.0 + * @param aRect need to draw rect. + * @return None. + */ + virtual void Draw( const TRect& aRect ) const; + + /** + * From CCoeControl + * + * @since S60 v5.0 + * @param None. + * @return None. + */ + virtual void SizeChanged( ); + + /** + * From MRefreshObserver + * Called by the cursor object. + * + * @since S60 v5.0 + * @param None. + * @return None. + */ + void Refresh(); + + /** + * Set the visual text and store it into member data buffer. + * + * @since S60 v5.0 + * @param aDes. The buffer you want to display. + * @return None. + */ + void SetText( const TDesC& aDes ); + + /** + * Set the cursor position in the visual text rect. + * + * @since S60 v5.0 + * @param aIndex. it represent the cursor should appear in front of aIndex character. + * @return. error code. 0 for success. + */ + TInt SetCursorPosition( TInt aIndex ); + + /** + * Get the cursor position in visual text. + * + * @since S60 v5.0 + * @param None. + * @return. The cursor position. + */ + TInt GetCursorPosition( ); + + /** + * Set the underlined text beginning index and ending index. + * + * @since S60 v5.0 + * @param aBeg. the beginning index for underlined text. + * @param aEnd. the ending index for underlined text. + * @return. error code, 0 for success. + */ + TInt SetUnderline( TInt aBeg, TInt aEnd ); + + /** + * Set the highlighted text beginning index and ending index. + * + * @since S60 v5.0 + * @param aBeg. the beginning index for highlighted text. + * @param aEnd. the ending index for highlighted text. + * @param aColor. the color of highlighted text, KRgbRed by default. + * @return. error code, 0 for success. + */ + TInt SetHighlight( TInt aBeg, TInt aEnd ); + + /** + * Add a TSegment into iArray to identify the segment with a specified style. + * + * @since S60 v5.0 + * @param aBeg. the beginning index. + * @param aEnd. the ending index. + * @param aType. the specified style. + */ + void SetSegmentL ( TInt aBeg, TInt aEnd, TDspStyle aStyle ); + + /** + * Add a TSegment into iArray to identify the segment with a specified style. + * + * @since S60 v5.0 + * @param aBeg. the beginning index. + * @param aEnd. the ending index. + * @param aType. the specified style. + */ + void SetSegment ( TInt aBeg, TInt aEnd, TDspStyle aStyle ); + + /** + * Active the cursor,the cursor will be appeared with a glint. + * + * @since S60 v5.0 + * @param None. + * @return None. + */ + void ActiveCursor( ); + + /** + * Deactive the cursor, the cursor will be gray and with no glint. + * + * @since S60 v5.0 + * @param None. + * @return None. + */ + void DeactiveCursor( ); + + /** + * Enable the cursor. + * + * @since S60 v5.0 + * @param None. + * @return None. + */ + void EnableCursor( ); + + /** + * Disable the cursor. + * + * @since S60 v5.0 + * @param None. + * @return None. + */ + void DisableCursor( ); + + /** + * Move cursor to the left by a specified stride. + * + * @since S60 v5.0 + * @param aStride. specify the stride. + * @return. error code, 0 for success. + */ + TInt MoveCursorLeft( TInt aStride ); + + /** + * Move cursor to the right by a specified stride. + * + * @since S60 v5.0 + * @param aStride. specify the stride. + * @return. error code, 0 for success. + */ + TInt MoveCursorRight( TInt aStride ); + + /** + * Reset all its member data to initialized state. + * + * @since S60 v5.0 + * @param None. + * @return None. + */ + void ResetAll( ); + +private: + + /** + * C++ constructor. + * + * @since S60 v5.0 + * @param None. + */ + CAknFepUICtrlEEPControl(CAknFepUiLayoutDataMgr* aLafDataMgr); + + /** + * Two-phrase constructor. + * + * @since S60 v5.0 + * @param None. + * @return None. + */ + void ConstructL( RWindow& aParent ); + + /** + * Calculate the frame rect. + * + * @since S60 v5.0 + * @param aOuterRect. a output param for storing the outer rect. + * @param aInnerRect. a output param for storing the inner rect. + * @return None. + */ + void CalculateFrameRects( TRect& aOuterRect, TRect& aInnerRect ) const; + +private: + //Data. + + /** + * Laf data manager. + */ + CAknFepUiLayoutDataMgr* iLafDataMgr; + + /** + * Store visual text. + * Own + */ + HBufC* iBuffer; + + /** + * Whether cursor should be drawn on the screen. + */ + TBool isCursorDraw; + + /** + * The cursor pointer. + * Own + */ + CInsertionPoint* iInsertionPoint; + + /** + * The cursor position in visual text. + */ + TInt iCursorPosition; + + /** + * the color for highlighted text. + */ + TRgb iHighlightColor; + + /** + * The color for non-highlighted text. + */ + TRgb iDefaultTextColor; + + /** + * Distinguish different segment with a different format to its context. + */ + RPointerArray iArray; + }; + +#include "aknfepuictrleepcontrol.inl" + +#endif /* C_AKNFEPUICTRLEEPCONTROL_H */ + +// End of file