diff -r 000000000000 -r e686773b3f54 phonebookui/Phonebook2/UIControls/src/CPbk2ContactEditorUIFieldBase.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phonebookui/Phonebook2/UIControls/src/CPbk2ContactEditorUIFieldBase.cpp Tue Feb 02 10:12:17 2010 +0200 @@ -0,0 +1,187 @@ +/* +* Copyright (c) 2005-2007 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" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Phonebook 2 contact editor dialog UI base field. +* +*/ + +#include "CPbk2ContactEditorUIFieldBase.h" +#include "MPbk2ContactEditorUiBuilder.h" +#include "MPbk2UIField.h" +#include +#include +#include + + + +// System includes +#include +#include +#include + +// ----------------------------------------------------------------------------- +// CPbk2ContactEditorUIFieldBase::CPbk2ContactEditorUIFieldBase +// ----------------------------------------------------------------------------- +// +EXPORT_C CPbk2ContactEditorUIFieldBase::CPbk2ContactEditorUIFieldBase + ( MPbk2UIField* aField, + MPbk2ContactEditorUiBuilder& aUiBuilder, + CPbk2IconInfoContainer& aIconInfoContainer, + TInt aCustomPosition ) : + iField(aField), + iUiBuilder( aUiBuilder ), + iIconInfoContainer( aIconInfoContainer ), + iCustomPosition( aCustomPosition ) + { + } + +// ----------------------------------------------------------------------------- +// CPbk2ContactEditorUIFieldBase::~CPbk2ContactEditorUIFieldBase +// ----------------------------------------------------------------------------- +// +EXPORT_C CPbk2ContactEditorUIFieldBase::~CPbk2ContactEditorUIFieldBase() + { + iLebel.Close(); + iText.Close(); + delete iField; + } + +// ----------------------------------------------------------------------------- +// CPbk2ContactEditorUIFieldBase::ControlId +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CPbk2ContactEditorUIFieldBase::ControlId() + { + return ( TInt ) this; + } + +// ----------------------------------------------------------------------------- +// CPbk2ContactEditorUIFieldBase::UIField +// ----------------------------------------------------------------------------- +// +EXPORT_C MPbk2UIField* CPbk2ContactEditorUIFieldBase::UIField() const + { + return iField; + } + +// ----------------------------------------------------------------------------- +// CPbk2ContactEditorUIFieldBase::HandleCustomFieldCommandL +// ----------------------------------------------------------------------------- +// +EXPORT_C TBool CPbk2ContactEditorUIFieldBase::HandleCustomFieldCommandL(TInt /*aCommand*/ ) + { + return EFalse; + } + +// ----------------------------------------------------------------------------- +// CPbk2ContactEditorUIFieldBase::FieldLabel +// ----------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CPbk2ContactEditorUIFieldBase::FieldLabel() const + { + return iLebel; + } + +// ----------------------------------------------------------------------------- +// CPbk2ContactEditorUIFieldBase::SetFieldLabelL +// ----------------------------------------------------------------------------- +// +EXPORT_C void CPbk2ContactEditorUIFieldBase::SetFieldLabelL( const TDesC& aLabel ) + { + iUiBuilder.SetCurrentLineCaptionL( aLabel ); + iLebel.Close(); + iLebel.Create(aLabel.Length()); + iLebel = aLabel; + } + +// ----------------------------------------------------------------------------- +// CPbk2ContactEditorUIFieldBase::ControlTextL +// ----------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CPbk2ContactEditorUIFieldBase::ControlText() const + { + return iText; + } + + +// ----------------------------------------------------------------------------- +// CPbk2ContactEditorUIFieldBase::SetFocus +// ----------------------------------------------------------------------------- +// +EXPORT_C void CPbk2ContactEditorUIFieldBase::SetFocus() + { + // It's not fatal if focusing fails + TRAP_IGNORE( iUiBuilder.TryChangeFocusL( ControlId() ) ); + } + +// ----------------------------------------------------------------------------- +// CPbk2ContactEditorUIFieldBase::ConsumesKeyEvent +// ----------------------------------------------------------------------------- +// +EXPORT_C TBool CPbk2ContactEditorUIFieldBase::ConsumesKeyEvent + ( const TKeyEvent& aKeyEvent, TEventCode aType ) + { + TBool ret(EFalse); + + if( aKeyEvent.iScanCode == EStdKeyDevice3 ) + { + if( aType == EEventKeyDown ) + { + iStdKeyDevice3Down = ETrue; + ret = ETrue; + } + else if ( aType == EEventKeyUp ) + { + if ( iStdKeyDevice3Down == (TInt)ETrue ) + { + ret = HandleCustomFieldCommandL( EPbk2CmdEditorHandleCustomSelect ); + } + iStdKeyDevice3Down = EFalse; + } + } + return ret; + } + +// -------------------------------------------------------------------------- +// CPbk2ContactEditorUIFieldBase::LoadBitmapToFieldL +// -------------------------------------------------------------------------- +// +EXPORT_C void CPbk2ContactEditorUIFieldBase::LoadBitmapToFieldL + ( const TPbk2IconId& aIconId ) + { + CPbk2IconFactory* factory = CPbk2IconFactory::NewLC( iIconInfoContainer ); + CEikImage* image = factory->CreateImageLC( aIconId ); + + if ( image ) + { + image->SetPictureOwnedExternally( EFalse ); + image->CopyControlContextFrom( iUiBuilder.LineControl( ControlId() ) ); + image->SetContainerWindowL( *(iUiBuilder.LineControl( ControlId() )) ); + image->SetNonFocusing(); + image->SetBrushStyle( CGraphicsContext::ENullBrush ); + + delete iUiBuilder.LineControl( ControlId() )->iBitmap; + iUiBuilder.LineControl( ControlId() )->iBitmap = image; + CleanupStack::Pop( image ); + + TRect rect = iUiBuilder.LineControl( ControlId() )->Rect(); + rect.Resize( -1, -1 ); + iUiBuilder.LineControl( ControlId() )->SetRect( rect ); + rect.Resize( 1, 1 ); + iUiBuilder.LineControl( ControlId() )->SetRect( rect ); + } + + CleanupStack::PopAndDestroy( factory ); + } + +// End of File