diff -r 000000000000 -r b856a9924bbc data/publisherif/inc/hswidgetobserver.h --- /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 + +// 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 format. + * The identity must map to xml element, i.e.: + * + */ + 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