changeset 13 | 10e98eab6f85 |
parent 8 | 7c90e6132015 |
child 16 | a359256acfc6 |
8:7c90e6132015 | 13:10e98eab6f85 |
---|---|
282 } |
282 } |
283 } |
283 } |
284 |
284 |
285 void CBrCtl::Draw(const TRect& aRect) const |
285 void CBrCtl::Draw(const TRect& aRect) const |
286 { |
286 { |
287 if (m_webView->isPluginFullscreen()) return; //don't draw if in plugin fullscreen mode |
|
288 |
|
289 if (!(m_capabilities & TBrCtlDefs::ECapabilityDisplayScrollBar) |
|
290 || (getMainScrollbarWidth() == 0) |
|
291 || AknLayoutUtils::PenEnabled()) { //touch screen scrollbar is drawn |
|
292 return; //by WebScrollbarDrawer |
|
293 } |
|
294 CWindowGc& gc = SystemGc(); |
|
295 TRect rect(Rect()); |
|
296 int documentHeight = (m_displayHeight > m_documentHeight) ? m_displayHeight : m_documentHeight; |
|
297 int documentWidth = (m_displayWidth > m_documentWidth) ? m_displayWidth : m_documentWidth; |
|
298 gc.SetDrawMode(CGraphicsContext::EDrawModePEN); |
|
299 if (AknLayoutUtils::LayoutMirrored()) { |
|
300 // rtl |
|
301 if (m_hasHorizontalScrollbar) { |
|
302 TRect vertical(0, 0, KMainScrollbarWidth, rect.Height() - KMainScrollbarWidth); |
|
303 TRect horizontal(KMainScrollbarWidth, rect.Height() - KMainScrollbarWidth, rect.Width(), rect.Height()); |
|
304 TRect verticalThumb(0, (m_displayPosY * m_displayHeight) / documentHeight, |
|
305 KMainScrollbarWidth, (m_displayPosY * m_displayHeight + m_displayHeight * m_displayHeight) / documentHeight); |
|
306 TRect horizontalThumb(KMainScrollbarWidth + (m_displayPosX * m_displayWidth) / documentWidth, rect.Height() - KMainScrollbarWidth, |
|
307 KMainScrollbarWidth + (m_displayPosX * m_displayWidth + m_displayWidth * m_displayWidth) / documentWidth, rect.Height()); |
|
308 TRect corner(0, rect.Height() - KMainScrollbarWidth, KMainScrollbarWidth, rect.Height()); |
|
309 vertical.Intersection(aRect); |
|
310 horizontal.Intersection(aRect); |
|
311 if (!(vertical.IsEmpty() || horizontal.IsEmpty())) { |
|
312 gc.SetBrushStyle(CGraphicsContext::ESolidBrush); |
|
313 gc.SetBrushColor(KGray); |
|
314 gc.SetPenStyle(CGraphicsContext::ESolidPen); |
|
315 gc.SetPenSize(TSize(1, 1)); |
|
316 gc.SetPenColor(KBlack); |
|
317 gc.DrawRect(vertical); |
|
318 gc.DrawRect(horizontal); |
|
319 gc.SetBrushColor(KDarkGray); |
|
320 gc.DrawRect(verticalThumb); |
|
321 gc.DrawRect(horizontalThumb); |
|
322 gc.SetBrushColor(KWhite); |
|
323 gc.SetPenColor(KWhite); |
|
324 gc.DrawRect(corner); |
|
325 } |
|
326 } |
|
327 else { |
|
328 TRect vertical(0, 0, KMainScrollbarWidth, rect.Height()); |
|
329 TRect verticalThumb(0, (m_displayPosY * m_displayHeight) / documentHeight, |
|
330 KMainScrollbarWidth, (m_displayPosY * m_displayHeight + m_displayHeight * m_displayHeight) / documentHeight); |
|
331 vertical.Intersection(aRect); |
|
332 if (!vertical.IsEmpty()) { |
|
333 gc.SetBrushStyle(CGraphicsContext::ESolidBrush); |
|
334 gc.SetBrushColor(KGray); |
|
335 gc.SetPenStyle(CGraphicsContext::ESolidPen); |
|
336 gc.SetPenSize(TSize(1, 1)); |
|
337 gc.SetPenColor(KBlack); |
|
338 gc.DrawRect(vertical); |
|
339 gc.SetBrushColor(KDarkGray); |
|
340 gc.DrawRect(verticalThumb); |
|
341 } |
|
342 } |
|
343 } |
|
344 else { |
|
345 // ltr |
|
346 if (m_hasHorizontalScrollbar) { |
|
347 TRect vertical(rect.Width() - KMainScrollbarWidth, 0, rect.Width(), rect.Height() - KMainScrollbarWidth); |
|
348 TRect horizontal(0, rect.Height() - KMainScrollbarWidth, rect.Width() - KMainScrollbarWidth, rect.Height()); |
|
349 TRect verticalThumb(rect.Width() - KMainScrollbarWidth, (m_displayPosY * m_displayHeight) / documentHeight, |
|
350 rect.Width(), (m_displayPosY * m_displayHeight + m_displayHeight * m_displayHeight) / documentHeight); |
|
351 TRect horizontalThumb((m_displayPosX * m_displayWidth) / documentWidth, rect.Height() - KMainScrollbarWidth, |
|
352 (m_displayPosX * m_displayWidth + m_displayWidth * m_displayWidth) / documentWidth, rect.Height()); |
|
353 TRect corner(rect.Width() - KMainScrollbarWidth, rect.Height() - KMainScrollbarWidth, rect.Width(), rect.Height()); |
|
354 vertical.Intersection(aRect); |
|
355 horizontal.Intersection(aRect); |
|
356 if (!(vertical.IsEmpty() || horizontal.IsEmpty())) { |
|
357 gc.SetBrushStyle(CGraphicsContext::ESolidBrush); |
|
358 gc.SetBrushColor(KGray); |
|
359 gc.SetPenStyle(CGraphicsContext::ESolidPen); |
|
360 gc.SetPenSize(TSize(1, 1)); |
|
361 gc.SetPenColor(KBlack); |
|
362 gc.DrawRect(vertical); |
|
363 gc.DrawRect(horizontal); |
|
364 gc.SetBrushColor(KDarkGray); |
|
365 gc.DrawRect(verticalThumb); |
|
366 gc.DrawRect(horizontalThumb); |
|
367 gc.SetBrushColor(KWhite); |
|
368 gc.SetPenColor(KWhite); |
|
369 gc.DrawRect(corner); |
|
370 } |
|
371 } |
|
372 else |
|
373 { |
|
374 TRect vertical(rect.Width() - KMainScrollbarWidth, 0, rect.Width(), rect.Height()); |
|
375 TRect verticalThumb(rect.Width() - KMainScrollbarWidth, (m_displayPosY * m_displayHeight) / documentHeight, |
|
376 rect.Width(), (m_displayPosY * m_displayHeight + m_displayHeight * m_displayHeight) / documentHeight); |
|
377 vertical.Intersection(aRect); |
|
378 if (!vertical.IsEmpty()) { |
|
379 gc.SetBrushStyle(CGraphicsContext::ESolidBrush); |
|
380 gc.SetBrushColor(KGray); |
|
381 gc.SetPenStyle(CGraphicsContext::ESolidPen); |
|
382 gc.SetPenSize(TSize(1, 1)); |
|
383 gc.SetPenColor(KBlack); |
|
384 gc.DrawRect(vertical); |
|
385 gc.SetBrushColor(KDarkGray); |
|
386 gc.DrawRect(verticalThumb); |
|
387 } |
|
388 } |
|
389 } |
|
390 |
|
391 } |
287 } |
392 |
288 |
393 |
289 |
394 WebSurface* HistoryHandler::surface() |
290 WebSurface* HistoryHandler::surface() |
395 { |
291 { |
546 SetContainerWindowL( *aParent ); |
442 SetContainerWindowL( *aParent ); |
547 m_rect = aRect; |
443 m_rect = aRect; |
548 m_webView = WebView::NewL(*aParent, this); |
444 m_webView = WebView::NewL(*aParent, this); |
549 m_historyHandler = HistoryHandler::initWithHandle(this); |
445 m_historyHandler = HistoryHandler::initWithHandle(this); |
550 m_settingsContainer = new (ELeave) SettingsContainer(m_webView, m_historyHandler->historyController()); |
446 m_settingsContainer = new (ELeave) SettingsContainer(m_webView, m_historyHandler->historyController()); |
551 m_settingsContainer->setTabbedNavigation(!(capabilities()&TBrCtlDefs::ECapabilityCursorNavigation)); |
447 m_settingsContainer->setNavigationType((capabilities()&TBrCtlDefs::ECapabilityCursorNavigation) ? SettingsContainer::NavigationTypeCursor : SettingsContainer::NavigationTypeTabbed); |
552 |
448 |
553 m_usrAgnt = CUserAgent::NewL(); |
449 m_usrAgnt = CUserAgent::NewL(); |
554 |
450 |
555 if (m_brCtlLayoutObserver == NULL) |
451 if (m_brCtlLayoutObserver == NULL) |
556 { |
452 { |
557 m_brCtlLayoutObserver = new (ELeave) CBrCtlLayoutObserver(); |
453 m_brCtlLayoutObserver = new (ELeave) CBrCtlLayoutObserver(); |
558 m_ownsLayoutObserver = true; |
454 m_ownsLayoutObserver = true; |
1076 EXPORT_C void CBrCtl::LoadDataL(const TDesC& aUrl, const TDesC8& aData, |
972 EXPORT_C void CBrCtl::LoadDataL(const TDesC& aUrl, const TDesC8& aData, |
1077 const TDataType& aDataType, |
973 const TDataType& aDataType, |
1078 TUid aCharsetUid) |
974 TUid aCharsetUid) |
1079 { |
975 { |
1080 const TText* charset = charsetForUid(aCharsetUid.iUid); |
976 const TText* charset = charsetForUid(aCharsetUid.iUid); |
1081 if (charset == NULL) { |
|
1082 charset = _S("iso-8859-1"); |
|
1083 } |
|
1084 |
977 |
1085 HBufC8* url = HBufC8::NewLC(aUrl.Length()); |
978 HBufC8* url = HBufC8::NewLC(aUrl.Length()); |
1086 url->Des().Copy(aUrl); |
979 url->Des().Copy(aUrl); |
1087 PassRefPtr<SharedBuffer> data = new SharedBuffer((const char*)aData.Ptr(), aData.Length()); |
980 PassRefPtr<SharedBuffer> data = new SharedBuffer((const char*)aData.Ptr(), aData.Length()); |
1088 String mimeTypeStr(aDataType.Des()); |
981 String mimeTypeStr(aDataType.Des()); |
1850 // BrowserControl. |
1743 // BrowserControl. |
1851 // ----------------------------------------------------------------------------- |
1744 // ----------------------------------------------------------------------------- |
1852 // |
1745 // |
1853 void CBrCtl::SizeChanged() |
1746 void CBrCtl::SizeChanged() |
1854 { |
1747 { |
1855 if (m_webView->isPluginFullscreen()) return; |
1748 if (StaticObjectsContainer::instance()->isPluginFullscreen()) return; |
1856 TRect adjustedRect( Rect() ); |
1749 TRect adjustedRect( Rect() ); |
1857 TBool callDoLayout = EFalse; |
1750 TBool callDoLayout = EFalse; |
1858 TInt scrollBarWidth = getMainScrollbarWidth(); |
1751 TInt scrollBarWidth = getMainScrollbarWidth(); |
1859 |
1752 |
1860 if ( (m_capabilities & TBrCtlDefs::ECapabilityDisplayScrollBar)) { |
1753 if ( (m_capabilities & TBrCtlDefs::ECapabilityDisplayScrollBar)) { |
2120 CBrCtlInterface* newBrctl = NULL; |
2013 CBrCtlInterface* newBrctl = NULL; |
2121 TPtrC emptyUrl = KNullDesC(); |
2014 TPtrC emptyUrl = KNullDesC(); |
2122 if (m_brCtlWindowObserver) { |
2015 if (m_brCtlWindowObserver) { |
2123 newBrctl = m_brCtlWindowObserver->FindWindowL(windowName); |
2016 newBrctl = m_brCtlWindowObserver->FindWindowL(windowName); |
2124 if (!newBrctl) |
2017 if (!newBrctl) |
2125 newBrctl = m_brCtlWindowObserver->OpenWindowL(emptyUrl, &windowName, userGesture, 0); |
2018 { |
2019 if(StaticObjectsContainer::instance()->isPluginFullscreen()) |
|
2020 { |
|
2021 PluginSkin* plugin=m_webView->mainFrame()->focusedPlugin(); |
|
2022 plugin->deActivate(); |
|
2023 } |
|
2024 newBrctl = m_brCtlWindowObserver->OpenWindowL(emptyUrl, &windowName, userGesture, 0); |
|
2025 } |
|
2126 } |
2026 } |
2127 return static_cast<CBrCtl*>(newBrctl); |
2027 return static_cast<CBrCtl*>(newBrctl); |
2128 } |
2028 } |
2129 |
2029 |
2130 void CBrCtl::showWindow() |
2030 void CBrCtl::showWindow() |
2473 } |
2373 } |
2474 |
2374 |
2475 |
2375 |
2476 int CBrCtl::getMainScrollbarWidth() const |
2376 int CBrCtl::getMainScrollbarWidth() const |
2477 { |
2377 { |
2478 //return (AknLayoutUtils::PenEnabled() ? 0 : KMainScrollbarWidth); |
|
2479 return 0; |
2378 return 0; |
2480 } |
2379 } |
2481 |
2380 |
2482 MBrCtlDownloadObserver* CBrCtl::brCtlDownloadObserver() |
2381 MBrCtlDownloadObserver* CBrCtl::brCtlDownloadObserver() |
2483 { |
2382 { |
2484 if (!m_brCtlDownloadObserver) { |
2383 if (!m_brCtlDownloadObserver) { |
2485 return WebCore::StaticObjectsContainer::instance()->resourceLoaderDelegate()->httpSessionManager()->uiCallback(); |
2384 return WebCore::StaticObjectsContainer::instance()->resourceLoaderDelegate()->httpSessionManager()->uiCallback(); |
2486 } |
2385 } |
2487 return m_brCtlDownloadObserver; |
2386 return m_brCtlDownloadObserver; |
2488 } |
2387 } |
2388 |
|
2389 |
|
2390 |
|
2489 void CBrCtl::HandlePointerBufferReadyL() |
2391 void CBrCtl::HandlePointerBufferReadyL() |
2490 { |
2392 { |
2491 m_webView->HandlePointerBufferReadyL(); |
2393 m_webView->HandlePointerBufferReadyL(); |
2492 } |
2394 } |