diff -r 000000000000 -r f979ecb2b13e clock2/clockui/uilayer/clockmainview/src/clockmainview.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/clock2/clockui/uilayer/clockmainview/src/clockmainview.cpp Tue Feb 02 10:12:19 2010 +0200 @@ -0,0 +1,883 @@ +/* +* Copyright (c) 2008 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: This is the source file for the CClockMainView class. +* +*/ + +// System includes +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// User includes +#include "clockmainview.h" +#include "clockmaincontainer.h" +#include "clockalarmarray.h" +#include "clockappui.h" +#include "clockdocument.h" +#include "clock.h" +#include "clock.hrh" +#include "clkuialarmmodel.h" +#include "clkuialarmidleobserver.h" +#include "clkcommon.h" +#include "clock_debug.h" + +// Constants + +// Literals + +// --------------------------------------------------------- +// CClockMainView::NewL +// rest of the details are commented in the header +// --------------------------------------------------------- +// +CClockMainView* CClockMainView::NewL( CClkUiAlarmModel* aAlarmModel ) + { + __PRINTS( "CClockMainView::NewL - Entry" ); + + CClockMainView* self = new ( ELeave ) CClockMainView; + CleanupStack::PushL( self ); + + self->ConstructL( aAlarmModel ); + + CleanupStack::Pop( self ); + + __PRINTS( "CClockMainView::NewL - Exit" ); + + return self; + } + +// --------------------------------------------------------- +// CClockMainView::ConstructL +// rest of the details are commented in the header +// --------------------------------------------------------- +// +void CClockMainView::ConstructL( CClkUiAlarmModel* aAlarmModel ) + { + __PRINTS( "CClockMainView::ConstructL - Entry" ); + + BaseConstructL( R_CLOCK_MAIN_VIEW ); + + // Save the model. + iAlarmModel = aAlarmModel; + + // Construct the alarm array. + iAlarmArray = CClockAlarmArray::NewL( iAlarmModel, iCoeEnv ); + + if( !iModelObserver ) + { + iModelObserver = CClkUiAlarmIdleObserver::NewL( this, KAlarmIdleObserverPriority ); + // Set the observer for the model. + iAlarmModel->SetModelObserver( iModelObserver ); + } + + __PRINTS( "CClockMainView::ConstructL - Exit" ); + } + +// --------------------------------------------------------- +// CClockMainView::CClockMainView +// rest of the details are commented in the header +// --------------------------------------------------------- +// +//Single click integration +CClockMainView::CClockMainView() + + { + __PRINTS( "CClockMainView::CClockMainView - Entry" ); + + // No implementation yet. + + __PRINTS( "CClockMainView::CClockMainView - Exit" ); + } + +// --------------------------------------------------------- +// CClockMainView::SetNewAlarmL +// rest of the details are commented in the header +// --------------------------------------------------------- +// +void CClockMainView::SetNewAlarmL() + { + __PRINTS( "CClockMainView::SetNewAlarmL - Entry" ); + + // Hide the navigation pane. + CClockAppUi* appUi = static_cast< CClockAppUi* > ( AppUi() ); + appUi->MakeNavigationPaneVisible( EFalse, EClockAppMainViewId ); + + // Mark the alarm editor as open. + iAlarmEditorOpen = ETrue; + + // Construct the alarm editor. + CClockAlarmEditor *alarmEditor = CClockAlarmEditor::NewL(); + + // Launch the editor. iAlarmId will give either alarm ID + // or EClockAlarmExit or EClockAlarmDelete. + iAlarmId = alarmEditor->LaunchL(); + + // Update the title pane text. + static_cast< CClockAppUi* > ( AppUi() )->SetTitlePaneTextL( R_CLOCK_TITLE_MAIN_VIEW ); + + // Show the navigation pane again. + appUi->MakeNavigationPaneVisible( ETrue, EClockAppMainViewId ); + + if( EClockAlarmExit == iAlarmId ) + { + // Mark the alarm editor as closed. + iAlarmEditorOpen = EFalse; + + // Cleanup. + if( alarmEditor ) + { + delete alarmEditor; + alarmEditor = NULL; + } + + + // Let the appui handle the exit. + AppUi()->HandleCommandL( EClockAlarmExit ); + + __PRINTS( "CClockMainView::SetNewAlarmL:EClockAlarmExit - Exit" ); + + return; + } + + if( EClockAlarmDelete == iAlarmId ) + { + + // Mark the alarm editor as closed. + iAlarmEditorOpen = EFalse; + + // Cleanup. + if( alarmEditor ) + { + delete alarmEditor; + alarmEditor = NULL; + } + + // Do nothing. Just close the form without saving any data. + __PRINTS( "CClockMainView::SetNewAlarmL:EClockAlarmDelete - Exit" ); + + return; + } + + // If the user pressed cancel and if the alarm id is valid. + if( KErrNone != iAlarmId ) + { + // Update the latest alarm details. + iAlarmModel->ClockAlarmInfo( iAlarmId, iAlarmInfo ); + + // First update the model with the latest alarm id. + iAlarmModel->SaveLatestAlarmId( iAlarmId ); + + // Update the container with the newly added alarm. + iContainer->UpdateAlarmListL( iAlarmInfo, iAlarmId ); + + + } + else + { + // No implementation yet. + } + + // Mark the alarm editor as closed. + iAlarmEditorOpen = EFalse; + + // Cleanup. + if( alarmEditor ) + { + delete alarmEditor; + alarmEditor = NULL; + } + + + __PRINTS( "CClockMainView::SetNewAlarmL - Exit" ); + } + +// --------------------------------------------------------- +// CClockMainView::RemoveAlarmL +// rest of the details are commented in the header +// --------------------------------------------------------- +// +void CClockMainView::RemoveAlarmL() + { + __PRINTS( "CClockMainView::RemoveAlarmL - Entry" ); + + // First get the index of the selected item in the list. + TInt itemIndex( iContainer->ListBox()->CurrentItemIndex() ); + + if( KErrNone >= itemIndex ) + { + __PRINTS( "CClockMainView::RemoveAlarmL - Exit" ); + + return; + } + + + SClkAlarmInfo alarmInfo; + TAlarmId alarmId; + // Get the alarm id from alarm model. + iAlarmArray->GetSortedAlmIdInfo( itemIndex, alarmId, alarmInfo ); + + // Delete the alarm. + User::LeaveIfError( iAlarmModel->DeleteClockAlarm( alarmId ) ); + + // Display the confirmation note to the user about alarm deletion. + CAknConfirmationNote* confNote = new( ELeave ) CAknConfirmationNote; + HBufC* confNoteText = StringLoader::LoadLC( R_QTN_CLOCK_ALARM_NOTE_DELETED, iCoeEnv ); + // Display the note. + confNote->ExecuteLD( *confNoteText ); + // Cleanup. + CleanupStack::PopAndDestroy( confNoteText ); + + // Update the container. + iContainer->RemoveAlarmL( itemIndex ); + + + + + + __PRINTS( "CClockMainView::RemoveAlarmL - Exit" ); + } + +// --------------------------------------------------------- +// CClockMainView::ActivateAlarmL +// rest of the details are commented in the header +// --------------------------------------------------------- +// +void CClockMainView::ActivateAlarmL() + { + __PRINTS( "CClockMainView::ActivateAlarmL - Entry" ); + + // First get the focused list item. + TInt itemIndex( iContainer->ListBox()->CurrentItemIndex() ); + // Id of the alarm to be activated. + TAlarmId alarmId; + // Dummy alarm info. + SClkAlarmInfo alarmInfo; + + // Get the id of the alarm at the index in the list. + iAlarmArray->GetSortedAlmIdInfo( itemIndex, alarmId, alarmInfo ); + + // Activate the alarm. + User::LeaveIfError( iAlarmModel->ClockAlarmEnable( alarmId, EAlarmStatusEnabled ) ); + // Update the listbox. + iContainer->ListBox()->SetCurrentItemIndexAndDraw( iAlarmArray->ListBoxIndex( alarmId ) ); + + __PRINTS( "CClockMainView::ActivateAlarmL - Exit" ); + } + +// --------------------------------------------------------- +// CClockMainView::DeactivateAlarmL +// rest of the details are commented in the header +// --------------------------------------------------------- +// +void CClockMainView::DeactivateAlarmL() + { + __PRINTS( "CClockMainView::DeactivateAlarmL - Entry" ); + + // First get the focused list item. + TInt itemIndex( iContainer->ListBox()->CurrentItemIndex() ); + // Id of the alarm to be deactivated. + TAlarmId alarmId; + // Dummy alarm info. + SClkAlarmInfo alarmInfo; + + // Get the id of the alarm at the index in the list. + iAlarmArray->GetSortedAlmIdInfo( itemIndex, alarmId, alarmInfo ); + + // Deactivate the alarm. + User::LeaveIfError( iAlarmModel->ClockAlarmEnable( alarmId, EAlarmStatusDisabled ) ); + // Update the listbox. + iContainer->ListBox()->SetCurrentItemIndexAndDraw( iAlarmArray->ListBoxIndex( alarmId ) ); + + __PRINTS( "CClockMainView::DeactivateAlarmL - Exit" ); + } + +// --------------------------------------------------------- +// CClockMainView::ResetAlarmL +// rest of the details are commented in the header +// --------------------------------------------------------- +// +void CClockMainView::ResetAlarmL() + { + __PRINTS( "CClockMainView::ResetAlarmL - Entry" ); + + // First get the focused list item. + TInt itemIndex( iContainer->ListBox()->CurrentItemIndex() ); + // Id of the alarm to be deactivated. + TAlarmId alarmId; + // Dummy alarm info. + SClkAlarmInfo alarmInfo; + + // Get the id of the alarm at the index in the list. + iAlarmArray->GetSortedAlmIdInfo( itemIndex, alarmId, alarmInfo ); + + // Hide the navigation pane. + CClockAppUi* appUi = static_cast< CClockAppUi* > ( AppUi() ); + appUi->MakeNavigationPaneVisible( EFalse, EClockAppMainViewId ); + + // Mark the alarm editor as open. + iAlarmEditorOpen = ETrue; + + // Construct the alarm editor. + CClockAlarmEditor* alarmEditor = CClockAlarmEditor::NewL( alarmId ); + + // Launch the editor.iAlarmId will give either alarm ID + // or EClockAlarmExit or EClockAlarmDelete. + iAlarmId = alarmEditor->LaunchL(); + + // Update the title pane text. + static_cast< CClockAppUi* > ( AppUi() )->SetTitlePaneTextL( R_CLOCK_TITLE_MAIN_VIEW ); + + // Show the navigation pane again. + appUi->MakeNavigationPaneVisible( ETrue, EClockAppMainViewId ); + + if( EClockAlarmExit == iAlarmId ) + { + // Mark the alarm editor as closed. + iAlarmEditorOpen = EFalse; + + if( alarmEditor ) + { + delete alarmEditor; + alarmEditor = NULL; + } + + // Let the appui handle the exit. + AppUi()->HandleCommandL( EClockAlarmExit ); + + __PRINTS( "CClockMainView::ResetAlarmL:EClockAlarmExit - Exit" ); + + return; + } + + if( EClockAlarmDiscardChanges == iAlarmId ) + { + // Mark the alarm editor as closed. + iAlarmEditorOpen = EFalse; + + // Cleanup. + if( alarmEditor ) + { + delete alarmEditor; + alarmEditor = NULL; + } + + // Dont do anything. Simply return. + + __PRINTS( "CClockMainView::ResetAlarmL:EClockAlarmDiscardChanges - Exit" ); + + return; + } + + // If the user pressed cancel and if the alarm id is valid. + if( KErrNone != iAlarmId ) + { + // Delete the previous alarm. + User::LeaveIfError( iAlarmModel->DeleteClockAlarm( alarmId ) ); + + // Remove this alarm from the list. + iContainer->RemoveAlarmL( itemIndex ); + + // Update the latest alarm details. + iAlarmModel->ClockAlarmInfo( iAlarmId, iAlarmInfo ); + + // First update the model with the latest alarm id. + iAlarmModel->SaveLatestAlarmId( iAlarmId ); + + // Update the container with the new alarm. + iContainer->UpdateAlarmListL( iAlarmInfo, iAlarmId ); + } + + // Mark the alarm editor as closed. + iAlarmEditorOpen = EFalse; + + if( alarmEditor ) + { + delete alarmEditor; + alarmEditor = NULL; + } + + + __PRINTS( "CClockMainView::ResetAlarmL - Exit" ); + } + +// --------------------------------------------------------- +// CClockMainView::~CClockMainView +// rest of the details are commented in the header +// --------------------------------------------------------- +// +CClockMainView::~CClockMainView() + { + __PRINTS( "CClockMainView::~CClockMainView - Entry" ); + + if( iAlarmArray ) + { + delete iAlarmArray; + iAlarmArray = NULL; + } + if( iContainer ) + { + ( AppUi() )->RemoveFromStack( iContainer ); + delete iContainer; + iContainer = NULL; + } + if( iModelObserver ) + { + if( iAlarmModel ) + { + iAlarmModel->SetModelObserver( NULL ); + } + delete iModelObserver; + iModelObserver = NULL; + } + + __PRINTS( "CClockMainView::~CClockMainView - Exit" ); + } + +// --------------------------------------------------------- +// CClockMainView::Id +// rest of the details are commented in the header +// --------------------------------------------------------- +// +TUid CClockMainView::Id() const + { + __PRINTS( "CClockMainView::Id - Entry" ); + + __PRINTS( "CClockMainView::Id - Exit" ); + + return KClockAppMainViewId; + } + +// --------------------------------------------------------- +// CClockMainView::DoActivateL +// rest of the details are commented in the header +// --------------------------------------------------------- +// +void CClockMainView::DoActivateL( const TVwsViewId& /*aPrevViewId*/, + TUid aCustomMessageId, + const TDesC8& /*aCustomMessage*/ ) + { + __PRINTS( "CClockMainView::DoActivateL - Entry" ); + + if( KClockHideInBackground == aCustomMessageId.iUid ) + { + CClockAppUi* appUi = static_cast< CClockAppUi* > ( AppUi() ); + + // Enable bring-to-foreground on view activation. + appUi->SetCustomControl( 0 ); + } + + // Re-initialize the alarm id array. + iAlarmArray->InitIdList(); + + if( ( KClockAppMainViewId == aCustomMessageId ) && iContainer ) + { + AppUi()->RemoveFromStack( iContainer ); + delete iContainer; + iContainer = NULL; + } + + CClockAppUi* clockAppUi( static_cast< CClockAppUi* > ( AppUi() ) ); + if( !iContainer ) + { + iContainer = CClockMainContainer::NewL( this, ClientRect(), iAlarmArray ); + ( AppUi() )->AddToStackL( *this, iContainer ); + iContainer->SetMopParent( this ); + + if( clockAppUi->IsAppExitHidden() ) + { + iContainer->ListBox()->SetCurrentItemIndexAndDraw( KZerothIndex ); + clockAppUi->SetAppHidden( EFalse ); + + } + else + { + + // Focus on the "New Alarm" whenever the main view is activated + + + iContainer->ListBox()->SetCurrentItemIndexAndDraw( KErrNone); + } + } + + // Update the date and day text. + iContainer->SetDayInfoL(); + + // Update the location information text. + iContainer->SetZoneInfoL(); + + // Update the DST information in the container. + iContainer->UpdateDSTStateL(); + + // Update the title pane text. + clockAppUi->SetTitlePaneTextL( R_CLOCK_TITLE_MAIN_VIEW ); + + // If opened from clock, display the navigation pane again. + clockAppUi->MakeNavigationPaneVisible( ETrue, EClockAppMainViewId ); + + // Activate the container. + iContainer->ActivateL(); + + __PRINTS( "CClockMainView::DoActivateL - Exit" ); + } + +// --------------------------------------------------------- +// CClockMainView::DoDeactivate +// rest of the details are commented in the header +// --------------------------------------------------------- +// +void CClockMainView::DoDeactivate() + { + __PRINTS( "CClockMainView::DoDeactivate - Entry" ); + + // Ask the document to save the user data in the document file. + CClockDocument* clockDocument = static_cast< CClockDocument* > ( AppUi()->Document() ); + TRAP_IGNORE( clockDocument->StoreDataL() ); + + if( iContainer ) + { + + // First remove the container from the control stack + ( AppUi() )->RemoveFromStack( iContainer ); + // And then destroy it. + delete iContainer; + iContainer = NULL; + } + + __PRINTS( "CClockMainView::DoDeactivate - Exit" ); + } + +// --------------------------------------------------------- +// CClockMainView::HandleCommandL +// rest of the details are commented in the header +// --------------------------------------------------------- +// +void CClockMainView::HandleCommandL( TInt aCommand ) + { + __PRINTS( "CClockMainView::HandleCommandL - Entry" ); + + switch( aCommand ) + { + //Single click integration + case EClockSelect: + { + if ( iContainer->ListBox()->CurrentItemIndex() == 0 ) + { + SetNewAlarmL(); + } + else + { + ResetAlarmL(); + } + } + break; + + case EClockNewAlarm: + { + // Display the alarm editor for the user to set the alarm. + SetNewAlarmL(); + } + break; + + case EClockResetAlarm: + { + // Reset the chosen alarm. + ResetAlarmL(); + } + break; + + case EClockDeactivateAlarm: + { + // Deactivate the focused alarm item in the list. + DeactivateAlarmL(); + } + break; + + case EClockActivateAlarm: + { + // Activate the focused alarm item in the list. + ActivateAlarmL(); + } + break; + + case EClockRemoveAlarm: + { + // Delete the selected alarm. + RemoveAlarmL(); + } + break; + + case EClockSettings: + { + // Let the appui handle the command. + AppUi()->HandleCommandL( EClockSettings ); + } + break; + + case EClockMainViewExit: + case EAknSoftkeyExit: + { + AppUi()->HandleCommandL( aCommand ); + } + break; + + case EAknCmdHelp: //EClockWorldHelp: + { + // Launch clock main view specific help. + HlpLauncher::LaunchHelpApplicationL( iCoeEnv->WsSession(), iAvkonAppUi->AppHelpContextL() ); + } + break; + + default: + { + // No implementation yet. + } + break; + } + + __PRINTS( "CClockMainView::HandleCommandL - Exit" ); + } + +// --------------------------------------------------------- +// CClockMainView::HandleUpdateL +// rest of the details are commented in the header +// --------------------------------------------------------- +// +void CClockMainView::HandleUpdateL( TInt /*aReason*/ ) + { + __PRINTS( "CClockMainView::HandleUpdateL - Entry" ); + + // Get the currently focussed item. + TInt currentlyFocussedItem( KErrNotFound ); + if( iContainer ) + { + currentlyFocussedItem = iContainer->ListBox()->CurrentItemIndex(); + } + // Update the alarm array. + iAlarmArray->InitIdList(); + + // We redraw the container when an update is received from the uimodel (be it alarm or clockserver). + if( iContainer ) + { + iContainer->DrawNow(); + iContainer->ListBox()->HandleItemAdditionL(); + + // In case the currently focussed item is invalid,set the focus to last item and set the msk text accordingly. + if( KErrNotFound == currentlyFocussedItem ) + { + TInt itemCount = iContainer->ListBox()->Model()->ItemTextArray()->MdcaCount(); + iContainer->ListBox()->SetCurrentItemIndexAndDraw( itemCount -1 ); + + + } + } + + __PRINTS( "CClockMainView::HandleUpdateL - Exit" ); + } + +// --------------------------------------------------------- +// CClockMainView::DynInitMenuPaneL +// rest of the details are commented in the header +// --------------------------------------------------------- +// +void CClockMainView::DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane ) + { + __PRINTS( "CClockMainView::DynInitMenuPaneL - Entry" ); + + //Single click integration + if( ( R_CLOCK_MAIN_VIEW_MENUPANE != aResourceId ) ) + + + { + __PRINTS( "CClockMainView::DynInitMenuPaneL - Exit" ); + + return; + } + + // TODO: Initialize FeatureManager and remove Help option if its not supported. + /*if( !FeatureManager::FeatureSupported( KFeatureIdHelp ) ) + { + aMenuPane->DeleteMenuItem( EAlarmHelpAlarmClock ); + }*/ + + + TInt alarmCount = iAlarmArray->MdcaCount(); + + // There are no alarms set or the current focussed listitem is "New Alarm" then remove alarm specific options + if( KZeroAlarms >= alarmCount || ( KErrNone == iContainer->ListBox()->CurrentItemIndex() ) ) + { + // There are no alarms set. Remove the irrelevant options from the menu. + aMenuPane->DeleteMenuItem( EClockNewAlarm ); + aMenuPane->DeleteMenuItem( EClockResetAlarm ); + aMenuPane->DeleteMenuItem( EClockRemoveAlarm ); + aMenuPane->DeleteMenuItem( EClockActivateAlarm ); + aMenuPane->DeleteMenuItem( EClockDeactivateAlarm ); + } + else + { + // There is atleast one alarm set. Get the details to update the menu. + SClkAlarmInfo alarmInfo; + TAlarmId alarmId; + + + iAlarmArray->GetSortedAlmIdInfo( iContainer->ListBox()->CurrentItemIndex(), alarmId, alarmInfo ); + + if( alarmInfo.iStatus == EAlarmStatusEnabled ) + { + // Alarm is already active. Remove the activate option. + aMenuPane->DeleteMenuItem( EClockActivateAlarm ); + + + + if( ( EAlarmRepeatDefintionRepeatOnce == alarmInfo.iRepeat ) || + ( EAlarmRepeatDefintionRepeatNext24Hours == alarmInfo.iRepeat) ) + { + // Alarm is not recurring. Remove the deactivate option from the menu. + aMenuPane->DeleteMenuItem( EClockDeactivateAlarm ); + } + } + else + { + // Alarm is already inactive. Remove the deactivate option from the menu. + aMenuPane->DeleteMenuItem( EClockDeactivateAlarm ); + } + } + + + + __PRINTS( "CClockMainView::DynInitMenuPaneL - Exit" ); + } + +// --------------------------------------------------------- +// CClockMainView::DynInitMenuBarL +// rest of the details are commented in the header +// --------------------------------------------------------- +// +//Single click integration +void CClockMainView::DynInitMenuBarL( TInt /*aResourceId*/, CEikMenuBar* /*aMenuBar*/ ) + + { + __PRINTS( "CClockMainView::DynInitMenuBarL - Entry" ); + + + + __PRINTS( "CClockMainView::DynInitMenuBarL - Exit" ); + } + +// --------------------------------------------------------- +// CClockMainView::HandleForegroundEventL +// rest of the details are commented in the header +// --------------------------------------------------------- +// +void CClockMainView::HandleForegroundEventL( TBool aForeground ) + { + __PRINTS( "CClockMainView::HandleForegroundEventL - Entry" ); + + if( aForeground ) + { + CClockAppUi* clockAppUi( static_cast< CClockAppUi* > ( AppUi() ) ); + if( clockAppUi->IsAppExitHidden() ) + { + if( iContainer ) + { + iContainer->ResetMarqueeLabelL(); + iContainer->ListBox()->SetCurrentItemIndexAndDraw( KZerothIndex ); + } + clockAppUi->SetAppHidden( EFalse ); + + } + } + + __PRINTS( "CClockMainView::HandleForegroundEventL - Exit" ); + } +// --------------------------------------------------------- +// CClockMainView::GetApplicationRect +// rest of the details are commented in the header +// --------------------------------------------------------- +// +TRect CClockMainView::GetApplicationRect() + { + __PRINTS( "CClockMainView::GetApplicationRect - Entry" ); + + __PRINTS( "CClockMainView::GetApplicationRect - Exit" ); + + // Return the applicationrect from appui. + return AppUi()->ApplicationRect(); + } + + + +// --------------------------------------------------------- +// CClockMainView::HandleEnvChangeL +// rest of the details are commented in the header +// --------------------------------------------------------- +// +void CClockMainView::HandleEnvChangeL( TClockEnvChanged /*aEnvChanged*/ ) + { + __PRINTS( "CClockMainView::HandleEnvChangeL - Entry" ); + + if( iContainer ) + { + // Update the main view information. + iContainer->SetDayInfoL(); + + // Update the location information text. + iContainer->SetZoneInfoL(); + + // Update the DST information. + iContainer->UpdateDSTStateL(); + + // Update the container. + iContainer->DrawNow(); + } + + __PRINTS( "CClockMainView::HandleEnvChangeL - Exit" ); + } + +// --------------------------------------------------------- +// CClockMainView::IsAlarmEditorOpen +// rest of the details are commented in the header +// --------------------------------------------------------- +// +TBool CClockMainView::IsAlarmEditorOpen() + { + __PRINTS( "CClockMainView::IsAlarmEditorOpen - Entry" ); + + __PRINTS( "CClockMainView::IsAlarmEditorOpen - Exit" ); + + return iAlarmEditorOpen; + } + +// --------------------------------------------------------- +// CClockMainView::ClockApplicationUi +// rest of the details are commented in the header +// --------------------------------------------------------- +// +CClockAppUi* CClockMainView::ClockApplicationUi() + { + __PRINTS( "CClockMainView::ClockApplicationUi - Entry" ); + + __PRINTS( "CClockMainView::ClockApplicationUi - Exit" ); + + return static_cast< CClockAppUi* > ( AppUi() ); + } + +// End of file