Logo ROOT   6.14/05
Reference Guide
List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
ROOT::Experimental::TCanvas Class Reference

A window's topmost TPad.

Definition at line 33 of file TCanvas.hxx.

Public Member Functions

 TCanvas ()=default
 Create a temporary TCanvas; for long-lived ones please use Create(). More...
 
 ~TCanvas ()=default
 
template<class PANEL >
bool AddPanel (std::shared_ptr< PANEL > &panel)
 Insert panel into the canvas, canvas should be shown at this moment. More...
 
const TCanvasGetCanvas () const override
 Access to the top-most canvas, if any (const version). More...
 
TCanvasGetCanvas () override
 Access to the top-most canvas, if any (non-const version). More...
 
const std::array< TPadLength::Pixel, 2 > & GetSize () const
 Return canvas pixel size as array with two elements - width and height. More...
 
const std::string & GetTitle () const
 Get the canvas's title. More...
 
void Hide ()
 Close all canvas displays. More...
 
bool IsModified () const
 Returns true is canvas was modified since last painting. More...
 
void Modified ()
 
std::array< TPadLength::Normal, 2 > PixelsToNormal (const std::array< TPadLength::Pixel, 2 > &pos) const final
 Convert a Pixel position to Canvas-normalized positions. More...
 
void SaveAs (const std::string &filename, bool async=false, CanvasCallback_t callback=nullptr)
 Save canvas in image file. More...
 
void SetSize (const std::array< TPadLength::Pixel, 2 > &sz)
 Set canvas pixel size as array with two elements - width and height. More...
 
void SetSize (const TPadLength::Pixel &width, const TPadLength::Pixel &height)
 Set canvas pixel size - width and height. More...
 
void SetTitle (const std::string &title)
 Set the canvas's title. More...
 
void Show (const std::string &where="")
 Display the canvas. More...
 
void Update (bool async=false, CanvasCallback_t callback=nullptr)
 update drawing More...
 
- Public Member Functions inherited from ROOT::Experimental::TPadBase
virtual ~TPadBase ()
 
void CreateFrameIfNeeded ()
 
std::vector< std::vector< TPad * > > Divide (int nHoriz, int nVert, const TPadExtent &padding={})
 Divide this pad into a grid of subpads with padding in between. More...
 
template<class T , class... ARGS>
auto Draw (const std::shared_ptr< T > &what, ARGS... args)
 Add something to be painted. More...
 
template<class T , class... ARGS>
auto Draw (std::unique_ptr< T > &&what, ARGS... args)
 Add something to be painted. More...
 
template<class T , class... ARGS, class = typename std::enable_if<!ROOT::TypeTraits::IsSmartOrDumbPtr<T>::value>::type>
auto Draw (const T &what, ARGS... args)
 Add a copy of something to be painted. More...
 
std::shared_ptr< TDrawableFindDrawable (const std::string &id) const
 
TPadUserAxisBaseGetAxis (size_t dimension) const
 Get a pad axis from the TFrame. More...
 
const TFrameGetFrame () const
 
TPadUserAxisBaseGetOrCreateAxis (size_t dimension)
 Get a pad axis from the TFrame. More...
 
TFrameGetOrCreateFrame ()
 
const Primitives_tGetPrimitives () const
 Get the elements contained in the canvas. More...
 
bool Remove (TDrawingOptsBase &opts)
 Remove an object from the list of primitives. More...
 
void SetAllAxisAutoBounds ()
 Set the range of an axis as bound kind and bound (up or down). More...
 
void SetAllAxisBound (const std::vector< BoundKindAndValue > &vecBoundAndKind)
 Set the range of an axis as bound kind and bound (up or down). More...
 
void SetAllAxisBounds (const std::vector< std::array< double, 2 >> &vecBeginAndEnd)
 Set the range of an axis as bound kind and bound (up or down). More...
 
void SetAxisAutoBounds (int dimension)
 Set the range of an axis as bound kind and bound (up or down). More...
 
void SetAxisBound (int dimension, TPadUserAxisBase::EAxisBoundsKind boundsKind, double bound)
 Set the range of an axis as bound kind and bound (up or down). More...
 
void SetAxisBounds (int dimension, double begin, double end)
 Set the range of an axis as begin, end. More...
 
std::array< TPadLength::Normal, 2 > UserToNormal (const std::array< TPadLength::User, 2 > &pos) const
 Convert user coordinates to normal coordinates. More...
 
void Wipe ()
 Wipe the pad by clearing the list of primitives. More...
 

Static Public Member Functions

static std::shared_ptr< TCanvasCreate (const std::string &title)
 
static const std::vector< std::shared_ptr< TCanvas > > & GetCanvases ()
 

Private Member Functions

 TCanvas (const TCanvas &)=delete
 Disable copy construction for now. More...
 
std::string GenerateUniqueId ()
 Generates unique ID inside the canvas. More...
 
TCanvasoperator= (const TCanvas &)=delete
 Disable assignment for now. More...
 

Private Attributes

uint64_t fIdCounter {2}
 counter for objects, id==1 is canvas itself More...
 
uint64_t fModified
 Modify counter, incremented every time canvas is changed. More...
 
std::unique_ptr< Internal::TVirtualCanvasPainterfPainter
 The painter of this canvas, bootstrapping the graphics connection. More...
 
std::array< TPadLength::Pixel, 2 > fSize
 Size of the canvas in pixels,. More...
 
std::string fTitle
 use for ID generation More...
 

Friends

class TPadBase
 

Additional Inherited Members

- Public Types inherited from ROOT::Experimental::TPadBase
using Primitives_t = std::vector< std::shared_ptr< TDrawable > >
 
- Protected Member Functions inherited from ROOT::Experimental::TPadBase
 TPadBase ()=default
 Allow derived classes to default construct a TPadBase. More...
 

#include <ROOT/TCanvas.hxx>

Inheritance diagram for ROOT::Experimental::TCanvas:
[legend]

Constructor & Destructor Documentation

◆ TCanvas() [1/2]

ROOT::Experimental::TCanvas::TCanvas ( const TCanvas )
privatedelete

Disable copy construction for now.

◆ TCanvas() [2/2]

ROOT::Experimental::TCanvas::TCanvas ( )
default

Create a temporary TCanvas; for long-lived ones please use Create().

◆ ~TCanvas()

ROOT::Experimental::TCanvas::~TCanvas ( )
default

Member Function Documentation

◆ AddPanel()

template<class PANEL >
bool ROOT::Experimental::TCanvas::AddPanel ( std::shared_ptr< PANEL > &  panel)
inline

Insert panel into the canvas, canvas should be shown at this moment.

Definition at line 94 of file TCanvas.hxx.

◆ Create()

std::shared_ptr< ROOT::Experimental::TCanvas > TCanvas::Create ( const std::string &  title)
static

Definition at line 74 of file TCanvas.cxx.

◆ GenerateUniqueId()

std::string TCanvas::GenerateUniqueId ( )
private

Generates unique ID inside the canvas.

Definition at line 49 of file TCanvas.cxx.

◆ GetCanvas() [1/2]

const TCanvas* ROOT::Experimental::TCanvas::GetCanvas ( ) const
inlineoverridevirtual

Access to the top-most canvas, if any (const version).

Implements ROOT::Experimental::TPadBase.

Definition at line 68 of file TCanvas.hxx.

◆ GetCanvas() [2/2]

TCanvas* ROOT::Experimental::TCanvas::GetCanvas ( )
inlineoverridevirtual

Access to the top-most canvas, if any (non-const version).

Implements ROOT::Experimental::TPadBase.

Definition at line 71 of file TCanvas.hxx.

◆ GetCanvases()

const std::vector< std::shared_ptr< ROOT::Experimental::TCanvas > > & TCanvas::GetCanvases ( )
static

Definition at line 35 of file TCanvas.cxx.

◆ GetSize()

const std::array<TPadLength::Pixel, 2>& ROOT::Experimental::TCanvas::GetSize ( ) const
inline

Return canvas pixel size as array with two elements - width and height.

Definition at line 74 of file TCanvas.hxx.

◆ GetTitle()

const std::string& ROOT::Experimental::TCanvas::GetTitle ( ) const
inline

Get the canvas's title.

Definition at line 112 of file TCanvas.hxx.

◆ Hide()

void TCanvas::Hide ( )

Close all canvas displays.

Definition at line 122 of file TCanvas.cxx.

◆ IsModified()

bool TCanvas::IsModified ( ) const

Returns true is canvas was modified since last painting.

Definition at line 57 of file TCanvas.cxx.

◆ Modified()

void ROOT::Experimental::TCanvas::Modified ( )
inline

Definition at line 100 of file TCanvas.hxx.

◆ operator=()

TCanvas& ROOT::Experimental::TCanvas::operator= ( const TCanvas )
privatedelete

Disable assignment for now.

◆ PixelsToNormal()

std::array<TPadLength::Normal, 2> ROOT::Experimental::TCanvas::PixelsToNormal ( const std::array< TPadLength::Pixel, 2 > &  pos) const
inlinefinalvirtual

Convert a Pixel position to Canvas-normalized positions.

Implements ROOT::Experimental::TPadBase.

Definition at line 118 of file TCanvas.hxx.

◆ SaveAs()

void TCanvas::SaveAs ( const std::string &  filename,
bool  async = false,
CanvasCallback_t  callback = nullptr 
)

Save canvas in image file.

Create image file for the canvas Supported SVG (extension .svg), JPEG (extension .jpg or .jpeg) and PNG (extension .png)

Parameters
asyncspecifies if file can be created asynchronous to the caller thread When operation completed, callback function is called

Definition at line 134 of file TCanvas.cxx.

◆ SetSize() [1/2]

void ROOT::Experimental::TCanvas::SetSize ( const std::array< TPadLength::Pixel, 2 > &  sz)
inline

Set canvas pixel size as array with two elements - width and height.

Definition at line 77 of file TCanvas.hxx.

◆ SetSize() [2/2]

void ROOT::Experimental::TCanvas::SetSize ( const TPadLength::Pixel width,
const TPadLength::Pixel height 
)
inline

Set canvas pixel size - width and height.

Definition at line 80 of file TCanvas.hxx.

◆ SetTitle()

void ROOT::Experimental::TCanvas::SetTitle ( const std::string &  title)
inline

Set the canvas's title.

Definition at line 115 of file TCanvas.hxx.

◆ Show()

void TCanvas::Show ( const std::string &  where = "")

Display the canvas.

Create new display for the canvas Parameter.

where specifies which program could be used for display creation
Possible values:
 cef - Chromium Embeded Framework, local display, local communication
 qt5 - Qt5 WebEngine (when running via rootqt5), local display, local communication
browser - default system web-browser, communication via random http port from range 8800 - 9800 <prog> - any program name which will be started instead of default browser, like firefox or /usr/bin/opera one could also specify $url in program name, which will be replaced with canvas URL native - either any available local display or default browser

Canvas can be displayed in several different places

Definition at line 96 of file TCanvas.cxx.

◆ Update()

void TCanvas::Update ( bool  async = false,
CanvasCallback_t  callback = nullptr 
)

update drawing

Definition at line 62 of file TCanvas.cxx.

Friends And Related Function Documentation

◆ TPadBase

friend class TPadBase
friend

Definition at line 34 of file TCanvas.hxx.

Member Data Documentation

◆ fIdCounter

uint64_t ROOT::Experimental::TCanvas::fIdCounter {2}
private

counter for objects, id==1 is canvas itself

Definition at line 45 of file TCanvas.hxx.

◆ fModified

uint64_t ROOT::Experimental::TCanvas::fModified
private

Modify counter, incremented every time canvas is changed.

!

Definition at line 43 of file TCanvas.hxx.

◆ fPainter

std::unique_ptr<Internal::TVirtualCanvasPainter> ROOT::Experimental::TCanvas::fPainter
private

The painter of this canvas, bootstrapping the graphics connection.

Unmapped canvases (those that never had Draw() invoked) might not have a painter. !

Definition at line 50 of file TCanvas.hxx.

◆ fSize

std::array<TPadLength::Pixel, 2> ROOT::Experimental::TCanvas::fSize
private

Size of the canvas in pixels,.

Definition at line 40 of file TCanvas.hxx.

◆ fTitle

std::string ROOT::Experimental::TCanvas::fTitle
private

use for ID generation

Title of the canvas.

Definition at line 37 of file TCanvas.hxx.

Libraries for ROOT::Experimental::TCanvas:
[legend]

The documentation for this class was generated from the following files: