Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TWebSnapshot.h
Go to the documentation of this file.
1// Author: Sergey Linev, GSI, 6/04/2017
2
3/*************************************************************************
4 * Copyright (C) 1995-2019, Rene Brun and Fons Rademakers. *
5 * All rights reserved. *
6 * *
7 * For the licensing terms see $ROOTSYS/LICENSE. *
8 * For the list of contributors see $ROOTSYS/README/CREDITS. *
9 *************************************************************************/
10
11#ifndef ROOT_TWebSnapshot
12#define ROOT_TWebSnapshot
13
14#include "TObject.h"
15
16#include <vector>
17#include <memory>
18#include <string>
19
20class TWebSnapshot : public TObject {
21
22protected:
23 std::string fObjectID; ///< object identifier
24 std::string fOption; ///< object draw option
25 Int_t fKind{0}; ///< kind of snapshots
26 TObject *fSnapshot{nullptr}; ///< snapshot data
27 Bool_t fOwner{kFALSE}; ///<! if objected owned
28
29 void SetKind(Int_t kind) { fKind = kind; }
30
31public:
32
33 enum {
34 kNone = 0, ///< dummy
35 kObject = 1, ///< object itself
36 kSVG = 2, ///< list of SVG primitives
37 kSubPad = 3, ///< subpad
38 kColors = 4, ///< list of ROOT colors + palette
39 kStyle = 5 ///< gStyle object
40 };
41
42 ~TWebSnapshot() override;
43
44 void SetObjectIDAsPtr(void *ptr, const std::string &suffix = "");
45 void SetObjectID(const std::string &id) { fObjectID = id; }
46 const char* GetObjectID() const { return fObjectID.c_str(); }
47
48 void SetOption(const std::string &opt) { fOption = opt; }
49
50 void SetSnapshot(Int_t kind, TObject *snapshot, Bool_t owner = kFALSE);
51 Int_t GetKind() const { return fKind; }
52 TObject *GetSnapshot() const { return fSnapshot; }
53
54 ClassDefOverride(TWebSnapshot,1) // Object painting snapshot, used for JSROOT
55};
56
57// =================================================================================
58
60protected:
61 bool fActive{false}; ///< true when pad is active
62 bool fReadOnly{true}; ///< when canvas or pad are in readonly mode
63 bool fSetObjectIds{true}; ///<! set objects ids
64 bool fBatchMode{false}; ///<! if object created for image generation
65 bool fWithoutPrimitives{false}; ///< true when primitives not send while there are no modifications
66 bool fHasExecs{false}; ///< if true, more interactive events will be delivered from client
67 std::vector<std::unique_ptr<TWebSnapshot>> fPrimitives; ///< list of all primitives, drawn in the pad
68
69public:
70 TPadWebSnapshot(bool readonly = true, bool setids = true, bool batchmode = false)
71 {
73 fReadOnly = readonly;
74 fSetObjectIds = setids;
75 fBatchMode = batchmode;
76 }
77
78 void SetActive(bool on = true) { fActive = on; }
79
81
82 void SetHasExecs(bool on = true) { fHasExecs = on; }
83
84 bool IsReadOnly() const { return fReadOnly; }
85
86 bool IsSetObjectIds() const { return fSetObjectIds; }
87
88 bool IsBatchMode() const { return fBatchMode; }
89
90 TWebSnapshot &NewPrimitive(TObject *obj = nullptr, const std::string &opt = "", const std::string &suffix = "");
91
93
95
96 ClassDefOverride(TPadWebSnapshot, 3) // Pad painting snapshot, used for JSROOT
97};
98
99// =================================================================================
100
102protected:
103 std::string fScripts; ///< custom scripts to load
104 bool fHighlightConnect{false}; ///< does HighlightConnect has connection
105 bool fFixedSize{false}; ///< if canvas draw size is fixed
106public:
107 TCanvasWebSnapshot(bool readonly = true, bool setids = true, bool batchmode = false) : TPadWebSnapshot(readonly, setids, batchmode) {}
108
109 void SetScripts(const std::string &src) { fScripts = src; }
110 const std::string &GetScripts() const { return fScripts; }
111
113 bool GetHighlightConnect() const { return fHighlightConnect; }
114
115 void SetFixedSize(bool on = true) { fFixedSize = on; }
116 bool IsFixedSize() const { return fFixedSize; }
117
118 ClassDefOverride(TCanvasWebSnapshot, 4) // Canvas painting snapshot, used for JSROOT
119};
120
121
122#endif
bool Bool_t
Definition RtypesCore.h:63
int Int_t
Definition RtypesCore.h:45
constexpr Bool_t kFALSE
Definition RtypesCore.h:101
#define ClassDefOverride(name, id)
Definition Rtypes.h:341
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize id
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void on
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t src
std::string fScripts
custom scripts to load
bool fHighlightConnect
does HighlightConnect has connection
TCanvasWebSnapshot(bool readonly=true, bool setids=true, bool batchmode=false)
const std::string & GetScripts() const
void SetScripts(const std::string &src)
bool IsFixedSize() const
void SetFixedSize(bool on=true)
bool GetHighlightConnect() const
bool fFixedSize
if canvas draw size is fixed
void SetHighlightConnect(bool on=true)
Mother of all ROOT objects.
Definition TObject.h:41
TPadWebSnapshot & NewSubPad()
Create new entry for subpad.
TWebSnapshot & NewPrimitive(TObject *obj=nullptr, const std::string &opt="", const std::string &suffix="")
Create new entry in list of primitives.
std::vector< std::unique_ptr< TWebSnapshot > > fPrimitives
list of all primitives, drawn in the pad
TWebSnapshot & NewSpecials()
Create new entry in list of primitives in the front.
bool fHasExecs
if true, more interactive events will be delivered from client
bool fActive
true when pad is active
void SetHasExecs(bool on=true)
void SetWithoutPrimitives(bool on=true)
TPadWebSnapshot(bool readonly=true, bool setids=true, bool batchmode=false)
bool fSetObjectIds
! set objects ids
void SetActive(bool on=true)
bool IsSetObjectIds() const
bool fReadOnly
when canvas or pad are in readonly mode
bool IsBatchMode() const
bool IsReadOnly() const
bool fBatchMode
! if object created for image generation
bool fWithoutPrimitives
true when primitives not send while there are no modifications
Paint state of object to transfer to JavaScript side.
Bool_t fOwner
! if objected owned
void SetKind(Int_t kind)
@ kStyle
gStyle object
@ kObject
object itself
@ kSVG
list of SVG primitives
@ kSubPad
subpad
@ kColors
list of ROOT colors + palette
std::string fOption
object draw option
const char * GetObjectID() const
Int_t GetKind() const
Int_t fKind
kind of snapshots
~TWebSnapshot() override
destructor
void SetOption(const std::string &opt)
TObject * fSnapshot
snapshot data
void SetObjectID(const std::string &id)
void SetSnapshot(Int_t kind, TObject *snapshot, Bool_t owner=kFALSE)
SetUse pointer to assign object id - TString::Hash.
std::string fObjectID
object identifier
TObject * GetSnapshot() const
void SetObjectIDAsPtr(void *ptr, const std::string &suffix="")
Use pointer to assign object id - TString::Hash.