Commit 3a2f267b authored by Joey Arhar's avatar Joey Arhar Committed by Commit Bot

Enable form control refresh for Android

This patch enables the new form control refresh feature, controlled by
the flag #form-controls-refresh, for Android by moving the new form
controls from NativeThemeAura to NativeThemeBase.

Bug: 1022073
Change-Id: I1fbc4cd2962becbe93a227518354c46886467aa4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1900651
Commit-Queue: Joey Arhar <jarhar@chromium.org>
Reviewed-by: default avatarMason Freed <masonfreed@chromium.org>
Reviewed-by: default avatarAvi Drissman <avi@chromium.org>
Reviewed-by: default avatarElly Fong-Jones <ellyjones@chromium.org>
Cr-Commit-Position: refs/heads/master@{#715293}
parent afa7f664
......@@ -43,6 +43,7 @@ static void GetNativeThemeExtraParams(
native_theme_extra_params->button.checked = extra_params->button.checked;
native_theme_extra_params->button.indeterminate =
extra_params->button.indeterminate;
native_theme_extra_params->button.zoom = extra_params->button.zoom;
break;
case WebThemeEngine::kPartRadio:
native_theme_extra_params->button.checked = extra_params->button.checked;
......@@ -80,6 +81,10 @@ static void GetNativeThemeExtraParams(
extra_params->menu_list.background_color;
break;
case WebThemeEngine::kPartSliderTrack:
native_theme_extra_params->slider.thumb_x = extra_params->slider.thumb_x;
native_theme_extra_params->slider.thumb_y = extra_params->slider.thumb_y;
native_theme_extra_params->slider.zoom = extra_params->slider.zoom;
FALLTHROUGH;
case WebThemeEngine::kPartSliderThumb:
native_theme_extra_params->slider.vertical =
extra_params->slider.vertical;
......
This diff is collapsed.
......@@ -18,52 +18,12 @@ class NATIVE_THEME_EXPORT NativeThemeAura : public NativeThemeBase {
friend class NativeThemeAuraTest;
friend class base::NoDestructor<NativeThemeAura>;
// Colors for form controls refresh.
enum ControlColorId {
kBorder,
kDisabledBorder,
kHoveredBorder,
kAccent,
kDisabledAccent,
kHoveredAccent,
kBackground,
kDisabledBackground,
kFill,
kDisabledFill,
kHoveredFill,
kLightenLayer,
kProgressValue,
kSlider,
kDisabledSlider,
kHoveredSlider
};
explicit NativeThemeAura(bool use_overlay_scrollbars);
~NativeThemeAura() override;
static NativeThemeAura* instance();
static NativeThemeAura* web_instance();
void PaintLightenLayer(cc::PaintCanvas* canvas,
SkRect skrect,
State state,
SkScalar border_radius,
ColorScheme color_scheme) const;
SkColor ControlsAccentColorForState(State state,
ColorScheme color_scheme) const;
SkColor ControlsBorderColorForState(State state,
ColorScheme color_scheme) const;
SkColor ControlsFillColorForState(State state,
ColorScheme color_scheme) const;
SkColor ControlsBackgroundColorForState(State state,
ColorScheme color_scheme) const;
SkColor ControlsSliderColorForState(State state,
ColorScheme color_scheme) const;
SkColor GetHighContrastControlColor(ControlColorId color_id,
ColorScheme color_scheme) const;
SkColor GetControlColor(ControlColorId color_id,
ColorScheme color_scheme) const;
// NativeThemeBase:
SkColor GetSystemColor(ColorId color_id,
ColorScheme color_scheme) const override;
......@@ -77,11 +37,6 @@ class NATIVE_THEME_EXPORT NativeThemeAura : public NativeThemeBase {
const gfx::Rect& rect,
const MenuItemExtraParams& menu_item,
ColorScheme color_scheme) const override;
void PaintProgressBar(cc::PaintCanvas* canvas,
State state,
const gfx::Rect& rect,
const ProgressBarExtraParams& progress_bar,
ColorScheme color_scheme) const override;
void PaintArrowButton(cc::PaintCanvas* gc,
const gfx::Rect& rect,
Part direction,
......@@ -104,41 +59,6 @@ class NATIVE_THEME_EXPORT NativeThemeAura : public NativeThemeBase {
State state,
const gfx::Rect& rect,
ColorScheme color_scheme) const override;
void PaintCheckbox(cc::PaintCanvas* canvas,
State state,
const gfx::Rect& rect,
const ButtonExtraParams& button,
ColorScheme color_scheme) const override;
void PaintRadio(cc::PaintCanvas* canvas,
State state,
const gfx::Rect& rect,
const ButtonExtraParams& button,
ColorScheme color_scheme) const override;
void PaintTextField(cc::PaintCanvas* canvas,
State state,
const gfx::Rect& rect,
const TextFieldExtraParams& text,
ColorScheme color_scheme) const override;
void PaintButton(cc::PaintCanvas* canvas,
State state,
const gfx::Rect& rect,
const ButtonExtraParams& button,
ColorScheme color_scheme) const override;
void PaintSliderTrack(cc::PaintCanvas* canvas,
State state,
const gfx::Rect& rect,
const SliderExtraParams& slider,
ColorScheme color_scheme) const override;
void PaintSliderThumb(cc::PaintCanvas* canvas,
State state,
const gfx::Rect& rect,
const SliderExtraParams& slider,
ColorScheme color_scheme) const override;
void PaintMenuList(cc::PaintCanvas* canvas,
State state,
const gfx::Rect& rect,
const MenuListExtraParams& menu_list,
ColorScheme color_scheme) const override;
gfx::Size GetPartSize(Part part,
State state,
const ExtraParams& extra) const override;
......@@ -147,16 +67,6 @@ class NATIVE_THEME_EXPORT NativeThemeAura : public NativeThemeBase {
gfx::Rect GetNinePatchAperture(Part part) const override;
private:
// Paint the common parts of the checkboxes and radio buttons.
// borderRadius specifies how rounded the corners should be.
SkRect PaintCheckboxRadioCommon(cc::PaintCanvas* canvas,
State state,
const gfx::Rect& rect,
const ButtonExtraParams& button,
bool is_checkbox,
const SkScalar borderRadius,
ColorScheme color_scheme) const;
static void DrawPartiallyRoundRect(cc::PaintCanvas* canvas,
const gfx::Rect& rect,
const SkScalar upper_left_radius,
......
This diff is collapsed.
......@@ -39,6 +39,26 @@ class NATIVE_THEME_EXPORT NativeThemeBase : public NativeTheme {
gfx::Rect GetNinePatchAperture(Part part) const override;
protected:
// Colors for form controls refresh.
enum ControlColorId {
kBorder,
kDisabledBorder,
kHoveredBorder,
kAccent,
kDisabledAccent,
kHoveredAccent,
kBackground,
kDisabledBackground,
kFill,
kDisabledFill,
kHoveredFill,
kLightenLayer,
kProgressValue,
kSlider,
kDisabledSlider,
kHoveredSlider
};
NativeThemeBase();
~NativeThemeBase() override;
......@@ -72,35 +92,35 @@ class NATIVE_THEME_EXPORT NativeThemeBase : public NativeTheme {
const gfx::Rect& rect,
ColorScheme color_scheme) const;
virtual void PaintCheckbox(cc::PaintCanvas* canvas,
State state,
const gfx::Rect& rect,
const ButtonExtraParams& button,
ColorScheme color_scheme) const;
virtual void PaintRadio(cc::PaintCanvas* canvas,
State state,
const gfx::Rect& rect,
const ButtonExtraParams& button,
ColorScheme color_scheme) const;
virtual void PaintButton(cc::PaintCanvas* canvas,
State state,
const gfx::Rect& rect,
const ButtonExtraParams& button,
ColorScheme color_scheme) const;
virtual void PaintTextField(cc::PaintCanvas* canvas,
State state,
const gfx::Rect& rect,
const TextFieldExtraParams& text,
ColorScheme color_scheme) const;
void PaintCheckbox(cc::PaintCanvas* canvas,
State state,
const gfx::Rect& rect,
const ButtonExtraParams& button,
ColorScheme color_scheme) const;
virtual void PaintMenuList(cc::PaintCanvas* canvas,
State state,
const gfx::Rect& rect,
const MenuListExtraParams& menu_list,
ColorScheme color_scheme) const;
void PaintRadio(cc::PaintCanvas* canvas,
State state,
const gfx::Rect& rect,
const ButtonExtraParams& button,
ColorScheme color_scheme) const;
void PaintButton(cc::PaintCanvas* canvas,
State state,
const gfx::Rect& rect,
const ButtonExtraParams& button,
ColorScheme color_scheme) const;
void PaintTextField(cc::PaintCanvas* canvas,
State state,
const gfx::Rect& rect,
const TextFieldExtraParams& text,
ColorScheme color_scheme) const;
void PaintMenuList(cc::PaintCanvas* canvas,
State state,
const gfx::Rect& rect,
const MenuListExtraParams& menu_list,
ColorScheme color_scheme) const;
virtual void PaintMenuPopupBackground(
cc::PaintCanvas* canvas,
......@@ -121,17 +141,17 @@ class NATIVE_THEME_EXPORT NativeThemeBase : public NativeTheme {
const MenuSeparatorExtraParams& menu_separator,
ColorScheme color_scheme) const;
virtual void PaintSliderTrack(cc::PaintCanvas* canvas,
State state,
const gfx::Rect& rect,
const SliderExtraParams& slider,
ColorScheme color_scheme) const;
void PaintSliderTrack(cc::PaintCanvas* canvas,
State state,
const gfx::Rect& rect,
const SliderExtraParams& slider,
ColorScheme color_scheme) const;
virtual void PaintSliderThumb(cc::PaintCanvas* canvas,
State state,
const gfx::Rect& rect,
const SliderExtraParams& slider,
ColorScheme color_scheme) const;
void PaintSliderThumb(cc::PaintCanvas* canvas,
State state,
const gfx::Rect& rect,
const SliderExtraParams& slider,
ColorScheme color_scheme) const;
virtual void PaintInnerSpinButton(
cc::PaintCanvas* canvas,
......@@ -140,11 +160,11 @@ class NATIVE_THEME_EXPORT NativeThemeBase : public NativeTheme {
const InnerSpinButtonExtraParams& spin_button,
ColorScheme color_scheme) const;
virtual void PaintProgressBar(cc::PaintCanvas* canvas,
State state,
const gfx::Rect& rect,
const ProgressBarExtraParams& progress_bar,
ColorScheme color_scheme) const;
void PaintProgressBar(cc::PaintCanvas* canvas,
State state,
const gfx::Rect& rect,
const ProgressBarExtraParams& progress_bar,
ColorScheme color_scheme) const;
virtual void PaintFrameTopArea(cc::PaintCanvas* canvas,
State state,
......@@ -152,6 +172,12 @@ class NATIVE_THEME_EXPORT NativeThemeBase : public NativeTheme {
const FrameTopAreaExtraParams& frame_top_area,
ColorScheme color_scheme) const;
virtual void PaintLightenLayer(cc::PaintCanvas* canvas,
SkRect skrect,
State state,
SkScalar border_radius,
ColorScheme color_scheme) const;
// Shrinks checkbox/radio button rect, if necessary, to make room for padding
// and drop shadow.
// TODO(mohsen): This is needed because checkboxes/radio buttons on Android
......@@ -210,6 +236,25 @@ class NATIVE_THEME_EXPORT NativeThemeBase : public NativeTheme {
const SkScalar border_radius,
ColorScheme color_scheme) const;
SkColor ControlsAccentColorForState(State state,
ColorScheme color_scheme) const;
SkColor ControlsBorderColorForState(State state,
ColorScheme color_scheme) const;
SkColor ControlsFillColorForState(State state,
ColorScheme color_scheme) const;
SkColor ControlsBackgroundColorForState(State state,
ColorScheme color_scheme) const;
SkColor ControlsSliderColorForState(State state,
ColorScheme color_scheme) const;
SkColor GetHighContrastControlColor(ControlColorId color_id,
ColorScheme color_scheme) const;
SkColor GetControlColor(ControlColorId color_id,
ColorScheme color_scheme) const;
SkRect AlignSliderTrack(const gfx::Rect& slider_rect,
const NativeTheme::SliderExtraParams& slider,
bool is_value,
float track_height) const;
// The length of the arrow buttons, 0 means no buttons are drawn.
int scrollbar_button_length_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment