WebKitThreadViewportAccessor.cpp [plain text]
#include "config.h"
#include "WebKitThreadViewportAccessor.h"
#include "WebPage_p.h"
#include <BlackBerryPlatformMessageClient.h>
#include <BlackBerryPlatformPrimitives.h>
using BlackBerry::Platform::IntPoint;
using BlackBerry::Platform::IntSize;
using BlackBerry::Platform::ViewportAccessor;
namespace BlackBerry {
namespace WebKit {
WebKitThreadViewportAccessor::WebKitThreadViewportAccessor(WebPagePrivate* webPagePrivate)
: m_webPagePrivate(webPagePrivate)
{
}
IntSize WebKitThreadViewportAccessor::pixelContentsSize() const
{
ASSERT(Platform::webKitThreadMessageClient()->isCurrentThread());
double scaleFactor = scale();
if (scaleFactor != 1.0) {
IntSize size = documentContentsSize();
return IntSize(
floorf(size.width() * scaleFactor),
floorf(size.height() * scaleFactor));
}
return documentContentsSize();
}
IntSize WebKitThreadViewportAccessor::documentContentsSize() const
{
ASSERT(Platform::webKitThreadMessageClient()->isCurrentThread());
return m_webPagePrivate->contentsSize();
}
IntPoint WebKitThreadViewportAccessor::pixelScrollPosition() const
{
ASSERT(Platform::webKitThreadMessageClient()->isCurrentThread());
return roundToPixelFromDocumentContents(documentScrollPosition());
}
IntPoint WebKitThreadViewportAccessor::documentScrollPosition() const
{
ASSERT(Platform::webKitThreadMessageClient()->isCurrentThread());
return m_webPagePrivate->scrollPosition();
}
IntSize WebKitThreadViewportAccessor::pixelViewportSize() const
{
ASSERT(Platform::webKitThreadMessageClient()->isCurrentThread());
return m_webPagePrivate->transformedActualVisibleSize();
}
IntSize WebKitThreadViewportAccessor::documentViewportSize() const
{
ASSERT(Platform::webKitThreadMessageClient()->isCurrentThread());
return roundToDocumentFromPixelContents(pixelViewportRect()).size();
}
IntPoint WebKitThreadViewportAccessor::destinationSurfaceOffset() const
{
return IntPoint(0, 0);
}
double WebKitThreadViewportAccessor::scale() const
{
ASSERT(Platform::webKitThreadMessageClient()->isCurrentThread());
return m_webPagePrivate->currentScale();
}
} }