This TableTest class is a simple example of how to use a TGTable with a TTreeTableInterface.
TableTest inherits from TGMainFrame to create a top level frame to embed the TGTable in. First, the staff.root file is opened to obtain a tree. This tree also contains strings as data. Then a TTreeTableInterface is created using this tree. A table is then created using the interface. In the end, the table is added to the TGMainFrame that is the TableTest and the necessary calls to correctly draw the window are made. For more information about the use of TTreeTableInterface and TGTable, see their documentation.
#include <iostream>
class IDList {
private:
public:
IDList() : nID(0) {}
~IDList() {}
Int_t GetUnID(
void) {
return ++nID ; }
} ;
private:
IDList fIDs ;
public:
virtual ~TableTest() ;
void DoExit() ;
TGTable *GetTable() {
return fTable; }
};
:
TGMainFrame(p, w, h), fNTableRows(ntrows), fNTableColumns(ntcols),
fTable(0)
{
Connect("CloseWindow()", "TableTest", this, "DoExit()") ;
DontCallClose() ;
fFile =
new TFile(
"cernstaff.root");
printf("Please run <ROOT location>/tutorials/tree/cernbuild.C first.");
return;
}
fTable =
new TGTable(
this, fIDs.GetUnID(), fInterface, fNTableRows,
fNTableColumns);
SetWindowName("Tree Table Test") ;
MapSubwindows() ;
Resize(GetDefaultWidth()+20, 600) ;
MapWindow() ;
} ;
TableTest::~TableTest()
{
delete fInterface;
Cleanup() ;
}
void TableTest::DoExit()
{
DeleteWindow();
}
TableTest *test = new TableTest(0, ntrows, ntcols, 500, 200);
return test->GetTable();
}
- Author
- Roel Aaij 13/07/2007
Definition in file staffTableTest.C.