textinput/peninputfingerhwrar/src/peninputfingerhwrarlayout.cpp
branchRCL_3
changeset 5 a47de9135b21
parent 3 f5a1e66df979
child 6 6ceef9a83b1a
--- a/textinput/peninputfingerhwrar/src/peninputfingerhwrarlayout.cpp	Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputfingerhwrar/src/peninputfingerhwrarlayout.cpp	Fri Mar 12 15:44:07 2010 +0200
@@ -20,13 +20,12 @@
 #include <coemain.h>
 
 //FEP Includes
-#include <AknFepGlobalEnums.h>
+#include <aknfepglobalenums.h>
 #include <aknfeppeninputenums.h>
 #include <peninputlayoutchoicelist.h>
 #include <settingsinternalcrkeys.h>
 #include <centralrepository.h>
 #include <peninputlayoutvkb.h>
-#include <AknFepGlobalEnums.h>
 #include <peninputcmdparam.h>
 #include <peninputdropdownlist.h>
 #include <peninputlayoutmultilineicf.h>
@@ -154,7 +153,6 @@
             {
             TInt ranges = *(TInt*)aData;
             iDataStore->SetPermittedRanges( ranges );
-            iHwrWnd->SetPermittedRanges( ranges );
             ret = KErrNone;
             }
             break;
@@ -188,7 +186,7 @@
             TSize hwrSize = hwrRect.Size();
             iDataStore->SetInputAreaSize(hwrSize);
             iDataStore->SetScreenSize(hwrSize);
-            ChangeCurStateManagerToStandby();
+            ChangeCurStateToStandby();
             
             iDataStore->GetKeyboardType();
             iDataStore->SetKeyboardToQwerty();
@@ -299,10 +297,7 @@
 				{
 				candtype = ECandArabicIndicNumFirst;
 				}
-			else if(iDataStore->IsArabicChar(charBeforeCursor))
-			    {
-			    candtype = ECandArabicCharFirst;
-			    }
+				
 			iDataStore->SetFirstCandidateType(candtype);	
 			}
         
@@ -356,13 +351,14 @@
 //
 void CPeninputFingerHwrArLayout::OnDeActivate()
     {
-    //cancel writing
+    // cancel writing
     iHwrWnd->CancelWriting();
     
-    if(!iHwrWnd->IsSymbolTableShowingUp())
-        {
-        iHwrWnd->UpdateLayout( ETrue );
-        }
+	// close the symbol table if it's showing up
+    iHwrWnd->CloseSymbolTable();
+    
+	// close the candidate list if it's showing up
+    iHwrWnd->CloseCandidateList();
     
     CFepUiLayout::OnDeActivate();
     }
@@ -445,7 +441,7 @@
             
         case EHwrEventOutsideEvent:
             {
-            ChangeCurStateManagerToStandby();
+            ChangeCurStateToStandby();
             iHwrWnd->CloseSymbolTable();
             }
             break;
@@ -549,7 +545,7 @@
                 break;
             case KSettingsPenInputGuideLine:
                 {
-                
+                self->SetGuideLineOn(newValue);
                 }
                 break;
             default:
@@ -616,9 +612,7 @@
     CCoeEnv::Static()->DeleteResourceFile( iResId );
 
     delete iDataStore;
-    iStateMgrArray.ResetAndDestroy();
-    iStateMgrArray.Close();
-
+	delete iStateMgr;
     delete iGSRepositoryWatcher;
     delete iRepositorySetting;
     }
@@ -645,7 +639,7 @@
 // 
 void CPeninputFingerHwrArLayout::CreateStateManagerL()
     {
-    iStateMgrArray.AppendL( CPeninputFingerHwrArStateManager::NewL( this ) );
+    iStateMgr = CPeninputFingerHwrArStateManager::NewL( this );
     }
 
 // ---------------------------------------------------------------------------
@@ -679,8 +673,8 @@
                 {
                 iDataStore->SetStartCharacter(EFalse);
                 iHwrWnd->CancelWriting();
-                ChangeCurStateManagerToStandby();
-                iHwrWnd->UpdateLayout( ETrue );
+                ChangeCurStateToStandby();
+                iHwrWnd->CloseCandidateList();
                 }
         
             SignalOwner( ESignalLayoutClosed );
@@ -698,8 +692,8 @@
                 {
                 iDataStore->SetStartCharacter(EFalse);
                 iHwrWnd->CancelWriting();
-                ChangeCurStateManagerToStandby();
-                iHwrWnd->UpdateLayout( ETrue );
+                ChangeCurStateToStandby();
+                iHwrWnd->CloseCandidateList();
                 }
             
             if(iHwrWnd->IsSymbolTableShowingUp())
@@ -708,34 +702,34 @@
                 }
             else
                 {
-                ChangeCurStateManagerToStandby();
+                ChangeCurStateToStandby();
                 iHwrWnd->OpenSymbolTable();
                 }
             }
             break;
         case EHwrCtrlId3Page1Btn:
             {
-            iHwrWnd->ShowSctPage( 1, EPagePosPageNo );
+            iHwrWnd->ShowSymbolPage( 1, EPagePosPageNo );
             }
             break;
         case EHwrCtrlId3Page2Btn:
             {
-            iHwrWnd->ShowSctPage( 2, EPagePosPageNo );
+            iHwrWnd->ShowSymbolPage( 2, EPagePosPageNo );
             }
             break;
         case EHwrCtrlId3Page3Btn:
             {
-            iHwrWnd->ShowSctPage( 0, EPagePosPageNo );
+            iHwrWnd->ShowSymbolPage( 0, EPagePosPageNo );
             }
             break;
         case EHwrCtrlId2Page1Btn:
             {
-            iHwrWnd->ShowSctPage( 1, EPagePosPageNo );
+            iHwrWnd->ShowSymbolPage( 1, EPagePosPageNo );
             }
             break;    
         case EHwrCtrlId2Page2Btn:
             {
-            iHwrWnd->ShowSctPage( 0, EPagePosPageNo );
+            iHwrWnd->ShowSymbolPage( 0, EPagePosPageNo );
             }
             break;    
 		case EHwrCtrlIdBtnEnter:
@@ -808,18 +802,17 @@
         {
         // goto standby and clear screen
         iDataStore->SetStartCharacter(EFalse);
-		ChangeCurStateManagerToStandby();
-	    iHwrWnd->UpdateLayout( ETrue );
+		ChangeCurStateToStandby();
+	    iHwrWnd->CloseCandidateList();
         }
     else
         {
-		
         SubmitCharToFep( EKeyBackspace );
-        CurStateManager()->HandleEventL( EHwrEventKeyBack, KNullDesC );
+        iStateMgr->HandleEventL( EHwrEventKeyBack, KNullDesC );
 		if(iDataStore->StartCharacter())
 		    {
-			ChangeCurStateManagerToStandby();
-		    iHwrWnd->UpdateLayout( ETrue );
+			ChangeCurStateToStandby();
+		    iHwrWnd->CloseCandidateList();;
 			}
         }
     }
@@ -875,12 +868,11 @@
         return;
         }
     
-    CurStateManager()->HandleEventL( EHwrEventCandidateSelected, aData );
-    
+    iStateMgr->HandleEventL( EHwrEventCandidateSelected, aData );
     
-    ChangeCurStateManagerToStandby();
+    ChangeCurStateToStandby();
 
-    iHwrWnd->UpdateLayout( ETrue );
+    iHwrWnd->CloseCandidateList();;
     }
 
 
@@ -891,8 +883,11 @@
 void CPeninputFingerHwrArLayout::OnIcfClicked()
     {
     // Go to standby
-	ChangeCurStateManagerToStandby();
-	iHwrWnd->UpdateLayout( ETrue );
+	ChangeCurStateToStandby();
+	if(iHwrWnd->IsCandidateShowup())
+	    {
+		iHwrWnd->CloseCandidateList();
+		}
 	}
 
 // ---------------------------------------------------------------------------
@@ -902,13 +897,19 @@
 void CPeninputFingerHwrArLayout::OnHwrStrokeStartedL()
     {
 	iHwrWnd->HideIndicator();
+	
 	// The default candidate cell is not highlight
-	iDataStore->SetHighlight(EFalse);      
-	iHwrWnd->UpdateLayout(ETrue);
+	iDataStore->SetHighlight(EFalse); 
+    
+    // close the candidate list if it's currently showing up	
+	if(iHwrWnd->IsCandidateShowup())
+	    {
+		iHwrWnd->CloseCandidateList();
+		}
     
 	// remember the start writing position.
     iDataStore->SetStartCharacter(ETrue);
-    CurStateManager()->HandleEventL( EEventHwrStrokeStarted, KNullDesC );
+    iStateMgr->HandleEventL( EEventHwrStrokeStarted, KNullDesC );
     }
 
 // ---------------------------------------------------------------------------
@@ -920,7 +921,7 @@
     RArray<TPoint> points = iHwrWnd->StrokeList();
     TPtrC ptr;
     ptr.Set(reinterpret_cast<TText*>(&points), sizeof(&points));
-    CurStateManager()->HandleEventL( EEventHwrStrokeFinished, ptr );
+    iStateMgr->HandleEventL( EEventHwrStrokeFinished, ptr );
     }
 
 // ---------------------------------------------------------------------------
@@ -934,11 +935,10 @@
     RArray<TPoint> points = iHwrWnd->StrokeList();
     TPtrC ptr;
     ptr.Set( reinterpret_cast<TText*>( &points ), sizeof(&points) );
-    CurStateManager()->HandleEventL( EEventHwrCharacterTimerOut, ptr );
-
-    // When recognize Enter or Backspace, it will go to standby
-    iHwrWnd->UpdateLayout( CurStateManager()->IsStandbyState(), ETrue);
-    }
+    iStateMgr->HandleEventL( EEventHwrCharacterTimerOut, ptr );
+  
+	iHwrWnd->OpenCandidateList();
+	}
 
 // ---------------------------------------------------------------------------
 // get value from repository.
@@ -1039,32 +1039,18 @@
 // set hwr writing pen color.
 // ---------------------------------------------------------------------------
 //  
-void CPeninputFingerHwrArLayout::SetGuideLineOn(const TBool aGuideLineOn)
+void CPeninputFingerHwrArLayout::SetGuideLineOn(TBool aGuideLineOn)
     {
     iHwrWnd->SetGuideLineOn( aGuideLineOn );
     }
 
 // ---------------------------------------------------------------------------
-// get current state manager.
-// ---------------------------------------------------------------------------
-// 
-CPeninputFingerHwrArStateManagerBase* CPeninputFingerHwrArLayout::CurStateManager()
-    {
-    return iStateMgrArray[0];
-    }
-
-
-// ---------------------------------------------------------------------------
 // change current state manager to standby state.
 // ---------------------------------------------------------------------------
 // 
-void CPeninputFingerHwrArLayout::ChangeCurStateManagerToStandby()
+void CPeninputFingerHwrArLayout::ChangeCurStateToStandby()
     {
-    CPeninputFingerHwrArStateManagerBase* stateMgr = CurStateManager();
-    if ( stateMgr )
-        {
-        stateMgr->SetState( CPeninputFingerHwrArStateManagerBase::EStateStandBy );
-        }
+    iStateMgr->SetState( CPeninputFingerHwrArStateManagerBase::EStateStandBy );
     }
 
 //End of file