Hi Jon,
When you use the class TRint, you have to add -lRint in your list of
libs.
Your program cannot work, because CINT has no way to know that you have
created a local variable x in the main program.
To understand TControlBar, I suggest you start by playing with the
following
small macro. As already reported several times, the action specified
in a TControlBar can only be something that you can also execute
at the command line.
//macro demo.C
int x=10;
void test()
{
TControlBar *bar = new TControlBar("vertical");
bar->AddButton("Increment x","x++;","increment variable x by 1");
bar->AddButton("Show x","printf(\"x=%d\\n\",x);","Print current value
of x");
bar->Show();
}
Now using the standard root, do;
Root > .L demo.C
Root > test(); // this will show you the control bar.
You can now click on the Increment or/and Show buttons.
Rene Brun
Jon Gans wrote:
>
> After fixing all GUI stuff, I find the variables do not stay in scope in
> the controlbar. for example, with the following code, I get this error
> when the Test button is pressed:
> Error: No symbol x in current scope FILE:/tmp/27101aaa_cint LINE:1
>
> here is the code:
>
> #ifndef __CINT__
> #include <iostream.h>
> #include "TROOT.h"
> #include "TRint.h"
> #include "TControlBar.h"
> #include "TApplication.h"
> #endif
>
> extern void InitGui();
> VoidFuncPtr_t initfuncs[] = { InitGui, 0 };
>
> TROOT root("richView", "Rich Viewer",initfuncs);
>
> int main(int argc, char **argv)
> {
>
> TApplication * theApp = new TApplication("RichEvent", &argc, argv);
> // TRint * theApp = new TRint("RichEvent",&argc,argv,0,0);
>
> int x = 10;
>
> TControlBar bar("vertical");
> bar.AddButton("Test", "x++;", "test");
> bar.Show();
>
> theApp->Run();
> return 0;
> }
>
> moreover, if i switch to TRint instead of TApplication i get:
> undefined reference to `TRint::TRint(char *, int *, char **, void *, int)'
>
> I know TRint.h is included because if i comment out the include line a get
> many more errors.
>
> I am on Linux 5.2 running Root 2.22/10
>
> thanks alot
> jon
>
> ______________________________________________________________________________
>
> Jonathan Gans Home: 516 344 1265
> Brookhaven National Lab Work: 516 344 7405
> Building 902b, Room 11 Fax/Voice Mail: 516 213 4967 (LI)
> Upton, NY 11973 (Via Email) 718 247 2926 (NYC)
> http://star.physics.yale.edu/users/gans
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:37 MET