uiaccelerator_plat/alf_extension_api/inc/alf/alfhintplugin.h
changeset 0 15bf7259bb7c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uiaccelerator_plat/alf_extension_api/inc/alf/alfhintplugin.h	Tue Feb 02 07:56:43 2010 +0200
@@ -0,0 +1,100 @@
+/*
+* Copyright (c) 2006 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:   interface for creating custom extensions
+*
+*/
+
+
+#ifndef _ALFHINTPLUGIN_H_
+#define _ALFHINTPLUGIN_H_
+
+#include <s32mem.h> //RDesReadStream
+
+/*
+ * CAlfHintGraphic
+ * 
+ * This class is part of CAlfHintApi. Its enabes adding of custom markers 
+ * into gc command stream. It has two parts: CAlfHintGraphic and CAlfHintGraphicDrawer 
+ *
+ * When CAlfHintGraphic is created, wserv creates automatically its counter part 
+ * CAlfHintGraphicDrawer.
+ * 
+ * Use method CAlfHintGraphic::InsertTag for inserting a custom tags. These are 
+ * played by CAlfHintGraphicDrawer and delivered to CAlfRenderStage 
+ * (ResolveObjectInterface API used).
+ */
+NONSHARABLE_CLASS(CAlfHintGraphic): public CWsGraphic
+    {
+public:
+    
+    /*
+     * Available tags. 
+     */
+    enum TAlfContentTag
+        {
+        EAlfOffscreenContentBegin, // for Java
+        EAlfOffscreenContentEnd,   // for Java 
+        EAlfOffscreenContentFlush, // for Java
+        
+        EAlfSkinContentBegin,
+        EAlfSkinContentEnd,
+                
+        EAlfSetWindowId,
+        // EAlfContentScale, etc..
+        EAlfBeginSubWindow,
+        EAlfEndSubWindow,
+        EAlfContentLastTag
+        };
+    
+    IMPORT_C static CAlfHintGraphic* NewL();
+
+    IMPORT_C ~CAlfHintGraphic();
+
+public: // protected virtuals from CWsGraphic promoted to public
+    
+    IMPORT_C TInt ShareGlobally();
+    
+    IMPORT_C TInt UnShareGlobally();
+    
+    IMPORT_C TInt Share(TSecureId aClientId);
+    
+    IMPORT_C TInt UnShare(TSecureId aClientId);
+    
+public: // Alf hinting API  
+
+    IMPORT_C TInt InsertTag( TInt aTag );
+    IMPORT_C TInt InsertTag( TInt aTag, TRect aBoundingRectangle, TInt aLayerId );
+    
+    IMPORT_C void SetGc( CWindowGc* aGc ); 
+    
+private:
+    
+    void ConstructL();
+    
+    CAlfHintGraphic();
+    
+    void HandleMessage(const TDesC8& aData);
+
+    void OnReplace();
+    
+    TInt InsertTagL( TInt aTag  );
+    TInt InsertTagL( TInt aTag, TRect aBoundingRectangle, TInt aLayerId );
+    
+private:
+    
+    CWindowGc* iGc;
+    
+    mutable RBuf8 iMsgDataBuf;
+};
+#endif // _ALFHINTPLUGIN_H_