--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/insertionpoint.cpp Tue Jul 06 14:38:41 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,246 +0,0 @@
-/*
-* Copyright (c) 2009 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:
-*
-*/
-
-
-#include "insertionpoint.h"
-#include "aknfepchineseuidataconv.h"
-
-//Cursor position offset
-const TInt KCursorPosCorrectionX = 0;
-//define the timer
-const TInt KTimer = 500000;
-
-// ---------------------------------------------------------
-// Cancel and destroy.
-// ---------------------------------------------------------
-CInsertionPoint::~CInsertionPoint()
- {
- Cancel(); // Cancel any request, if outstanding
- iTimer.Close(); // Destroy the RTimer object
- // Delete instance variables if any
- }
-
-// ---------------------------------------------------------
-// NewL function.
-// ---------------------------------------------------------
-CInsertionPoint* CInsertionPoint::NewL( CAknFepUiLayoutDataMgr* aLafDataMgr )
- {
- CInsertionPoint* self = CInsertionPoint::NewLC( aLafDataMgr );
- CleanupStack::Pop( self ); // self;
- return self;
- }
-
-// ---------------------------------------------------------
-// NewLC funciton.
-// ---------------------------------------------------------
-CInsertionPoint* CInsertionPoint::NewLC( CAknFepUiLayoutDataMgr* aLafDataMgr )
- {
- CInsertionPoint* self = new ( ELeave ) CInsertionPoint( aLafDataMgr );
- CleanupStack::PushL( self ) ;
- self->ConstructL();
- return self;
- }
-
-// ---------------------------------------------------------
-// Set iRefreshObserver member.
-// ---------------------------------------------------------
-void CInsertionPoint::SetRefreshObserver(MRefreshObserver* aObserver)
- {
- iRefreshObserver = aObserver;
- }
-
-// ---------------------------------------------------------
-// Set the position of cursor.
-// ---------------------------------------------------------
-void CInsertionPoint::SetPosition(TInt aOffSet)
- {
- iOffSet = aOffSet;
- isVisible = ETrue;
- iRefreshObserver->Refresh();
- TPoint point(iTextRect.iTl.iX -1 + iOffSet + KCursorPosCorrectionX,
- iCursorRect.iTl.iY);
- iCursorRect = TRect(point, TSize(iWidth, iHeight) ) ;
- }
-
-// ---------------------------------------------------------
-// Set the rect where visual text will be displayed.
-// ---------------------------------------------------------
-void CInsertionPoint::SetTextRect(TRect aRect)
- {
- iTextRect = aRect;
- TPoint point(iTextRect.iTl.iX + iOffSet + KCursorPosCorrectionX,
- iCursorRect.iTl.iY);
- iCursorRect = TRect(point, TSize(iWidth, iHeight) ) ;
- if ( 0 == iHeight )
- {
- iHeight =
- CAknFepChineseUIDataConv::AnyToInt( iLafDataMgr->RequestData(EEEPCursorHeight));
- iWidth = 1;
- }
- }
-
-// ---------------------------------------------------------
-// Set the height of cursor.
-// ---------------------------------------------------------
-void CInsertionPoint::SetHeight()
- {
- TPoint point(iTextRect.iTl.iX + iOffSet + KCursorPosCorrectionX,
- iTextRect.iTl.iY - 1 + iTextRect.Height() / 2 - iHeight / 2);
- iCursorRect = TRect(point, TSize(iWidth, iHeight) ) ;
- }
-
-// ---------------------------------------------------------
-// Draw the cursor on the screen.
-// ---------------------------------------------------------
-void CInsertionPoint::Draw(CWindowGc& aGc)
- {
- if (isActive)
- {
- if ( !this->isVisible)
- {
- return;
- }
- else
- {
- aGc.SetBrushStyle(CGraphicsContext::ESolidBrush) ;
- aGc.SetBrushColor(iActiveBrushColor) ;
- aGc.SetPenColor(iActivePenColor) ;
- aGc.SetPenStyle(CGraphicsContext::ESolidPen) ;
- aGc.SetPenSize(TSize( 1, 1) ) ;
- aGc.DrawRect(iCursorRect) ;
- aGc.SetBrushStyle(CGraphicsContext::ENullBrush) ;
- }
- }
- else
- {
- aGc.SetBrushStyle(CGraphicsContext::ESolidBrush) ;
- aGc.SetBrushColor(iInactiveBrushColor) ;
- aGc.SetPenColor(iInactivePenColor) ;
- aGc.SetPenStyle(CGraphicsContext::ESolidPen) ;
- aGc.SetPenSize(TSize( 1, 1) ) ;
- aGc.DrawRect(iCursorRect) ;
- aGc.SetBrushStyle(CGraphicsContext::ENullBrush) ;
- }
- }
-
-// ---------------------------------------------------------
-// Active the cursor into active state.
-// ---------------------------------------------------------
-void CInsertionPoint::Active()
- {
- Cancel();
- iTimer.Cancel();
- iTimer.After(iStatus, KTimer); // Set for 1 sec later
- SetActive(); // Tell scheduler a request is active
- isActive = ETrue;
- this->iRefreshObserver->Refresh();
- }
-
-// ---------------------------------------------------------
-// Deactive the cursor into deactive state.
-// ---------------------------------------------------------
-void CInsertionPoint::Deactive()
- {
- Cancel();
- isActive = EFalse;
- this->iRefreshObserver->Refresh();
- }
-
-// ---------------------------------------------------------
-// Insertion Point.
-// ---------------------------------------------------------
-CInsertionPoint::CInsertionPoint( CAknFepUiLayoutDataMgr* aLafDataMgr ) :
- CActive(EPriorityStandard)
- {
- iState = EUninitialized;
- isVisible = ETrue;
- iHeight = 0;
- iWidth = 0;
- iOffSet = 0;
- isActive = EFalse;
- iRefreshObserver = NULL;
- iLafDataMgr = aLafDataMgr;
- }
-
-// ---------------------------------------------------------
-// Two-phrase constructor.
-// ---------------------------------------------------------
-void CInsertionPoint::ConstructL()
- {
- User::LeaveIfError(iTimer.CreateLocal() ) ; // Initialize timer
- CActiveScheduler::Add( this); // Add to scheduler
- iActiveBrushColor = KRgbBlack;
- iActivePenColor = KRgbBlack;
- iInactiveBrushColor = KRgbGray;
- iInactivePenColor = KRgbGray;
- }
-
-// ---------------------------------------------------------
-// The callback function used by CActiveScheduler.
-// ---------------------------------------------------------
-void CInsertionPoint::RunL()
- {
- if (iState == EUninitialized)
- {
- // Do something the first time RunL() is called
- iState = EInitialized;
- }
- else
- if (iState != EError)
- {
- // Do something
- isVisible = isVisible ? EFalse : ETrue;
- if (iRefreshObserver)
- {
- this->iRefreshObserver->Refresh();
- }
- }
-
- iTimer.Cancel();
- iTimer.After( iStatus, KTimer ) ; // Set for 1 sec later
- SetActive(); // Tell scheduler a request is active
- }
-
-// ---------------------------------------------------------
-// How to cancel me.
-// ---------------------------------------------------------
-void CInsertionPoint::DoCancel()
- {
- iTimer.Cancel();
- }
-
-// ---------------------------------------------------------
-// C++ constructor
-// ---------------------------------------------------------
-TInt CInsertionPoint::RunError(TInt aError)
- {
- return aError;
- }
-
-// ---------------------------------------------------------
-// Start the cursor with glint if actived or with gray color if deactived.
-// ---------------------------------------------------------
-void CInsertionPoint::StartL( TTimeIntervalMicroSeconds32 aDelay )
- {
- Cancel(); // Cancel any request, just to be sure
- iState = EUninitialized;
- iTimer.Cancel();
- iTimer.After(iStatus, aDelay) ; // Set for later
- SetActive(); // Tell scheduler a request is active
- }
-
-// End of file