webengine/osswebengine/WebKit/s60/webview/WebFepTextEditor.cpp
branchRCL_3
changeset 37 ac77f89b1d9e
parent 36 c711bdda59f4
child 40 8bfb9186a8b8
equal deleted inserted replaced
36:c711bdda59f4 37:ac77f89b1d9e
   161                     CreateTextFormatMask();
   161                     CreateTextFormatMask();
   162                     TUint currentCase ( EAknEditorLowerCase ) ;
   162                     TUint currentCase ( EAknEditorLowerCase ) ;
   163                     TUint permittedCase ( EAknEditorAllCaseModes ) ;
   163                     TUint permittedCase ( EAknEditorAllCaseModes ) ;
   164                     TUint inputMode( EAknEditorNullInputMode );
   164                     TUint inputMode( EAknEditorNullInputMode );
   165                     TUint permittedInputModes( EAknEditorAllInputModes );
   165                     TUint permittedInputModes( EAknEditorAllInputModes );
       
   166 #ifdef BRDO_MULTITOUCH_ENABLED_FF
       
   167                     TUint flags( EAknEditorFlagDefault | EAknEditorFlagSelectionVisible );
       
   168 #else
   166                     TUint flags( EAknEditorFlagDefault );
   169                     TUint flags( EAknEditorFlagDefault );
       
   170 #endif
   167                     TUint numericKeyMap( EAknEditorStandardNumberModeKeymap );
   171                     TUint numericKeyMap( EAknEditorStandardNumberModeKeymap );
   168     
   172     
   169                     if (GetStateFromFormatMask(currentCase, permittedCase, inputMode, permittedInputModes, flags, numericKeyMap)) {
   173                     if (GetStateFromFormatMask(currentCase, permittedCase, inputMode, permittedInputModes, flags, numericKeyMap)) {
   170                         UpdateFlagsState(flags);
   174                         UpdateFlagsState(flags);
   171                         UpdateInputModeState(inputMode, permittedInputModes, numericKeyMap);
   175                         UpdateInputModeState(inputMode, permittedInputModes, numericKeyMap);
   721 void CWebFepTextEditor::UpdateFlagsState(TUint flags)
   725 void CWebFepTextEditor::UpdateFlagsState(TUint flags)
   722 {
   726 {
   723     CAknEdwinState* state = static_cast<CAknEdwinState*>(State(KNullUid));
   727     CAknEdwinState* state = static_cast<CAknEdwinState*>(State(KNullUid));
   724 
   728 
   725     if ( IsTextAreaFocused() ) {
   729     if ( IsTextAreaFocused() ) {
       
   730 #ifdef BRDO_MULTITOUCH_ENABLED_FF
   726     	// If in a TextArea, allow "enter" key presses to be newline/paragraph
   731     	// If in a TextArea, allow "enter" key presses to be newline/paragraph
   727     	state->SetFlags( flags | EAknEditorFlagUseSCTNumericCharmap
   732     	state->SetFlags( flags | EAknEditorFlagUseSCTNumericCharmap
   728     					 | EAknEditorFlagAllowEntersWithScrollDown );
   733      | EAknEditorFlagAllowEntersWithScrollDown | EAknEditorFlagSelectionVisible );
       
   734 #else
       
   735       state->SetFlags( flags | EAknEditorFlagUseSCTNumericCharmap
       
   736             | EAknEditorFlagAllowEntersWithScrollDown );
       
   737 #endif
   729     	}
   738     	}
   730     else {
   739     else {
   731         state->SetFlags(flags | EAknEditorFlagUseSCTNumericCharmap);
   740 #ifdef BRDO_MULTITOUCH_ENABLED_FF
       
   741         state->SetFlags(flags | EAknEditorFlagUseSCTNumericCharmap | EAknEditorFlagSelectionVisible);
       
   742 #else
       
   743         state->SetFlags(flags | EAknEditorFlagUseSCTNumericCharmap );
       
   744 #endif
   732     	}
   745     	}
   733 
   746 
   734     state->ReportAknEdStateEventL(MAknEdStateObserver::EAknEdwinStateFlagsUpdate);
   747     state->ReportAknEdStateEventL(MAknEdStateObserver::EAknEdwinStateFlagsUpdate);
   735     if (m_CcpuSupport)
   748     if (m_CcpuSupport)
   736     {
   749     {
   832             while(fm == EStatic) {
   845             while(fm == EStatic) {
   833                 fm = m_textFormatMask->getInputFormatMaskType(frame, ++cursorpos); 
   846                 fm = m_textFormatMask->getInputFormatMaskType(frame, ++cursorpos); 
   834             }
   847             }
   835         }
   848         }
   836         setSCTAvailability(true);
   849         setSCTAvailability(true);
       
   850         CAknEdwinState* state = static_cast<CAknEdwinState*>(State(KNullUid));
   837         switch( fm ) {
   851         switch( fm ) {
   838             case ELeUpSymPuc:       //A any upper case letter or symbolic
   852             case ELeUpSymPuc:       //A any upper case letter or symbolic
   839                 flags = EAknEditorFlagNoT9 | EAknEditorFlagFixedCase;
   853                 flags = EAknEditorFlagNoT9 | EAknEditorFlagFixedCase;
   840                 currentCase = EAknEditorUpperCase;
   854                 currentCase = EAknEditorUpperCase;
   841                 permittedCase = EAknEditorUpperCase;
   855                 permittedCase = EAknEditorUpperCase;
   851             break;
   865             break;
   852             case ELeUpNumSymPuc:    //X any upper case, number or symbolic
   866             case ELeUpNumSymPuc:    //X any upper case, number or symbolic
   853                 flags = EAknEditorFlagNoT9 | EAknEditorFlagFixedCase;
   867                 flags = EAknEditorFlagNoT9 | EAknEditorFlagFixedCase;
   854                 currentCase = EAknEditorUpperCase;
   868                 currentCase = EAknEditorUpperCase;
   855                 permittedCase= EAknEditorUpperCase;
   869                 permittedCase= EAknEditorUpperCase;
   856                 inputMode = EAknEditorTextInputMode;
   870                 inputMode = state->CurrentInputMode();
   857                 permittedInputModes= EAknEditorTextInputMode;
   871                 permittedInputModes= EAknEditorTextInputMode;
   858             break;
   872             break;
   859             case ELeLoNumSymPuc:    //x any lower case, number or symbolic
   873             case ELeLoNumSymPuc:    //x any lower case, number or symbolic
   860                 flags = EAknEditorFlagNoT9 | EAknEditorFlagFixedCase;
   874                 flags = EAknEditorFlagNoT9 | EAknEditorFlagFixedCase;
   861                 currentCase = EAknEditorLowerCase;
   875                 currentCase = EAknEditorLowerCase;
   862                 permittedCase= EAknEditorLowerCase;
   876                 permittedCase= EAknEditorLowerCase;
   863                 inputMode = EAknEditorTextInputMode;
   877                 inputMode = state->CurrentInputMode();
   864                 permittedInputModes= EAknEditorTextInputMode | EAknEditorNumericInputMode;
   878                 permittedInputModes= EAknEditorTextInputMode | EAknEditorNumericInputMode;
   865             break;
   879             break;
   866             case EAnyLow:           //m any lower character can be changed to upper
   880             case EAnyLow:           //m any lower character can be changed to upper
   867                 flags = EAknEditorFlagNoT9;
   881                 flags = EAknEditorFlagNoT9;
   868                 currentCase = EAknEditorLowerCase;
   882                 currentCase = EAknEditorLowerCase;
  1477 TBool CWebFepTextEditor::IsLongKeyPress() const
  1491 TBool CWebFepTextEditor::IsLongKeyPress() const
  1478     {
  1492     {
  1479     return m_longKeyPress ;	
  1493     return m_longKeyPress ;	
  1480     }
  1494     }
  1481 
  1495 
       
  1496 TBool CWebFepTextEditor::IsInputElementFocused() const
       
  1497     {
       
  1498     Frame* frame = m_webView->page()->focusController()->focusedOrMainFrame();
       
  1499     return ( frame && frame->document()->focusedNode() &&
       
  1500              frame->document()->focusedNode()->hasTagName(HTMLNames::inputTag));
       
  1501     }