Skip to content
Snippets Groups Projects
Commit e1be748f authored by Sergey Linev's avatar Sergey Linev
Browse files

[rframe] make all RFrame constructors private

RFrame can only be created via RPadBase methods.
Idea that each drawable can decide if it requires frame for drawing or
not. 
 
parent 87da58ac
No related branches found
No related tags found
No related merge requests found
...@@ -33,7 +33,8 @@ namespace Experimental { ...@@ -33,7 +33,8 @@ namespace Experimental {
*/ */
class RFrame : public RDrawable { class RFrame : public RDrawable {
public:
friend class RPadBase;
private: private:
RAttrMargins fMargins{this, "margin_"}; ///<! RAttrMargins fMargins{this, "margin_"}; ///<!
...@@ -49,7 +50,6 @@ private: ...@@ -49,7 +50,6 @@ private:
/// Palette used to visualize user coordinates. /// Palette used to visualize user coordinates.
RPalette fPalette; RPalette fPalette;
public:
// Default constructor // Default constructor
RFrame() : RDrawable("frame") RFrame() : RDrawable("frame")
{ {
...@@ -59,6 +59,11 @@ public: ...@@ -59,6 +59,11 @@ public:
/// Constructor taking user coordinate system, position and extent. /// Constructor taking user coordinate system, position and extent.
explicit RFrame(std::vector<std::unique_ptr<RPadUserAxisBase>> &&coords); explicit RFrame(std::vector<std::unique_ptr<RPadUserAxisBase>> &&coords);
RFrame(const RFrame &) = delete;
RFrame &operator=(const RFrame &) = delete;
public:
const RAttrMargins &GetMargins() const { return fMargins; } const RAttrMargins &GetMargins() const { return fMargins; }
RFrame &SetMargins(const RAttrMargins &margins) { fMargins = margins; return *this; } RFrame &SetMargins(const RAttrMargins &margins) { fMargins = margins; return *this; }
RAttrMargins &Margins() { return fMargins; } RAttrMargins &Margins() { return fMargins; }
......
...@@ -174,7 +174,7 @@ std::shared_ptr<ROOT::Experimental::RFrame> ROOT::Experimental::RPadBase::GetOrC ...@@ -174,7 +174,7 @@ std::shared_ptr<ROOT::Experimental::RFrame> ROOT::Experimental::RPadBase::GetOrC
{ {
auto frame = GetFrame(); auto frame = GetFrame();
if (!frame) { if (!frame) {
frame = std::make_shared<RFrame>(); frame.reset(new RFrame());
fPrimitives.emplace_back(frame); fPrimitives.emplace_back(frame);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment