apengine/apsettingshandlerui/inc/ApSelPopupList.h
changeset 0 5a93021fdf25
child 4 77415202bfc8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/apengine/apsettingshandlerui/inc/ApSelPopupList.h	Thu Dec 17 08:55:21 2009 +0200
@@ -0,0 +1,345 @@
+/*
+* Copyright (c) 2002 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 CApSelPopupList for access point selection.
+*/
+
+
+#ifndef APSEL_POPUP_LIST_DIALOG_H
+#define APSEL_POPUP_LIST_DIALOG_H
+
+// INCLUDES
+#include <aknradiobuttonsettingpage.h>
+#include <ApSettingsHandlerCommons.h>
+#include <ActiveApDb.h>  // for MActiveApDbObserver
+
+
+#include <AknIconArray.h>
+
+
+// FORWARD DECLARATIONS
+class CApSelectorListboxModel;
+class CApSettingsHandlerImpl;
+
+
+// CLASS DECLARATION
+/**
+* CApSelPopupList class
+* Pop-up access point selector 'control' object.
+*/
+NONSHARABLE_CLASS( CApSelPopupList ) : public CAknRadioButtonSettingPage, 
+                                       public MActiveApDbObserver
+    {
+
+    public: // Constructors and destructor
+
+        /**
+        * Creates the popup list selector object
+        * @param aModel                 Data model to be used for reading data.
+        *                               Not owned. Must remain intact while 
+        *                               the dialog exists.
+        * @param aHandler               A CApSettingsHandlerImpl handling data
+        * @param aCurrentSelectionIndex The item to highlight
+        * @param aPreferredUid          The preferred Uid to select
+        * @param aSelMenuType           The Options menu type it should have
+        * @param aIspFilter             The ISP filtering criteria
+        * @param aBearerFilter          The bearer filtering criteria
+        * @param aSortType              The ordering type for the list
+        * @param aEventStore            Event information holder
+        * @param aItemArray             The listbox items
+        * @param aNeedsNone             Gives whether 'None' item is present
+        * @param aNoEdit                Gives wether editing is allowed or not
+        * @param aReqIpvType            The IPv types included in the list
+        * @param aVpnFilterType         The VPN filtering type
+        * @return The created popup list selector object
+        */
+        static CApSelPopupList* NewL
+                                (
+                                CApSettingsModel& aModel,
+                                CApSettingsHandlerImpl& aHandler,
+                                TInt& aCurrentSelectionIndex,
+                                TInt& aPreferredUid,
+                                TSelectionMenuType aSelMenuType,
+                                TInt aIspFilter,
+                                TInt aBearerFilter,
+                                TInt aSortType,
+                                TUint32& aEventStore,
+                                CDesCArrayFlat* aItemArray,
+                                TBool aNeedsNone,
+                                TBool aNoEdit,
+                                TInt aReqIpvType = EIPv4,
+                                TVpnFilterType aVpnFilterType = EVpnFilterBoth
+                                );
+
+
+
+        /**
+        * Creates the popup list selector object
+        * @param aModel                 Data model to be used for reading data.
+        *                               Not owned. Must remain intact while 
+        *                               the dialog exists.
+        * @param aHandler               A CApSettingsHandlerImpl handling data
+        * @param aCurrentSelectionIndex The item to highlight
+        * @param aPreferredUid          The preferred Uid to select
+        * @param aSelMenuType           The Options menu type it should have
+        * @param aIspFilter             The ISP filtering criteria
+        * @param aBearerFilter          The bearer filtering criteria
+        * @param aSortType              The ordering type for the list
+        * @param aEventStore            Event information holder
+        * @param aItemArray             The listbox items
+        * @param aNeedsNone             Gives whether 'None' item is present
+        * @param aReqIpvType            The IPv types included in the list
+        * @param aVpnFilterType         The VPN filtering type
+        * @param aIncludeEasyWlan       To include Easy WLAN AP's or not
+        * @param aNoEdit                Gives wether editing is allowed or not
+        * @return The created popup list selector object
+        */
+        static CApSelPopupList* NewL
+                                (
+                                CApSettingsModel& aModel,
+                                CApSettingsHandlerImpl& aHandler,
+                                TInt& aCurrentSelectionIndex,
+                                TInt& aPreferredUid,
+                                TSelectionMenuType aSelMenuType,
+                                TInt aIspFilter,
+                                TInt aBearerFilter,
+                                TInt aSortType,
+                                TUint32& aEventStore,
+                                CDesCArrayFlat* aItemArray,
+                                TBool aNeedsNone,
+                                TInt aReqIpvType,
+                                TVpnFilterType aVpnFilterType,
+                                TBool aIncludeEasyWlan,
+                                TBool aNoEdit
+                                );
+
+        /**
+        * Constructor
+        */
+        virtual void ConstructL();
+
+
+    protected:
+        /**
+        * Creates the popup list selector object
+        * @param aModel                 Data model to be used for reading data.
+        *                               Not owned. Must remain intact while 
+        *                               the dialog exists.
+        * @param aHandler               A CApSettingsHandlerImpl handling data
+        * @param aIndex                 The item to highlight
+        * @param aPreferredUid          The preferred Uid to select
+        * @param aSelMenuType           The Options menu type it should have
+        * @param aIspFilter             The ISP filtering criteria
+        * @param aBearerFilter          The bearer filtering criteria
+        * @param aSortType              The ordering type for the list
+        * @param aItemArray             The listbox items
+        * @param aEventStore            Event information holder
+        * @param aNeedsNone             Gives whether 'None' item is present
+        * @param aNoEdit                Gives wether editing is allowed or not
+        * @param aReqIpvType            The IPv types included in the list
+        * @param aVpnFilterType         The VPN filtering type
+        * @return The created popup list selector object
+        */
+        CApSelPopupList
+            (
+            CApSettingsModel& aModel,
+            CApSettingsHandlerImpl& aHandler,
+            TInt& aIndex,
+            TInt& aPreferredUid,
+            TSelectionMenuType aSelMenuType,
+            TInt aIspFilter,
+            TInt aBearerFilter,
+            TInt aSortType,
+            CDesCArrayFlat* aItemArray,
+            TUint32& aEventStore,
+            TBool aNeedsNone,
+            TBool aNoEdit,
+            TInt aReqIpvType = EIPv4,
+            TVpnFilterType aVpnFilterType = EVpnFilterBoth
+            );
+
+
+
+        /**
+        * Creates the popup list selector object
+        * @param aModel                 Data model to be used for reading data.
+        *                               Not owned. Must remain intact while 
+        *                               the dialog exists.
+        * @param aHandler               A CApSettingsHandlerImpl handling data
+        * @param aIndex                 The item to highlight
+        * @param aPreferredUid          The preferred Uid to select
+        * @param aSelMenuType           The Options menu type it should have
+        * @param aIspFilter             The ISP filtering criteria
+        * @param aBearerFilter          The bearer filtering criteria
+        * @param aSortType              The ordering type for the list
+        * @param aItemArray             The listbox items
+        * @param aEventStore            Event information holder
+        * @param aNeedsNone             Gives whether 'None' item is present
+        * @param aReqIpvType            The IPv types included in the list
+        * @param aVpnFilterType         The VPN filtering type
+        * @param aIncludeEasyWlan       To include Easy WLAN AP's or not
+        * @param aNoEdit                Gives wether editing is allowed or not
+        * @return The created popup list selector object
+        */
+        CApSelPopupList
+            (
+            CApSettingsModel& aModel,
+            CApSettingsHandlerImpl& aHandler,
+            TInt& aIndex,
+            TInt& aPreferredUid,
+            TSelectionMenuType aSelMenuType,
+            TInt aIspFilter,
+            TInt aBearerFilter,
+            TInt aSortType,
+            CDesCArrayFlat* aItemArray,
+            TUint32& aEventStore,
+            TBool aNeedsNone,
+            TInt aReqIpvType,
+            TVpnFilterType aVpnFilterType,
+            TBool aIncludeEasyWlan,
+            TBool aNoEdit
+            );
+
+        /**
+        * Destructor
+        */
+        virtual ~CApSelPopupList();
+
+
+    public: // New functions
+        /**
+        * Sets the highlight.
+        */
+        void SetHighlighted();
+
+    private:
+
+        /**
+        * Loads our own icons
+        * @return The icon offset where they were appended.
+        */
+        TInt LoadIconsL();
+
+
+    public: // Functions from base classes
+        // From CCoeControl
+        virtual void GetHelpContext(TCoeHelpContext& aContext) const;
+
+        /**
+        * Implements the MActiveApDbObserver protocol
+        */
+        virtual void HandleApDbEventL( TEvent anEvent );
+
+
+        /**
+        * Overrides ActivateL
+        */
+        virtual void ActivateL();
+
+        // from CCoeControl
+        virtual void HandleResourceChange(TInt aType);
+
+    protected:
+        // From CAknRadioButtonPage
+        /*
+        * Needed to know about SELECTION (not HIGHLIGHT!) changes
+        * to be able to update currently valid selection UID.
+        */
+        virtual void SelectCurrentItemL();
+        
+    private:
+        /**
+        * From CAknSettingPage
+        */
+        TBool OkToExitL( TInt aButtonId );
+
+
+    protected:  // New functions
+        /**
+        * Fills up listbox control with data dynamically
+        */
+        void FillListBoxWithDataL();
+        
+
+        /*
+        * Sets the Selected item in the list.
+        * Needed to initialize the list according to the Uid 
+        * and not to 'itemindex'...
+        */
+        void SetSelectedL();
+
+
+        /*
+        * Checks for & handles the 'empty list' situation.
+        * According to the spec., prompts for creating a new one...
+        */
+        void CheckIfEmptyL();
+
+    protected:  // Functions from base classes
+
+        /**
+        * From CAknSettingPage
+        */
+        virtual void DynInitMenuPaneL( TInt aResourceId, 
+                                       CEikMenuPane* aMenuPane );
+
+        // From MEikCommandObserver
+        virtual void ProcessCommandL( TInt aCommandId );
+        
+        // From MEikListBoxObserver
+        void HandleListBoxEventL( CEikListBox* aListBox, 
+                MEikListBoxObserver::TListBoxEvent aEventType );
+
+        // From CCoeControl
+        TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, 
+                                     TEventCode aType);
+
+    private: //data
+        CApSettingsModel*               iDataModel; // not owns it, 
+                                                    // just passed for usage!
+        CAknSetStyleListBox*            iList;
+        CApSelectorListboxModel*        iModel;     // owns it, just passes
+                                                    // items for usage to list!
+        TInt*                           iSelected;  // does not owns it, 
+                                                    // just passed for usage!
+        TInt                            iBearerFilter;
+        TInt                            iIspFilter;
+        TInt                            iSortType;
+        TSelectionMenuType              iSelMenuType;
+        CApSettingsHandlerImpl*         iHandler;       // does not owns it, 
+                                                        // passed for usage
+        TUint32*                        iEventStore;    // to hold the events
+        TUint32                         iPreferredUid;
+        TInt                            iPreferredLine;
+        TBool                           iNeedsNone;
+        TBool                           iNeedUnlock;
+
+        TInt                            iReqIpvType; // Default is IPv4
+        TVpnFilterType                  iVpnFilterType;
+        TInt                            iVariant;       /// Local variant value
+
+        CAknIconArray*                  iIcons;
+
+        TBool                           iIncludeEasyWlan;
+        TBool                           iInitialised;
+        TBool                           iNoEdit;
+        TBool							iHelpSupported;
+        TBool							iProtectionSupported;
+        TBool                           iDoExit;
+        TInt                            iOldSelection;
+    };
+
+#endif
+
+// End of File