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),
121 void * ,
Int_t numOptions) :
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");
160 if (!hasRegisterAtExit) {
163 hasRegisterAtExit =
kTRUE;
165 gROOT->SetName(appClassName);
168 if (argc && *argc > 0) {
173 for (
int i = 0; i <
fArgc; i++)
199 gROOT->SetLineHasBeenProcessed();
203 gROOT->SetApplication(
this);
212 for (
int i = 0; i <
fArgc; i++)
260#if !defined(R__WIN32)
270 if ((
h =
gROOT->GetPluginManager()->FindHandler(
"TVirtualX",
"x11ttf")))
271 if (
h->LoadPlugin() == -1)
272 Info(
"InitializeGraphics",
"no TTF support");
340 static char null[1] = {
"" };
352 for (i = 1; i < *argc; i++) {
353 if (!strcmp(argv[i],
"-?") || !strncmp(argv[i],
"-h", 2) ||
354 !strncmp(argv[i],
"--help", 6)) {
355 fprintf(stderr, kCommandLineOptionsHelp);
357 }
else if (!strncmp(argv[i],
"--version", 9)) {
358 fprintf(stderr,
"ROOT Version: %s\n",
gROOT->GetVersion());
359 fprintf(stderr,
"Built for %s on %s\n",
361 gROOT->GetGitDate());
363 fprintf(stderr,
"From %s@%s\n",
364 gROOT->GetGitBranch(),
365 gROOT->GetGitCommit());
368 }
else if (!strcmp(argv[i],
"-config")) {
369 fprintf(stderr,
"ROOT ./configure options:\n%s\n",
gROOT->GetConfigOptions());
371 }
else if (!strcmp(argv[i],
"-b")) {
374 }
else if (!strcmp(argv[i],
"-n")) {
377 }
else if (!strcmp(argv[i],
"-t")) {
383 }
else if (!strcmp(argv[i],
"-q")) {
386 }
else if (!strcmp(argv[i],
"-l")) {
390 }
else if (!strcmp(argv[i],
"-x")) {
393 }
else if (!strcmp(argv[i],
"-splash")) {
397 }
else if (strncmp(argv[i],
"--web", 5) == 0) {
399 const char *opt = argv[i] + 5;
404 else if (
gROOT->IsBatch())
409 }
else if (
gSystem->
Load(
"libROOTWebDisplay") >= 0) {
413 Error(
"GetOptions",
"--web option not supported, ROOT should be built with at least c++14 enabled");
415 }
else if (!strcmp(argv[i],
"-e")) {
426 Warning(
"GetOptions",
"-e must be followed by an expression.");
428 }
else if (!strcmp(argv[i],
"--")) {
430 bool warnShown =
false;
436 if (!
dynamic_cast<TNamed*
>(
f)) {
437 Error(
"GetOptions()",
"Inconsistent file entry (not a TObjString)!");
446 if (
file->String().EndsWith(
".root"))
448 if (
file->String().Contains(
'('))
451 if (macro && !warnShown && (warnShown =
true))
452 Warning(
"GetOptions",
"-- is used with several macros. "
453 "The arguments will be passed to the last one.");
465 for (; i < *argc; i++) {
472 Warning(
"GetOptions",
"no macro to pass arguments to was provided. "
473 "Everything after the -- will be ignored.");
474 for (; i < *argc; i++)
477 }
else if (argv[i][0] !=
'-' && argv[i][0] !=
'+') {
480 char *arg = strchr(argv[i],
'(');
481 if (arg) *arg =
'\0';
505 }
else if (!strcmp(
gROOT->GetName(),
"Rint")) {
506 Warning(
"GetOptions",
"only one directory argument can be specified (%s)", dir);
508 }
else if (
size > 0) {
514 Warning(
"GetOptions",
"file %s has size 0, skipping", dir);
521 if (!strcmp(
gROOT->GetName(),
"Rint"))
522 Warning(
"GetOptions",
"file %s not found", dir);
545 if (!strcmp(
gROOT->GetName(),
"Rint"))
546 Warning(
"GetOptions",
"macro %s not found", fname.
Data());
561 for (i = 0; i < *argc; i++) {
562 if (strcmp(argv[i],
"")) {
580 Emit(
"HandleIdleTimer()");
636#elif defined(R__WIN32)
651 Warning(
"OpenInBrowser",
"The $DISPLAY is not set! Please open (e.g. Ctrl-click) %s\n", url.
Data());
657enum EUrl { kURLforClass, kURLforNameSpace, kURLforStruct };
670 TString url =
"https://root.cern/doc/";
672 TPRegexp re4(R
"(.*/(v\d)-(\d\d)-00-patches)");
673 const char *branchName =
gROOT->GetGitBranch();
674 TObjArray *objarr = re4.MatchS(branchName);
692 if (scopeType == kURLforClass) {
694 }
else if (scopeType == kURLforStruct) {
729 methodArguments.
ReplaceAll(
"ostream",
"std::ostream");
730 methodArguments.
ReplaceAll(
"istream",
"std::istream");
731 methodArguments.
ReplaceAll(
"map",
"std::map");
732 methodArguments.
ReplaceAll(
"vector",
"std::vector");
736 scopeNameRE.Append(scopeName);
737 scopeNameRE.Append(
"::\\b");
739 argFix.Substitute(methodArguments,
"");
740 return methodArguments;
762 scopeNameRE.Append(scopeName);
763 scopeNameRE.Append(
"::\\b");
765 returnFix.Substitute(returnType,
"");
771 returnType.
Prepend(
"virtual ");
781 returnType.
ReplaceAll(
"istream",
"std::istream");
782 returnType.
ReplaceAll(
"ostream",
"std::ostream");
784 returnType.
ReplaceAll(
"vector",
"std::vector");
808 if (!dataMember->
IsEnum()) {
813 md5DataMember.Append(
" ");
815 md5DataMember.Append(scopeName);
816 md5DataMember.Append(
"::");
818 md5DataMember.Append(dataMemberName);
819 md5DataMember.Append(dataMemberName);
821 TString urlForDataMember = UrlGenerator(scopeName, scopeType);
823 urlForDataMember.
Append(
"#a");
824 urlForDataMember.
Append(md5DataMember.MD5());
825 return urlForDataMember;
832 if (scopeEnumeration.
Contains(
"(anonymous)")) {
834 md5EnumClass.
Append(scopeName);
835 md5EnumClass.
Append(
"::@1@1");
839 md5EnumClass.
Append(scopeEnumeration);
843 md5EnumClass.
Append(enumOnlyName);
847 md5Enumerator.Append(scopeName);
848 md5Enumerator.Append(
"::");
849 md5Enumerator.Append(dataMemberName);
850 md5Enumerator.Append(dataMemberName);
852 TString url = UrlGenerator(scopeName, scopeType);
858 url.
Append(md5Enumerator.MD5());
876 TString md5Enumeration(scopeName);
877 md5Enumeration.Append(
"::");
878 md5Enumeration.Append(enumeration);
879 md5Enumeration.Append(enumeration);
881 TString url(UrlGenerator(scopeName, scopeType));
884 url.
Append(md5Enumeration.MD5());
890enum EMethodKind { kURLforMethod, kURLforStructor };
906 EMethodKind methodType, EUrl scopeType)
909 if (methodType == kURLforMethod) {
912 md5Text.
Append((FormatReturnTypeForDoxygen(scopeName, func)));
913 if (scopeType == kURLforNameSpace) {
922 md5Text.
Append(scopeName);
924 md5Text.
Append(methodName);
925 md5Text.
Append(methodName);
927 md5Text.
Append(FormatMethodArgsForDoxygen(scopeName, func));
929 TString url = UrlGenerator(scopeName, scopeType);
954 scopeType = kURLforNameSpace;
955 }
else if (clas->Property() &
kIsStruct) {
956 scopeType = kURLforStruct;
958 scopeType = kURLforClass;
968 if (strippedClass == memberName) {
969 Error(
"OpenReferenceGuideFor",
"Unknown entity \"%s\" - global variables / functions not supported yet!",
970 strippedClass.
Data());
979 Warning(
"OpenReferenceGuideFor",
"\"%s\" does not exist in ROOT!", scopeName.
Data());
985 scopeType = kURLforNameSpace;
987 scopeType = kURLforStruct;
989 scopeType = kURLforClass;
994 int bracket = memberName.
First(
"(");
996 memberName.
Remove(bracket);
1003 EMethodKind methodType;
1005 if (baseClName == memberName) {
1006 methodType = kURLforStructor;
1008 }
else if (memberName[0] ==
'~') {
1009 methodType = kURLforStructor;
1012 methodType = kURLforMethod;
1015 OpenInBrowser(GetUrlForMethod(baseClName, memberName, func, methodType, scopeType));
1022 OpenInBrowser(GetUrlForEnumeration(scopeName, memberName, scopeType));
1030 OpenInBrowser(GetUrlForDataMember(baseClName, memberName, enumerator, scopeType));
1036 Warning(
"Help",
"cannot find \"%s\" as member of %s or its base classes! Check %s\n", memberName.
Data(),
1037 scopeName.
Data(), UrlGenerator(scopeName, scopeType).Data());
1051 if ((strippedCommand ==
".help") || (strippedCommand ==
".?")) {
1053 Printf(
"\n ROOT special commands.");
1054 Printf(
" ==============================================================================");
1055 Printf(
" .L <filename>[flags]: load the given file with optional flags like\n"
1056 " + to compile or ++ to force recompile.\n"
1057 " Type .? TSystem::CompileMacro for a list of all flags.");
1058 Printf(
" .(x|X) <filename>[flags](args) :\n"
1059 " same as .L <filename>[flags] and runs then a function\n"
1060 " with signature: ret_type filename(args).");
1061 Printf(
" .credits : show credits");
1062 Printf(
" .demo : launch GUI demo");
1063 Printf(
" .help Class::Member : open reference guide for that class member (or .?).\n"
1064 " Specifying '::Member' is optional.");
1065 Printf(
" .help edit : show line editing shortcuts (or .?)");
1066 Printf(
" .license : show license");
1067 Printf(
" .ls : list contents of current TDirectory");
1068 Printf(
" .pwd : show current TDirectory, pad and style");
1069 Printf(
" .quit (or .exit) : quit ROOT (long form of .q)");
1070 Printf(
" .R [user@]host[:dir] [-l user] [-d dbg] [script] :\n"
1071 " launch process in a remote host");
1072 Printf(
" .qqq : quit ROOT - mandatory");
1073 Printf(
" .qqqqq : exit process immediately");
1074 Printf(
" .qqqqqqq : abort process");
1075 Printf(
" .which [file] : show path of macro file");
1076 Printf(
" .![OS_command] : execute OS-specific shell command");
1077 Printf(
" .!root -? : print ROOT usage (CLI options)");
1083 Error(
"Help",
"Unknown command!");
1088 strippedCommand.
Remove(0, 3);
1090 strippedCommand.
Remove(0, 5);
1095 if (strippedCommand ==
"edit") {
1096 Printf(
"\n ROOT terminal keyboard shortcuts (GNU-readline style).");
1098 #define FOOTNOTE " *"
1099 Printf(
"* Some of these commands might be intercepted by macOS predefined system shortcuts.");
1104 Printf(
" ==============================================================================");
1105 Printf(
" Arrow_Left : move cursor left [Ctrl+B]");
1106 Printf(
" Arrow_Right : move cursor right [Ctrl+F] [Ctrl+G]");
1108 Printf(
" Fn+Arrow_Left : move cursor to beginning of line [Ctrl+A]");
1110 Printf(
" Home : move cursor to beginning of line [Ctrl+A]");
1113 Printf(
" Fn+Arrow_Right : move cursor to end of line [Ctrl+E]");
1115 Printf(
" End : move cursor to end of line [Ctrl+E]");
1117 Printf(
" Ctrl+Arrow_Left : jump to previous word [Esc,B] [Alt,B]" FOOTNOTE);
1118 Printf(
" Ctrl+Arrow_Right : jump to next word [Esc,F] [Alt,F]" FOOTNOTE);
1120 Printf(
" Backspace : delete previous character [Ctrl+H]");
1121 Printf(
" Del : delete next character [Ctrl+D]");
1122 Printf(
" Esc,Backspace : delete previous word [Ctrl+W] [Esc,Ctrl+H] [Alt+Backspace] [Esc,Del] [Esc,Ctrl+Del]" FOOTNOTE);
1124 Printf(
" Ctrl+U : cut all characters between cursor and start of line");
1125 Printf(
" Ctrl+K : cut all characters between cursor and end of line");
1127 Printf(
" Ctrl+T : transpose characters");
1128 Printf(
" Esc,C : character to upper and jump to next word");
1129 Printf(
" Esc,L : word to lower case and jump to its end");
1130 Printf(
" Esc,U : word to upper case and jump to its end");
1131 Printf(
" Ctrl+Shift+C : copy clipboard content");
1132 Printf(
" Ctrl+Shift+V : paste clipboard content [Ctrl+Y] [Alt+Y]");
1134 Printf(
" Fn+Enter : toggle overwrite mode");
1136 Printf(
" Ins : toggle overwrite mode");
1139 Printf(
" Ctrl+_ : undo last keypress action");
1140 Printf(
" Tab : autocomplete command or print suggestions [Ctrl+I] [Esc,Tab]");
1141 Printf(
" Enter : execute command [Ctrl+J] [Ctrl+M]");
1142 Printf(
" Ctrl+L : clear prompt screen");
1143 Printf(
" Ctrl+D : quit ROOT (if empty line)");
1144 Printf(
" Ctrl+C : send kSigInt interrupt signal");
1145 Printf(
" Ctrl+Z : send kSigStop pause job signal");
1147 Printf(
" Arrow_Down : navigate downwards in command history [Ctrl+N]");
1148 Printf(
" Arrow_Up : navigate upwards in command history [Ctrl+P]");
1149 Printf(
" Ctrl+R ; Ctrl+S : search command in your history by typing a string.\n"
1150 " Use Backspace if you mistyped (but not arrows).\n"
1151 " Press Ctrl+R (Ctrl+S) repeateadly to navigate matches in reverse (forward) order");
1152 Printf(
" Arrow_Right : after Ctrl+R (Ctrl+S), select current match of the history search\n"
1153 " [Ctrl+O] [Enter] [Ctrl+J] [Ctrl+M] [Arrow_Left] [Esc,Esc].\n"
1154 " Use Ctrl+F or Ctrl+G to cancel search and revert original line");
1168 if (
gROOT->IsBatch())
return;
1171 if ((
h =
gROOT->GetPluginManager()->FindHandler(
"TVirtualPad")))
1172 if (
h->LoadPlugin() == -1)
1176 TString title1 =
"ROOT interface to ";
1181 nativex =
"win32gdk";
1183 title = title1 +
"Win32gdk";
1184#elif defined(R__HAS_COCOA)
1187 title = title1 +
"Quartz";
1191 title = title1 +
"X11";
1196 if (guiBackend ==
"native") {
1197 guiBackend = nativex;
1200 title = title1 + guiBackend;
1204 if (guiFactory ==
"native")
1205 guiFactory = nativeg;
1207 if ((
h =
gROOT->GetPluginManager()->FindHandler(
"TVirtualX", guiBackend))) {
1208 if (
h->LoadPlugin() == -1) {
1215 if ((
h =
gROOT->GetPluginManager()->FindHandler(
"TGuiFactory", guiFactory))) {
1216 if (
h->LoadPlugin() == -1) {
1255 if (!ln || strlen(ln) <= 0)
1267 while (
line.Tokenize(tkn, from,
" ")) {
1271 }
else if (tkn ==
"-d") {
1273 }
else if (tkn ==
"-close") {
1276 ::Warning(
"TApplication::ParseRemoteLine",
"unknown option: %s", tkn.
Data());
1284 }
else if (isHostDir) {
1289 }
else if (isScript) {
1319 if (!
line)
return 0;
1321 if (!strncmp(
line,
"-?", 2) || !strncmp(
line,
"-h", 2) ||
1322 !strncmp(
line,
"--help", 6)) {
1323 Info(
"ProcessRemote",
"remote session help:");
1324 Printf(
".R [user@]host[:dir] [-l user] [-d dbg] [[<]script] | [host] -close");
1325 Printf(
"Create a ROOT session on the specified remote host.");
1326 Printf(
"The variable \"dir\" is the remote directory to be used as working dir.");
1327 Printf(
"The username can be specified in two ways, \"-l\" having the priority");
1328 Printf(
"(as in ssh). A \"dbg\" value > 0 gives increasing verbosity.");
1329 Printf(
"The last argument \"script\" allows to specify an alternative script to");
1330 Printf(
"be executed remotely to startup the session, \"roots\" being");
1331 Printf(
"the default. If the script is preceded by a \"<\" the script will be");
1332 Printf(
"sourced, after which \"roots\" is executed. The sourced script can be ");
1333 Printf(
"used to change the PATH and other variables, allowing an alternative");
1334 Printf(
"\"roots\" script to be found.");
1335 Printf(
"To close down a session do \".R host -close\".");
1336 Printf(
"To switch between sessions do \".R host\", to switch to the local");
1337 Printf(
"session do \".R\".");
1338 Printf(
"To list all open sessions do \"gApplication->GetApplications()->Print()\".");
1342 TString hostdir, user, script;
1345 if (hostdir.
Length() <= 0) {
1355 }
else if (rc == 1) {
1366 const char *sc = (script.
Length() > 0) ? script.
Data() :
nullptr;
1377 static int PrintFile(
const char*
filename) {
1384 std::ifstream instr(sFileName);
1402 if (!strncmp(
line,
".R", 2)) {
1404 while (*(
line+
n) ==
' ')
1415 if (!strncasecmp(
line,
".qqqqqqq", 7)) {
1417 }
else if (!strncasecmp(
line,
".qqqqq", 5)) {
1418 Info(
"ProcessLine",
"Bye... (try '.qqqqqqq' if still running)");
1420 }
else if (!strncasecmp(
line,
".exit", 4) || !strncasecmp(
line,
".quit", 2)) {
1425 if (!strncmp(
line,
".?", 2) || !strncmp(
line,
".help", 5)) {
1430 if (!strncmp(
line,
".demo", 5)) {
1431 if (
gROOT->IsBatch()) {
1432 Error(
"ProcessLine",
"Cannot show demos in batch mode!");
1439 if (!strncmp(
line,
".license", 8)) {
1443 if (!strncmp(
line,
".credits", 8)) {
1447 return PrintFile(credits);
1450 if (!strncmp(
line,
".pwd", 4)) {
1460 if (!strncmp(
line,
".ls", 3)) {
1461 const char *opt =
nullptr;
1467 if (!strncmp(
line,
".which", 6)) {
1469 char *
s = strtok(fn,
"+(");
1480 if (!strncmp(
line,
".L", 2) || !strncmp(
line,
".U", 2)) {
1487 if (arguments.
Length()) {
1488 Warning(
"ProcessLine",
"argument(s) \"%s\" ignored with .%c", arguments.
Data(),
1493 Error(
"ProcessLine",
"macro %s not found in path %s", fname.
Data(),
1498 if (posSpace == -1) cmd.
Remove(1);
1499 else cmd.
Remove(posSpace);
1519 if (!strncmp(
line,
".X", 2) || !strncmp(
line,
".x", 2)) {
1523 if (!strcmp(
line,
".reset")) {
1525 Printf(
"*** .reset not allowed, please use gROOT->Reset() ***");
1531 gROOT->GetListOfClasses()->Delete();
1556 static const Int_t kBufSize = 1024;
1567 ::Error(
"TApplication::ExecuteFile",
"macro %s not found in path %s", fname.
Data(),
1575 ::std::ifstream macro(exnam, std::ios::in);
1576 if (!macro.good()) {
1577 ::Error(
"TApplication::ExecuteFile",
"%s no such file", exnam);
1584 char currentline[kBufSize];
1585 char dummyline[kBufSize];
1595 bool res = (
bool)macro.getline(currentline, kBufSize);
1596 if (macro.eof())
break;
1601 while (!macro.getline(dummyline, kBufSize) && !macro.eof()) {
1606 while (
s && (*
s ==
' ' || *
s ==
'\t'))
s++;
1613 if (strstr(cs,
"#ifndef__CINT__") ||
1614 strstr(cs,
"#if!defined(__CINT__)"))
1616 else if (ifndefc && (strstr(cs,
"#ifdef") || strstr(cs,
"#ifndef") ||
1617 strstr(cs,
"#ifdefined") || strstr(cs,
"#if!defined")))
1619 else if (ifndefc && strstr(cs,
"#endif")) {
1624 }
else if (ifndefc && !ifdef && strstr(cs,
"#else"))
1628 if (!*
s || *
s ==
'#' || ifndefc || !strncmp(
s,
"//", 2))
continue;
1630 if (!
comment && (!strncmp(
s,
".X", 2) || !strncmp(
s,
".x", 2))) {
1636 if (!strncmp(
s,
"/*", 2))
comment = 1;
1640 s = strstr(
s,
"*/");
1645 while (
s && (*
s ==
' ' || *
s ==
'\t'))
s++;
1647 if (!strncmp(
s,
"//", 2))
continue;
1648 if (!strncmp(
s,
"/*", 2)) {
1654 if (!
comment && *
s ==
'{') tempfile = 1;
1664 exname += aclicMode;
1666 exname += arguments;
1671 tempbuf.
Form(
".x %s", exname.
Data());
1673 tempbuf.
Form(
".X%s %s", keep ?
"k" :
" ", exname.
Data());
1754 Emit(
"Terminate(Int_t)", status);
1768 Emit(
"LineProcessed(const char*)",
line);
1776 Emit(
"KeyPressed(Int_t)", key);
1784 Emit(
"ReturnPressed(char*)",
text);
1813 Printf(
"<TApplication::CreateApplication>: "
1814 "created default TApplication");
1815 delete []
a;
delete []
b;
1825 Int_t debug,
const char *script)
1851 ::Error(
"TApplication::Open",
"list of applications undefined - protocol error");
1863 if ((
h =
gROOT->GetPluginManager()->FindHandler(
"TApplication",
"remote"))) {
1864 if (
h->LoadPlugin() == 0) {
1867 ::Error(
"TApplication::Open",
"failed to load plugin for TApplicationRemote");
1870 ::Error(
"TApplication::Open",
"failed to find plugin for TApplicationRemote");
1881 gROOT->RefreshBrowsers();
1885 "TApplicationRemote for %s could not be instantiated", url);
1900 gROOT->GetListOfBrowsables()->RecursiveRemove(app);
1904 b->RecursiveRemove(app);
1905 gROOT->RefreshBrowsers();
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
static void CallEndOfProcessCleanups()
TApplication * gApplication
R__EXTERN TClassTable * gClassTable
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 Float_t Float_t Float_t b
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 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 * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
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).
virtual void LoadGraphicsLibs()
Load shared libs necessary for graphics.
virtual void StopIdleing()
Called when system stops idleing.
virtual Longptr_t ProcessRemote(const char *line, Int_t *error=0)
Process the content of a line starting with ".R" (already stripped-off) The format is.
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 InitializeGraphics()
Initialize the graphics environment.
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 const char * ApplicationName() const
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.
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.
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.
virtual void HandleIdleTimer()
Handle idle timeout.
TApplication * fAppRemote
Using a TBrowser one can browse all ROOT objects.
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.
const char * GetTrueTypeName() const
Get full type description of data member, e,g.: "class TDirectory*".
Bool_t IsEnum() const
Return true if data member is an enum.
const char * GetFullTypeName() const
Get full type description of data member, e,g.: "class TDirectory*".
void Print(Option_t *option="") const override
Dump this ellipse with its attributes.
virtual Int_t GetValue(const char *name, Int_t dflt) const
Returns the integer value for a resource.
virtual void SetValue(const char *name, const char *value, EEnvLevel level=kEnvChange, const char *type=nullptr)
Set the value of a resource or create a new 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.
TObject * FindObject(const char *name) const override
Find an object in this list using its name.
void Add(TObject *obj) override
TObject * Remove(TObject *obj) override
Remove object from the list.
virtual TObjLink * FirstLink() const
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.
Int_t GetEntries() const override
Return the number of objects in array (i.e.
void Delete(Option_t *option="") override
Remove all objects from the array AND delete all heap based objects.
TObject * At(Int_t idx) const override
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.
void ToLower()
Change string to lower-case.
TString & Insert(Ssiz_t pos, const char *s)
Int_t Atoi() const
Return integer value of string.
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)
Ssiz_t First(char c) const
Find first occurrence of a character c.
const char * Data() const
TString & ReplaceAll(const TString &s1, const TString &s2)
TString MD5() const
Return the MD5 digest for this string, in a string representation.
Bool_t BeginsWith(const char *s, ECaseCompare cmp=kExact) const
TString & Prepend(const char *cs)
std::istream & ReadFile(std::istream &str)
Replace string with the contents of strm, stopping at an EOF.
TString & Remove(Ssiz_t pos)
TString & Append(const char *cs)
void Form(const char *fmt,...)
Formats a string using a printf style format descriptor.
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.
virtual int Load(const char *module, const char *entry="", Bool_t system=kFALSE)
Load a shared library.
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 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.
const char * GetUrl(Bool_t withDeflt=kFALSE) const
Return full URL.
const char * GetFileAndOptions() const
Return the file and its options (the string specified behind the ?).
const char * GetFile() const
const char * GetUser() const
const char * GetHost() const
void SetOptions(const char *opt)
const char * GetProtocol() const
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()
Enables the global mutex to make ROOT thread safe/aware.
const char * GetUnqualifiedName(const char *name)
Return the start of the unqualified name include in 'original'.
static constexpr double s
static constexpr double ms