10#define ROOT7_RAttrBase
17namespace Experimental {
71 std::string fullname =
name;
74 fullname.insert(0,
"_");
75 fullname.insert(0, prnt->
fPrefix);
78 return { &dr->fAttr, fullname, dr };
80 return {
attr, fullname,
nullptr };
83 return {
nullptr, fullname,
nullptr};
96 if (
auto rec = access.attr->Find(access.fullname))
97 return {rec,
nullptr};
98 if (access.drawable && use_style)
99 if (
auto observe = access.drawable->fStyle.lock()) {
100 if (
auto rec = observe->Eval(access.fullname, *access.drawable))
101 return {rec, observe};
105 return {
nullptr,
nullptr};
113 std::string fullname =
name;
115 if (prnt->IsAggregation() && prnt->fPrefix) {
116 fullname.insert(0,
"_");
117 fullname.insert(0, prnt->fPrefix);
119 if (
auto dr = prnt->GetDrawable())
120 return { &dr->fAttr, fullname, dr };
122 return { prnt->CreateOwnAttr(), fullname,
nullptr };
123 prnt = prnt->GetParent();
125 return {
nullptr, fullname,
nullptr};
131 fD.ownattr =
nullptr;
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t attr
Base class for all attributes, used with RDrawable.
RAttrBase(RAttrBase *parent, const char *prefix=nullptr)
RAttrMap * GetOwnAttr() const
void ClearValue(const std::string &name)
Clear value if any with specified name.
const Rec_t AccessAttr(const std::string &name) const
Find attributes container and full-qualified name for value.
RDrawable * GetDrawable() const
const Val_t AccessValue(const std::string &name, bool use_style=true) const
Search value with given name in attributes.
const char * GetPrefix() const
void MoveTo(RAttrBase &tgt)
Move all fields into target object.
const char * fPrefix
! name prefix for all attributes values
Rec_t EnsureAttr(const std::string &name)
Ensure attribute with give name exists - creates container for attributes if required.
virtual bool IsAggregation() const
RAttrMap * CreateOwnAttr()
Creates own attribute - only if no drawable and no parent are assigned.
void ClearData()
Clear internal data.
RAttrBase(const char *prefix)
enum ROOT::Experimental::RAttrBase::@40 kDrawable
! kind of data
RAttrBase(RDrawable *drawable, const char *prefix=nullptr)
virtual RAttrMap CollectDefaults() const =0
void SetNoValue(const std::string &name)
Set <NoValue> for attribute.
RAttrBase * GetParent() const
Base class for drawable entities: objects that can be painted on a RPad.
RLogChannel & GPadLog()
Log channel for GPad diagnostics.
This file contains a specialised ROOT message handler to test for diagnostic in unit tests.
const RAttrMap::Value_t * value
std::shared_ptr< RStyle > style