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 kFont = 6 ///< custom web font
41 };
42
43 ~TWebSnapshot() override;
44
45 void SetObjectIDAsPtr(void *ptr, const std::string &suffix = "");
46 void SetObjectID(const std::string &id) { fObjectID = id; }
47 const char* GetObjectID() const { return fObjectID.c_str(); }
48
49 void SetOption(const std::string &opt) { fOption = opt; }
50
51 void SetSnapshot(Int_t kind, TObject *snapshot, Bool_t owner = kFALSE);
52 Int_t GetKind() const { return fKind; }
53 TObject *GetSnapshot() const { return fSnapshot; }
54
55 ClassDefOverride(TWebSnapshot,1) // Object painting snapshot, used for JSROOT
56};
57
58// =================================================================================
59
61protected:
62 bool fActive{false}; ///< true when pad is active
63 bool fReadOnly{true}; ///< when canvas or pad are in readonly mode
64 bool fSetObjectIds{true}; ///<! set objects ids
65 bool fBatchMode{false}; ///<! if object created for image generation
66 bool fWithoutPrimitives{false}; ///< true when primitives not send while there are no modifications
67 bool fHasExecs{false}; ///< if true, more interactive events will be delivered from client
68 std::vector<std::unique_ptr<TWebSnapshot>> fPrimitives; ///< list of all primitives, drawn in the pad
69
70public:
71 TPadWebSnapshot(bool readonly = true, bool setids = true, bool batchmode = false)
72 {
74 fReadOnly = readonly;
75 fSetObjectIds = setids;
76 fBatchMode = batchmode;
77 }
78
79 void SetActive(bool on = true) { fActive = on; }
80
82
83 void SetHasExecs(bool on = true) { fHasExecs = on; }
84
85 bool IsReadOnly() const { return fReadOnly; }
86
87 bool IsSetObjectIds() const { return fSetObjectIds; }
88
89 bool IsBatchMode() const { return fBatchMode; }
90
91 TWebSnapshot &NewPrimitive(TObject *obj = nullptr, const std::string &opt = "", const std::string &suffix = "");
92
94
96
97 ClassDefOverride(TPadWebSnapshot, 3) // Pad painting snapshot, used for JSROOT
98};
99
100// =================================================================================
101
103protected:
104 std::string fScripts; ///< custom scripts to load
105 bool fHighlightConnect{false}; ///< does HighlightConnect has connection
106 bool fFixedSize{false}; ///< if canvas draw size is fixed
107public:
108 TCanvasWebSnapshot(bool readonly = true, bool setids = true, bool batchmode = false) : TPadWebSnapshot(readonly, setids, batchmode) {}
109
110 void SetScripts(const std::string &src) { fScripts = src; }
111 const std::string &GetScripts() const { return fScripts; }
112
114 bool GetHighlightConnect() const { return fHighlightConnect; }
115
116 void SetFixedSize(bool on = true) { fFixedSize = on; }
117 bool IsFixedSize() const { return fFixedSize; }
118
119 ClassDefOverride(TCanvasWebSnapshot, 4) // Canvas painting snapshot, used for JSROOT
120};
121
122
123#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
@ kFont
custom web font
@ 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.