blob: af8744f07cdbf537cf71487e7eed304afe7a1a55 [file] [log] [blame]
// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_UI_VIEWS_DOTTED_ICON_H_
#define CHROME_BROWSER_UI_VIEWS_DOTTED_ICON_H_
#include "third_party/skia/include/core/SkColor.h"
namespace gfx {
class Canvas;
class Rect;
} // namespace gfx
// Using the `canvas` this function paints a half-full/half-dotted ring at
// `ring_bounds`, which is also used to determine where the ring is painted.
// Used to draw pending/inactive states around circular icons. A common pattern
// for this usage is to shrink the desired icon and then draw the dotted path
// using the original icon bounds.
// `opacity_ratio` is expected to have a value between 0.0 and 1.0, otherwise it
// will clamped. It can be used with animation current value to fade in the
// ring.
// `stroke_width` is the width of the ring.
void PaintRingDottedPath(gfx::Canvas* canvas,
const gfx::Rect& ring_bounds,
SkColor ring_color,
double opacity_ratio = 1.,
float stroke_width = 1.5);
#endif // CHROME_BROWSER_UI_VIEWS_DOTTED_ICON_H_