webengine/widgetengine/src/WidgetEngineBridge.cpp
changeset 5 10e98eab6f85
parent 0 dd21522fd290
child 25 0ed94ceaa377
equal deleted inserted replaced
1:7c90e6132015 5:10e98eab6f85
    51 // FORWARD DECLARATIONS
    51 // FORWARD DECLARATIONS
    52 
    52 
    53 // ============================= LOCAL FUNCTIONS ===============================
    53 // ============================= LOCAL FUNCTIONS ===============================
    54 
    54 
    55 // ============================ MEMBER FUNCTIONS ===============================
    55 // ============================ MEMBER FUNCTIONS ===============================
       
    56 using namespace KJS;
    56 
    57 
    57 // ----------------------------------------------------------------------------
    58 // ----------------------------------------------------------------------------
    58 // CreateWidgetEngineBridge
    59 // CreateWidgetEngineBridge
    59 // creates WidgetEngineBridge object
    60 // creates WidgetEngineBridge object
    60 //
    61 //
    81 // Destructor
    82 // Destructor
    82 //
    83 //
    83 //
    84 //
    84 // ----------------------------------------------------------------------------
    85 // ----------------------------------------------------------------------------
    85 WidgetEngineBridge::~WidgetEngineBridge()
    86 WidgetEngineBridge::~WidgetEngineBridge()
       
    87 {
       
    88     Clear();
       
    89     delete m_preferences;
       
    90     m_preferences = NULL;
       
    91 }
       
    92 // ----------------------------------------------------------------------------
       
    93 // WidgetEngineBridge::Clear
       
    94 // 
       
    95 //
       
    96 //
       
    97 // ----------------------------------------------------------------------------
       
    98 void WidgetEngineBridge::Clear()
    86 {    
    99 {    
       
   100 	// unprotect objects
       
   101 	HashSet<JSValue*>::iterator end = m_protectedObjects.end();
       
   102 	for (HashSet<JSValue*>::iterator it = m_protectedObjects.begin(); it != end; ++it) {
       
   103 		Collector::unprotect(*it);
       
   104 	}
       
   105 	m_protectedObjects.clear();
       
   106 
    87     delete m_menuclient;
   107     delete m_menuclient;
       
   108     m_menuclient = NULL;
    88     delete m_widgetclient;    
   109     delete m_widgetclient;    
    89     delete m_preferences;
   110     m_widgetclient = NULL;
    90 }
   111 }
    91 
   112 
    92 // ----------------------------------------------------------------------------
   113 // ----------------------------------------------------------------------------
    93 // WidgetEngineBridge::Widget
   114 // WidgetEngineBridge::Widget
    94 // creates Widget object if it does not exist, otherwise returns the already
   115 // creates Widget object if it does not exist, otherwise returns the already
   101     if (!m_widgetclient) {
   122     if (!m_widgetclient) {
   102         
   123         
   103         if (!m_preferences)
   124         if (!m_preferences)
   104             m_preferences = new (ELeave) WidgetPreferences();
   125             m_preferences = new (ELeave) WidgetPreferences();
   105         
   126         
   106         m_widgetclient = CWidgetClient::NewL(aWidgetCallback,aWidgetEngineCallback,m_preferences);            
   127         m_widgetclient = CWidgetClient::NewL(aWidgetCallback, this, aWidgetEngineCallback,m_preferences);            
   107     }    
   128     }    
   108     return m_widgetclient->jswidget();  
   129     return m_widgetclient->jswidget();  
   109 }
   130 }
   110 
   131 
   111 // ----------------------------------------------------------------------------
   132 // ----------------------------------------------------------------------------
   118 void* WidgetEngineBridge::Menu(MWidgetCallback& aWidgetCallback, MWidgetEngineCallbacks& aWidgetEngineCallback)
   139 void* WidgetEngineBridge::Menu(MWidgetCallback& aWidgetCallback, MWidgetEngineCallbacks& aWidgetEngineCallback)
   119 {
   140 {
   120     if (!m_menuclient){
   141     if (!m_menuclient){
   121         m_menuclient = CMenuClient::NewL(aWidgetCallback,aWidgetEngineCallback);      
   142         m_menuclient = CMenuClient::NewL(aWidgetCallback,aWidgetEngineCallback);      
   122     }    
   143     }    
   123     return m_menuclient->jsmenu();  
   144     return m_menuclient->jsmenu(this);  
   124 }
   145 }
   125 
   146 
   126 // ----------------------------------------------------------------------------
   147 // ----------------------------------------------------------------------------
   127 // WidgetEngineBridge::MenuItem
   148 // WidgetEngineBridge::MenuItem
   128 // creates MenuItem object if it does not exist, otherwise returns the already
   149 // creates MenuItem object if it does not exist, otherwise returns the already
   133 void* WidgetEngineBridge::MenuItem(MWidgetCallback& aWidgetCallback, MWidgetEngineCallbacks& aWidgetEngineCallback)
   154 void* WidgetEngineBridge::MenuItem(MWidgetCallback& aWidgetCallback, MWidgetEngineCallbacks& aWidgetEngineCallback)
   134 {
   155 {
   135     if (!m_menuclient){
   156     if (!m_menuclient){
   136         m_menuclient = CMenuClient::NewL(aWidgetCallback,aWidgetEngineCallback);      
   157         m_menuclient = CMenuClient::NewL(aWidgetCallback,aWidgetEngineCallback);      
   137     }    
   158     }    
   138     return m_menuclient->jsmenuitem();      
   159     return m_menuclient->jsmenuitem(this);      
   139 }
   160 }
   140 
   161 
   141 // ----------------------------------------------------------------------------
   162 // ----------------------------------------------------------------------------
   142 //WidgetEngineBridge::SetParamL
   163 //WidgetEngineBridge::SetParamL
   143 //
   164 //
   283         m_widgetclient->renderer()->drawTransition(gc,fbsBm);
   304         m_widgetclient->renderer()->drawTransition(gc,fbsBm);
   284     }
   305     }
   285 }
   306 }
   286 
   307 
   287 
   308 
       
   309 void WidgetEngineBridge::Protect(JSValue* obj)
       
   310 {
       
   311 	m_protectedObjects.add(obj);
       
   312 	Collector::protect(obj);
       
   313 }
       
   314 
       
   315 void WidgetEngineBridge::Unprotect(JSValue* obj)
       
   316 {
       
   317 	m_protectedObjects.remove(obj);
       
   318 	Collector::unprotect(obj);
       
   319 }
       
   320 
   288 //END OF FILE
   321 //END OF FILE
   289 
   322 
   290 
   323