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( ...@@ -43,6 +43,7 @@ static void GetNativeThemeExtraParams(
native_theme_extra_params->button.checked = extra_params->button.checked; native_theme_extra_params->button.checked = extra_params->button.checked;
native_theme_extra_params->button.indeterminate = native_theme_extra_params->button.indeterminate =
extra_params->button.indeterminate; extra_params->button.indeterminate;
native_theme_extra_params->button.zoom = extra_params->button.zoom;
break; break;
case WebThemeEngine::kPartRadio: case WebThemeEngine::kPartRadio:
native_theme_extra_params->button.checked = extra_params->button.checked; native_theme_extra_params->button.checked = extra_params->button.checked;
...@@ -80,6 +81,10 @@ static void GetNativeThemeExtraParams( ...@@ -80,6 +81,10 @@ static void GetNativeThemeExtraParams(
extra_params->menu_list.background_color; extra_params->menu_list.background_color;
break; break;
case WebThemeEngine::kPartSliderTrack: 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: case WebThemeEngine::kPartSliderThumb:
native_theme_extra_params->slider.vertical = native_theme_extra_params->slider.vertical =
extra_params->slider.vertical; extra_params->slider.vertical;
......
This diff is collapsed.
...@@ -18,52 +18,12 @@ class NATIVE_THEME_EXPORT NativeThemeAura : public NativeThemeBase { ...@@ -18,52 +18,12 @@ class NATIVE_THEME_EXPORT NativeThemeAura : public NativeThemeBase {
friend class NativeThemeAuraTest; friend class NativeThemeAuraTest;
friend class base::NoDestructor<NativeThemeAura>; 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); explicit NativeThemeAura(bool use_overlay_scrollbars);
~NativeThemeAura() override; ~NativeThemeAura() override;
static NativeThemeAura* instance(); static NativeThemeAura* instance();
static NativeThemeAura* web_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: // NativeThemeBase:
SkColor GetSystemColor(ColorId color_id, SkColor GetSystemColor(ColorId color_id,
ColorScheme color_scheme) const override; ColorScheme color_scheme) const override;
...@@ -77,11 +37,6 @@ class NATIVE_THEME_EXPORT NativeThemeAura : public NativeThemeBase { ...@@ -77,11 +37,6 @@ class NATIVE_THEME_EXPORT NativeThemeAura : public NativeThemeBase {
const gfx::Rect& rect, const gfx::Rect& rect,
const MenuItemExtraParams& menu_item, const MenuItemExtraParams& menu_item,
ColorScheme color_scheme) const override; 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, void PaintArrowButton(cc::PaintCanvas* gc,
const gfx::Rect& rect, const gfx::Rect& rect,
Part direction, Part direction,
...@@ -104,41 +59,6 @@ class NATIVE_THEME_EXPORT NativeThemeAura : public NativeThemeBase { ...@@ -104,41 +59,6 @@ class NATIVE_THEME_EXPORT NativeThemeAura : public NativeThemeBase {
State state, State state,
const gfx::Rect& rect, const gfx::Rect& rect,
ColorScheme color_scheme) const override; 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, gfx::Size GetPartSize(Part part,
State state, State state,
const ExtraParams& extra) const override; const ExtraParams& extra) const override;
...@@ -147,16 +67,6 @@ class NATIVE_THEME_EXPORT NativeThemeAura : public NativeThemeBase { ...@@ -147,16 +67,6 @@ class NATIVE_THEME_EXPORT NativeThemeAura : public NativeThemeBase {
gfx::Rect GetNinePatchAperture(Part part) const override; gfx::Rect GetNinePatchAperture(Part part) const override;
private: 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, static void DrawPartiallyRoundRect(cc::PaintCanvas* canvas,
const gfx::Rect& rect, const gfx::Rect& rect,
const SkScalar upper_left_radius, const SkScalar upper_left_radius,
......
This diff is collapsed.
...@@ -39,6 +39,26 @@ class NATIVE_THEME_EXPORT NativeThemeBase : public NativeTheme { ...@@ -39,6 +39,26 @@ class NATIVE_THEME_EXPORT NativeThemeBase : public NativeTheme {
gfx::Rect GetNinePatchAperture(Part part) const override; gfx::Rect GetNinePatchAperture(Part part) const override;
protected: 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();
~NativeThemeBase() override; ~NativeThemeBase() override;
...@@ -72,35 +92,35 @@ class NATIVE_THEME_EXPORT NativeThemeBase : public NativeTheme { ...@@ -72,35 +92,35 @@ class NATIVE_THEME_EXPORT NativeThemeBase : public NativeTheme {
const gfx::Rect& rect, const gfx::Rect& rect,
ColorScheme color_scheme) const; ColorScheme color_scheme) const;
virtual void PaintCheckbox(cc::PaintCanvas* canvas, void PaintCheckbox(cc::PaintCanvas* canvas,
State state, State state,
const gfx::Rect& rect, const gfx::Rect& rect,
const ButtonExtraParams& button, const ButtonExtraParams& button,
ColorScheme color_scheme) const; 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;
virtual void PaintMenuList(cc::PaintCanvas* canvas, void PaintRadio(cc::PaintCanvas* canvas,
State state, State state,
const gfx::Rect& rect, const gfx::Rect& rect,
const MenuListExtraParams& menu_list, const ButtonExtraParams& button,
ColorScheme color_scheme) const; 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( virtual void PaintMenuPopupBackground(
cc::PaintCanvas* canvas, cc::PaintCanvas* canvas,
...@@ -121,17 +141,17 @@ class NATIVE_THEME_EXPORT NativeThemeBase : public NativeTheme { ...@@ -121,17 +141,17 @@ class NATIVE_THEME_EXPORT NativeThemeBase : public NativeTheme {
const MenuSeparatorExtraParams& menu_separator, const MenuSeparatorExtraParams& menu_separator,
ColorScheme color_scheme) const; ColorScheme color_scheme) const;
virtual void PaintSliderTrack(cc::PaintCanvas* canvas, void PaintSliderTrack(cc::PaintCanvas* canvas,
State state, State state,
const gfx::Rect& rect, const gfx::Rect& rect,
const SliderExtraParams& slider, const SliderExtraParams& slider,
ColorScheme color_scheme) const; ColorScheme color_scheme) const;
virtual void PaintSliderThumb(cc::PaintCanvas* canvas, void PaintSliderThumb(cc::PaintCanvas* canvas,
State state, State state,
const gfx::Rect& rect, const gfx::Rect& rect,
const SliderExtraParams& slider, const SliderExtraParams& slider,
ColorScheme color_scheme) const; ColorScheme color_scheme) const;
virtual void PaintInnerSpinButton( virtual void PaintInnerSpinButton(
cc::PaintCanvas* canvas, cc::PaintCanvas* canvas,
...@@ -140,11 +160,11 @@ class NATIVE_THEME_EXPORT NativeThemeBase : public NativeTheme { ...@@ -140,11 +160,11 @@ class NATIVE_THEME_EXPORT NativeThemeBase : public NativeTheme {
const InnerSpinButtonExtraParams& spin_button, const InnerSpinButtonExtraParams& spin_button,
ColorScheme color_scheme) const; ColorScheme color_scheme) const;
virtual void PaintProgressBar(cc::PaintCanvas* canvas, void PaintProgressBar(cc::PaintCanvas* canvas,
State state, State state,
const gfx::Rect& rect, const gfx::Rect& rect,
const ProgressBarExtraParams& progress_bar, const ProgressBarExtraParams& progress_bar,
ColorScheme color_scheme) const; ColorScheme color_scheme) const;
virtual void PaintFrameTopArea(cc::PaintCanvas* canvas, virtual void PaintFrameTopArea(cc::PaintCanvas* canvas,
State state, State state,
...@@ -152,6 +172,12 @@ class NATIVE_THEME_EXPORT NativeThemeBase : public NativeTheme { ...@@ -152,6 +172,12 @@ class NATIVE_THEME_EXPORT NativeThemeBase : public NativeTheme {
const FrameTopAreaExtraParams& frame_top_area, const FrameTopAreaExtraParams& frame_top_area,
ColorScheme color_scheme) const; 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 // Shrinks checkbox/radio button rect, if necessary, to make room for padding
// and drop shadow. // and drop shadow.
// TODO(mohsen): This is needed because checkboxes/radio buttons on Android // TODO(mohsen): This is needed because checkboxes/radio buttons on Android
...@@ -210,6 +236,25 @@ class NATIVE_THEME_EXPORT NativeThemeBase : public NativeTheme { ...@@ -210,6 +236,25 @@ class NATIVE_THEME_EXPORT NativeThemeBase : public NativeTheme {
const SkScalar border_radius, const SkScalar border_radius,
ColorScheme color_scheme) const; 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. // The length of the arrow buttons, 0 means no buttons are drawn.
int scrollbar_button_length_; 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