#include "TFunctionParametersDialog.h"
#include "TTimer.h"
#include "TList.h"
#include "TF1.h"
#include "TGButton.h"
#include "TGFrame.h"
#include "TGLabel.h"
#include "TGLayout.h"
#include "TGTextEntry.h"
#include "TGMsgBox.h"
#include "TGNumberEntry.h"
#include "TGTripleSlider.h"
#include "TVirtualPad.h"
enum EParametersDialogWid {
kNAME,
kFIX = 10,
kVAL = 20,
kMIN = 30,
kMAX = 40,
kSLD = 50,
kUPDATE = 8888,
kRESET,
kAPPLY,
kOK,
kCANCEL
};
ClassImp(TFunctionParametersDialog)
TFunctionParametersDialog::TFunctionParametersDialog(const TGWindow *p,
const TGWindow *main,
TF1 *func,
TVirtualPad *pad,
Double_t rx, Double_t ry) :
TGTransientFrame(p, main, 10, 10, kVerticalFrame)
{
fFunc = func;
fFpad = pad;
fRXmin = rx;
fRXmax = ry;
fFunc->GetRange(fRangexmin, fRangexmax);
fNP = fFunc->GetNpar();
fHasChanges = kFALSE;
fPmin = new Double_t[fNP];
fPmax = new Double_t[fNP];
fPval = new Double_t[fNP];
fPerr = new Double_t[fNP];
for (Int_t i = 0; i < fNP; i++) {
fFunc->GetParLimits(i, fPmin[i], fPmax[i]);
fPval[i] = fFunc->GetParameter(i);
fPerr[i] = fFunc->GetParError(i);
}
fParNam = new TGTextEntry*[fNP];
fParFix = new TGCheckButton*[fNP];
fParVal = new TGNumberEntry*[fNP];
fParMin = new TGNumberEntryField*[fNP];
fParMax = new TGNumberEntryField*[fNP];
fParSld = new TGTripleHSlider*[fNP];
memset(fParNam, 0, sizeof(TGTextEntry*)*fNP);
memset(fParFix, 0, sizeof(TGCheckButton*)*fNP);
memset(fParVal, 0, sizeof(TGNumberEntry*)*fNP);
memset(fParMin, 0, sizeof(TGNumberEntryField*)*fNP);
memset(fParMax, 0, sizeof(TGNumberEntryField*)*fNP);
memset(fParMax, 0, sizeof(TGTripleHSlider*)*fNP);
TGCompositeFrame *f1 = new TGCompositeFrame(this, 80, 20, kHorizontalFrame);
AddFrame(f1, new TGLayoutHints(kLHintsTop, 1, 1, 1, 1));
fContNam = new TGCompositeFrame(f1, 80, 20, kVerticalFrame | kFixedWidth);
fContNam->AddFrame(new TGLabel(fContNam,"Name"),
new TGLayoutHints(kLHintsTop, 5, 0, 0, 0));
for (Int_t i = 0; i < fNP; i++ ) {
fParNam[i] = new TGTextEntry(fContNam, new TGTextBuffer(80), kNAME+i);
fParNam[i]->SetText(Form("%s", fFunc->GetParName(i)));
fParNam[i]->SetEnabled(kFALSE);
fContNam->AddFrame(fParNam[i],
new TGLayoutHints(kLHintsExpandX, 5, 5, 7, 5));
}
f1->AddFrame(fContNam, new TGLayoutHints(kLHintsExpandX, 5, 5, 5, 5));
fContFix = new TGCompositeFrame(f1, 20, 20, kVerticalFrame | kFixedWidth);
fContFix->AddFrame(new TGLabel(fContFix,"Fix"),
new TGLayoutHints(kLHintsTop, 2, 0, 0, 0));
for (Int_t i = 0; i < fNP; i++ ) {
fParFix[i] = new TGCheckButton(fContFix, "", kFIX*fNP+i);
fParFix[i]->SetToolTipText(Form("Set %s to fixed", fFunc->GetParName(i)));
fContFix->AddFrame(fParFix[i], new TGLayoutHints(kLHintsLeft | kLHintsCenterY,
5, 5, 10, 7));
if ((fPmin[i] == fPmax[i]) && (fPmin[i] || fPmax[i]))
fParFix[i]->SetState(kButtonDown);
else
fParFix[i]->SetState(kButtonUp);
fParFix[i]->Connect("Toggled(Bool_t)", "TFunctionParametersDialog", this, "DoFix(Bool_t)");
}
f1->AddFrame(fContFix, new TGLayoutHints(kLHintsLeft, 5, 5, 5, 5));
fContVal = new TGCompositeFrame(f1, 80, 20, kVerticalFrame | kFixedWidth);
fContVal->AddFrame(new TGLabel(fContVal,"Value"),
new TGLayoutHints(kLHintsTop, 5, 0, 0, 0));
for (Int_t i = 0; i < fNP; i++ ) {
fParVal[i] = new TGNumberEntry(fContVal, 1.2E-12, 15, kVAL*fNP+i,
TGNumberFormat::kNESReal);
fParVal[i]->SetNumber(fPval[i]);
fParVal[i]->SetFormat(TGNumberFormat::kNESReal, TGNumberFormat::kNEAAnyNumber);
fContVal->AddFrame(fParVal[i], new TGLayoutHints(kLHintsExpandX, 5, 5, 7, 5));
(fParVal[i]->GetNumberEntry())->SetToolTipText(Form("%s", fFunc->GetParName(i)));
(fParVal[i]->GetNumberEntry())->Connect("ReturnPressed()", "TFunctionParametersDialog",
this, "DoParValue()");
fParVal[i]->Connect("ValueSet(Long_t)", "TFunctionParametersDialog", this, "DoParValue()");
}
f1->AddFrame(fContVal, new TGLayoutHints(kLHintsExpandX, 5, 5, 5, 5));
fContMin = new TGCompositeFrame(f1, 80, 20, kVerticalFrame | kFixedWidth);
fContMin->AddFrame(new TGLabel(fContMin,"Min"),
new TGLayoutHints(kLHintsTop, 5, 0, 0, 0));
for (Int_t i = 0; i < fNP; i++ ) {
fParMin[i] = new TGNumberEntryField(fContMin, kMIN*fNP+i, 0.0,
TGNumberFormat::kNESReal,
TGNumberFormat::kNEAAnyNumber);
((TGTextEntry*)fParMin[i])->SetToolTipText(Form("Lower limit of %s",
fFunc->GetParName(i)));
fContMin->AddFrame(fParMin[i], new TGLayoutHints(kLHintsExpandX, 5, 5, 7, 5));
if (fPmin[i])
fParMin[i]->SetNumber(fPmin[i]);
else if (fPerr[i])
fParMin[i]->SetNumber(fPval[i]-3*fPerr[i]);
else if (fPval[i])
fParMin[i]->SetNumber(fPval[i]-0.1*fPval[i]);
else
fParMin[i]->SetNumber(1.0);
fParMin[i]->Connect("ReturnPressed()", "TFunctionParametersDialog", this, "DoParMinLimit()");
}
f1->AddFrame(fContMin, new TGLayoutHints(kLHintsExpandX, 5, 5, 5, 5));
fContSld = new TGCompositeFrame(f1, 120, 20, kVerticalFrame | kFixedWidth);
fContSld->AddFrame(new TGLabel(fContSld,"Set Range"),
new TGLayoutHints(kLHintsTop, 5, 0, 0, 0));
for (Int_t i = 0; i < fNP; i++ ) {
fParSld[i] = new TGTripleHSlider(fContSld, 100, kDoubleScaleBoth, kSLD*fNP+i,
kHorizontalFrame, GetDefaultFrameBackground(),
kFALSE, kFALSE, kFALSE, kFALSE);
fContSld->AddFrame(fParSld[i], new TGLayoutHints(kLHintsExpandX, 5, 5, 5, 5));
fParSld[i]->SetConstrained(kTRUE);
}
f1->AddFrame(fContSld, new TGLayoutHints(kLHintsExpandX, 5, 5, 5, 5));
fContMax = new TGCompositeFrame(f1, 80, 20, kVerticalFrame);
fContMax->AddFrame(new TGLabel(fContMax,"Max"),
new TGLayoutHints(kLHintsTop, 5, 0, 0, 0));
for (Int_t i = 0; i < fNP; i++ ) {
fParMax[i] = new TGNumberEntryField(fContMax, kMAX*fNP+i, 0.0,
TGNumberFormat::kNESReal,
TGNumberFormat::kNEAAnyNumber);
((TGTextEntry*)fParMax[i])->SetToolTipText(Form("Upper limit of %s",
fFunc->GetParName(i)));
fContMax->AddFrame(fParMax[i], new TGLayoutHints(kLHintsExpandX, 5, 5, 7, 5));
if (fPmax[i])
fParMax[i]->SetNumber(fPmax[i]);
else if (fPerr[i])
fParMax[i]->SetNumber(fPval[i]+3*fPerr[i]);
else if (fPval[i])
fParMax[i]->SetNumber(fPval[i]+0.1*fPval[i]);
else
fParMax[i]->SetNumber(1.0);
if (fParMax[i]->GetNumber() < fParMin[i]->GetNumber()){
Double_t temp;
temp = fParMax[i]->GetNumber();
fParMax[i]->SetNumber(fParMin[i]->GetNumber());
fParMin[i]->SetNumber(temp);
}
fParMax[i]->Connect("ReturnPressed()", "TFunctionParametersDialog", this, "DoParMaxLimit()");
}
f1->AddFrame(fContMax, new TGLayoutHints(kLHintsExpandX, 5, 5, 5, 5));
fUpdate = new TGCheckButton(this, "&Immediate preview", kUPDATE);
fUpdate->SetToolTipText("Immediate function redrawing");
AddFrame(fUpdate, new TGLayoutHints(kLHintsLeft | kLHintsCenterY, 5, 5, 5, 5));
fUpdate->Connect("Toggled(Bool_t)", "TFunctionParametersDialog", this, "HandleButtons(Bool_t)");
TGCompositeFrame *f2 = new TGCompositeFrame(this, 270, 20, kHorizontalFrame | kFixedWidth);
AddFrame(f2, new TGLayoutHints(kLHintsRight, 20, 20, 5, 1));
fReset = new TGTextButton(f2, "&Reset", kRESET);
f2->AddFrame(fReset, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX,5,5,5,5));
fReset->SetToolTipText("Reset the parameter settings");
fReset->SetState(kButtonDisabled);
fReset->Connect("Clicked()", "TFunctionParametersDialog", this, "DoReset()");
fApply = new TGTextButton(f2, "&Apply", kAPPLY);
f2->AddFrame(fApply, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX,5,5,5,5));
fApply->SetState(kButtonDisabled);
fApply->Connect("Clicked()", "TFunctionParametersDialog", this, "DoApply()");
fApply->SetToolTipText("Apply parameter settings and redraw the function");
fOK = new TGTextButton(f2, "&OK", kOK);
f2->AddFrame(fOK, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX,5,5,5,5));
fOK->SetToolTipText("Apply parameter settings, redraw function and close this dialog");
fOK->Connect("Clicked()", "TFunctionParametersDialog", this, "DoOK()");
fCancel = new TGTextButton(f2, "&Cancel", kCANCEL);
f2->AddFrame(fCancel, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX,5,5,5,5));
fCancel->SetToolTipText("Close this dialog with no parameter changes");
fCancel->Connect("Clicked()", "TFunctionParametersDialog", this, "DoCancel()");
MapSubwindows();
Resize(GetDefaultSize());
CenterOnParent(kFALSE, kBottomLeft);
SetWindowName(Form("Set Parameters of %s", fFunc->GetTitle()));
MapWindow();
for (Int_t i = 0; i < fNP; i++ ) {
if (fParFix[i]->GetState() == kButtonDown) {
fParVal[i]->SetState(kFALSE);
fParMin[i]->SetEnabled(kFALSE);
fParMax[i]->SetEnabled(kFALSE);
fParSld[i]->UnmapWindow();
} else {
fParSld[i]->SetRange(fParMin[i]->GetNumber(), fParMax[i]->GetNumber());
fParSld[i]->SetPosition(fParMin[i]->GetNumber(), fParMax[i]->GetNumber());
fParSld[i]->SetPointerPosition(fPval[i]);
fParSld[i]->Connect("PointerPositionChanged()", "TFunctionParametersDialog",
this, "DoSlider()");
fParSld[i]->Connect("PositionChanged()", "TFunctionParametersDialog",
this, "DoSlider()");
}
}
gClient->WaitFor(this);
}
TFunctionParametersDialog::~TFunctionParametersDialog()
{
TGFrameElement *el;
TIter next(GetList());
while ((el = (TGFrameElement *)next())) {
if (!strcmp(el->fFrame->ClassName(), "TGCompositeFrame")) {
TGFrameElement *el1;
TIter next1(((TGCompositeFrame *)el->fFrame)->GetList());
while ((el1 = (TGFrameElement *)next1())) {
if (!strcmp(el1->fFrame->ClassName(), "TGCompositeFrame"))
((TGCompositeFrame *)el1->fFrame)->Cleanup();
}
((TGCompositeFrame *)el->fFrame)->Cleanup();
}
}
Cleanup();
delete [] fPval;
delete [] fPmin;
delete [] fPmax;
delete [] fPerr;
}
void TFunctionParametersDialog::CloseWindow()
{
if (fHasChanges) {
Int_t ret;
const char *txt;
txt = "Do you want to apply last parameters' setting?";
new TGMsgBox(fClient->GetRoot(), GetMainFrame(),
"Parameters Have Been Changed", txt, kMBIconExclamation,
kMBYes | kMBNo | kMBCancel, &ret);
if (ret == kMBYes) {
DoOK();
return;
} else if (ret == kMBNo) {
DoReset();
} else return;
}
DeleteWindow();
}
void TFunctionParametersDialog::DoCancel()
{
if (fHasChanges)
DoReset();
TTimer::SingleShot(50, "TFunctionParametersDialog", this, "CloseWindow()");
}
void TFunctionParametersDialog::DoFix(Bool_t on)
{
fReset->SetState(kButtonUp);
TGButton *bt = (TGButton *) gTQSender;
Int_t id = bt->WidgetId();
fHasChanges = kTRUE;
for (Int_t i = 0; i < fNP; i++ ) {
if (id == kFIX*fNP+i) {
if (on) {
if (fParVal[i]->GetNumber() != 0) {
fParMin[i]->SetNumber(fParVal[i]->GetNumber());
fParMin[i]->SetEnabled(kFALSE);
fParMax[i]->SetNumber(fParVal[i]->GetNumber());
fParMax[i]->SetEnabled(kFALSE);
} else {
fParMin[i]->SetNumber(1.);
fParMin[i]->SetEnabled(kFALSE);
fParMax[i]->SetNumber(1.);
fParMax[i]->SetEnabled(kFALSE);
}
fParVal[i]->SetState(kFALSE);
fParSld[i]->Disconnect("PointerPositionChanged()");
fParSld[i]->Disconnect("PositionChanged()");
fParSld[i]->UnmapWindow();
fFunc->FixParameter(i, fParVal[i]->GetNumber());
} else if (!fParMin[i]->IsEnabled()) {
if (fPmin[i] != fPmax[i]) {
if (fPmin[i])
fParMin[i]->SetNumber(fPmin[i]);
else if (fPerr[i])
fParMin[i]->SetNumber(fPval[i]-3*fPerr[i]);
else if (fPval[i])
fParMin[i]->SetNumber(fPval[i]-0.1*fPval[i]);
else
fParMin[i]->SetNumber(1.0);
if (fPmax[i])
fParMax[i]->SetNumber(fPmax[i]);
else if (fPerr[i])
fParMax[i]->SetNumber(fPval[i]+3*fPerr[i]);
else if (fPval[i])
fParMax[i]->SetNumber(fPval[i]+0.1*fPval[i]);
else
fParMax[i]->SetNumber(1.0);
} else if (fPval[i]) {
fParMin[i]->SetNumber(fPval[i]-0.1*fPval[i]);
fParMax[i]->SetNumber(fPval[i]+0.1*fPval[i]);
} else {
fParMin[i]->SetNumber(1.0);
fParMax[i]->SetNumber(1.0);
}
if (fParMax[i]->GetNumber() < fParMin[i]->GetNumber()){
Double_t temp;
temp = fParMax[i]->GetNumber();
fParMax[i]->SetNumber(fParMin[i]->GetNumber());
fParMin[i]->SetNumber(temp);
}
fParMax[i]->SetEnabled(kTRUE);
fParMin[i]->SetEnabled(kTRUE);
fParSld[i]->MapWindow();
fParVal[i]->SetState(kTRUE);
fParSld[i]->SetRange(fParMin[i]->GetNumber(), fParMax[i]->GetNumber());
fParSld[i]->SetPosition(fParMin[i]->GetNumber(), fParMax[i]->GetNumber());
fParSld[i]->SetPointerPosition(fPval[i]);
fParSld[i]->Connect("PointerPositionChanged()", "TFunctionParametersDialog",
this, "DoSlider()");
fParSld[i]->Connect("PositionChanged()", "TFunctionParametersDialog",
this, "DoSlider()");
fFunc->SetParLimits(i, fParMin[i]->GetNumber(), fParMax[i]->GetNumber());
}
}
}
if (fUpdate->GetState() == kButtonDown)
RedrawFunction();
else if ((fApply->GetState() == kButtonDisabled) && fHasChanges)
fApply->SetState(kButtonUp);
}
void TFunctionParametersDialog::DoOK()
{
if (fHasChanges)
RedrawFunction();
fFunc->SetRange(fRangexmin, fRangexmax);
TTimer::SingleShot(50, "TFunctionParametersDialog", this, "CloseWindow()");
}
void TFunctionParametersDialog::DoApply()
{
RedrawFunction();
fApply->SetState(kButtonDisabled);
if (fReset->GetState() == kButtonDisabled)
fReset->SetState(kButtonUp);
}
void TFunctionParametersDialog::DoReset()
{
fHasChanges = kTRUE;
Int_t k = fNP;
for (Int_t i = 0; i < fNP; i++) {
if (fParVal[i]->GetNumber() == fPval[i])
k--;
else
break;
}
if (!k) {
if (fReset->GetState() == kButtonUp)
fReset->SetState(kButtonDisabled);
fHasChanges = kFALSE;
return;
}
for (Int_t i = 0; i < fNP; i++) {
fFunc->SetParameter(i, fPval[i]);
fFunc->SetParLimits(i, fPmin[i], fPmax[i]);
fFunc->SetParError(i, fPerr[i]);
if (fPmin[i])
fParMin[i]->SetNumber(fPmin[i]);
else if (fPerr[i])
fParMin[i]->SetNumber(fPval[i]-3*fPerr[i]);
else if (fPval[i])
fParMin[i]->SetNumber(fPval[i]-0.1*fPval[i]);
else
fParMin[i]->SetNumber(1.0);
if (fPmax[i])
fParMax[i]->SetNumber(fPmax[i]);
else if (fPerr[i])
fParMax[i]->SetNumber(fPval[i]+3*fPerr[i]);
else if (fPval[i])
fParMax[i]->SetNumber(fPval[i]+0.1*fPval[i]);
else
fParMax[i]->SetNumber(1.0);
if (fParMax[i]->GetNumber() < fParMin[i]->GetNumber()){
Double_t temp;
temp = fParMax[i]->GetNumber();
fParMax[i]->SetNumber(fParMin[i]->GetNumber());
fParMin[i]->SetNumber(temp);
}
if (fParMin[i]->GetNumber() == fParMax[i]->GetNumber()) {
fParVal[i]->SetState(kFALSE);
fParMin[i]->SetEnabled(kFALSE);
fParMax[i]->SetEnabled(kFALSE);
fParSld[i]->Disconnect("PointerPositionChanged()");
fParSld[i]->Disconnect("PositionChanged()");
fParSld[i]->UnmapWindow();
fFunc->FixParameter(i, fParVal[i]->GetNumber());
fParFix[i]->SetState(kButtonDown);
} else {
fParFix[i]->SetState(kButtonUp);
if (!fParMax[i]->IsEnabled()) {
fParMax[i]->SetEnabled(kTRUE);
fParMin[i]->SetEnabled(kTRUE);
fParVal[i]->SetState(kTRUE);
fParSld[i]->SetRange(fParMin[i]->GetNumber(), fParMax[i]->GetNumber());
fParSld[i]->SetPosition(fParMin[i]->GetNumber(), fParMax[i]->GetNumber());
fParSld[i]->SetPointerPosition(fPval[i]);
fParSld[i]->MapWindow();
fParSld[i]->Connect("PointerPositionChanged()", "TFunctionParametersDialog",
this, "DoSlider()");
fParSld[i]->Connect("PositionChanged()", "TFunctionParametersDialog",
this, "DoSlider()");
}
}
fParVal[i]->SetNumber(fPval[i]);
fParSld[i]->SetRange(fParMin[i]->GetNumber(), fParMax[i]->GetNumber());
fParSld[i]->SetPosition(fParMin[i]->GetNumber(), fParMax[i]->GetNumber());
fParSld[i]->SetPointerPosition(fPval[i]);
}
if (fUpdate->GetState() == kButtonDown)
RedrawFunction();
else if ((fApply->GetState() == kButtonDisabled) && fHasChanges)
fApply->SetState(kButtonUp);
fHasChanges = kFALSE;
fReset->SetState(kButtonDisabled);
}
void TFunctionParametersDialog::DoSlider()
{
TGTripleHSlider *sl = (TGTripleHSlider *) gTQSender;
Int_t id = sl->WidgetId();
fHasChanges = kTRUE;
for (Int_t i = 0; i < fNP; i++ ) {
if (id == kSLD*fNP+i) {
fFunc->SetParameter(i,fParSld[i]->GetPointerPosition());
fFunc->SetParLimits(i,fParSld[i]->GetMinPosition(),
fParSld[i]->GetMaxPosition());
fParMin[i]->SetNumber(fParSld[i]->GetMinPosition());
fParMax[i]->SetNumber(fParSld[i]->GetMaxPosition());
fParVal[i]->SetNumber(fParSld[i]->GetPointerPosition());
}
}
if (fUpdate->GetState() == kButtonDown)
RedrawFunction();
else if ((fApply->GetState() == kButtonDisabled) && fHasChanges)
fApply->SetState(kButtonUp);
if (fReset->GetState() == kButtonDisabled)
fReset->SetState(kButtonUp);
}
void TFunctionParametersDialog::DoParValue()
{
TGNumberEntry *ne = (TGNumberEntry *) gTQSender;
Int_t id = ne->WidgetId();
for (Int_t i = 0; i < fNP; i++ ) {
if (id == kVAL*fNP+i) {
fParSld[i]->SetPointerPosition(fParVal[i]->GetNumber());
if (fParVal[i]->GetNumber() < fParMin[i]->GetNumber()) {
fParMin[i]->SetNumber(fParVal[i]->GetNumber());
fClient->NeedRedraw(fParMin[i]);
fParSld[i]->SetRange(fParMin[i]->GetNumber(),
fParMax[i]->GetNumber());
fParSld[i]->SetPosition(fParMin[i]->GetNumber(),
fParMax[i]->GetNumber());
}
if (fParVal[i]->GetNumber() > fParMax[i]->GetNumber()) {
fParMax[i]->SetNumber(fParVal[i]->GetNumber());
fClient->NeedRedraw(fParMax[i]);
fParSld[i]->SetRange(fParMin[i]->GetNumber(),
fParMax[i]->GetNumber());
fParSld[i]->SetPosition(fParMin[i]->GetNumber(),
fParMax[i]->GetNumber());
}
fClient->NeedRedraw(fParSld[i]);
fFunc->SetParameter(i,fParSld[i]->GetPointerPosition());
fFunc->SetParLimits(i,fParSld[i]->GetMinPosition(),
fParSld[i]->GetMaxPosition());
}
}
fHasChanges = kTRUE;
if (fUpdate->GetState() == kButtonDown)
RedrawFunction();
else if ((fApply->GetState() == kButtonDisabled) && fHasChanges)
fApply->SetState(kButtonUp);
if (fReset->GetState() == kButtonDisabled)
fReset->SetState(kButtonUp);
}
void TFunctionParametersDialog::DoParMinLimit()
{
TGNumberEntryField *ne = (TGNumberEntryField *) gTQSender;
Int_t id = ne->WidgetId();
for (Int_t i = 0; i < fNP; i++ ) {
if (id == kMIN*fNP+i) {
if (fParMin[i]->GetNumber() > fParMax[i]->GetNumber()) {
Int_t ret;
const char *txt;
txt = "The lower parameter bound cannot be bigger then the upper one.";
new TGMsgBox(fClient->GetRoot(), GetMainFrame(),
"Parameter Limits", txt, kMBIconExclamation,kMBOk,&ret);
fParMin[i]->SetNumber(fParVal[i]->GetNumber());
return;
}
fParSld[i]->SetRange(fParMin[i]->GetNumber(),
fParMax[i]->GetNumber());
fParSld[i]->SetPosition(fParMin[i]->GetNumber(),
fParMax[i]->GetNumber());
fParSld[i]->SetPointerPosition(fParVal[i]->GetNumber());
fClient->NeedRedraw(fParSld[i]);
}
}
fHasChanges = kTRUE;
if (fUpdate->GetState() == kButtonDown)
RedrawFunction();
else if ((fApply->GetState() == kButtonDisabled) && fHasChanges)
fApply->SetState(kButtonUp);
if (fReset->GetState() == kButtonDisabled)
fReset->SetState(kButtonUp);
}
void TFunctionParametersDialog::DoParMaxLimit()
{
TGNumberEntryField *ne = (TGNumberEntryField *) gTQSender;
Int_t id = ne->WidgetId();
for (Int_t i = 0; i < fNP; i++ ) {
if (id == kMAX*fNP+i) {
if (fParMin[i]->GetNumber() > fParMax[i]->GetNumber()) {
Int_t ret;
const char *txt;
txt = "The lower parameter bound cannot be bigger then the upper one.";
new TGMsgBox(fClient->GetRoot(), GetMainFrame(),
"Parameter Limits", txt, kMBIconExclamation,kMBOk,&ret);
fParMax[i]->SetNumber(fParVal[i]->GetNumber());
return;
}
fParSld[i]->SetRange(fParMin[i]->GetNumber(),
fParMax[i]->GetNumber());
fParSld[i]->SetPosition(fParMin[i]->GetNumber(),
fParMax[i]->GetNumber());
fParSld[i]->SetPointerPosition(fParVal[i]->GetNumber());
fClient->NeedRedraw(fParSld[i]);
}
}
fHasChanges = kTRUE;
if (fUpdate->GetState() == kButtonDown)
RedrawFunction();
else if ((fApply->GetState() == kButtonDisabled) && fHasChanges)
fApply->SetState(kButtonUp);
if (fReset->GetState() == kButtonDisabled)
fReset->SetState(kButtonUp);
}
void TFunctionParametersDialog::RedrawFunction()
{
TString opt = fFunc->GetDrawOption();
opt.ToUpper();
if (!opt.Contains("SAME"))
opt += "SAME";
fFunc->SetRange(fRXmin, fRXmax);
fFunc->Draw(opt);
fFpad->Modified();
fFpad->Update();
fHasChanges = kFALSE;
}
void TFunctionParametersDialog::HandleButtons(Bool_t update)
{
if (update && fHasChanges)
RedrawFunction();
else if ((fApply->GetState() == kButtonDisabled) && fHasChanges) {
fApply->SetState(kButtonUp);
}
}
TFunctionParametersDialog.cxx:1 TFunctionParametersDialog.cxx:2 TFunctionParametersDialog.cxx:3 TFunctionParametersDialog.cxx:4 TFunctionParametersDialog.cxx:5 TFunctionParametersDialog.cxx:6 TFunctionParametersDialog.cxx:7 TFunctionParametersDialog.cxx:8 TFunctionParametersDialog.cxx:9 TFunctionParametersDialog.cxx:10 TFunctionParametersDialog.cxx:11 TFunctionParametersDialog.cxx:12 TFunctionParametersDialog.cxx:13 TFunctionParametersDialog.cxx:14 TFunctionParametersDialog.cxx:15 TFunctionParametersDialog.cxx:16 TFunctionParametersDialog.cxx:17 TFunctionParametersDialog.cxx:18 TFunctionParametersDialog.cxx:19 TFunctionParametersDialog.cxx:20 TFunctionParametersDialog.cxx:21 TFunctionParametersDialog.cxx:22 TFunctionParametersDialog.cxx:23 TFunctionParametersDialog.cxx:24 TFunctionParametersDialog.cxx:25 TFunctionParametersDialog.cxx:26 TFunctionParametersDialog.cxx:27 TFunctionParametersDialog.cxx:28 TFunctionParametersDialog.cxx:29 TFunctionParametersDialog.cxx:30 TFunctionParametersDialog.cxx:31 TFunctionParametersDialog.cxx:32 TFunctionParametersDialog.cxx:33 TFunctionParametersDialog.cxx:34 TFunctionParametersDialog.cxx:35 TFunctionParametersDialog.cxx:36 TFunctionParametersDialog.cxx:37 TFunctionParametersDialog.cxx:38 TFunctionParametersDialog.cxx:39 TFunctionParametersDialog.cxx:40 TFunctionParametersDialog.cxx:41 TFunctionParametersDialog.cxx:42 TFunctionParametersDialog.cxx:43 TFunctionParametersDialog.cxx:44 TFunctionParametersDialog.cxx:45 TFunctionParametersDialog.cxx:46 TFunctionParametersDialog.cxx:47 TFunctionParametersDialog.cxx:48 TFunctionParametersDialog.cxx:49 TFunctionParametersDialog.cxx:50 TFunctionParametersDialog.cxx:51 TFunctionParametersDialog.cxx:52 TFunctionParametersDialog.cxx:53 TFunctionParametersDialog.cxx:54 TFunctionParametersDialog.cxx:55 TFunctionParametersDialog.cxx:56 TFunctionParametersDialog.cxx:57 TFunctionParametersDialog.cxx:58 TFunctionParametersDialog.cxx:59 TFunctionParametersDialog.cxx:60 TFunctionParametersDialog.cxx:61 TFunctionParametersDialog.cxx:62 TFunctionParametersDialog.cxx:63 TFunctionParametersDialog.cxx:64 TFunctionParametersDialog.cxx:65 TFunctionParametersDialog.cxx:66 TFunctionParametersDialog.cxx:67 TFunctionParametersDialog.cxx:68 TFunctionParametersDialog.cxx:69 TFunctionParametersDialog.cxx:70 TFunctionParametersDialog.cxx:71 TFunctionParametersDialog.cxx:72 TFunctionParametersDialog.cxx:73 TFunctionParametersDialog.cxx:74 TFunctionParametersDialog.cxx:75 TFunctionParametersDialog.cxx:76 TFunctionParametersDialog.cxx:77 TFunctionParametersDialog.cxx:78 TFunctionParametersDialog.cxx:79 TFunctionParametersDialog.cxx:80 TFunctionParametersDialog.cxx:81 TFunctionParametersDialog.cxx:82 TFunctionParametersDialog.cxx:83 TFunctionParametersDialog.cxx:84 TFunctionParametersDialog.cxx:85 TFunctionParametersDialog.cxx:86 TFunctionParametersDialog.cxx:87 TFunctionParametersDialog.cxx:88 TFunctionParametersDialog.cxx:89 TFunctionParametersDialog.cxx:90 TFunctionParametersDialog.cxx:91 TFunctionParametersDialog.cxx:92 TFunctionParametersDialog.cxx:93 TFunctionParametersDialog.cxx:94 TFunctionParametersDialog.cxx:95 TFunctionParametersDialog.cxx:96 TFunctionParametersDialog.cxx:97 TFunctionParametersDialog.cxx:98 TFunctionParametersDialog.cxx:99 TFunctionParametersDialog.cxx:100 TFunctionParametersDialog.cxx:101 TFunctionParametersDialog.cxx:102 TFunctionParametersDialog.cxx:103 TFunctionParametersDialog.cxx:104 TFunctionParametersDialog.cxx:105 TFunctionParametersDialog.cxx:106 TFunctionParametersDialog.cxx:107 TFunctionParametersDialog.cxx:108 TFunctionParametersDialog.cxx:109 TFunctionParametersDialog.cxx:110 TFunctionParametersDialog.cxx:111 TFunctionParametersDialog.cxx:112 TFunctionParametersDialog.cxx:113 TFunctionParametersDialog.cxx:114 TFunctionParametersDialog.cxx:115 TFunctionParametersDialog.cxx:116 TFunctionParametersDialog.cxx:117 TFunctionParametersDialog.cxx:118 TFunctionParametersDialog.cxx:119 TFunctionParametersDialog.cxx:120 TFunctionParametersDialog.cxx:121 TFunctionParametersDialog.cxx:122 TFunctionParametersDialog.cxx:123 TFunctionParametersDialog.cxx:124 TFunctionParametersDialog.cxx:125 TFunctionParametersDialog.cxx:126 TFunctionParametersDialog.cxx:127 TFunctionParametersDialog.cxx:128 TFunctionParametersDialog.cxx:129 TFunctionParametersDialog.cxx:130 TFunctionParametersDialog.cxx:131 TFunctionParametersDialog.cxx:132 TFunctionParametersDialog.cxx:133 TFunctionParametersDialog.cxx:134 TFunctionParametersDialog.cxx:135 TFunctionParametersDialog.cxx:136 TFunctionParametersDialog.cxx:137 TFunctionParametersDialog.cxx:138 TFunctionParametersDialog.cxx:139 TFunctionParametersDialog.cxx:140 TFunctionParametersDialog.cxx:141 TFunctionParametersDialog.cxx:142 TFunctionParametersDialog.cxx:143 TFunctionParametersDialog.cxx:144 TFunctionParametersDialog.cxx:145 TFunctionParametersDialog.cxx:146 TFunctionParametersDialog.cxx:147 TFunctionParametersDialog.cxx:148 TFunctionParametersDialog.cxx:149 TFunctionParametersDialog.cxx:150 TFunctionParametersDialog.cxx:151 TFunctionParametersDialog.cxx:152 TFunctionParametersDialog.cxx:153 TFunctionParametersDialog.cxx:154 TFunctionParametersDialog.cxx:155 TFunctionParametersDialog.cxx:156 TFunctionParametersDialog.cxx:157 TFunctionParametersDialog.cxx:158 TFunctionParametersDialog.cxx:159 TFunctionParametersDialog.cxx:160 TFunctionParametersDialog.cxx:161 TFunctionParametersDialog.cxx:162 TFunctionParametersDialog.cxx:163 TFunctionParametersDialog.cxx:164 TFunctionParametersDialog.cxx:165 TFunctionParametersDialog.cxx:166 TFunctionParametersDialog.cxx:167 TFunctionParametersDialog.cxx:168 TFunctionParametersDialog.cxx:169 TFunctionParametersDialog.cxx:170 TFunctionParametersDialog.cxx:171 TFunctionParametersDialog.cxx:172 TFunctionParametersDialog.cxx:173 TFunctionParametersDialog.cxx:174 TFunctionParametersDialog.cxx:175 TFunctionParametersDialog.cxx:176 TFunctionParametersDialog.cxx:177 TFunctionParametersDialog.cxx:178 TFunctionParametersDialog.cxx:179 TFunctionParametersDialog.cxx:180 TFunctionParametersDialog.cxx:181 TFunctionParametersDialog.cxx:182 TFunctionParametersDialog.cxx:183 TFunctionParametersDialog.cxx:184 TFunctionParametersDialog.cxx:185 TFunctionParametersDialog.cxx:186 TFunctionParametersDialog.cxx:187 TFunctionParametersDialog.cxx:188 TFunctionParametersDialog.cxx:189 TFunctionParametersDialog.cxx:190 TFunctionParametersDialog.cxx:191 TFunctionParametersDialog.cxx:192 TFunctionParametersDialog.cxx:193 TFunctionParametersDialog.cxx:194 TFunctionParametersDialog.cxx:195 TFunctionParametersDialog.cxx:196 TFunctionParametersDialog.cxx:197 TFunctionParametersDialog.cxx:198 TFunctionParametersDialog.cxx:199 TFunctionParametersDialog.cxx:200 TFunctionParametersDialog.cxx:201 TFunctionParametersDialog.cxx:202 TFunctionParametersDialog.cxx:203 TFunctionParametersDialog.cxx:204 TFunctionParametersDialog.cxx:205 TFunctionParametersDialog.cxx:206 TFunctionParametersDialog.cxx:207 TFunctionParametersDialog.cxx:208 TFunctionParametersDialog.cxx:209 TFunctionParametersDialog.cxx:210 TFunctionParametersDialog.cxx:211 TFunctionParametersDialog.cxx:212 TFunctionParametersDialog.cxx:213 TFunctionParametersDialog.cxx:214 TFunctionParametersDialog.cxx:215 TFunctionParametersDialog.cxx:216 TFunctionParametersDialog.cxx:217 TFunctionParametersDialog.cxx:218 TFunctionParametersDialog.cxx:219 TFunctionParametersDialog.cxx:220 TFunctionParametersDialog.cxx:221 TFunctionParametersDialog.cxx:222 TFunctionParametersDialog.cxx:223 TFunctionParametersDialog.cxx:224 TFunctionParametersDialog.cxx:225 TFunctionParametersDialog.cxx:226 TFunctionParametersDialog.cxx:227 TFunctionParametersDialog.cxx:228 TFunctionParametersDialog.cxx:229 TFunctionParametersDialog.cxx:230 TFunctionParametersDialog.cxx:231 TFunctionParametersDialog.cxx:232 TFunctionParametersDialog.cxx:233 TFunctionParametersDialog.cxx:234 TFunctionParametersDialog.cxx:235 TFunctionParametersDialog.cxx:236 TFunctionParametersDialog.cxx:237 TFunctionParametersDialog.cxx:238 TFunctionParametersDialog.cxx:239 TFunctionParametersDialog.cxx:240 TFunctionParametersDialog.cxx:241 TFunctionParametersDialog.cxx:242 TFunctionParametersDialog.cxx:243 TFunctionParametersDialog.cxx:244 TFunctionParametersDialog.cxx:245 TFunctionParametersDialog.cxx:246 TFunctionParametersDialog.cxx:247 TFunctionParametersDialog.cxx:248 TFunctionParametersDialog.cxx:249 TFunctionParametersDialog.cxx:250 TFunctionParametersDialog.cxx:251 TFunctionParametersDialog.cxx:252 TFunctionParametersDialog.cxx:253 TFunctionParametersDialog.cxx:254 TFunctionParametersDialog.cxx:255 TFunctionParametersDialog.cxx:256 TFunctionParametersDialog.cxx:257 TFunctionParametersDialog.cxx:258 TFunctionParametersDialog.cxx:259 TFunctionParametersDialog.cxx:260 TFunctionParametersDialog.cxx:261 TFunctionParametersDialog.cxx:262 TFunctionParametersDialog.cxx:263 TFunctionParametersDialog.cxx:264 TFunctionParametersDialog.cxx:265 TFunctionParametersDialog.cxx:266 TFunctionParametersDialog.cxx:267 TFunctionParametersDialog.cxx:268 TFunctionParametersDialog.cxx:269 TFunctionParametersDialog.cxx:270 TFunctionParametersDialog.cxx:271 TFunctionParametersDialog.cxx:272 TFunctionParametersDialog.cxx:273 TFunctionParametersDialog.cxx:274 TFunctionParametersDialog.cxx:275 TFunctionParametersDialog.cxx:276 TFunctionParametersDialog.cxx:277 TFunctionParametersDialog.cxx:278 TFunctionParametersDialog.cxx:279 TFunctionParametersDialog.cxx:280 TFunctionParametersDialog.cxx:281 TFunctionParametersDialog.cxx:282 TFunctionParametersDialog.cxx:283 TFunctionParametersDialog.cxx:284 TFunctionParametersDialog.cxx:285 TFunctionParametersDialog.cxx:286 TFunctionParametersDialog.cxx:287 TFunctionParametersDialog.cxx:288 TFunctionParametersDialog.cxx:289 TFunctionParametersDialog.cxx:290 TFunctionParametersDialog.cxx:291 TFunctionParametersDialog.cxx:292 TFunctionParametersDialog.cxx:293 TFunctionParametersDialog.cxx:294 TFunctionParametersDialog.cxx:295 TFunctionParametersDialog.cxx:296 TFunctionParametersDialog.cxx:297 TFunctionParametersDialog.cxx:298 TFunctionParametersDialog.cxx:299 TFunctionParametersDialog.cxx:300 TFunctionParametersDialog.cxx:301 TFunctionParametersDialog.cxx:302 TFunctionParametersDialog.cxx:303 TFunctionParametersDialog.cxx:304 TFunctionParametersDialog.cxx:305 TFunctionParametersDialog.cxx:306 TFunctionParametersDialog.cxx:307 TFunctionParametersDialog.cxx:308 TFunctionParametersDialog.cxx:309 TFunctionParametersDialog.cxx:310 TFunctionParametersDialog.cxx:311 TFunctionParametersDialog.cxx:312 TFunctionParametersDialog.cxx:313 TFunctionParametersDialog.cxx:314 TFunctionParametersDialog.cxx:315 TFunctionParametersDialog.cxx:316 TFunctionParametersDialog.cxx:317 TFunctionParametersDialog.cxx:318 TFunctionParametersDialog.cxx:319 TFunctionParametersDialog.cxx:320 TFunctionParametersDialog.cxx:321 TFunctionParametersDialog.cxx:322 TFunctionParametersDialog.cxx:323 TFunctionParametersDialog.cxx:324 TFunctionParametersDialog.cxx:325 TFunctionParametersDialog.cxx:326 TFunctionParametersDialog.cxx:327 TFunctionParametersDialog.cxx:328 TFunctionParametersDialog.cxx:329 TFunctionParametersDialog.cxx:330 TFunctionParametersDialog.cxx:331 TFunctionParametersDialog.cxx:332 TFunctionParametersDialog.cxx:333 TFunctionParametersDialog.cxx:334 TFunctionParametersDialog.cxx:335 TFunctionParametersDialog.cxx:336 TFunctionParametersDialog.cxx:337 TFunctionParametersDialog.cxx:338 TFunctionParametersDialog.cxx:339 TFunctionParametersDialog.cxx:340 TFunctionParametersDialog.cxx:341 TFunctionParametersDialog.cxx:342 TFunctionParametersDialog.cxx:343 TFunctionParametersDialog.cxx:344 TFunctionParametersDialog.cxx:345 TFunctionParametersDialog.cxx:346 TFunctionParametersDialog.cxx:347 TFunctionParametersDialog.cxx:348 TFunctionParametersDialog.cxx:349 TFunctionParametersDialog.cxx:350 TFunctionParametersDialog.cxx:351 TFunctionParametersDialog.cxx:352 TFunctionParametersDialog.cxx:353 TFunctionParametersDialog.cxx:354 TFunctionParametersDialog.cxx:355 TFunctionParametersDialog.cxx:356 TFunctionParametersDialog.cxx:357 TFunctionParametersDialog.cxx:358 TFunctionParametersDialog.cxx:359 TFunctionParametersDialog.cxx:360 TFunctionParametersDialog.cxx:361 TFunctionParametersDialog.cxx:362 TFunctionParametersDialog.cxx:363 TFunctionParametersDialog.cxx:364 TFunctionParametersDialog.cxx:365 TFunctionParametersDialog.cxx:366 TFunctionParametersDialog.cxx:367 TFunctionParametersDialog.cxx:368 TFunctionParametersDialog.cxx:369 TFunctionParametersDialog.cxx:370 TFunctionParametersDialog.cxx:371 TFunctionParametersDialog.cxx:372 TFunctionParametersDialog.cxx:373 TFunctionParametersDialog.cxx:374 TFunctionParametersDialog.cxx:375 TFunctionParametersDialog.cxx:376 TFunctionParametersDialog.cxx:377 TFunctionParametersDialog.cxx:378 TFunctionParametersDialog.cxx:379 TFunctionParametersDialog.cxx:380 TFunctionParametersDialog.cxx:381 TFunctionParametersDialog.cxx:382 TFunctionParametersDialog.cxx:383 TFunctionParametersDialog.cxx:384 TFunctionParametersDialog.cxx:385 TFunctionParametersDialog.cxx:386 TFunctionParametersDialog.cxx:387 TFunctionParametersDialog.cxx:388 TFunctionParametersDialog.cxx:389 TFunctionParametersDialog.cxx:390 TFunctionParametersDialog.cxx:391 TFunctionParametersDialog.cxx:392 TFunctionParametersDialog.cxx:393 TFunctionParametersDialog.cxx:394 TFunctionParametersDialog.cxx:395 TFunctionParametersDialog.cxx:396 TFunctionParametersDialog.cxx:397 TFunctionParametersDialog.cxx:398 TFunctionParametersDialog.cxx:399 TFunctionParametersDialog.cxx:400 TFunctionParametersDialog.cxx:401 TFunctionParametersDialog.cxx:402 TFunctionParametersDialog.cxx:403 TFunctionParametersDialog.cxx:404 TFunctionParametersDialog.cxx:405 TFunctionParametersDialog.cxx:406 TFunctionParametersDialog.cxx:407 TFunctionParametersDialog.cxx:408 TFunctionParametersDialog.cxx:409 TFunctionParametersDialog.cxx:410 TFunctionParametersDialog.cxx:411 TFunctionParametersDialog.cxx:412 TFunctionParametersDialog.cxx:413 TFunctionParametersDialog.cxx:414 TFunctionParametersDialog.cxx:415 TFunctionParametersDialog.cxx:416 TFunctionParametersDialog.cxx:417 TFunctionParametersDialog.cxx:418 TFunctionParametersDialog.cxx:419 TFunctionParametersDialog.cxx:420 TFunctionParametersDialog.cxx:421 TFunctionParametersDialog.cxx:422 TFunctionParametersDialog.cxx:423 TFunctionParametersDialog.cxx:424 TFunctionParametersDialog.cxx:425 TFunctionParametersDialog.cxx:426 TFunctionParametersDialog.cxx:427 TFunctionParametersDialog.cxx:428 TFunctionParametersDialog.cxx:429 TFunctionParametersDialog.cxx:430 TFunctionParametersDialog.cxx:431 TFunctionParametersDialog.cxx:432 TFunctionParametersDialog.cxx:433 TFunctionParametersDialog.cxx:434 TFunctionParametersDialog.cxx:435 TFunctionParametersDialog.cxx:436 TFunctionParametersDialog.cxx:437 TFunctionParametersDialog.cxx:438 TFunctionParametersDialog.cxx:439 TFunctionParametersDialog.cxx:440 TFunctionParametersDialog.cxx:441 TFunctionParametersDialog.cxx:442 TFunctionParametersDialog.cxx:443 TFunctionParametersDialog.cxx:444 TFunctionParametersDialog.cxx:445 TFunctionParametersDialog.cxx:446 TFunctionParametersDialog.cxx:447 TFunctionParametersDialog.cxx:448 TFunctionParametersDialog.cxx:449 TFunctionParametersDialog.cxx:450 TFunctionParametersDialog.cxx:451 TFunctionParametersDialog.cxx:452 TFunctionParametersDialog.cxx:453 TFunctionParametersDialog.cxx:454 TFunctionParametersDialog.cxx:455 TFunctionParametersDialog.cxx:456 TFunctionParametersDialog.cxx:457 TFunctionParametersDialog.cxx:458 TFunctionParametersDialog.cxx:459 TFunctionParametersDialog.cxx:460 TFunctionParametersDialog.cxx:461 TFunctionParametersDialog.cxx:462 TFunctionParametersDialog.cxx:463 TFunctionParametersDialog.cxx:464 TFunctionParametersDialog.cxx:465 TFunctionParametersDialog.cxx:466 TFunctionParametersDialog.cxx:467 TFunctionParametersDialog.cxx:468 TFunctionParametersDialog.cxx:469 TFunctionParametersDialog.cxx:470 TFunctionParametersDialog.cxx:471 TFunctionParametersDialog.cxx:472 TFunctionParametersDialog.cxx:473 TFunctionParametersDialog.cxx:474 TFunctionParametersDialog.cxx:475 TFunctionParametersDialog.cxx:476 TFunctionParametersDialog.cxx:477 TFunctionParametersDialog.cxx:478 TFunctionParametersDialog.cxx:479 TFunctionParametersDialog.cxx:480 TFunctionParametersDialog.cxx:481 TFunctionParametersDialog.cxx:482 TFunctionParametersDialog.cxx:483 TFunctionParametersDialog.cxx:484 TFunctionParametersDialog.cxx:485 TFunctionParametersDialog.cxx:486 TFunctionParametersDialog.cxx:487 TFunctionParametersDialog.cxx:488 TFunctionParametersDialog.cxx:489 TFunctionParametersDialog.cxx:490 TFunctionParametersDialog.cxx:491 TFunctionParametersDialog.cxx:492 TFunctionParametersDialog.cxx:493 TFunctionParametersDialog.cxx:494 TFunctionParametersDialog.cxx:495 TFunctionParametersDialog.cxx:496 TFunctionParametersDialog.cxx:497 TFunctionParametersDialog.cxx:498 TFunctionParametersDialog.cxx:499 TFunctionParametersDialog.cxx:500 TFunctionParametersDialog.cxx:501 TFunctionParametersDialog.cxx:502 TFunctionParametersDialog.cxx:503 TFunctionParametersDialog.cxx:504 TFunctionParametersDialog.cxx:505 TFunctionParametersDialog.cxx:506 TFunctionParametersDialog.cxx:507 TFunctionParametersDialog.cxx:508 TFunctionParametersDialog.cxx:509 TFunctionParametersDialog.cxx:510 TFunctionParametersDialog.cxx:511 TFunctionParametersDialog.cxx:512 TFunctionParametersDialog.cxx:513 TFunctionParametersDialog.cxx:514 TFunctionParametersDialog.cxx:515 TFunctionParametersDialog.cxx:516 TFunctionParametersDialog.cxx:517 TFunctionParametersDialog.cxx:518 TFunctionParametersDialog.cxx:519 TFunctionParametersDialog.cxx:520 TFunctionParametersDialog.cxx:521 TFunctionParametersDialog.cxx:522 TFunctionParametersDialog.cxx:523 TFunctionParametersDialog.cxx:524 TFunctionParametersDialog.cxx:525 TFunctionParametersDialog.cxx:526 TFunctionParametersDialog.cxx:527 TFunctionParametersDialog.cxx:528 TFunctionParametersDialog.cxx:529 TFunctionParametersDialog.cxx:530 TFunctionParametersDialog.cxx:531 TFunctionParametersDialog.cxx:532 TFunctionParametersDialog.cxx:533 TFunctionParametersDialog.cxx:534 TFunctionParametersDialog.cxx:535 TFunctionParametersDialog.cxx:536 TFunctionParametersDialog.cxx:537 TFunctionParametersDialog.cxx:538 TFunctionParametersDialog.cxx:539 TFunctionParametersDialog.cxx:540 TFunctionParametersDialog.cxx:541 TFunctionParametersDialog.cxx:542 TFunctionParametersDialog.cxx:543 TFunctionParametersDialog.cxx:544 TFunctionParametersDialog.cxx:545 TFunctionParametersDialog.cxx:546 TFunctionParametersDialog.cxx:547 TFunctionParametersDialog.cxx:548 TFunctionParametersDialog.cxx:549 TFunctionParametersDialog.cxx:550 TFunctionParametersDialog.cxx:551 TFunctionParametersDialog.cxx:552 TFunctionParametersDialog.cxx:553 TFunctionParametersDialog.cxx:554 TFunctionParametersDialog.cxx:555 TFunctionParametersDialog.cxx:556 TFunctionParametersDialog.cxx:557 TFunctionParametersDialog.cxx:558 TFunctionParametersDialog.cxx:559 TFunctionParametersDialog.cxx:560 TFunctionParametersDialog.cxx:561 TFunctionParametersDialog.cxx:562 TFunctionParametersDialog.cxx:563 TFunctionParametersDialog.cxx:564 TFunctionParametersDialog.cxx:565 TFunctionParametersDialog.cxx:566 TFunctionParametersDialog.cxx:567 TFunctionParametersDialog.cxx:568 TFunctionParametersDialog.cxx:569 TFunctionParametersDialog.cxx:570 TFunctionParametersDialog.cxx:571 TFunctionParametersDialog.cxx:572 TFunctionParametersDialog.cxx:573 TFunctionParametersDialog.cxx:574 TFunctionParametersDialog.cxx:575 TFunctionParametersDialog.cxx:576 TFunctionParametersDialog.cxx:577 TFunctionParametersDialog.cxx:578 TFunctionParametersDialog.cxx:579 TFunctionParametersDialog.cxx:580 TFunctionParametersDialog.cxx:581 TFunctionParametersDialog.cxx:582 TFunctionParametersDialog.cxx:583 TFunctionParametersDialog.cxx:584 TFunctionParametersDialog.cxx:585 TFunctionParametersDialog.cxx:586 TFunctionParametersDialog.cxx:587 TFunctionParametersDialog.cxx:588 TFunctionParametersDialog.cxx:589 TFunctionParametersDialog.cxx:590 TFunctionParametersDialog.cxx:591 TFunctionParametersDialog.cxx:592 TFunctionParametersDialog.cxx:593 TFunctionParametersDialog.cxx:594 TFunctionParametersDialog.cxx:595 TFunctionParametersDialog.cxx:596 TFunctionParametersDialog.cxx:597 TFunctionParametersDialog.cxx:598 TFunctionParametersDialog.cxx:599 TFunctionParametersDialog.cxx:600 TFunctionParametersDialog.cxx:601 TFunctionParametersDialog.cxx:602 TFunctionParametersDialog.cxx:603 TFunctionParametersDialog.cxx:604 TFunctionParametersDialog.cxx:605 TFunctionParametersDialog.cxx:606 TFunctionParametersDialog.cxx:607 TFunctionParametersDialog.cxx:608 TFunctionParametersDialog.cxx:609 TFunctionParametersDialog.cxx:610 TFunctionParametersDialog.cxx:611 TFunctionParametersDialog.cxx:612 TFunctionParametersDialog.cxx:613 TFunctionParametersDialog.cxx:614 TFunctionParametersDialog.cxx:615 TFunctionParametersDialog.cxx:616 TFunctionParametersDialog.cxx:617 TFunctionParametersDialog.cxx:618 TFunctionParametersDialog.cxx:619 TFunctionParametersDialog.cxx:620 TFunctionParametersDialog.cxx:621 TFunctionParametersDialog.cxx:622 TFunctionParametersDialog.cxx:623 TFunctionParametersDialog.cxx:624 TFunctionParametersDialog.cxx:625 TFunctionParametersDialog.cxx:626 TFunctionParametersDialog.cxx:627 TFunctionParametersDialog.cxx:628 TFunctionParametersDialog.cxx:629 TFunctionParametersDialog.cxx:630 TFunctionParametersDialog.cxx:631 TFunctionParametersDialog.cxx:632 TFunctionParametersDialog.cxx:633 TFunctionParametersDialog.cxx:634 TFunctionParametersDialog.cxx:635 TFunctionParametersDialog.cxx:636 TFunctionParametersDialog.cxx:637 TFunctionParametersDialog.cxx:638 TFunctionParametersDialog.cxx:639 TFunctionParametersDialog.cxx:640 TFunctionParametersDialog.cxx:641 TFunctionParametersDialog.cxx:642 TFunctionParametersDialog.cxx:643 TFunctionParametersDialog.cxx:644 TFunctionParametersDialog.cxx:645 TFunctionParametersDialog.cxx:646 TFunctionParametersDialog.cxx:647 TFunctionParametersDialog.cxx:648 TFunctionParametersDialog.cxx:649 TFunctionParametersDialog.cxx:650 TFunctionParametersDialog.cxx:651 TFunctionParametersDialog.cxx:652 TFunctionParametersDialog.cxx:653 TFunctionParametersDialog.cxx:654 TFunctionParametersDialog.cxx:655 TFunctionParametersDialog.cxx:656 TFunctionParametersDialog.cxx:657 TFunctionParametersDialog.cxx:658 TFunctionParametersDialog.cxx:659 TFunctionParametersDialog.cxx:660 TFunctionParametersDialog.cxx:661 TFunctionParametersDialog.cxx:662 TFunctionParametersDialog.cxx:663 TFunctionParametersDialog.cxx:664 TFunctionParametersDialog.cxx:665 TFunctionParametersDialog.cxx:666 TFunctionParametersDialog.cxx:667 TFunctionParametersDialog.cxx:668 TFunctionParametersDialog.cxx:669 TFunctionParametersDialog.cxx:670 TFunctionParametersDialog.cxx:671 TFunctionParametersDialog.cxx:672 TFunctionParametersDialog.cxx:673 TFunctionParametersDialog.cxx:674 TFunctionParametersDialog.cxx:675 TFunctionParametersDialog.cxx:676 TFunctionParametersDialog.cxx:677 TFunctionParametersDialog.cxx:678 TFunctionParametersDialog.cxx:679