22#include "RConfigure.h" 
   47#include "TApplicationCommandLineOptionsHelp.h" 
   90      gROOT->EndOfProcessCleanups();
 
 
   98   fArgc(0), fArgv(nullptr), fAppImp(nullptr), fIsRunning(
kFALSE), fReturnFromRun(
kFALSE),
 
  100   fFiles(nullptr), fIdleTimer(nullptr), fSigHandler(nullptr), fExitOnException(kDontExit),
 
 
  122   fArgc(0), fArgv(nullptr), fAppImp(nullptr), fIsRunning(
kFALSE), fReturnFromRun(
kFALSE),
 
  124   fFiles(nullptr), fIdleTimer(nullptr), fSigHandler(nullptr), fExitOnException(kDontExit),
 
  148      Error(
"TApplication", 
"only one instance of TApplication allowed");
 
  154      ::Fatal(
"TApplication::TApplication", 
"ROOT system not initialized");
 
  157      ::Fatal(
"TApplication::TApplication", 
"gSystem not initialized");
 
  173   for (
int i = 0; i < 
fArgc; i++)
 
  199   gROOT->SetLineHasBeenProcessed();
 
  203   gROOT->SetApplication(
this);
 
 
  212   for (
int i = 0; i < 
fArgc; i++)
 
 
  263   #if !defined(R__WIN32) 
  273            if ((
h = 
gROOT->GetPluginManager()->FindHandler(
"TVirtualX", 
"x11ttf")))
 
  274               if (
h->LoadPlugin() == -1)
 
  275                  Info(
"InitializeGraphics", 
"no TTF support");
 
 
  347   static char null[1] = { 
"" };
 
  359   for (i = 1; i < *
argc; i++) {
 
  368                 gROOT->GetGitDate());
 
  371                gROOT->GetGitBranch(),
 
  372                gROOT->GetGitCommit());
 
  379         fprintf(
stderr, 
"ROOT splash screen is not visible with root.exe, use root instead.\n");
 
  409         const char *opt = 
argv[i] + 5;
 
  411         gROOT->SetWebDisplay((*opt == 
'=') ? opt + 1 : 
"");
 
  423            Warning(
"GetOptions", 
"-e must be followed by an expression.");
 
  433                  if (!
dynamic_cast<TNamed*
>(
f)) {
 
  434                     Error(
"GetOptions()", 
"Inconsistent file entry (not a TObjString)!");
 
  449                  Warning(
"GetOptions", 
"-- is used with several macros. " 
  450                                        "The arguments will be passed to the last one.");
 
  462            for (; i < *
argc; i++) {
 
  467            str.EndsWith(
",") ? str[str.Length() - 1] = 
')' : str += 
')';
 
  469            Warning(
"GetOptions", 
"no macro to pass arguments to was provided. " 
  470                                  "Everything after the -- will be ignored.");
 
  471            for (; i < *
argc; i++)
 
  474      } 
else if (
argv[i][0] != 
'-' && 
argv[i][0] != 
'+') {
 
  478         if (arg) *arg = 
'\0';
 
  491            path = 
udir.GetUrl();
 
  505                  Warning(
"GetOptions", 
"only one directory argument can be specified (%s)", 
expandedDir.Data());
 
  507            } 
else if (
size > 0) {
 
  545                     Warning(
"GetOptions", 
"macro %s not found", 
fname.Data());
 
  559   for (i = 0; i < *
argc; i++) {
 
 
  578   Emit(
"HandleIdleTimer()");
 
 
  634#elif defined(R__WIN32) 
  649      Warning(
"OpenInBrowser", 
"The $DISPLAY is not set! Please open (e.g. Ctrl-click) %s\n", 
url.Data());
 
  653   Info(
"OpenInBrowser", 
"A new tab should have opened in your browser.");
 
 
  695      url.Append(
"struct");
 
  697      url.Append(
"namespace");
 
  754   text.ReplaceAll(
"\n",
"%0A");
 
  755   text.ReplaceAll(
"#",
"%23");
 
  756   text.ReplaceAll(
";",
"%3B");
 
  757   text.ReplaceAll(
"\"",
"%22");
 
  758   text.ReplaceAll(
"`",
"%60");
 
  759   text.ReplaceAll(
"+",
"%2B");
 
  760   text.ReplaceAll(
"/",
"%2F");
 
  802   returnType.ReplaceAll(
"istream", 
"std::istream");
 
  803   returnType.ReplaceAll(
"ostream", 
"std::ostream");
 
  805   returnType.ReplaceAll(
"vector", 
"std::vector");
 
  965   std::vector<TString> lines;
 
  966   lines.emplace_back(
"```");
 
  968                                      gROOT->GetVersion()));
 
  971      static const char *
months[] = {
"January",
"February",
"March",
"April",
"May",
 
  972                                     "June",
"July",
"August",
"September",
"October",
 
  973                                     "November",
"December"};
 
  980                                         gROOT->GetGitBranch(),
 
  986                                         gROOT->GetGitBranch(),
 
  987                                         gROOT->GetGitCommit()));
 
  991   lines.emplace_back(
"Binary directory: "+ 
gROOT->GetBinDir());
 
  992   lines.emplace_back(
"```");
 
  994   for (
auto& 
line : lines) {
 
 
 1011   if (
type == 
"bug") {
 
 1015_Please read [tips for efficient and successful posting](https://root-forum.cern.ch/t/tips-for-efficient-and-successful-posting/28292) and [posting code](https://root-forum.cern.ch/t/posting-code-read-this-first/28293)_ 
 1019A clear and concise description of what the wrong behavior is. 
 1021### Expected behavior 
 1023A clear and concise description of what you expected to happen. 
 
 1028Steps to reproduce the behavior: 
 10291. Your code that triggers the issue: at least a part; ideally something we can run ourselves. 
 10302. Don't forget to attach the required input files! 
 10313. How to run your code and / or build it, e.g. `root myMacro.C`, ... 
 1040Please specify also how you obtained ROOT, such as `dnf install` / binary download / you built it yourself. 
 1043### Additional context 
 1045Add any other context about the problem here. 
 1051      Warning(
"OpenForumTopic", 
"cannot find \"%s\" as type for a Forum topic\n" 
 
 1052                                 "Available types are 'bug'.", 
type.Data());
 
 1065   if (
type == 
"bug") {
 
 1067         "\"https://github.com/root-project/root/issues/new?labels=bug&template=bug_report.yml&root-version=" +
 
 1069   } 
else if (
type == 
"improvement") {
 
 1070      OpenInBrowser(
"\"https://github.com/root-project/root/issues/" 
 1071                    "new?labels=improvement&template=improvement_report.yml&root-version=" +
 
 1073   } 
else if (
type == 
"feature") {
 
 1075         "\"https://github.com/root-project/root/issues/new?labels=new+feature&template=feature_request.yml\"");
 
 1078              "Cannot find GitHub issue type \"%s\".\n" 
 1079              "Available types are 'bug', 'feature' and 'improvement'.",
 
 1115      Error(
"OpenReferenceGuideFor", 
"Unknown entity \"%s\" - global variables / functions not supported yet!",
 
 1125      Warning(
"OpenReferenceGuideFor", 
"\"%s\" does not exist in ROOT!", 
scopeName.Data());
 
 
 1182   Warning(
"OpenReferenceGuideFor", 
"cannot find \"%s\" as member of %s or its base classes! Check %s\n", 
memberName.Data(),
 
 
 1197      Error(
"Forum", 
"Unknown command! Use 'bug' after '.forum '");
 
 1218      Error(
"GitHub", 
"Unknown command! Use 'bug', 'feature' or 'improvement' after '.gh '");
 
 1242      Printf(
"\n ROOT special commands.");
 
 1243      Printf(
" ==============================================================================");
 
 1244      Printf(
"   .L <filename>[flags]: load the given file with optional flags like\n" 
 1245             "                         + to compile or ++ to force recompile.\n" 
 1246             "                         Type .? TSystem::CompileMacro for a list of all flags.\n" 
 1247             "                         <filename> can also be a shared library; skip flags.");
 
 1248      Printf(
"   .(x|X) <filename>[flags](args) :\n" 
 1249             "                         same as .L <filename>[flags] and runs then a function\n" 
 1250             "                         with signature: ret_type filename(args).");
 
 1251      Printf(
"   .credits            : show credits");
 
 1252      Printf(
"   .demo               : launch GUI demo");
 
 1253      Printf(
"   .forum bug          : ask for help with a bug or crash at the ROOT forum.");
 
 1254      Printf(
"   .gh [bug|feature|improvement]\n" 
 1255             "                       : submit a bug report, feature or improvement suggestion");
 
 1256      Printf(
"   .help Class::Member : open reference guide for that class member (or .?).\n" 
 1257             "                         Specifying '::Member' is optional.");
 
 1258      Printf(
"   .help edit          : show line editing shortcuts (or .?)");
 
 1259      Printf(
"   .license            : show license");
 
 1260      Printf(
"   .ls                 : list contents of current TDirectory");
 
 1261      Printf(
"   .pwd                : show current TDirectory, pad and style");
 
 1262      Printf(
"   .quit (or .exit)    : quit ROOT (long form of .q)");
 
 1263      Printf(
"   .R [user@]host[:dir] [-l user] [-d dbg] [script] :\n" 
 1264             "                         launch process in a remote host");
 
 1265      Printf(
"   .qqq                : quit ROOT - mandatory");
 
 1266      Printf(
"   .qqqqq              : exit process immediately");
 
 1267      Printf(
"   .qqqqqqq            : abort process");
 
 1268      Printf(
"   .which [file]       : show path of macro file");
 
 1269      Printf(
"   .![OS_command]      : execute OS-specific shell command");
 
 1270      Printf(
"   .!root -?           : print ROOT usage (CLI options)");
 
 1276         Error(
"Help", 
"Unknown command!");
 
 1289         Printf(
"\n ROOT terminal keyboard shortcuts (GNU-readline style).");
 
 1291         #define FOOTNOTE " *" 
 1292         Printf(
"* Some of these commands might be intercepted by macOS predefined system shortcuts.");
 
 1297         Printf(
" ==============================================================================");
 
 1298         Printf(
"   Arrow_Left       : move cursor left [Ctrl+B]");
 
 1299         Printf(
"   Arrow_Right      : move cursor right [Ctrl+F] [Ctrl+G]");
 
 1301         Printf(
"   Fn+Arrow_Left    : move cursor to beginning of line [Ctrl+A]");
 
 1303         Printf(
"   Home             : move cursor to beginning of line [Ctrl+A]");
 
 1306         Printf(
"   Fn+Arrow_Right   : move cursor to end of line [Ctrl+E]");
 
 1308         Printf(
"   End              : move cursor to end of line [Ctrl+E]");
 
 1310         Printf(
"   Ctrl+Arrow_Left  : jump to previous word [Esc,B] [Alt,B]" FOOTNOTE);
 
 1311         Printf(
"   Ctrl+Arrow_Right : jump to next word [Esc,F] [Alt,F]" FOOTNOTE);
 
 1313         Printf(
"   Backspace        : delete previous character [Ctrl+H]");
 
 1314         Printf(
"   Del              : delete next character [Ctrl+D]");
 
 1315         Printf(
"   Esc,Backspace    : delete previous word [Ctrl+W] [Esc,Ctrl+H] [Alt+Backspace] [Esc,Del] [Esc,Ctrl+Del]" FOOTNOTE);
 
 1317         Printf(
"   Ctrl+U           : cut all characters between cursor and start of line");
 
 1318         Printf(
"   Ctrl+K           : cut all characters between cursor and end of line");
 
 1320         Printf(
"   Ctrl+T           : transpose characters");
 
 1321         Printf(
"   Esc,C            : character to upper and jump to next word");
 
 1322         Printf(
"   Esc,L            : word to lower case and jump to its end");
 
 1323         Printf(
"   Esc,U            : word to upper case and jump to its end");
 
 
 1324         Printf(
"   Ctrl+Shift+C     : copy clipboard content");
 
 1325         Printf(
"   Ctrl+Shift+V     : paste clipboard content [Ctrl+Y] [Alt+Y]");
 
 1327         Printf(
"   Fn+Enter         : toggle overwrite mode");
 
 1329         Printf(
"   Ins              : toggle overwrite mode");
 
 1332         Printf(
"   Ctrl+_           : undo last keypress action");
 
 1333         Printf(
"   Tab              : autocomplete command or print suggestions [Ctrl+I] [Esc,Tab]");
 
 1334         Printf(
"   Enter            : execute command [Ctrl+J] [Ctrl+M]");
 
 1335         Printf(
"   Ctrl+L           : clear prompt screen");
 
 1336         Printf(
"   Ctrl+D           : quit ROOT (if empty line)");
 
 1337         Printf(
"   Ctrl+C           : send kSigInt interrupt signal");
 
 1338         Printf(
"   Ctrl+Z           : send kSigStop pause job signal");
 
 1340         Printf(
"   Arrow_Down       : navigate downwards in command history [Ctrl+N]");
 
 1341         Printf(
"   Arrow_Up         : navigate upwards in command history [Ctrl+P]");
 
 1342         Printf(
"   Ctrl+R ; Ctrl+S  : search command in your history by typing a string.\n" 
 1343                "                      Use Backspace if you mistyped (but not arrows).\n" 
 1344                "                      Press Ctrl+R (Ctrl+S) repeateadly to navigate matches in reverse (forward) order");
 
 1345         Printf(
"   Arrow_Right      : after Ctrl+R (Ctrl+S), select current match of the history search\n" 
 1346                "                      [Ctrl+O] [Enter] [Ctrl+J] [Ctrl+M] [Arrow_Left] [Esc,Esc].\n" 
 1347                "                      Use Ctrl+F or Ctrl+G to cancel search and revert original line");
 
 1361   if (
gROOT->IsBatch())
 
 1364   if (
auto h = 
gROOT->GetPluginManager()->FindHandler(
"TVirtualPad"))
 
 1365      if (
h->LoadPlugin() == -1)
 
 1375   title   = 
title1 + 
"Win32gdk";
 
 1376#elif defined(R__HAS_COCOA) 
 1379   title   = 
title1 + 
"Quartz";
 
 
 1395   if (
auto h = 
gROOT->GetPluginManager()->FindHandler(
"TVirtualX", 
guiBackend)) {
 
 1396      if (
h->LoadPlugin() == -1) {
 
 
 1409   if (
auto h = 
gROOT->GetPluginManager()->FindHandler(
"TGuiFactory", 
guiFactory)) {
 
 1410      if (
h->LoadPlugin() == -1) {
 
 1465      } 
else if (
tkn == 
"-d") {
 
 
 1467      } 
else if (
tkn == 
"-close") {
 
 1469      } 
else if (
tkn.BeginsWith(
"-")) {
 
 1470         ::Warning(
"TApplication::ParseRemoteLine",
"unknown option: %s", 
tkn.Data());
 
 1513   if (!
line) 
return 0;
 
 1517      Info(
"ProcessRemote", 
"remote session help:");
 
 1518      Printf(
".R [user@]host[:dir] [-l user] [-d dbg] [[<]script] | [host] -close");
 
 1519      Printf(
"Create a ROOT session on the specified remote host.");
 
 1520      Printf(
"The variable \"dir\" is the remote directory to be used as working dir.");
 
 1521      Printf(
"The username can be specified in two ways, \"-l\" having the priority");
 
 1522      Printf(
"(as in ssh). A \"dbg\" value > 0 gives increasing verbosity.");
 
 1523      Printf(
"The last argument \"script\" allows to specify an alternative script to");
 
 1524      Printf(
"be executed remotely to startup the session, \"roots\" being");
 
 1525      Printf(
"the default. If the script is preceded by a \"<\" the script will be");
 
 1526      Printf(
"sourced, after which \"roots\" is executed. The sourced script can be ");
 
 1527      Printf(
"used to change the PATH and other variables, allowing an alternative");
 
 1528      Printf(
"\"roots\" script to be found.");
 
 1529      Printf(
"To close down a session do \".R host -close\".");
 
 1530      Printf(
"To switch between sessions do \".R host\", to switch to the local");
 
 1531      Printf(
"session do \".R\".");
 
 1532      Printf(
"To list all open sessions do \"gApplication->GetApplications()->Print()\".");
 
 
 1549   } 
else if (
rc == 1) {
 
 1598      while (*(
line+
n) == 
' ')
 
 1612      Info(
"ProcessLine", 
"Bye... (try '.qqqqqqq' if still running)");
 
 1635      if (
gROOT->IsBatch()) {
 
 1636         Error(
"ProcessLine", 
"Cannot show demos in batch mode!");
 
 1665      const char *opt = 
nullptr;
 
 1690         Warning(
"ProcessLine", 
"argument(s) \"%s\" ignored with .%c", arguments.
Data(), 
line[1]);
 
 
 1720      Printf(
"*** .reset not allowed, please use gROOT->Reset() ***");
 
 1726      gROOT->GetListOfClasses()->Delete();
 
 1753   if (!file || !*file) 
return 0;
 
 1762      ::Error(
"TApplication::ExecuteFile", 
"macro %s not found in path %s", 
fname.Data(),
 
 1771   if (!
macro.good()) {
 
 1772      ::Error(
"TApplication::ExecuteFile", 
"%s no such file", 
exnam);
 
 1791      if (
macro.eof()) 
break;
 
 1801      while (s && (*s == 
' ' || *s == 
'\t')) s++;   
 
 1808         if (
strstr(
cs, 
"#ifndef__CINT__") ||
 
 1809             strstr(
cs, 
"#if!defined(__CINT__)"))
 
 1823      if (!*s || *s == 
'#' || 
ifndefc || !
strncmp(s, 
"//", 2)) 
continue;
 
 1825      if (!comment && (!
strncmp(s, 
".X", 2) || !
strncmp(s, 
".x", 2))) {
 
 1831      if (!
strncmp(s, 
"/*", 2)) comment = 1;
 
 1840            while (s && (*s == 
' ' || *s == 
'\t')) s++; 
 
 1842            if (!
strncmp(s, 
"//", 2)) 
continue;
 
 
 1850      if (!comment) 
break;
 
 
 1949   Emit(
"Terminate(Int_t)", status);
 
 
 1963   Emit(
"LineProcessed(const char*)", 
line);
 
 1971   Emit(
"KeyPressed(Int_t)", key);
 
 1979   Emit(
"ReturnPressed(char*)", 
text);
 
 
 2008         Printf(
"<TApplication::CreateApplication>: " 
 2009                "created default TApplication");
 
 2010      delete [] 
a; 
delete [] 
b;
 
 2046      ::Error(
"TApplication::Open", 
"list of applications undefined - protocol error");
 
 
 2058   if ((
h = 
gROOT->GetPluginManager()->FindHandler(
"TApplication",
"remote"))) {
 
 2059      if (
h->LoadPlugin() == 0) {
 
 2062         ::Error(
"TApplication::Open", 
"failed to load plugin for TApplicationRemote");
 
 2065      ::Error(
"TApplication::Open", 
"failed to find plugin for TApplicationRemote");
 
 2071      gROOT->GetListOfBrowsables()->Add(
ap, 
ap->ApplicationName());
 
 
 2080              "TApplicationRemote for %s could not be instantiated", 
url);
 
 
 2095      gROOT->GetListOfBrowsables()->RecursiveRemove(
app);
 
 
 2100      gROOT->RefreshBrowsers();
 
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
 
static void CallEndOfProcessCleanups()
 
TApplication * gApplication
 
R__EXTERN TApplication * gApplication
 
R__EXTERN TClassTable * gClassTable
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
void Error(const char *location, const char *msgfmt,...)
Use this function in case an error occurred.
 
R__EXTERN ExceptionContext_t * gException
 
R__EXTERN void Throw(int code)
If an exception context has been set (using the TRY and RETRY macros) jump back to where it was set.
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char filename
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t index
 
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 mode
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
 
Option_t Option_t TPoint TPoint const char text
 
R__EXTERN TGuiFactory * gBatchGuiFactory
 
R__EXTERN TGuiFactory * gGuiFactory
 
R__EXTERN TVirtualMutex * gInterpreterMutex
 
R__EXTERN TVirtualMutex * gROOTMutex
 
char * Compress(const char *str)
Remove all blanks from the string str.
 
char * Strip(const char *str, char c=' ')
Strip leading and trailing c (blanks by default) from a string.
 
void Printf(const char *fmt,...)
Formats a string in a circular formatting buffer and prints the string.
 
char * StrDup(const char *str)
Duplicate the string str.
 
R__EXTERN TStyle * gStyle
 
R__EXTERN TSystem * gSystem
 
#define R__LOCKGUARD(mutex)
 
R__EXTERN TVirtualX * gGXBatch
 
This class creates the ROOT Application Environment that interfaces to the windowing system eventloop...
 
EExitOnException ExitOnException(EExitOnException opt=kExit)
Set the exit on exception option.
 
virtual void KeyPressed(Int_t key)
Emit signal when console keyboard key was pressed.
 
virtual Longptr_t ProcessLine(const char *line, Bool_t sync=kFALSE, Int_t *error=nullptr)
Process a single command line, either a C++ statement or an interpreter command starting with a "....
 
static TList * fgApplications
 
static void Close(TApplication *app)
Static function used to close a remote application.
 
virtual void SetEchoMode(Bool_t mode)
Set console echo mode:
 
virtual void Help(const char *line)
The function lists useful commands (".help") or opens the online reference guide, generated with Doxy...
 
virtual void LineProcessed(const char *line)
Emit signal when a line has been processed.
 
void ClearInputFiles()
Clear list containing macro files passed as program arguments.
 
TApplicationImp * fAppImp
 
static Longptr_t ExecuteFile(const char *file, Int_t *error=nullptr, Bool_t keep=kFALSE)
Execute a file containing a C++ macro (static method).
 
void InitializeGraphics(Bool_t only_web=kFALSE)
Initialize the graphics environment.
 
virtual void LoadGraphicsLibs()
Load shared libs necessary for graphics.
 
virtual void StopIdleing()
Called when system stops idleing.
 
virtual void StartIdleing()
Called when system starts idleing.
 
virtual void Run(Bool_t retrn=kFALSE)
Main application eventloop. Calls system dependent eventloop via gSystem.
 
virtual ~TApplication()
TApplication dtor.
 
void OpenReferenceGuideFor(const TString &strippedClass)
It opens the online reference guide, generated with Doxygen, for the chosen scope (class/namespace/st...
 
virtual void HandleException(Int_t sig)
Handle exceptions (kSigBus, kSigSegmentationViolation, kSigIllegalInstruction and kSigFloatingExcepti...
 
virtual void MakeBatch()
Switch to batch mode.
 
void OpenGitHubIssue(const TString &type)
It opens a GitHub issue in a web browser with prefilled ROOT version.
 
static Bool_t fgGraphNeeded
 
virtual void Terminate(Int_t status=0)
Terminate the application by call TSystem::Exit() unless application has been told to return from Run...
 
void OpenInBrowser(const TString &url)
The function generates and executes a command that loads the Doxygen URL in a browser.
 
virtual void Forum(const char *line)
The function (".forum <type>") submits a new post on the ROOT forum via web browser.
 
void SetReturnFromRun(Bool_t ret)
 
virtual Int_t TabCompletionHook(char *buf, int *pLoc, std::ostream &out)
What to do when tab is pressed.
 
EExitOnException fExitOnException
 
const char * GetIdleCommand() const
 
TApplication()
Default ctor. Can be used by classes deriving from TApplication.
 
virtual Longptr_t ProcessFile(const char *file, Int_t *error=nullptr, Bool_t keep=kFALSE)
Process a file containing a C++ macro.
 
void OpenForumTopic(const TString &type)
It opens a Forum topic in a web browser with prefilled ROOT version.
 
virtual void ReturnPressed(char *text)
Emit signal when return key was pressed.
 
static Bool_t fgGraphInit
 
virtual void RemoveIdleTimer()
Remove idle timer. Normally called via TROOT::Idle(0).
 
virtual void SetIdleTimer(UInt_t idleTimeInSec, const char *command)
Set the command to be executed after the system has been idle for idleTimeInSec seconds.
 
virtual void GitHub(const char *line)
The function (".gh <type>") submits a new issue on GitHub via web browser.
 
static void CreateApplication()
Static function used to create a default application environment.
 
virtual void GetOptions(Int_t *argc, char **argv)
Get and handle command line options.
 
static TList * GetApplications()
Static method returning the list of available applications.
 
std::atomic< bool > fIsRunning
Window system specific application implementation.
 
static void NeedGraphicsLibs()
Static method.
 
static Int_t ParseRemoteLine(const char *ln, TString &hostdir, TString &user, Int_t &dbg, TString &script)
Parse the content of a line starting with ".R" (already stripped-off) The format is.
 
void ls(Option_t *option="") const override
Show available sessions.
 
TString GetSetup()
It gets the ROOT installation setup as TString.
 
virtual void HandleIdleTimer()
Handle idle timeout.
 
virtual Longptr_t ProcessRemote(const char *line, Int_t *error=nullptr)
Process the content of a line starting with ".R" (already stripped-off) The format is.
 
TApplication * fAppRemote
 
Using a TBrowser one can browse all ROOT objects.
 
void RecursiveRemove(TObject *obj) override
Recursively remove obj from browser.
 
void Add(TObject *obj, const char *name=nullptr, Int_t check=-1)
Add object with name to browser.
 
static DictFuncPtr_t GetDict(const char *cname)
Given the class name returns the Dictionary() function of a class (uses hash of name).
 
TClass instances represent classes, structs and namespaces in the ROOT type system.
 
TList * GetListOfAllPublicDataMembers(Bool_t load=kTRUE)
Returns a list of all public data members of this class and its base classes.
 
TList * GetListOfEnums(Bool_t load=kTRUE)
Return a list containing the TEnums of a class.
 
Long_t Property() const override
Returns the properties of the TClass as a bit field stored as a Long_t value.
 
TMethod * GetMethodAllAny(const char *method)
Return pointer to method without looking at parameters.
 
static TClass * GetClass(const char *name, Bool_t load=kTRUE, Bool_t silent=kFALSE)
Static method returning pointer to TClass of the specified class name.
 
static void InitializeColors()
Initialize colors used by the TCanvas based graphics (via TColor objects).
 
All ROOT classes may have RTTI (run time type identification) support added.
 
virtual Int_t GetValue(const char *name, Int_t dflt) const
Returns the integer value for a resource.
 
Global functions class (global functions are obtained from CINT).
 
Long_t Property() const override
Get property description word. For meaning of bits see EProperty.
 
const char * GetSignature()
Return signature of function.
 
Long_t ExtraProperty() const
Get property description word. For meaning of bits see EProperty.
 
const char * GetReturnTypeName() const
Get full type description of function return type, e,g.: "class TDirectory*".
 
This ABC is a factory for GUI components.
 
virtual TApplicationImp * CreateApplicationImp(const char *classname, int *argc, char **argv)
Create a batch version of TApplicationImp.
 
Bool_t Notify() override
Notify handler.
 
void ls(Option_t *option="") const override
List this line with its attributes.
 
TObject * FindObject(const char *name) const override
Find an object in this list using its name.
 
Each ROOT class (see TClass) has a linked list of methods.
 
The TNamed class is the base class for all named ROOT classes.
 
const char * GetName() const override
Returns name of object.
 
void Delete(Option_t *option="") override
Remove all objects from the array AND delete all heap based objects.
 
void Add(TObject *obj) override
 
Collectable string class.
 
virtual const char * GetName() const
Returns name of object.
 
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
 
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
 
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
 
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
 
virtual void Fatal(const char *method, const char *msgfmt,...) const
Issue fatal error message.
 
virtual void Print(Option_t *option="") const
This method must be overridden when a class wants to print itself.
 
@ kInvalidObject
if object ctor succeeded but object should not be used
 
virtual void Info(const char *method, const char *msgfmt,...) const
Issue info message.
 
void Emit(const char *signal, const T &arg)
Activate signal with single parameter.
 
static const char * GetMacroPath()
Get macro search path. Static utility function.
 
static void ShutDown()
Shut down ROOT.
 
static const TString & GetTTFFontDir()
Get the fonts directory in the installation. Static utility function.
 
static Bool_t Initialized()
Return kTRUE if the TROOT object has been initialized.
 
static const TString & GetTutorialDir()
Get the tutorials directory in the installation. Static utility function.
 
static const TString & GetDocDir()
Get the documentation directory in the installation. Static utility function.
 
Bool_t EndsWith(const char *pat, ECaseCompare cmp=kExact) const
Return true if string ends with the specified string.
 
TSubString Strip(EStripType s=kTrailing, char c=' ') const
Return a substring of self stripped at beginning and/or end.
 
TString & Replace(Ssiz_t pos, Ssiz_t n, const char *s)
 
const char * Data() const
 
TString & Append(const char *cs)
 
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
 
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
 
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
 
void SetScreenFactor(Float_t factor=1)
 
virtual void NotifyApplicationCreated()
Hook to tell TSystem that the TApplication object has been created.
 
virtual Bool_t ExpandPathName(TString &path)
Expand a pathname getting rid of special shell characters like ~.
 
virtual const char * Getenv(const char *env)
Get environment variable.
 
virtual TString SplitAclicMode(const char *filename, TString &mode, TString &args, TString &io) const
This method split a filename of the form:
 
virtual Int_t Exec(const char *shellcmd)
Execute a command.
 
int GetPathInfo(const char *path, Long_t *id, Long_t *size, Long_t *flags, Long_t *modtime)
Get info about a file: id, size, flags, modification time.
 
virtual Bool_t AccessPathName(const char *path, EAccessMode mode=kFileExists)
Returns FALSE if one can access a file using the specified access mode.
 
virtual void Run()
System event loop.
 
virtual void ExitLoop()
Exit from event loop.
 
virtual Bool_t ChangeDirectory(const char *path)
Change directory.
 
virtual void AddTimer(TTimer *t)
Add timer to list of system timers.
 
virtual const char * GetBuildCompilerVersionStr() const
Return the build compiler version identifier string.
 
virtual void Exit(int code, Bool_t mode=kTRUE)
Exit the application.
 
virtual const char * WorkingDirectory()
Return working directory.
 
virtual char * Which(const char *search, const char *file, EAccessMode mode=kFileExists)
Find location of file in a search path.
 
virtual void SetProgname(const char *name)
Set the application name (from command line, argv[0]) and copy it in gProgName.
 
virtual const char * GetBuildArch() const
Return the build architecture.
 
virtual void Abort(int code=0)
Abort the application.
 
virtual TTimer * RemoveTimer(TTimer *t)
Remove timer from list of system timers.
 
Handles synchronous and a-synchronous timer events.
 
void Reset()
Reset the timer.
 
This class represents a WWW compatible URL.
 
Semi-Abstract base class defining a generic interface to the underlying, low level,...
 
void EnableImplicitMT(UInt_t numthreads=0)
Enable ROOT's implicit multi-threading for all objects and methods that provide an internal paralleli...
 
void EnableThreadSafety()
Enable support for multi-threading within the ROOT code in particular, enables the global mutex to ma...
 
const char * GetUnqualifiedName(const char *name)
Return the start of the unqualified name include in 'original'.