webengine/osswebengine/WebKit/s60/webview/WidgetExtension.cpp
changeset 13 10e98eab6f85
parent 0 dd21522fd290
child 16 a359256acfc6
--- a/webengine/osswebengine/WebKit/s60/webview/WidgetExtension.cpp	Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WidgetExtension.cpp	Fri Jul 03 15:54:40 2009 +0100
@@ -69,44 +69,31 @@
 CWidgetExtension::~CWidgetExtension()
 {
     delete m_widgetengine;
-    m_widgetLibrary.Close();
 #if defined(BRDO_LIW_FF)
     delete m_deviceBridge;
-    m_deviceLibrary.Close();
 #endif
 }
 
 void CWidgetExtension::ConstructL(MWidgetCallback& aWidgetCallback)
 {
     if (!m_widgetengine) {
-        _LIT( KBrowserWidgetEngineName, "widgetengine.dll" );
-        User::LeaveIfError( m_widgetLibrary.Load(KBrowserWidgetEngineName) );
-        TLibraryFunction entry = m_widgetLibrary.Lookup(1);
-        if (!entry) {
+
+        m_widgetengine = WebCore::StaticObjectsContainer::instance()->getWidgetEngineBridgeL();
+        if(!m_widgetengine) {
             User::Leave(KErrNotFound);
         }
-        m_widgetengine = (MWidgetEngineBridge*) entry();
+            
         m_widgetcallback = &aWidgetCallback;
 
-        if (m_widgetengine) {
-            AddJSExtension(_L("widget"),m_widgetengine->Widget(*m_widgetcallback, *this));
-            AddJSExtension(_L("menu"),m_widgetengine->Menu(*m_widgetcallback, *this));
-            AddJSExtension(_L("MenuItem"),m_widgetengine->MenuItem(*m_widgetcallback, *this));
-        }
 
 #if defined(BRDO_LIW_FF)
         // device for SAPI
-        _LIT( KDeviceDLLName, "jsdevice.dll" );
-        User::LeaveIfError( m_deviceLibrary.Load(KDeviceDLLName) );
-        TLibraryFunction device_entry = m_deviceLibrary.Lookup(1);
-        if (!device_entry) {
+        
+        m_deviceBridge = WebCore::StaticObjectsContainer::instance()->getDeviceBridgeL();
+        if (!m_deviceBridge) {
             User::Leave(KErrNotFound);
         }
-        m_deviceBridge = (MDeviceBridge*) device_entry();
-
-        if (m_deviceBridge) {
-            AddJSExtension(_L("device"), m_deviceBridge->Device(0));
-        }
+        
 #endif
 
         if (m_webview && m_webview->page()) {
@@ -224,10 +211,38 @@
 
 void CWidgetExtension::setTabbednavigation(bool aOn)
 {
-    m_webview->brCtl()->settings()->setTabbedNavigation(aOn);
+    m_webview->brCtl()->settings()->setNavigationType(aOn ? SettingsContainer::NavigationTypeTabbed : SettingsContainer::NavigationTypeCursor);
+    WebCore::StaticObjectsContainer::instance()->webCursor()->cursorUpdate(true);
+}
+
+void CWidgetExtension::setNavigationType(const TDesC& aType)
+{
+    if (aType.Compare(_L("cursor")) == 0)
+        m_webview->brCtl()->settings()->setNavigationType(SettingsContainer::NavigationTypeCursor);
+    else if (aType.Compare(_L("tabbed")) == 0)
+        m_webview->brCtl()->settings()->setNavigationType(SettingsContainer::NavigationTypeTabbed);
+    else if (aType.Compare(_L("none")) == 0)
+        m_webview->brCtl()->settings()->setNavigationType(SettingsContainer::NavigationTypeNone);
     WebCore::StaticObjectsContainer::instance()->webCursor()->cursorUpdate(true);
 }
 
+void CWidgetExtension::windowObjectCleared()
+{
+    if (m_widgetengine) {
+        m_widgetengine->Clear();
+        AddJSExtension(_L("widget"),m_widgetengine->Widget(*m_widgetcallback, *this));
+        AddJSExtension(_L("menu"),m_widgetengine->Menu(*m_widgetcallback, *this));
+        AddJSExtension(_L("MenuItem"),m_widgetengine->MenuItem(*m_widgetcallback, *this));
+    }
+
+#if defined(BRDO_LIW_FF)
+    if (m_deviceBridge) {
+        m_deviceBridge->Clear();
+        AddJSExtension(_L("device"), m_deviceBridge->Device(0));
+        m_deviceBridge->SetUid( iWidgetId);
+    }
+#endif
+}
 
 //END OF FILE