#ifndef UI_VIEWS_CONTROLS_BUTTON_IMAGE_BUTTON_FACTORY_H_
#define UI_VIEWS_CONTROLS_BUTTON_IMAGE_BUTTON_FACTORY_H_
#include <memory>
#include <optional>
#include "third_party/skia/include/core/SkColor.h"
#include "ui/color/color_id.h"
#include "ui/views/controls/button/button.h"
#include "ui/views/views_export.h"
namespace gfx {
struct VectorIcon;
}
namespace views {
class ImageButton;
class ToggleImageButton;
VIEWS_EXPORT std::unique_ptr<ImageButton>
CreateVectorImageButtonWithNativeTheme(
Button::PressedCallback callback,
const gfx::VectorIcon& icon,
std::optional<int> dip_size = std::nullopt,
ui::ColorId icon_color_id = ui::kColorIcon,
ui::ColorId icon_disabled_color_id = ui::kColorIconDisabled);
VIEWS_EXPORT std::unique_ptr<ImageButton> CreateVectorImageButton(
Button::PressedCallback callback);
VIEWS_EXPORT std::unique_ptr<ToggleImageButton> CreateVectorToggleImageButton(
Button::PressedCallback callback);
VIEWS_EXPORT void ConfigureVectorImageButton(ImageButton* button);
VIEWS_EXPORT void SetImageFromVectorIconWithColor(ImageButton* button,
const gfx::VectorIcon& icon,
SkColor icon_color,
SkColor icon_disabled_color);
VIEWS_EXPORT void SetImageFromVectorIconWithColor(ImageButton* button,
const gfx::VectorIcon& icon,
int dip_size,
SkColor icon_color,
SkColor icon_disabled_color);
VIEWS_EXPORT void SetToggledImageFromVectorIconWithColor(
ToggleImageButton* button,
const gfx::VectorIcon& icon,
int dip_size,
SkColor icon_color,
SkColor disabled_color);
VIEWS_EXPORT void SetImageFromVectorIconWithColorId(
ImageButton* button,
const gfx::VectorIcon& icon,
ui::ColorId icon_color_id,
ui::ColorId icon_disabled_color_id,
std::optional<int> icon_size = std::nullopt);
VIEWS_EXPORT void SetToggledImageFromVectorIconWithColorId(
ToggleImageButton* button,
const gfx::VectorIcon& icon,
ui::ColorId icon_color_id,
ui::ColorId icon_disabled_color_id,
std::optional<int> icon_size = std::nullopt);
}
#endif