/*
* Copyright (c) 2006 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 class provides some useful methods to launch different dialogs.
*
*/
#ifndef IMDIALOGUTILS_H
#define IMDIALOGUTILS_H
// INCLUDES
#include <eiklbm.h>
#include <avkon.rsg> // for R_AVKON_SOFTKEYS_EMPTY
#include <aknnotedialog.h>
// CLASS DECLARATION
/**
* This class provides some useful methods to launch different dialogs.
*
* @lib chat.app
* @since
*/
class IMDialogUtils
{
public: // Enumerations
enum TLeftSoftkey
{
EDefault = 0,
ESend,
EOk
};
enum TInitialSelectionMode
{
ESelectAll = 0, // Default mode
ESelectNone
};
public: // New functions
/**
* Displays information note with given text
* @since
* @param aText Text to show in note
*/
IMPORT_C static void DisplayInformationNoteL( const TDesC& aText );
/**
* Displays information note with given text
* @since
* @param aTextResource Resource for information text ()
* @param aParameter Parameter data. If not given, then text is loaded
* with just AllocReadResourceLC
*/
IMPORT_C static void DisplayInformationNoteL( TInt aTextResource,
const TDesC& aParameter = KNullDesC );
/**
* This method displays popuplist
* @param aItemList Item list for dialog
* @param aTitleResourceId Resource id of title
* @param aOwnerShipType Ownershiptype
* @param aEmptyListPrompt Prompt of empty list
*/
IMPORT_C static void DisplayPopupListL( MDesCArray* aItemList,
const TInt aTitleResourceId,
TListBoxModelItemArrayOwnership aOwnerShipType,
const TInt aEmptyListPrompt = KErrNotFound );
IMPORT_C static void DisplayPopupListL( TInt& aSelectedIndex, MDesCArray* aItemList,
const TDesC& aTitle,
TListBoxModelItemArrayOwnership aOwnerShipType,
const TInt aEmptyListPrompt /*=-1*/ );
/**
* This method displays Text Query Dialog
* @param aDataText Descriptor whom written data is stored
* @param aTitleResourceId Resource ID of title text
* @param aDialogResource Resource of dialog
* @param aPredictiveInput Enable T9 predictive input (when ETrue)
* @param aLeftSoftkeyAlwaysVisible Is LSK always visible, or visible
* only when there is text in the editor.
* @param aLeftSoftkey Left soft key of dialog.
* @param aSelectionMode Initial selection mode in dialog editor.
* @param aDomainSelectionQuery Is domain selection variated on or not,
* ETrue causes dialog to exit when editor field
* is cleared by user.
* @return KeyCode (e.g. EAknSoftKeyOk)
*/
IMPORT_C static TInt DisplayTextQueryDialogL( TDes& aDataText,
const TInt aTitleResourceId,
const TInt aDialogResourceId,
TBool aPredictiveInput = EFalse,
TBool aLeftSoftkeyAlwaysVisible = EFalse,
TLeftSoftkey aLeftSoftkey = EDefault,
TInitialSelectionMode aSelectionMode = ESelectAll,
TBool aDomainSelectionQuery = EFalse );
/**
* Displays message query dialog
* @param aDialogResourceId Dialog resource
* @param aMsgText Message text (empty by default)
* @param aHeaderText Header text (empty by default)
* @param aPredictiveInput Turn on T9 support if ETrue (off by default)
* @return status
*/
IMPORT_C static TInt DisplayMessageQueryDialogL( const TInt aDialogResourceId,
const TDesC& aMsgText = KNullDesC,
const TDesC& aHeaderText = KNullDesC,
TBool aPredictiveInput = EFalse );
/**
* Displays multiselection list query dialog.
* Returns NULL if aItemList is empty or if user cancels the query!
*
* @param aItemList List of items in selection list
* @param aTitle Dialog title
* @return Selected items, NOTE THAT THE OWNERSHIP IS TRANSFERRED TO CALLER!
*/
IMPORT_C static CDesCArray* MultiselectionListQueryDialogL(
const MDesCArray& aItemList,
const TDesC& aTitle );
/**
* This method displays multiselection List Query Dialog.
* NOTE that it is the responsibility of the caller to use
* cleanupstack for aItemList (ownership is NOT transferred to the
* list box).
* @param aIndexArray Array of selections that are selected in dialog
* @param aItemList Array of list items (must be formatted)
* @param aDialogResourceId Resource ID of dialog
* @param aArrayOfSelectionIndexes Array of predefined indexes (not mandatory)
* @param aListEmptyText Text to be shown if the list is empty
* @param aAlternativeTitle Alternative title text
* @param aIsForwardQuery The dialog is for forwarding the message (ETrue)
* @return KeyCode (e.g. EAknSoftKeyOk)
*/
IMPORT_C static TInt DisplayListQueryDialogL( CArrayFix< TInt >* aIndexArray,
MDesCArray* aItemList,
const TInt aDialogResourceId,
CArrayFix< TInt >* aArrayOfSelectionIndexes = NULL,
const TDesC& aListEmptyText = KNullDesC,
const TDesC& aAlternativeTitle = KNullDesC );
/**
* This method displays singleselection List Query Dialog
* NOTE that it is the responsibility of the caller to use
* cleanupstack for aItemList (ownership is NOT transferred to the
* list box).
* @param aSelectedIndex Index of selected item
* @param aItemList List of Items (Must be formatted)
* @param aDialogResourceId Resource ID of dialog
* @param aIsForwardQuery The dialog is for forwarding the message (ETrue)
* @return KeyCode (e.g. EAknSoftKeyOk)
*/
IMPORT_C static TInt DisplayListQueryDialogL( TInt* aSelectedIndex,
MDesCArray* aItemList,
const TInt aDialogResourceId,
const TDesC& aAlternativeTitle = KNullDesC,
const TDesC& aListEmptyText = KNullDesC,
const TBool aIsForwardQuery = EFalse,
const TBool aIsOnlySelect = EFalse );
/**
* This method displays note dialogs e.g. confirmation dialog
* Note dialog's type is defined in resource file
* @param aResourceId Resource ID of dialog
* @return KeyCode (e.g. EAknSoftKeyOk)
*/
IMPORT_C static TInt DisplayNoteDialogL( const TInt aResourceId );
/**
* This method displays note dialogs e.g. confirmation dialog
* Note dialog's type is defined in resource file
* @param aText Prompt text of dialog
* @param aButtonsResourceId tells buttons that are shown with note, default none
* @param aTimeout timeout when note showing stops
* @return KeyCode (e.g. EAknSoftKeyOk)
*/
IMPORT_C static TInt DisplayNoteDialogL( const TDesC& aText,
const TInt aButtonsResourceId = R_AVKON_SOFTKEYS_EMPTY,
const CAknNoteDialog::TTimeout& aTimeout = CAknNoteDialog::EShortTimeout );
/**
* This method displays error notes for corresponding resource Id
* @param aResourceId Id for resource to be shown
* @return KeyCode
*/
IMPORT_C static TInt DisplayErrorNoteL( const TInt aResourceId );
/**
* This method displays error notes for corresponding resource Id
* @param aText Prompt text of dialog
* @param aSoftkeyOk Should there be OK softkey
* @return KeyCode
*/
IMPORT_C static TInt DisplayErrorNoteL( const TDesC& aText, TBool aSoftkeyOk = EFalse );
/**
* Displays query dialog with given data
* @param aDialogResourceId Dialogs resource id
* @param aTextResourceId Resource id of the text
* @return Dialog dismiss key
*/
IMPORT_C static TInt DisplayQueryDialogL( TInt aDialogResourceId,
TInt aTextResourceId );
/**
* Displays query dialog with given data
* @param aDialogResourceId Dialogs resource id
* @param aPrompt Prompt text
* @return Dialog dismiss key
*/
IMPORT_C static TInt DisplayQueryDialogL( TInt aDialogResourceId,
const TDesC& aPrompt = KNullDesC );
/**
* Displays YES/NO query dialog with given text prompt
* @param aTextResourceId Resource id of the text
* @return Dialog dismiss key
*/
IMPORT_C static TInt DisplayYesNoConfirmationDialogL( TInt aTextResourceId );
/**
* Displays YES/NO query dialog with given text prompt
* @param aPrompt Prompt text
* @return Dialog dismiss key
*/
IMPORT_C static TInt DisplayYesNoConfirmationDialogL( const TDesC& aPrompt );
/**
* Displays Error notification with OK softkey and given text prompt
* @param aTextResourceId Resource id of the text
* @return Dialog dismiss key (EAknSoftKeyOk)
*/
IMPORT_C static TInt DisplayErrorConfirmationNoteL( TInt aTextResourceId );
/**
* Displays Error notification with OK softkey and given text prompt
* @param aPrompt Prompt text
* @return Dialog dismiss key (EAknSoftKeyOk)
*/
IMPORT_C static TInt DisplayErrorConfirmationNoteL( const TDesC& aPrompt );
/**
* Displays confirmation notification with given text prompt and
* without softkeys
* @param aPrompt Prompt text
* @return Dialog dismiss key (EAknSoftKeyOk)
*/
IMPORT_C static TInt DisplayConfirmationNoteL( TInt aTextResourceId );
};
#endif // IMDIALOGUTILS_H
// End of File