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