calendarui/multicaluidialog/src/caluidialogimpl.cpp
branchRCL_3
changeset 66 bd7edf625bdd
child 67 1539a383d7b6
child 86 ed599363c2d7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/calendarui/multicaluidialog/src/caluidialogimpl.cpp	Wed Sep 01 12:32:31 2010 +0100
@@ -0,0 +1,788 @@
+/*
+ * Copyright (c) 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 : Implemrntation class for calenlistdialog .
+ */
+
+//System include
+#include <calsession.h>
+#include <calentryview.h>
+#include <calcalendarinfo.h>
+#include <StringLoader.h>
+#include <AknsBasicBackgroundControlContext.h>
+#include <aknconsts.h>
+#include <AknIconArray.h>
+#include <aknlists.h>
+#include <akntitle.h>
+#include <eikclbd.h>
+#include <aknnavi.h>
+#include <aknlayoutscalable_apps.cdl.h>
+#include <layoutmetadata.cdl.h>
+#include <data_caging_path_literals.hrh>
+#include <pathinfo.h>
+#include <bautils.h>
+#include <aknenv.h>
+#include <eikapp.h>
+#include <eikenv.h>
+#include <gulicon.h>
+#include <multicaluidialog.rsg>
+#include <multicaluidialog.mbg>
+#include <AknDialog.h>
+//User include
+#include "caluidialogimpl.h"
+#include "multicaluidialogmodel.h"
+#include "calendarui_debug.h"
+#include "calendar.hrh"
+
+// ----------------------------------------------------------------------------
+// CCalUiDialogImpl::CCalUiDialogImpl
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+CCalUiDialogImpl::CCalUiDialogImpl()
+    {
+    TRACE_ENTRY_POINT
+    
+    TRACE_EXIT_POINT
+    }
+
+// ----------------------------------------------------------------------------
+// CCalUiDialogImpl::NewL
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+CCalUiDialogImpl* CCalUiDialogImpl::NewL(const RPointerArray<CCalEntry>& 
+        aCalEntries)
+    {
+    TRACE_ENTRY_POINT
+    CCalUiDialogImpl* self = CCalUiDialogImpl::NewLC(aCalEntries);
+    CleanupStack::Pop(self);
+    TRACE_EXIT_POINT
+    return self;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalUiDialogImpl::NewLC
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+CCalUiDialogImpl* CCalUiDialogImpl::NewLC(const RPointerArray<CCalEntry>& 
+        aCalEntries)
+    {
+    TRACE_ENTRY_POINT
+    CCalUiDialogImpl* self = new(ELeave) CCalUiDialogImpl();
+    CleanupStack::PushL(self);
+    self->ConstructL(aCalEntries);
+    TRACE_EXIT_POINT
+    return self;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalUiDialogImpl::~CCalUiDialogImpl
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+CCalUiDialogImpl::~CCalUiDialogImpl()
+    {
+    TRACE_ENTRY_POINT
+    
+	if(iListBox)
+		{
+		iListBox->Reset();
+		delete iListBox; 
+		}
+    
+    if( iResourceFileOffset )
+        {
+        CCoeEnv::Static()->DeleteResourceFile( iResourceFileOffset );
+        }
+    
+    // Don't set the title pane text.
+    TRAP_IGNORE( SetTitlePaneL( EFalse ) );
+  
+    if(iMultiCalUiDialogModel)
+        {
+        delete iMultiCalUiDialogModel;
+        iMultiCalUiDialogModel = NULL;
+        }
+    
+    iColorUidArray.Reset();
+    iColorUidArray.Close();
+    
+    if(iDesArray)
+        delete iDesArray;
+    
+    if(iBgContext)
+        delete iBgContext;
+    
+    if(iAsyncExit)
+        {
+        iAsyncExit->Cancel();
+        delete iAsyncExit;
+        }
+    
+
+    TRACE_EXIT_POINT
+    }
+
+// ----------------------------------------------------------------------------
+// CCalUiDialogImpl::ConstructL
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void CCalUiDialogImpl::ConstructL(const RPointerArray<CCalEntry>& aCalEntries)
+    {
+    TRACE_ENTRY_POINT
+    
+    TFileName fileName;
+    // Get the complate path of the DLL from where it is currently loaded
+    Dll::FileName( fileName );
+    
+    TFileName resFile;
+    TFileName iconFile;
+    
+    // Append the Drive letters ex., Z: or C:
+    resFile.Append(fileName.Mid(0,2));
+    resFile.Append(KDC_RESOURCE_FILES_DIR);
+    resFile.Append(KResourceFile);
+    
+    BaflUtils::NearestLanguageFile( CCoeEnv::Static()->FsSession(), resFile );
+    
+    iResourceFileOffset = CEikonEnv::Static()->AddResourceFileL( resFile );
+    
+    iIconFile.Append(fileName.Mid(0,2));
+    iIconFile.Append(KDC_APP_BITMAP_DIR);
+    iIconFile.Append(KIconFile);
+    
+    //iIconFile = ((CEikAppUi*)CCoeEnv::Static()->AppUi())->Application()->BitmapStoreName();
+    
+    iMultiCalUiDialogModel = CMultiCalUiDialogModel::NewL();
+    
+    iMultiCalUiDialogModel->SetCalEntryL(aCalEntries);
+    
+   // CAknDialog::ConstructL( R_CALEN_CALDB_MENUBAR );
+    CAknDialog::ConstructL( R_CALENDB_LIST_MENUBAR );
+    
+    TCallBack callBack(CCalUiDialogImpl::DoAsyncExitL,this);
+    iAsyncExit = new(ELeave) CAsyncCallBack(callBack,CActive::EPriorityStandard);
+    
+    TRACE_EXIT_POINT
+    }
+
+// ----------------------------------------------------------------------------
+// CCalUiDialogImpl::LaunchCalenDbListDialogL
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+TInt CCalUiDialogImpl::LaunchCalenDbListDialogL()
+    {
+    TRACE_ENTRY_POINT
+    
+    TInt returnVal( KErrNone );
+    
+    returnVal =  CAknDialog::ExecuteLD( R_CALENDB_LIST_SINGLESELECT_DIALOG );
+    
+    
+    TRACE_EXIT_POINT
+    return returnVal;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalUiDialogImpl::FocusChanged
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void CCalUiDialogImpl::FocusChanged( TDrawNow aDrawNow )
+    {
+    TRACE_ENTRY_POINT;
+    
+    CAknDialog::FocusChanged( aDrawNow );    
+    
+    TRACE_EXIT_POINT;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalUiDialogImpl::ConstructListL
+// (other items were commented in a header).  
+// ----------------------------------------------------------------------------
+//
+void CCalUiDialogImpl::ConstructListL()
+    {
+    TRACE_ENTRY_POINT;
+    
+    if(iDesArray && iListBox)
+        {
+        return;
+        }
+
+    iDesArray = new (ELeave) CDesCArrayFlat(5);
+    iListBox = new (ELeave) CCalenDbListbox(iColorUidArray);
+    iListBox->SetContainerWindowL( *this );
+    iListBox->ConstructL(this, 0 );
+
+    //Create scroll bar
+    iListBox->CreateScrollBarFrameL(ETrue);
+    iListBox->ScrollBarFrame()->SetScrollBarVisibilityL(
+            CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto);
+
+    CTextListBoxModel* model = iListBox->Model();
+    model->SetItemTextArray(iDesArray);
+    model->SetOwnershipType(ELbmDoesNotOwnItemArray);
+    
+    iListBox->SetListBoxObserver( this );    
+
+    iListBox->View()->SetListEmptyTextL( _L("No Items") );
+
+    TRACE_EXIT_POINT;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenMultipleDbUi::UpdateListboxL
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void CCalUiDialogImpl::UpdateListboxL()
+    {
+    TRACE_ENTRY_POINT;
+    
+    iListBox->View()->SetDisableRedraw( ETrue );
+    iDesArray->Reset();
+    iColorUidArray.Close();
+    
+    RPointerArray<CCalCalendarInfo>& calendarInfoArray = 
+                                iMultiCalUiDialogModel->GetCalendarInfoArray();
+    
+    if( calendarInfoArray.Count() > 0 )
+        {
+        //iListBox->ItemDrawer()->ColumnData()->SetIconArray( iIconsList );
+
+        for(TInt i = 0 ; i < calendarInfoArray.Count() ; i++)
+            {
+            TBuf<KMultiDbMaxLength> tempString;
+            CCalCalendarInfo* calendarInfo = calendarInfoArray[i];
+
+            TPtrC nameBuf = calendarInfo->NameL();
+
+            //"%d\t%S\t%S\t%d"
+            TBuf<10> icon;
+            TInt iconIndex(1);
+            icon.Format(KIconFormat,iconIndex);
+            
+            //tempString.Append(icon);
+           
+            tempString.Append(KListSeparatorFormat);
+            tempString.Append(nameBuf);
+            tempString.Append(KListSeparatorFormat);
+
+            HBufC* strTemp = NULL; 
+            if(calendarInfo->Enabled())
+                {
+                strTemp = StringLoader::LoadLC(R_CALEN_DB_VISIBLE,iCoeEnv);
+                }
+            else
+                {
+                strTemp = StringLoader::LoadLC(R_CALEN_DB_HIDDEN,iCoeEnv);
+                }
+
+            tempString.Append(strTemp->Des());
+            CleanupStack::PopAndDestroy(strTemp);
+
+            tempString.Append(KListSeparatorFormat);
+
+            //Collect color info to be used in itemdrawer for painting strip
+            iColorUidArray.Append(calendarInfo->Color().Value());
+            
+            iDesArray->AppendL(tempString);
+            }
+        }
+    
+    iListBox->View()->SetDisableRedraw( EFalse );
+    iListBox->HandleItemAdditionL(); //Update and draw listbox
+
+    TRACE_EXIT_POINT;
+    }
+
+// -----------------------------------------------------------------------------
+// CCalUiDialogImpl::MarkUnmarkCalendarL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CCalUiDialogImpl::MarkUnmarkCalendarL()
+    {
+    TRACE_ENTRY_POINT
+    
+    TInt index = iListBox->CurrentItemIndex();
+    
+    TBool status = EFalse;
+    status = iMultiCalUiDialogModel->GetCalendarStatus(index);
+    
+    if(status)
+        {
+        status = EFalse;
+        }
+    else
+        {
+        status = ETrue;
+        }
+    
+    iMultiCalUiDialogModel->SetCalendarStatus(index,status);
+    
+    TPtrC indexText = iDesArray->MdcaPoint(index);
+    HBufC* formatText = indexText.AllocLC();
+    TPtr modified = formatText->Des();
+    modified[0] = status ? '0' : '1';
+    
+    indexText.Set(modified);
+    iDesArray->Delete(index);
+    iDesArray->InsertL(index,indexText);     
+     
+     iMultiCalUiDialogModel->StoreCalEntryL();     
+
+    CleanupStack::PopAndDestroy(formatText);
+    iAsyncExitCmd = ECalenSelectCmdOk;
+    iAsyncExit->CallBack();    
+ 
+    
+    TRACE_EXIT_POINT
+    }
+
+
+// ----------------------------------------------------------------------------
+// CCalUiDialogImpl::SetTitlePaneL
+// (other items were commented in header.)
+// ----------------------------------------------------------------------------
+//
+void CCalUiDialogImpl::SetTitlePaneL( TBool aCurrentState )
+    {
+    TRACE_ENTRY_POINT;
+    CEikStatusPane* sp = iEikonEnv->AppUiFactory()->StatusPane();
+
+    // Set empty navi pane label
+    iNaviContainer = static_cast<CAknNavigationControlContainer*>(
+                                 sp->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) ) );
+    iNaviContainer->PushDefaultL();
+
+   // Set title text
+    CAknTitlePane* tp = static_cast<CAknTitlePane*>(
+                                 sp->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) );
+
+    if( aCurrentState )
+        {
+        iTitlepaneText = ( *tp->Text() ); 
+        HBufC* titleText = StringLoader::LoadLC( R_CALEN_DB_LIST_TITLE , iCoeEnv );
+        tp->SetTextL( *titleText );  
+        CleanupStack::PopAndDestroy( titleText );
+        }
+    else
+        {
+        tp->SetTextL(iTitlepaneText);
+        }
+    TRACE_EXIT_POINT;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalUiDialogImpl::DynInitMenuPaneL
+// (other items were commented in header.)
+// ----------------------------------------------------------------------------
+//
+void CCalUiDialogImpl::DynInitMenuPaneL( TInt /*aResourceId*/,CEikMenuPane* /*aMenuPane*/ )
+    {
+    TRACE_ENTRY_POINT;
+      
+    TRACE_EXIT_POINT;  
+    }
+
+// ----------------------------------------------------------------------------
+// CCalUiDialogImpl::ProcessCommandL
+// (other items were commented in header.)
+// ----------------------------------------------------------------------------
+//
+void  CCalUiDialogImpl::ProcessCommandL( TInt aCommandId )
+    {
+    TRACE_ENTRY_POINT;
+    
+    CAknDialog::ProcessCommandL(aCommandId);
+    
+    switch(aCommandId)
+        {
+        case EAknSoftkeyMark:
+        case ECalenCmdItemSelect:
+            {
+            MarkUnmarkCalendarL();
+            }
+            break;
+            
+        default:
+            {
+            // No implementation yet.
+            }
+            break;
+        }
+    
+    TRACE_EXIT_POINT;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalUiDialogImpl::OfferKeyEventL
+// (other items were commented in header.) 
+// ----------------------------------------------------------------------------
+//
+TKeyResponse CCalUiDialogImpl::OfferKeyEventL(const TKeyEvent& aKeyEvent,
+                                                                     TEventCode aType)
+    { 
+    TRACE_ENTRY_POINT;
+     
+    TKeyResponse exitCode(EKeyWasNotConsumed);
+       if(aType == EEventKey )
+           {
+           if( aKeyEvent.iCode == EKeyEscape )
+               {
+               TryExitL( EKeyEscape );
+               return exitCode; // Chain this one up to the main app so it closes calendar app.
+               }
+            else if(aType == EKeyOK)
+               {
+                // Single click integration
+               iListBox->OfferKeyEventL( aKeyEvent, aType );
+               }
+      
+            else 
+                {
+                exitCode = EKeyWasConsumed;
+                iListBox->OfferKeyEventL( aKeyEvent, aType );
+               
+                // Draw because pressing up/down means we have to redraw the backgrouns skin.
+                DrawDeferred();
+                }
+           }
+       return exitCode;      
+    
+    }
+
+// ----------------------------------------------------------------------------
+// CCalUiDialogImpl::HandlePointerEventL
+// (other items were commented in header.) 
+// ----------------------------------------------------------------------------
+//
+void CCalUiDialogImpl::HandlePointerEventL(const TPointerEvent& aPointerEvent)
+    {
+    TRACE_ENTRY_POINT;
+    
+    if( !AknLayoutUtils::PenEnabled() )
+           {
+           return;
+           }
+       TInt index = iListBox->CurrentItemIndex();
+      iListBox->HandlePointerEventL(aPointerEvent);      
+      
+    TRACE_EXIT_POINT;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalUiDialogImpl::OkToExitL
+// (other items were commented in header.)
+// ----------------------------------------------------------------------------
+//
+TBool CCalUiDialogImpl::OkToExitL(TInt aButtonId)
+    {
+    TRACE_ENTRY_POINT;
+
+    TBool okExit = EFalse;
+
+    switch (aButtonId)
+        {
+        case EKeyEscape:
+            {
+            okExit = ETrue;
+            }
+            break;
+        case EAknSoftkeyCancel:
+            {
+            okExit = ETrue;
+            }
+            break;
+        case ECalenSelectCmdOk:
+            {
+            okExit = ETrue;            
+            }
+            break;
+        case EAknSoftkeyOk:
+            {
+            MarkUnmarkCalendarL();            
+            }
+            break;
+        default:
+            {
+            okExit = CAknDialog::OkToExitL(aButtonId);
+            }
+            break;
+        }
+
+    TRACE_EXIT_POINT;
+
+    return okExit;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalUiDialogImpl::SizeChanged
+// Set the rect to dialog and listbox
+// ----------------------------------------------------------------------------
+//
+void CCalUiDialogImpl::SizeChanged()
+    {
+    TRACE_ENTRY_POINT;
+    
+    CAknDialog::SizeChanged();
+    
+    TRect rect = iRect = Rect();
+    
+    if( iBgContext )
+        {
+        iBgContext->SetRect( rect );
+        }
+    
+    if( iListBox )
+        {
+        TInt orientation = Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0;
+        TAknLayoutRect application_window;
+        
+        if( ( !orientation ) && AknLayoutUtils::PenEnabled() )
+            {
+            TRect appWindow;
+            TAknLayoutRect application_window;
+            AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EApplicationWindow, 
+                                               appWindow );
+            application_window.LayoutRect( 
+                    appWindow, 
+                AknLayoutScalable_Apps::application_window().LayoutLine() ); 
+                
+            // Find the size of the main pane.
+            TAknLayoutRect main_pane;                    
+                                
+            main_pane.LayoutRect( 
+            application_window.Rect(), 
+            AknLayoutScalable_Apps::main_pane( orientation ).LayoutLine() );
+            
+            TRect listboxRect;
+            listboxRect.SetWidth( main_pane.Rect().Width() );
+            listboxRect.SetHeight( main_pane.Rect().Height() );
+            iListBox->SetRect( listboxRect );
+            }
+        else
+            {
+            iListBox->SetRect( rect );
+            }
+        }
+    
+    TRACE_EXIT_POINT;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalUiDialogImpl::ComponentControl
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+CCoeControl* CCalUiDialogImpl::ComponentControl( TInt /*aIndex*/) const
+    {
+    TRACE_ENTRY_POINT;
+    
+    if(iListBox)
+        {
+        TRACE_EXIT_POINT;
+        return iListBox;
+        }
+    
+    TRACE_EXIT_POINT;   
+    return NULL;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalUiDialogImpl::CountComponentControls
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+TInt CCalUiDialogImpl::CountComponentControls() const
+    {
+    TRACE_ENTRY_POINT;
+    
+    if(iListBox)
+        {
+        TRACE_EXIT_POINT;
+        return 1;
+        }
+    
+    TRACE_EXIT_POINT;
+    return 0;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalUiDialogImpl::PreLayoutDynInitL
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void  CCalUiDialogImpl::PreLayoutDynInitL()
+    {
+    TRACE_ENTRY_POINT;
+    iBgContext = 
+    CAknsBasicBackgroundControlContext::NewL( KAknsIIDQsnBgAreaMain,iRect,ETrue );
+    
+    SetTitlePaneL( ETrue );
+    ConstructListL();
+    UpdateListboxL();
+    //UpdateCbaL();
+    
+    TInt orientation = Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0;      
+    if( AknLayoutUtils::PenEnabled() )   
+        {
+        // Find the size of the main pane.
+        // Find the application window
+        TRect appWindow;
+        TAknLayoutRect application_window;
+        AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EApplicationWindow, 
+                                           appWindow );
+        application_window.LayoutRect( 
+                appWindow, 
+            AknLayoutScalable_Apps::application_window().LayoutLine() ); 
+            
+        // Find the size of the main pane.
+        TAknLayoutRect main_pane;                    
+                            
+        main_pane.LayoutRect( 
+        application_window.Rect(), 
+        AknLayoutScalable_Apps::main_pane( orientation ).LayoutLine() );
+        
+        TRect listboxRect;
+        listboxRect.SetWidth( main_pane.Rect().Width() );
+        listboxRect.SetHeight( main_pane.Rect().Height() );
+        iListBox->SetRect( listboxRect );
+        }
+    
+    TRACE_EXIT_POINT;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalUiDialogImpl::PostLayoutDynInitL
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void CCalUiDialogImpl::PostLayoutDynInitL()
+    {
+    TRACE_ENTRY_POINT;
+    
+    iListBox->UpdateScrollBarsL(); 
+    
+    TRACE_EXIT_POINT;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalUiDialogImpl::MopSupplyObject
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+TTypeUid::Ptr CCalUiDialogImpl::MopSupplyObject(TTypeUid aId)
+    {
+    TRACE_ENTRY_POINT;
+    
+    if(aId.iUid == MAknsControlContext::ETypeId )
+        {
+        MAknsControlContext* cc = iBgContext;
+        if ( cc )
+            {
+            return MAknsControlContext::SupplyMopObject( aId, cc );
+            }
+        }
+    
+    TRACE_EXIT_POINT;
+    
+    return CAknDialog::MopSupplyObject( aId );
+    }
+
+// ----------------------------------------------------------------------------
+// CCalUiDialogImpl::HandleResourceChange
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void CCalUiDialogImpl::HandleResourceChange(TInt aType)
+    {
+    TRACE_ENTRY_POINT;
+    
+    if ( aType == KAknsMessageSkinChange || aType == KEikDynamicLayoutVariantSwitch )
+        {
+        SizeChanged();
+        TRAP_IGNORE(UpdateListboxL());
+        }
+    
+    CAknDialog::HandleResourceChange( aType );
+    TRACE_EXIT_POINT;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalUiDialogImpl::Draw
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void CCalUiDialogImpl::Draw(const TRect& aRect) const
+    {
+    TRACE_ENTRY_POINT;
+    
+    CWindowGc& gc = SystemGc();
+    TRect mainPane;
+    AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane, mainPane );
+    TRect zerodRect( TPoint(0, 0), mainPane.Size() );
+    iBgContext->SetRect( zerodRect );
+    iBgContext->SetParentPos( mainPane.iTl );
+    AknsDrawUtils::Background( AknsUtils::SkinInstance(), iBgContext, this, gc, aRect );
+    
+    TRACE_EXIT_POINT;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalUiDialogImpl::HandleListBoxEventL
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void CCalUiDialogImpl::HandleListBoxEventL(CEikListBox* /*aListBox */,
+        TListBoxEvent aEventType)
+    {    
+        switch (aEventType)
+            {
+            //Single click integration
+            case EEventItemSingleClicked:
+            case EEventEnterKeyPressed:
+                {
+                const TInt index(iListBox->CurrentItemIndex());
+                if (index != KErrNotFound)
+                    {
+                    MarkUnmarkCalendarL();
+                    }
+                }
+             break;  
+            }        
+    }
+
+
+// ----------------------------------------------------------------------------
+// CCalUiDialogImpl::CallBackFor select
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+TInt CCalUiDialogImpl::DoAsyncExitL(TAny* aPtr)
+    {
+    TRACE_ENTRY_POINT
+    CCalUiDialogImpl* self = static_cast<CCalUiDialogImpl*>(aPtr);
+    self->TryExitL(self->iAsyncExitCmd);
+    TRACE_EXIT_POINT
+    return 0;
+    }
+
+// End of file.