98   auto separ = str.find(
"x");
 
   99   if ((
separ == std::string::npos) || (
separ == 0) || (
separ == str.length()-1)) 
return false;
 
 
  122   auto separ = str.find(
",");
 
  123   if ((
separ == std::string::npos) || (
separ == 0) || (
separ == str.length()-1)) 
return false;
 
  128      x = std::stoi(str.substr(0,
separ));
 
  129      y = std::stoi(str.substr(
separ+1));
 
  134   if ((
x < 0) || (
y < 0))
 
 
  161   std::string kind = 
_kind;
 
  163   auto pos = kind.find(
"?");
 
  167   } 
else if (pos != std::string::npos) {
 
  172   pos = kind.find(
"size:");
 
  173   if (pos != std::string::npos) {
 
  174      auto epos = kind.find_first_of(
" ;", pos+5);
 
  175      if (
epos == std::string::npos) 
epos = kind.length();
 
  177      kind.erase(pos, 
epos-pos);
 
  180   pos = kind.find(
"pos:");
 
  181   if (pos != std::string::npos) {
 
  182      auto epos = kind.find_first_of(
" ;", pos+4);
 
  183      if (
epos == std::string::npos) 
epos = kind.length();
 
  185      kind.erase(pos, 
epos-pos);
 
  188   pos = kind.rfind(
"headless");
 
  189   if ((pos != std::string::npos) && (pos == kind.length() - 8)) {
 
  192      if ((pos > 0) && (kind[pos-1] == 
';')) kind.resize(pos-1);
 
  196   if ((kind.find(
"qt5:") == 0) || (kind.find(
"qt6:") == 0)) {
 
  202   while ((kind.length() > 0) && (kind[kind.length()-1] == 
' '))
 
  203      kind.resize(kind.length()-1);
 
  209      kind = 
gROOT->GetWebDisplay().Data();
 
  213   else if (kind == 
"native")
 
  215   else if (kind.empty() || (kind == 
"on"))
 
  217   else if ((kind == 
"dflt") || (kind == 
"default") || (kind == 
"browser"))
 
  219   else if (kind == 
"firefox")
 
  221   else if ((kind == 
"chrome") || (kind == 
"chromium"))
 
  224   else if ((kind == 
"edge") || (kind == 
"msedge"))
 
  227   else if ((kind == 
"cef") || (kind == 
"cef3"))
 
  229   else if ((kind == 
"qt") || (kind == 
"qt5"))
 
  231   else if (kind == 
"qt6")
 
  233   else if ((kind == 
"embed") || (kind == 
"embedded"))
 
  235   else if (kind == 
"server")
 
  237   else if (kind == 
"off")
 
 
  252      case kEdge: 
return "edge";
 
  255      case kCEF: 
return "cef";
 
  256      case kQt5: 
return "qt5";
 
  257      case kQt6: 
return "qt6";
 
  258      case kLocal: 
return "local";
 
  262      case kOff: 
return "off";
 
  263      case kOn: 
return "on";
 
  265          auto pos = 
fExec.find(
" ");
 
  266          return (pos == std::string::npos) ? 
fExec : 
fExec.substr(0,pos);
 
 
  289   if (opt.empty()) 
return;
 
 
  307   if (
rpos == std::string::npos) 
rpos = 
url.length();
 
  309   if (
url.find(
"?") != std::string::npos)
 
 
  338   if ((
fExec == 
"safari") || (
fExec == 
"Safari"))
 
  339      return "open -a Safari";
 
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t height
 
A log configuration for a channel, e.g.
 
Holds different arguments for starting browser with RWebDisplayHandle::Display() method.
 
std::string GetBrowserName() const
Returns configured browser name.
 
virtual ~RWebDisplayArgs()
Destructor.
 
EBrowserKind GetBrowserKind() const
returns configured browser kind, see EBrowserKind for supported values
 
RWebDisplayArgs & SetUrlOpt(const std::string &opt)
set window url options
 
bool SetPosAsStr(const std::string &str)
Set position of web browser window as string like "100,100".
 
std::string fExec
! string to run browser, used with kCustom type
 
RWebDisplayArgs & SetSize(int w, int h)
set preferable web window width and height
 
std::string fUrlOpt
! extra URL options, which are append to window URL
 
const std::string & GetUrl() const
returns window url
 
void SetCustomExec(const std::string &exec)
set custom executable to start web browser
 
void SetMasterWindow(std::shared_ptr< RWebWindow > master, unsigned connid=0, int channel=-1)
Assign window, connection and channel id where other window will be embed.
 
void AppendUrlOpt(const std::string &opt)
append extra url options, add "&" as separator if required
 
std::string GetFullUrl() const
returns window url with append options
 
RWebDisplayArgs & SetBrowserKind(const std::string &kind)
Set browser kind as string argument.
 
std::string GetCustomExec() const
returns custom executable to start web browser
 
unsigned fMasterConnection
! used master connection
 
static std::string GetQt5EmbedQualifier(const void *qparent, const std::string &urlopt="", unsigned qtversion=0x50000)
Returns string which can be used as argument in RWebWindow::Show() method to display web window in pr...
 
RWebDisplayArgs & SetPos(int x=-1, int y=-1)
set preferable web window x and y position, negative is default
 
int fMasterChannel
! used master channel
 
void SetDriverData(void *data)
[internal] set web-driver data, used to start window
 
std::shared_ptr< RWebWindow > fMaster
! master window
 
const std::string & GetUrlOpt() const
returns window url options
 
bool SetSizeAsStr(const std::string &str)
Set size of web browser window as string like "800x600".
 
@ kOn
web display enable, first try use embed displays like Qt or CEF, then native browsers and at the end ...
 
@ kDefault
default system web browser, can not be used in batch mode
 
@ kFirefox
Mozilla Firefox browser.
 
@ kNative
either Chrome or Firefox - both support major functionality
 
@ kLocal
either CEF or Qt5 - both runs on local display without real http server
 
@ kServer
indicates that ROOT runs as server and just printouts window URL, browser should be started by the us...
 
@ kOff
disable web display, do not start any browser
 
@ kEmbedded
window will be embedded into other, no extra browser need to be started
 
@ kCEF
Chromium Embedded Framework - local display with CEF libs.
 
@ kQt5
Qt5 QWebEngine libraries - Chromium code packed in qt5.
 
@ kQt6
Qt6 QWebEngine libraries - Chromium code packed in qt6.
 
@ kCustom
custom web browser, execution string should be provided
 
@ kChrome
Google Chrome browser.
 
@ kEdge
Microsoft Edge browser (Windows only)
 
void SetHeadless(bool on=true)
set headless mode
 
RWebDisplayArgs()
Default constructor.
 
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
 
ROOT::Experimental::RLogChannel & WebGUILog()
Log channel for WebGUI diagnostics.