void FindController::drawRect(PageOverlay* pageOverlay, GraphicsContext& graphicsContext, const IntRect& dirtyRect) { float fractionFadedIn = pageOverlay->fractionFadedIn(); Vector<IntRect> rects = rectsForTextMatches(); // Draw the background. graphicsContext.fillRect(dirtyRect, overlayBackgroundColor(fractionFadedIn), ColorSpaceSRGB); { GraphicsContextStateSaver stateSaver(graphicsContext); graphicsContext.setShadow(FloatSize(shadowOffsetX, shadowOffsetY), shadowBlurRadius, holeShadowColor(fractionFadedIn), ColorSpaceSRGB); graphicsContext.setFillColor(holeFillColor(fractionFadedIn), ColorSpaceSRGB); // Draw white frames around the holes. for (size_t i = 0; i < rects.size(); ++i) { IntRect whiteFrameRect = rects[i]; whiteFrameRect.inflate(1); graphicsContext.fillRect(whiteFrameRect); } } graphicsContext.setFillColor(Color::transparent, ColorSpaceSRGB); // Clear out the holes. for (size_t i = 0; i < rects.size(); ++i) graphicsContext.fillRect(rects[i]); }
void FindPageOverlay::drawRect(GraphicsContext& graphicsContext, const IntRect& dirtyRect) { Vector<IntRect> rects = rectsForTextMatches(); ASSERT(!rects.isEmpty()); FrameView* frameView = webPage()->corePage()->mainFrame()->view(); int width = frameView->width(); if (frameView->verticalScrollbar()) width -= frameView->verticalScrollbar()->width(); int height = frameView->height(); if (frameView->horizontalScrollbar()) height -= frameView->horizontalScrollbar()->height(); IntRect paintRect = intersection(dirtyRect, IntRect(0, 0, width, height)); if (paintRect.isEmpty()) return; graphicsContext.beginTransparencyLayer(1); graphicsContext.setCompositeOperation(CompositeCopy); // Draw the background. graphicsContext.fillRect(paintRect, overlayBackgroundColor(), sRGBColorSpace); // FIXME: Draw the holes. graphicsContext.endTransparencyLayer(); }
void FindController::drawRect(PageOverlay*, GraphicsContext& graphicsContext, const IntRect& dirtyRect) { Vector<IntRect> rects = rectsForTextMatches(); // Draw the background. graphicsContext.fillRect(dirtyRect, overlayBackgroundColor(), ColorSpaceSRGB); graphicsContext.save(); graphicsContext.setShadow(FloatSize(shadowOffsetX, shadowOffsetY), shadowBlurRadius, Color::black, ColorSpaceSRGB); graphicsContext.setFillColor(Color::white, ColorSpaceSRGB); // Draw white frames around the holes. for (size_t i = 0; i < rects.size(); ++i) { IntRect whiteFrameRect = rects[i]; whiteFrameRect.inflate(1); graphicsContext.fillRect(whiteFrameRect); } graphicsContext.restore(); graphicsContext.setFillColor(Color::transparent, ColorSpaceSRGB); // Clear out the holes. for (size_t i = 0; i < rects.size(); ++i) graphicsContext.fillRect(rects[i]); }
void FindController::drawRect(PageOverlay* pageOverlay, GraphicsContext& graphicsContext, const IntRect& dirtyRect) { float fractionFadedIn = pageOverlay->fractionFadedIn(); Vector<IntRect> rects = rectsForTextMatches(); // Draw the background. graphicsContext.fillRect(dirtyRect, overlayBackgroundColor(fractionFadedIn), ColorSpaceSRGB); { GraphicsContextStateSaver stateSaver(graphicsContext); graphicsContext.setShadow(FloatSize(shadowOffsetX, shadowOffsetY), shadowBlurRadius, holeShadowColor(fractionFadedIn), ColorSpaceSRGB); graphicsContext.setFillColor(holeFillColor(fractionFadedIn), ColorSpaceSRGB); // Draw white frames around the holes. for (size_t i = 0; i < rects.size(); ++i) { IntRect whiteFrameRect = rects[i]; whiteFrameRect.inflate(1); graphicsContext.fillRect(whiteFrameRect); } } graphicsContext.setFillColor(Color::transparent, ColorSpaceSRGB); // Clear out the holes. for (size_t i = 0; i < rects.size(); ++i) graphicsContext.fillRect(rects[i]); if (!m_isShowingFindIndicator) return; if (Frame* selectedFrame = frameWithSelection(m_webPage->corePage())) { IntRect findIndicatorRect = selectedFrame->view()->contentsToWindow(enclosingIntRect(selectedFrame->selection()->bounds())); if (findIndicatorRect != m_findIndicatorRect) hideFindIndicator(); } }
void FindController::drawRect(PageOverlay*, GraphicsContext& graphicsContext, const IntRect& dirtyRect) { Color overlayBackgroundColor(0.1f, 0.1f, 0.1f, 0.25f); Vector<IntRect> rects = rectsForTextMatches(); // Draw the background. graphicsContext.fillRect(dirtyRect, overlayBackgroundColor, ColorSpaceSRGB); { GraphicsContextStateSaver stateSaver(graphicsContext); #if ENABLE(LEGACY_FIND_INDICATOR_STYLE) graphicsContext.setShadow(FloatSize(shadowOffsetX, shadowOffsetY), shadowBlurRadius, Color::black, ColorSpaceSRGB); #endif graphicsContext.setFillColor(Color::white, ColorSpaceSRGB); // Draw white frames around the holes. for (auto& rect : rects) { IntRect whiteFrameRect = rect; whiteFrameRect.inflate(1); graphicsContext.fillRect(whiteFrameRect); } } // Clear out the holes. for (auto& rect : rects) graphicsContext.clearRect(rect); if (!m_isShowingFindIndicator) return; if (Frame* selectedFrame = frameWithSelection(m_webPage->corePage())) { IntRect findIndicatorRect = selectedFrame->view()->contentsToWindow(enclosingIntRect(selectedFrame->selection().selectionBounds())); if (findIndicatorRect != m_findIndicatorRect) hideFindIndicator(); } }