diff -r 1fc85118c3ae -r 870918037e16 landmarksui/uicontrols/src/CLmkEditorFieldBase.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/landmarksui/uicontrols/src/CLmkEditorFieldBase.cpp Wed Sep 01 12:31:27 2010 +0100 @@ -0,0 +1,204 @@ +/* +* Copyright (c) 2002 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: Methods for landmark editor base class. +* +*/ + + + + + + + +// INCLUDE FILES +#include +#include + +#include +#include +#include +#include "LmkConsts.h" +#include "landmarks.hrh" +#include "CLmkUiUtils.h" + +#include "CLmkEditorFieldBase.h" +#include "MLmkEditorUiBuilder.h" + +#include "avkon.loc" + + +// ================= MEMBER FUNCTIONS ======================= + +// ---------------------------------------------------- +// CLmkEditorFieldBase::CLmkEditorFieldBase +// ---------------------------------------------------- +// +CLmkEditorFieldBase::CLmkEditorFieldBase + ( MLmkFieldData& aField, + MLmkEditorUiBuilder& aUiBuilder ) : + iLmkItemField( aField ), iUiBuilder( aUiBuilder ) + { + iEnv = CEikonEnv::Static(); + } + +// ---------------------------------------------------- +// CLmkEditorFieldBase::BaseConstructL +// ---------------------------------------------------- +// +void CLmkEditorFieldBase::BaseConstructL() + { + } + +// ---------------------------------------------------- +// CLmkEditorFieldBase::~CLmkEditorFieldBase +// ---------------------------------------------------- +// +CLmkEditorFieldBase::~CLmkEditorFieldBase() + { + } + +// ---------------------------------------------------- +// CLmkEditorFieldBase::ControlId +// ---------------------------------------------------- +// +TInt CLmkEditorFieldBase::ControlId() const + { + return iLmkItemField.UniqueFieldIdentity(); + } + +// ---------------------------------------------------- +// CLmkEditorFieldBase::FieldId +// ---------------------------------------------------- +// +TInt CLmkEditorFieldBase::FieldId() const + { + return 0; + } + +// ---------------------------------------------------- +// CLmkEditorFieldBase::FieldLabel +// ---------------------------------------------------- +// +TPtrC CLmkEditorFieldBase::FieldLabel() const + { + return iLmkItemField.Label(); + } + +// ---------------------------------------------------- +// CLmkEditorFieldBase::SetFieldLabelL +// ---------------------------------------------------- +// +void CLmkEditorFieldBase::SetFieldLabelL + (HBufC* aLabel) + { + iUiBuilder.SetCurrentLineCaptionL(ControlId(),*aLabel); + } + +// ---------------------------------------------------- +// CLmkEditorFieldBase::ControlTextL +// ---------------------------------------------------- +// +HBufC* CLmkEditorFieldBase::ControlTextL() const + { + HBufC* textBuf = NULL; + CCoeControl* ctrl = iUiBuilder.Control(ControlId()); + if (ctrl) + { + textBuf = static_cast(ctrl)->GetTextInHBufL(); + } + return textBuf; + } + +// ---------------------------------------------------- +// CLmkEditorFieldBase::LandmarkItemField +// ---------------------------------------------------- +// +MLmkFieldData& CLmkEditorFieldBase::LandmarkItemField() const + { + return iLmkItemField; + } + +// ----------------------------------------------------------------------------- +//CLmkEditorFieldBase::GetNumberFieldValue() +// ----------------------------------------------------------------------------- +// +TReal CLmkEditorFieldBase::GetNumberFieldValue() const + { + return 0; + } + +// ----------------------------------------------------------------------------- +//CLmkEditorFieldBase::FieldValue() +// ----------------------------------------------------------------------------- +// +TReal CLmkEditorFieldBase::FieldValue() const + { + return 0; + } +// ----------------------------------------------------------------------------- +//CLmkEditorFieldBase::LoadBitmapToFieldL +// ----------------------------------------------------------------------------- +// +void CLmkEditorFieldBase::LoadBitmapToFieldL + (MLmkEditorUiBuilder& aUiBuilder) + { + // Get the landmark field to which the Icon should be added + MLmkFieldData& nameField = LandmarkItemField(); + + // Implemented only for Name field + if ( nameField.FieldType() == EName ) + { + CEikImage* image = new(ELeave) CEikImage(); + CleanupStack::PushL( image ); + //TFileName defaultIconFile( CLmkUiUtils::LmkUiIconFileL() ); + // No need to add iconFile to cleanupstack since it is a member variable from CLmkFieldData class + HBufC* iconFile = nameField.IconPath(); + TInt err = KErrNotFound; + CFbsBitmap* bitmap = NULL; + CFbsBitmap* mask = NULL; + + if (iconFile) // landmark has a defined icon + { + if ( nameField.IconId() != KErrNotFound ) + { + TRAP(err,AknIconUtils::CreateIconL( bitmap, mask, + *iconFile, nameField.IconId(), + nameField.IconId()+1 );); + } + image->SetPictureOwnedExternally(EFalse); + image->SetPicture(bitmap, mask); + image->CopyControlContextFrom(aUiBuilder.LineControl(ControlId())); + image->SetContainerWindowL(*aUiBuilder.LineControl(ControlId())); + image->SetNonFocusing(); + image->SetBrushStyle(CGraphicsContext::ENullBrush); + + delete aUiBuilder.LineControl(ControlId())->iBitmap; + aUiBuilder.LineControl(ControlId())->iBitmap = image; + + TRect rect = aUiBuilder.LineControl(ControlId())->Rect(); + rect.Resize(-1, -1); + aUiBuilder.LineControl(ControlId())->SetRect(rect); + rect.Resize(1, 1); + aUiBuilder.LineControl(ControlId())->SetRect(rect); + CleanupStack::Pop(image); + } + else + { + CleanupStack::PopAndDestroy(image); + } + + } + } + +// End of File