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.
private:
public:
~MyMainFrame() override;
void DoExit();
void DoDraw();
void SetStatusText(
const char *txt,
Int_t pi);
};
void MyMainFrame::DoDraw()
{
for (
Int_t i = 0; i <
n; i++) {
y[i] = 10 * sin(
x[i] + 0.2);
printf(
" i %i %f %f \n", i,
x[i],
y[i]);
}
c1->GetFrame()->SetFillColor(21);
c1->GetFrame()->SetBorderSize(12);
}
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);
}
{
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->SetParts(parts, 4);
fStatusBar->Draw3DCorner(
kFALSE);
draw->
Connect(
"Clicked()",
"MyMainFrame",
this,
"DoDraw()");
exit->
Connect(
"Pressed()",
"MyMainFrame",
this,
"DoExit()");
SetWindowName("Embedded Canvas Status Info");
Resize(GetDefaultSize());
MapWindow();
}
MyMainFrame::~MyMainFrame()
{
Cleanup();
delete fEcan;
}
void statusBar()
{
new MyMainFrame(
gClient->GetRoot(), 200, 200);
}
#define ClassDefOverride(name, id)
R__EXTERN TApplication * gApplication
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize wid
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize MapSubwindows
void Printf(const char *fmt,...)
Formats a string in a circular formatting buffer and prints the string.
virtual void Terminate(Int_t status=0)
Terminate the application by call TSystem::Exit() unless application has been told to return from Run...
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
virtual void SetLineWidth(Width_t lwidth)
Set the line width.
virtual void SetLineColor(Color_t lcolor)
Set the line color.
virtual void SetMarkerColor(Color_t mcolor=1)
Set the marker color.
virtual void SetMarkerStyle(Style_t mstyle=1)
Set the marker style.
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=nullptr)
Add frame to the composite frame using the specified layout hints.
A composite frame that layout their children in horizontal way.
This class describes layout hints used by the layout classes.
Defines top level windows that interact with the system Window Manager.
Provides a StatusBar widget.
Yield an action as soon as it is clicked.
ROOT GUI Window base class.
A TGraph is an object made of two arrays X and Y with npoints each.
void Draw(Option_t *chopt="") override
Draw this graph with its current attributes.
TAxis * GetXaxis() const
Get x axis of the graph.
TAxis * GetYaxis() const
Get y axis of the graph.
void SetTitle(const char *title="") override
Change (i.e.
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
Mother of all ROOT objects.
virtual const char * GetName() const
Returns name of object.
virtual char * GetObjectInfo(Int_t px, Int_t py) const
Returns string containing info about the object at position (px,py).
virtual const char * GetTitle() const
Returns title of object.
TCanvas * GetCanvas() const override
Bool_t Connect(const char *signal, const char *receiver_class, void *receiver, const char *slot)
Non-static method is used to connect from the signal of this object to the receiver slot.
This class creates a TGCanvas in which a TCanvas is created.