9#ifndef ROOT7_RAttrAggregation
10#define ROOT7_RAttrAggregation
15namespace Experimental {
58 void Clear()
override;
67#define R__ATTR_CLASS_DERIVED(ClassName,dflt_prefix,BaseClass) \
69const RAttrMap &GetDefaults() const override \
71 static auto dflts = CollectDefaults(); \
75 ClassName() = default; \
76 ClassName(RDrawable *drawable, const char *prefix = dflt_prefix) : BaseClass(drawable, prefix) {} \
77 ClassName(RAttrBase *parent, const char *prefix = dflt_prefix) : BaseClass(parent, prefix) {} \
78 ClassName(const ClassName &src) : ClassName() { src.CopyTo(*this); } \
79 ClassName &operator=(const ClassName &src) { Clear(); src.CopyTo(*this); return *this; }
82#define R__ATTR_CLASS(ClassName,dflt_prefix) R__ATTR_CLASS_DERIVED(ClassName,dflt_prefix,RAttrAggregation)
Base class for attributes aggregations like lines or fill attributes.
friend bool operator==(const RAttrAggregation &lhs, const RAttrAggregation &rhs)
bool IsAggregation() const final
bool IsValueEqual(const std::string &name, const RAttrMap::Value_t &value, bool use_style=false) const
Check if provided value equal to attribute in the map.
friend bool operator!=(const RAttrAggregation &lhs, const RAttrAggregation &rhs)
RAttrAggregation & operator=(const RAttrAggregation &src)
void Clear() override
Clear all respective values from drawable. Only defaults can be used.
RAttrAggregation(const RAttrAggregation &src)
RAttrAggregation()=default
bool IsSame(const RAttrAggregation &src, bool use_style=true) const
Check if all values which are evaluated in this object are exactly the same as in tgt object.
bool CopyValue(const std::string &name, const RAttrMap::Value_t &value, bool check_type=true)
Copy attributes from other object.
virtual const RAttrMap & GetDefaults() const
Return default values for attributes, empty for base class.
RAttrAggregation(RDrawable *drawable, const char *prefix=nullptr)
RAttrAggregation(RAttrBase *parent, const char *prefix=nullptr)
RAttrMap CollectDefaults() const override
Collect all attributes in derived class Works only if such class has dictionary.
void CopyTo(RAttrAggregation &tgt, bool use_style=true) const
Copy attributes into target object.
Base class for all attributes, used with RDrawable.
Base class for drawable entities: objects that can be painted on a RPad.
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...