22 #include "RConfigure.h"
36 ClassImp(TGApplication);
43 TGApplication::TGApplication(
const char *appClassName,
44 int *argc,
char **argv,
void*,
int)
45 : TApplication(), fDisplay(0), fClient(0)
48 Error(
"TGApplication",
"only one instance of TGApplication allowed");
53 ::Fatal(
"TGApplication::TGApplication",
"ROOT system not initialized");
56 ::Fatal(
"TGApplication::TGApplication",
"gSystem not initialized");
59 gROOT->SetApplication(
this);
60 gROOT->SetName(appClassName);
62 GetOptions(argc, argv);
64 gSystem->SetProgname(argv[0]);
67 gSystem->NotifyApplicationCreated();
71 if (!fDisplay) gSystem->SetDisplay();
72 fClient =
new TGClient(fDisplay);
74 if (fClient->IsZombie()) {
75 Error(
"TGApplication",
"cannot switch to batch mode, exiting...");
80 gROOT->SetBatch(kFALSE);
82 if (strcmp(appClassName,
"proofserv")) {
83 const char *ttpath = gEnv->GetValue(
"Root.TTFontPath",
84 TROOT::GetTTFFontDir());
85 char *ttfont = gSystem->Which(ttpath,
"arialbd.ttf", kReadPermission);
88 ttfont = gSystem->Which(ttpath,
"FreeSansBold.ttf", kReadPermission);
89 if (ttfont && gEnv->GetValue(
"Root.UseTTFonts", 1)) {
91 if ((h = gROOT->GetPluginManager()->FindHandler(
"TVirtualX",
"x11ttf")))
92 if (h->LoadPlugin() == -1)
93 Info(
"TGApplication",
"no TTF support");
102 TColor::InitializeColors();
105 if (gEnv->GetValue(
"Canvas.UseScreenFactor", 1)) {
109 gVirtualX->GetGeometry(-1, x, y, w, h);
110 if (h > 0 && h < 1000) gStyle->SetScreenFactor(0.0011*h);
115 gInterpreter->SaveContext();
116 gInterpreter->SaveGlobalsContext();
119 gROOT->SetLineHasBeenProcessed();
125 TGApplication::~TGApplication()
134 void TGApplication::LoadGraphicsLibs()
137 TString title1 =
"ROOT interface to ";
138 TString nativex, title;
142 title = title1 +
"X11";
144 nativex =
"win32gdk";
146 title = title1 +
"Win32gdk";
149 TString guiBackend(gEnv->GetValue(
"Gui.Backend",
"native"));
150 guiBackend.ToLower();
151 if (guiBackend ==
"native") {
152 guiBackend = nativex;
155 title = title1 + guiBackend;
159 if ((h = gROOT->GetPluginManager()->FindHandler(
"TVirtualX", guiBackend))) {
160 if (h->LoadPlugin() == -1)
162 gVirtualX = (TVirtualX *) h->ExecPlugin(2, name.Data(), title.Data());
170 void TGApplication::GetOptions(Int_t *argc,
char **argv)
175 for (i = 0; i < *argc; i++) {
176 if (!strcmp(argv[i],
"-display")) {
177 if (argv[i+1] && strlen(argv[i+1]) && argv[i+1][0] !=
'-') {
178 fDisplay = StrDup(argv[i+1]);
187 for (i = 0; i < *argc; i++) {