--- a/landmarksui/uicontrols/src/CLmkEditorNumberField.cpp Thu Aug 19 09:48:36 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,417 +0,0 @@
-/*
-* 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 number field.
-*
-*/
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include "CLmkEditorNumberField.h"
-#include "MLmkEditorUiBuilder.h"
-#include "LmkConsts.h"
-#include "landmarks.hrh"
-#include <eikcapc.h>
-#include <e32math.h>
-#include <aknuniteditor.h>
-#include <barsread.h>
-#include <lmkui.rsg>
-#include "clmkcentralrepository.h"
-#include <locnotprefplugindomaincrkeys.h>
-#include <centralrepository.h>
-#include <CLmkEditorDlg.h>
-
-//================== CONSTANTS===============================
-const TReal KFootToMeterFraction = 0.3048;
-// ================= MEMBER FUNCTIONS =======================
-
-// ----------------------------------------------------
-// CLmkEditorNumberField::CLmkEditorNumberField
-// ----------------------------------------------------
-//
-CLmkEditorNumberField::CLmkEditorNumberField
- ( MLmkFieldData& aField,
- MLmkEditorUiBuilder& aUiBuilder ) :
- CLmkEditorFieldBase( aField, aUiBuilder )
- {
- }
-
-// ----------------------------------------------------
-// CLmkEditorNumberField::ConstructL
-// ----------------------------------------------------
-//
-void CLmkEditorNumberField::ConstructL()
- {
- iRepository = CLmkCentralRepository::NewL();
- CreateAvkonUnitEditorL();
- iCaptionedCtrl = iUiBuilder.LineControl( ControlId() );
- iCaptionedCtrl->SetTakesEnterKey( ETrue );
- }
-
-// ----------------------------------------------------
-// CLmkEditorNumberField::NewL
-// ----------------------------------------------------
-//
-CLmkEditorNumberField* CLmkEditorNumberField::NewL
- ( MLmkFieldData& aField,
- MLmkEditorUiBuilder& aUiBuilder )
- {
- CLmkEditorNumberField* self =
- new(ELeave) CLmkEditorNumberField( aField, aUiBuilder );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// ----------------------------------------------------
-// CLmkEditorNumberField::~CLmkEditorNumberField
-// ----------------------------------------------------
-//
-CLmkEditorNumberField::~CLmkEditorNumberField()
- {
- delete iRepository;
- }
-
-// ----------------------------------------------------
-// CLmkEditorNumberField::SaveFieldL
-// ----------------------------------------------------
-//
-TBool CLmkEditorNumberField::SaveFieldL()
- {
- TBool result = EFalse;
- TReal32 oldData = LandmarkItemField().FloatData();
- TReal32 currData = iControl->Value();
- if( oldData != currData)
- {
- if (!IsSystemUnitMetric())
- {
- if (LandmarkItemField().FieldType() == EPositionAccuracy
- || LandmarkItemField().FieldType() == EAltitudeAccuracy)
- {
- if (currData < (KMinAccuracy / KFootToMeterFraction))
- {
- currData = (KMinAccuracy / KFootToMeterFraction);
- }
- else if (currData > (KMaxAccuracy / KFootToMeterFraction))
- {
- currData = (KMaxAccuracy / KFootToMeterFraction);
- }
- }
- else if (LandmarkItemField().FieldType() == EAltitude)
- {
- if (currData < (KMinAltitude / KFootToMeterFraction))
- {
- currData = (KMinAltitude / KFootToMeterFraction);
- }
- else if (currData > (KMaxAltitude / KFootToMeterFraction))
- {
- currData = (KMaxAltitude / KFootToMeterFraction);
- }
- }
-
- ConvertFromFootToMeters(currData);
- }
- else
- {
- if (LandmarkItemField().FieldType() == EPositionAccuracy
- || LandmarkItemField().FieldType() == EAltitudeAccuracy)
- {
- if (currData < KMinAccuracy)
- {
- currData = KMinAccuracy;
- }
- else if (currData > KMaxAccuracy)
- {
- currData = KMaxAccuracy;
- }
- }
-
- else if (LandmarkItemField().FieldType() == EAltitude)
- {
- if (currData < KMinAltitude)
- {
- currData = KMinAltitude;
- }
- else if (currData > KMaxAltitude)
- {
- currData = KMaxAltitude;
- }
- }
- }
-
- LandmarkItemField().SetTReal(currData);
- result = ETrue;
- }
- return result;
- }
-
-// ----------------------------------------------------
-// CLmkEditorNumberField::ActivateL
-// ----------------------------------------------------
-//
-void CLmkEditorNumberField::ActivateL()
- {
- iCaptionedCtrl->ActivateL();
- }
-
-// ----------------------------------------------------
-// CLmkEditorNumberField::UpdateL
-// ----------------------------------------------------
-//
-void CLmkEditorNumberField::UpdateL()
- {
- TReal32 fieldData = LandmarkItemField().FloatData();
- TReal32 dispData = fieldData;
- if( fieldData == iDbData)
- {
- dispData = iConvertedData;
- }
- else
- {
- if( !IsSystemUnitMetric())
- {
- //Imperial
- iDbData = fieldData;
- ConvertFromMetersToFoot( fieldData);
- iConvertedData = fieldData;
- dispData = iConvertedData;
- }
- }
-
- ResolveUnitL();
- iControl->SetValue( dispData );
- }
-
-// ----------------------------------------------------
-// CLmkEditorNumberField::CreateAvkonUnitEditorL
-// ----------------------------------------------------
-//
-void CLmkEditorNumberField::CreateAvkonUnitEditorL()
- {
- // Create Distance editor using AVKON's unit editor
- // and insert a line in the dialog
- iControl = static_cast<CAknUnitEditor*>( iUiBuilder.CreateLineL(
- FieldLabel(), LandmarkItemField().UniqueFieldIdentity(),
- EAknCtUnitEditor ) );
-
-
-
- // Obtain the current system of measurement
- TInt sysOfMeasurement = EAknUnitEditorMeter;
- if( !IsSystemUnitMetric())
- {
- sysOfMeasurement = EAknUnitEditorFoot;
- }
-
- //read control from resource file.
- TResourceReader reader;
- if( sysOfMeasurement == EAknUnitEditorMeter)
- {
- iEnv->CreateResourceReaderLC(reader, R_LMK_UNIT_EDITOR_METRIC);
- }
- else
- {
- iEnv->CreateResourceReaderLC(reader, R_LMK_UNIT_EDITOR_IMPERIAL);
- }
-
- iControl->ConstructFromResourceL(reader);
- CleanupStack::PopAndDestroy(); //reader
- ResolveUnitL();
-
- /*
- if ( LandmarkItemField().FieldType() == EPositionAccuracy ||
- LandmarkItemField().FieldType() == EAltitudeAccuracy )
- {
- if( EAknUnitEditorMeter == sysOfMeasurement )
- {
- iControl->SetMinimumAndMaximum(KMinAccuracy, KMaxAccuracy);
- }
- else
- {
- iControl->SetMinimumAndMaximum( KMinAccuracy / KFootToMeterFraction,
- KMaxAccuracy / KFootToMeterFraction );
- }
-
- }
- else if ( LandmarkItemField().FieldType() == EAltitude )
- {
- if( EAknUnitEditorMeter == sysOfMeasurement )
- {
- iControl->SetMinimumAndMaximum( KMinAltitude, KMaxAltitude );
- }
- else
- {
- iControl->SetMinimumAndMaximum( KMinAltitude / KFootToMeterFraction,
- KMaxAltitude / KFootToMeterFraction );
- }
- }
- */
-
- TReal32 fieldData = LandmarkItemField().FloatData();
- iDbData = fieldData;
- iConvertedData = fieldData;
-
- if( EAknUnitEditorFoot == sysOfMeasurement )
- {
- //Imperial
- ConvertFromMetersToFoot( fieldData);
- iConvertedData = fieldData;
- }
- iControl->SetValue(iConvertedData);
- }
-
-// -----------------------------------------------------------------------------
-//CLmkEditorNumberField::FieldValue()
-// -----------------------------------------------------------------------------
-//
-TReal CLmkEditorNumberField::FieldValue() const
- {
- return iControl->Value();
- }
-
-// -----------------------------------------------------------------------------
-//CLmkEditorNumberField::ResolveUnitL()
-// -----------------------------------------------------------------------------
-//
-void CLmkEditorNumberField::ResolveUnitL()
- {
- TReal fieldData = LandmarkItemField().FloatData();
-
- if( IsSystemUnitMetric())
- {
- TInt fieldUnit = EAknUnitEditorMeter;
- iControl->SetUnitL( fieldUnit );
- }
- else
- {
- TInt fieldUnit = EAknUnitEditorFoot;
- iControl->SetUnitL( fieldUnit );
- }
- }
-
-// -----------------------------------------------------------------------------
-//CLmkEditorNumberField::ConvertFromFootToMeters()
-// -----------------------------------------------------------------------------
-//
-void CLmkEditorNumberField::ConvertFromFootToMeters(TReal32& aValue)
- {
-
- aValue *= KFootToMeterFraction;
-
- }
-
-// -----------------------------------------------------------------------------
-//CLmkEditorNumberField::ConvertFromMetersToFoot()
-// -----------------------------------------------------------------------------
-//
-void CLmkEditorNumberField::ConvertFromMetersToFoot(TReal32& aValue)
- {
-
- aValue /= KFootToMeterFraction;
-
- }
-
-// -----------------------------------------------------------------------------
-//CLmkEditorNumberField::IsSystemUnitMetric()
-// -----------------------------------------------------------------------------
-//
-TBool CLmkEditorNumberField::IsSystemUnitMetric()
- {
- TBool result = EFalse;
- TInt keyValue;
- TInt err = iRepository->GetKeyValue( KLocSystemofMeasurements, keyValue );
- if( keyValue == EUnitsMetric )
- {
- result = ETrue;
- }
- return result;
- }
-
-
-// -----------------------------------------------------------------------------
-//CLmkEditorNumberField::HandleUnitChangeL()
-// -----------------------------------------------------------------------------
-//
-void CLmkEditorNumberField::HandleUnitChangeL()
- {
- // Obtain the current system of measurement
- TInt sysOfMeasurement = EAknUnitEditorMeter;
- if( !IsSystemUnitMetric())
- {
- sysOfMeasurement = EAknUnitEditorFoot;
- }
-
- TReal32 controlData = iControl->Value();
- if( controlData != iConvertedData)
- {
- iConvertedData = controlData;
- }
-
- if( EAknUnitEditorMeter == sysOfMeasurement )
- {
-
- //Imperial to metric
- ConvertFromFootToMeters( iConvertedData );
- }
- else
- {
- //metric to imperial
- ConvertFromMetersToFoot( iConvertedData );
- }
-
- if ( LandmarkItemField().FieldType() == EPositionAccuracy ||
- LandmarkItemField().FieldType() == EAltitudeAccuracy )
- {
- if( EAknUnitEditorMeter == sysOfMeasurement )
- {
- iControl->SetMinimumAndMaximum(KMinAccuracy, KMaxAccuracy);
- }
- else
- {
- iControl->SetMinimumAndMaximum( KMinAccuracy / KFootToMeterFraction,
- KMaxAccuracy / KFootToMeterFraction );
- }
- }
- else if ( LandmarkItemField().FieldType() == EAltitude )
- {
- if( EAknUnitEditorMeter == sysOfMeasurement )
- {
- iControl->SetMinimumAndMaximum( KMinAltitude, KMaxAltitude );
- }
- else
- {
- iControl->SetMinimumAndMaximum( KMinAltitude / KFootToMeterFraction,
- KMaxAltitude / KFootToMeterFraction );
- }
- }
- ResolveUnitL();
- iControl->SetValue( iConvertedData );
- }
-
-// -----------------------------------------------------------------------------
-//CLmkEditorFieldBase::ResetL()
-// -----------------------------------------------------------------------------
-//
-void CLmkEditorNumberField::ResetL()
- {
- TRealX temp;
- temp.SetNaN();
- iControl->SetValue(temp);
- }
-// End of File