482 |
482 |
483 switch ( aEventType ) |
483 switch ( aEventType ) |
484 { |
484 { |
485 case EPeninputLayoutEventMultiRangeLongPress: |
485 case EPeninputLayoutEventMultiRangeLongPress: |
486 { |
486 { |
487 const TInt range = CPeninputDataConverter::AnyToInt( |
487 if ( ctrlId == EPeninutWindowCtrlIdRangeBtn ) |
488 iLayoutContext->RequestData(EPeninputDataTypeCurrentRange)); |
488 { |
489 |
489 // Before pop up list, cancel down event, and set range button un-highlight. |
490 const TInt langId = CPeninputDataConverter::AnyToInt( |
490 TRAP_IGNORE( aCtrl->CancelPointerDownL()); |
491 iLayoutContext->RequestData(EPeninputDataTypeInputLanguage)); |
491 static_cast<CAknFepCtrlCommonButton*>(aCtrl)->SetHighlight( EFalse ); |
492 |
492 PopupChoiceList(); |
493 if ( aCtrl->ControlId() == EPeninutWindowCtrlIdRangeBtn ) |
|
494 { |
|
495 if ( range == ERangeAccent ) |
|
496 { |
|
497 if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNative ) ) |
|
498 { |
|
499 ChangeRange(ERangeNative); |
|
500 } |
|
501 else if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeEnglish ) ) |
|
502 { |
|
503 ChangeRange(ERangeEnglish); |
|
504 } |
|
505 } |
|
506 else if ( range == ERangeNative ) |
|
507 { |
|
508 if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNativeNumber ) ) |
|
509 { |
|
510 |
|
511 if ( langId != ELangArabic && langId != ELangFarsi |
|
512 && langId != ELangUrdu && langId != ELangThai ) |
|
513 { |
|
514 ChangeRange(ERangeNativeNumber); |
|
515 } |
|
516 } |
|
517 else if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNumber ) ) |
|
518 { |
|
519 if ( langId != ELangArabic && langId != ELangFarsi |
|
520 && langId != ELangUrdu && langId != ELangThai ) |
|
521 { |
|
522 ChangeRange(ERangeNumber); |
|
523 } |
|
524 } |
|
525 } |
|
526 else if ( range == ERangeEnglish ) |
|
527 { |
|
528 if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNumber ) ) |
|
529 { |
|
530 ChangeRange(ERangeNumber); |
|
531 } |
|
532 } |
|
533 else if ( range == ERangeNativeNumber ) |
|
534 { |
|
535 if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNative ) ) |
|
536 { |
|
537 ChangeRange(ERangeNative); |
|
538 } |
|
539 else if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeEnglish ) ) |
|
540 { |
|
541 ChangeRange(ERangeEnglish); |
|
542 } |
|
543 } |
|
544 else if ( range == ERangeNumber ) |
|
545 { |
|
546 if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNative ) ) |
|
547 { |
|
548 ChangeRange(ERangeNative); |
|
549 } |
|
550 else if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeEnglish ) ) |
|
551 { |
|
552 ChangeRange(ERangeEnglish); |
|
553 } |
|
554 } |
|
555 |
|
556 TRAP_IGNORE( UpdateRangeCtrlsL() ); |
|
557 } |
493 } |
558 } |
494 } |
559 break; |
495 break; |
560 case EPeninputLayoutEventMultiRange: |
496 case EPeninputLayoutEventMultiRange: |
561 { |
497 { |
562 if ( ctrlId == EPeninutWindowCtrlIdRangeBtn ) |
498 if ( ctrlId == EPeninutWindowCtrlIdRangeBtn ) |
563 { |
499 { |
564 PopupChoiceList(); |
500 if ( iHandleRangeShortPress ) |
565 } |
501 { |
|
502 HandleRangeButtonShortPress(); |
|
503 } |
|
504 } |
|
505 |
|
506 iHandleRangeShortPress = ETrue; |
566 } |
507 } |
567 break; |
508 break; |
568 case EPeninputLayoutVkbEventResetShift: |
509 case EPeninputLayoutVkbEventResetShift: |
569 { |
510 { |
570 HandleShiftAndCapslockBtnClicked(); |
511 HandleShiftAndCapslockBtnClicked(); |
579 } |
520 } |
580 } |
521 } |
581 break; |
522 break; |
582 case EEventChoiceSelected: |
523 case EEventChoiceSelected: |
583 { |
524 { |
|
525 CFepUiBaseCtrl* btn = Control( EPeninutWindowCtrlIdRangeBtn ); |
|
526 |
|
527 if ( btn ) |
|
528 { |
|
529 iHandleRangeShortPress = EFalse; |
|
530 TRAP_IGNORE( btn->HandlePointerUpEventL( btn->Rect().iBr ) ); |
|
531 iHandleRangeShortPress = ETrue; |
|
532 } |
584 CFepLayoutChoiceList::SEvent* event = NULL; |
533 CFepLayoutChoiceList::SEvent* event = NULL; |
585 event = (CFepLayoutChoiceList::SEvent*) aEventData.Ptr(); |
534 event = (CFepLayoutChoiceList::SEvent*) aEventData.Ptr(); |
586 |
535 |
587 if ( event->iIndex != KPeninputVkbWndInvalidIndex ) |
536 if ( event->iIndex != KPeninputVkbWndInvalidIndex ) |
588 { |
537 { |
684 HandleButtonResOnLangDirChange( EPeninutWindowCtrlIdBackspaceBtn ); |
633 HandleButtonResOnLangDirChange( EPeninutWindowCtrlIdBackspaceBtn ); |
685 } |
634 } |
686 } |
635 } |
687 |
636 |
688 iFirstConstruct = EFalse; |
637 iFirstConstruct = EFalse; |
|
638 iHandleRangeShortPress = ETrue; |
689 } |
639 } |
690 |
640 |
691 // --------------------------------------------------------------------------- |
641 // --------------------------------------------------------------------------- |
692 // Callback function to do background construction |
642 // Callback function to do background construction |
693 // --------------------------------------------------------------------------- |
643 // --------------------------------------------------------------------------- |
2018 item.iText.Copy( iRangeLabels.iLabelLatinChar ); |
1968 item.iText.Copy( iRangeLabels.iLabelLatinChar ); |
2019 aRangeItems.Append( item ); |
1969 aRangeItems.Append( item ); |
2020 } |
1970 } |
2021 } |
1971 } |
2022 } |
1972 } |
|
1973 |
|
1974 void CPeninputSplitQwertyWindow::HandleRangeButtonShortPress() |
|
1975 { |
|
1976 const TInt range = CPeninputDataConverter::AnyToInt( |
|
1977 iLayoutContext->RequestData(EPeninputDataTypeCurrentRange)); |
|
1978 |
|
1979 const TInt langId = CPeninputDataConverter::AnyToInt( |
|
1980 iLayoutContext->RequestData(EPeninputDataTypeInputLanguage)); |
|
1981 |
|
1982 switch ( langId ) |
|
1983 { |
|
1984 case ELangRussian: |
|
1985 case ELangBulgarian: |
|
1986 case ELangUkrainian: |
|
1987 { |
|
1988 range == ERangeNative ? ChangeRange( ERangeNumber ) : ChangeRange( ERangeNative ); |
|
1989 } |
|
1990 break; |
|
1991 |
|
1992 case ELangArabic: |
|
1993 case ELangFarsi: |
|
1994 case ELangUrdu: |
|
1995 { |
|
1996 range == ERangeNative ? ChangeRange( ERangeNativeNumber ) : ChangeRange( ERangeNative ); |
|
1997 } |
|
1998 break; |
|
1999 |
|
2000 case ELangThai: |
|
2001 { |
|
2002 range == ERangeNative ? ChangeRange( ERangeNumber ) : ChangeRange( ERangeNative ); |
|
2003 } |
|
2004 break; |
|
2005 |
|
2006 case ELangGreek: |
|
2007 case ELangHebrew: |
|
2008 { |
|
2009 range == ERangeNative ? ChangeRange( ERangeNumber ) : ChangeRange( ERangeNative ); |
|
2010 } |
|
2011 break; |
|
2012 default: // Latin, vietnamese, and other possible languages |
|
2013 { |
|
2014 if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNative ) ) |
|
2015 { |
|
2016 if ( range == ERangeNative ) |
|
2017 { |
|
2018 if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNativeNumber ) ) |
|
2019 { |
|
2020 ChangeRange( ERangeNativeNumber ); |
|
2021 } |
|
2022 else if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNumber ) ) |
|
2023 { |
|
2024 ChangeRange( ERangeNumber ); |
|
2025 } |
|
2026 } |
|
2027 else |
|
2028 { |
|
2029 ChangeRange( ERangeNative ); |
|
2030 } |
|
2031 } |
|
2032 else if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeEnglish ) ) |
|
2033 { |
|
2034 range == ERangeEnglish ? ChangeRange( ERangeNumber ) : ChangeRange( ERangeEnglish ); |
|
2035 } |
|
2036 } |
|
2037 break; |
|
2038 } |
|
2039 |
|
2040 TRAP_IGNORE( UpdateRangeCtrlsL() ); |
|
2041 } |
|
2042 |
2023 // End Of File |
2043 // End Of File |