Commit 068cbe49 authored by Allen Bauer's avatar Allen Bauer Committed by Commit Bot

Removed need for class_name param on ADD_XX_PROPERTY_METADATA macros.

Bug: 938501
Change-Id: I626f069799b36d7066860ade83ba3469ffff38e2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2358823
Commit-Queue: Allen Bauer <kylixrd@chromium.org>
Auto-Submit: Allen Bauer <kylixrd@chromium.org>
Reviewed-by: default avatarPeter Kasting <pkasting@chromium.org>
Cr-Commit-Position: refs/heads/master@{#801417}
parent 972d7094
...@@ -27,25 +27,25 @@ ...@@ -27,25 +27,25 @@
// This will fail to compile if the property accessors aren't in the form of // This will fail to compile if the property accessors aren't in the form of
// SetXXXX and GetXXXX. // SetXXXX and GetXXXX.
#define ADD_PROPERTY_METADATA(class_name, property_type, property_name) \ #define ADD_PROPERTY_METADATA(class_name, property_type, property_name) \
std::unique_ptr<METADATA_PROPERTY_TYPE_INTERNAL(class_name, 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( \
class_name, property_type, property_name)>(); \ property_type, property_name)>(); \
property_name##_prop->SetMemberName(#property_name); \ property_name##_prop->SetMemberName(#property_name); \
property_name##_prop->SetMemberType(#property_type); \ 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(class_name, property_type, \ #define ADD_READONLY_PROPERTY_METADATA(class_name, property_type, \
property_name) \ property_name) \
std::unique_ptr<METADATA_READONLY_PROPERTY_TYPE_INTERNAL( \ std::unique_ptr<METADATA_READONLY_PROPERTY_TYPE_INTERNAL(property_type, \
class_name, 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( \
class_name, property_type, property_name)>(); \ property_type, property_name)>(); \
property_name##_prop->SetMemberName(#property_name); \ property_name##_prop->SetMemberName(#property_name); \
property_name##_prop->SetMemberType(#property_type); \ 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_
...@@ -37,32 +37,34 @@ ...@@ -37,32 +37,34 @@
class METADATA_CLASS_NAME_INTERNAL(class_name) \ class METADATA_CLASS_NAME_INTERNAL(class_name) \
: public views::metadata::ClassMetaData { \ : public views::metadata::ClassMetaData { \
public: \ public: \
using ViewClass = class_name; \
explicit METADATA_CLASS_NAME_INTERNAL(class_name)() \ explicit METADATA_CLASS_NAME_INTERNAL(class_name)() \
: ClassMetaData(file, line) { \ : ClassMetaData(file, line) { \
BuildMetaData(); \ BuildMetaData(); \
} \ } \
METADATA_CLASS_NAME_INTERNAL(class_name) \
(const METADATA_CLASS_NAME_INTERNAL(class_name) &) = delete; \
METADATA_CLASS_NAME_INTERNAL(class_name) & operator=( \
const METADATA_CLASS_NAME_INTERNAL(class_name) &) = delete; \
\ \
private: \ private: \
friend class class_name; \ friend class class_name; \
virtual void BuildMetaData(); \ virtual void BuildMetaData(); \
static views::metadata::ClassMetaData* meta_data_ ALLOW_UNUSED_TYPE; \ static views::metadata::ClassMetaData* meta_data_ ALLOW_UNUSED_TYPE; \
DISALLOW_COPY_AND_ASSIGN(METADATA_CLASS_NAME_INTERNAL(class_name)); \
} }
#define METADATA_PROPERTY_TYPE_INTERNAL(class_name, property_type, \ #define METADATA_PROPERTY_TYPE_INTERNAL(property_type, property_name) \
property_name) \ views::metadata::ClassPropertyMetaData< \
views::metadata::ClassPropertyMetaData< \ ViewClass, property_type, decltype(&ViewClass::Set##property_name), \
class_name, property_type, decltype(&class_name::Set##property_name), \ &ViewClass::Set##property_name, \
&class_name::Set##property_name, \ decltype(std::declval<ViewClass>().Get##property_name()), \
decltype(std::declval<class_name>().Get##property_name()), \ &ViewClass::Get##property_name>
&class_name::Get##property_name>
#define METADATA_READONLY_PROPERTY_TYPE_INTERNAL(class_name, property_type, \ #define METADATA_READONLY_PROPERTY_TYPE_INTERNAL(property_type, property_name) \
property_name) \ views::metadata::ClassPropertyReadOnlyMetaData< \
views::metadata::ClassPropertyReadOnlyMetaData< \ ViewClass, property_type, \
class_name, property_type, \ decltype(std::declval<ViewClass>().Get##property_name()), \
decltype(std::declval<class_name>().Get##property_name()), \ &ViewClass::Get##property_name>
&class_name::Get##property_name>
#define BEGIN_METADATA_INTERNAL(class_name) \ #define BEGIN_METADATA_INTERNAL(class_name) \
views::metadata::ClassMetaData* class_name::METADATA_CLASS_NAME_INTERNAL( \ views::metadata::ClassMetaData* class_name::METADATA_CLASS_NAME_INTERNAL( \
......
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