diff -r 000000000000 -r 15bf7259bb7c uiaccelerator_plat/alf_client_server_api/inc/alf/alfappui.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uiaccelerator_plat/alf_client_server_api/inc/alf/alfappui.h Tue Feb 02 07:56:43 2010 +0200 @@ -0,0 +1,210 @@ +/* +* Copyright (c) 2006 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: Application UI definition +* +*/ + + + +#ifndef C_ALFAPPUI_H +#define C_ALFAPPUI_H + +#include +#include + +class CHuiEnv; +class CHuiRoster; +class CHuiControlGroup; +class CHuiVisual; +class CAlfAppServer; +class CAlfSharedDisplayCoeControl; +class CHuiDisplay; +class CAlfAppSrvSessionBase; +class CAlfSrvResourceManager; +class CAlfSrvSettingsHandler; + +enum TAlfSrvSetting + { + EAlfSrvSettingDefaultFramerate, + EAlfSrvSettingMaxCpuUsage, + EAlfSrvSettingMaxResourceCacheSize, + EAlfSrvSettingEffectsComplexityFactor // includes the RnD flag changes. + }; + +class MAlfSrvSettingsObserver + { +public: + virtual void MAlfSrvUintSettingChangedL( TAlfSrvSetting aSetting, TUint aNewValue ) = 0; + }; + + +/** + * Application UI class. + * + * @since S60 v3.2 + */ +NONSHARABLE_CLASS(CAlfAppUi) : public CAknAppUi, public MAlfSrvSettingsObserver + { + +public: // new methods + + /** + * Constructor + */ + IMPORT_C CAlfAppUi(); + + /** + * Destructor + */ + IMPORT_C ~CAlfAppUi(); + + /** + * Retuns a reference to CHuiEnv object. + * @return HuiEnv. Ownership not transferred. + */ + CHuiEnv& HuiEnv(); + + /** + * Called when all clients have existed. + */ + void AllClientsClosed(); + + /** + * Called when client is about to exit. + * @param aClientId Client to be removed. + */ + void FreeResourcesForClient( TInt aClientId ); + + /** + * Returns a common window-owning control + * @param Control. NULL if not used. Ownership not transferred. + */ + IMPORT_C CCoeControl* Container(); + + /** + * Adds display into the common container. + * @param aDisplay to be added. + */ + IMPORT_C void AppendDisplayOnSharedWindowL( CHuiDisplay& aDisplay ); + + void AppendTvDisplayOnSharedWindowL( CHuiDisplay& aDisplay ); + + void RemoveTvDisplayOnSharedWindow( CHuiDisplay& aDisplay ); + + CHuiDisplay* CAlfAppUi::FindTvDisplayOnSharedWindow(); + + CAlfSrvSettingsHandler& SettingsHandler(); + + /** + * Sets window server fading to common window-owning control. + * @param aFading ETrue if it needs to be faded, EFalse otherwise. + */ + void SetContainerNonFading( TBool aFading ); + +public: // from base classes + +// from base class CAknAppUi + + /** + * From CAknAppUi. + * 2nd phase constructor. Called by the framework after + * the 1st phase construction. + */ + IMPORT_C void ConstructL(); + + /** + * From CAknAppUi. + * Called by the frawework when a system event is received. + * + * @param aEvent Occurred event. + */ + IMPORT_C void HandleSystemEventL(const TWsEvent& aEvent); + + /** + * From CAknAppUi. + * Called by the frawework when a system event is received. + * + * @param aEvent Occurred event. + */ + IMPORT_C void HandleWsEventL(const TWsEvent& aEvent, CCoeControl* aDestination); + + /** + * From CAknAppUi. + * Called when framework calls rendezvous. + * + * @return ETrue. Meaning the framework will synchronize the application to the starter + */ + IMPORT_C TBool FrameworkCallsRendezvous() const; + + /** + * From CAknAppUi. + * Called when system resources changes. + * + * @param aType Changed resource. + */ + IMPORT_C void HandleResourceChangeL( TInt aType ); + + /** + * From CAknAppUi. + * Called by the frawework when a command is received. + * + * @param aCommand The command + */ + IMPORT_C void HandleCommandL(TInt aCommand); + + void MAlfSrvUintSettingChangedL( TAlfSrvSetting aSetting, TUint aNewValue ); + + /** + * Posts QTcommand buffer from clientwindow to CanvasVisual + * + * @param aParams Commandbuffer parameters containg window information + * and QT commandbuffer + */ + void PostQTCommandBufferL( TAlfQtCommandBufferParams aParams ); +public: // internal utilities + void StartPointerEventHandling(); + void EndPointerEventHandling(); + void UpdateActiveSession(CAlfAppSrvSessionBase* aSession); + + TTypeUid::Ptr MopSupplyObject(TTypeUid aId); + + TInt FirstAlfControlGroupIndex( TInt aScreenNumber = 0); + TInt LastAlfControlGroupIndex( TInt aScreenNumber = 0); + void ShowControlGroupL(CHuiRoster& aRoster, CHuiControlGroup& aGroup, TInt aWhere, TInt aScreenNumber ); + void SetClientWindowForDrawingL(TInt aWindowGroupId, TInt aClientWindowHandle, CHuiVisual* aVisual); + /** + * Moves the server window group relative to the clinet (parent) wg. + * + * @param aWindowGroup Server window group + * @param aParentIdentifier Client side window group + * @param aPosition Server's wg position compared to the client's wg. + */ + void AdjustWindowGroupPositionL( + TInt aParentIdentifier, + TInt aPosition ); + void SetAlfWindowGroupId(TInt aWgId); + void NotifyLowMemory(TInt aAmountOfFreeMemRequested); + TInt ForceSwRendering(TBool aEnabled); + +private: + + void CreateHuiEnvL(); + +private: + + class CAlfAppUiData; + CAlfAppUiData* iData; + }; + +#endif // C_ALFAPPUI_H