--- /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 <aknappui.h>
+#include <alf/alfconstants.h>
+
+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