diff -r 000000000000 -r 79c6a41cd166 idlefw/plugins/pslnactiveidleplugin/inc/pslnactiveidlepluginengine.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlefw/plugins/pslnactiveidleplugin/inc/pslnactiveidlepluginengine.h Thu Dec 17 08:54:17 2009 +0200 @@ -0,0 +1,196 @@ +/* +* Copyright (c) 2005-2007 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: Container for Psln Active Idle settings view. +* +*/ + +#ifndef C_PSLNACTIVEIDLEPLUGINENGINE_H +#define C_PSLNACTIVEIDLEPLUGINENGINE_H + +#include +#include + +// UID of Active Idle. +const TUid KUidActiveIdle = { 0x102750F0 }; + + +class CPslnFWAppThemeHandler; +class CXnODT; +class CPslnActiveIdlePlugin; // for notifying MSK chech need +class CPeriodic; + + +/** + * CPslnActiveIdlePluginEngine container class + * + * @since S60 3.2 + */ +class CPslnActiveIdlePluginEngine : + public CBase, + public MPslnFWAppThemeObserver +{ +public: // Constructors and destructor + + void ConstructL(const TRect& aRect); + + CPslnActiveIdlePluginEngine(CPslnActiveIdlePlugin* aPlugin); + + ~CPslnActiveIdlePluginEngine(); + +// new methods + + /** + * Activates currently highlighted theme. + */ + void ActivateThemeL(); + +// from MPslnFWAppThemeObserver + + void HandleMessage(TXnServiceCompletedMessage aMessage); + + void HandleMessage( + TXnServiceCompletedMessage aMessage, + CArrayPtrFlat& aAppThemeList); + + TInt CurrentUIController() + { + return iCurrentUIController; + }; + + void AddThemesToContainerL(); + + void ManualGetSkinsRestartL(TBool aForceStart = EFalse); + +private: // new methods + + /** + * Adds new theme(s) to the listbox. Multiple themes are + * only added when list updation is required (icons need + * to be updated). Otherwise latest theme info is inquired + * from XUIKON. + */ + void AddNewThemeL(TXnServiceCompletedMessage aMessage); + TInt GetExtStandbyScreenState(TInt& aValue); + + /** + * Add HS items to list. + */ + void AddHomeScreenThemesL(); + + void CheckCurrentUIControllerL(); + + void CheckCurrentAi1PluginL(); + + void UpdateUIControllersInCenrepL(TInt aControllerId); + + void UpdateStatusPaneVisibilityCenrepL(TBool aPaneHidden); + + void UpdateAi1PluginLoadCenrepL(TInt aNewUid); + + TInt RestartAifw(); + + TBool IsAiRunning(); + + void UiTimerRestart(); + +private: + + static TInt RestartTimerCallback( TAny* aSelf ); + + static TInt UiRefreshTimerCallback( TAny* aSelf ); + +private: // data + + /** + * Application specific skin handler. + * Own. + */ + CPslnFWAppThemeHandler* iPslnFWThemeHandler; + + /** + * List of themes. Each theme is described within an ODT. + * Own. + */ + CArrayPtrFlat* iMySkinList; + + /** + * Indicates that skin list should be updated. + */ + TBool iThemeListUpdated; + + /** + * HomeScreen items start index in iMySkinList. + */ + TInt iHSStartIndex; + + /** + * HomeScreen items end index in iMySkinList. + */ + TInt iHSEndIndex; + + /** + * Flag to indicate if we are avaiting the first restart event. + */ + TBool iFirstUpdateRound; + + /** + * Flag to indicate if we have injected first round data. + */ + TBool iFirstUpdateRoundInjected; + + /** + * Current AI2 UI Controller id. + */ + TInt iCurrentUIController; + + /** + * Current AI1 plugin id. + */ + TInt iCurrentAi1Plugin; + + /** + * Flag to indicate if we have injected first round data. + * Not owned. + */ + CPslnActiveIdlePlugin* iPlugin; + + /** + * Restart timer. To restart AI2. + * Own. + */ + CPeriodic* iRestartTimer; + + /** + * UI Refresh timer. + * Own. + */ + CPeriodic* iUiRefreshTimer; + + /** + * Restart timer. To restart AI2. + * Own. + */ + TInt iRestartRetryCount; + + /** + * Kepp track what has been added to list. + * Own. + */ + TInt iAddIndex; + +}; + +#endif // C_PSLNACTIVEIDLEPLUGINENGINE_H + +// End of File.