diff -r f72a12da539e -r 5315654608de idlehomescreen/widgetmanager/inc/wmplugin.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/widgetmanager/inc/wmplugin.h Thu Jan 07 12:39:41 2010 +0200 @@ -0,0 +1,195 @@ +/* +* Copyright (c) 2009 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: +* widget manager plugin declaration +* +*/ + +#ifndef __WMPLUGIN_ +#define __WMPLUGIN_ + +// INCLUDES +#include +#include + +#include +#include +#include + +class CAknViewAppUi; +class CWmResourceLoader; +class CWmMainContainerView; +class CWmMainContainer; +class CWmEffectManager; + +/** + * CWmPlugin + */ +NONSHARABLE_CLASS( CWmPlugin ) : public CHsContentControlUi + { +public: + + /** + * Two-phased constructor. + */ + static CWmPlugin* NewL(); + + /** Destructor */ + ~CWmPlugin(); + +public: // From MHsContentControlUi + + /** + * shows the widget manager UI + * + * @see MHsContentControlUi::Activate + */ + void Activate(); + + /** + * Notifies widget list changes + * + * @see MHsContentControlUi::NotifyWidgetListChanged + */ + void NotifyWidgetListChanged(); + +public: // plugin services + + /** + * whether widget manager UI is showing + * + * @return return ETrue if wm UI is showed + */ + TBool IsActive(); + + /** + * hides widget manager UI + */ + void Deactivate(); + + /** + * main view activated. Sets the previous view ID and main container + * + * @param aPreviousViewId + * @param aWmMainContainer + */ + void MainViewActivated( + const TVwsViewId& aPreviousViewId, + CWmMainContainer* aWmMainContainer ); + + /** + * main view was deactivated + */ + void MainViewDeactivated(); + + /** Postponed command to execute when widgetmanager has deactivated */ + enum TCommand + { + /** no command */ + ENone, + /** add content to home screen */ + EAddToHomescreen + }; + + /** + * Sets a postponed command. The postponed command will be executed after + * widget manager has been deactivated. + * + * @param aCommand the command to be executed + * @param aContent content parameter related to the command + */ + void SetPostponedCommandL( + TCommand aCommand, CHsContentInfo& aContent ); + + /** + * the CAknViewAppUi reference + * + * @return returns CAknViewAppUi + */ + CAknViewAppUi& ViewAppUi(); + + /** + * the resource loader + * + * @return returns CWmResourceLoader + */ + CWmResourceLoader& ResourceLoader(); + + /** + * the content controller ref + * + * @return returns MHsContentController + */ + MHsContentController& ContentController(); + + /** + * the shared file server reference + */ + RFs& FileServer(); + +private: + /** constructor */ + CWmPlugin(); + /** 2nd phase constructor */ + void ConstructL(); + /** actions that are done when widget manager is closed */ + void ExecutePostponedCommandL(); + +private: // data members + + /** + * the host application view app UI (not owned) + */ + CAknViewAppUi* iViewAppUi; + + /** + * main container (not owned) + */ + CWmMainContainer* iWmMainContainer; + + /** + * resource loader + */ + CWmResourceLoader* iResourceLoader; + + /** + * previous view ID (shown when main view closed) + */ + TVwsViewId iPreviousViewUid; + + /** + * Takes care of fancy UI effects + */ + CWmEffectManager* iEffectManager; + + /** + * The file server session + */ + RFs* iFs; + + /** + * command to be executed when widgetmanager has + * been deactivated + */ + TCommand iPostponedCommand; + + /** + * content info as parameter to iPostponedCommand + */ + CHsContentInfo* iPostponedContent; + + }; + +#endif // __WMPLUGIN_ +