wvuing/IMPSServiceSettingsUI/Src/CWVSettingsUISettingItemEditor.h
branchRCL_3
changeset 13 a941bc465d9f
parent 0 094583676ce7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wvuing/IMPSServiceSettingsUI/Src/CWVSettingsUISettingItemEditor.h	Wed Sep 01 12:31:13 2010 +0100
@@ -0,0 +1,175 @@
+/*
+* Copyright (c) 2003 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:  Setting item array editor
+*
+*/
+
+
+
+#ifndef CWVSETTINGSUISETTINGITEMEDITOR_H
+#define CWVSETTINGSUISETTINGITEMEDITOR_H
+
+//  INCLUDES
+#include "impscommonuibuilddefinitions.h"
+
+#include <e32base.h>
+#include <badesca.h>
+#include <aknsettingpage.h>
+
+// FORWARD DECLARATIONS
+
+// CLASS DECLARATION
+class CAknSettingItemArray;
+class CIMPSSAPSettingsStore;
+class CSelectionItemList;
+class CIMPSPresenceConnectionUi;
+class CIMPSSAPSettings;
+
+/**
+*  Setting item list creator
+*  Creates a setting item list.
+*
+*  @lib WVServiceSettingsUi.dll
+*  @since 2.1
+*/
+NONSHARABLE_CLASS( CWVSettingsUISettingItemEditor ) : public CBase, public MAknSettingPageObserver
+    {
+public: // Constructor and destructor
+    // prohibit construction and destruction
+
+    /**
+    * C++ default constructor.
+    */
+    CWVSettingsUISettingItemEditor();
+
+    /**
+    * Destructor.
+    */
+    virtual ~CWVSettingsUISettingItemEditor();
+
+public: // New methods
+
+    /**
+    * Creates a setting item list.
+    * @param aIsPopUp is the setting item a popup
+    * @param aListBoxIndex index of the edited item
+    * @param aSettingItemList setting item array
+    * @param aSAPSettingsStore SAP settings store
+    * @param aPECLoginType PEC login type
+    * @param aPECLoginTypeEdited tells if the login type was edited
+    * @param aIMLoginTypeEdited tells if the login type was edited
+    * @param aSelectedDaysPEC selected days array of PEC
+    * @param aConnectHoursPECInt connection hours
+    * @param aPECConnHoursEdited was PEC connection hours edited
+    * @param aSelectedDaysIM selected days array of IM
+    * @param aConnectHoursIMInt connection hours
+    * @param aIMConnHoursEdited was IM connection hours edited
+    * @param aCancelled was edit cancelled
+    * @param aCASettings tell if we are showing CA settings item
+    * @return setting item list
+    */
+    void EditSettingItemL( TBool aIsPopUp,
+                           TInt aListBoxIndex,
+                           CAknSettingItemArray& aSettingItemList,
+                           CIMPSSAPSettingsStore& aSAPSettingsStore,
+                           TInt& aIMLoginType,
+                           TBool& aIMLoginTypeEdited,
+                           CSelectionItemList* aSelectedDaysIM,
+                           TInt& aConnectHoursIMInt,
+                           TBool& aIMConnHoursEdited,
+                           TBool& aCancelledaCancelled,
+                           TInt aSettingItem,
+                           CIMPSPresenceConnectionUi* aConnectionUI = NULL,
+                           TBool * aForcedLoginMade = NULL );
+
+private: // New methods
+
+    /**
+    * Show missing information error note
+    * @since 2.1
+    */
+    void ShowMissingInfoErrorNoteL();
+
+    /**
+    * Edits connect days setting item
+    * @param aSelectionItemList a list of the days that can be selected
+    * @param aCancelled was edit cancelled
+    * @since 2.5
+    */
+    void EditConnectedDaysL( CSelectionItemList* aSelectionItemList, TBool& aCancelled );
+
+    /**
+    * Edit connect hours setting item
+    * @param aConnectHoursInt tells which setting item is selected
+    * @param aCancelled was edit cancelled
+    * @since 2.5
+    */
+    void EditConnectedHoursL( TInt& aConnectHoursInt, TBool& aCancelled );
+
+    /**
+    * Edit login type setting item
+    * @see EditConnectedHoursL
+    * @since 2.6
+    */
+    void EditLoginTypeL( TBool aIsPopUp,
+                         TInt aListBoxIndex,
+                         CAknSettingItemArray& aSettingItemList,
+                         CIMPSSAPSettingsStore& aSAPSettingsStore,
+                         TInt& aIMLoginType,
+                         TBool& aIMLoginTypeEdited,
+                         CSelectionItemList* aSelectedDaysIM,
+                         TInt& aConnectHoursIMInt,
+                         TBool& aIMConnHoursEdited,
+                         TBool& aCancelled,
+                         TInt aSettingItem );
+
+    /**
+     * Shows necessary query and executes login
+     * if user tries to activate automatic login
+     * type for server he/she hasn't not logged in
+     * before.
+     * @since S60 v3.2
+     * @param aSapSettings reference to current SAP
+     * @return ETrue if user accepted quey and login succesful,
+     *         EFalse if user cancelled query or login cancelled
+     *         or failed.
+     */
+    TBool ForceLoginL( CIMPSSAPSettings& aSapSettings );
+
+private: // methods from base classes
+    /**
+    * From MAknSettingPageObserver
+    * @see MAknSettingPageObserver
+    */
+    virtual void HandleSettingPageEventL( CAknSettingPage* aSettingPage,
+                                          TAknSettingPageEvent aEventType );
+
+
+private:    // Data
+
+    // Doesn't own: SAP Settings store
+    CIMPSSAPSettingsStore* iSAPSettingsStore;
+    // Doesn't own: Setting item array
+    CAknSettingItemArray* iSettingItemArray;
+
+    // Doesn't own: Connection UI
+    CIMPSPresenceConnectionUi* iConnectionUI;
+
+    // Will tell if forced login was completed or not
+    TBool* iForcedLoginMade;
+    };
+
+#endif      // CWVSETTINGSUISETTINGITEMEDITOR_H
+
+// End of File