Attempt to represent the S^2->S^3 header reorganisation as a series of "hg rename" operations
/*
* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
* which accompanies this distribution, and is available
* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description: Uses notification framework to show a global list query with
* message field.
*
*/
#ifndef __AKNGLOBALLISTMSGQUERY_H__
#define __AKNGLOBALLISTMSGQUERY_H__
#include <aknnotifystd.h>
#include <aknquerydialog.h>
class CAknSDData;
/**
* Uses notification framework to show a global list query with message field.
*
* Usage:
* Create an active object, start it and pass its TRequestStatus as a
* parameter to ShowListMsgQueryL(). After the user selects one item from
* the query and accepts it, the request status will hold the number of the
* selected item. If the user cancels the query with softkey, the request status will
* hold -1. If method CancelListMsgQuery() is called, the request status will
* hold -3 (KErrCancel).
*
* Example 1. Show the global list message query:
* @code
* #include <akngloballistmsgquery.h>
* ...
* _LIT(KQueryHeaderText, "Global list msg query");
* _LIT(KQueryMsgText, "Query message.");
* _LIT(KListMsgQueryItem1, "Item 1");
* _LIT(KListMsgQueryItem2, "Item 2");
*
* CDesCArray* textArray = new (ELeave) CDesCArrayFlat(2);
* CleanupStack::PushL(textArray);
* textArray->AppendL(KListMsgQueryItem1);
* textArray->AppendL(KListMsgQueryItem2);
*
* if (iListObserver)
* {
* iListObserver->Cancel();
* delete iListObserver;
* iListObserver = 0;
* }
*
* if (iGlobalListMsgQuery)
* {
* delete iGlobalListMsgQuery;
* iGlobalListMsgQuery = 0;
* }
*
* iListObserver = CMyActiveObject::NewL();
* iGlobalListMsgQuery = CAknGlobalListMsgQuery::NewL();
*
* iGlobalListMsgQuery->ShowListMsgQueryL(
* textArray,
* iListObserver->iStatus,
* KQueryHeaderText,
* KQueryMsgText);
*
* iListObserver->Start();
*
* CleanupStack::PopAndDestroy(textArray);
* @endcode
*
* Example 2. Get and handle the result in active object. The result is simply displayed on
* screen using info message:
* @code
* void CMyActiveObject::RunL()
* {
* _LIT(KReceivedMsg, "Received:");
* TBuf<100> msg = KReceivedMsg();
* msg.AppendNum(iStatus.Int());
* CEikonEnv::Static()->InfoMsg(msg);
* }
* @endcode
*
* @lib AknNotify.lib
* @since S60 3.2
*/
NONSHARABLE_CLASS(CAknGlobalListMsgQuery) : public CBase
{
public:
/**
* Two-phased constructor.
*
* @return A pointer to the new instance.
*/
IMPORT_C static CAknGlobalListMsgQuery* NewL();
/**
* Two-phased constructor. Leaves the instance to cleanup stack.
*
* @return A pointer to the new instance.
*/
IMPORT_C static CAknGlobalListMsgQuery* NewLC();
/**
* Destructor.
*/
IMPORT_C ~CAknGlobalListMsgQuery();
/**
* Shows the global list message query.
*
* @param aItems Array of strings for list items. The items will be copied, so it is
* safe to delete the array as soon as ShowListMsgQueryL() has been called.
* @param aStatus TRequestStatus which will be completed when user dismisses the query.
* Will contain KErrInUse if another global list query is already being shown.
* Will contain KErrArgument if aSoftkeys does not point to a valid resource.
* Will contain KErrArgument if aItems array is empty.
* Will contain KErrArgument if aIndex is out of bounds.
* Will contain KErrArgument if aAcceptKeyId is EAknSoftkeyCancel.
* Will contain KErrArgument if aCancelKeyId is EAknSoftkeyOk.
* @param aHeaderText Query header text.
* @param aMsgText Query message text. Maximum is three lines.
* @param aIndex Index of the item that will be highlighted by default.
* @param aSoftkeys Softkey resource id from Avkon.rss. If used, give also
* aAcceptKeyId and aCancelKeyId.
* @param aAcceptKeyId Identifier of the softkey that is used to accept the query.
* @param aCancelKeyId Identifier of the softkey that is used to cancel the query.
* @param aHeaderImageFile A full path to image to be used in the header field.
* @param aImageId Image id.
* @param aImageId Image mask id.
* @param aTone Tone id.
*/
IMPORT_C void ShowListMsgQueryL(
const MDesCArray* aItems,
TRequestStatus& aStatus,
const TDesC& aHeaderText,
const TDesC& aMsgText,
const TInt aIndex = 0,
TInt aSoftkeys = 0,
TInt aAcceptKeyId = 0,
TInt aCancelKeyId = 0,
const TDesC& aHeaderImageFile = KNullDesC,
TInt aImageId = 0,
TInt aImageMaskId = -1,
CAknQueryDialog::TTone aTone = CAknQueryDialog::ENoTone);
/**
* Moves selection up.
*/
IMPORT_C void MoveSelectionUp();
/**
* Moves selection down.
*/
IMPORT_C void MoveSelectionDown();
/**
* Selects currently selected item in the list.
*/
IMPORT_C void SelectItem();
/**
* Cancels the query.
*/
IMPORT_C void CancelListMsgQuery();
/**
* Sets additional information to be sent to secondary display. Takes ownership of object.
* Must be called before sending data to notifier to have effect.
*
* @param aData Data to be sent to cover UI.
*/
IMPORT_C void SetSecondaryDisplayData(CAknSDData* aData);
/**
* Sets skin id for image. Must be called before ShowListMsgQueryL() is called.
*
* @param aId Image skin id.
*/
IMPORT_C void SetImageSkinId(const TAknsItemID& aId);
private:
/**
* Default constructor.
*/
CAknGlobalListMsgQuery();
/**
* Symbian second-phase constructor.
*/
void ConstructL();
/**
* Sets the heading for the query.
*/
void SetHeadingL(const TDesC& aHeading);
/**
* Updates the query.
*/
void UpdateListMsgQuery();
private:
// Command id.
TAknGlobalQueryCmd iCmd;
// Notifier handle.
RNotifier iNotify;
// Index to set which item will be selected.
TInt iIndex;
// Buffer to hold the variables passed to server.
CBufFlat *iBuffer;
// Pointer to buffer.
TPtrC8 iBufferPtr;
HBufC* iHeading;
CAknSDData* iAknSDData;
TBuf8<1> iResultBuf; // Not really used, but needed to prevent buffer handling errors.
TInt iSkinsMajorId;
TInt iSkinsMinorId;
};
#endif // __AKNGLOBALLISTMSGQUERY_H__