--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/taskswitcher/contextengine/hgfswpreviewprovider/inc/hgpreviewprovider.h Mon Jan 18 20:10:36 2010 +0200
@@ -0,0 +1,130 @@
+/*
+* ==============================================================================
+* Name : %name: hgpreviewprovider.h %
+* Part of : Hg fast swap preview provider plugin
+* Description : Preview provider API
+* Version : %version: sa1spcx1#2 %
+*
+* Copyright (c) 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 HGPREVIEWPROVIDER_H
+#define HGPREVIEWPROVIDER_H
+
+// INCLUDES
+#include <e32base.h>
+#include <gdi.h>
+
+// FORWARD DECLARATIONS
+class CHgFastSwapPreviewProviderClient;
+class MHgFastSwapPreviewObserver;
+
+/**
+ * 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 MHgFastSwapPreviewObserver.
+ *
+ * @see MHgFastSwapPreviewObserver
+ * @lib hgpreviewprovider.lib
+ */
+NONSHARABLE_CLASS( CHgFastSwapPreviewProvider ) : public CBase
+ {
+public:
+
+ /**
+ * Two phased constructor.
+ * @see MHgFastSwapPreviewObserver
+ *
+ * @param aObs Observer.
+ */
+ IMPORT_C static CHgFastSwapPreviewProvider* NewL(
+ MHgFastSwapPreviewObserver& aObs );
+
+ /**
+ * Destructor.
+ */
+ IMPORT_C ~CHgFastSwapPreviewProvider();
+
+ /**
+ * 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.
+ */
+ CHgFastSwapPreviewProvider();
+
+ /**
+ * 2nd phase constructor.
+ *
+ * @param aObs Observer.
+ */
+ void ConstructL( MHgFastSwapPreviewObserver& aObs );
+
+private:
+
+ /**
+ * Implementation class.
+ */
+ CHgFastSwapPreviewProviderClient* iClient;
+ };
+
+#endif // HGPREVIEWPROVIDER_H
+
+// End of file