diff -r fcdfafb36fe7 -r aecbbf00d063 commonuis/CommonUi/src/ItemFinder.cpp --- a/commonuis/CommonUi/src/ItemFinder.cpp Thu Aug 19 10:11:06 2010 +0300 +++ b/commonuis/CommonUi/src/ItemFinder.cpp Tue Aug 31 15:28:30 2010 +0300 @@ -21,27 +21,22 @@ // INCLUDES #include #include // for CRichText -#include -#include -#include +#include "ItemFinder.h" #include #include #include #include // for AknUtils #include -#include // scheme recog #include #include -#include #include #include // CONSTANTS const TInt KMINTAGLENGTH(5); -const TInt KDragTresholdDefault(20); _LIT( KHTTPPREFIX, "http://"); _LIT( RTSP, "rtsp"); _LIT( KTELPREFIX, "tel:"); @@ -201,14 +196,9 @@ { delete iSchemeResolver; } - if ( iItemFinderObserver && iCoeEnv ) // if still listening to events - { - iCoeEnv->RemoveMessageMonitorObserver( *this ); - } } -CItemFinder::CItemFinder( TInt aFindFlags ): iFlags( aFindFlags ), - iCoeEnv( CCoeEnv::Static() ) +CItemFinder::CItemFinder( TInt aFindFlags ): iFlags( aFindFlags ) {} void CItemFinder::ConstructL() @@ -218,7 +208,6 @@ CRichText::ActivateParserL(this); iSchemeResolver = CSchemeResolver::NewL(); iMinDigitsToFind = GetMinDigitsToFindL(); // variated. - iFeedback = MTouchFeedback::Instance(); } TInt CItemFinder::GetMinDigitsToFindL() @@ -251,12 +240,6 @@ { return EFalse; } - // if a key was not pressed, do not move highlight to next item. - if ( iItemFinderObserver && !iAllowHighlight ) - { - return EFalse; - } - if ( aDirection == EInit || aDirection == EInitUp || aDirection == EInitDown ) { if ( aDirection == EInitUp ) @@ -482,7 +465,6 @@ EXPORT_C void CItemFinder::SetEditor( CEikRichTextEditor** aEditor ) { iEditor=aEditor; - SetWindowControl( *aEditor ); if ( aEditor && *aEditor && (*aEditor)->TextLength() ) { TRAP_IGNORE( (*aEditor)->SetHighlightStyleL( EEikEdwinHighlightLink ) ); @@ -924,11 +906,6 @@ { return EFalse; } - if ( iItemFinderObserver && !iAllowHighlight ) - { - // if observer is given, return EFalse here - return EFalse; - } TInt pos = 0; TInt len = (*iEditor)->TextLayout()->PosRangeInBand( pos ); TRect rect; @@ -946,10 +923,6 @@ { break; // Item not visible. } - if( end >= ( pos + len ) ) - { - end = pos + len - 1; - } TInt lastLine = (*iEditor)->TextLayout()->GetLineNumber( end ); TInt nextLine = 0; TInt lastPos = start; @@ -1134,84 +1107,6 @@ } } -// ----------------------------------------------------------------------------- -// CItemFinder::SetItemFinderObserverL() -// ----------------------------------------------------------------------------- -// -EXPORT_C void CItemFinder::SetItemFinderObserverL( - MAknItemFinderObserver* aObserver ) - { - if ( !iItemFinderObserver && aObserver ) // client registers - { - if ( iCoeEnv ) - { - iCoeEnv->AddMessageMonitorObserverL( *this ); - } - } - else if ( iItemFinderObserver && !aObserver ) // client unregisters - { - if ( iCoeEnv ) - { - iCoeEnv->RemoveMessageMonitorObserver( *this ); - } - } - - iItemFinderObserver = aObserver; - } - -// ----------------------------------------------------------------------------- -// CItemFinder::MonitorWsMessage -// ----------------------------------------------------------------------------- -// -void CItemFinder::MonitorWsMessage( const TWsEvent& aEvent ) - { - if ( !iItemFinderObserver ) - { - // if no observer given, nothing is done here. - return; - } - if ( !iEditor ) - { - return; - } - if ( EEventPointer == aEvent.Type() ) - { - CCoeControl* targetControl = - reinterpret_cast( aEvent.Handle() ); - if ( targetControl ) - { - TRAP_IGNORE ( MonitorPointerEventL( - *aEvent.Pointer(), targetControl ) ); - } - } - else if ( aEvent.Type() == EEventKeyDown ) - { - iAllowHighlight = ETrue; - - // if an item is selected and select was pressed, send key event - TKeyEvent* keyEvent = aEvent.Key(); - - if ( keyEvent && ( EStdKeyDevice3 == keyEvent->iScanCode - || EStdKeyEnter == keyEvent->iScanCode - || EStdKeyNkpEnter == keyEvent->iScanCode ) - && iItemFinderObserver - && ( KNullDesC().Compare ( CurrentSelection() ) ) ) - { - // calling observer - TRAP_IGNORE( iItemFinderObserver->HandleFindItemEventL( - *iCurrentItemExt, MAknItemFinderObserver::EKeyEvent ) ); - } - } - else if ( aEvent.Type() == EEventKeyUp ) - { - iAllowHighlight = EFalse; - } - } - -// ----------------------------------------------------------------------------- -// CItemFinder::RefreshEditor -// ----------------------------------------------------------------------------- -// TInt CItemFinder::RefreshEditor() { TInt error = KErrNone; @@ -1242,165 +1137,4 @@ return error; } -// --------------------------------------------------------------------------- -// CItemFinder::SetWindowControl -// --------------------------------------------------------------------------- -// -void CItemFinder::SetWindowControl( CCoeControl* aControl ) - { - if ( aControl ) - { - CCoeControl* windowControl( aControl ); - while ( windowControl && !windowControl->OwnsWindow() ) - { - if ( windowControl == windowControl->Parent() ) - { - return; - } - windowControl = windowControl->Parent(); - } - if ( windowControl ) - { - iWindowControl = windowControl; - } - } - } - -// -------------------------------------------------------------------------- -// CItemFinder::MonitorPointerEventL -// -------------------------------------------------------------------------- -// -void CItemFinder::MonitorPointerEventL( TPointerEvent &aPointerEvent, - CCoeControl* aTargetControl ) - { - if ( !iWindowControl ) - { - SetWindowControl( *iEditor ); - } - if ( aTargetControl == iWindowControl ) - { - TPoint tapPoint ( aPointerEvent.iPosition ); - ModifyPointerEvent( tapPoint ); - if ( aPointerEvent.iType == TPointerEvent::EButton1Down ) - { - iAllowHighlight = ETrue; - TBool tapped ( EFalse ); - // Trapping because iAllowHighlight needs to be set to value EFalse - // also if ItemWasTappedL leaves - TRAP_IGNORE( tapped = ItemWasTappedL( tapPoint ) ); - iAllowHighlight = EFalse; - // if no item was tapped remove selection - if ( tapped ) - { - if ( iFeedback ) - { - iFeedback->InstantFeedback( ETouchFeedbackBasicButton ); - } - iTapPoint = tapPoint; - } - else - { - (*iEditor)->ClearSelectionL(); - ResetCurrentItem(); - } - } - else if ( aPointerEvent.iType == TPointerEvent::EDrag ) - { - if ( iCurrentItemExt->iItemType != ENoneSelected ) - { - if ( Abs( iTapPoint.iX - tapPoint.iX ) > DragThresholdL() || - Abs( iTapPoint.iY - tapPoint.iY ) > DragThresholdL() ) - { - (*iEditor)->ClearSelectionL(); - ResetCurrentItem(); - } - } - } - else if ( aPointerEvent.iType == TPointerEvent::EButton1Up ) - { - if ( iCurrentItemExt->iItemType != ENoneSelected ) - { - if ( iItemFinderObserver ) - { - // calling observer - iItemFinderObserver->HandleFindItemEventL( - *iCurrentItemExt, - MAknItemFinderObserver::EPointerEvent ); - } - // remove selection with button up event - (*iEditor)->ClearSelectionL(); - if ( !(*iEditor)->IsFocused() ) - { - // ClearSelectionL() does not draw itself if focus was lost - - TRect rect = (*iEditor)->TextLayout()->GetLineRectL( - iCurrentItemExt->iStart, iCurrentItemExt->iEnd ); - rect.Move( (*iEditor)->Position() ); - rect.iTl.iX = 0; - rect.iBr.iX = (*iEditor)->Rect().iBr.iX; - - TPoint begin ( 0, 0 ); - TPoint end ( 0, 0 ); - (*iEditor)->TextLayout()->DocPosToXyPosL( - iCurrentItemExt->iStart, begin ); - (*iEditor)->TextLayout()->DocPosToXyPosL( - iCurrentItemExt->iEnd, end ); - - if ( begin.iY != end.iY ) - { - // item spawns two lines - // make rectangle cover both lines - rect.iBr.iY += ( end.iY - begin.iY ); - } - // draw clearable area - (*iEditor)->DrawNow( rect ); - } - } - } - } - } - -// -------------------------------------------------------------------------- -// CItemFinder::ModifyPointerEvent -// -------------------------------------------------------------------------- -// -void CItemFinder::ModifyPointerEvent( TPoint &aTapPoint ) - { - aTapPoint -= (*iEditor)->Position(); - } - -// -------------------------------------------------------------------------- -// CItemFinder::DragThresholdL -// -------------------------------------------------------------------------- -// -TInt CItemFinder::DragThresholdL() - { - if ( 0 == iDragThreshold ) - { - CRepository* cenrep ( NULL ); - TRAPD( err, cenrep = CRepository::NewL( KCRUidAknPhysicsSettings ) ); - if ( KErrNone == err && cenrep ) - { - CleanupStack::PushL( cenrep ); - cenrep->Get( KDragTreshold, iDragThreshold ); - CleanupStack::PopAndDestroy( cenrep ); - } - } - if ( 0 == iDragThreshold ) - { - // cenrep failed, use fallback value - iDragThreshold = KDragTresholdDefault; - } - return iDragThreshold; - } - -// -------------------------------------------------------------------------- -// CItemFinder::HasSelection -// -------------------------------------------------------------------------- -// -TBool CItemFinder::HasSelection() const - { - return static_cast( (*iEditor)->SelectionLength() ); - } - // End of File