Logo ROOT  
Reference Guide
RVirtualCanvasPainter.hxx
Go to the documentation of this file.
1/*************************************************************************
2 * Copyright (C) 1995-2017, Rene Brun and Fons Rademakers. *
3 * All rights reserved. *
4 * *
5 * For the licensing terms see $ROOTSYS/LICENSE. *
6 * For the list of contributors see $ROOTSYS/README/CREDITS. *
7 *************************************************************************/
8
9#ifndef ROOT7_RVirtualCanvasPainter
10#define ROOT7_RVirtualCanvasPainter
11
12#include <memory>
13#include <functional>
14#include <string>
15
16namespace ROOT {
17namespace Experimental {
18
20
21class RCanvas;
22class RWebWindow;
23
24namespace Internal {
25
26/** \class ROOT::Experimental::Internal::RVirtualCanvasPainter
27\ingroup GpadROOT7
28\brief Abstract interface for painting a canvas.
29\author Axel Naumann <axel@cern.ch>
30\date 2017-05-31
31\warning This is part of the ROOT 7 prototype! It will change without notice. It might trigger earthquakes. Feedback is welcome!
32*/
33
35protected:
36 class Generator {
37 public:
38 /// Abstract interface to create a RVirtualCanvasPainter implementation.
39 virtual std::unique_ptr<RVirtualCanvasPainter> Create(const RCanvas &canv) const = 0;
40 /// Default destructor.
41 virtual ~Generator();
42 };
43
44 /// generator getter
45 static std::unique_ptr<Generator> &GetGenerator();
46
47public:
48 /// Default destructor.
50
51 /// indicate that canvas changed, provides current version of the canvas
52 virtual void CanvasUpdated(uint64_t, bool, CanvasCallback_t) = 0;
53
54 /// return true if canvas modified since last painting
55 virtual bool IsCanvasModified(uint64_t) const = 0;
56
57 /// perform special action when drawing is ready
58 virtual void DoWhenReady(const std::string &, const std::string &, bool, CanvasCallback_t) = 0;
59
60 virtual void NewDisplay(const std::string &where) = 0;
61
62 virtual int NumDisplays() const = 0;
63
64 virtual std::string GetWindowAddr() const = 0;
65
66 /// run canvas functionality in caller thread, not needed when main thread is used
67 virtual void Run(double tm = 0.) = 0;
68
69 virtual bool AddPanel(std::shared_ptr<RWebWindow>) { return false; }
70
71 /// Loads the plugin that implements this class.
72 static std::unique_ptr<RVirtualCanvasPainter> Create(const RCanvas &canv);
73};
74} // namespace Internal
75} // namespace Experimental
76} // namespace ROOT
77
78#endif // ROOT7_RVirtualCanvasPainter
typedef void((*Func_t)())
virtual std::unique_ptr< RVirtualCanvasPainter > Create(const RCanvas &canv) const =0
Abstract interface to create a RVirtualCanvasPainter implementation.
Abstract interface for painting a canvas.
static std::unique_ptr< RVirtualCanvasPainter > Create(const RCanvas &canv)
Loads the plugin that implements this class.
virtual void CanvasUpdated(uint64_t, bool, CanvasCallback_t)=0
indicate that canvas changed, provides current version of the canvas
virtual ~RVirtualCanvasPainter()
Default destructor.
virtual bool AddPanel(std::shared_ptr< RWebWindow >)
static std::unique_ptr< Generator > & GetGenerator()
generator getter
virtual void Run(double tm=0.)=0
run canvas functionality in caller thread, not needed when main thread is used
virtual void DoWhenReady(const std::string &, const std::string &, bool, CanvasCallback_t)=0
perform special action when drawing is ready
virtual bool IsCanvasModified(uint64_t) const =0
return true if canvas modified since last painting
virtual void NewDisplay(const std::string &where)=0
virtual std::string GetWindowAddr() const =0
A window's topmost RPad.
Definition: RCanvas.hxx:30
Represents web window, which can be shown in web browser or any other supported environment.
Definition: RWebWindow.hxx:56
std::function< void(bool)> CanvasCallback_t
void function(const Char_t *name_, T fun, const Char_t *docstring=0)
Definition: RExports.h:151
VSD Structures.
Definition: StringConv.hxx:21