--- /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 <aknform.h>
+#include <eiklbo.h>
+#include <bldvariant.hrh>
+
+// 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