--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/insertionpoint.h Tue Feb 02 01:02:04 2010 +0200
@@ -0,0 +1,282 @@
+/*
+* Copyright (c) 2008-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 CInsertionPoint definition.
+*
+*/
+
+
+
+
+
+
+
+
+
+
+
+#ifndef INSERTIONPOINT_H
+#define INSERTIONPOINT_H
+
+#include <e32base.h> // For CActive, link against: euser.lib
+#include <e32std.h> // For RTimer, link against: euser.lib
+#include <w32std.h>
+#include "aknfepuilayoutdatamgr.h"
+
+/**
+ * The cursor observer interface.
+ *
+ * @lib aknfepuiavkonplugin.dll
+ * @since S60 v5.0
+ */
+class MRefreshObserver
+ {
+public:
+ /**
+ * When the cursor state is changed,it will notify its observer through this function.
+ *
+ * @since S60 v5.0
+ * @param None.
+ * @return None.
+ */
+ virtual void Refresh( ) = 0;
+ };
+
+/**
+ * The cursor class.
+ *
+ * @lib aknfepuiavkonplugin.dll
+ * @since S60 v5.0
+ */
+
+class CInsertionPoint : public CActive
+ {
+public:
+ enum TInsertionPointState
+ {
+ EUninitialized,
+ EInitialized,
+ EError
+ };
+
+ /**
+ * Cancel and destroy.
+ *
+ * @since S60 v5.0.
+ * @return none.
+ */
+ virtual ~CInsertionPoint( );
+
+ /**
+ * NewL function.
+ *
+ * @since S60 v5.0.
+ * @return none.
+ */
+ static CInsertionPoint* NewL( CAknFepUiLayoutDataMgr* aLafDataMgr );
+
+ /**
+ * NewLC funciton.
+ *
+ * @since S60 v5.0.
+ * @return none.
+ */
+ static CInsertionPoint* NewLC( CAknFepUiLayoutDataMgr* aLafDataMgr );
+
+ /**
+ * Set iRefreshObserver member.
+ *
+ * @since S60 v5.0
+ * @param aObserver. The observer you want to set.
+ * @return none.
+ */
+ void SetRefreshObserver( MRefreshObserver* aObserver );
+
+ /**
+ * Set the position of cursor.
+ * The max position of cursor is larger than length of visual text
+ * by 1 stride.
+ *
+ * @since S60 5.0
+ * @param aOffset. The cursor position which based on 0 index.
+ * @return None.
+ */
+ void SetPosition( TInt aOffSet );
+
+ /**
+ * Set the rect where visual text will be displayed.
+ *
+ * @since S60 v5.0
+ * @param aRect. The rect you want to display the visual text in.
+ * @return None.
+ */
+ void SetTextRect( TRect aRect );
+
+ /**
+ * Set the height of cursor.
+ *
+ * @since S60 v5.0
+ * @param aHeight. The cursor height you want to set.
+ * @return.
+ */
+ void SetHeight();
+
+ /**
+ * Draw the cursor on the screen.
+ *
+ * @since S60 v5.0
+ * @param aGc. the gc you used to draw the cursor.
+ * @return.
+ */
+ void Draw( CWindowGc& aGc );
+
+ /**
+ * Active the cursor into active state.
+ *
+ * @since S60 v5.0
+ * @param None.
+ * @return None.
+ */
+ void Active();
+
+ /**
+ * Deactive the cursor into deactive state.
+ *
+ * @since S60 v5.0
+ * @param None.
+ * return None.
+ */
+ void Deactive();
+
+private:
+
+ /**
+ * Insertion Point.
+ *
+ * @since S60 v5.0
+ * @param None.
+ */
+ CInsertionPoint( CAknFepUiLayoutDataMgr* aLafDataMgr );
+
+ /**
+ * Two-phrase constructor.
+ *
+ * @since S60 v5.0
+ * @param None.
+ * @return None.
+ */
+ void ConstructL();
+
+ /**
+ * From CActive.
+ * The callback function used by CActiveScheduler.
+ *
+ * @since S60 v5.0
+ * @param None.
+ * @return None.
+ */
+ void RunL();
+
+ /**
+ * From CActive.
+ * How to cancel me.
+ *
+ * @since S60 v5.0
+ * @param None.
+ * @return None.
+ */
+ void DoCancel();
+
+ /**
+ * From CActive.
+ * Handle leaves from RunL().
+ *
+ * @since S60 v5.0
+ * @param None.
+ * @return None.
+ */
+ TInt RunError( TInt aError );
+
+ /**
+ * Start the cursor with glint if actived or with gray color if deactived.
+ *
+ * @since S60 v5.0
+ * @param aDelay. After this time, the RunL should be called.
+ * @return None.
+ */
+ void StartL( TTimeIntervalMicroSeconds32 aDelay );
+
+private:
+ // Data.
+ /**
+ * The state of CInsertionPoint object.
+ */
+ TInt iState;
+ /**
+ * The timer for changing the visibility of this cursor.
+ */
+ RTimer iTimer;
+ /**
+ * The rect that visual text must be displayed on.
+ */
+ TRect iTextRect;
+ /**
+ * the cursor rect which will be drawn onto the screen.
+ */
+ TRect iCursorRect;
+ /**
+ * Whether this cursor should be displayed.
+ */
+ TBool isVisible;
+ /**
+ * the length from the beginning of visual text to the cursor position.
+ */
+ TInt iOffSet;
+ /**
+ * the height of cursor.
+ */
+ TInt iHeight;
+ /**
+ * the BrushColor of active cursor.
+ */
+ TRgb iActiveBrushColor;
+ /**
+ * the PenColor of active cursor.
+ */
+ TRgb iActivePenColor;
+ /**
+ * the BrushColor of active cursor.
+ */
+ TRgb iInactiveBrushColor;
+ /**
+ * the PenColor of active cursor.
+ */
+ TRgb iInactivePenColor;
+ /**
+ * the width of cursor.
+ */
+ TInt iWidth;
+ /**
+ * Whether this cursor is actived.
+ */
+ TBool isActive;
+ /**
+ * The observer for caring of the cursor's change.
+ * Not own.
+ */
+ MRefreshObserver* iRefreshObserver;
+ CAknFepUiLayoutDataMgr* iLafDataMgr;
+ };
+
+#endif /* INSERTIONPOINT_H */