Added package_definition.xml with no systemBuild section and with paths including /sf/ level
/*
* 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 <e32base.h>
#include <BrCtlDefs.h>
#include <BrCtlInterface.h> // for MWidgetCallback
#include <AknServerApp.h>
#include <coecntrl.h>
#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<TUint>* aTypeArray, CDesCArrayFlat* aDesArray );
TBool HandleDownloadL(RArray<TUint>* 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<TUint>* 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<TUint>* 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<TUint>* 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