--- /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 <e32base.h>
+#include <vwsdef.h>
+
+#include <hscontentcontrolui.h>
+#include <hscontentcontroller.h>
+#include <hscontentinfo.h>
+
+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_
+