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);
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 fWithoutPrimitives{false}; ///< true when primitives not send while there are no modifications
65 bool fHasExecs{false}; ///< if true, more interactive evente will be delivered from client
66 std::vector<std::unique_ptr<TWebSnapshot>> fPrimitives; ///< list of all primitives, drawn in the pad
67
68public:
69 TPadWebSnapshot(bool readonly = true, bool setids = true)
70 {
72 fReadOnly = readonly;
73 fSetObjectIds = setids;
74 }
75
76 void SetActive(bool on = true) { fActive = on; }
77
79
80 void SetHasExecs(bool on = true) { fHasExecs = on; }
81
82 bool IsReadOnly() const { return fReadOnly; }
83
84 bool IsSetObjectIds() const { return fSetObjectIds; }
85
86 TWebSnapshot &NewPrimitive(TObject *obj = nullptr, const std::string &opt = "");
87
89
91
92 ClassDefOverride(TPadWebSnapshot, 3) // Pad painting snapshot, used for JSROOT
93};
94
95// =================================================================================
96
98protected:
99 std::string fScripts; ///< custom scripts to load
100 bool fHighlightConnect{false}; ///< does HighlightConnect has connection
101public:
102 TCanvasWebSnapshot(bool readonly = true, bool setids = true) : TPadWebSnapshot(readonly, setids) {}
103
104 void SetScripts(const std::string &src) { fScripts = src; }
105 const std::string &GetScripts() const { return fScripts; }
106
108 bool GetHighlightConnect() const { return fHighlightConnect; }
109
110 ClassDefOverride(TCanvasWebSnapshot, 3) // Canvas painting snapshot, used for JSROOT
111};
112
113
114#endif
bool Bool_t
Definition RtypesCore.h:63
int Int_t
Definition RtypesCore.h:45
const 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)
const std::string & GetScripts() const
void SetScripts(const std::string &src)
bool GetHighlightConnect() const
void SetHighlightConnect(bool on=true)
Mother of all ROOT objects.
Definition TObject.h:41
TPadWebSnapshot & NewSubPad()
Create new entry for subpad.
std::vector< std::unique_ptr< TWebSnapshot > > fPrimitives
list of all primitives, drawn in the pad
TPadWebSnapshot(bool readonly=true, bool setids=true)
TWebSnapshot & NewSpecials()
Create new entry in list of primitives in the front.
bool fHasExecs
if true, more interactive evente will be delivered from client
bool fActive
true when pad is active
void SetHasExecs(bool on=true)
void SetWithoutPrimitives(bool on=true)
bool fSetObjectIds
! set objects ids
void SetActive(bool on=true)
TWebSnapshot & NewPrimitive(TObject *obj=nullptr, const std::string &opt="")
Create new entry in list of primitives.
bool IsSetObjectIds() const
bool fReadOnly
when canvas or pad are in readonly mode
bool IsReadOnly() const
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 SetObjectIDAsPtr(void *ptr)
Use pointer to assign object id - TString::Hash.
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