diff -r 63be7eb3fc78 -r f28ada11abbf hotspotfw/hsbrowser/inc/hsbrowsercontainer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hotspotfw/hsbrowser/inc/hsbrowsercontainer.h Wed Sep 01 12:20:32 2010 +0100 @@ -0,0 +1,333 @@ +/* +* Copyright (c) 2007 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 container control for HotSpot Browser Application. +* +*/ + + + +#ifndef HSBROWSERCONTAINER_H +#define HSBROWSERCONTAINER_H + +// INCLUDES +#include +#include +#include +#include +#include +#include +#include +#include + +// FORWARD DECLARATIONS +class CBrCtlInterface; +class CHsBrowserSpecialLoadObserver; +class CHsBrowserLoadEventObserver; +class CHsBrowserIctsObserver; +class CHsBrowserHsSrvNotifs; +class CHsBrowserModel; +class TCoeEvent; +class CAknNavigationControlContainer; +class CAknNavigationDecorator; +class CAknIndicatorContainer; +class CAknNaviLabel; + +// CONSTANTS +const TInt KComponentsNumber = 1; +const TInt KBrCtlComponentIndex = 0; + +// CLASS DECLARATION +/** +* CHsBrowserContainer class. +* This is the container control class. +*/ +class CHsBrowserContainer : public CCoeControl + { + public: // Constructors and destructor + + /** + * C++ default constructor. + * + * @param aModel Pointer to model of HsBrowser. + */ + CHsBrowserContainer( CHsBrowserModel* aModel ); + + /** + * EPOC default constructor. + * + * @param aRect Frame rectangle for container. + */ + void ConstructL( const TRect& aRect ); + + /** + * Destructor. + */ + ~CHsBrowserContainer(); + + public: + enum TNaviPaneEvent + { + ELoadingLoginPage, + ELoadingUrl, + EPageTitleAvailable, + ELoadingFinished + }; + + + public: // new + + /** + * Initializes the indicators in the navi pane. + */ + void InitNaviPaneL(); + + /** + * Updates the indicators in the navi pane. + */ + void UpdateNaviPane( TNaviPaneEvent aUpdateEvent ); + + /** + * Pass a command to the Browser Control + * + * @param aCommand The command that the Browser Control should process. + */ + void HandleCommandL( TInt aCommand ); + + /** + * Handles key events + * + * @param aKeyEvent The key event that occurred. + * @param aType The window server event type that is being handled + * @return TKeyResponse Value indicates whether or not the key event was consumed by the control. + * The default implementation simply returns EKeyWasNotConsumed. + */ + TKeyResponse HandleKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType ); + + /** + * Handle events when when an application switches to, + * or from, the foreground. + * + * @param aForeground ETrue if the application is in the foreground, + * otherwise EFalse. + */ + void ProcessForegroundEvent( TBool aForeground ); + + /** + * Send application to foreground. + */ + void SendToForeground(); + + /** + * Restore original ordinary position and priority. + */ + void RestorePositionAndPriority(); + + /** + * Send application to background. + */ + void SendToBackground(); + + /** + * Update softkeys according to model state. + */ + void UpdateSoftkeys(); + + /** + * Show login complete information note. + */ + void ShowLoginCompleteNote(); + + /** + * Show connection closed information note. + */ + void ShowConnClosedNote(); + + /** + * Initialize model, attach to connection, and load specified URL. + * + * @param aUrl URL of authentication web page. + * @param aIapId ID of IAP. + * @param aNetId Network ID. + * @return KErrNone, if successful, otherwice one of system wide errorcodes. + */ + TInt LoadRedirect( const TPtrC& aUrl, TInt aIapId, TInt aNetId ); + + /** + * Called when wlan connection is lost. + * Shows information note and exits. + */ + void ProcessWlanConnModeNotConnected(); + + /** + * Returns boolean value for application foreground status. + * + * @return ETrue / EFalse + */ + TBool IsForeground(); + + public: // access + + /** + * Accessor method for iBrCtlInterface + * + * @return CBrCtlInterface* A pointer to the browser control interface. + */ + inline CBrCtlInterface* BrCtlInterface(); + + /** + * Accessor method for iHsBrowserSpecialLoadObserver. + * + * @return CHsBrowserSpecialLoadObserver* A pointer to the special load observer. + */ + inline CHsBrowserSpecialLoadObserver* HsBrowserSpecialLoadObserver(); + + /** + * Accessor method for iHsBrowserIctsObserver. + * + * @return CHsBrowserIctsObserver* A pointer to the Internet connectivity test observer. + */ + inline CHsBrowserIctsObserver* HsBrowserIctsObserver(); + + /** + * Accessor method for iModel. + * + * @return CHsBrowserModel* A pointer to the model of HsBrowser. + */ + inline CHsBrowserModel* Model(); + + /** + * Accessor method for iNaviLabel. + * + * @return CAknNaviLabel* A pointer to the label control in the navigation pane. + */ + inline CAknNaviLabel* NaviLabel(); + + /** + * Get boolean value if input box is active or not. + * + * @return ETrue / EFalse + */ + inline TBool ActiveInputBox(); + + /** + * Set input box active flag + */ + inline void SetActiveInputBox( TBool aActiveInputBox ); + + private: // From CoeControl + + /** + * From CoeControl,SizeChanged. + */ + void SizeChanged(); + + /** + * From CoeControl,CountComponentControls. + */ + TInt CountComponentControls() const; + + /** + * From CCoeControl,ComponentControl. + */ + CCoeControl* ComponentControl( TInt aIndex ) const; + + /** + * From CCoeControl,Handle key events. + */ + TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, + TEventCode aType); + + /** + * From CCoeControl,Handle resource change events. + */ + void HandleResourceChange( TInt aType ); + + private: //data + + /** + * Pointer to the browser control interface. + * Owned. + */ + CBrCtlInterface* iBrCtlInterface; + + /** + * Command Base + */ + TInt iCommandBase; + + /** + * Special Load Observer + */ + CHsBrowserSpecialLoadObserver* iHsBrowserSpecialLoadObserver; + + /** + * Load Event Observer + */ + CHsBrowserLoadEventObserver* iHsBrowserLoadEventObserver; + + /** + * Internet connectivity test observer + */ + CHsBrowserIctsObserver* iHsBrowserIctsObserver; + + /** + * Notifications from hotspot server. + */ + CHsBrowserHsSrvNotifs* iHsBrowserHsSrvNotifs; + + /** + * Model of HsBrowser + */ + CHsBrowserModel* iModel; + + /** + * Pointer to default control in the status pane's navigation pane. + * Not owned. + */ + CAknNavigationControlContainer* iNaviPane; + + /** + * Pointer to the editor indicator control in the navigation pane. + * Owned. + */ + CAknNavigationDecorator* iEditorIndicatorContainer; + + /** + * Pointer to the editor indicator control in the navigation pane + * Not owned. + */ + CAknIndicatorContainer* iIndiContainer; + + /** + * Resource. + */ + TInt iResource; + + /** + * Flag for softkey press. + */ + TBool iActiveInputBox; + + /** + * handle to WlanMgmtClient + */ + CWlanMgmtClient *iMgtClient; + }; + +#include "hsbrowsercontainer.inl" + +#endif + +// End of File +