41 const std::type_info &info =
typeid(*this);
43 auto baseClass = TClass::GetClass<RAttrBase>();
44 if (thisClass && baseClass) {
46 TClass *cl = data_member && !data_member->IsBasic() && !data_member->IsEnum() ?
gROOT->
GetClass(data_member->GetFullTypeName()) :
nullptr;
75 if (!dvalue || !dvalue->CanConvertFrom(value.
Kind()))
80 access.attr->Add(access.fullname, value.
Copy());
94 return v.value->CanConvertFrom(value.
Kind()) &&
v.value->IsEqual(value);
#define R__LOG_ERROR(...)
Base class for attributes aggregations like lines or fill attributes.
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.
void Clear() override
Clear all respective values from drawable. Only defaults can be used.
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.
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.
void ClearValue(const std::string &name)
Clear value if any with specified name.
const Val_t AccessValue(const std::string &name, bool use_style=true) const
Search value with given name in attributes.
Rec_t EnsureAttr(const std::string &name)
Ensure attribute with give name exists - creates container for attributes if required.
virtual EValuesKind Kind() const =0
virtual std::unique_ptr< Value_t > Copy() const =0
const Value_t * Find(const std::string &name) const
RAttrMap & AddDefaults(const RAttrBase &vis)
Add defaults values form sub attribute.
TClass instances represent classes, structs and namespaces in the ROOT type system.
Int_t GetBaseClassOffset(const TClass *toBase, void *address=0, bool isDerivedObject=true)
Bool_t InheritsFrom(const char *cl) const
Return kTRUE if this class inherits from a class with name "classname".
static TClass * GetClass(const char *name, Bool_t load=kTRUE, Bool_t silent=kFALSE)
Static method returning pointer to TClass of the specified class name.
RLogChannel & GPadLog()
Log channel for GPad diagnostics.