diff -r 000000000000 -r 2f259fa3e83a uifw/AknGlobalUI/OldStyleNotif/Inc/AknGroupedNotifierNote.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uifw/AknGlobalUI/OldStyleNotif/Inc/AknGroupedNotifierNote.h Tue Feb 02 01:00:49 2010 +0200 @@ -0,0 +1,259 @@ +/* +* Copyright (c) 2002-2007 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: Grouped notifier note for soft notifications. +* +*/ + +#ifndef __AKNGROUPEDNOTIFIERNOTE_H__ +#define __AKNGROUPEDNOTIFIERNOTE_H__ + +// INCLUDES +#include +#include +#include +#include // for MEikCommandObserver +#include +#include +#include "AknSystemPopup.h" // for MAknKeyLockObserver + +// FORWARD DECLARATIONS +class MAknKeyLockController; +class MAknKeyLockObserver; + +// DATA TYPES +enum TAknGroupedNotifierItem + { + EMissedCalls = 0, + ENewMessages, + ENewChatMsgs, + ENewMails, + EMaxItem + }; + +// CONSTANTS +const TInt KAknMaxGroupedNoteItemTextLength = 50; + +// CLASS DECLARATIONS + +/** + * Mixin class for the grouped soft notification dialog callback. + * + * @lib aknoldstylenotif.lib + */ +class MAknGroupedNotifierNoteObserver + { +public: + /** + * This method is called when the note is completed (either by accepting or discarding + * the note). + * + * @param aCommandId The id of the button the user pressed. + * @param aSelectedItem The selected item enum when the note has been accepted or EMaxItem + * if it has been discarded + */ + virtual void GroupedNoteCompletedL( + TInt aCommandId, + TAknGroupedNotifierItem aSelectedItem = EMaxItem) = 0; + + /** + * Support for adding new items to grouped form. + * + * @param aTexts Array into which add new texts. + * @param aOrder Key array for list to manage its entries. + */ + virtual void AddItemsL( + CDesCArray& aTexts, + CArrayFix& aOrder) = 0; + + /** + * Custom soft notifications may have custom softkeys. This method returns the softkeys + * and the accept softkey id for the given custom notification. + * + * @since S60 3.1 + * @param aCustomItem A custom notification for which to search softkeys. + * @param aSoftkeyResourceId On return, the softkeys resource identifier. + * @param aAcceptKeyId On return, the key that is used to accept the grouped notifier item, + * i.e. to launch the handler application. + * @param aLeftSoftkey Custom text for left softkey. + * @param aRightSoftkey Custom text for right softkey. + */ + virtual void SoftkeysForCustomItem( + TAknGroupedNotifierItem aCustomItem, + TInt& aSoftkeyResourceId, + TInt& aAcceptKeyId, + TDes& aLeftSoftkey, + TDes& aRightSoftkey) = 0; + }; + +/** + * Grouped soft notification dialog. + * + * @lib aknoldstylenotif.lib + */ +NONSHARABLE_CLASS(CAknGroupedNotifierNote) : public CAknListQueryDialog, public MDesCArray + { +public: // Constructors and destructor + /** + * C++ default constructor. + */ + CAknGroupedNotifierNote(); + + /** + * Destructor. + */ + virtual ~CAknGroupedNotifierNote(); + +public: // New functions + /** + * Construct method. + * + * @param aNoteObserver The observer to call after the notifier is completed. + */ + void ConstructL(MAknGroupedNotifierNoteObserver* aNoteObserver); + + /** + * This method is for setting the number of a certain item - for example, to set the number + * of missed calls to 7. If an item count is set to 0, the note should check if the list + * has less than two items left and if so call the NotifierItemCounteLessThanTwo()-method. + + * @param aItem Missed calls, new messages, new mail or new chat messages. + * @param aAmount The amount of items specified by aItem. + * @param aHighlight ETrue to set the item highlighted. + */ + void SetItemAmountL(TAknGroupedNotifierItem aItem, TInt aAmount, TBool aHighlight = EFalse); + +public: // Functions from base classes. + /** + * From CEikDialog. + * This function is called by the dialog framework before the dialog is sized and laid out. + */ + void PreLayoutDynInitL(); + + /** + * From CEikDialog. + * This function is called by the dialog framework after the dialog has been sized and laid + * out, but before it has been activated. + */ + void PostLayoutDynInitL(); + + /** + * From CCoeControl. + * Method to be called by framework when keypress occurs + * + * @param aKeyEvent The key pressed. + * @param aType Type of key pressed (EEventKeyUp or EEventKeyDown for instance). + * @return EKeyWasNotConsumed or EKeyWasConsumed depending whether key was processed or not. + */ + TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType); + + /** + * From MDesCArray. + * Gives number of items inside an array. + * + * @return Number of items. + */ + TInt MdcaCount() const; + + /** + * From MDesCArray. + * Returns a string from index. + * + * @param aIndex The string to be returned. + * @return The string. + */ + TPtrC MdcaPoint(TInt aIndex) const; + + /** + * From CAknListQueryDialog. + * Handle pointer event. + */ + void HandlePointerEventL(const TPointerEvent& aPointerEvent); + +protected: // Functions from base classes. + /** + * From CEikDialog. + * Method to be called when the user presses a softkey. + * + * @param aButtonId The id of the softkey that the user just pressed. + * @return ETrue if exit is to be performed, EFalse if not. + */ + TBool OkToExitL(TInt aButtonId); + + /** + * From CCoeControl. + * Sets the control to be ready for drawing. + */ + void ActivateL(); + + /** + * From CCoeControl + * Event handling section e.g for Listbox events. + * @param aControl Pointer to a control. + * @param aEventType The event type. + */ + void HandleControlEventL(CCoeControl* aControl, TCoeEvent aEventType); + +private: + enum TNoteAction + { + EDoNothing = 0, + ELaunchItemHandler, + EExitNote + }; + +private: + TBool AutoLockEnabled(); + + // Methods to handle order of items. + void RemoveType(TAknGroupedNotifierItem aItem); + void InsertType(TAknGroupedNotifierItem aItem); + + // Sets the correct softkeys depending on the focused item. + void UpdateSoftkeysL(); + + /** + * From MEikCommandObserver - this method is called by framework when a command is issued. + */ + virtual void ProcessCommandL(TInt aCommandId); + + virtual void CEikDialog_Reserved_1(); + virtual void CEikDialog_Reserved_2(); + virtual void CAknDialog_Reserved(); + virtual void CAknQueryDialog_Reserved(); + +private: // Data + MAknGroupedNotifierNoteObserver* iNoteObserver; + TInt iCount[EMaxItem]; // how many calls etc. + CArrayFix *iOrder; // which order are these. (ownership) + CDesCArray *iTexts; // (ownership) + CDesCArray *iTextsPlural; // (ownership) + __MUTABLE TBuf iBuffer; + TInt iSelectedItem; + TInt iHighlightedItem; + + // Dynamic softkeys for currently focused custom grouped notifier item. + TInt iCustomNoteSoftkeys; + + // Accept softkey for currently focused custom grouped notifier item. + TInt iCustomNoteAcceptKeyId; + + // Whether custom softkeys were used on previously focused notifier item + TBool iCustomNoteSoftkeysAssigned; + + TInt iAutoLockStatus; + }; + +#endif // __AKNGROUPEDNOTIFIERNOTE_H__ + +// End of File