This macro gives an example of how to create a status bar related to an embedded canvas that shows the info of the selected object, exactly as the status bar of any canvas window.
To run it do either:
.x statusBar.C
.x statusBar.C++
private:
public:
virtual ~MyMainFrame();
void DoExit();
void DoDraw();
void SetStatusText(
const char *txt,
Int_t pi);
};
void MyMainFrame::DoDraw()
{
x[i] = i*0.1;
printf(" i %i %f %f \n",i,x[i],y[i]);
}
}
void MyMainFrame::DoExit()
{
printf("Exit application...");
}
void MyMainFrame::SetStatusText(
const char *txt,
Int_t pi)
{
fStatusBar->SetText(txt,pi);
}
{
const char *text0, *text1, *text3;
char text2[50];
SetStatusText(text0,0);
SetStatusText(text1,1);
sprintf(text2, "%c", (char) px);
else
sprintf(text2, "%d,%d", px, py);
SetStatusText(text2,2);
SetStatusText(text3,3);
}
{
Int_t wid = fEcan->GetCanvasWindowId();
fEcan->AdoptCanvas(myc);
myc->
Connect(
"ProcessedEvent(Int_t,Int_t,Int_t,TObject*)",
"MyMainFrame",
this,
"EventInfo(Int_t,Int_t,Int_t,TObject*)");
Int_t parts[] = {45, 15, 10, 30};
fStatusBar =
new TGStatusBar(
this, 50, 10, kVerticalFrame);
fStatusBar->SetParts(parts, 4);
fStatusBar->Draw3DCorner(
kFALSE);
draw->
Connect(
"Clicked()",
"MyMainFrame",
this,
"DoDraw()");
exit->
Connect(
"Pressed()",
"MyMainFrame",
this,
"DoExit()");
SetWindowName("Embedded Canvas Status Info");
MapSubwindows();
Resize(GetDefaultSize());
MapWindow();
}
MyMainFrame::~MyMainFrame()
{
Cleanup();
delete fEcan;
}
void statusBar()
{
new MyMainFrame(
gClient->GetRoot(), 200, 200);
}
- Author
- Ilka Antcheva 1/12/2006
Definition in file statusBar.C.