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
views::SetToggledImageFromVectorIconWithColor(
this, vector_icons::kLiveCaptionOnIcon, icon_size,
GetToggledIconColor(), GetToggledIconColor());
toggled_background()->SetNativeControlColor(GetToggledBackgroundColor());
GetToggledBackground()->SetNativeControlColor(GetToggledBackgroundColor());
}
SkColor GetToggledIconColor() {
......
......@@ -357,6 +357,7 @@ END_METADATA
BEGIN_METADATA(ToggleImageButton, ImageButton)
ADD_PROPERTY_METADATA(bool, Toggled)
ADD_PROPERTY_METADATA(std::unique_ptr<Background>, ToggledBackground)
ADD_PROPERTY_METADATA(base::string16, ToggledTooltipText)
ADD_PROPERTY_METADATA(base::string16, ToggledAccessibleName)
END_METADATA
......
......@@ -141,7 +141,7 @@ class VIEWS_EXPORT ToggleImageButton : public ImageButton {
// Like Views::SetBackground(), but to set the background color used for the
// "has been toggled" state.
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.
base::string16 GetToggledTooltipText() const;
......@@ -184,6 +184,7 @@ class VIEWS_EXPORT ToggleImageButton : public ImageButton {
BEGIN_VIEW_BUILDER(VIEWS_EXPORT, ToggleImageButton, ImageButton)
VIEW_BUILDER_PROPERTY(bool, Toggled)
VIEW_BUILDER_PROPERTY(std::unique_ptr<Background>, ToggledBackground)
VIEW_BUILDER_PROPERTY(base::string16, ToggledTooltipText)
VIEW_BUILDER_PROPERTY(base::string16, ToggledAccessibleName)
END_VIEW_BUILDER
......
......@@ -209,6 +209,7 @@ struct TypeConverter<base::Optional<T>>
template <typename T>
struct TypeConverter<std::unique_ptr<T>> : BaseTypeConverter<false> {
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(
const base::string16& source_value);
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