diff -r 000000000000 -r dd21522fd290 widgets/widgetapp/inc/WidgetUiWindow.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/widgets/widgetapp/inc/WidgetUiWindow.h Mon Mar 30 12:54:55 2009 +0300 @@ -0,0 +1,527 @@ +/* +* Copyright (c) 2006, 2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: +* +*/ + + +#ifndef WIDGETUIWINDOW_H_ +#define WIDGETUIWINDOW_H_ + +// INCLUDES FILES +#include +#include +#include // for MWidgetCallback +#include +#include +#include "WidgetUiObserver.h" + +// CONSTANTS +enum TWidgetAccessGrant + { + EInvalid, + EDeny, + EAllow + }; + +enum TMiniViewState + { + EMiniViewNotEnabled = 0, + EMiniViewEnabled, + EPublishStart, + EPublishSuspend + }; +struct TWidgetState + { + TBool iFullViewState; // full view or not + enum TMiniViewState iMiniViewState; + }; + +// MACROS + +// DATA TYPES + +// FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS +class CWidgetUiWindowManager; +class CWidgetUiObserver; +class CWidgetUiDialogsProviderProxy; +class CPeriodic; +class CEikButtonGroupContainer; +class CCpsPublisher; +class CFbsBitmap; +class CSchemeHandler; +class CBrCtlInterface; + +// CLASS DECLARATION + +/** +* +* +* @lib WidgetUi.app +* @since Series 60 3.0 +*/ +class CWidgetUiWindow : public CBase, + public MWidgetCallback, + public MBrCtlSpecialLoadObserver, + public MAknServerAppExitObserver + { + public: + + /** + * OpenWindowL + * @since 3.1 + * @param aWindowManager + * @param aUid + * @param aCpsPublisher + * @return CBrCtlInterface* + */ + static CWidgetUiWindow* OpenWindowL( CWidgetUiWindowManager& aWindowManager, + const TUid& aUid, CCpsPublisher* aCpsPublisher ); + + /** + * ~CWidgetUiWindow + * Destructor + * @since 3.1 + * @param none + * @return none + */ + virtual ~CWidgetUiWindow(); + + public: // from MWidgetCallback + + /** + * DialogMimeFileSelectLC + * Navigates through your file system and selects a file of specific mime type; + * analogous to the Browse command in Windows. + * @since 3.1 + * @param aSelectedFileName The selected file name. + * @param aMimeType The accepted mime type. + * @return ETrue if the user selected a file + * EFalse if the user cancelled the transaction and did not select a file. + * @attention Returned on cleanup stack. Browser control will free the buffer. + */ + TBool DialogMimeFileSelectLC(HBufC*& aSelectedFileName, + const TDesC& aMimeType); + + /** + * Called to show or hide softkeys + * @since 3.1 + * @param aVisible ETrue to show softkeys, EFalse when full screen is needed + */ + void SetSoftkeysVisible(TBool aVisible); + + /** + * Called to change the display orientation to landscape + * @since 3.1 + */ + void SetDisplayMode(TBrCtlDefs::TBrCtlOrientation aOrientation); + + virtual TInt Reserved_1(TAny*& /*a0*/, TAny* /*a1*/, TAny* /*a2*/) { return 0; } + virtual TInt Reserved_2(TAny*& /*a0*/, TAny* /*a1*/, TAny* /*a2*/) { return 0; } + virtual TInt Reserved_3(TAny*& /*a0*/, TAny* /*a1*/, TAny* /*a2*/) { return 0; } + virtual TInt Reserved_4(TAny*& /*a0*/, TAny* /*a1*/, TAny* /*a2*/) { return 0; } + virtual TInt Reserved_5(TAny*& /*a0*/, TAny* /*a1*/, TAny* /*a2*/) { return 0; } + virtual TInt Reserved_6(TAny*& /*a0*/, TAny* /*a1*/, TAny* /*a2*/) { return 0; } + virtual TInt Reserved_7(TAny*& /*a0*/, TAny* /*a1*/, TAny* /*a2*/) { return 0; } + virtual TInt Reserved_8(TAny*& /*a0*/, TAny* /*a1*/, TAny* /*a2*/) { return 0; } + virtual TInt Reserved_9(TAny*& /*a0*/, TAny* /*a1*/, TAny* /*a2*/) { return 0; } + virtual TInt Reserved_10(TAny*& /*a0*/, TAny* /*a1*/, TAny* /*a2*/) { return 0; } + public: // MBrCtlSpecialLoadObserver + /** + * NetworkConnectionNeededL + * Request to create a network connection. + * @since 3.1 + * @param aConnectionPtr A pointer to the new connection. If NULL, the proxy filter will automatically create a network connection + * @param aSockSvrHandle A handle to the socket server. + * @param aNewConn A flag if a new connection was created. If the connection is not new, proxy filter optimization will not read the proxy again from CommsBd + * @param aBearerType The bearer type of the new connection + * @return void + */ + void NetworkConnectionNeededL( TInt* aConnectionPtr, + TInt* aSockSvrHandle, + TBool* aNewConn, + TApBearerType* aBearerType ) ; + + /** + * ConnectionManagement + * Setup connection based on browser settings + * @since + * @return void + */ + void ConnectionManagement(); + + /** + * StartNetworkConnectionL + * Start new connection + * @param aNewConn A flag if a new connection was created. If the connection is not new, proxy filter optimization will not read the proxy again from CommsBd + * @since + * @return void + */ + void StartNetworkConnectionL(TBool* aNewConn); + + /** + * HandleRequestL + * Request the host applicaion to handle non-http request. + * @since 3.1 + * @param aTypeArray array of download parameter types + * @param aDesArray array of values associated with the types in the type array + * @return ETrue is handled by the host application. EFlase if not + */ + TBool HandleRequestL( RArray* aTypeArray, CDesCArrayFlat* aDesArray ); + + TBool HandleDownloadL(RArray* aTypeArray, CDesCArrayFlat* aDesArray); + + /** + * DoHandleRequestL + * Request the host applicaion to handle non-http request. + * @since 3.1 + * @param aTypeArray array of download parameter types + * @param aDesArray array of values associated with the types in the type array + * @return ETrue is handled by the host application. EFlase if not + */ + TBool DoHandleRequestL(RArray* aTypeArray, CDesCArrayFlat* aDesArray ); + + /** + * Extract the given BrCtl parameter from the list. + * @param aParamTypeToFind Extract this parameter. + * @param aTypeArray array of download parameter types. + * @param aDesArray array of values associated with the types in the type array. + * @param aParamFound Output: ETrue if the parameter was found. + * @return A TPtrC pointer for the value. + * @since 2.8 + */ + TPtrC ExtractBrCtlParam( TUint aParamTypeToFind, + RArray* aTypeArray, + CDesCArrayFlat* aDesArray, + TBool& aParamFound ) const; + + /** + * Make generic parameter list from BrCtl parameter list. + * @param aTypeArray array of download parameter types + * @param aDesArray array of values associated with the types in the type array + * @return The dynamically allocated list. + */ + CAiwGenericParamList* BrCtlParamList2GenericParamListL( + RArray* aTypeArray, + CDesCArrayFlat* aDesArray ) const; + + public: //MAknServerAppExitObserver + + void HandleServerAppExit( TInt aReason ); + + + public: // new functions + + /** + * Engine + * @since 3.1 + * @param none + * @return CBrCtlInterface* + */ + CBrCtlInterface* Engine() const { return iEngine; } + + /** + * CbaGroup + * @since 3.1 + * @param none + * @return CEikButtonGroupContainer* + */ + CEikButtonGroupContainer* CbaGroup(); + + + /** + * WidgetExtension + * @since 3.1 + * @param none + * @return MWidgetExtension* + */ + MWidgetExtension* WidgetExtension() const { return iWidgetExtension; } + + /** + * ReloadWidget + * Reload the current widget main html page. + * @3.1 + * @return void + */ + void ReloadWidget(); + + /** + * Url + * Return the main html page url of current widget. + * @3.1 + * @return pointer to Url but does not transfer ownership + */ + HBufC* Url() { return iUrl; } + + /** + * Path + * Return the path of current widget. + * @3.1 + * @return pointer to WidgetPath but does not transfer ownership + */ + HBufC* WidgetPath() { return iWidgetPath; } + + /** + * Path + * Return the bundle id of current widget. + * @3.1 + * @return pointer to WidgetByndleId but does not transfer ownership + */ + HBufC* WidgetBundleId() { return iWidgetBundleId; } + + /** + * UId + * Return the UId of current widget. + * @3.1 + * @return UId + */ + TUid Uid() const { return iUid; } + + /** + * NetworkAccessGrant + * Return network access grant. + * @since 3.1 + * @return network access grant + */ + TWidgetAccessGrant NetworkAccessGrant() const { return iNetworkAccessGrant; } + + /** + * SetNetworkAccessGrant + * Set network access grant. + * @since 3.1 + * @return void + */ + void SetNetworkAccessGrant( TWidgetAccessGrant aGrant ) + { iNetworkAccessGrant = aGrant; } + + /** + * Called to change the label of the right or left softkey + * @since 3.1 + * @param aKeySoftkey softkey top change + * @param aText label for right softkey + */ + void SetSoftKeyLabelL( TBrCtlKeySoftkey aKeySoftkey, const TDesC& aText); + + /** + * Relayout + * relayout display to preferred orientation + * @since 3.1 + * @return void + */ + void Relayout( ); + + /** + * SetCurrentWindow + * sets the current window active or non-current window inactive + * @since 3.1 + * @return void + */ + void SetCurrentWindow( TBool aCurrent ); + + /** + * WindowManager + * returns pointer to window manager + * @since 3.1 + * @return CWidgetUiWindowManager* + */ + CWidgetUiWindowManager& WindowManager( ) { return iWindowManager; } + + /** + * SetWidgetLoaded + * notification that widget has finished loading + * @since 5.0 + * @return none + */ + void SetWidgetLoaded( TBool aWidgetLoaded ); + + /** + * GetBundleName + * Gets the Bundle name for Uid + * @since 5.0 + * @return none + */ + void GetBundleName(TPtr& aBundleName ); + + /** + * PublishSnapShot + * Publishes offscreen bitmap to CPS + * @since 5.0 + * @return none + */ + void PublishSnapShot(); + + /** + * HasMiniviewL + * Checks registry value whethre miniview is supporetd or not + * @since 5.0 + * @return TBool + */ + TBool HasMiniviewL(); + + /** + * WidgetMiniViewState + * returns miniview state + * @since 5.0 + * @return TMiniViewState + */ + TMiniViewState WidgetMiniViewState() const; + + /** + * SetWindowStateFullView + * Sets widget is started in full view or not + * @since 5.0 + * @return none + */ + void SetWindowStateFullView( TBool aWidgetFullViewState); + + /** + * SetWindowStateMiniView + * Sets miniview state + * @since 5.0 + * @return none + */ + void SetWindowStateMiniViewL( TMiniViewState aWidgetMiniViewState); + + /** + * WidgetFullViewState + * Get whhether widget is started in fullView or not + * @since 5.0 + * @return none + */ + TBool WidgetFullViewState() const; + + /** + * SetIsCurrentWindow + * Sets IsCurrent window so that when window is launched next time + * foreground background set is done properly + * @since 5.0 + * @return none + */ + void SetIsCurrentWindow(TBool aIsCurrent){ iIsCurrent = aIsCurrent;} + + /** + * GetBlanketPromptDisplayed + * Get whether blanketprompt is displayed + * @since 5.0 + * @return TBool + */ + TBool GetBlanketPromptDisplayed(){ return iBlanketPromptDisplayed;} + + /** + * SetBlanketPermissionDisplayed + * Sets Blanket Permission Prompt when displayed + * @since 5.0 + * @return none + */ + void SetBlanketPromptDisplayed(TBool aBlanketPromptDisplayed){ iBlanketPromptDisplayed = aBlanketPromptDisplayed;} + + + protected: + + /** + * CWidgetUiWindow + * Construtor + * @since 3.1 + * @param aWindowManger + * @param aCpsPublisher + * @return none + */ + CWidgetUiWindow( CWidgetUiWindowManager& aWindowManager, CCpsPublisher* aCpsPublisher ); + + /** + * ConstructL + * EPOC default constructor. + * By default Symbian 2nd phase constructor is private. + * @since 3.1 + * @param none + * @return void + */ + void ConstructL( const TUid& aUid ); + + private: + /** + * UpdateCba + * @since 3.1 + * @return none + */ + void UpdateCba( ); + + /** + * SetSoftKeyImageL + * @since 3.1 + * @param aCommand + * @param aFilename + * @return none + */ + void SetSoftKeyImageL(const TInt aCommand, const TDesC& aFilename); + + /** + * Constructs the publisher identifier + * @since 5.1 + */ + HBufC* WidgetIdAndNameLC(); + + /** + * NetworkSecurityCheckL + * Prompts for network access + * @since + * @return void + */ + void NetworkSecurityCheckL(); + + /** + * CheckNetworkAccessL + * Checks widget registry values for whether widget is allowed network access + * @since + * @return TBool + */ + TBool CheckNetworkAccessL(); + + private: + CWidgetUiObserver* iWidgetUiObserver; // owned, responsible for deleting + CWidgetUiWindowManager& iWindowManager; + + CWidgetUiDialogsProviderProxy* iWidgetUiDialogsProviderProxy; // owned, responsible for deleting + HBufC* iUrl; // owned, responsible for deleting + CBrCtlInterface* iEngine; // owned, responsible for deleting + MWidgetExtension* iWidgetExtension; + CSchemeHandler* iSchemeHandler; // Own. handles links to mailto etc + TUid iUid; + TWidgetAccessGrant iNetworkAccessGrant; + HBufC* iWidgetPath; // owned, responsible for deleting + HBufC* iWidgetBundleId; // owned, responsible for deleting + + TBrCtlDefs::TBrCtlOrientation iPreferredOrientation; + TBool iIsCurrent; + TBool iShowSoftkeys; + HBufC* iRightSoftKeyLabel; // owned- copy of latest right softkey label + HBufC* iLeftSoftKeyLabel; // owned- copy of latest left softkey label + TBool iWidgetLoaded; + TBool iPenEnabled; // For touch + TInt iCount; + TWidgetState iWidgetWindowState; + TBool iSchemeProcessing; + // Interface to publish bitmap + CCpsPublisher* iCpsPublisher; + + //Download transaction ID + long iDlId; + TBool iBlanketPromptDisplayed; + }; + +#endif // + +// End of file