bool ImageDocument::imageFitsInWindow() const { if (!m_imageElement) return true; FrameView* view = frame()->view(); IntSize imageSize = m_imageElement->cachedImage()->imageSize(view->pageZoomFactor()); IntSize windowSize = IntSize(view->width(), view->height()); return imageSize.width() <= windowSize.width() && imageSize.height() <= windowSize.height(); }
static int contentsY(AbstractView* abstractView) { if (!abstractView) return 0; Frame* frame = abstractView->frame(); if (!frame) return 0; FrameView* frameView = frame->view(); if (!frameView) return 0; return frameView->scrollY() / frameView->pageZoomFactor(); }
static float pageZoomFactor(UIEvent* event) { DOMWindow* window = event->view(); if (!window) return 1; Frame* frame = window->frame(); if (!frame) return 1; FrameView* view = frame->view(); if (!view) return 1; return view->pageZoomFactor(); }
float ImageDocument::scale() const { if (!m_imageElement) return 1.0f; FrameView* view = frame()->view(); if (!view) return 1; IntSize imageSize = m_imageElement->cachedImage()->imageSize(view->pageZoomFactor()); IntSize windowSize = IntSize(view->width(), view->height()); float widthScale = (float)windowSize.width() / imageSize.width(); float heightScale = (float)windowSize.height() / imageSize.height(); return min(widthScale, heightScale); }
static float pageZoomFactor(Document* document) { FrameView* view = document->view(); return view ? view->pageZoomFactor() : 1; }