1 #include "KVDataAnalysisLauncher.h"
15 #include "KVDataRepositoryManager.h"
16 #include "KVDataRepository.h"
17 #include "KVDataSetManager.h"
18 #include "KVDataSet.h"
19 #include "KVDataAnalysisTask.h"
21 #include "KVNucleus.h"
23 #include "KVBatchSystemManager.h"
25 #include "KVInputDialog.h"
26 #include "KVBatchSystemGUI.h"
27 #include "KVBatchSystemParametersGUI.h"
28 #include <KVRunFile.h>
33 #define MAX_LENGTH_SELECTED_RUNS 40
57 lbFileList =
new TGListBox(
this, LB_Files);
58 lbFileList->SetMultipleSelections(
kTRUE);
59 lbFileList->Resize(350, 96);
60 this->AddFrame(lbFileList, eXeY);
64 this->AddFrame(teFileName, eX);
69 boutAdd->SetToolTipText(
"Add a file to the list", TTDELAY);
70 boutAdd->Connect(
"Clicked()",
77 boutRem->SetToolTipText(
"Remove the selected file from the list", TTDELAY);
78 boutRem->Connect(
"Clicked()",
85 boutAllRem->SetToolTipText(
"Remove all files from the list", TTDELAY);
86 boutAllRem->Connect(
"Clicked()",
92 this->AddFrame(cf, eX);
100 this->AddFrame(bout, eX);
104 Resize(GetDefaultSize());
105 SetWindowName(title);
108 fileListString = &fileList;
127 Init(fileList, title);
196 this->CanAdd(fileName.
Data())) {
246 (*fileListString) =
"";
250 (*fileListString) +=
e->GetText()->GetString();
265 const char* filTypes[] = {
"Shared Object Files",
"*.so",
291 "File does not exist",
292 Form(
"The file \"%s\" does not exist. Nothing added.",
301 "Not a share object",
302 Form(
"The file \"%s\" is not a shared object. Nothing added.",
324 boutAdd->SetText(
"Add Directory");
325 boutAdd->SetToolTipText(
"Add a directory to the list.", TTDELAY);
328 boutRem->SetText(
"Remove Directory");
329 boutRem->SetToolTipText(
"Remove the selected directories from the list.", TTDELAY);
332 boutAllRem->SetText(
"Remove All Directories");
333 boutAllRem->SetToolTipText(
"Remove all directories from the list.", TTDELAY);
334 boutAllRem->Layout();
350 Init(fileList, title);
377 const char* filTypes[] = {
"Include Files",
"*.[h,H]*",
406 "Directory does not exist",
407 Form(
"The directory \"%s\" does not exist. Nothing added.",
416 Form(
"The path \"%s\" is not a directory. Nothing added.",
446 GUIenv =
new TEnv(
".KVDataAnalysisGUIrc");
448 ResourceNames =
new TList;
449 ResourceNames->
Add(
new TNamed(
"Repository",
""));
450 ResourceNames->Add(
new TNamed(
"DataSet",
""));
451 ResourceNames->Add(
new TNamed(
"Task",
""));
452 ResourceNames->Add(
new TNamed(
"System",
""));
453 ResourceNames->Add(
new TNamed(
"Trigger",
""));
454 NbResNames = ResourceNames->GetEntries();
457 UserClassNames =
new TList;
461 if (!gDataRepositoryManager) {
463 gDataRepositoryManager->
Init();
485 fMainGuiWidth =
gEnv->
GetValue(
"KaliVedaGUI.MainGUIWidth", 400);
486 fMainGuiHeight =
gEnv->
GetValue(
"KaliVedaGUI.MainGUIHeight", 600);
499 cbRepository =
new TGComboBox(cf, CB_DataRepository);
500 cbRepository->Select(-1);
501 cbRepository->Resize(150, 20);
502 cbRepository->Connect(
"Selected(char*)",
503 "KVDataAnalysisLauncher",
505 "SetDataSetList(char*)");
506 cf->
AddFrame(cbRepository, LHtopleft);
509 lab =
new TGLabel(cf,
"DATASET : ");
516 cbDataSet->Select(-1);
517 cbDataSet->Resize(150, 20);
518 cbDataSet->Connect(
"Selected(char*)",
519 "KVDataAnalysisLauncher",
521 "SetTaskList(char*)");
527 lab =
new TGLabel(cf,
"ANALYSIS TASK : ");
535 cbTask->Resize(350, 20);
536 cbTask->Connect(
"Selected(int)",
537 "KVDataAnalysisLauncher",
539 "SetSystemList(int)");
548 lvSystems->SetDataColumns(6);
549 lvSystems->SetMaxColumnSize(
gEnv->
GetValue(
"KaliVedaGUI.MaxColWidth", 200));
550 lvSystems->SetDataColumn(1,
"Zproj");
551 lvSystems->SetDataColumn(2,
"Ztarget");
552 lvSystems->SetDataColumn(3,
"Ebeam");
553 lvSystems->GetDataColumn(3)->SetDataFormat(
"%4.1lf");
554 lvSystems->SetDataColumn(4,
"Runs",
"GetNumberRuns");
555 lvSystems->SetDataColumn(5,
"Events");
556 lvSystems->SetDataColumn(0,
"System",
"GetName");
557 lvSystems->ActivateSortButtons();
559 lvSystems->AllowBrowse(
kFALSE);
560 lvSystems->AllowContextMenu(
kFALSE);
561 lvSystems->AllowMultipleSelection(
kFALSE);
562 lvSystems->Connect(
"SelectionChanged()",
"KVDataAnalysisLauncher",
this,
"SystemSelectionChanged()");
570 lvRuns->SetDataColumns(9);
571 lvRuns->SetMaxColumnSize(
gEnv->
GetValue(
"KaliVedaGUI.MaxColWidth", 200));
573 lvRuns->SetDataColumn(iicc++,
"Run",
"GetRunNumber");
574 lvRuns->SetDataColumn(iicc++,
"Index",
"GetIndexString");
575 lvRuns->SetDataColumn(iicc++,
"Events",
"",
kTextRight);
576 lvRuns->SetDataColumn(iicc++,
"File",
"GetName");
577 lvRuns->SetDataColumn(iicc++,
"Date",
"GetFileWritten");
578 lvRuns->SetDataColumn(iicc++,
"Comments",
"",
kTextLeft);
579 lvRuns->SetDataColumn(iicc++,
"Trigger",
"");
580 lvRuns->SetDataColumn(iicc++,
"Version");
581 lvRuns->SetDataColumn(iicc++,
"User");
582 lvRuns->ActivateSortButtons();
584 lvRuns->AllowBrowse(
kFALSE);
585 lvRuns->AllowContextMenu(
kFALSE);
586 lvRuns->Connect(
"SelectionChanged()",
"KVDataAnalysisLauncher",
this,
"UpdateListOfSelectedRuns()");
594 bout->
SetToolTipText(
"Select all runs for the analysis.", TTDELAY);
596 "KVDataAnalysisLauncher",
603 "KVDataAnalysisLauncher",
610 "KVDataAnalysisLauncher",
617 selectedRuns =
new TGLabel(runs_and_nbevents,
"Selected Runs :");
623 #ifdef __WITHOUT_TGNUMBERENTRY_SETNUMSTYLE
628 #ifdef __WITHOUT_TGNUMBERENTRY_SETNUMATTR
633 teNbToRead->GetNumberEntry()->SetToolTipText(
"Number of events to read [0 => all events]", TTDELAY);
634 teNbToRead->Resize(150, 20);
637 cfRuns->
AddFrame(runs_and_nbevents, eX);
639 AddFrame(cfRuns, eXeY);
645 fUserClassLabel =
new TGLabel(cf,
"User Class");
648 lab =
new TGLabel(cf,
"User class options");
651 cfAnalysis->AddFrame(cf, eX);
655 cbUserClass->Select(-1);
656 cbUserClass->Resize(150, 20);
658 cbUserClass->Connect(
"Selected(char*)",
"KVDataAnalysisLauncher",
this,
659 "UserClassSelected(char*)");
661 btEditClass->SetEnabled(
kFALSE);
662 btEditClass->Connect(
"Clicked()",
"KVDataAnalysisLauncher",
this,
"EditUserClassFiles()");
663 btEditClass->SetToolTipText(
Form(
"Open analysis class source files in %s",
gSystem->
Getenv(
"EDITOR")), TTDELAY);
667 teUserOptions->SetToolTipText(
"Comma-separated list of options for user analysis class: PAR1=VAL1,PAR2=VAL2,etc.", TTDELAY);
670 cfAnalysis->AddFrame(cf, eX);
672 AddFrame(cfAnalysis, eX);
676 bout =
new TGTextButton(cf,
"User's libraries", B_Libs);
678 "KVDataAnalysisLauncher",
680 "SetUserLibraries()");
685 "KVDataAnalysisLauncher",
687 "SetUserIncludes()");
690 this->AddFrame(cf, eX);
694 cout <<
"Creation Process/Quit" << endl;
698 withBatch->SetToolTipText(gBatchSystem->
GetTitle());
699 withBatch->AllowStayDown(
kTRUE);
700 withBatch->Connect(
"Clicked()",
"KVDataAnalysisLauncher",
this,
"SetBatch()");
702 doBatchParams =
new TGTextButton(cfProcess,
"Batch Parameters");
703 doBatchParams->SetToolTipText(
"Set parameters of batch jobs");
704 doBatchParams->Connect(
"Clicked()",
"KVDataAnalysisLauncher",
this,
"SetBatchParameters()");
705 cfProcess->
AddFrame(doBatchParams, eX);
707 bout =
new TGTextButton(cfProcess,
"&Process", B_Process);
709 bout->
Connect(
"Clicked()",
"KVDataAnalysisLauncher",
this,
"Process()");
715 bout->
Connect(
"Clicked()",
"KVDataAnalysisLauncher",
this,
"Exit()");
719 this->AddFrame(cfProcess, eX);
723 Resize(GetDefaultSize());
729 SetWMSize(fMainGuiWidth, fMainGuiHeight);
733 FillListOfUserClasses();
736 checkCompilation =
kFALSE;
739 TString tmp(GetResource(
"Repository",
""));
740 SetRepository(tmp.
Data());
742 if (GUIenv->GetValue(
"KVDataAnalysisLauncher.Batch",
kFALSE))
748 fUserLibraries = GUIenv->GetValue(
"KVDataAnalysisLauncher.UserLibraries",
"");
749 fUserIncludes = GUIenv->GetValue(
"KVDataAnalysisLauncher.UserIncludes",
"");
775 #ifdef __WITHOUT_TGCOMBOBOX_REMOVEALL
784 while ((o = next())) {
805 #ifdef __WITHOUT_TGCOMBOBOX_REMOVEALL
845 #ifdef __WITHOUT_TGCOMBOBOX_REMOVEALL
852 cout <<
"DataSet : [" << dataset <<
"]" << endl;
929 if (current_batch ==
"PROOFLite" && data_reader !=
"TFile") {
932 Info(
"SetSystemList",
"Switched batch system to %s: %s", gBatchSystem->
GetName(), gBatchSystem->
GetTitle());
934 else if (current_batch ==
"Xterm" && data_reader ==
"TFile") {
937 Info(
"SetSystemList",
"Switched batch system to %s: %s", gBatchSystem->
GetName(), gBatchSystem->
GetTitle());
1076 cout <<
"Checking connection to remote repository." << endl;
1078 cout <<
"Connection to server refused" << endl;
1079 cout <<
"Process aborted." << endl;
1080 WarningBox(
"Connection refused",
"Connection to server refused\nProcess aborted.");
1087 bool online_analysis = !strcmp(task->
GetPrereq(),
"*");
1090 gDataAnalyser = datan;
1098 else if (!online_analysis) {
1099 WarningBox(
"Empty Run List",
"The list of runs to process is empty.");
1132 WarningBox(
"No User Class",
"Please enter the user analysis class name.");
1142 if (
IsBatch() && nbEventRead) {
1143 if (!
WarningBox(
"Read all events in batch mode?",
1144 "This will submit batch jobs which will not read all events.\nAre you sure that is what you want?",
1165 gBatchSystem->
Clear();
1184 return e->GetText()->GetString();
1198 return e->GetText()->GetString();
1212 return e->GetText()->GetString();
1252 #ifdef __WITHOUT_TGCOMBOBOX_SELECT_BOOL_T
1270 if (!strcmp(
r,
"")) {
1272 #ifdef __WITHOUT_TGCOMBOBOX_REMOVEALL
1285 #ifdef __WITHOUT_TGCOMBOBOX_SELECT_BOOL_T
1304 if (!strcmp(
r,
"")) {
1306 #ifdef __WITHOUT_TGCOMBOBOX_REMOVEALL
1319 #ifdef __WITHOUT_TGCOMBOBOX_SELECT_BOOL_T
1338 if (!strcmp(
r,
"")) {
1372 if (!strcmp(
r,
"")) {
1489 reply = (ret_code &
kMBYes);
1496 #ifdef __WITHOUT_TGCOMBOBOX_REMOVEALL
1505 Int_t n =
box->GetListBox()->GetNumberOfEntries();
1506 if (n)
box->RemoveEntries(0, n - 1);
1507 if (
box->GetSelectedEntry()) {
1512 box->GetTextEntry()->SetTitle(
"");
1526 if (n)
box->RemoveEntries(0, n - 1);
1527 if (
box->GetSelectedEntry()) {
1628 res.
Prepend(
"KVDataAnalysisLauncher.");
1779 cur_res.
Prepend(
"KVDataAnalysisLauncher.");
1801 saved_res = cur_res;
1806 while ((resource = next_res()) && (i++ <
index)) {
1816 if (!strcmp(resource->
GetName(),
"Task") && gDataSet) {
1821 else if (!strcmp(resource->
GetName(),
"System")) {
1825 else if (!strcmp(resource->
GetName(),
"Trigger")) {
1837 if (!strcmp(
name,
"UserClassOptions")) {
1842 if (!ok) saved_res =
"";
1867 if (!lf.get())
return;
1870 TIter next(lf.get());
1908 #ifdef __WITHOUT_TGCOMBOBOX_REMOVEALL
1918 while (i < nbcl + 1) {
1937 if (!strcmp(class_name,
"[NEW]")) {
1947 if (strcmp(
"", class_name)) {
1974 new KVInputDialog(
this,
"Enter name of new analysis class", &classname, &ok,
"Enter name of new analysis class");
1978 ok = ok &&
WarningBox(
"Replacing existing class",
1979 Form(
"%s is the name of an existing class defined in [%s,%s].\nDo you want to overwrite this class?\n(All existing code will be lost)",
2012 #ifdef __WITHOUT_TGCOMBOBOX_SELECT_BOOL_T
2046 return e->GetText()->GetString();
2063 #ifdef __WITHOUT_TGCOMBOBOX_REMOVEALL
2108 if (editor ==
"")
return;
2110 if (uclass ==
"")
return;
2156 TIter nxt(novolist);
winID h TVirtualViewer3D TVirtualGLPainter p
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 sel
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 void value
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize MapSubwindows
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize fs
char * Form(const char *fmt,...)
char * StrDup(const char *str)
R__EXTERN TSystem * gSystem
virtual const Char_t * GetType() const
static Bool_t FindClassSourceFiles(const KVString &class_name, KVString &imp_file, KVString &dec_file, const KVString &dir_name=".")
KVBatchSystem * GetDefaultBatchSystem() const
KVBatchSystem * GetBatchSystem(const Char_t *name)
Get batch system by name.
Utility GUI used for setting batch system parameters.
void Clear(Option_t *opt="") override
void cd()
Make this the default batch system.
virtual void SetBatchSystemParameters(const KVNameValueList &)
Use the parameters in the list to set all relevant parameters for batch system.
virtual void GetBatchSystemParameterList(KVNameValueList &)
Database class used to store information on different colliding systems studied during an experiment....
virtual void Run()
Check all task variables, then run analyser.
void SetBatchSystem(KVBatchSystem *bs)
void SetUserClassOptions(const Char_t *o="")
void SetUserLibraries(const Char_t *libs=0)
void SetAnalysisTask(KVDataAnalysisTask *at)
void SetUserClass(const UserClass &kvs, Bool_t check=kTRUE)
static KVDataAnalyser * GetAnalyser(const Char_t *plugin)
void SetUserIncludes(const Char_t *incDirs=0)
Bool_t IsUserClassValid() const
void SetNbEventToRead(Long64_t nb=0)
GUI for running data analysis tasks.
const Char_t * GetDataSet(void)
const Char_t * GetRepository(void)
TList * UserClassNames
list of user classes present in working directory
void SetUserClassList()
Sets the list of all available user classes in the drop down list.
const Char_t * GetSavedResource(const Char_t *name, const Char_t *defaultvalue="")
void SetRepositoryList(void)
Sets the list of all possible repositories in the repository combo box.
void DeselectAll(void)
Deselect all runs currently in the displayed list of runs.
void SystemSelectionChanged()
void Process(void)
Run the analysis task.
void SetUserClass(const Char_t *)
run_index_list listOfRuns
TGCompositeFrame * cfAnalysis
Int_t NbResNames
number of names in list
TGPictureButton * btEditClass
void DisableUserClassList()
Remove all entries from user class combo box & disable text entry.
TList * ResourceNames
used by Get/SetResource
void SetUserIncludes(void)
Set the User's includes.
Bool_t SetBatchParameters()
KVDBSystem * lastSelectedSystem
void UserClassSelected(char *)
TGComboBox * cbRepository
TString SystemBatchName()
Get the system name for the batch name.
void SetRepository(const Char_t *r="")
void EnableUserClassList()
void SetRuns(const Char_t *s="")
void SetRunsList()
Sets the list of all available runs in the runs list box.
const Char_t * GetResource(const Char_t *name, const Char_t *defaultvalue="")
void ClearListOfSelectedRuns()
Empty displayed list of selected runs.
void SetSystemList(Int_t s)
void SetResource(const Char_t *name, const Char_t *value)
void EditUserClassFiles()
std::unique_ptr< TList > list_of_runs
Bool_t WarningBox(const char *title="Warning", const char *msg="Warning", Bool_t confirm=kFALSE)
TGTextButton * doBatchParams
void FillListOfUserClasses()
void SelectAll(void)
Select all runs currently in the displayed list of runs.
void BuildResourceName(const Char_t *name, TString &, TString &)
KVDataSetAnalyser * GetDataAnalyser(KVDataAnalysisTask *task=0)
const Char_t * GetTask(void)
run_index_list listOfSystemRuns
const Char_t * GetUserClass()
Returns currently selected user class name.
void SetDataSet(const Char_t *ds="")
void SetUserLibraries(void)
Set the User's libraries.
TEnv * GUIenv
Declaration des boutons de la fenetre principale.
TGTextEntry * teUserOptions
TGNumberEntry * teNbToRead
const Char_t * GetSystem(void)
void UpdateListOfSelectedRuns()
void GenerateNewUserClass()
void SetSystem(const Char_t *s="")
KVNameValueList fBatchParameters
void SetDataSetList(Char_t *s)
Sets the list of all available data sets in the data sets combo box.
void SetTaskList(Char_t *s)
~KVDataAnalysisLauncher()
Destructeur.
void SetTask(const Char_t *t="")
Define and manage data analysis tasks.
virtual Bool_t WithUserClass() const
virtual const Char_t * GetDataAnalyser() const
virtual const Char_t * GetUserBaseClass() const
virtual const Char_t * GetPrereq() const
Manages access to one or more data repositories.
KVDataRepository * GetRepository(const Char_t *name) const
const TList * GetListOfRepositories() const
virtual Bool_t IsRemote() const
Returns kTRUE for remote repositories, kFALSE for local repositories.
virtual Bool_t IsConnected()
Always returns kTRUE for local repositories.
Pilots user analysis of experimental data.
void SetDataSet(KVDataSet *ds)
void SetRuns(const run_index_list &nl, Bool_t check=kTRUE)
void SetSystem(KVDBSystem *syst)
Set the System used in the analysis.
TString SystemBatchName() const
void SetFullRunList(const run_index_list &nl)
virtual Int_t GetNavailable() const
KVDataSet * GetDataSet(Int_t) const
Return pointer to DataSet using index in list of all datasets, index>=0.
virtual KVDataSet * GetAvailableDataSet(Int_t) const
run_index_list GetRunList(const Char_t *data_type, const KVDBSystem *sys=0) const
KVDataAnalysisTask * GetAnalysisTask(Int_t) const
virtual std::unique_ptr< TList > GetListOfAvailableSystems(const Char_t *datatype, KVDBSystem *systol=0)
virtual Int_t GetNtasks() const
KVString GetDataSetEnv(const Char_t *type, const Char_t *defval="") const
virtual void MakeAnalysisClass(const Char_t *task, const Char_t *classname)
virtual KVSeqCollection * GetSystems() const
Directory dialogue box for KVDataAnalysisLauncher.
Bool_t CanAdd(const Char_t *s) override
tells whether the file in ths string fn can be added to the list box
Char_t * GetFileFromDialog(void) override
Gets the file name from a TGFileDialog.
KVGDirectoryList(TString &st, const Char_t *titre="File list", const TGWindow *p=0, const TGWindow *main=0, Bool_t ok=kTRUE)
Createur.
void Init(TString &fileList, const Char_t *title) override
init window
~KVGDirectoryList()
Destructeur.
File dialogue box for KVDataAnalysisLauncher.
virtual void Done(void)
build the file list string from the content of the TGListBox
~KVGFileList()
Destructeur.
virtual Bool_t CanAdd(const Char_t *s)
tells whether the file in ths string fn can be added to the list box
virtual void AddFile(void)
virtual void Init(TString &fileList, const Char_t *title)
Init window.
virtual Char_t * GetFileFromDialog(void)
Gets the file name from a TGFileDialog.
TGTextButton * boutAllRem
virtual void RemoveFiles(void)
Remove all the selected files from the TGListBox.
KVGFileList(TString &st, const Char_t *titre="File list", const TGWindow *p=0, const TGWindow *main=0, Bool_t ok=kTRUE)
Createur.
virtual void RemoveAllFiles(void)
Remove all the files from the TGListBox.
virtual void InitFileList()
Enhanced version of ROOT TGListView widget.
virtual void UnSelectAll()
virtual void Display(const TCollection *l)
TObject * GetLastSelectedObject() const
void ActivateItemsWithColumnData(const Char_t *colname, KVNumberList data, Bool_t activate=kTRUE)
void ActivateItemWithColumnData(const Char_t *colname, const Char_t *data, Bool_t activate=kTRUE)
TList * GetSelectedObjects() const
void SetFromEnv(TEnv *tenv, const TString &prefix="")
Int_t GetNpar() const
return the number of stored parameters
Bool_t HasBoolParameter(const Char_t *name) const
Bool_t GetBoolValue(const Char_t *name) const
void WriteToEnv(TEnv *tenv, const TString &prefix="")
Description of an individual data file in an experimental dataset.
Int_t GetSize() const override
Extension of ROOT TString class which allows backwards compatibility with ROOT v3....
virtual Int_t GetEntries() const
virtual void SetOwner(Bool_t enable=kTRUE)
virtual const char * GetValue(const char *name, const char *dflt) const
virtual void SetValue(const char *name, const char *value, EEnvLevel level=kEnvChange, const char *type=nullptr)
virtual void SaveLevel(EEnvLevel level)
void WaitFor(TGWindow *w)
void NeedRedraw(TGWindow *w, Bool_t force=kFALSE)
virtual Int_t GetSelected() const
void RemoveAll() override
virtual TGLBEntry * GetSelectedEntry() const
virtual void Select(Int_t id, Bool_t emit=kTRUE)
virtual void SetEnabled(Bool_t on=kTRUE)
virtual TGLBEntry * FindEntry(const char *s) const
virtual void AddEntry(const char *s, Int_t id)
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=nullptr)
void MapSubwindows() override
virtual void Resize(TGDimension size)
void MapRaised() override
void SetTextJustify(Int_t tmode)
void SetText(const char *newText)
virtual void RemoveEntry(Int_t id=-1)
virtual void AddEntry(const char *s, Int_t id)
virtual TGLBEntry * GetEntry(Int_t id) const
virtual void GetSelectedEntries(TList *selected)
virtual void RemoveEntries(Int_t from_ID, Int_t to_ID)
virtual TGLBEntry * FindEntry(const char *s) const
virtual void CloseWindow()
virtual void SetIntNumber(Long_t val, Bool_t emit=kTRUE)
virtual Long_t GetIntNumber() const
virtual Double_t GetNumber() const
virtual void SetText(const TString &new_label)
const char * GetText() const
void SetEnabled(Bool_t flag=kTRUE)
virtual void SetText(const char *text, Bool_t emit=kTRUE)
void Clear(Option_t *option="") override
TObject * FindObject(const char *name) const override
void Add(TObject *obj) override
TObject * Remove(const TObjLinkPtr_t &lnk)
TObject * At(Int_t idx) const override
const char * GetName() const override
const char * GetTitle() const override
const TString & GetString() const
virtual const char * GetName() const
virtual void Info(const char *method, const char *msgfmt,...) const
Bool_t Connect(const char *signal, const char *receiver_class, void *receiver, const char *slot)
virtual Int_t IndexOf(const TObject *obj) const
int CompareTo(const char *cs, ECaseCompare cmp=kExact) const
Bool_t EndsWith(const char *pat, ECaseCompare cmp=kExact) const
const char * Data() const
TObjArray * Tokenize(const TString &delim) const
TString & Prepend(char c, Ssiz_t rep=1)
void Form(const char *fmt,...)
TString & Remove(EStripType s, char c)
TString & ReplaceAll(const char *s1, const char *s2)
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
virtual TList * GetListOfFiles() const
virtual void Unload(const char *module)
virtual const char * Getenv(const char *env)
virtual const char * GetIncludePath()
virtual Int_t Exec(const char *shellcmd)
virtual void SetIncludePath(const char *includePath)
virtual int GetPathInfo(const char *path, FileStat_t &buf)
virtual const char * HostName()
virtual char * ExpandPathName(const char *path)
void box(Int_t pat, Double_t x1, Double_t y1, Double_t x2, Double_t y2)
int main(int argc, char **argv)