fep/aknfep/src/AknFepUiInputStateEntryMiniQwertyZhuyinPhrase.cpp
branchRCL_3
changeset 50 5a1685599b76
parent 46 bd83ceabce89
child 56 8152b1f1763a
--- a/fep/aknfep/src/AknFepUiInputStateEntryMiniQwertyZhuyinPhrase.cpp	Tue Sep 14 21:59:06 2010 +0300
+++ b/fep/aknfep/src/AknFepUiInputStateEntryMiniQwertyZhuyinPhrase.cpp	Wed Sep 15 12:34:44 2010 +0300
@@ -509,6 +509,7 @@
     MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
     MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
     MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
+    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
     CDesCArrayFlat* keystroke = editPane->KeystrokeArray();
     RArray<TInt>* keycodeArray = editPane->KeycodeArray();
     TInt keystrokeLength = keystroke->Count();
@@ -677,6 +678,7 @@
                 {
                 popup->Enable( EFalse );
                 }
+            candidatePane->SelectFirst();
             iOwner->ChangeState( ECandidate );
             }
         else
@@ -1005,5 +1007,43 @@
             break;
         }
     }
+
+void TAknFepInputStateEntryMiniQwertyZhuyinPhrase::SubmitTextL( const TDesC& aText )
+	{
+	MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
+	MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
+	MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
+	CDesCArrayFlat* keystroke = editPane->KeystrokeArray();
+	CPtiEngine* ptiengine = iOwner->PtiEngine();
+    
+    TInt keystrokeLength = keystroke->Count();
+    if ( !(editPane->GetEffictiveLength() == keystroke->Count()
+        && ptiengine->PhoneticSpellingCount() > popup->CurrentSelection())
+        && (!( keystrokeLength > 0 && keystroke->MdcaPoint( 0 )[0] == KSai )))
+        {
+		editPane->SetChangeState( ETrue );
+        ClearDeliberateSelection();
+        editPane->SetNeedClearDeliberateSelection( ETrue );
+        iOwner->ChangeState( EZhuyinSpelling );
+        return;
+        }
+	if ( aText.Length( ) )
+	   {
+	   MAknFepManagerUIInterface* fepMan = iOwner->FepMan( );
+	   fepMan->NewTextL( aText );
+	   fepMan->CommitInlineEditL( );
+	   iOwner->PtiEngine()->SetPredictiveChineseChar( aText );
+	   if ( fepMan->IsFlagSet( CAknFepManager::EFlagEditorFull ) )
+	      {
+	      fepMan->ClearFlag( CAknFepManager::EFlagEditorFull );
+	      iOwner->FepMan()->TryCloseUiL( );
+	      }
+	   else
+	      {
+	      iOwner->ChangeState( EPredictiveCandidate );
+	      }
+	    }
+	}
+
 // End of file