webengine/osswebengine/WebKit/s60/webview/WidgetExtension.cpp
changeset 5 10e98eab6f85
parent 0 dd21522fd290
child 10 a359256acfc6
equal deleted inserted replaced
1:7c90e6132015 5:10e98eab6f85
    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