Commit 664b97cc authored by Allen Bauer's avatar Allen Bauer Committed by Commit Bot

Pass the class property name and type strings into the metadata constructor.

Bug: 938501
Change-Id: I39d9693833ac8f2c1ffb2f3c307edb303382bf39
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2404948
Commit-Queue: Allen Bauer <kylixrd@chromium.org>
Reviewed-by: default avatarPeter Kasting <pkasting@chromium.org>
Cr-Commit-Position: refs/heads/master@{#806282}
parent 55eba1c2
...@@ -30,21 +30,17 @@ ...@@ -30,21 +30,17 @@
std::unique_ptr<METADATA_PROPERTY_TYPE_INTERNAL(property_type, \ std::unique_ptr<METADATA_PROPERTY_TYPE_INTERNAL(property_type, \
property_name)> \ property_name)> \
property_name##_prop = std::make_unique<METADATA_PROPERTY_TYPE_INTERNAL( \ property_name##_prop = std::make_unique<METADATA_PROPERTY_TYPE_INTERNAL( \
property_type, property_name)>(); \ property_type, property_name)>(#property_name, #property_type); \
property_name##_prop->SetMemberName(#property_name); \
property_name##_prop->SetMemberType(#property_type); \
AddMemberData(std::move(property_name##_prop)); AddMemberData(std::move(property_name##_prop));
// This will fail to compile if the property accessor isn't in the form of // This will fail to compile if the property accessor isn't in the form of
// GetXXXX. // GetXXXX.
#define ADD_READONLY_PROPERTY_METADATA(property_type, property_name) \ #define ADD_READONLY_PROPERTY_METADATA(property_type, property_name) \
std::unique_ptr<METADATA_READONLY_PROPERTY_TYPE_INTERNAL(property_type, \ std::unique_ptr<METADATA_READONLY_PROPERTY_TYPE_INTERNAL(property_type, \
property_name)> \ property_name)> \
property_name##_prop = \ property_name##_prop = \
std::make_unique<METADATA_READONLY_PROPERTY_TYPE_INTERNAL( \ std::make_unique<METADATA_READONLY_PROPERTY_TYPE_INTERNAL( \
property_type, property_name)>(); \ property_type, property_name)>(#property_name, #property_type); \
property_name##_prop->SetMemberName(#property_name); \
property_name##_prop->SetMemberType(#property_type); \
AddMemberData(std::move(property_name##_prop)); AddMemberData(std::move(property_name##_prop));
#endif // UI_VIEWS_METADATA_METADATA_IMPL_MACROS_H_ #endif // UI_VIEWS_METADATA_METADATA_IMPL_MACROS_H_
...@@ -128,7 +128,9 @@ class VIEWS_EXPORT ClassMetaData { ...@@ -128,7 +128,9 @@ class VIEWS_EXPORT ClassMetaData {
// accessors to get/set the value of the member on an object. // accessors to get/set the value of the member on an object.
class VIEWS_EXPORT MemberMetaDataBase { class VIEWS_EXPORT MemberMetaDataBase {
public: public:
MemberMetaDataBase() = default; MemberMetaDataBase(const std::string& member_name,
const std::string& member_type)
: member_name_(member_name), member_type_(member_type) {}
virtual ~MemberMetaDataBase() = default; virtual ~MemberMetaDataBase() = default;
// Access the value of this member and return it as a string. // Access the value of this member and return it as a string.
...@@ -144,8 +146,6 @@ class VIEWS_EXPORT MemberMetaDataBase { ...@@ -144,8 +146,6 @@ class VIEWS_EXPORT MemberMetaDataBase {
// Return various information flags about the property. // Return various information flags about the property.
virtual PropertyFlags GetPropertyFlags() const = 0; virtual PropertyFlags GetPropertyFlags() const = 0;
void SetMemberName(const char* name) { member_name_ = name; }
void SetMemberType(const char* type) { member_type_ = type; }
const std::string& member_name() const { return member_name_; } const std::string& member_name() const { return member_name_; }
const std::string& member_type() const { return member_type_; } const std::string& member_type() const { return member_type_; }
......
...@@ -27,7 +27,7 @@ template <typename TClass, ...@@ -27,7 +27,7 @@ template <typename TClass,
TRet (TClass::*Get)() const> TRet (TClass::*Get)() const>
class ClassPropertyReadOnlyMetaData : public MemberMetaDataBase { class ClassPropertyReadOnlyMetaData : public MemberMetaDataBase {
public: public:
ClassPropertyReadOnlyMetaData() = default; using MemberMetaDataBase::MemberMetaDataBase;
~ClassPropertyReadOnlyMetaData() override = default; ~ClassPropertyReadOnlyMetaData() override = default;
base::string16 GetValueAsString(void* obj) const override { base::string16 GetValueAsString(void* obj) const override {
...@@ -56,7 +56,8 @@ template <typename TClass, ...@@ -56,7 +56,8 @@ template <typename TClass,
class ClassPropertyMetaData class ClassPropertyMetaData
: public ClassPropertyReadOnlyMetaData<TClass, TValue, TRet, Get> { : public ClassPropertyReadOnlyMetaData<TClass, TValue, TRet, Get> {
public: public:
ClassPropertyMetaData() = default; using ClassPropertyReadOnlyMetaData<TClass, TValue, TRet, Get>::
ClassPropertyReadOnlyMetaData;
~ClassPropertyMetaData() override = default; ~ClassPropertyMetaData() override = default;
void SetValueAsString(void* obj, const base::string16& new_value) override { void SetValueAsString(void* obj, const base::string16& new_value) override {
......
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