Commit e96b92d4 authored by Wei Li's avatar Wei Li Committed by Chromium LUCI CQ

Support returning raw pointers from property getter

A type converter for unique_ptr type should be able to accept a getter
which returns the raw pointer type. This CL adds such support. Also it
adds such a property in ToggleImageButton class as an example.

Bug: 1168309
Change-Id: I49488d475cd70a7441f4f7e5918929c8e5b35638
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2639655Reviewed-by: default avatarPeter Kasting <pkasting@chromium.org>
Reviewed-by: default avatarXiyuan Xia <xiyuan@chromium.org>
Commit-Queue: Wei Li <weili@chromium.org>
Cr-Commit-Position: refs/heads/master@{#846230}
parent 94f14abf
...@@ -161,7 +161,7 @@ class LiveCaptionButton ...@@ -161,7 +161,7 @@ class LiveCaptionButton
views::SetToggledImageFromVectorIconWithColor( views::SetToggledImageFromVectorIconWithColor(
this, vector_icons::kLiveCaptionOnIcon, icon_size, this, vector_icons::kLiveCaptionOnIcon, icon_size,
GetToggledIconColor(), GetToggledIconColor()); GetToggledIconColor(), GetToggledIconColor());
toggled_background()->SetNativeControlColor(GetToggledBackgroundColor()); GetToggledBackground()->SetNativeControlColor(GetToggledBackgroundColor());
} }
SkColor GetToggledIconColor() { SkColor GetToggledIconColor() {
......
...@@ -357,6 +357,7 @@ END_METADATA ...@@ -357,6 +357,7 @@ END_METADATA
BEGIN_METADATA(ToggleImageButton, ImageButton) BEGIN_METADATA(ToggleImageButton, ImageButton)
ADD_PROPERTY_METADATA(bool, Toggled) ADD_PROPERTY_METADATA(bool, Toggled)
ADD_PROPERTY_METADATA(std::unique_ptr<Background>, ToggledBackground)
ADD_PROPERTY_METADATA(base::string16, ToggledTooltipText) ADD_PROPERTY_METADATA(base::string16, ToggledTooltipText)
ADD_PROPERTY_METADATA(base::string16, ToggledAccessibleName) ADD_PROPERTY_METADATA(base::string16, ToggledAccessibleName)
END_METADATA END_METADATA
......
...@@ -141,7 +141,7 @@ class VIEWS_EXPORT ToggleImageButton : public ImageButton { ...@@ -141,7 +141,7 @@ class VIEWS_EXPORT ToggleImageButton : public ImageButton {
// Like Views::SetBackground(), but to set the background color used for the // Like Views::SetBackground(), but to set the background color used for the
// "has been toggled" state. // "has been toggled" state.
void SetToggledBackground(std::unique_ptr<Background> b); void SetToggledBackground(std::unique_ptr<Background> b);
Background* toggled_background() { return toggled_background_.get(); } Background* GetToggledBackground() const { return toggled_background_.get(); }
// Get/Set the tooltip text displayed when the button is toggled. // Get/Set the tooltip text displayed when the button is toggled.
base::string16 GetToggledTooltipText() const; base::string16 GetToggledTooltipText() const;
...@@ -184,6 +184,7 @@ class VIEWS_EXPORT ToggleImageButton : public ImageButton { ...@@ -184,6 +184,7 @@ class VIEWS_EXPORT ToggleImageButton : public ImageButton {
BEGIN_VIEW_BUILDER(VIEWS_EXPORT, ToggleImageButton, ImageButton) BEGIN_VIEW_BUILDER(VIEWS_EXPORT, ToggleImageButton, ImageButton)
VIEW_BUILDER_PROPERTY(bool, Toggled) VIEW_BUILDER_PROPERTY(bool, Toggled)
VIEW_BUILDER_PROPERTY(std::unique_ptr<Background>, ToggledBackground)
VIEW_BUILDER_PROPERTY(base::string16, ToggledTooltipText) VIEW_BUILDER_PROPERTY(base::string16, ToggledTooltipText)
VIEW_BUILDER_PROPERTY(base::string16, ToggledAccessibleName) VIEW_BUILDER_PROPERTY(base::string16, ToggledAccessibleName)
END_VIEW_BUILDER END_VIEW_BUILDER
......
...@@ -209,6 +209,7 @@ struct TypeConverter<base::Optional<T>> ...@@ -209,6 +209,7 @@ struct TypeConverter<base::Optional<T>>
template <typename T> template <typename T>
struct TypeConverter<std::unique_ptr<T>> : BaseTypeConverter<false> { struct TypeConverter<std::unique_ptr<T>> : BaseTypeConverter<false> {
static base::string16 ToString(const std::unique_ptr<T>& source_value); static base::string16 ToString(const std::unique_ptr<T>& source_value);
static base::string16 ToString(const T* source_value);
static base::Optional<std::unique_ptr<T>> FromString( static base::Optional<std::unique_ptr<T>> FromString(
const base::string16& source_value); const base::string16& source_value);
static ValidStrings GetValidStrings() { return {}; } static ValidStrings GetValidStrings() { return {}; }
......
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