meetingui/meetingrequestviewers/src/CMRDialogBase.cpp
author Simon Howkins <simonh@symbian.org>
Mon, 22 Nov 2010 16:01:09 +0000
branchRCL_3
changeset 93 d216ae5a8733
parent 0 f979ecb2b13e
permissions -rw-r--r--
Adjusted to avoid exports, etc, from a top-level bld.inf

/*
* Copyright (c) 2002-2004 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:   Base dialog for meeting request views
*
*/




// INCLUDE FILES
#include "CMRDialogBase.h"
#include "ICalUILog.h"
#include "MMRModelInterface.h" //MR model interface
#include <MAgnEntryUi.h> //entry ui callback interface
#include <MRCommands.hrh>

// ============================ MEMBER FUNCTIONS ===============================

// -----------------------------------------------------------------------------
// ?classname::?classname
// C++ default constructor can NOT contain any code, that
// might leave.
// -----------------------------------------------------------------------------
//
CMRDialogBase::CMRDialogBase(
    MAgnEntryUiCallback& aHandlerCallback )
    : iHandlerCallback( aHandlerCallback )
    {
    }

// Destructor
CMRDialogBase::~CMRDialogBase()
    {
    }
    
TInt CMRDialogBase::ExecuteLD()
	{
	return KErrNone;
	}
    
void CMRDialogBase::SetModel( MMRModelInterface& aMRModel )
    {
    iMRModel = &aMRModel;
    TRAP_IGNORE( HandleSetModelL() );
    }
    
void CMRDialogBase::HandleSetModelL()
    {
    // Nothing done by default, subclasses may override
    }

//-----------------------------------------------------------------------------
//  CMRDialogBase::IsDlgExitingCmd()
// In case of EMRCommandForward mail framework closes icalui after cmd handling
//-----------------------------------------------------------------------------
TBool CMRDialogBase::IsDlgExitingCmd( TInt aCommandId )
    {
    TBool retVal( EFalse );
    switch ( aCommandId )
        {
        //intentional fallthrough
		case EMRCommandShowDescriptionView:
		case EMRCommandShowAttendeesView:
		case EMRCommandRemoveFromCalendar:
		case EMRCommandSend:
		case EMRCommandSendUpdate:
		case EMRCommandCancelMR:
		case EMRCommandDeleteMR:
		case EMRCommandRespondAccept:
		case EMRCommandRespondTentative:
		case EMRCommandRespondDecline:
		case EMRCommandReplyToSender:
		case EMRCommandReplyToOrganiser:
		case EMRCommandReplyToAll:
	    case EAknCmdExit:
	    case EEikCmdExit:        
            {
            retVal = ETrue;
            break;
            }
        default:
            {
            retVal = EFalse;
            break;
            }
        }
    return retVal;
    }
    
//-----------------------------------------------------------------------------
//  CMRDialogBase::ProcessCommandL()
//-----------------------------------------------------------------------------
void CMRDialogBase::ProcessCommandL( TInt aCommandId )
	{
	LOG("CMRDialogBase::ProcessCommandL");
	HideMenu();
	
	TInt ret = iHandlerCallback.ProcessCommandWithResultL( aCommandId );
	if ( IsDlgExitingCmd( aCommandId ) && ret == KErrNone )
	    {
        LOG("CMRDialogBase::ProcessCommandL, calling TryExitL");
	    TryExitL( aCommandId );
	    LOG("CMRDialogBase::ProcessCommandL, TryExitL called");
	    }
    LOG("CMRDialogBase::ProcessCommandL -> End");	
	}

//-----------------------------------------------------------------------------
//  CMRDialogBase::OkToExitL()
//-----------------------------------------------------------------------------
TBool CMRDialogBase::OkToExitL( TInt aButtonId )
	{
	LOG("CMRDialogBase::OkToExitL");
	TInt retVal( ETrue );
	if ( aButtonId == EAknSoftkeyOptions )
		{
		// we want to dynamically handle the opening of options menu
		DisplayMenuL();
	 	retVal = EFalse;
		}
    else
        {
	    LOG("CMRDialogBase::OkToExitL, calling HandleDlgExitingL");
        TInt cmdToPerform( HandleDlgExitingL( aButtonId ) );
        if ( cmdToPerform != EEikCmdCanceled )
            {            
            LOG("CMRDialogBase::OkToExitL, calling ProcessCommandL");
		    iHandlerCallback.ProcessCommandL( cmdToPerform );
            }
		retVal = ETrue;
	    }
    LOG("CMRDialogBase::OkToExitL -> End");
    return retVal;
	}
    
//  End of File