cmmanager/cmmgr/Framework/Inc/cmdlg.h
changeset 0 5a93021fdf25
child 1 40cb640ef159
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cmmanager/cmmgr/Framework/Inc/cmdlg.h	Thu Dec 17 08:55:21 2009 +0200
@@ -0,0 +1,279 @@
+/*
+* 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:  Dialog for setting the gateway. It's used temporarily.
+*
+*/
+
+#ifndef CMDIALOG_H
+#define CMDIALOG_H
+
+//  INCLUDES
+
+#include <AknForm.h>
+#include <AknInfoPopupNoteController.h>
+#include "cmlistboxmodel.h"
+#include "cmlistbox.h"
+#include "cmdestinationimpl.h"
+#include "cmmanagerimpl.h"
+#include <mcmdexec.h>
+#include "cmcommsdatnotifier.h"
+
+//#include <EIKLBO.H>
+
+// CLASS DECLARATION
+class CEikStatusPane;
+class CAknTitlePane;
+class CAknNavigationControlContainer;
+class CAknNavigationDecorator;
+class CCmWizard;
+class CCmdExec;
+class CDestDlg;
+
+/**
+ *  Dialog for displaying and editing connection methods
+ *  also base class for CUncatDlg
+ *  @lib cmmanager.lib
+ *  @since S60 v3.2
+ */
+NONSHARABLE_CLASS( CCmDlg ) : public CAknDialog
+                            , MEikListBoxObserver
+                            , MAknInfoPopupNoteObserver
+                            , public MCmdExec
+                            , public MCmCommsDatWatcher
+    {
+    public :    // construction
+        CCmDlg( CCmManagerImpl* aCmManager, TUint32 aDestUid,
+                CDestDlg* aDestDlg );
+
+        ~CCmDlg();
+        
+        /**
+        * Two-phased constructor.
+        */
+        static CCmDlg* NewL( CCmManagerImpl* aCmManager, TUint32 aDestUid,
+                             CDestDlg* aDestDlg );
+        
+        TInt ConstructAndRunLD( TUint32 aHighLight, TUint32& aSelected );        
+
+        // From MEikMenuObserver
+        virtual void DynInitMenuPaneL( TInt aResourceId, 
+                                       CEikMenuPane* aMenuPane );
+        // From MEikCommandObserver
+        virtual void ProcessCommandL( TInt aCommandId ) ;
+        
+        /**
+        * Updates listbox data
+        */
+        virtual void HandleListboxDataChangeL();   
+        
+        /**
+        * Handle key event.
+        * @param aKeyEvent The key event.
+        * @param aType Key event type.
+        * @return Response (was the key event consumed?).
+        */
+        TKeyResponse OfferKeyEventL
+            ( const TKeyEvent& aKeyEvent, TEventCode aType );
+
+	public:
+        /**
+         * From base class MCmdExec
+         */
+        void Execute();
+
+    public: // From CCoeControl
+    
+        /**
+        * Returns the help context
+        * From CCoeControl
+        * 
+        * @since S60 3.2
+        * @param aContext the returned help context
+        */
+        void GetHelpContext( TCoeHelpContext& aContext ) const;
+        
+        /**
+        * Handles the resource change
+        * From CCoeControl
+        * 
+        * @since S60 5.0
+        * @param aType Type of the resource change
+        */
+		void HandleResourceChange( TInt aType );
+        
+    public: // From MCmCommsDatWatcher
+        
+        /**
+         * Watch changes in CommsDat
+         */
+        virtual void CommsDatChangesL();
+                 
+    protected :    // from CEikDialog
+        TBool OkToExitL( TInt aButtonId ) ;
+        
+        virtual void PreLayoutDynInitL();
+        
+        SEikControlInfo CreateCustomControlL ( TInt aControlType );
+
+        // From MEikListBoxObserver
+        void HandleListBoxEventL( CEikListBox* aListBox, 
+                                  TListBoxEvent aEventType );
+        
+        /**
+        * Initialises listbox texts
+        */
+        virtual void InitTextsL();
+        
+        /**
+        * Sets the number of conn methods text on navi pane
+        */
+        void SetNoOfCMsL(TInt aCount);
+        
+    
+        //from MAknInfoPopupNoteObserver
+        /* Handles events reported from info popup note.
+        * @param aController The controller that controls the note, from
+        *   where the event originates.
+        * @param aEvent The event.
+        */
+        void HandleInfoPopupNoteEvent(
+            CAknInfoPopupNoteController* aController,
+            TAknInfoPopupNoteEvent aEvent ); 
+
+        /**
+        * Shows the 'bearer type: ' popup note
+        */
+        void ShowPopupNoteL();          
+        
+        /**
+        * @return the currently focused connection method in the list
+        */
+        virtual CCmPluginBase* CurrentCML();  
+        
+        /**
+        * @return the connection method in the list at the specified index
+        */
+        virtual CCmPluginBase* CMByIndexL( TInt aIndex );
+        
+        /**
+        * @return the connection mehtod count
+        */
+        virtual TInt CMCount();     
+        
+        /**
+        * deletes the currently highlighted conneciton method
+        */
+        void DeleteCurrentCmL();
+        
+        void RenameConnectionMethodL();
+        void PrioritiseConnectionMethodL();
+        void AddConnectionMethodL();
+        void CopyConnectionMethodL();
+        void MoveConnectionMethodL();
+        void EditConnectionMethodL();
+        
+        /**
+        * Indicates if a connection is in use and displays and error message
+        *
+        * @return ETrue if in use
+        */
+        TBool CurrentCmInUseL();
+        
+        virtual void ConstructCMArrayL( RArray<TUint32>& aCmIds );
+
+    public:
+        /**
+         * From base class MCmdExec
+         */
+        void HandleLeaveError( TInt aError );
+        
+    private:
+     
+        /**
+        * Finishes the priorizing method
+        *
+        * @param aOkPushed ETrue if the OK button pushed.
+        *                  EFalse if the Cancel button pushed. 
+        *
+        */
+        void FinishPriorizingL( TBool aOkPushed );    
+
+        /**
+         * Rebuild item index array to remove some Iap that has been deleted from
+         * CommsDat by other application
+         */
+        void ReBuildItemIndexArrayL();
+        
+        /**
+         * Reorder connection methods according to underlying connection in case of vpn
+         */
+        void ReOrderCMsL();
+        
+        /**
+         * Remove hidden Connection Methods from the Array
+         */
+        void ClearHiddenCMsFromArrayL( RArray<TUint32>& aCmIds );
+        
+        /**
+         * Get a proper index in list for priority
+         */
+        TInt GetInsertIndexL( TInt aCount, TUint32 aPriority );
+        
+    protected:
+        CCmListboxModel*    iModel;
+        TUint32             iHighlight;
+        TUint32*            iSelected;           
+        TBool               iModelPassed;
+        CCmListbox*         iListbox;
+        CEikStatusPane*     iStatusPane;    // NOT owned
+        CAknTitlePane*      iTitlePane;     // NOT owned
+        CAknNavigationControlContainer* iNaviPane;      // NOT owned
+        CAknNavigationDecorator*        iNaviDecorator; // owned
+        HBufC*              iOldTitleText;  
+        CCmManagerImpl*     iCmManager;   // NOT owned   
+        TUint32             iDestUid;  // uid of the destination the
+                                       // connection mehtods belong to
+        TBool               iPrioritising;
+        TInt                iExitReason; // Exit reason, can be KUserExit or 
+                                         // KUserBack used to pass user exit 
+                                         // event                                         
+        CAknInfoPopupNoteController*    iInfoPopupNoteController;
+        
+    private:        
+    
+        TInt                iCmToPrioritise; // connection mehthod index 
+                                            // selected to prioritise
+        CCmDestinationImpl* iCmDestinationImpl; // the destination the 
+
+        CCmWizard*          iCmWizard; // wizard for connection method creation
+        // Indicated that Escape has arrived and it should be forwarded when CmWizard
+        // finished its work
+        TBool               iEscapeArrived;
+        
+        TBool 				iProcessing;
+        TBool               iAlreadyConfirmedDelete;
+                                                // connection mehtods belongs to
+        TBool               iExitduringProcessing;
+        TBool               iBackduringProcessing;
+        CDestDlg*           iDestDlg;
+        
+    protected:
+        // This is nescessary becaue in case of not supported CMs the data base 
+        // and the lisbox content is different.(The listbox doesn' show the
+        // unsupported ones.)
+        RArray<TInt>        iItemIndex;
+        CCmdExec*           iCmdExec;
+    };
+
+#endif