apengine/apsettingshandlerui/inc/ApSelectorDialog.h
author Simon Howkins <simonh@symbian.org>
Thu, 18 Nov 2010 15:05:52 +0000
branchRCL_3
changeset 76 40780c2f3a6b
parent 0 5a93021fdf25
permissions -rw-r--r--
Adjusted to avoid exports, etc, from a top-level bld.inf

/*
* 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 dialog CApSelectorDialog for access point selection.
*
*/


#ifndef APSELECTORDIALOG_H
#define APSELECTORDIALOG_H

// INCLUDES
#include <aknlists.h>
#include <AknForm.h>

#include <ApSettingsHandlerCommons.h>
#include <ActiveApDb.h>

// FORWARD DECLARATIONS
class CApSelectorListboxModel;
class CApSelectorListbox;
class CTextOverrides;
class CEikStatusPane;
class CAknTitlePane;
class CAknNavigationControlContainer;
class CAknNavigationDecorator;
class CApSettingsModel;
class CApSettingsHandlerImpl;


// CLASS DECLARATION
/**
* CApSelectorDialog dialog class
* 
*/
NONSHARABLE_CLASS( CApSelectorDialog ) : 
        public CAknDialog, public MEikListBoxObserver, 
        public MActiveApDbObserver
    {

    public: // Constructors and destructor
        /**
        * Create and launch dialog.
        * @param aModel Model to be used for reading data. Not owned.
        * Must remain intact while the dialog exists.
        * @param aHandler A CApSettingsHandlerImpl 
        * @param aHighLight The item to highlight
        * @param aSelected  The UID of the selected item. 
        * @return The dialog's return code
        */
        TInt ConstructAndRunLD( CApSettingsModel& aModel, 
                                CApSettingsHandlerImpl& aHandler,
                                TUint32 aHighLight, TUint32& aSelected );


   
        /**
        * Construct the dialog. The passed parameters determine 
        * the filtering rules it will use.
        * @param aListType      The list type it should use to display 
        *                       the list of access points
        * @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 aNoEdit        Gives wether editing is allowed or not
        * @param aReqIpvType    The IPv type which are included in the list
        * @return The constructed dialog object
        */
        static CApSelectorDialog* NewL( TSelectionListType aListType,
                                        TSelectionMenuType aSelMenuType,
                                        TInt aIspFilter,
                                        TInt aBearerFilter,
                                        TInt aSortType,
                                        TUint32& aEventStore,
                                        TBool aNoEdit,
                                        TInt aReqIpvType = EIPv4 
                                        );


        /** 
        * Destructor.
        */
        ~CApSelectorDialog();

    protected:
        /**
        * Constructor. The passed parameters determine 
        * the filtering rules it will use.
        * @param aListType      The list type it should use to display 
        *                       the list of access points
        * @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 aReqIpvType    The IPv type which are included in the list
        * @param aNoEdit        Gives wether editing is allowed or not
        */
        CApSelectorDialog(  TSelectionListType aListType,
                            TSelectionMenuType aSelMenuType,
                            TInt aIspFilter,
                            TInt aBearerFilter,
                            TInt aSortType,
                            TUint32& aEventStore,
                            TInt aReqIpvType,
                            TBool aNoEdit
                          );



    public: // New functions

        /**
        * Sets initial texts
        */
        void InitTextsL();


        /**
        * Handles listbox data changes
        */
        void HandleListboxDataChangeL();

        
        /**
        * Sets the text overrides.
        * @param aOverrides An object containing the overriden texts
        */
        void SetTextOverrides( CTextOverrides* aOverrides );

        
        /**
        * Checks if the list is empty
        */
        void CheckIfEmptyL();

        
        /**
        * Sets the highlight 
        */
        void SetHighlighted();

    public: // Functions from base classes
        // From CCoeControl
        virtual void ActivateL();
        
        // From CCoeControl
        virtual void GetHelpContext(TCoeHelpContext& aContext) const;

        // From MActiveApDbObserver
        virtual void HandleApDbEventL( TEvent anEvent );

        // From MEikCommandObserver
        virtual void ProcessCommandL( TInt aCommandId ) ; 

        // From MEikListBoxObserver
        void HandleListBoxEventL( CEikListBox* aListBox, 
                                  TListBoxEvent aEventType );

        SEikControlInfo CreateCustomControlL( TInt aControlType );

        // From MEikMenuObserver
        virtual void DynInitMenuPaneL( TInt aResourceId, 
                                       CEikMenuPane* aMenuPane );

        // From CAknDialog
        TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent,
                                     TEventCode aType);


    protected:
        // From CEikDialog
        virtual void PreLayoutDynInitL();

        
        // From CEikDialog
        virtual void PostLayoutDynInitL();

        // From CAknDialog
        TBool OkToExitL( TInt aButtonId );

        /**
        * Internal representation of the implementation of 
        * ProcessCommandL from MEikCommandObserver
        */
        void DoProcessCommandL( TInt aCommandId );


    private: //data

        CEikStatusPane*                 iStatusPane;    // NOT owned
        CAknTitlePane*                  iTitlePane;     // NOT owned
        CAknNavigationControlContainer* iNaviPane;      // NOT owned
        CAknNavigationDecorator*        iNaviDecorator; // owned
        HBufC*                          iOldTitleText;
        CApSettingsModel*               iDataModel; // not owned,
                                                    // passed for usage
        CApSelectorListbox*             iList;

        CApSettingsHandlerImpl*         iHandler;
        CApSelectorListboxModel*        iModel;
        TSelectionListType              iListType;
        TSelectionMenuType              iSelMenuType;

        TUint32                         iHighLight;
        TUint32*                        iSelected;        

        TInt                            iIspFilter;
        TInt                            iBearerFilter;
        TInt                            iSortType;

        CTextOverrides*                 iTextOverrides; // not owned,
                                                        // passed for usage

        TUint32                         iPreferredUid;
        TInt                            iPreferredLine;
        TUint32*                        iEventStore;
        TBool                           iNeedUnlock;
        TBool                           iModelPassed;
        TApUiExitReason                 iExitReason;
        
        TInt                            iReqIpvType; /// Default is IPv4
        TInt                            iVariant;    /// Local variant value

#ifdef __TEST_OOMDEBUG
        TBool                           iMemTestOn;
#endif // __TEST_OOMDEBUG
        
        TBool                           iInitialised;
        TBool                           iNoEdit;
        TBool							iHelpSupported;
    };

#endif

// End of File