104 |
104 |
105 TInt iShowAnotherTableCharCase; |
105 TInt iShowAnotherTableCharCase; |
106 TAknCharMapPictoMode iPictoMode; |
106 TAknCharMapPictoMode iPictoMode; |
107 TAknCharMapEmotionMode iEmotionMode; |
107 TAknCharMapEmotionMode iEmotionMode; |
108 TBool iFirstOrientation; |
108 TBool iFirstOrientation; |
|
109 TBool iSimKeyDown; |
109 }; |
110 }; |
110 |
111 |
111 // ----------------------------------------------------------------------------- |
112 // ----------------------------------------------------------------------------- |
112 // CAknCharMapDialogExtension::CAknCharMapDialogExtension |
113 // CAknCharMapDialogExtension::CAknCharMapDialogExtension |
113 // |
114 // |
114 // Constructor of extension |
115 // Constructor of extension |
115 // ----------------------------------------------------------------------------- |
116 // ----------------------------------------------------------------------------- |
116 // |
117 // |
117 CAknCharMapDialogExtension::CAknCharMapDialogExtension(CAknCharMapDialog* aCaller) : |
118 CAknCharMapDialogExtension::CAknCharMapDialogExtension(CAknCharMapDialog* aCaller) : |
118 iFlags(0), iQwertyMode(EFalse), iCaller(aCaller), |
119 iFlags(0), iQwertyMode(EFalse), iCaller(aCaller), |
119 iShowAnotherTableCharCase(-1), iPictoMode(EAknCharMapPictoNoUse), iEmotionMode(EAknCharMapEmotionNoUse) |
120 iShowAnotherTableCharCase(-1), iPictoMode(EAknCharMapPictoNoUse), iEmotionMode(EAknCharMapEmotionNoUse), |
|
121 iSimKeyDown( EFalse ) |
120 { |
122 { |
121 } |
123 } |
122 |
124 |
123 // ----------------------------------------------------------------------------- |
125 // ----------------------------------------------------------------------------- |
124 // CAknCharMapDialogExtension::~CAknCharMapDialogExtension |
126 // CAknCharMapDialogExtension::~CAknCharMapDialogExtension |
295 |
297 |
296 // Selection key / select softkey adds a character only if 5-key was not used |
298 // Selection key / select softkey adds a character only if 5-key was not used |
297 // to select multiple characters before. |
299 // to select multiple characters before. |
298 if (aButtonId == EAknSoftkeyOk || aButtonId == EAknSoftkeySelect || aButtonId == EAknSoftkeyExit) |
300 if (aButtonId == EAknSoftkeyOk || aButtonId == EAknSoftkeySelect || aButtonId == EAknSoftkeyExit) |
299 { |
301 { |
300 // In Korean UI, SCT isn't closed by pressing "Select" softkey, |
|
301 // but SCT is closed by pressing "Back"(button id is EAknSoftkeyClose). |
|
302 // Japanese feature for SCT will not be supported since TB9.2 PS2, |
|
303 // so remove the code for Japanese SCT. |
|
304 MAknSctFocusHandler* handler = charmapControl->FocusHandler(); |
302 MAknSctFocusHandler* handler = charmapControl->FocusHandler(); |
305 if ( charmapControl->IsKoreanSctUi() && |
|
306 aButtonId != EAknSoftkeyExit && |
|
307 handler->FocusedControl() == charmapControl) |
|
308 { |
|
309 TKeyEvent key; |
|
310 key.iCode=EKeySpace; |
|
311 key.iModifiers=0; |
|
312 handler->FocusedControl()->OfferKeyEventL(key, EEventKey); |
|
313 return(EFalse); |
|
314 } |
|
315 // else |
|
316 TKeyEvent key; |
303 TKeyEvent key; |
317 key.iCode=EKeyOK; |
304 key.iCode=EKeyOK; |
318 key.iModifiers=0; |
305 key.iModifiers=0; |
319 if(handler->FocusedControl()->OfferKeyEventL(key, EEventKey) == EKeyWasNotConsumed) |
306 if(handler->FocusedControl()->OfferKeyEventL(key, EEventKey) == EKeyWasNotConsumed) |
320 { |
307 { |
492 |
479 |
493 default: |
480 default: |
494 break; |
481 break; |
495 } |
482 } |
496 } |
483 } |
497 else if (aModifiers == EEventKeyUp) |
484 else if ( aModifiers == EEventKeyDown ) |
498 { |
485 { |
499 switch (aKeyEvent.iScanCode) |
486 switch ( aKeyEvent.iScanCode ) |
500 { |
487 { |
501 case EStdKeyLeftFunc: |
488 case EStdKeyLeftFunc: |
502 case EStdKeyRightFunc: |
489 case EStdKeyRightFunc: |
503 { |
490 { |
504 if (!aKeyEvent.iRepeats) // switch another table when repeat count is 0 only. |
491 iExtension->iSimKeyDown = ETrue; |
|
492 } |
|
493 break; |
|
494 default: |
|
495 break; |
|
496 } |
|
497 } |
|
498 else if ( aModifiers == EEventKeyUp ) |
|
499 { |
|
500 switch ( aKeyEvent.iScanCode ) |
|
501 { |
|
502 case EStdKeyLeftFunc: |
|
503 case EStdKeyRightFunc: |
|
504 { |
|
505 if ( !aKeyEvent.iRepeats && iExtension->iSimKeyDown ) // switch another table when repeat count is 0 only. |
505 { |
506 { |
506 if (!isLockNumericKeys) // Check whether current input mode is Qwerty. |
507 if (!isLockNumericKeys) // Check whether current input mode is Qwerty. |
507 { |
508 { |
508 SwitchTablesOrPagesL(); |
509 SwitchTablesOrPagesL(); |
509 } |
510 } |
510 } |
511 } |
|
512 iExtension->iSimKeyDown = EFalse; |
511 } |
513 } |
512 break; |
514 break; |
513 default: |
515 default: |
514 break; |
516 break; |
515 } |
517 } |