--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrbooleanfield.cpp Mon Mar 15 12:39:10 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,301 +0,0 @@
-/*
-* Copyright (c) 2007-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"
-* 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: ESMR boolean field implementation
-*
-*/
-
-#include "emailtrace.h"
-#include "cesmrbooleanfield.h"
-
-#include <eiklabel.h>
-#include <StringLoader.h>
-#include <avkon.hrh>
-#include <esmrgui.rsg>
-#include <AknUtils.h>
-#include "mesmrcalentry.h"
-#include "mesmrlistobserver.h"
-#include "mesmrfieldvalidator.h"
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CESMRBooleanField::NewL
-// ---------------------------------------------------------------------------
-//
-CESMRBooleanField* CESMRBooleanField::NewL( MESMRFieldValidator* aValidator )
- {
- FUNC_LOG;
- CESMRBooleanField* self = new (ELeave) CESMRBooleanField( aValidator );
- CleanupStack::PushL ( self );
- self->ConstructL ( );
- CleanupStack::Pop ( self );
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CESMRBooleanField::~CESMRBooleanField
-// ---------------------------------------------------------------------------
-//
-CESMRBooleanField::~CESMRBooleanField( )
- {
- FUNC_LOG;
- //do nothing
- }
-
-// ---------------------------------------------------------------------------
-// CESMRBooleanField::InitializeL
-// ---------------------------------------------------------------------------
-//
-void CESMRBooleanField::InitializeL()
- {
- FUNC_LOG;
- iLabel->SetFont ( iLayout->Font (iCoeEnv, iFieldId ) );
- iLabel->SetLabelAlignment (CESMRLayoutManager::IsMirrored ( ) ? ELayoutAlignRight
- : ELayoutAlignLeft );
- AknLayoutUtils::OverrideControlColorL ( *iLabel,
- EColorLabelText,
- iLayout->GeneralListAreaTextColor() );
- }
-
-// ---------------------------------------------------------------------------
-// CESMRBooleanField::InternalizeL
-// ---------------------------------------------------------------------------
-//
-void CESMRBooleanField::InternalizeL( MESMRCalEntry& aEntry )
- {
- FUNC_LOG;
- if (aEntry.IsStoredL ( ) ) // entry is already stored in db
- {
- MESMRCalEntry::TESMRAlarmType alarmType;
- TTime alarmTime;
- aEntry.GetAlarmL (alarmType, alarmTime );
-
- switch (alarmType )
- {
- //flow through
- case MESMRCalEntry::EESMRAlarmAbsolute:
- case MESMRCalEntry::EESMRAlarmRelative: // Show alarm as - ON
- {
- iStatus = ETrue;
- }
- break;
- //flow through
- case MESMRCalEntry::EESMRAlarmNotFound:
- default: // Show alarm as - OFF
- {
- iStatus = EFalse;
- }
- break;
- }
- }
- else // This is a new entry and default implementation is required
- {
- switch (aEntry.Type ( ) )
- {
- case MESMRCalEntry::EESMRCalEntryTodo: // To-do
- {
- TTime alarmTime;
- MESMRCalEntry::TESMRAlarmType alarmType;
- aEntry.GetAlarmL (alarmType, alarmTime );
-
- // Change status to "ON" if alarm has been set by default
- iStatus = alarmType != MESMRCalEntry::EESMRAlarmNotFound;
- }
- break;
- // Flow through
- case MESMRCalEntry::EESMRCalEntryMeetingRequest: // Meeting request
- case MESMRCalEntry::EESMRCalEntryMeeting: // Meeting
- {
- iStatus = ETrue;// Change the status to "ON" for these dialog default
- }
- break;
-
- case MESMRCalEntry::EESMRCalEntryAnniversary: // Anniversary
- {
- iStatus = ETrue;// Change the status to "ON" for these dialog default
- }
- break;
- // Flow through
- case MESMRCalEntry::EESMRCalEntryMemo: // Memo
- case MESMRCalEntry::EESMRCalEntryReminder: // Reminder
-
- default:
- iStatus = EFalse; // Change the status to "OFF" for these dialog default
- break;
- }
- }
- ResetFieldL ( );
- }
-
-// ---------------------------------------------------------------------------
-// CESMRBooleanField::OfferKeyEventL
-// ---------------------------------------------------------------------------
-//
-TKeyResponse CESMRBooleanField::OfferKeyEventL(const TKeyEvent& aEvent,
- TEventCode aType )
- {
- FUNC_LOG;
- TKeyResponse response( EKeyWasNotConsumed);
- if ( aType == EEventKey )
- {
- switch ( aEvent.iScanCode )
- {
- // Flowthrough, doesn't matter which key was pressed since
- // the value is always changes from "off" to "on" or vice versus.
- case EStdKeyDevice3: // selection key
- case EStdKeyLeftArrow:
- case EStdKeyRightArrow:
- iStatus = !iStatus; // change status
- ResetFieldL ( );
- response = EKeyWasConsumed;
- break;
-
- default:
- break;
- }
- }
- return response;
- }
-
-
-// ---------------------------------------------------------------------------
-// CESMRBooleanField::SetOutlineFocusL
-// ---------------------------------------------------------------------------
-//
-void CESMRBooleanField::SetOutlineFocusL( TBool aFocus )
- {
- FUNC_LOG;
- CESMRField::SetOutlineFocusL( aFocus );
-
- if (aFocus) //Focus is gained on the field
- {
- if (iStatus)
- {
- ChangeMiddleSoftKeyL(EESMRCmdAlarmOff,R_QTN_MEET_REQ_ALARM_OFF); //R_TEXT_SOFTKEY_OFF
- }
- else
- {
- ChangeMiddleSoftKeyL(EESMRCmdAlarmOn,R_QTN_MEET_REQ_ALARM_ON); //R_TEXT_SOFTKEY_ON
- }
- }
- }
-
-// ---------------------------------------------------------------------------
-// CESMRBooleanField::MakeVisible
-// ---------------------------------------------------------------------------
-//
-void CESMRBooleanField::MakeVisible(TBool aVisible )
- {
- FUNC_LOG;
- CCoeControl::MakeVisible (aVisible );
- if ( iObserver )
- {
- TRAP_IGNORE(ResetFieldL ( ) );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CESMRBooleanField::ExecuteGenericCommandL()
-// ---------------------------------------------------------------------------
-//
-void CESMRBooleanField::ExecuteGenericCommandL( TInt aCommand )
- {
- FUNC_LOG;
- if( aCommand == EESMRCmdAlarmOn || aCommand == EESMRCmdAlarmOff )
- {
- SwitchMiddleSoftKeyL();
- }
- }
-
-// ---------------------------------------------------------------------------
-// CESMRBooleanField::SwitchMiddleSoftKeyL
-// ---------------------------------------------------------------------------
-//
-void CESMRBooleanField::SwitchMiddleSoftKeyL()
- {
- FUNC_LOG;
- iStatus = !iStatus; // change status
- ResetFieldL ( );
- if (iStatus)
- {
- ChangeMiddleSoftKeyL(EESMRCmdAlarmOff,R_QTN_MEET_REQ_ALARM_OFF);
- }
- else
- {
- ChangeMiddleSoftKeyL(EESMRCmdAlarmOn,R_QTN_MEET_REQ_ALARM_ON);
- }
- }
-
-// ---------------------------------------------------------------------------
-// CESMRBooleanField::CESMRBooleanField
-// ---------------------------------------------------------------------------
-//
-CESMRBooleanField::CESMRBooleanField( MESMRFieldValidator* aValidator ) :
- iValidator( aValidator)
- {
- FUNC_LOG;
- iStatus = ETrue;
- }
-
-// ---------------------------------------------------------------------------
-// CESMRBooleanField::ConstructL
-// ---------------------------------------------------------------------------
-//
-void CESMRBooleanField::ConstructL( )
- {
- FUNC_LOG;
- _LIT(KEmptyText, "" );
- SetFieldId ( EESMRFieldAlarmOnOff );
- iLabel = new (ELeave) CEikLabel();
- iLabel->SetTextL (KEmptyText );
-
- CESMRIconField::ConstructL (KAknsIIDQgnMeetReqIndiAlarm, iLabel );
- }
-
-// ---------------------------------------------------------------------------
-// CESMRBooleanField::ResetFieldL
-// ---------------------------------------------------------------------------
-//
-void CESMRBooleanField::ResetFieldL( )
- {
- FUNC_LOG;
- iValidator->SetAlarmOnOffL( iStatus );
-
- HBufC* buf = StringLoader::LoadLC ( iStatus ?
- R_QTN_MEET_REQ_ALARM_ON :
- R_QTN_MEET_REQ_ALARM_OFF );
-
- iLabel->SetTextL ( *buf );
- CleanupStack::PopAndDestroy ( buf );
-
- // if status on 'on', add time and date fields for
- // all day event alert, otherwise remove them.
- // if this field is not visible -> alldayevent not set
- // let's not show the date and time fields either.
- if ( iStatus && IsVisible ( ) )
- {
- iObserver->InsertControl ( EESMRFieldAlarmTime );
- iObserver->InsertControl ( EESMRFieldAlarmDate );
- }
- else
- {
- iObserver->RemoveControl ( EESMRFieldAlarmTime );
- iObserver->RemoveControl ( EESMRFieldAlarmDate );
- }
-
- iLabel->DrawDeferred ( );
- }
-
-// EOF
-