// Copyright 2016 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_FRAME_WINDOWS_ICON_PAINTER_H_
#define CHROME_BROWSER_UI_VIEWS_FRAME_WINDOWS_ICON_PAINTER_H_
#include "base/memory/raw_ptr.h"
#include "ui/gfx/canvas.h"
class Windows10IconPainter {
public:
Windows10IconPainter();
virtual ~Windows10IconPainter();
Windows10IconPainter(const Windows10IconPainter&) = delete;
Windows10IconPainter& operator=(const Windows10IconPainter&) = delete;
public:
// Paints the minimize icon for the button
virtual void PaintMinimizeIcon(gfx::Canvas* canvas,
gfx::Rect& symbol_rect,
cc::PaintFlags& flags);
// Paints the maximize icon for the button
virtual void PaintMaximizeIcon(gfx::Canvas* canvas,
gfx::Rect& symbol_rect,
cc::PaintFlags& flags);
// Paints the restore icon for the button
virtual void PaintRestoreIcon(gfx::Canvas* canvas,
gfx::Rect& symbol_rect,
cc::PaintFlags& flags);
// Paints the close icon for the button
virtual void PaintCloseIcon(gfx::Canvas* canvas,
gfx::Rect& symbol_rect,
cc::PaintFlags& flags);
// Paints the tab search icon for the button
virtual void PaintTabSearchIcon(gfx::Canvas* canvas,
gfx::Rect& symbol_rect,
cc::PaintFlags& flags);
};
class Windows11IconPainter : public Windows10IconPainter {
public:
Windows11IconPainter();
~Windows11IconPainter() override;
Windows11IconPainter(const Windows11IconPainter&) = delete;
Windows11IconPainter& operator=(const Windows11IconPainter&) = delete;
public:
// Paints the maximize icon for the button
void PaintMaximizeIcon(gfx::Canvas* canvas,
gfx::Rect& symbol_rect,
cc::PaintFlags& flags) override;
// Paints the restore icon for the button
void PaintRestoreIcon(gfx::Canvas* canvas,
gfx::Rect& symbol_rect,
cc::PaintFlags& flags) override;
};
#endif // CHROME_BROWSER_UI_VIEWS_FRAME_WINDOWS_ICON_PAINTER_H_