28 static std::vector<std::shared_ptr<ROOT::Experimental::TCanvas>> &GetHeldCanvases()
30 static std::vector<std::shared_ptr<ROOT::Experimental::TCanvas>> sCanvases;
37 return GetHeldCanvases();
76 auto pCanvas = std::make_shared<TCanvas>();
77 pCanvas->SetTitle(title);
78 GetHeldCanvases().emplace_back(pCanvas);
99 bool isany = (
fPainter->NumDisplays() > 0);
137 if (filename.find(
".json") != std::string::npos) {
139 fPainter->DoWhenReady(
"JSON", filename, async, callback);
144 Show(
"batch_canvas");
146 if (filename.find(
".svg") != std::string::npos)
147 fPainter->DoWhenReady(
"SVG", filename, async, callback);
148 else if (filename.find(
".png") != std::string::npos)
149 fPainter->DoWhenReady(
"PNG", filename, async, callback);
150 else if ((filename.find(
".jpg") != std::string::npos) || (filename.find(
".jpeg") != std::string::npos))
151 fPainter->DoWhenReady(
"JPEG", filename, async, callback);
std::string GenerateUniqueId()
Generates unique ID inside the canvas.
uint64_t fModified
Modify counter, incremented every time canvas is changed.
uint64_t fIdCounter
counter for objects, id==1 is canvas itself
std::unique_ptr< Internal::TVirtualCanvasPainter > fPainter
The painter of this canvas, bootstrapping the graphics connection.
static std::unique_ptr< TVirtualCanvasPainter > Create(const TCanvas &canv)
Loads the plugin that implements this class.
void Update(bool async=false, CanvasCallback_t callback=nullptr)
update drawing
void Hide()
Close all canvas displays.
bool IsModified() const
Returns true is canvas was modified since last painting.
void SaveAs(const std::string &filename, bool async=false, CanvasCallback_t callback=nullptr)
Save canvas in image file.
std::function< void(bool)> CanvasCallback_t
void Show(const std::string &where="")
Display the canvas.
static std::shared_ptr< TCanvas > Create(const std::string &title)
static const std::vector< std::shared_ptr< TCanvas > > & GetCanvases()