Logo ROOT  
Reference Guide
ROOT::Experimental::RPadBase Class Referenceabstract

Base class for graphic containers for RDrawable-s.

Authors
Axel Naumann axel@.nosp@m.cern.nosp@m..ch Sergey Linev s.lin.nosp@m.ev@g.nosp@m.si.de
Date
2019-10-02
Warning
This is part of the ROOT 7 prototype! It will change without notice. It might trigger earthquakes. Feedback is welcome!

Definition at line 37 of file RPadBase.hxx.

Public Types

using Primitives_t = std::vector< std::shared_ptr< RDrawable > >
 
- Public Types inherited from ROOT::Experimental::RDrawable
using Version_t = uint64_t
 

Public Member Functions

virtual ~RPadBase ()
 
template<class T , class... ARGS>
std::shared_ptr< T > Add (ARGS... args)
 Add drawable of specified class T. More...
 
std::shared_ptr< RFrameAddFrame ()
 Add a frame object for the pad. More...
 
std::shared_ptr< RPadAddPad (const RPadPos &, const RPadExtent &)
 Add subpad. More...
 
std::vector< std::vector< std::shared_ptr< RPad > > > Divide (int nHoriz, int nVert, const RPadExtent &padding={})
 Divide this pad into a grid of subpads with padding in between. More...
 
template<class T , class... ARGS>
std::shared_ptr< T > Draw (ARGS... args)
 Create drawable of specified class T. More...
 
template<class T , class... ARGS>
auto Draw (const std::shared_ptr< T > &what, ARGS... args)
 Add object to be painted. More...
 
std::shared_ptr< RDrawableDraw (std::shared_ptr< RDrawable > &&drawable)
 Add existing drawable instance to canvas. More...
 
const RPadBaseFindPadForPrimitiveWithDisplayId (const std::string &display_id) const
 Find subpad which contains primitive with given display id. More...
 
std::shared_ptr< RDrawableFindPrimitive (const std::string &id) const
 Find primitive with specified id. More...
 
std::shared_ptr< RDrawableFindPrimitiveByDisplayId (const std::string &display_id) const
 Find primitive with unique id, produce for RDisplayItem Such id used for client-server identification of objects. More...
 
virtual const RCanvasGetCanvas () const =0
 Access to the top-most canvas, if any (const version). More...
 
virtual RCanvasGetCanvas ()=0
 Access to the top-most canvas, if any (non-const version). More...
 
std::shared_ptr< RFrameGetFrame ()
 Get a frame object if exists. More...
 
const std::shared_ptr< RFrameGetFrame () const
 Get a frame object if exists. More...
 
std::shared_ptr< RDrawableGetPrimitive (unsigned num) const
 returns primitive of given number More...
 
auto GetPrimitives () const
 Get all primitives contained in the pad. More...
 
unsigned NumPrimitives () const
 returns number of primitives in the pad More...
 
bool Remove (const std::shared_ptr< RDrawable > &drawable)
 Remove drawable from list of primitives. More...
 
bool Remove (const std::string &id)
 Remove an object from the list of primitives. More...
 
bool RemoveAt (unsigned indx)
 Remove drawable at specified position. More...
 
void UseStyle (const std::shared_ptr< RStyle > &style) override
 Use provided style for pad and all primitives inside. More...
 
void Wipe ()
 Wipe the pad by clearing the list of primitives. More...
 
- Public Member Functions inherited from ROOT::Experimental::RDrawable
 RDrawable (const char *csstype)
 
virtual ~RDrawable ()
 
void ClearStyle ()
 
const std::string & GetCssClass () const
 
const char * GetCssType () const
 
const std::string & GetId () const
 
void SetCssClass (const std::string &cl)
 
void SetId (const std::string &id)
 
virtual void UseStyle (const std::shared_ptr< RStyle > &style)
 

Protected Member Functions

 RPadBase (const char *csstype)
 Allow derived classes to default construct a RPadBase. More...
 
void CollectShared (Internal::RIOSharedVector_t &) override
 Collect all shared items to resolve shared_ptr after IO. More...
 
void DisplayPrimitives (RPadBaseDisplayItem &paditem, RDisplayContext &ctxt)
 Create display items for all primitives in the pad Each display item gets its special id, which used later for client-server communication Second parameter is version id which already delivered to the client. More...
 
void SetDrawableVersion (Version_t vers) override
 Assign drawable version - for pad itself and all primitives. More...
 
- Protected Member Functions inherited from ROOT::Experimental::RDrawable
 RDrawable (const RDrawable &)=delete
 
virtual void CollectShared (Internal::RIOSharedVector_t &)
 
virtual std::unique_ptr< RDisplayItemDisplay (const RDisplayContext &)
 Creates display item for drawable By default item contains drawable data itself. More...
 
virtual void Execute (const std::string &)
 
RAttrMapGetAttrMap ()
 
const RAttrMapGetAttrMap () const
 
Version_t GetVersion () const
 
virtual bool IsFrameRequired () const
 
bool MatchSelector (const std::string &selector) const
 Preliminary method which checks if drawable matches with given selector Following selector are allowed: "type" or "#id" or ".class_name" Here type is drawable kind like 'rect' or 'pad' id is drawable identifier, specified with RDrawable::SetId() method class_name is drawable class name, specified with RDrawable::SetCssClass() method. More...
 
virtual void OnDisplayItemDestroyed (RDisplayItem *) const
 
RDrawableoperator= (const RDrawable &)=delete
 
virtual void PopulateMenu (RMenuItems &)
 
void SetCssType (const char *csstype)
 
virtual void SetDrawableVersion (Version_t vers)
 

Private Types

using Primitive_t = Internal::RIOShared< RDrawable >
 

Private Member Functions

 RPadBase (const RPadBase &)=delete
 Disable copy construction. More...
 
RPadBaseoperator= (const RPadBase &)=delete
 Disable assignment. More...
 
void TestIfFrameRequired (const RDrawable *drawable)
 

Private Attributes

std::vector< Primitive_tfPrimitives
 Content of the pad. More...
 

#include <ROOT/RPadBase.hxx>

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

Member Typedef Documentation

◆ Primitive_t

◆ Primitives_t

using ROOT::Experimental::RPadBase::Primitives_t = std::vector<std::shared_ptr<RDrawable> >

Definition at line 71 of file RPadBase.hxx.

Constructor & Destructor Documentation

◆ RPadBase() [1/2]

ROOT::Experimental::RPadBase::RPadBase ( const RPadBase )
privatedelete

Disable copy construction.

◆ RPadBase() [2/2]

ROOT::Experimental::RPadBase::RPadBase ( const char *  csstype)
inlineexplicitprotected

Allow derived classes to default construct a RPadBase.

Definition at line 61 of file RPadBase.hxx.

◆ ~RPadBase()

RPadBase::~RPadBase ( )
virtualdefault

Member Function Documentation

◆ Add()

template<class T , class... ARGS>
std::shared_ptr< T > ROOT::Experimental::RPadBase::Add ( ARGS...  args)
inline

Add drawable of specified class T.

Definition at line 108 of file RPadBase.hxx.

◆ AddFrame()

std::shared_ptr< RFrame > RPadBase::AddFrame ( )

Add a frame object for the pad.

If frame already exists - just return it

Definition at line 189 of file RPadBase.cxx.

◆ AddPad()

std::shared_ptr< RPad > RPadBase::AddPad ( const RPadPos pos,
const RPadExtent extent 
)

Add subpad.

Definition at line 138 of file RPadBase.cxx.

◆ CollectShared()

void RPadBase::CollectShared ( Internal::RIOSharedVector_t vect)
overrideprotectedvirtual

Collect all shared items to resolve shared_ptr after IO.

Reimplemented from ROOT::Experimental::RDrawable.

Definition at line 226 of file RPadBase.cxx.

◆ DisplayPrimitives()

void RPadBase::DisplayPrimitives ( RPadBaseDisplayItem paditem,
RDisplayContext ctxt 
)
protected

Create display items for all primitives in the pad Each display item gets its special id, which used later for client-server communication Second parameter is version id which already delivered to the client.

Definition at line 112 of file RPadBase.cxx.

◆ Divide()

std::vector< std::vector< std::shared_ptr< RPad > > > RPadBase::Divide ( int  nHoriz,
int  nVert,
const RPadExtent padding = {} 
)

Divide this pad into a grid of subpads with padding in between.

Divide pad on nHoriz X nVert subpads Return array of array of pads.

Parameters
nHorizNumber of horizontal pads.
nVertNumber of vertical pads.
paddingPadding between pads.
Returns
vector of vector (ret[x][y]) of created pads.

Definition at line 154 of file RPadBase.cxx.

◆ Draw() [1/3]

template<class T , class... ARGS>
std::shared_ptr< T > ROOT::Experimental::RPadBase::Draw ( ARGS...  args)
inline

Create drawable of specified class T.

Definition at line 95 of file RPadBase.hxx.

◆ Draw() [2/3]

template<class T , class... ARGS>
auto ROOT::Experimental::RPadBase::Draw ( const std::shared_ptr< T > &  what,
ARGS...  args 
)
inline

Add object to be painted.

Correspondent drawable will be created via GetDrawable() function which should be defined and be accessed at calling time. If required, extra arguments for GetDrawable() function can be provided.

Definition at line 81 of file RPadBase.hxx.

◆ Draw() [3/3]

std::shared_ptr< RDrawable > ROOT::Experimental::RPadBase::Draw ( std::shared_ptr< RDrawable > &&  drawable)
inline

Add existing drawable instance to canvas.

Definition at line 120 of file RPadBase.hxx.

◆ FindPadForPrimitiveWithDisplayId()

const RPadBase * RPadBase::FindPadForPrimitiveWithDisplayId ( const std::string &  display_id) const

Find subpad which contains primitive with given display id.

Definition at line 87 of file RPadBase.cxx.

◆ FindPrimitive()

std::shared_ptr< RDrawable > RPadBase::FindPrimitive ( const std::string &  id) const

Find primitive with specified id.

Definition at line 40 of file RPadBase.cxx.

◆ FindPrimitiveByDisplayId()

std::shared_ptr< RDrawable > RPadBase::FindPrimitiveByDisplayId ( const std::string &  display_id) const

Find primitive with unique id, produce for RDisplayItem Such id used for client-server identification of objects.

Definition at line 64 of file RPadBase.cxx.

◆ GetCanvas() [1/2]

virtual const RCanvas * ROOT::Experimental::RPadBase::GetCanvas ( ) const
pure virtual

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

Implemented in ROOT::Experimental::RCanvas, and ROOT::Experimental::RPad.

◆ GetCanvas() [2/2]

virtual RCanvas * ROOT::Experimental::RPadBase::GetCanvas ( )
pure virtual

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

Implemented in ROOT::Experimental::RCanvas, and ROOT::Experimental::RPad.

◆ GetFrame() [1/2]

std::shared_ptr< RFrame > RPadBase::GetFrame ( )

Get a frame object if exists.

Definition at line 214 of file RPadBase.cxx.

◆ GetFrame() [2/2]

const std::shared_ptr< RFrame > RPadBase::GetFrame ( ) const

Get a frame object if exists.

Definition at line 202 of file RPadBase.cxx.

◆ GetPrimitive()

std::shared_ptr< RDrawable > ROOT::Experimental::RPadBase::GetPrimitive ( unsigned  num) const
inline

returns primitive of given number

Definition at line 135 of file RPadBase.hxx.

◆ GetPrimitives()

auto ROOT::Experimental::RPadBase::GetPrimitives ( ) const
inline

Get all primitives contained in the pad.

Definition at line 148 of file RPadBase.hxx.

◆ NumPrimitives()

unsigned ROOT::Experimental::RPadBase::NumPrimitives ( ) const
inline

returns number of primitives in the pad

Definition at line 132 of file RPadBase.hxx.

◆ operator=()

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

Disable assignment.

◆ Remove() [1/2]

bool ROOT::Experimental::RPadBase::Remove ( const std::shared_ptr< RDrawable > &  drawable)
inline

Remove drawable from list of primitives.

Definition at line 169 of file RPadBase.hxx.

◆ Remove() [2/2]

bool ROOT::Experimental::RPadBase::Remove ( const std::string &  id)
inline

Remove an object from the list of primitives.

Definition at line 157 of file RPadBase.hxx.

◆ RemoveAt()

bool ROOT::Experimental::RPadBase::RemoveAt ( unsigned  indx)
inline

Remove drawable at specified position.

Definition at line 181 of file RPadBase.hxx.

◆ SetDrawableVersion()

void RPadBase::SetDrawableVersion ( Version_t  vers)
overrideprotectedvirtual

Assign drawable version - for pad itself and all primitives.

Reimplemented from ROOT::Experimental::RDrawable.

Definition at line 238 of file RPadBase.cxx.

◆ TestIfFrameRequired()

void ROOT::Experimental::RPadBase::TestIfFrameRequired ( const RDrawable drawable)
inlineprivate

Definition at line 53 of file RPadBase.hxx.

◆ UseStyle()

void RPadBase::UseStyle ( const std::shared_ptr< RStyle > &  style)
overridevirtual

Use provided style for pad and all primitives inside.

Reimplemented from ROOT::Experimental::RDrawable.

Definition at line 30 of file RPadBase.cxx.

◆ Wipe()

void ROOT::Experimental::RPadBase::Wipe ( )
inline

Wipe the pad by clearing the list of primitives.

Definition at line 190 of file RPadBase.hxx.

Member Data Documentation

◆ fPrimitives

std::vector<Primitive_t> ROOT::Experimental::RPadBase::fPrimitives
private

Content of the pad.

Definition at line 45 of file RPadBase.hxx.


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