28 std::vector<std::shared_ptr<ROOT::Experimental::TCanvas>>& GetHeldCanvases() {
29 static std::vector<std::shared_ptr<ROOT::Experimental::TCanvas>> sCanvases;
36 namespace Experimental {
39 class TV5CanvasAdaptor:
public TObject {
52 fOldCanv->SetTitle(canv.
GetTitle().c_str());
58 if (
gROOT &&
gROOT->GetListOfCanvases() && !
gROOT->GetListOfCanvases()->IsEmpty())
59 fOldCanv->RecursiveRemove(
this);
70 const std::vector<std::shared_ptr<ROOT::Experimental::TCanvas>> &
72 return GetHeldCanvases();
77 fAdaptor = std::make_unique<Internal::TV5CanvasAdaptor>(*this);
83 for (
auto&& drw: fPrimitives) {
88 std::shared_ptr<ROOT::Experimental::TCanvas>
90 auto pCanvas = std::make_shared<TCanvas>();
91 pCanvas->SetTitle(title);
92 GetHeldCanvases().emplace_back(pCanvas);
Graphic container for TDrawable-s.
virtual void AppendPad(Option_t *option="")
Append graphics object to current pad.
TCanvas()
Create a temporary TCanvas; for long-lived ones please use Create().
~TCanvas()
Default destructor.
const std::string & GetTitle() const
Get the canvas's title.
Mother of all ROOT objects.
static std::shared_ptr< TCanvas > Create(const std::string &title)
void Paint()
Remove an object from the list of primitives.
static const std::vector< std::shared_ptr< TCanvas > > & GetCanvases()