diff -r cad71a31b7fc -r e36f3802f733 voiceui/voiceuivoicerecognition/inc/vuicnbestlistdialog.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/voiceui/voiceuivoicerecognition/inc/vuicnbestlistdialog.h Wed Sep 01 12:29:17 2010 +0100 @@ -0,0 +1,196 @@ +/* +* Copyright (c) 2004-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: Definition of class that shows the N-Best List +* +*/ + +#ifndef VUICNBESTLISTDIALOG_H +#define VUICNBESTLISTDIALOG_H + +// INCLUDES +#include +#include +#include + +// FORWARD DECLARATIONS +class CAknIconArray; +class CListQueryDialog; +class MKeyCallback; + +// CONSTANTS + +// CLASS DECLARATION + +/** +* The N-Best List Dialog +* @lib VoiceUiRecognition.lib +*/ +NONSHARABLE_CLASS( CNBestListDialog ) : public CCoeControl, + public MEikCommandObserver, + public MAknDialogMediatorObserver + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + */ + static CNBestListDialog* NewL(); + + /** + * Destructor. + */ + virtual ~CNBestListDialog(); + + public: // New functions + + /** + * Registers given object as a key listener + */ + void RegisterForKeyCallback( MKeyCallback* aKeyCallback ); + + /** + * Creates N-Best List + * @param aItems Items that will be shown in the list. Takes ownership of the list. + * @param aHeader Optional header text for the list + */ + void CreateNBestListPopupLC( CDesC16ArrayFlat* aItems, + const TDesC& aHeader = KNullDesC ); + + /** + * Shows N-Best List + * @return Key value that caused the dialog to be dismissed + */ + TInt ShowNBestListPopupL(); + + /** + * Sets n-best list softkeys + * @param aResourceId Softkey resource id + */ + void SetSoftkeysL( TInt aResourceId ); + + /** + * Sets optional commands hidder or visible + * @param aHidden ETrue if commands should be hidden else EFalse + */ + void SetCommandsHidden( TBool aHidden ); + + /** + * Takes care of the headset short key presses. Replaces the list with new one + * or moves down one item in the list. + * @param aItems New items that will be shown in the list. Takes ownership of the list. + * @return EFalse if the end of the list is passed else ETrue + */ + TBool HandleShortKeypressL( CDesC16ArrayFlat* aItems ); + + /** + * Returns currently selected index + * @return Index of current n-best list selection + */ + TInt SelectedIndex(); + + public: // Functions from base classes + + /** + * From CCoeControl Called when a key is pressed + * @see CCoeControl + */ + TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType ); + + /** + * From MEikCommandObserver + * @see MEikCommandObserver for more information. + */ + void ProcessCommandL( TInt aCommandId ); + + /** + * From MAknDialogMediatorObserver + * @see MAknDialogMediatorObserver for more information. + */ + TAknDialogMediatorObserverCommand MediatorCommandL( TUid aDomain, TUid aCategory, + TInt aCommandId, + const TDesC8& aData ); + + /** + * From MAknDialogMediatorObserver + * @see MAknDialogMediatorObserver for more information. + */ + void NotifyMediatorExit(); + + private: // New functions + + /** + * Converts key event to one of keypress enumeration values + * @param aKeyEvent Original key event + * @return One of keypress enumeration values + */ + TInt ConvertKeyEventL( const TKeyEvent& aKeyEvent ); + + /** + * Creates new icon array. Ownership is transferred to caller. + * @return Icon array + */ + CArrayPtr* CreateIconArrayL(); + + /** + * Load a possibly skinned icon (with mask) and append it to an + * icon array. + * @param aArray Icon array to add the icon to + * @param aID Skin ID for the icon + * @param aBitmapId Id for the default icon in the MBM file + * @param aMaskId Id for the default icon mask in the MBM file + */ + static void AppendIconToArrayL( CAknIconArray* aArray, + const TAknsItemID& aID, + TInt aBitmapId, + TInt aMaskId ); + + /** + * Creates and sets n-best list data to secondary display + * @param aItems New items that will be shown in the list. Takes ownership of the list. + */ + void CreateAndSetSecondaryDisplayDataL( CDesC16ArrayFlat* aItems ); + + private: // Constructors + + /** + * C++ default constructor. + */ + CNBestListDialog(); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + private: //data + + // Dialog + CListQueryDialog* iDialog; + + // Key observer + MKeyCallback* iKeyCallback; + + // Index of currently selected item + TInt iCurrentIndex; + + // Number of tags in the list + TInt iTagCount; + + // Current CBA resource id + TInt iCba; + }; + +#endif // VUICNBESTLISTDIALOG_H + +// End of File \ No newline at end of file