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