webengine/widgetengine/inc/WidgetEngineBridge.h
changeset 5 10e98eab6f85
parent 0 dd21522fd290
child 25 0ed94ceaa377
--- a/webengine/widgetengine/inc/WidgetEngineBridge.h	Fri May 08 08:25:06 2009 +0300
+++ b/webengine/widgetengine/inc/WidgetEngineBridge.h	Fri Jul 03 15:54:40 2009 +0100
@@ -26,6 +26,8 @@
 #include <eikenv.h>
 #include "BrCtlDefs.h"
 #include "WidgetEngineCallbacks.h"
+#include "WidgetJSObjectProtector.h"
+#include "wtf/HashSet.h"
 
 // CONSTANTS
 
@@ -41,6 +43,10 @@
 class MWidgetCallback;
 class WidgetPreferences;
 
+namespace KJS {
+	class JSValue;
+}
+
 // CLASS DECLARATION
 class MWidgetEngineBridge
 {
@@ -57,7 +63,8 @@
     virtual void AddOptionMenuItemsL(CEikMenuPane& aMenuPane, TInt aResourceId) = 0;
     virtual void MenuItemSelected( TInt aInternalId ) = 0;
     virtual void MenuShowed() = 0;
-    virtual void DrawTransition(CWindowGc& gc, CFbsBitmap* fbsBm) = 0;    
+    virtual void DrawTransition(CWindowGc& gc, CFbsBitmap* fbsBm) = 0;
+    virtual void Clear() = 0;
 
 };
 
@@ -68,7 +75,7 @@
 *  @since 3.1
 */
 
-NONSHARABLE_CLASS( WidgetEngineBridge ): public MWidgetEngineBridge
+NONSHARABLE_CLASS( WidgetEngineBridge ): public MWidgetEngineBridge, public MJSObjectProtector
 {
 public:
     WidgetEngineBridge();
@@ -87,12 +94,17 @@
     void AddOptionMenuItemsL(CEikMenuPane& aMenuPane, TInt aResourceId);
     void MenuItemSelected( TInt aInternalId );
     void MenuShowed();
-    void DrawTransition(CWindowGc& gc, CFbsBitmap* fbsBm);    
+    void DrawTransition(CWindowGc& gc, CFbsBitmap* fbsBm);
+    void Clear();
+    
+	void Protect(KJS::JSValue* obj);
+	void Unprotect(KJS::JSValue* obj);
 
 private:    
-    CMenuClient* m_menuclient;
-    CWidgetClient* m_widgetclient;                
-    WidgetPreferences* m_preferences;
+    CMenuClient*			m_menuclient;
+    CWidgetClient*			m_widgetclient;                
+    WidgetPreferences*		m_preferences;
+	WTF::HashSet<KJS::JSValue*>	m_protectedObjects;
  };