From 72be02882a8ff6a702dc7072aac725aa27971139 Mon Sep 17 00:00:00 2001 From: Ilka Antcheva <Ilka.Antcheva@cern.ch> Date: Tue, 28 Nov 2006 14:08:38 +0000 Subject: [PATCH] - connect the slider range to the displayed axis range in a pad; this allows the fit panel slider range to be properly set after performing zoom/unzoom on axis git-svn-id: http://root.cern.ch/svn/root/trunk@16974 27541ba8-7e3a-0410-8455-c3a389f83636 --- fitpanel/src/TFitEditor.cxx | 37 +++++++++++++++++++++++++++++++------ 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/fitpanel/src/TFitEditor.cxx b/fitpanel/src/TFitEditor.cxx index 8c4aa1adef6..057aaa21761 100644 --- a/fitpanel/src/TFitEditor.cxx +++ b/fitpanel/src/TFitEditor.cxx @@ -1,4 +1,4 @@ -// @(#)root/fitpanel:$Name: $:$Id: TFitEditor.cxx,v 1.12 2006/11/20 08:10:22 brun Exp $ +// @(#)root/fitpanel:$Name: $:$Id: TFitEditor.cxx,v 1.13 2006/11/23 15:09:27 antcheva Exp $ // Author: Ilka Antcheva, Lorenzo Moneta 10/08/2006 /************************************************************************* @@ -220,7 +220,7 @@ TFitEditor::TFitEditor(TVirtualPad* pad, TObject *obj) : fConv->SetState(kButtonDisabled); fLayoutNone = new TGLayoutHints(kLHintsLeft,0,5,3,-10); fLayoutAdd = new TGLayoutHints(kLHintsLeft,10,5,3,-10); - fLayoutConv = new TGLayoutHints(kLHintsLeft,10,0,3,-10); + fLayoutConv = new TGLayoutHints(kLHintsLeft,10,5,3,-10); bgr->SetLayoutHints(fLayoutNone,fNone); bgr->SetLayoutHints(fLayoutAdd,fAdd); bgr->SetLayoutHints(fLayoutConv,fConv); @@ -651,6 +651,7 @@ void TFitEditor::ConnectSlots() fSliderZ->Connect("Pressed()","TFitEditor",this, "DoSliderZPressed()"); fSliderZ->Connect("Released()","TFitEditor",this, "DoSliderZReleased()"); } + fParentPad->Connect("RangeAxisChanged()", "TFitEditor", this, "UpdateGUI()"); } //______________________________________________________________________________ @@ -717,6 +718,7 @@ void TFitEditor::DisconnectSlots() fSliderZ->Disconnect("Pressed()"); fSliderZ->Disconnect("Released()"); } + fParentPad->Disconnect("RangeAxisChanged()"); } //______________________________________________________________________________ @@ -796,6 +798,9 @@ void TFitEditor::UpdateGUI() // sliders if (fDim > 0) { + fSliderX->Disconnect("PositionChanged()"); + fSliderX->Disconnect("Pressed()"); + fSliderX->Disconnect("Released()"); switch (fType) { case kObjectHisto: { @@ -839,13 +844,24 @@ void TFitEditor::UpdateGUI() break; } } - fSliderX->SetRange(1,fXrange); - fSliderX->SetPosition(fXmin,fXmax); + if (fXmin > 1 || fXmax < fXrange) { + fSliderX->SetRange(fXmin,fXmax); + fSliderX->SetPosition(fXmin, fXmax); + } else { + fSliderX->SetRange(1,fXrange); + fSliderX->SetPosition(fXmin,fXmax); + } fSliderX->SetScale(5); + fSliderX->Connect("PositionChanged()","TFitEditor",this, "DoSliderXMoved()"); + fSliderX->Connect("Pressed()","TFitEditor",this, "DoSliderXPressed()"); + fSliderX->Connect("Released()","TFitEditor",this, "DoSliderXReleased()"); } /* no implemented functionality for y & z sliders yet if (fDim > 1) { + fSliderY->Disconnect("PositionChanged()"); + fSliderY->Disconnect("Pressed()"); + fSliderY->Disconnect("Released()"); if (!fSliderYParent->IsMapped()) fSliderYParent->MapWindow(); @@ -884,6 +900,10 @@ void TFitEditor::UpdateGUI() } if (fDim > 2) { + fSliderZ->Disconnect("PositionChanged()"); + fSliderZ->Disconnect("Pressed()"); + fSliderZ->Disconnect("Released()"); + if (!fSliderZParent->IsMapped()) fSliderZParent->MapWindow(); @@ -1522,8 +1542,13 @@ void TFitEditor::DoReset() delete fFitFunc; fFitFunc = new TF1("fitFunc", fFunction.Data(), fXmin, fXmax); } - fSliderX->SetRange(1, fXrange); - fSliderX->SetPosition(fXmin, fXmax); + if (fXmin > 1 || fXmax < fXrange) { + fSliderX->SetRange(fXmin,fXmax); + fSliderX->SetPosition(fXmin, fXmax); + } else { + fSliderX->SetRange(1,fXrange); + fSliderX->SetPosition(fXmin,fXmax); + } fPlus = '+'; if (fLinearFit->GetState() == kButtonDown) fLinearFit->SetState(kButtonUp, kFALSE); -- GitLab