67 |
67 |
68 |
68 |
69 CWidgetExtension::~CWidgetExtension() |
69 CWidgetExtension::~CWidgetExtension() |
70 { |
70 { |
71 delete m_widgetengine; |
71 delete m_widgetengine; |
72 m_widgetLibrary.Close(); |
|
73 #if defined(BRDO_LIW_FF) |
72 #if defined(BRDO_LIW_FF) |
74 delete m_deviceBridge; |
73 delete m_deviceBridge; |
75 m_deviceLibrary.Close(); |
|
76 #endif |
74 #endif |
77 } |
75 } |
78 |
76 |
79 void CWidgetExtension::ConstructL(MWidgetCallback& aWidgetCallback) |
77 void CWidgetExtension::ConstructL(MWidgetCallback& aWidgetCallback) |
80 { |
78 { |
81 if (!m_widgetengine) { |
79 if (!m_widgetengine) { |
82 _LIT( KBrowserWidgetEngineName, "widgetengine.dll" ); |
80 |
83 User::LeaveIfError( m_widgetLibrary.Load(KBrowserWidgetEngineName) ); |
81 m_widgetengine = WebCore::StaticObjectsContainer::instance()->getWidgetEngineBridgeL(); |
84 TLibraryFunction entry = m_widgetLibrary.Lookup(1); |
82 if(!m_widgetengine) { |
85 if (!entry) { |
|
86 User::Leave(KErrNotFound); |
83 User::Leave(KErrNotFound); |
87 } |
84 } |
88 m_widgetengine = (MWidgetEngineBridge*) entry(); |
85 |
89 m_widgetcallback = &aWidgetCallback; |
86 m_widgetcallback = &aWidgetCallback; |
90 |
87 |
91 if (m_widgetengine) { |
|
92 AddJSExtension(_L("widget"),m_widgetengine->Widget(*m_widgetcallback, *this)); |
|
93 AddJSExtension(_L("menu"),m_widgetengine->Menu(*m_widgetcallback, *this)); |
|
94 AddJSExtension(_L("MenuItem"),m_widgetengine->MenuItem(*m_widgetcallback, *this)); |
|
95 } |
|
96 |
88 |
97 #if defined(BRDO_LIW_FF) |
89 #if defined(BRDO_LIW_FF) |
98 // device for SAPI |
90 // device for SAPI |
99 _LIT( KDeviceDLLName, "jsdevice.dll" ); |
91 |
100 User::LeaveIfError( m_deviceLibrary.Load(KDeviceDLLName) ); |
92 m_deviceBridge = WebCore::StaticObjectsContainer::instance()->getDeviceBridgeL(); |
101 TLibraryFunction device_entry = m_deviceLibrary.Lookup(1); |
93 if (!m_deviceBridge) { |
102 if (!device_entry) { |
|
103 User::Leave(KErrNotFound); |
94 User::Leave(KErrNotFound); |
104 } |
95 } |
105 m_deviceBridge = (MDeviceBridge*) device_entry(); |
96 |
106 |
|
107 if (m_deviceBridge) { |
|
108 AddJSExtension(_L("device"), m_deviceBridge->Device(0)); |
|
109 } |
|
110 #endif |
97 #endif |
111 |
98 |
112 if (m_webview && m_webview->page()) { |
99 if (m_webview && m_webview->page()) { |
113 WebCore::Settings* settings = m_webview->page()->settings(); |
100 WebCore::Settings* settings = m_webview->page()->settings(); |
114 if (settings) { |
101 if (settings) { |
222 |
209 |
223 } |
210 } |
224 |
211 |
225 void CWidgetExtension::setTabbednavigation(bool aOn) |
212 void CWidgetExtension::setTabbednavigation(bool aOn) |
226 { |
213 { |
227 m_webview->brCtl()->settings()->setTabbedNavigation(aOn); |
214 m_webview->brCtl()->settings()->setNavigationType(aOn ? SettingsContainer::NavigationTypeTabbed : SettingsContainer::NavigationTypeCursor); |
228 WebCore::StaticObjectsContainer::instance()->webCursor()->cursorUpdate(true); |
215 WebCore::StaticObjectsContainer::instance()->webCursor()->cursorUpdate(true); |
229 } |
216 } |
230 |
217 |
|
218 void CWidgetExtension::setNavigationType(const TDesC& aType) |
|
219 { |
|
220 if (aType.Compare(_L("cursor")) == 0) |
|
221 m_webview->brCtl()->settings()->setNavigationType(SettingsContainer::NavigationTypeCursor); |
|
222 else if (aType.Compare(_L("tabbed")) == 0) |
|
223 m_webview->brCtl()->settings()->setNavigationType(SettingsContainer::NavigationTypeTabbed); |
|
224 else if (aType.Compare(_L("none")) == 0) |
|
225 m_webview->brCtl()->settings()->setNavigationType(SettingsContainer::NavigationTypeNone); |
|
226 WebCore::StaticObjectsContainer::instance()->webCursor()->cursorUpdate(true); |
|
227 } |
|
228 |
|
229 void CWidgetExtension::windowObjectCleared() |
|
230 { |
|
231 if (m_widgetengine) { |
|
232 m_widgetengine->Clear(); |
|
233 AddJSExtension(_L("widget"),m_widgetengine->Widget(*m_widgetcallback, *this)); |
|
234 AddJSExtension(_L("menu"),m_widgetengine->Menu(*m_widgetcallback, *this)); |
|
235 AddJSExtension(_L("MenuItem"),m_widgetengine->MenuItem(*m_widgetcallback, *this)); |
|
236 } |
|
237 |
|
238 #if defined(BRDO_LIW_FF) |
|
239 if (m_deviceBridge) { |
|
240 m_deviceBridge->Clear(); |
|
241 AddJSExtension(_L("device"), m_deviceBridge->Device(0)); |
|
242 m_deviceBridge->SetUid( iWidgetId); |
|
243 } |
|
244 #endif |
|
245 } |
231 |
246 |
232 //END OF FILE |
247 //END OF FILE |
233 |
248 |
234 |
249 |
235 |
250 |