#include "ui/views/controls/button/image_button_factory.h"
#include <memory>
#include <utility>
#include "base/memory/raw_ref.h"
#include "ui/base/models/image_model.h"
#include "ui/color/color_id.h"
#include "ui/color/color_provider.h"
#include "ui/gfx/color_palette.h"
#include "ui/gfx/color_utils.h"
#include "ui/gfx/paint_vector_icon.h"
#include "ui/gfx/vector_icon_types.h"
#include "ui/gfx/vector_icon_utils.h"
#include "ui/views/animation/ink_drop.h"
#include "ui/views/border.h"
#include "ui/views/controls/button/image_button.h"
#include "ui/views/layout/layout_provider.h"
#include "ui/views/painter.h"
namespace views {
namespace {
class ColorTrackingVectorImageButton : public ImageButton { … };
}
std::unique_ptr<ImageButton> CreateVectorImageButtonWithNativeTheme(
Button::PressedCallback callback,
const gfx::VectorIcon& icon,
std::optional<int> dip_size,
ui::ColorId icon_color_id,
ui::ColorId icon_disabled_color_id) { … }
std::unique_ptr<ImageButton> CreateVectorImageButton(
Button::PressedCallback callback) { … }
std::unique_ptr<ToggleImageButton> CreateVectorToggleImageButton(
Button::PressedCallback callback) { … }
void ConfigureVectorImageButton(ImageButton* button) { … }
void SetImageFromVectorIconWithColor(ImageButton* button,
const gfx::VectorIcon& icon,
SkColor icon_color,
SkColor icon_disabled_color) { … }
void SetImageFromVectorIconWithColor(ImageButton* button,
const gfx::VectorIcon& icon,
int dip_size,
SkColor icon_color,
SkColor icon_disabled_color) { … }
void SetToggledImageFromVectorIconWithColor(ToggleImageButton* button,
const gfx::VectorIcon& icon,
int dip_size,
SkColor icon_color,
SkColor disabled_color) { … }
void SetImageFromVectorIconWithColorId(ImageButton* button,
const gfx::VectorIcon& icon,
ui::ColorId icon_color_id,
ui::ColorId icon_disabled_color_id,
std::optional<int> icon_size) { … }
void SetToggledImageFromVectorIconWithColorId(
ToggleImageButton* button,
const gfx::VectorIcon& icon,
ui::ColorId icon_color_id,
ui::ColorId icon_disabled_color_id,
std::optional<int> icon_size) { … }
}