23 Int_t exec_macro(
const char *macro, Bool_t comp = kFALSE, Bool_t save = kTRUE)
33 if (gROOT->IsBatch() || !(gClient))
34 return kCannotRunScript;
35 TString pwd(gSystem->pwd());
36 if (!gSystem->cd(gSystem->DirName(macro)))
37 return kScriptDirNotFound;
40 cmd += gSystem->BaseName(macro);
43 gROOT->ProcessLine(cmd, &err);
44 if (err != TInterpreter::kNoError)
45 return kCannotRunScript;
48 UInt_t nMainFrames = 0;
49 TClass* clGMainFrame = TClass::GetClass(
"TGMainFrame");
51 TIter iWin(gClient->GetListOfWindows());
52 while ((win = (TGWindow*)iWin())) {
53 const TObject* winGetParent = win->GetParent();
54 Bool_t winIsMapped = kFALSE;
55 if (winGetParent == gClient->GetDefaultRoot())
57 if (winIsMapped && win->InheritsFrom(clGMainFrame)) {
60 TString outfile = gSystem->BaseName(macro);
61 outfile.ReplaceAll(
".C", TString::Format(
"_%d.png",
63 TImage *img = TImage::Create();
65 img->FromWindow(win->GetId());
66 img->WriteImage(outfile.Data());
71 if (!gEnv->GetValue(
"X11.Sync", 0))