diff -r 5315654608de -r 08c6ee43b396 taskswitcher/contextengine/hgfswserver/client/inc/hgfswclient.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/taskswitcher/contextengine/hgfswserver/client/inc/hgfswclient.h Mon Jan 18 20:10:36 2010 +0200 @@ -0,0 +1,132 @@ +/* + * =========================================================================== + * Name : hgfswclient.h + * Part of : Huriganes / Fast Swap Server + * Description : Client API + * Version : %version: 6 % + * + * Copyright © 2008 Nokia Corporation. + * This material, including documentation and any related + * computer programs, is protected by copyright controlled by + * Nokia Corporation. All rights are reserved. Copying, + * including reproducing, storing, adapting or translating, any + * or all of this material requires the prior written consent of + * Nokia Corporation. This material also contains confidential + * information which may not be disclosed to others without the + * prior written consent of Nokia Corporation. + * =========================================================================== + */ + +#ifndef __HGFSWCLIENT_H +#define __HGFSWCLIENT_H + +#include +#include "hgfswentry.h" + +class MHgFswObserver; +class CHgFswClientImpl; + +/** + * Client API for the Huriganes Fast Swap Server. + */ +NONSHARABLE_CLASS( CHgFswClient ) : public CBase + { +public: + /** + * Possible values for aType argument of ForegroundAppUid(). + */ + enum THgFswFgAppType + { + /** + * Means that even when the foreground app has another app embedded + * into it the uid of the container application will be returned. + */ + EUseStandaloneUid, + /** + * Means that if the foreground app has another app embedded + * into it then the returned uid will be the uid of the embedded + * app. + */ + EUseEmbeddedUid + }; + + /** + * Creates a new instance. + * @capability LocalServices + */ + IMPORT_C static CHgFswClient* NewL(); + + /** + * Creates a new instance. + * @capability LocalServices + */ + IMPORT_C static CHgFswClient* NewLC(); + + /** + * Destructor. + */ + ~CHgFswClient(); + + /** + * Queries the fast swap content from the server and + * copies it into the given array. + * Previous content of the array is removed (by using ResetAndDestroy). + * @param aDst array to which data is stored + * @capability LocalServices + */ + IMPORT_C void GetContentL( RHgFswArray& aDst ); + + /** + * Subscribes for continuous notifications about changes in the + * fast swap content. + * The notifications are generated until CancelSubscribe is called + * or the instance is destroyed. + * @capability LocalServices + */ + IMPORT_C void Subscribe( MHgFswObserver& aObserver ); + + /** + * Cancels the subscription for change notifications. + * @capability LocalServices + */ + IMPORT_C void CancelSubscribe(); + + /** + * Tries to close the application with the given id. + * @capability LocalServices + */ + IMPORT_C void CloseApp( TInt aWgId ); + + /** + * Brings the application with the given id into foreground. + * @capability LocalServices + */ + IMPORT_C void SwitchToApp( TInt aWgId ); + + /** + * Returns the uid of the foreground app or KNullUid if something goes wrong. + * + * Will never return hidden apps, only those which can also be seen in the + * array returned by GetContentL. + * + * However the handling of embedded applications might be different: + * (as opposed to GetContentL) + * If aType == EUseEmbeddedUid: + * This function will always return the embedded application's uid, unlike + * GetContentL which will always refer to the container app (except for the + * screenshot of course). This means that the returned uid is simply the + * uid belonging to the first (non-hidden, etc.) window group from the window group list. + * If aType == EUseStandaloneUid: + * Embedded applications are ignored and the returned uid is the app uid belonging + * to the first parentless window group. + */ + IMPORT_C TUid ForegroundAppUid( THgFswFgAppType aType ); + +private: + CHgFswClient(); + void ConstructL(); + + CHgFswClientImpl* iImpl; + }; + +#endif