bool ImageDocument::imageFitsInWindow() const { if (!m_imageElement) return true; FrameView* view = frame()->view(); if (!view) return true; IntSize imageSize = m_imageElement->cachedImage()->imageSize(pageZoomFactor(this)); IntRect windowRect = view->contentsToScreen(view->actualVisibleContentRect()); return imageSize.width() <= windowRect.width() && imageSize.height() <= windowRect.height(); }
HRESULT STDMETHODCALLTYPE DOMHTMLInputElement::rectOnScreen( /* [retval][out] */ LPRECT rect) { ASSERT(is<HTMLInputElement>(m_element)); rect->left = rect->top = rect->right = rect->bottom = 0; RenderObject* renderer = m_element->renderer(); FrameView* view = m_element->document().view(); if (!renderer || !view) return E_FAIL; IntRect coreRect = view->contentsToScreen(renderer->absoluteBoundingBoxRect()); rect->left = coreRect.x(); rect->top = coreRect.y(); rect->right = coreRect.maxX(); rect->bottom = coreRect.maxY(); return S_OK; }
static void contentsToAtk(AccessibilityObject* coreObject, AtkCoordType coordType, IntRect rect, gint* x, gint* y, gint* width = 0, gint* height = 0) { FrameView* frameView = coreObject->documentFrameView(); if (frameView) { switch (coordType) { case ATK_XY_WINDOW: rect = frameView->contentsToWindow(rect); break; case ATK_XY_SCREEN: rect = frameView->contentsToScreen(rect); break; } } if (x) *x = rect.x(); if (y) *y = rect.y(); if (width) *width = rect.width(); if (height) *height = rect.height(); }