#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((char*)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;
}
void TDialog::CloseWindow()
{
*mStat = 0;
delete this;
return;
}
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;
}