Ok, so how do I instantiate the object? I say, I start root
and, at the root prompt I want to create a message box
like the one mentioned bellow. How do I do that?
And, why does this work under Linux but not under windows?
Regards
Alex Suaide
----------------------------------------
Dr. Alexandre Suaide
http://www.dfn.if.usp.br/~suaide/
55-11-3091-7072
Departamento de Física Nuclear
Universidade de São Paulo, Brasil
----- Original Message -----
From: "Ilka Antcheva" <Ilka.Antcheva@cern.ch>
To: <suaide@if.usp.br>
Cc: <roottalk@pcroot.cern.ch>
Sent: Tuesday, June 15, 2004 12:29 PM
Subject: Re: [ROOT] problem with TGTransientFrame under windows
> Hi Alex,
>
> You cannot use gClient->GetRoot() this way - as a parent window parameter
> and as a main frame parameter.
>
> Cheers, Ilka
>
> suaide@if.usp.br wrote:
>
> > Hello all
> >
> > BTW, I tested the TGTransientFrame behavior with other
> > root classes as following:
> >
> > new
> >
TGMsgBox(gClient->GetRoot(),gClient->GetRoot(),"teste","teste",kMBIconExclam
> >
> > ation,kMBOk);
> >
> > and the root also freezes. The frame opens ok but the buttons
> > and messages do not show and root freezes. So, I think It is not
> > a problem in my code but somewhere else. I also tested with TGFileDialog
> > and got the same behavior. I already tried another windows XP machine
and
> > also reinstalled the ROOT system
> >
> > Is there any problem with transient frames with the new version of root?
> >
> > Regards
> >
> > Alex Suaide
> >
> > ----------------------------------------
> > Dr. Alexandre Suaide
> > http://www.dfn.if.usp.br/~suaide/ <http://www.dfn.if.usp.br/%7Esuaide/>
> > 55-11-3091-7072
> > Departamento de Física Nuclear
> > Universidade de São Paulo, Brasil
> > ----- Original Message -----
> > From: <suaide@if.usp.br>
> > To: <roottalk@pcroot.cern.ch>
> > Sent: Tuesday, June 15, 2004 10:27 AM
> > Subject: [ROOT] problem with TGTransientFrame under windows
> >
> >
> > > Hello all
> > >
> > > I am using root 4.00/06 compiled with VC++7 under windows
> > > XP and I am trying to implement a simple dialog box class that
> > > inherits from TGTransientFrame. It works great under linux.
> > > Under windows it compiles fine (no warnings in the code)
> > > with VC++ 6 but when I create an object from that class the
> > > root section freezes and I have to kill the process. The frame
> > > opens but the buttons, labels and text entries do not show
> > > and everything freezes.
> > >
> > > Any help????
> > >
> > > The code is bellow
> > >
> > > Regars
> > >
> > > Alex Suaide
> > >
> > > TDialog.h -------------------------------------------------------
> > >
> > > #ifndef TDialog_HH
> > > #define TDialog_HH
> > > #include "TGClient.h"
> > > #include "TApplication.h"
> > > #include "TGLabel.h"
> > > #include "TGMsgBox.h"
> > > #include "TString.h"
> > > #include "TGTextBuffer.h"
> > > #include "TGTextEntry.h"
> > > #include "TGButton.h"
> > >
> > > class TDialog : public TGTransientFrame
> > > {
> > > private:
> > > TString *mLabel;
> > > TString *mValue;
> > > TGLabel *mDgLbl[100];
> > > TGTextEntry *mTE[100];
> > > TGButton *mOKb;
> > > TGButton *mCancelb;
> > > int mN;
> > > int* mStat;
> > > public:
> > > TDialog(char*,int,
TString*,TString*,int*,int=600,
> > > int=400);
> > > virtual ~TDialog();
> > > bool ProcessMessage(Long_t msg, Long_t parm1, Long_t
> > parm2);
> > >
> > > ClassDef(TDialog,1)
> > > };
> > > #endif
> > >
> > > TDialog.cxx -------------------------------------------------------
> > >
> > > #include "TDialog.h"
> > >
> > > ClassImp(TDialog)
> > > TDialog::TDialog(char* title,int N, TString *label, TString* value,
> > int*
> > > stat, int w, int h)
> > > :TGTransientFrame(gClient->GetRoot(),gClient->GetRoot(),w,h)
> > > {
> > > int i;
> > > mN = N;
> > > mLabel = label;
> > > mValue = value;
> > > mStat = stat;
> > > for(i=0;i<mN;i++)
> > > {
> > > mDgLbl[i] = new TGLabel(this, (char*)mLabel[i].Data()) ;
> > > mTE[i] = new TGTextEntry(this, (char*)mValue[i].Data());
> > > AddFrame(mDgLbl[i],new TGLayoutHints(kLHintsExpandX));
> > > AddFrame(mTE[i],new TGLayoutHints(kLHintsExpandX));
> > > }
> > > mOKb = new TGTextButton(this, "Ok", 21);
> > > mCancelb = new TGTextButton(this, "Cancel", 22);
> > > AddFrame(mOKb, new TGLayoutHints(kLHintsExpandX));
> > > AddFrame(mCancelb, new TGLayoutHints(kLHintsExpandX));
> > > SetWindowName(title);
> > > MapSubwindows();
> > > Resize(GetDefaultSize());
> > > MapWindow();
> > > gClient->WaitFor(this);
> > > }
> > > TDialog::~TDialog()
> > > {
> > > int i;
> > > for(i = 0;i<mN;i++)
> > > {
> > > delete mDgLbl[i];
> > > delete mTE[i];
> > > }
> > > delete mOKb;
> > > delete mCancelb;
> > > }
> > > bool TDialog::ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2)
> > > {
> > > int i;
> > > switch (GET_MSG(msg))
> > > {
> > > case kC_COMMAND:
> > > switch (GET_SUBMSG(msg))
> > > {
> > > case kCM_BUTTON:
> > > switch (parm1)
> > > {
> > > case 21:
> > > for(i=0;i<mN;i++)
> > > if(mTE[i]->GetBuffer()) mValue[i] = mTE[i]->GetText();
> > > else mValue[i] = "";
> > > *mStat = 1;
> > > delete this;
> > > break;
> > > case 22:
> > > *mStat = 0;
> > > delete this;
> > > break;
> > > }
> > > }
> > > }
> > > return true;
> > > }
> > >
> > >
> > >
> > >
> > > ----------------------------------------
> > > Dr. Alexandre Suaide
> > > http://www.dfn.if.usp.br/~suaide/
<http://www.dfn.if.usp.br/%7Esuaide/>
> > > 55-11-3091-7072
> > > Departamento de Física Nuclear
> > > Universidade de São Paulo, Brasil
> > >
> > >
> >
>
>
>
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:08 MET