Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
numberEntry.C
Go to the documentation of this file.
1/// \file
2/// \ingroup tutorial_gui
3/// This macro gives an example of how to create a number entry and how to update a label according to the changed value
4/// of this number entry. To run it do either:
5/// ~~~
6/// .x numberEntry.C
7/// .x numberEntry.C++
8/// ~~~
9///
10/// \macro_code
11///
12/// \author Ilka Antcheva 1/12/2006
13
14#include <TApplication.h>
15#include <TGClient.h>
16#include <TGButton.h>
17#include <TGFrame.h>
18#include <TGLayout.h>
19#include <TGWindow.h>
20#include <TGLabel.h>
21#include <TGNumberEntry.h>
22#include <TString.h>
23
24class MyMainFrame : public TGMainFrame {
25
26private:
27 TGCompositeFrame *fHor1;
28 TGTextButton *fExit;
29 TGGroupFrame *fGframe;
30 TGNumberEntry *fNumber;
31 TGLabel *fLabel;
32
33public:
34 MyMainFrame(const TGWindow *p, UInt_t w, UInt_t h);
35 ~MyMainFrame() override;
36 void DoSetlabel();
37
38 ClassDefOverride(MyMainFrame, 0)
39};
40
41MyMainFrame::MyMainFrame(const TGWindow *p, UInt_t w, UInt_t h) : TGMainFrame(p, w, h)
42{
43
44 fHor1 = new TGHorizontalFrame(this, 60, 20, kFixedWidth);
45 fExit = new TGTextButton(fHor1, "&Exit", "gApplication->Terminate(0)");
46 fHor1->AddFrame(fExit, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX, 4, 4, 4, 4));
47 AddFrame(fHor1, new TGLayoutHints(kLHintsBottom | kLHintsRight, 2, 2, 5, 1));
48
51 fNumber->Connect("ValueSet(Long_t)", "MyMainFrame", this, "DoSetlabel()");
52 (fNumber->GetNumberEntry())->Connect("ReturnPressed()", "MyMainFrame", this, "DoSetlabel()");
53 AddFrame(fNumber, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 5));
54 fGframe = new TGGroupFrame(this, "Value");
55 fLabel = new TGLabel(fGframe, "No input.");
56 fGframe->AddFrame(fLabel, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 5));
57 AddFrame(fGframe, new TGLayoutHints(kLHintsExpandX, 2, 2, 1, 1));
58
59 SetCleanup(kDeepCleanup);
60 SetWindowName("Number Entry");
62 Resize(GetDefaultSize());
63 MapWindow();
64}
65
66MyMainFrame::~MyMainFrame()
67{
68 // Destructor.
69
70 Cleanup();
71}
72
73void MyMainFrame::DoSetlabel()
74{
75 // Slot method connected to the ValueSet(Long_t) signal.
76 // It displays the value set in TGNumberEntry widget.
77
78 fLabel->SetText(Form("%ld", fNumber->GetNumberEntry()->GetIntNumber()));
79
80 // Parent frame Layout() method will redraw the label showing the new value.
81 fGframe->Layout();
82}
83
84void numberEntry()
85{
86 new MyMainFrame(gClient->GetRoot(), 50, 50);
87}
@ kFixedWidth
Definition GuiTypes.h:387
#define h(i)
Definition RSha256.hxx:106
unsigned int UInt_t
Definition RtypesCore.h:46
#define ClassDefOverride(name, id)
Definition Rtypes.h:346
#define gClient
Definition TGClient.h:157
@ kDeepCleanup
Definition TGFrame.h:42
@ kLHintsRight
Definition TGLayout.h:26
@ kLHintsLeft
Definition TGLayout.h:24
@ kLHintsBottom
Definition TGLayout.h:29
@ kLHintsTop
Definition TGLayout.h:27
@ kLHintsExpandX
Definition TGLayout.h:30
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize MapSubwindows
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
Definition TString.cxx:2489
The base class for composite widgets (menu bars, list boxes, etc.).
Definition TGFrame.h:287
A composite frame with a border and a title.
Definition TGFrame.h:522
A composite frame that layout their children in horizontal way.
Definition TGFrame.h:385
This class handles GUI labels.
Definition TGLabel.h:24
This class describes layout hints used by the layout classes.
Definition TGLayout.h:50
Defines top level windows that interact with the system Window Manager.
Definition TGFrame.h:397
TGNumberEntry is a number entry input widget with up/down buttons.
@ kNEANonNegative
Non-negative number.
@ kNESInteger
Style of number entry field.
@ kNELLimitMinMax
Both lower and upper limits.
Yield an action as soon as it is clicked.
Definition TGButton.h:142
ROOT GUI Window base class.
Definition TGWindow.h:23