fEntryMin(0x0),
fEntryMax(0x0),
fMin(FLT_MAX),
- fMax(-FLT_MAX)
+ fMax(-FLT_MAX),
+ fAutoButton(new TGTextButton(this,"Auto")),
+ fLockButton(new TGTextButton(this,"Lock"))
{
/// ctor
Int_t ndivisions(20);
- Int_t hsize = 20;
+ Int_t hsize = (h-100)/(ndivisions+2);
Int_t topBorder(5);
Double_t min(0.0);
Double_t step = (max-min)/ndivisions;
- for ( Int_t i = -1; i <= ndivisions+1; ++i )
+ for ( Int_t i = -1; i < ndivisions+1; ++i )
{
Double_t value = max - (min + step*i);
AddFrame(fEntryMin,new TGLayoutHints(kLHintsExpandX,0,0,topBorder,0));
-// fEntryMin->SetFormat(TGNumberFormat::kNESRealOne);
-// fEntryMax->SetFormat(TGNumberFormat::kNESRealOne);
+ AddFrame(fAutoButton,new TGLayoutHints(kLHintsExpandX,0,0,topBorder,0));
- TGTextButton* button = new TGTextButton(this,"Auto");
+ fAutoButton->Connect("Clicked()","AliMUONPainterColorSlider",this,"DataRangeAutoRequested()");
- AddFrame(button,new TGLayoutHints(kLHintsExpandX,0,0,topBorder,0));
+ AddFrame(fLockButton,new TGLayoutHints(kLHintsExpandX,0,0,topBorder,0));
- button->Connect("Clicked()","AliMUONPainterColorSlider",this,"DataRangeAutoRequested()");
+ fLockButton->Connect("Clicked()","AliMUONPainterColorSlider",this,"LockButtonWasClicked()");
fEntryMax->Connect("ValueSet(Long_t)","AliMUONPainterColorSlider",this,"DataRangeWasChanged(Double_t*)");
fEntryMin->Connect("ValueSet(Long_t)","AliMUONPainterColorSlider",this,"DataRangeWasChanged(Double_t*)");
Emit("DataRangeWasChanged(Double_t*)",param);
}
+//_____________________________________________________________________________
+Bool_t
+AliMUONPainterColorSlider::IsLocked() const
+{
+ /// Whether our range is locked or not
+
+ return (fLockButton->GetString() == "Unlock"); // if we can unlock it means we are locked...
+}
+
+//_____________________________________________________________________________
+void
+AliMUONPainterColorSlider::LockButtonWasClicked()
+{
+ /// Lock (toggle button) was clicked
+
+ if ( IsLocked() )
+ {
+ // unlock it
+ fLockButton->SetText("Lock");
+ fEntryMin->SetState(kTRUE);
+ fEntryMax->SetState(kTRUE);
+ fAutoButton->SetEnabled(kTRUE);
+ }
+ else
+ {
+ // lock it
+ fLockButton->SetText("Unlock");
+ fEntryMin->SetState(kFALSE);
+ fEntryMax->SetState(kFALSE);
+ fAutoButton->SetEnabled(kFALSE);
+ }
+}
+
//_____________________________________________________________________________
void
AliMUONPainterColorSlider::SetRange(Double_t min, Double_t max, Bool_t emit)
AliDebug(1,Form("min %e max %e emit %d",min,max,emit));
- fMin = min;
- fMax = max;
+ if ( !IsLocked() )
+ {
+ fMin = min;
+ fMax = max;
- fEntryMin->SetNumber(fMin);
- fEntryMax->SetNumber(fMax);
+ fEntryMin->SetNumber(fMin);
+ fEntryMax->SetNumber(fMax);
+ }
if ( emit )
{