doxy: do not show whitespace diffs on bulk edit
[u/mrichter/AliRoot.git] / EVE / hlt-macros / hlt_alieve_init.C
1 // $Id: alieve_init.C 30728 2009-01-22 18:14:34Z mtadel $
2 // Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
3
4 /**************************************************************************
5  * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
6  * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
7  * full copyright notice.                                                 *
8  **************************************************************************/
9 #if !defined(__CINT__) || defined(__MAKECINT__)
10 #include "TROOT.h"
11 #include "TSystem.h"
12 #include "TString.h"
13 #include "TFolder.h"
14 #include "TPRegexp.h"
15 #include "TEveUtil.h"
16
17 #include "TEveManager.h"
18 #include "TEvePointSet.h"
19 #include "TEveBrowser.h"
20
21 #include "TSystemDirectory.h"
22 #include "TGFileBrowser.h"
23 #include "TEveMacro.h"
24 #endif
25
26 using namespace std;
27
28 typedef list<string> StringList;
29
30
31 void alieve_init_import_macros()
32 {
33   // Put macros in the list of browsables, add a macro browser to
34   // top-level GUI.
35   typedef list<string> StringList;
36
37   TString macdir("$(ALICE_ROOT)/EVE/alice-macros");
38   gSystem->ExpandPathName(macdir);
39
40   TFolder* f = gEve->GetMacroFolder();
41   void* dirhandle = gSystem->OpenDirectory(macdir.Data());
42   if (dirhandle != 0)
43   {
44     char* filename;
45     TPMERegexp re("\\.C$");
46     StringList names; // This form understood by cint (fails with std::string).
47     while ((filename = (char*)gSystem->GetDirEntry(dirhandle)) != 0)
48     {
49       if (re.Match(filename))
50         names.push_back(filename);
51     }
52     names.sort();
53     //PH The line below is replaced waiting for a fix in Root
54     //PH which permits to use variable siza arguments in CINT
55     //PH on some platforms (alphalinuxgcc, solariscc5, etc.)
56     // f->Add(new TEveMacro(Form("%s/%s", macdir.Data(), filename)));
57     char fullName[1000];
58     for (StringList::iterator si=names.begin(); si!=names.end(); ++si)
59     {
60       sprintf(fullName,"%s/%s", macdir.Data(), si->c_str());
61       f->Add(new TEveMacro(fullName));
62     }
63   }
64   gSystem->FreeDirectory(dirhandle);
65
66   gROOT->GetListOfBrowsables()->Add
67     // (new TSystemDirectory("alice-macros", macdir.Data())); // !!!! this spits blood, but then works
68     (new TSystemDirectory(macdir.Data(), macdir.Data()));
69
70   {
71     TEveBrowser   *br = gEve->GetBrowser();
72     TGFileBrowser *fb = 0;
73     fb = br->GetFileBrowser();
74     fb->GotoDir(macdir);
75     {
76       br->StartEmbedding(0);
77       fb = br->MakeFileBrowser();
78       fb->BrowseObj(f);
79       fb->Show();
80       br->StopEmbedding();
81       br->SetTabTitle("Macros", 0);
82       br->SetTab(0, 0);
83     }
84   }
85 }
86
87 void alieve_init_basic_vizdb()
88 {
89   TEvePointSet* ps;
90
91   ps = new TEvePointSet();
92   ps->SetMarkerColor(4);
93   ps->SetMarkerSize(0.2);
94   ps->SetMarkerStyle(2);
95   gEve->InsertVizDBEntry("Clusters", ps);
96 }
97
98 void hlt_alieve_init()
99 {
100   typedef list<string> StringList;
101
102   Info("alieve_init", "Adding standard macros.");
103   TString  hack = gSystem->pwd(); // Problem with TGFileBrowser cding
104   alieve_init_import_macros();
105   gSystem->cd(hack);
106
107   alieve_init_basic_vizdb();
108   // Temporarily assert also default vizdb.
109   TEveUtil::AssertMacro("VizDB_scan.C");
110
111   gSystem->ProcessEvents();
112 }
113