diff -r 000000000000 -r 1450b09d0cfd ginebra2/WebChromeSnippet.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ginebra2/WebChromeSnippet.cpp Tue May 04 12:39:35 2010 +0300 @@ -0,0 +1,82 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include "WebChromeSnippet.h" +#include "WebChromeItem.h" +#include "PopupWebChromeItem.h" +#include "ChromeRenderer.h" +#include "ChromeWidget.h" +#include "ChromeDOM.h" +#include +#include + +namespace GVA { + + static WebChromeItem * newChromeItem( + ChromeWidget * chrome, + const QRectF& ownerArea, + const QWebElement & element) + { + QString type = element.attribute("data-GinebraItemType", "normal"); + + if (type == "popup") { + return new PopupWebChromeItem(ownerArea, chrome, element); + } + + return new WebChromeItem(ownerArea, chrome, element); + } + + WebChromeSnippet::WebChromeSnippet( + const QString & elementId, + ChromeWidget * chrome, + const QRectF& ownerArea, + const QWebElement & element) + : ChromeSnippet(elementId, chrome, newChromeItem(chrome, ownerArea, element), element) + + { + WebChromeItem * item = static_cast (widget()); + item->init(this); + } + + WebChromeSnippet::~WebChromeSnippet() + { + } + + WebChromeItem * WebChromeSnippet::item() + { + return static_cast (widget()); + } + + void WebChromeSnippet:: grabFocus() + { + //qDebug() << "WebChromeSnippet::grabFocus"; + WebChromeItem * item = static_cast (widget()); + item->grabFocus(); + } + + void WebChromeSnippet:: updateOwnerArea() + { + WebChromeItem * item = static_cast (widget()); + //Setting owner area also resets the item's size and preferred size + item->setOwnerArea(m_chrome->getSnippetRect(m_elementId)); + //qDebug() << WebChromeSnippet::updateOwnerArea: id: " << m_elementId << " element rect: " << item->ownerArea(); + //NB: Should move this to WebChromeItem::setOwnerArea()? + item->setCachedHandlers(m_chrome->dom()->getCachedHandlers(m_elementId, item->ownerArea())); + } + +} // endof namespace GVA