classicui_plat/extended_status_pane_api/inc/aknsgcc.h
changeset 0 2f259fa3e83a
child 51 fcdfafb36fe7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/classicui_plat/extended_status_pane_api/inc/aknsgcc.h	Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,164 @@
+/*
+* Copyright (c) 2002 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: 
+*
+*/
+
+#ifndef AKNSGCC_H
+#define AKNSGCC_H
+
+#include <AknCapServerClient.h>
+#include <eikenv.h>
+#include <eikdef.h>
+#include <AknSyncDraw.h>
+#include <AknLayoutConfig.h>
+class CAknAppUiBase;
+class CEikStatusPane;
+class CEikAppUi;
+
+class MAknSgcStatusPaneRedrawCoordinator
+	{
+public:
+	virtual void BlockServerStatusPaneRedrawsL() = 0;
+	virtual void RedrawServerStatusPane() = 0;
+private:
+	IMPORT_C virtual void MAknSgcStatusPaneRedrawCoordinator_Reserved_1();
+	IMPORT_C virtual void MAknSgcStatusPaneRedrawCoordinator_Reserved_2();
+	};
+
+enum TSgcMoveAppToWhere
+	{
+	ESgcMoveAppToForeground,
+	ESgcMoveAppToBackground
+	};
+
+class CAknSgcImpl : public CBase
+	{
+public:
+    virtual void MoveApp(TInt aAppWindowGroupId, TSgcMoveAppToWhere aWhere) = 0;
+	};
+
+
+NONSHARABLE_CLASS(CAknSgcClient) : public CCoeStatic
+	{
+public:
+	enum EAppFlags
+		{
+		EFullScreen,
+		ELegacyLayout,
+		EOrientationSpecified,
+		EOrientationLandscape
+		};
+
+public:
+ 	IMPORT_C static void CreateL();
+
+	IMPORT_C static void HandleChangeL();	// for change in foreground, partial foreground, full screen, status pane, app embedding
+	IMPORT_C static RAknUiServer* AknSrv();
+
+	IMPORT_C static void SetStatusPaneRedrawCoordinator(MAknSgcStatusPaneRedrawCoordinator* aSpRedrawCoord);
+	IMPORT_C static void BlockServerStatusPaneRedrawsL();
+	IMPORT_C static void RedrawServerStatusPane();
+
+	IMPORT_C static CAknDrawSynchronizer* DrawSynchronizer();
+
+	IMPORT_C static void PrepareForAppExit();
+
+	IMPORT_C static void SetSystemFaded(TBool aFade);
+	IMPORT_C static TBool IsSystemFaded();
+
+	IMPORT_C static TPixelsTwipsAndRotation PixelsAndRotation();		// for local app
+	IMPORT_C static TPixelsTwipsAndRotation CalculatePixelsAndRotation(TBool aFullScreen, TBool aLegacyApp, TBool aAppOrientationSpecified, TBool aAppOrientationLandscape);
+	IMPORT_C static CAknLayoutConfig::TScreenMode ScreenMode();		// for local app
+	IMPORT_C static CAknLayoutConfig::TScreenMode CalculateScreenMode(TBool aFullScreen, TBool aAppOrientationSpecified, TBool aAppOrientationLandscape);
+	IMPORT_C static CAknLayoutConfig::TScreenMode CalculateScreenMode(TBool aFullScreen, TBool aAppOrientationSpecified, TBool aAppOrientationLandscape, TInt aAppScreenMode);
+
+    IMPORT_C static void SetKeyBlockMode(TAknKeySoundOpcode aMode);
+    IMPORT_C static void SetKeyboardRepeatRate(TAknDefaultKeyboardRepeatRate aRate);
+    /** 
+    * Returns resource id of currently active statuspane. If current environment does not contain
+    * statuspane, resource id is fecthed from akncapserver. Returns zero on error.
+    */ 
+    IMPORT_C static TInt CurrentStatuspaneResource();
+    
+    IMPORT_C static CAknLayoutConfig& LayoutConfig();
+    IMPORT_C static const TDesC8& LayoutConfigBuf();
+    
+    IMPORT_C static void MoveApp(TInt aAppWindowGroupId, TSgcMoveAppToWhere aWhere);
+	IMPORT_C static void SetImpl(CAknSgcImpl* aImpl);
+
+	// internal
+    static void RelinquishPriorityToForegroundAppLC(TBool aIsForeground);
+
+protected:
+	CAknSgcClient();
+	~CAknSgcClient();
+	void BaseConstructL();
+
+private:
+	inline static CAknSgcClient* Static();
+	virtual void ConstructL();
+
+	void DoHandleChangeL();
+
+	CEikStatusPane* StatusPane(CEikAppUi* aAppUi);
+	void SetAppUiForegroundL(CAknAppUiBase* aAppUi, TBool aForeground);
+	void SetAppUiPartialFgL(CAknAppUiBase* aAppUi, TBool aPartialFg);
+
+	void SimulateWsEventL(CEikAppUi* aAppUi, TInt aEventId);
+
+	static void ClearHandlingChangeFlag(TAny* aThis);
+
+	void DoPrepareForAppExit();
+
+	void DoSetSystemFaded(TBool aFade);
+	TBool DoIsSystemFaded() const;
+
+	void SetLegacyOrientationAndScreenModeAppUiFlags(TBitFlags& aAppFlags, TInt& aScreenMode, CAknAppUiBase* aAppUi);
+
+	TPixelsTwipsAndRotation DoCalculatePixelsAndRotation(TBool aFullScreen, TBool aLegacyApp, TBool aAppOrientationSpecified, TBool aAppOrientationLandscape, TInt aAppScreenMode);
+	CAknLayoutConfig::TScreenMode DoCalculateScreenMode(TBool aFullScreen, TBool aAppOrientationSpecified, TBool aAppOrientationLandscape, TInt aAppScreenMode);
+
+    void DoSetKeyBlockMode(TAknKeySoundOpcode aMode);
+    void DoSetKeyboardRepeatRate(TAknDefaultKeyboardRepeatRate aRate);
+    TInt DoAskCurrentStatuspaneResource();
+
+    void DoRelinquishPriorityToForegroundAppLC(TBool aIsForeground);
+    virtual const TDesC8& DoLayoutConfigBuf();
+
+	void StartupBlankL();
+	static TInt StartupUnblank(TAny* aThis);
+	void DoStartupUnblank();
+
+protected:
+	TBitFlags iFlags;
+	CAknLayoutConfig* iLayoutConfig;
+private:
+	CCoeEnv* iCoeEnv;
+	RAknUiServer iAknSrv;
+	TInt iSpLayout;
+	TInt iSpFlags;
+	TBitFlags iAppFlags;
+	MAknSgcStatusPaneRedrawCoordinator* iSpRedrawCoord;
+	CAknDrawSynchronizer* iDrawSync;
+	CIdle *iStartupBlank;
+	TInt iAppScreenMode;
+	CAknSgcImpl* iImpl;
+	};
+
+
+
+#endif
+
+// End of File