webengine/widgetengine/inc/WidgetEngineBridge.h
changeset 13 10e98eab6f85
parent 0 dd21522fd290
child 36 0ed94ceaa377
equal deleted inserted replaced
8:7c90e6132015 13:10e98eab6f85
    24 #include "config.h"
    24 #include "config.h"
    25 #include <e32base.h>
    25 #include <e32base.h>
    26 #include <eikenv.h>
    26 #include <eikenv.h>
    27 #include "BrCtlDefs.h"
    27 #include "BrCtlDefs.h"
    28 #include "WidgetEngineCallbacks.h"
    28 #include "WidgetEngineCallbacks.h"
       
    29 #include "WidgetJSObjectProtector.h"
       
    30 #include "wtf/HashSet.h"
    29 
    31 
    30 // CONSTANTS
    32 // CONSTANTS
    31 
    33 
    32 // MACROS
    34 // MACROS
    33 
    35 
    38 // FORWARD DECLARATION
    40 // FORWARD DECLARATION
    39 class CMenuClient;
    41 class CMenuClient;
    40 class CWidgetClient;
    42 class CWidgetClient;
    41 class MWidgetCallback;
    43 class MWidgetCallback;
    42 class WidgetPreferences;
    44 class WidgetPreferences;
       
    45 
       
    46 namespace KJS {
       
    47 	class JSValue;
       
    48 }
    43 
    49 
    44 // CLASS DECLARATION
    50 // CLASS DECLARATION
    45 class MWidgetEngineBridge
    51 class MWidgetEngineBridge
    46 {
    52 {
    47 public:
    53 public:
    55     virtual void OnShowSelected() = 0;
    61     virtual void OnShowSelected() = 0;
    56     virtual void OnHideSelected() = 0;
    62     virtual void OnHideSelected() = 0;
    57     virtual void AddOptionMenuItemsL(CEikMenuPane& aMenuPane, TInt aResourceId) = 0;
    63     virtual void AddOptionMenuItemsL(CEikMenuPane& aMenuPane, TInt aResourceId) = 0;
    58     virtual void MenuItemSelected( TInt aInternalId ) = 0;
    64     virtual void MenuItemSelected( TInt aInternalId ) = 0;
    59     virtual void MenuShowed() = 0;
    65     virtual void MenuShowed() = 0;
    60     virtual void DrawTransition(CWindowGc& gc, CFbsBitmap* fbsBm) = 0;    
    66     virtual void DrawTransition(CWindowGc& gc, CFbsBitmap* fbsBm) = 0;
       
    67     virtual void Clear() = 0;
    61 
    68 
    62 };
    69 };
    63 
    70 
    64 /**
    71 /**
    65 *  WidgetEngineBridge
    72 *  WidgetEngineBridge
    66 *
    73 *
    67 *  @lib widgetengine.dll
    74 *  @lib widgetengine.dll
    68 *  @since 3.1
    75 *  @since 3.1
    69 */
    76 */
    70 
    77 
    71 NONSHARABLE_CLASS( WidgetEngineBridge ): public MWidgetEngineBridge
    78 NONSHARABLE_CLASS( WidgetEngineBridge ): public MWidgetEngineBridge, public MJSObjectProtector
    72 {
    79 {
    73 public:
    80 public:
    74     WidgetEngineBridge();
    81     WidgetEngineBridge();
    75     virtual ~WidgetEngineBridge();
    82     virtual ~WidgetEngineBridge();
    76     
    83     
    85     void OnShowSelected();
    92     void OnShowSelected();
    86     void OnHideSelected();
    93     void OnHideSelected();
    87     void AddOptionMenuItemsL(CEikMenuPane& aMenuPane, TInt aResourceId);
    94     void AddOptionMenuItemsL(CEikMenuPane& aMenuPane, TInt aResourceId);
    88     void MenuItemSelected( TInt aInternalId );
    95     void MenuItemSelected( TInt aInternalId );
    89     void MenuShowed();
    96     void MenuShowed();
    90     void DrawTransition(CWindowGc& gc, CFbsBitmap* fbsBm);    
    97     void DrawTransition(CWindowGc& gc, CFbsBitmap* fbsBm);
       
    98     void Clear();
       
    99     
       
   100 	void Protect(KJS::JSValue* obj);
       
   101 	void Unprotect(KJS::JSValue* obj);
    91 
   102 
    92 private:    
   103 private:    
    93     CMenuClient* m_menuclient;
   104     CMenuClient*			m_menuclient;
    94     CWidgetClient* m_widgetclient;                
   105     CWidgetClient*			m_widgetclient;                
    95     WidgetPreferences* m_preferences;
   106     WidgetPreferences*		m_preferences;
       
   107 	WTF::HashSet<KJS::JSValue*>	m_protectedObjects;
    96  };
   108  };
    97 
   109 
    98 
   110 
    99 #endif
   111 #endif