diff -r f742655b05bf -r d38647835c2e iptel_plat/cch_client_api/inc/cchui.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/iptel_plat/cch_client_api/inc/cchui.h Wed Sep 01 12:29:57 2010 +0100 @@ -0,0 +1,173 @@ +/* +* Copyright (c) 2008-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 file contains the header file of the MCchUi class. +* +*/ + + +#ifndef M_CCHUI_H +#define M_CCHUI_H + +#include +#include + +/** + * Virtual interface of cchui. + * + * @code + * // One way to use CCHUI API is to configure which notes it shows + * // and after that do normal enable through CCH + * iCch = CCch::NewL(); + * + * // Allow connectivity notes to be shown when enabling service + * iCch->SetConnectivityDialogsAllowed( ETrue ); + * + * // Get handle to cchui api + * iCchUi = &iCch->CchUiApi(); // iCchUi is pointer to MCchUi + * + * // Set observer to listen cchui events. + * iCchUi->AddObserverL( *this ); // parameter is MCchUiObserver + * + * // Configure CCHUI API to show all notes/dialogs except connecting note. + * // Also configure that only VoIP and IM subservices are allowed (notes are + * // shown only for those). + * RArray allowedNotes; + * RArray allowedSubServices; + * CleanupClosePushL( allowedNotes ); + * CleanupClosePushL( allowedSubServices ); + * + * allowedNotes.AppendL( MCchUiObserver::ECchUiDialogTypeAuthenticationFailed ); + * allowedNotes.AppendL( MCchUiObserver::ECchUiDialogTypeNoConnectionDefined ); + * allowedNotes.AppendL( MCchUiObserver::ECchUiDialogTypeNoConnectionAvailable ); + * allowedNotes.AppendL( MCchUiObserver::ECchUiDialogTypeChangeConnection ); + * allowedNotes.AppendL( MCchUiObserver::ECchUiDialogTypeDefectiveSettings ); + * + * allowedSubServices.AppendL( ECCHVoIPSub ); + * allowedSubServices.AppendL( ECCHIMSub ); + * + * iCchUi->ConfigureVisualizationL( + * allowedNotes, allowedSubServices ); + * + * CleanupStack::PopAndDestroy( &allowedNotes ); + * + * CCchService* service = iCch->GetService( serviceId ); + * service->Enable( ECCHUnknown ); + * + * + * + * + * // Another way to use CCHUI API is to just show specific notes. + * iCch = CCch::NewL(); + * + * // Get handle to cchui api + * iCchUi = &iCch->CchUiApi(); // iCchUi is pointer to MCchUi + * + * // Set observer to listen cchui events. + * iCchUi->AddObserverL( *this ); // parameter is MCchUiObserver + * + * // Show connecting dialog. + * iCchUi->ShowDialogL( + * serviceId, + * MCchUiObserver::ECchUiDialogTypeConnecting ); + * + * // disable note by cancelling + * iCchUi->CancelNotes(); + * + * // Remove observer + * iCchUi->RemoveObserver(); + * + * @endcode + * + * @lib cch.lib + * @since S60 5.0 + */ +class MCchUi + { + public: + /** + * destructor + */ + virtual ~MCchUi( ) {}; + + public: + + /** + * Adds observer for listening cchui events. + * + * @since S60 5.0 + * @param aObserver Event observing class + */ + virtual void AddObserverL( MCchUiObserver& aObserver ) = 0; + + /** + * Removes the observer of cchui events. + * + * @since S60 5.0 + * @param aObserver Event observing class + */ + virtual void RemoveObserver( MCchUiObserver& aObserver ) = 0; + + /** + * Shows global note/dialog. See observer definition for available notes. + * + * @since S60 5.0 + * @param aServiceId service id of the service that the dialog is + * shown for. Service id is used to fetch service specific data. + * @param aDialog defines which dialog is shown. + * @leave KErrAlreadyExists Failed to show dialog because another + * note already shown. + */ + virtual void ShowDialogL( + TUint32 aServiceId, + MCchUiObserver::TCchUiDialogType aDialog ) = 0; + + /** + * Allows client to configure visualization of connectivity events. This + * only effects the automatically shown connectivity notes. Client can + * still use seperate methods in this API to show specific notes by + * itself. + * + * By default all notes are allowed. + * + * @since S60 5.0 + * @param aAllowedNotes array of allowed notes + */ + virtual void ConfigureVisualizationL( + RArray& aAllowedNotes, + RArray& aAllowedSubServices ) = 0; + + /** + * Cancels all notes shown by CCH UI. + * If there is nothing to dismiss, call to this method does nothing. + * + * @since S60 5.0 + */ + virtual void CancelNotes() = 0; + + /** + * Reserved for future use. + * + * @since S60 5.0 + */ + virtual void Reserved1() = 0; + + /** + * Reserved for future use. + * + * @since S60 5.0 + */ + virtual void Reserved2() = 0; + }; + +#endif // M_CCHUI_H