landmarksui/uicontrols/src/CLmkEditorFieldBase.cpp
branchRCL_3
changeset 18 870918037e16
parent 0 522cd55cc3d7
--- /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 <eikcapc.h>
+#include <eikimage.h>
+
+#include <AknIconUtils.h>
+#include <eikedwin.h>
+#include <eikenv.h>
+#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<CEikEdwin*>(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