taskswitcher/contextengine/tsfswpreviewprovider/inc/tspreviewprovider.h
changeset 4 4d54b72983ae
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/taskswitcher/contextengine/tsfswpreviewprovider/inc/tspreviewprovider.h	Tue Jan 26 11:48:23 2010 +0200
@@ -0,0 +1,129 @@
+/*
+* Copyright (c) 2008 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:  Preview provider API
+*
+*/
+
+
+#ifndef TSFASTSWAPPREVIEWPROVIDER_H
+#define TSFASTSWAPPREVIEWPROVIDER_H
+
+// INCLUDES
+#include <e32base.h>
+#include <gdi.h>
+
+// FORWARD DECLARATIONS
+class CTsFastSwapPreviewProviderClient;
+class MTsFastSwapPreviewObserver;
+
+/**
+ * Preview provider API class. Applications (window groups) must be
+ * registered before screenshots can be received. Also, closed apps
+ * should be unregistered to save resources.
+ * TakePreview() can be called to take a screenshot right away.
+ * A client needing notifications has to create an instance
+ * so that screenshots can be delivered to it via MTsFastSwapPreviewObserver.
+ *
+ * @see MTsFastSwapPreviewObserver
+ * @lib tspreviewprovider.lib
+ */
+NONSHARABLE_CLASS( CTsFastSwapPreviewProvider ) : public CBase
+    {
+public:
+
+    /**
+     * Two phased constructor.
+     * @see MTsFastSwapPreviewObserver
+     *
+     * @param aObs Observer.     
+     */   
+    IMPORT_C static CTsFastSwapPreviewProvider* NewL(
+        MTsFastSwapPreviewObserver& aObs );
+    
+    /**
+     * Destructor.
+     */   
+    IMPORT_C ~CTsFastSwapPreviewProvider();
+    
+    /**
+     * Registers window group for screenshots.
+     *
+     * @param aWgId Window group id.
+     * @return Error code.     
+     */       
+    IMPORT_C TInt Register( TInt aWgId );
+    
+    /**
+     * Unregisters window group.
+     *
+     * @param aWgId Window group id.
+     * @return Error code.     
+     */       
+    IMPORT_C TInt Unregister( TInt aWgId );
+    
+    /**
+     * Change screen.
+     *
+     * @param aScreenId Screen id.
+     * @return Error code.     
+     */       
+    IMPORT_C TInt ChangeScreen( TInt aScreenId );
+    
+    /**
+     * Defines the dimensions and format of the screenshots.
+     * @see TDisplayMode.
+     *
+     * @param aSize Size to be used for the preview screenshots.
+     * @param aMode Color depth to be used for the preview screenshots.
+     * @return Error code.
+     */       
+    IMPORT_C TInt SetPreviewParam( const TSize& aSize, TDisplayMode aMode );
+    
+    /**
+     * Takes a screenshot.
+     * 
+     * @return Error code.     
+     */       
+    IMPORT_C TInt TakePreview();
+    
+    /**
+     * Ack preview ready message
+     */
+    IMPORT_C void AckPreview( TInt aPreviewId );
+    
+private:
+
+    /**
+     * C++ constructor.
+     */   
+    CTsFastSwapPreviewProvider();
+    
+    /**
+     * 2nd phase constructor.
+     *
+     * @param aObs Observer.
+     */       
+    void ConstructL( MTsFastSwapPreviewObserver& aObs );
+       
+private:    
+
+    /**
+     * Implementation class.
+     */   
+    CTsFastSwapPreviewProviderClient* iClient;
+    };
+
+#endif // TSFASTSWAPPREVIEWPROVIDER_H
+
+// End of file