diff -r 7c90e6132015 -r 10e98eab6f85 webengine/osswebengine/WebKit/s60/webview/WidgetExtension.cpp --- 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