diff -r a3a1ae9acec6 -r da5135c61bad meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrpriorityfield.cpp --- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrpriorityfield.cpp Mon Mar 15 12:39:10 2010 +0200 +++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrpriorityfield.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" @@ -15,31 +15,58 @@ * */ -#include "emailtrace.h" #include "cesmrpriorityfield.h" #include "cesmrlistquery.h" +#include "nmrcolormanager.h" +#include "cmrimage.h" +#include "cmrlabel.h" +#include "nmrlayoutmanager.h" +#include "nmrbitmapmanager.h" #include "mesmrtitlepaneobserver.h" -// -#include "mesmrcalentry.h" -// #include #include -#include +#include #include #include #include -#include -#include +#include +#include + +#include "emailtrace.h" // ======== MEMBER FUNCTIONS ======== // --------------------------------------------------------------------------- +// CESMRPriorityField::CESMRPriorityField +// --------------------------------------------------------------------------- +// +CESMRPriorityField::CESMRPriorityField() + { + FUNC_LOG; + SetFieldId( EESMRFieldPriority ); + SetFocusType( EESMRHighlightFocus ); + } + +// --------------------------------------------------------------------------- +// CESMRPriorityField::~CESMRPriorityField +// --------------------------------------------------------------------------- +// +CESMRPriorityField::~CESMRPriorityField() + { + FUNC_LOG; + iArray.ResetAndDestroy(); + iArray.Close(); + + delete iIcon; + } + +// --------------------------------------------------------------------------- // CESMRPriorityField::NewL // --------------------------------------------------------------------------- // -CESMRPriorityField* CESMRPriorityField::NewL( ) +CESMRPriorityField* CESMRPriorityField::NewL() { FUNC_LOG; CESMRPriorityField* self = new (ELeave) CESMRPriorityField; @@ -50,14 +77,18 @@ } // --------------------------------------------------------------------------- -// CESMRPriorityField::~CESMRPriorityField +// CESMRPriorityField::ConstructL // --------------------------------------------------------------------------- // -CESMRPriorityField::~CESMRPriorityField( ) +void CESMRPriorityField::ConstructL() { - FUNC_LOG; - iArray.ResetAndDestroy ( ); - iArray.Close ( ); + FUNC_LOG; + iLabel = CMRLabel::NewL(); + iLabel->SetParent( this ); + CESMRField::ConstructL( iLabel ); // ownership transfered + + iIcon = CMRImage::NewL( NMRBitmapManager::EMRBitmapPriorityNormal ); + iIcon->SetParent( this ); } // --------------------------------------------------------------------------- @@ -67,13 +98,8 @@ void CESMRPriorityField::InitializeL() { FUNC_LOG; - iPriority->SetFont( iLayout->Font( iCoeEnv, iFieldId ) ); - iPriority->SetLabelAlignment( CESMRLayoutManager::IsMirrored() - ? ELayoutAlignRight : ELayoutAlignLeft ); - - AknLayoutUtils::OverrideControlColorL(*iPriority, - EColorLabelText, - iLayout->GeneralListAreaTextColor() ); + NMRColorManager::SetColor( *iLabel, + NMRColorManager::EMRMainAreaTextColor ); } // --------------------------------------------------------------------------- @@ -146,7 +172,8 @@ void CESMRPriorityField::SetOutlineFocusL( TBool aFocus ) { FUNC_LOG; - CESMRField::SetOutlineFocusL ( aFocus ); + CESMRField::SetOutlineFocusL ( aFocus ); + iLabel->SetFocus( aFocus ); //Focus gained if ( aFocus ) @@ -156,17 +183,93 @@ } // --------------------------------------------------------------------------- +// CESMRPriorityField::SizeChanged() +// --------------------------------------------------------------------------- +// +void CESMRPriorityField::SizeChanged() + { + FUNC_LOG; + TRect rect = Rect(); + TAknLayoutRect rowLayoutRect = + NMRLayoutManager::GetFieldRowLayoutRect( rect, 1 ); + rect = rowLayoutRect.Rect(); + + TAknWindowComponentLayout iconLayout = + NMRLayoutManager::GetWindowComponentLayout( + NMRLayoutManager::EMRLayoutTextEditorIcon ); + AknLayoutUtils::LayoutImage( iIcon, rect, iconLayout ); + + TAknLayoutRect bgLayoutRect = + NMRLayoutManager::GetLayoutRect( + rect, NMRLayoutManager::EMRLayoutTextEditorBg ); + TRect bgRect( bgLayoutRect.Rect() ); + // Move focus rect so that it's relative to field's position. + bgRect.Move( -Position() ); + SetFocusRect( bgRect ); + + TAknLayoutText labelLayout = + NMRLayoutManager::GetLayoutText( + rect, NMRLayoutManager::EMRTextLayoutTextEditor ); + iLabel->SetRect( labelLayout.TextRect() ); + } + +// --------------------------------------------------------------------------- +// CESMRPriorityField::CountComponentControls() +// --------------------------------------------------------------------------- +// +TInt CESMRPriorityField::CountComponentControls() const + { + FUNC_LOG; + TInt count( 0 ); + if ( iIcon ) + { + ++count; + } + + if ( iLabel ) + { + ++count; + } + return count; + } + +// --------------------------------------------------------------------------- +// CESMRPriorityField::ComponentControl() +// --------------------------------------------------------------------------- +// +CCoeControl* CESMRPriorityField::ComponentControl( TInt aIndex ) const + { + FUNC_LOG; + switch ( aIndex ) + { + case 0: + return iIcon; + case 1: + return iLabel; + default: + return NULL; + } + } + + + +// --------------------------------------------------------------------------- // CESMRPriorityField::ExecuteGenericCommandL() // --------------------------------------------------------------------------- // -void CESMRPriorityField::ExecuteGenericCommandL( TInt aCommand ) +TBool CESMRPriorityField::ExecuteGenericCommandL( TInt aCommand ) { FUNC_LOG; + TBool isUsed( EFalse ); if( aCommand == EESMRCmdOpenPriorityQuery || aCommand == EAknCmdOpen ) { ExecutePriorityQueryL(); + isUsed = ETrue; + + HandleTactileFeedbackL(); } + return isUsed; } // --------------------------------------------------------------------------- @@ -269,32 +372,6 @@ } // --------------------------------------------------------------------------- -// CESMRPriorityField::CESMRPriorityField -// --------------------------------------------------------------------------- -// -CESMRPriorityField::CESMRPriorityField( ) - { - FUNC_LOG; - //do nothing - } - -// --------------------------------------------------------------------------- -// CESMRPriorityField::ConstructL -// --------------------------------------------------------------------------- -// -void CESMRPriorityField::ConstructL( ) - { - FUNC_LOG; - SetFieldId ( EESMRFieldPriority ); - iPriority = new( ELeave ) CEikLabel(); - _LIT(KEmptyText, ""); - iPriority->SetTextL( KEmptyText ); - - // ownership transferred - CESMRIconField::ConstructL (KAknsIIDQgnFsIndiPriorityNormal, iPriority ); - } - -// --------------------------------------------------------------------------- // CESMRPriorityField::UpdateTextL // --------------------------------------------------------------------------- // @@ -302,56 +379,44 @@ { FUNC_LOG; CESMRPriority* priority = iArray[ aIndex ]; - iPriority->SetTextL ( priority->Text ( ) ); + iLabel->SetTextL ( priority->Text ( ) ); - TAknsItemID iconID = { 0 , 0 }; + NMRBitmapManager::TMRBitmapId bitmapId( + NMRBitmapManager::EMRBitmapPriorityNormal ); switch ( priority->Id() ) { case EFSCalenMRPriorityLow: case EFSCalenTodoPriorityLow: { - iconID = KAknsIIDQgnFsIndiPriorityLow; + bitmapId = NMRBitmapManager::EMRBitmapPriorityLow; break; } case EFSCalenMRPriorityUnknown: case EFSCalenMRPriorityNormal: case EFSCalenTodoPriorityNormal: { - iconID = KAknsIIDQgnFsIndiPriorityNormal; + bitmapId = NMRBitmapManager::EMRBitmapPriorityNormal; break; } case EFSCalenMRPriorityHigh: // same value as EFSCalenTodoPriorityHigh { - iconID = KAknsIIDQgnFsIndiPriorityHigh; + bitmapId = NMRBitmapManager::EMRBitmapPriorityHigh; break; } default: ASSERT(EFalse); break; } - IconL( iconID ); - DrawDeferred ( ); - - // update titlepane priority icon - if ( iObserver ) - { - iObserver->UpdateTitlePanePriorityIconL( priority->Id() ); - } + + delete iIcon; + iIcon = NULL; + iIcon = CMRImage::NewL( bitmapId ); + iIcon->SetParent( this ); - // this is needed to call in order to get new - // icon drawn - CESMRIconField::SizeChanged(); - } - - -// --------------------------------------------------------------------------- -// CESMRPriorityField::UpdateTextL -// --------------------------------------------------------------------------- -// -void CESMRPriorityField::SetTitlePaneObserver( MESMRTitlePaneObserver* aObserver ) - { - iObserver = aObserver; + // This needs to be called so icon will be redrawn + SizeChanged(); + DrawDeferred(); } // EOF