--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/data/publisherif/inc/hswidgetobserver.h Wed Jun 02 13:22:05 2010 +0300
@@ -0,0 +1,147 @@
+/*
+* Copyright (c) {Year(s)} {Copyright owner}.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+*
+* Initial Contributors:
+* {Name} {Company} ? Initial contribution
+*
+* Contributors:
+* {Name} {Company} ? {{Description of contribution}}
+*
+* Description:
+* {{Description of the file}}
+*
+*/
+
+
+#ifndef __HSWIDGETOBSERVER_H__
+#define __HSWIDGETOBSERVER_H__
+
+// System includes
+#include <e32base.h>
+
+// User includes
+
+// Forward declarations
+
+// Constants
+
+// Class Definitions
+class MHsWidgetObserver
+ {
+public:
+ enum EState
+ {
+ /**
+ * Widget instance should enter to suspended state.
+ * This means that Homescreen is not visible anymore.
+ */
+ ESuspend = 0,
+ /**
+ * Widget instance should enter to alive state.
+ * This means that Homescreen visible. Resource consumption and publishing is allowed.
+ */
+ EAlive,
+ /**
+ * Widget instance may enter to online state.
+ * This means that it may consume network resources.
+ */
+ EOnline,
+ /**
+ * Widget instance must enter to offline state.
+ * This means that it is not allowed to consume network resources.
+ */
+ EOffline
+ };
+
+ enum EStartReason
+ {
+ /**
+ * Widget was started because system starts-up.
+ */
+ ESystemStart = 1,
+ /**
+ * Widget was started because of Homescreen page change.
+ */
+ EPageStart,
+ /**
+ * Widget was started because of it was added to Homescreen.
+ */
+ EWidgetStart
+ };
+
+ enum EStopReason
+ {
+ /**
+ * Widget was stopped because system shutsdown.
+ */
+ ESystemStop = 1,
+ /**
+ * Widget was stopped because of Homescreen page change.
+ */
+ EPageStop,
+ /**
+ * Widget was stopped because it was removed from Homescreen.
+ */
+ EWidgetStop
+ };
+
+ /**
+ * Requests this publisher's identity.
+ *
+ * @return Publisher identity in <UID:PublisherName> format.
+ * The identity must map to xml <configuration> element, i.e.:
+ * <configuration name="publisher" value="MyUid:MyPublisherName"/>
+ */
+ virtual const TDesC& Identity() = 0;
+
+ /**
+ * Notifies that Homescreen has started widget.
+ *
+ * @param aWidgetId Widget Id identifying the widget instance.
+ * @param aReason Reason why Homescreen started the widget instance.
+ */
+ virtual void NotifyWidgetStarted(
+ const TDesC& aWidgetId,
+ EStartReason aReason ) = 0;
+
+ /**
+ * Notifies that Homescreen has stopped widget.
+ *
+ * @param aWidgetId Widget Id identifying the widget instance.
+ * @param aReason Reason why Homescreen stopped the widget instance.
+ */
+ virtual void NotifyWidgetStopped(
+ const TDesC& aWidgetId,
+ EStopReason aReason ) = 0;
+
+ /**
+ * Notifies that Homescreen has changed widget state.
+ *
+ * @param aWidgetId Widget Id identifying the widget instance.
+ * @param aState New state for the widget instance.
+ */
+ virtual void NotifyWidgetState(
+ const TDesC& aWidgetId,
+ EState aState ) = 0;
+
+ /**
+ * Notifies a widget specific event.
+ *
+ * @param aWidgetId Widget Id identifying the widget instance.
+ * @param aEvent Event from the widget instance.
+ * @param aParam Event parameter from the widget instance.
+ */
+ virtual void NotifyWidgetEvent(
+ const TDesC& aWidgetId,
+ const TDesC& aEvent,
+ const TDesC& aParam ) = 0;
+ };
+
+#endif // __HSWIDGETOBSERVER_H__
+
+// End of file