textinput/peninputsplitqwerty/src/peninputsplitqwertywindow.cpp
branchRCL_3
changeset 18 b1ea1642412e
parent 12 5e18d8c489d6
child 19 ac7e4d1d9209
equal deleted inserted replaced
16:857bebeecec0 18:b1ea1642412e
   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