Warning, file /include/root/ROOT/RVirtualCanvasPainter.hxx was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 
0002 
0003 
0004 
0005 
0006 
0007 
0008 
0009 #ifndef ROOT7_RVirtualCanvasPainter
0010 #define ROOT7_RVirtualCanvasPainter
0011 
0012 #include <cstdint>
0013 #include <memory>
0014 #include <functional>
0015 #include <string>
0016 
0017 namespace ROOT {
0018 
0019 class RWebWindow;
0020 
0021 namespace Experimental {
0022 
0023 using CanvasCallback_t = std::function<void(bool)>;
0024 
0025 class RCanvas;
0026 
0027 namespace Internal {
0028 
0029 
0030 
0031 
0032 
0033 
0034 
0035 
0036 
0037 class RVirtualCanvasPainter {
0038 protected:
0039    class Generator {
0040    public:
0041       
0042       virtual std::unique_ptr<RVirtualCanvasPainter> Create(RCanvas &canv) const = 0;
0043       
0044       virtual ~Generator();
0045    };
0046 
0047    
0048    static std::unique_ptr<Generator> &GetGenerator();
0049 
0050 public:
0051    
0052    virtual ~RVirtualCanvasPainter();
0053 
0054    
0055    virtual void CanvasUpdated(uint64_t, bool, CanvasCallback_t) = 0;
0056 
0057    
0058    virtual bool IsCanvasModified(uint64_t) const = 0;
0059 
0060    
0061    virtual void DoWhenReady(const std::string &, const std::string &, bool, CanvasCallback_t) = 0;
0062 
0063    
0064    virtual bool ProduceBatchOutput(const std::string &, int, int) = 0;
0065 
0066    
0067    virtual std::string ProduceJSON() = 0;
0068 
0069    virtual void NewDisplay(const std::string &where) = 0;
0070 
0071    virtual int NumDisplays() const = 0;
0072 
0073    virtual std::shared_ptr<ROOT::RWebWindow> GetWindow() = 0;
0074 
0075    virtual std::string GetWindowAddr() const = 0;
0076 
0077    virtual std::string GetWindowUrl(bool remote) = 0;
0078 
0079    
0080    virtual void Run(double tm = 0.) = 0;
0081 
0082    virtual bool AddPanel(std::shared_ptr<ROOT::RWebWindow>) { return false; }
0083 
0084    virtual void SetClearOnClose(const std::shared_ptr<void> &) {}
0085 
0086    
0087    static std::unique_ptr<RVirtualCanvasPainter> Create(RCanvas &canv);
0088 };
0089 } 
0090 } 
0091 } 
0092 
0093 #endif