diff -r 000000000000 -r 094583676ce7 wvuing/wvuiave/AppSrc/CCAAccessListDialog.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wvuing/wvuiave/AppSrc/CCAAccessListDialog.h Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,267 @@ +/* +* 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: Declares accesslist dialog + * +*/ + + +#ifndef CCAACCESSLISTDIALOG_H +#define CCAACCESSLISTDIALOG_H + +// INCLUDES +#include +#include +#include + +// FORWARD DECLARATIONS +class CCAStatusPaneHandler; +class CCAAccessArray; +class CCAAppUi; +class MCAGroupPropertiesPC; + + +// CLASS DECLARATION +/** + * This class declares dialog for accesslist + * @lib chatng.app + */ +class CCAAccessListDialog : public CAknDialog, + public MEikListBoxObserver + { + public: // Definitions + + /// Enumeration for list types + enum TListType + { + EAdminList = 0, + EAccessList, + EBannedList + }; + + public: // Constructors and destructor + + /** + * C++ default constructor. + * @param aTitlePane Handle to title pane + * @param aUserList List of users + * @param aIsMemberAccessModified Will be set to ETrue when member's + * access is modified + * @param aFirstItemCanBeEdited The first item can be edited or not + * @param aRemoveAllShouldExitDialog Removing all members should exit + * the dialog after removal + * @param aTitleResource The title resource of the dialog + * @param aFilterList users that should not be put on the aUserList + * @param aFilterList2 users that should not be put on the aUserList + */ + CCAAccessListDialog( CCAStatusPaneHandler& aTitlePane, + CDesCArray& aUserList, + TBool& aIsMemberAccessModified, + TBool aFirstItemCanBeEdited, + TBool aRemoveAllShouldExitDialog, + TInt aTitleResource, + TListType aListType, + CDesCArray* aFilterList = NULL, + CDesCArray* aFilterList2 = NULL + ); + + /** + * Destructor + */ + virtual ~CCAAccessListDialog(); + /** + * Symbian OS Second Phased constructor + * @param aMenuBarResourceId Menu items to be shown in options menu + */ + void ConstructL( TInt aMenuBarResourceId ); + + + /** + * Help Key Support + * This function is called by the Framework to get the context to launch + * Help + * + * @param aContext The context that contains the appid and the help id. + */ + void GetHelpContext( TCoeHelpContext& aContext ) const; + + private: //new functions + + /** + * This method displays data query for WVID + */ + void DisplayManualDataQueryL(); + + /** + * This method launches popup list that contains items from friends list + */ + void DisplayPopupFriendsListL(); + + /** + * This method shows confirmation dialog when item is removed from list + */ + void DisplayRmvConfirmationL(); + + /** + * Displays confirmation if all items are deleted from list + */ + void DisplayRmvAllConfirmationL(); + + /** + * This method displays pop up menu + */ + void DisplayPopupMenuL(); + + /** + * Checks if given user id is in given list + * and checks if it should be removed from other. + * @param aUserList List of users + * @param aUserId User id + * @return ETrue if on list EFalse if not + */ + TBool CanUserBeAddedToListL( const CDesCArray& aUserList, const TDesC& aUserId ); + + private: //From MEikCommandObserver + + /** + * Processes user commands. + * @see MEikCommandObserver + */ + void ProcessCommandL( TInt aCommand ); + + private: //from MEikMenuObserver + + /** + * Dynamically initialises menu pane + * @see MEikMenuObserver + */ + void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane ); + + protected: // MEikListBoxObserver + + /** + * @see MEikListBoxObserver + */ + void HandleListBoxEventL( CEikListBox* aListBox, TListBoxEvent aEventType ); + + protected: // Functions from CEikDialog + + /** + * From CEikDialog Sets the layout for dialog + */ + void PreLayoutDynInitL(); + + /** + * From CEikDialog. This method is called when buttons are pressed + * @param aButtonId Button id, if OK-button then dialog is dismissed + * @return EFalse if cancel is pressed + */ + TBool OkToExitL( TInt aButtonId ); + + /** + * From CCoeControl. Handles the keyevents + * @param aKeyEvent The key event. + * @param aType The type of key event: EEventKey, + * EEventKeyUp or EEventKeyDown. + * @return Indicates whether or not the key event + * was used by this control + */ + TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, + TEventCode aType ); + + /** + * From CEikDialog. @see CEikDialog for more details. + */ + TInt MappedCommandId( TInt aButtonId ); + + private: // Data + + //Handle to titlepane. doesn't own + CCAStatusPaneHandler* iTitlePane; + + //Access array. owns + CCAAccessArray* iItemArray; + + //UserId. owns + HBufC* iWVUserId; + + //UserList. doesn't own + CDesCArray& iUserList; + + //Pop-up menu. Owns + CEikMenuBar* iPopupMenu; + + //Indicates if member access is modified + TBool& iIsMemberAccessModified; + + // whether the first item can be edited or not + TBool iFirstItemCanBeEdited; + + // Indicates whether selecting the "remove all"-option + // should exit the dialog or not + TBool iRemoveAllShouldExitDialog; + + //Title of the dialog + TInt iTitleResource; + + // These variables are used for menubar and prompts + TInt iMenuBarResourceId; + TInt iDeletePromptResourceId; + TInt iDeleteAllPromptResourceId; + + // Owns the resource + HBufC* iEmptyText; + + // Topic for help launcher, not owned, just points to constant help topic + const TDesC* iHelpTopic; + + /** + * Not owned just referenced. The Filters are used to identify whether a + * contact has to be removed from say the + * banned list when added to access list + * access list when added to banned list + * banned list when added to admin privileges list + * admin privileges list when added to banned list + * The contact will be searched in these filters passed on from the goup + * properties dialog. + */ + CDesCArray* iFilterList; + + /** + * Not owned just referenced. The Filters are used to identify whether a + * contact has to be removed from say the + * banned list when added to access list + * access list when added to banned list + * banned list when added to admin privileges list + * admin privileges list when added to banned list + * The contact will be searched in these filters passed on from the goup + * properties dialog. + */ + CDesCArray* iFilterList2; + + /// List type. + TListType iListType; + + // EFalse, if numeric input for WVID fields is wanted + TBool iTextualInputMode; + + //Reference to the app ui instance + CCAAppUi* iAppUi; + + //Pointer to group properties dialog pc + MCAGroupPropertiesPC* iGroupPropertiesPC; + }; + +#endif // CCAACCESSLISTDIALOG_H + +// End of File