Hi Isidro, have a look at the $ROOTSYS/tutorials/dialogs.C script to get input dialog boxes. -- Fons Isidro.Gonzalez.Caballero@cern.ch wrote: > > Hi, > I want to build a contolbar with buttons to launch several macros > and to also set some global variables (number of events, center of mass > energy, target material,...). I would like to get the values for this > variables through a dialog box, but I don't know an easy way to do it > (suggestions?). I decided then to get the information from the standard > input, but then I get no echo. I have attached a small macro showing it > (just click in the "# Events" button and try to type anything). Any > solutions? > > Cheers, > > Isidro > > +---------------------------+--------------------------------+ > | Isidro González Caballero | mailto:Isidro.Gonzalez@cern.ch | > | CERN-EP / Mailbox: F28010 | http://home.cern.ch/~iglez/ | > | 1211 Geneva 23 | -o- | > | Switzerland | Tel: +41 22 76 73060, 73316 | > +---------------------------+--------------------------------+ > > -------------------------------------------------------------------------------- > ////////////////////////////////////////////// > // Class to hold event data information. Works > // like a store of global variables > class EventData { > public: > EventData(){ > nEvents = -1; > cout << "* Creating EventData with default values." << endl; > } > > static void SetNEvents(Int_t n) { nEvents=n; } > static Int_t GetNEvents() {return nEvents;} > > static void Dump() { > cout << "* EventData values:" << endl; > cout << "\t- NEvents = " << nEvents << endl; > } > > protected: > static Int_t nEvents; > }; > > /////////////////////////////////////////// > // Get from normal input the number of events > // to be processed. > void FindNEvents() { > Int_t nev; > cout << endl > << "*******************************************************************" > << endl; > cout << "Input number of events to be processed (-1 for ALL): " << endl; > cin >> nev; > cout << "*******************************************************************" > << endl; > EventData::SetNEvents(nev); > EventData::Dump(); > } > > /////////////////////////////////////////// > // Build Control bar > void Trial() { > EventData* d = new EventData; > d->Dump(); > > gROOT->Reset(); > TControlBar* bar = new TControlBar("vertical", "Tools"); > > bar->AddButton("ROOT Browser", > "new TBrowser;", > "Start the ROOT Browser"); > > bar->AddButton("# Events", > "FindNEvents();", > "Set the number of events to be processed"); > > bar->Show(); > } > -- Org: CERN, European Laboratory for Particle Physics. Mail: 1211 Geneve 23, Switzerland E-Mail: Fons.Rademakers@cern.ch Phone: +41 22 7679248 WWW: http://root.cern.ch/~rdm/ Fax: +41 22 7679480
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:51:04 MET