diff -r a3a1ae9acec6 -r da5135c61bad meetingrequest/mrgui/mrfieldbuildercommon/src/cesmrfield.cpp --- a/meetingrequest/mrgui/mrfieldbuildercommon/src/cesmrfield.cpp Mon Mar 15 12:39:10 2010 +0200 +++ b/meetingrequest/mrgui/mrfieldbuildercommon/src/cesmrfield.cpp Wed Mar 31 21:08:33 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -18,12 +18,11 @@ #include "cesmrfield.h" #include "esmrcommands.h" -#include "cesmrborderlayer.h" -#include "cesmrlayoutmgr.h" #include "nmrlayoutmanager.h" #include "mesmrfieldeventqueue.h" #include "cesmrfieldcommandevent.h" #include "cmrbackground.h" +#include "esmrcommands.h" #include "emailtrace.h" @@ -31,20 +30,22 @@ #include #include #include -#include -#include +#include +#include +#include // ======== MEMBER FUNCTIONS ======== // --------------------------------------------------------------------------- -// CESMRField::CESMRField() +// CESMRField::CESMRField // --------------------------------------------------------------------------- // EXPORT_C CESMRField::CESMRField() : iCustomMsk( EFalse ), iDisableRedraw( EFalse ), iDefaultMskVisible( EFalse ), - iMskVisible( EFalse ) + iMskVisible( EFalse ), + iLocked( EFalse ) { FUNC_LOG; // do nothing @@ -52,13 +53,13 @@ // --------------------------------------------------------------------------- -// CESMRField::~CESMRField() +// CESMRField::~CESMRField // --------------------------------------------------------------------------- // EXPORT_C CESMRField::~CESMRField() { FUNC_LOG; - delete iBorder; + delete iExtControl; if ( iEventQueue ) { iEventQueue->RemoveObserver( this ); @@ -67,37 +68,23 @@ } // --------------------------------------------------------------------------- -// CESMRField::SetExpandable() +// CESMRField::ConstructL // --------------------------------------------------------------------------- // -EXPORT_C void CESMRField::SetExpandable() +EXPORT_C void CESMRField::ConstructL( + CCoeControl* aControl ) { FUNC_LOG; - iExpandable = ETrue; + iExtControl = aControl; + + // TODO: This should be made in ConstructL instead as soon we + // get rid of old CESMRLayoutManager. + iBackground = CMRBackground::NewL(); + this->SetBackground( iBackground ); } // --------------------------------------------------------------------------- -// CESMRField::IsExpandable() -// --------------------------------------------------------------------------- -// -EXPORT_C TBool CESMRField::IsExpandable() const - { - FUNC_LOG; - return iExpandable; - } - -// --------------------------------------------------------------------------- -// CESMRField::ExpandedHeight() -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CESMRField::ExpandedHeight() const - { - FUNC_LOG; - return 0; - } - -// --------------------------------------------------------------------------- -// CESMRField::InitializeL() +// CESMRField::InitializeL // --------------------------------------------------------------------------- // EXPORT_C void CESMRField::InitializeL() @@ -107,7 +94,7 @@ } // --------------------------------------------------------------------------- -// CESMRField::FontChangedL() +// CESMRField::FontChangedL // --------------------------------------------------------------------------- // EXPORT_C void CESMRField::FontChangedL() @@ -118,7 +105,7 @@ } // --------------------------------------------------------------------------- -// CESMRField::SetFieldId() +// CESMRField::SetFieldId // --------------------------------------------------------------------------- // EXPORT_C void CESMRField::SetFieldId( TESMREntryFieldId aFieldId ) @@ -127,8 +114,30 @@ iFieldId = aFieldId; } + // --------------------------------------------------------------------------- -// CESMRField::FieldId() +// CESMRField::SetPreItemIndex +// --------------------------------------------------------------------------- +// +EXPORT_C void CESMRField::SetPreItemIndex( TInt aPreItemIndex ) + { + FUNC_LOG; + iPreItemIndex = aPreItemIndex; + } + + +// --------------------------------------------------------------------------- +// CESMRField::SetCurrentItemIndex +// --------------------------------------------------------------------------- +// +EXPORT_C void CESMRField::SetCurrentItemIndex( TInt aCurrentItemIndex ) + { + FUNC_LOG; + iCurrentItemIndex = aCurrentItemIndex; + } + +// --------------------------------------------------------------------------- +// CESMRField::FieldId // --------------------------------------------------------------------------- // EXPORT_C TESMREntryFieldId CESMRField::FieldId() const @@ -138,15 +147,23 @@ } // --------------------------------------------------------------------------- -// CESMRField::ConstructL() +// CESMRField::PreItemIndex // --------------------------------------------------------------------------- // -EXPORT_C void CESMRField::ConstructL( - CCoeControl* aControl, TESMRFieldFocusType aFocusType ) +EXPORT_C TInt CESMRField::PreItemIndex() const { FUNC_LOG; - iBorder = CESMRBorderLayer::NewL( aControl, aFocusType ); - iBorder->SetParent( this ); + return iPreItemIndex; + } + +// --------------------------------------------------------------------------- +// CESMRField::CurrentItemIndex +// --------------------------------------------------------------------------- +// +EXPORT_C TInt CESMRField::CurrentItemIndex() const + { + FUNC_LOG; + return iCurrentItemIndex; } // --------------------------------------------------------------------------- @@ -157,9 +174,9 @@ { FUNC_LOG; TRect rect( Rect() ); - if ( iBorder ) + if ( iExtControl ) { - iBorder->SetRect( rect ); + iExtControl->SetRect( rect ); } } @@ -171,7 +188,7 @@ { FUNC_LOG; TInt count( 0 ); - if ( iBorder ) + if ( iExtControl ) { ++count; } @@ -180,17 +197,17 @@ } // --------------------------------------------------------------------------- -// CESMRField::ComponentControl() +// CESMRField::ComponentControl // --------------------------------------------------------------------------- // EXPORT_C CCoeControl* CESMRField::ComponentControl( TInt /*aInd*/ ) const { FUNC_LOG; - return iBorder; + return iExtControl; } // --------------------------------------------------------------------------- -// CESMRField::MinimumSize() +// CESMRField::MinimumSize // --------------------------------------------------------------------------- // EXPORT_C TSize CESMRField::MinimumSize() @@ -204,21 +221,53 @@ } // --------------------------------------------------------------------------- -// CESMRField::SetContainerWindowL() +// CESMRField::HandlePointerEventL +// --------------------------------------------------------------------------- +// +EXPORT_C void CESMRField::HandlePointerEventL( + const TPointerEvent& aPointerEvent ) + { + FUNC_LOG; + // Sanity check that pointer event occurs in field area + if ( Rect().Contains( aPointerEvent.iPosition ) ) + { + if ( aPointerEvent.iType == TPointerEvent::EButton1Up ) + { + if ( !HandleSingletapEventL( aPointerEvent.iPosition ) ) + { + // Provide raw pointer event to field + HandleRawPointerEventL( aPointerEvent ); + } + } + else // Provide other pointer events to fields + { + if ( !HandleRawPointerEventL( aPointerEvent ) ) + { + // Provide pointer events to child components if field + // did not already consume the event + CCoeControl::HandlePointerEventL( aPointerEvent ); + } + } + } + } + +// --------------------------------------------------------------------------- +// CESMRField::SetContainerWindowL // --------------------------------------------------------------------------- // EXPORT_C void CESMRField::SetContainerWindowL(const CCoeControl& aContainer) { FUNC_LOG; CCoeControl::SetContainerWindowL( aContainer ); - if ( iBorder ) + if ( iExtControl ) { - iBorder->SetContainerWindowL( aContainer ); + iExtControl->SetContainerWindowL( aContainer ); + iExtControl->SetParent( this ); } } // --------------------------------------------------------------------------- -// CESMRField::SetListObserver() +// CESMRField::SetListObserver // --------------------------------------------------------------------------- // EXPORT_C void CESMRField::SetListObserver( MESMRListObserver* aObserver ) @@ -229,7 +278,7 @@ } // --------------------------------------------------------------------------- -// CESMRField::SetListObserver() +// CESMRField::ListObserverSet // --------------------------------------------------------------------------- // EXPORT_C void CESMRField::ListObserverSet() @@ -239,49 +288,31 @@ } // --------------------------------------------------------------------------- -// CESMRField::SetLayoutManager() +// CESMRField::OfferKeyEventL // --------------------------------------------------------------------------- // -EXPORT_C void CESMRField::SetLayoutManager( CESMRLayoutManager* aLayout ) - { - FUNC_LOG; - iLayout = aLayout; - if ( iBorder ) - { - iBorder->SetLayoutManager( iLayout ); - } - TRAP_IGNORE( - iBackground = CMRBackground::NewL( *aLayout ); - this->SetBackground( iBackground ); - ); - } - -// --------------------------------------------------------------------------- -// CESMRField::OfferKeyEventL() -// --------------------------------------------------------------------------- -// -EXPORT_C TKeyResponse CESMRField::OfferKeyEventL( +EXPORT_C TKeyResponse CESMRField::OfferKeyEventL( const TKeyEvent& aEvent, TEventCode aType ) { FUNC_LOG; - if ( iBorder ) + if ( iExtControl ) { - return iBorder->OfferKeyEventL( aEvent, aType ); + return iExtControl->OfferKeyEventL( aEvent, aType ); } return EKeyWasNotConsumed; } // --------------------------------------------------------------------------- -// CESMRField::SetOutlineFocusL() +// CESMRField::SetOutlineFocusL // --------------------------------------------------------------------------- // EXPORT_C void CESMRField::SetOutlineFocusL( TBool aFocus ) { FUNC_LOG; iOutlineFocus = aFocus; - if ( iBorder ) + if ( iExtControl ) { - iBorder->SetOutlineFocusL( aFocus ); + iExtControl->SetFocus( aFocus ); } if ( aFocus ) { @@ -300,7 +331,7 @@ } // --------------------------------------------------------------------------- -// CESMRField::OkToLoseFocusL() +// CESMRField::OkToLoseFocusL // --------------------------------------------------------------------------- // EXPORT_C TBool CESMRField::OkToLoseFocusL( // codescanner::LFunctionCantLeave @@ -323,7 +354,18 @@ } // --------------------------------------------------------------------------- -// CESMRField::InternalizeL() +// CESMRField::GetCursorLineVerticalPos +// --------------------------------------------------------------------------- +// +EXPORT_C void CESMRField::GetCursorLineVerticalPos(TInt& aUpper, TInt& aLower) + { + FUNC_LOG; + aUpper = 0; + aLower = Rect().iBr.iY - Rect().iTl.iY; + } + +// --------------------------------------------------------------------------- +// CESMRField::InternalizeL // --------------------------------------------------------------------------- // EXPORT_C void CESMRField::InternalizeL( // codescanner::LFunctionCantLeave @@ -334,7 +376,7 @@ } // --------------------------------------------------------------------------- -// CESMRField::ExternalizeL() +// CESMRField::ExternalizeL // --------------------------------------------------------------------------- // EXPORT_C void CESMRField::ExternalizeL( // codescanner::LFunctionCantLeave @@ -345,21 +387,32 @@ } // --------------------------------------------------------------------------- -// CESMRField::ExecuteGenericCommandL() +// CESMRField::ExecuteGenericCommandL // --------------------------------------------------------------------------- // -EXPORT_C void CESMRField::ExecuteGenericCommandL( // codescanner::LFunctionCantLeave - TInt /*aCommand*/ ) +EXPORT_C TBool CESMRField::ExecuteGenericCommandL( TInt /*aCommand*/ ) { FUNC_LOG; - /* Empty implementation, subclasses should overwrite */ + return EFalse; + /* Subclasses should overwrite */ } // --------------------------------------------------------------------------- -// CESMRField::SetTitlePaneObserver() +// CESMRField::LongtapDetectedL // --------------------------------------------------------------------------- // -EXPORT_C void CESMRField::SetTitlePaneObserver( +EXPORT_C void CESMRField::LongtapDetectedL( const TPoint& aPosition ) + { + FUNC_LOG; + + HandleLongtapEventL( aPosition ); + } + +// --------------------------------------------------------------------------- +// CESMRField::SetTitlePaneObserver +// --------------------------------------------------------------------------- +// +EXPORT_C void CESMRField::SetTitlePaneObserver( MESMRTitlePaneObserver* /*aObserver*/ ) { FUNC_LOG; @@ -367,109 +420,103 @@ } // --------------------------------------------------------------------------- -// CESMRField::ChangeMiddleSoftKeyL() +// CESMRField::ChangeMiddleSoftKeyL // --------------------------------------------------------------------------- // -EXPORT_C void CESMRField::ChangeMiddleSoftKeyL( TInt aCommandId, - TInt aResourceId ) +EXPORT_C void CESMRField::ChangeMiddleSoftKeyL( + TInt aCommandId, + TInt aResourceId ) { FUNC_LOG; - CEikButtonGroupContainer* cba = CEikButtonGroupContainer::Current(); - if ( cba ) + + if ( AknLayoutUtils::MSKEnabled() ) { - HBufC* middleSKText = StringLoader::LoadLC( aResourceId, - iCoeEnv ); - cba->SetCommandL( - CEikButtonGroupContainer::EMiddleSoftkeyPosition, - aCommandId, *middleSKText ); - CleanupStack::PopAndDestroy( middleSKText ); - if ( !iMskVisible ) + CEikButtonGroupContainer* cba = CEikButtonGroupContainer::Current(); + if ( cba ) { - cba->MakeCommandVisibleByPosition( + HBufC* middleSKText = StringLoader::LoadLC( aResourceId, + iCoeEnv ); + cba->SetCommandL( CEikButtonGroupContainer::EMiddleSoftkeyPosition, - ETrue ); - iMskVisible = ETrue; + aCommandId, *middleSKText ); + CleanupStack::PopAndDestroy( middleSKText ); + if ( !iMskVisible ) + { + cba->MakeCommandVisibleByPosition( + CEikButtonGroupContainer::EMiddleSoftkeyPosition, + ETrue ); + iMskVisible = ETrue; + } + cba->DrawDeferred(); + iCustomMsk = ETrue; } - cba->DrawDeferred(); - iCustomMsk = ETrue; } } // --------------------------------------------------------------------------- -// CESMRField::ChangeMiddleSoftKeyL() +// CESMRField::SetValidatorL +// --------------------------------------------------------------------------- +// +EXPORT_C void CESMRField::SetValidatorL( MESMRFieldValidator* aValidator ) + { + FUNC_LOG; + + iValidator = aValidator; + } + +// --------------------------------------------------------------------------- +// CESMRField::IsFieldActivated +// --------------------------------------------------------------------------- +// +EXPORT_C TBool CESMRField::IsFieldActivated() const + { + FUNC_LOG; + + return IsActivated(); + } + +// --------------------------------------------------------------------------- +// CESMRField::DynInitMenuPaneL +// --------------------------------------------------------------------------- +// +EXPORT_C void CESMRField::DynInitMenuPaneL( + TInt /*aResourceId*/, + CEikMenuPane* /*aMenuPane*/ ) + { + FUNC_LOG; + } + +// --------------------------------------------------------------------------- +// CESMRField::ChangeMiddleSoftKeyL // --------------------------------------------------------------------------- // EXPORT_C void CESMRField::ChangeMiddleSoftKeyL( TInt aResourceId ) { FUNC_LOG; - CEikButtonGroupContainer* cba = CEikButtonGroupContainer::Current(); - if ( cba ) + + if ( AknLayoutUtils::MSKEnabled() ) { - cba->SetCommandL( - CEikButtonGroupContainer::EMiddleSoftkeyPosition, - aResourceId ); - if ( !iMskVisible ) + CEikButtonGroupContainer* cba = CEikButtonGroupContainer::Current(); + if ( cba ) { - cba->MakeCommandVisibleByPosition( + cba->SetCommandL( CEikButtonGroupContainer::EMiddleSoftkeyPosition, - ETrue ); - iMskVisible = ETrue; + aResourceId ); + if ( !iMskVisible ) + { + cba->MakeCommandVisibleByPosition( + CEikButtonGroupContainer::EMiddleSoftkeyPosition, + ETrue ); + iMskVisible = ETrue; + } + cba->DrawDeferred(); + iCustomMsk = ETrue; } - cba->DrawDeferred(); - iCustomMsk = ETrue; - } + } } // --------------------------------------------------------------------------- -// CESMRField::CalculateVisibleRect() -// --------------------------------------------------------------------------- -// -EXPORT_C TRect CESMRField::CalculateVisibleRect( TRect aRect ) - { - FUNC_LOG; - TRect targetRect(aRect); - // highlight bitmap target size: - TSize targetSize( Rect().Size() ); - - // fetch the size of main pane - TRect mainPaneRect; - AknLayoutUtils::LayoutMetricsRect( - AknLayoutUtils::EMainPane, mainPaneRect ); - - // the list drawable height: - TInt listAreaHeight = mainPaneRect.Height() - iLayout->TitlePaneHeight(); - - // if the size of field is larger than drawable height - // let's downsize it: - if ( Rect().Size().iHeight > listAreaHeight ) - { - TInt shownHeight = Rect().Size().iHeight + Rect().iTl.iY; - // check should the highlight be smaller than - // whole screen: - if ( shownHeight < listAreaHeight ) - { - targetSize.iHeight = shownHeight; - } - else - { - targetSize.iHeight = listAreaHeight; - } - } - - // If part of the rect is not visible: - if ( targetRect.iTl.iY < 0 ) - { - targetRect.iTl.iY = 0; - } - - // visible height: - targetRect.SetHeight(listAreaHeight); - - return targetRect; - } - -// --------------------------------------------------------------------------- -// CESMRField::SetEventQueueL() +// CESMRField::SetEventQueueL // --------------------------------------------------------------------------- // EXPORT_C void CESMRField::SetEventQueueL( MESMRFieldEventQueue* aEventQueue ) @@ -479,67 +526,72 @@ { if ( aEventQueue ) { - // Add self to new queue + // Add self to new queue aEventQueue->AddObserverL( this ); } - + if ( iEventQueue ) { // Remove self from old queue iEventQueue->RemoveObserver( this ); } - + iEventQueue = aEventQueue; } } // --------------------------------------------------------------------------- -// CESMRField::HasOutlineFocus() +// CESMRField::HasOutlineFocus // --------------------------------------------------------------------------- // EXPORT_C TBool CESMRField::HasOutlineFocus() const { + FUNC_LOG; return iOutlineFocus; } // --------------------------------------------------------------------------- -// CESMRField::GetFocusRect() +// CESMRField::GetFocusRect // --------------------------------------------------------------------------- // EXPORT_C TRect CESMRField::GetFocusRect() const { + FUNC_LOG; return iFocusRect; } // --------------------------------------------------------------------------- -// CESMRField::SetFocusRect() +// CESMRField::SetFocusRect // --------------------------------------------------------------------------- // EXPORT_C void CESMRField::SetFocusRect( const TRect& aFocusRect ) { + FUNC_LOG; iFocusRect = aFocusRect; } // --------------------------------------------------------------------------- -// CESMRField::GetFocusType() +// CESMRField::GetFocusType // --------------------------------------------------------------------------- // EXPORT_C TESMRFieldFocusType CESMRField::GetFocusType() const { + FUNC_LOG; return iFocusType; } // --------------------------------------------------------------------------- -// CESMRField::SetFocusType() +// CESMRField::SetFocusType // --------------------------------------------------------------------------- // EXPORT_C void CESMRField::SetFocusType( TESMRFieldFocusType aFocusType ) { + FUNC_LOG; iFocusType = aFocusType; } // --------------------------------------------------------------------------- -// CESMRField::NotifyEventL() +// CESMRField::NotifyEventL // --------------------------------------------------------------------------- // EXPORT_C void CESMRField::NotifyEventL( const MESMRFieldEvent& aEvent ) @@ -552,7 +604,7 @@ } // --------------------------------------------------------------------------- -// CESMRField::NotifyEventL() +// CESMRField::NotifyEventL // --------------------------------------------------------------------------- // EXPORT_C void CESMRField::NotifyEventL( TInt aCommand ) @@ -565,7 +617,7 @@ } // --------------------------------------------------------------------------- -// CESMRField::NotifyEventAsyncL() +// CESMRField::NotifyEventAsyncL // --------------------------------------------------------------------------- // EXPORT_C void CESMRField::NotifyEventAsyncL( MESMRFieldEvent* aEvent ) @@ -578,7 +630,7 @@ } // --------------------------------------------------------------------------- -// CESMRField::NotifyEventAsyncL() +// CESMRField::NotifyEventAsyncL // --------------------------------------------------------------------------- // EXPORT_C void CESMRField::NotifyEventAsyncL( TInt aCommand ) @@ -591,44 +643,105 @@ } // --------------------------------------------------------------------------- -// CESMRField::RestoreMiddleSoftKeyL() +// CESMRField::RestoreMiddleSoftKeyL // --------------------------------------------------------------------------- // EXPORT_C void CESMRField::RestoreMiddleSoftKeyL() { FUNC_LOG; - if ( iMskVisible != iDefaultMskVisible ) + if ( AknLayoutUtils::MSKEnabled() ) { - SetMiddleSoftKeyVisible( iDefaultMskVisible ); - } - - if ( iCustomMsk ) - { - NotifyEventL( EESMRCmdRestoreMiddleSoftKey ); - iCustomMsk = EFalse; + if ( iMskVisible != iDefaultMskVisible ) + { + SetMiddleSoftKeyVisible( iDefaultMskVisible ); + } + + if ( iCustomMsk ) + { + NotifyEventL( EESMRCmdRestoreMiddleSoftKey ); + iCustomMsk = EFalse; + } } } +// --------------------------------------------------------------------------- +// CESMRField::SetMiddleSoftKeyVisible +// --------------------------------------------------------------------------- +// EXPORT_C void CESMRField::SetMiddleSoftKeyVisible( TBool aVisible ) { FUNC_LOG; - if ( iMskVisible != aVisible ) + if ( AknLayoutUtils::MSKEnabled() ) { - CEikButtonGroupContainer* cba = CEikButtonGroupContainer::Current(); - if ( cba ) + if ( iMskVisible != aVisible ) { - cba->MakeCommandVisibleByPosition( - CEikButtonGroupContainer::EMiddleSoftkeyPosition, - aVisible ); - iMskVisible = aVisible; // Visibility has been changed + CEikButtonGroupContainer* cba = CEikButtonGroupContainer::Current(); + if ( cba ) + { + cba->MakeCommandVisibleByPosition( + CEikButtonGroupContainer::EMiddleSoftkeyPosition, + aVisible ); + iMskVisible = aVisible; // Visibility has been changed + } } + + iCustomMsk = ETrue; // Field has modified editor default MSK } - - iCustomMsk = ETrue; // Field has modified editor default MSK + } + +// --------------------------------------------------------------------------- +// CESMRField::HandleLongtapEventL +// --------------------------------------------------------------------------- +// +EXPORT_C void CESMRField::HandleLongtapEventL( const TPoint& /*aPosition*/ ) + { + FUNC_LOG; + // Default action for long tap event. + ExecuteGenericCommandL( EESMRCmdLongtapDetected ); } // --------------------------------------------------------------------------- -// CESMRField::HandleFieldEventL() +// CESMRField::HandleSingletapEventL +// --------------------------------------------------------------------------- +// +EXPORT_C TBool CESMRField::HandleSingletapEventL( const TPoint& /*aPosition*/ ) + { + FUNC_LOG; + // Subclasses may override for field specific actions + return EFalse; + } + +// --------------------------------------------------------------------------- +// CESMRField::HandleRawPointerEventL +// Default implementation for pointer event handling in field +// --------------------------------------------------------------------------- +// +EXPORT_C TBool CESMRField::HandleRawPointerEventL( + const TPointerEvent& aPointerEvent ) + { + FUNC_LOG; + + if ( aPointerEvent.iType == TPointerEvent::EButton1Up ) + { + // Default action for touch release + if ( !ExecuteGenericCommandL( EAknCmdOpen ) ) + { + // If the base class implementation does not use the command + // then the pointer event is propagated to children. + CCoeControl::HandlePointerEventL( aPointerEvent ); + } + } + else + { + // Propagate the pointer event to child components + CCoeControl::HandlePointerEventL( aPointerEvent ); + } + + return ETrue; + } + +// --------------------------------------------------------------------------- +// CESMRField::HandleFieldEventL // --------------------------------------------------------------------------- // EXPORT_C void CESMRField::HandleFieldEventL( const MESMRFieldEvent& aEvent ) @@ -645,7 +758,7 @@ } // --------------------------------------------------------------------------- -// CESMRField::EventObserver() +// CESMRField::EventObserver // --------------------------------------------------------------------------- // EXPORT_C MESMRFieldEventObserver* CESMRField::EventObserver() const @@ -655,21 +768,105 @@ } // --------------------------------------------------------------------------- -// CESMRField::SetFieldMode() +// CESMRField::SetFieldMode // --------------------------------------------------------------------------- // EXPORT_C void CESMRField::SetFieldMode( TESMRFieldMode aMode ) { + FUNC_LOG; iFieldMode = aMode; } // --------------------------------------------------------------------------- -// CESMRField::FieldMode() +// CESMRField::FieldMode // --------------------------------------------------------------------------- // EXPORT_C TESMRFieldMode CESMRField::FieldMode() const { + FUNC_LOG; return iFieldMode; } + +// --------------------------------------------------------------------------- +// CESMRField::SetFieldViewMode +// --------------------------------------------------------------------------- +// +EXPORT_C void CESMRField::SetFieldViewMode( TESMRFieldType aViewMode ) + { + FUNC_LOG; + iFieldViewMode = aViewMode; + } + +// --------------------------------------------------------------------------- +// CESMRField::FieldViewMode +// --------------------------------------------------------------------------- +// +EXPORT_C TESMRFieldType CESMRField::FieldViewMode() const + { + FUNC_LOG; + return iFieldViewMode; + } + +// --------------------------------------------------------------------------- +// CESMRField::UpdateExtControlL +// --------------------------------------------------------------------------- +// +EXPORT_C void CESMRField::UpdateExtControlL( + CCoeControl* aControl ) + { + FUNC_LOG; + delete iExtControl; + iExtControl = aControl; + } + +// --------------------------------------------------------------------------- +// CESMRField::Lock +// --------------------------------------------------------------------------- +// +EXPORT_C void CESMRField::LockL() + { + iLocked = ETrue; + } + +// --------------------------------------------------------------------------- +// CESMRField::IsLocked +// --------------------------------------------------------------------------- +// +EXPORT_C TBool CESMRField::IsLocked() + { + return iLocked; + } + + +// --------------------------------------------------------------------------- +// CESMRField::HandleTactileFeedbackL +// --------------------------------------------------------------------------- +// +EXPORT_C void CESMRField::HandleTactileFeedbackL() + { + FUNC_LOG; + + AquireTactileFeedback(); + + if ( iTactileFeedback && iTactileFeedback->FeedbackEnabledForThisApp() ) + { + iTactileFeedback->InstantFeedback( ETouchFeedbackBasic ); + } + } + +// --------------------------------------------------------------------------- +// CESMRField::AquireTactileFeedback +// --------------------------------------------------------------------------- +// +void CESMRField::AquireTactileFeedback() + { + if( !iTactileFeedback ) + { + // Aquire tactile feedback pointer from TLS + iTactileFeedback = MTouchFeedback::Instance(); + } + } + + // EOF