118 // may need to change resource id of candidte list to predictive, change keypad resource id if need |
118 // may need to change resource id of candidte list to predictive, change keypad resource id if need |
119 iOwner->DataMgr()->NotifyChangeControlLayout( |
119 iOwner->DataMgr()->NotifyChangeControlLayout( |
120 MItutPropertySubscriber::EItutPropertyCandidateListResourceId, |
120 MItutPropertySubscriber::EItutPropertyCandidateListResourceId, |
121 R_AKN_FEP_NORMAL_CAND_DROP_DOWN_LIST); |
121 R_AKN_FEP_NORMAL_CAND_DROP_DOWN_LIST); |
122 |
122 |
123 |
|
124 //hide navi button |
|
125 iOwner->LayoutContext()->ShowArrowBtn(0); |
|
126 |
|
127 //hide indicator |
|
128 iOwner->LayoutContext()->Control(ECtrlIdIndicator)->Hide(ETrue); |
|
129 // Show ICF, Backspace after position changed to avoid flick |
|
130 iOwner->LayoutContext()->Control(ECtrlIdICF)->Hide( EFalse ); |
|
131 iOwner->LayoutContext()->Control(ECtrlIdBackspace)->Hide( EFalse ); |
|
132 } |
123 } |
133 |
124 |
134 void CChnItutUiStatePredict::OnExit() |
125 void CChnItutUiStatePredict::OnExit() |
135 { |
126 { |
136 // hide dropdownlist & reset its status |
127 // hide dropdownlist & reset its status |
315 } |
306 } |
316 } |
307 } |
317 break; |
308 break; |
318 case EEventRawKeyDownEvent: |
309 case EEventRawKeyDownEvent: |
319 { |
310 { |
320 TInt immode = iOwner->DataMgr()->InputMode(); |
311 |
321 const TKeyEvent *key = reinterpret_cast<const TKeyEvent*>(aEventData.Ptr()); |
312 if ( iOwner->UiManager()->IsAllowHandleRawKeyEvent()) |
322 if ( ( immode == EPinyin && |
313 { |
323 ( key->iScanCode == EPtiKey0 || key->iScanCode == EPtiKey1 || key->iScanCode == EPtiKeyStar ) ) || |
314 TInt immode = iOwner->DataMgr()->InputMode(); |
324 ( immode == EStroke && |
315 const TKeyEvent *key = reinterpret_cast<const TKeyEvent*>(aEventData.Ptr()); |
325 ( key->iScanCode == EPtiKeyStar || key->iScanCode == EPtiKey0 || (key->iScanCode >= EPtiKey7 && key->iScanCode <= EPtiKey9 ))) || |
316 if ( ( immode == EPinyin && |
326 ( immode == EZhuyin && key->iScanCode == EPtiKeyStar) || |
317 ( key->iScanCode == EPtiKey0 || key->iScanCode == EPtiKey1 || key->iScanCode == EPtiKeyStar ) ) || |
327 ( key->iScanCode == EStdKeyBackspace)) |
318 ( immode == EStroke && |
328 { |
319 ( key->iScanCode == EPtiKeyStar || key->iScanCode == EPtiKey0 || (key->iScanCode >= EPtiKey7 && key->iScanCode <= EPtiKey9 ))) || |
329 // For those special keys, simulate down key immedidately. |
320 ( immode == EZhuyin && key->iScanCode == EPtiKeyStar) || |
330 // to ensure to simulate down key event before up key event |
321 ( key->iScanCode == EStdKeyBackspace)) |
331 iOwner->UiManager()->SimulateImmeRawEvent( key->iScanCode, TRawEvent::EKeyDown ); |
322 { |
332 iOwner->UiManager()->SetLastRawKeyDown( key->iScanCode, ETrue, aCtrl ); |
323 // For those special keys, simulate down key immedidately. |
333 return ETrue; |
324 // to ensure to simulate down key event before up key event |
334 } |
325 iOwner->UiManager()->SimulateImmeRawEvent( key->iScanCode, TRawEvent::EKeyDown ); |
|
326 iOwner->UiManager()->SetLastRawKeyDown( key->iScanCode, ETrue, aCtrl ); |
|
327 return ETrue; |
|
328 } |
|
329 } |
335 } |
330 } |
336 break; |
331 break; |
337 case EEventRawKeyUpEvent: |
332 case EEventRawKeyUpEvent: |
338 { |
333 { |
339 TInt immode = iOwner->DataMgr()->InputMode(); |
334 if ( iOwner->UiManager()->IsAllowHandleRawKeyEvent()) |
340 const TKeyEvent *key = reinterpret_cast<const TKeyEvent*>(aEventData.Ptr()); |
335 { |
341 if ( ( immode == EPinyin && |
336 TInt immode = iOwner->DataMgr()->InputMode(); |
342 ( key->iScanCode == EPtiKey0 || key->iScanCode == EPtiKey1 || key->iScanCode == EPtiKeyStar ) ) || |
337 const TKeyEvent *key = reinterpret_cast<const TKeyEvent*>(aEventData.Ptr()); |
343 ( immode == EStroke && |
338 if ( ( immode == EPinyin && |
344 ( key->iScanCode == EPtiKeyStar || key->iScanCode == EPtiKey0 || (key->iScanCode >= EPtiKey7 && key->iScanCode <= EPtiKey9 ))) || |
339 ( key->iScanCode == EPtiKey0 || key->iScanCode == EPtiKey1 || key->iScanCode == EPtiKeyStar ) ) || |
345 ( immode == EZhuyin && key->iScanCode == EPtiKeyStar) || |
340 ( immode == EStroke && |
346 ( key->iScanCode == EStdKeyBackspace)) |
341 ( key->iScanCode == EPtiKeyStar || key->iScanCode == EPtiKey0 || (key->iScanCode >= EPtiKey7 && key->iScanCode <= EPtiKey9 ))) || |
347 { |
342 ( immode == EZhuyin && key->iScanCode == EPtiKeyStar) || |
348 // For those special keys, simulate up key events immediately before changing state. |
343 ( key->iScanCode == EStdKeyBackspace)) |
349 // The action can avoid up key event being delayed by running changing state, |
344 { |
350 // otherwise, short press will be thought as long press by window server. |
345 // For those special keys, simulate up key events immediately before changing state. |
351 iOwner->UiManager()->SimulateImmeRawEvent( key->iScanCode, TRawEvent::EKeyUp ); |
346 // The action can avoid up key event being delayed by running changing state, |
352 iOwner->UiManager()->SetLastRawKeyDown( key->iScanCode, EFalse, aCtrl ); |
347 // otherwise, short press will be thought as long press by window server. |
353 iOwner->SetCurrentStateL( CGenericItutUiMgrBase::EStateStandby ); |
348 iOwner->UiManager()->SimulateImmeRawEvent( key->iScanCode, TRawEvent::EKeyUp ); |
354 return ETrue; |
349 iOwner->UiManager()->SetLastRawKeyDown( key->iScanCode, EFalse, aCtrl ); |
355 } |
350 iOwner->SetCurrentStateL( CGenericItutUiMgrBase::EStateStandby ); |
|
351 return ETrue; |
|
352 } |
|
353 } |
356 } |
354 } |
357 break; |
355 break; |
358 default: |
356 default: |
359 break; |
357 break; |
360 } |
358 } |