Loading [MathJax]/extensions/tex2jax.js
Logo ROOT  
Reference Guide
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
numberEntry.C File Reference

Detailed Description

This macro gives an example of how to create a number entry and how to update a label according to the changed value of this number entry.

To run it do either:

#include <TApplication.h>
#include <TGClient.h>
#include <TGButton.h>
#include <TGFrame.h>
#include <TGLayout.h>
#include <TGWindow.h>
#include <TGLabel.h>
#include <TGNumberEntry.h>
#include <TString.h>
class MyMainFrame : public TGMainFrame {
private:
TGTextButton *fExit;
TGGroupFrame *fGframe;
TGNumberEntry *fNumber;
TGLabel *fLabel;
public:
MyMainFrame(const TGWindow *p, UInt_t w, UInt_t h);
virtual ~MyMainFrame();
void DoSetlabel();
ClassDef(MyMainFrame, 0)
};
MyMainFrame::MyMainFrame(const TGWindow *p, UInt_t w, UInt_t h)
: TGMainFrame(p, w, h)
{
fHor1 = new TGHorizontalFrame(this, 60, 20, kFixedWidth);
fExit = new TGTextButton(fHor1, "&Exit", "gApplication->Terminate(0)");
fHor1->AddFrame(fExit, new TGLayoutHints(kLHintsTop | kLHintsLeft |
kLHintsExpandX, 4, 4, 4, 4));
AddFrame(fHor1,new TGLayoutHints(kLHintsBottom | kLHintsRight, 2, 2, 5, 1));
fNumber = new TGNumberEntry(this, 0, 9,999, TGNumberFormat::kNESInteger,
0, 99999);
fNumber->Connect("ValueSet(Long_t)", "MyMainFrame", this, "DoSetlabel()");
(fNumber->GetNumberEntry())->Connect("ReturnPressed()", "MyMainFrame", this,
"DoSetlabel()");
AddFrame(fNumber, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 5));
fGframe = new TGGroupFrame(this, "Value");
fLabel = new TGLabel(fGframe, "No input.");
fGframe->AddFrame(fLabel, new TGLayoutHints(kLHintsTop | kLHintsLeft,
5, 5, 5, 5));
AddFrame(fGframe, new TGLayoutHints(kLHintsExpandX, 2, 2, 1, 1));
SetCleanup(kDeepCleanup);
SetWindowName("Number Entry");
MapSubwindows();
Resize(GetDefaultSize());
MapWindow();
}
MyMainFrame::~MyMainFrame()
{
// Destructor.
Cleanup();
}
void MyMainFrame::DoSetlabel()
{
// Slot method connected to the ValueSet(Long_t) signal.
// It displays the value set in TGNumberEntry widget.
fLabel->SetText(Form("%ld",fNumber->GetNumberEntry()->GetIntNumber()));
// Parent frame Layout() method will redraw the label showing the new value.
fGframe->Layout();
}
{
new MyMainFrame(gClient->GetRoot(), 50, 50);
}
@ kFixedWidth
Definition: GuiTypes.h:387
#define h(i)
Definition: RSha256.hxx:106
unsigned int UInt_t
Definition: RtypesCore.h:44
#define ClassDef(name, id)
Definition: Rtypes.h:322
#define gClient
Definition: TGClient.h:166
@ kDeepCleanup
Definition: TGFrame.h:51
@ kLHintsRight
Definition: TGLayout.h:33
@ kLHintsLeft
Definition: TGLayout.h:31
@ kLHintsBottom
Definition: TGLayout.h:36
@ kLHintsTop
Definition: TGLayout.h:34
@ kLHintsExpandX
Definition: TGLayout.h:37
char * Form(const char *fmt,...)
Author
Ilka Antcheva 1/12/2006

Definition in file numberEntry.C.