ROOT logo
// @(#)root/ged:$Id: TAxisEditor.cxx 20882 2007-11-19 11:31:26Z rdm $
// Author: Ilka Antcheva   11/05/04

/*************************************************************************
 * Copyright (C) 1995-2002, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

//////////////////////////////////////////////////////////////////////////
//                                                                      //
//  TAxisEditor                                                         //
//                                                                      //
//  Implements GUI for axis attributes.                                 //
//     axis color                                                       //
//     ticks parameters: length, setting on both axis sides,            //
//     logarithmic or linear scale along the selected axis,             //
//     primary, secondary and tertiary axis divisions,                  //
//     setting more logarithmic labels,                                 //
//     optimizing labels' position if available                         //
//     axis title - a title can be added via the text entry field       // 
//     and can be set to be centered or rotated via the corresponding   // 
//     check buttons, the title color, offset, font can be set easily   //
//     axis labels - their color, size, offset can be set similarly,    //
//     in addition there is a check box for no exponent choice,         //
//     and another one for setting the same decimal part for all labels //                                                                      //
//                                                                      //
//////////////////////////////////////////////////////////////////////////
//Begin_Html
/*
<img src="gif/TAxisEditor.gif">
*/
//End_Html


#include "TAxisEditor.h"
#include "TAxis.h"
#include "TGedEditor.h"
#include "TGColorSelect.h"
#include "TGComboBox.h"
#include "TGNumberEntry.h"
#include "TGTextEntry.h"
#include "TGToolTip.h"
#include "TGLabel.h"
#include "TColor.h"
#include "TVirtualPad.h"
#include "TStyle.h"

ClassImp(TAxisEditor)

enum EAxisWid {
   kCOL_AXIS,
   kCOL_TIT,
   kCOL_LBL,
   kFONT_TIT,
   kFONT_LBL,
   kTITLE,
   kAXIS_TICKS,
   kAXIS_DIV1,
   kAXIS_DIV2,
   kAXIS_DIV3,
   kAXIS_OPTIM,
   kAXIS_LOG,
   kAXIS_TITSIZE,
   kAXIS_TITOFFSET,
   kAXIS_CENTERED,
   kAXIS_ROTATED,
   kAXIS_LBLSIZE,
   kAXIS_LBLOFFSET,
   kAXIS_TICKSBOTH,
   kAXIS_LBLLOG,
   kAXIS_LBLEXP,
   kAXIS_LBLDIR,
   kAXIS_LBLSORT,
   kAXIS_LBLDEC
};


//______________________________________________________________________________
TAxisEditor::TAxisEditor(const TGWindow *p, Int_t width,
                         Int_t height, UInt_t options, Pixel_t back)
  : TGedFrame(p, width, height, options | kVerticalFrame, back)
{
   // Constructor of axis attribute GUI.
   
   fAxis = 0;
   
   MakeTitle("Axis");
 
   TGCompositeFrame *f2 = new TGCompositeFrame(this, 80, 20, kHorizontalFrame);
   fAxisColor = new TGColorSelect(f2, 0, kCOL_AXIS);
   f2->AddFrame(fAxisColor, new TGLayoutHints(kLHintsLeft, 1, 1, 1, 1));
   fAxisColor->Associate(this);
   TGLabel *fTicksLabel = new TGLabel(f2, "Ticks:");
   f2->AddFrame(fTicksLabel, new TGLayoutHints(kLHintsLeft | kLHintsCenterY, 3, 0, 1, 1));
   fTickLength = new TGNumberEntry(f2, 0.03, 5, kAXIS_TICKS, 
                                       TGNumberFormat::kNESRealTwo,
                                       TGNumberFormat::kNEAAnyNumber,
                                       TGNumberFormat::kNELLimitMinMax,-1.,1.);
   fTickLength->GetNumberEntry()->SetToolTipText("Set ticks' length");
   f2->AddFrame(fTickLength, new TGLayoutHints(kLHintsLeft, 1, 1, 1, 1));
   AddFrame(f2, new TGLayoutHints(kLHintsTop, 1, 1, 0, 0));

   TGCompositeFrame *f3 = new TGCompositeFrame(this, 80, 20, kHorizontalFrame);
   TGCompositeFrame *f4a = new TGCompositeFrame(f3, 40, 20, kVerticalFrame);
   f3->AddFrame(f4a, new TGLayoutHints(kLHintsTop, 0, 1, 0, 0));
   fTicksBoth = new TGCheckButton(f4a, "+-", kAXIS_TICKSBOTH);
   fTicksBoth->SetToolTipText("Draw ticks on both axis sides");
   f4a->AddFrame(fTicksBoth, new TGLayoutHints(kLHintsLeft | kLHintsBottom, 3, 1, 1, 0));
   fLogAxis = new TGCheckButton(f4a, "Log", kAXIS_LOG);
   fLogAxis->SetToolTipText("Draw logarithmic scale");
   f4a->AddFrame(fLogAxis, new TGLayoutHints(kLHintsLeft | kLHintsBottom, 3, 1, 0, 0));

   TGCompositeFrame *f4b = new TGCompositeFrame(f3, 40, 20, kVerticalFrame);
   f3->AddFrame(f4b, new TGLayoutHints(kLHintsTop, 0, 1, 0, 0));
   fOptimize = new TGCheckButton(f4b, "Optimize", kAXIS_OPTIM);
   fOptimize->SetState(kButtonDown);
   fOptimize->SetToolTipText("Optimize the number of axis divisions");
   f4b->AddFrame(fOptimize, new TGLayoutHints(kLHintsTop, 17, 1, 1, 0));
   fMoreLog = new TGCheckButton(f4b, "MoreLog", kAXIS_LBLLOG);
   fMoreLog->SetToolTipText("Draw more logarithmic labels");
   f4b->AddFrame(fMoreLog, new TGLayoutHints(kLHintsLeft, 17, 1, 0, 0));

   AddFrame(f3, new TGLayoutHints(kLHintsTop, 1, 1, 0, 0));

   TGCompositeFrame *f5 = new TGCompositeFrame(this, 80, 20, kHorizontalFrame);
   fDiv3 = new TGNumberEntry(f5, 10, 2,kAXIS_DIV1, TGNumberFormat::kNESInteger,
                                       TGNumberFormat::kNEANonNegative, 
                                       TGNumberFormat::kNELLimitMinMax, 0, 99);
   fDiv3->GetNumberEntry()->SetToolTipText("Tertiary axis divisions");
   f5->AddFrame(fDiv3, new TGLayoutHints(kLHintsLeft, 27, 0, 1, 1));
   fDiv2 = new TGNumberEntry(f5, 5, 2, kAXIS_DIV2, TGNumberFormat::kNESInteger,
                                       TGNumberFormat::kNEANonNegative, 
                                       TGNumberFormat::kNELLimitMinMax, 0, 99);
   fDiv2->GetNumberEntry()->SetToolTipText("Secondary axis divisions");
   f5->AddFrame(fDiv2, new TGLayoutHints(kLHintsLeft, 1, 0, 1, 1));
   fDiv1 = new TGNumberEntry(f5, 0, 2, kAXIS_DIV3, TGNumberFormat::kNESInteger,
                                       TGNumberFormat::kNEANonNegative, 
                                       TGNumberFormat::kNELLimitMinMax, 0, 99);
   fDiv1->GetNumberEntry()->SetToolTipText("Primary axis divisions");
   f5->AddFrame(fDiv1, new TGLayoutHints(kLHintsLeft | kLHintsCenterY, 1, 1, 1, 1));
   AddFrame(f5, new TGLayoutHints(kLHintsLeft, 1, 1, 4, 4));
   fTicksFlag = 1;

   MakeTitle("Title");
  
   fTitlePrec = 2;
   fTitle = new TGTextEntry(this, new TGTextBuffer(50), kTITLE);
   fTitle->Resize(135, fTitle->GetDefaultHeight());
   fTitle->SetToolTipText("Enter the axis title string");
   AddFrame(fTitle, new TGLayoutHints(kLHintsLeft, 3, 1, 2, 1));
   
   TGCompositeFrame *f6 = new TGCompositeFrame(this, 80, 20, kHorizontalFrame);
   fTitleColor = new TGColorSelect(f6, 0, kCOL_TIT);
   f6->AddFrame(fTitleColor, new TGLayoutHints(kLHintsLeft, 1, 1, 1, 1));
   fTitleColor->Associate(this);
   TGLabel *fSizeLbl1 = new TGLabel(f6, "Size:");                              
   f6->AddFrame(fSizeLbl1, new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 6, 1, 1, 1));
   fTitleSize = new TGNumberEntry(f6, 0.05, 5, kAXIS_TITSIZE, 
                                      TGNumberFormat::kNESRealTwo,
                                      TGNumberFormat::kNEANonNegative, 
                                      TGNumberFormat::kNELLimitMinMax, 0., 1.);
   fTitleSize->GetNumberEntry()->SetToolTipText("Set title size");
   f6->AddFrame(fTitleSize, new TGLayoutHints(kLHintsLeft, 1, 1, 1, 1));
   AddFrame(f6, new TGLayoutHints(kLHintsTop, 1, 1, 0, 0));

   fTitleFont = new TGFontTypeComboBox(this, kFONT_TIT);
   fTitleFont->Resize(137, 20);
   AddFrame(fTitleFont, new TGLayoutHints(kLHintsLeft, 3, 1, 2, 1));

   TGCompositeFrame *f7 = new TGCompositeFrame(this, 80, 20, kHorizontalFrame);
   fCentered = new TGCheckButton(f7, "Centered", kAXIS_CENTERED);
   fCentered->SetToolTipText("Center axis title");
   f7->AddFrame(fCentered, new TGLayoutHints(kLHintsTop, 3, 1, 1, 0));
   TGLabel *fOffsetLbl = new TGLabel(f7, "Offset:");                              
   f7->AddFrame(fOffsetLbl, new TGLayoutHints(kLHintsLeft, 23, 1, 3, 0));
   AddFrame(f7, new TGLayoutHints(kLHintsTop, 1, 1, 0, 0));

   TGCompositeFrame *f8 = new TGCompositeFrame(this, 80, 20, kHorizontalFrame);
   fRotated = new TGCheckButton(f8, "Rotated", kAXIS_ROTATED);
   fRotated->SetState(kButtonDown);
   fRotated->SetToolTipText("Rotate axis title by 180 degrees");
   f8->AddFrame(fRotated, new TGLayoutHints(kLHintsTop, 3, 1, 6, 0));
   fTitleOffset = new TGNumberEntry(f8, 1.00, 6, kAXIS_TITOFFSET, 
                                        TGNumberFormat::kNESRealTwo,
                                        TGNumberFormat::kNEAAnyNumber, 
                                        TGNumberFormat::kNELLimitMinMax, 0.1, 10.);
   fTitleOffset->GetNumberEntry()->SetToolTipText("Set title offset");
   f8->AddFrame(fTitleOffset, new TGLayoutHints(kLHintsLeft, 6, 1, 0, 0));
   AddFrame(f8, new TGLayoutHints(kLHintsTop, 1, 1, 0, 4));

   MakeTitle("Labels");

   fLabelPrec = 2;
   TGCompositeFrame *f9 = new TGCompositeFrame(this, 80, 20, kHorizontalFrame);
   fLabelColor = new TGColorSelect(f9, 0, kCOL_LBL);
   f9->AddFrame(fLabelColor, new TGLayoutHints(kLHintsLeft, 1, 1, 1, 1));
   fLabelColor->Associate(this);
   TGLabel *fSizeLbl2 = new TGLabel(f9, "Size:");                              
   f9->AddFrame(fSizeLbl2, new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 1, 0, 1, 1));
   fLabelSize = new TGNumberEntry(f9, 0.05, 6, kAXIS_LBLSIZE, 
                                      TGNumberFormat::kNESRealTwo,
                                      TGNumberFormat::kNEANonNegative, 
                                      TGNumberFormat::kNELLimitMinMax, 0., 1.);
   fLabelSize->GetNumberEntry()->SetToolTipText("Set labels' size");
   f9->AddFrame(fLabelSize, new TGLayoutHints(kLHintsLeft, 1, 1, 1, 1));
   AddFrame(f9, new TGLayoutHints(kLHintsTop, 1, 1, 0, 0));

   TGCompositeFrame *f10 = new TGCompositeFrame(this, 80, 20, kHorizontalFrame);
   fNoExponent = new TGCheckButton(f10, "NoExp", kAXIS_LBLEXP);
   fNoExponent->SetToolTipText("Labels drawn without exponent notation");
   f10->AddFrame(fNoExponent, new TGLayoutHints(kLHintsLeft | kLHintsCenterY, 3, 1, 8, 0));
   fLabelOffset = new TGNumberEntry(f10, 0.005, 6, kAXIS_LBLOFFSET, 
                                         TGNumberFormat::kNESRealThree,
                                         TGNumberFormat::kNEAAnyNumber, 
                                         TGNumberFormat::kNELLimitMinMax,-1.,1.);
   fLabelOffset->GetNumberEntry()->SetToolTipText("Set labels' offset");
   f10->AddFrame(fLabelOffset, new TGLayoutHints(kLHintsLeft, 11, 1, 3, 0));
   AddFrame(f10, new TGLayoutHints(kLHintsTop, 1, 1, 0, 0));

   fLabelFont = new TGFontTypeComboBox(this, kFONT_LBL);
   fLabelFont->Resize(137, 20);
   AddFrame(fLabelFont, new TGLayoutHints(kLHintsLeft, 3, 1, 2, 0));
   fLabelFont->Associate(this);

   fDecimal = new TGCheckButton(this, "Decimal labels' part", kAXIS_LBLDEC);
   fDecimal->SetToolTipText("Draw the decimal part of labels");
   AddFrame(fDecimal, new TGLayoutHints(kLHintsLeft | kLHintsBottom, 3, 1, 3, 0));
}

//______________________________________________________________________________
TAxisEditor::~TAxisEditor()
{
  // Destructor of axis editor.
}

//______________________________________________________________________________
void TAxisEditor::ConnectSignals2Slots()
{
   // Connect signals to slots.

   fAxisColor->Connect("ColorSelected(Pixel_t)", "TAxisEditor", this, "DoAxisColor(Pixel_t)");
   fTickLength->Connect("ValueSet(Long_t)", "TAxisEditor", this, "DoTickLength()");
   (fTickLength->GetNumberEntry())->Connect("ReturnPressed()", "TAxisEditor", this, "DoTickLength()");
   fTicksBoth->Connect("Toggled(Bool_t)","TAxisEditor",this,"DoTicks()");
   fOptimize->Connect("Toggled(Bool_t)","TAxisEditor",this,"DoDivisions()");
   fLogAxis->Connect("Toggled(Bool_t)","TAxisEditor",this,"DoLogAxis()");
   fMoreLog->Connect("Toggled(Bool_t)","TAxisEditor",this,"DoMoreLog()");
   fDiv3->Connect("ValueSet(Long_t)", "TAxisEditor", this, "DoDivisions()");
   (fDiv3->GetNumberEntry())->Connect("ReturnPressed()", "TAxisEditor", this, "DoDivisions()");
   fDiv2->Connect("ValueSet(Long_t)", "TAxisEditor", this, "DoDivisions()");
   (fDiv2->GetNumberEntry())->Connect("ReturnPressed()", "TAxisEditor", this, "DoDivisions()");
   fDiv1->Connect("ValueSet(Long_t)", "TAxisEditor", this, "DoDivisions()");
   (fDiv1->GetNumberEntry())->Connect("ReturnPressed()", "TAxisEditor", this, "DoDivisions()");
   fTitle->Connect("TextChanged(const char *)", "TAxisEditor", this, "DoTitle(const char *)");;
   fTitleColor->Connect("ColorSelected(Pixel_t)", "TAxisEditor", this, "DoTitleColor(Pixel_t)");
   fTitleSize->Connect("ValueSet(Long_t)", "TAxisEditor", this, "DoTitleSize()");
   (fTitleSize->GetNumberEntry())->Connect("ReturnPressed()", "TAxisEditor", this, "DoTitleSize()");
   fTitleFont->Connect("Selected(Int_t)", "TAxisEditor", this, "DoTitleFont(Int_t)"); 
   fCentered->Connect("Toggled(Bool_t)","TAxisEditor",this, "DoTitleCentered()");
   fRotated->Connect("Toggled(Bool_t)","TAxisEditor",this,"DoTitleRotated()");
   fTitleOffset->Connect("ValueSet(Long_t)","TAxisEditor",this,"DoTitleOffset()");
   (fTitleOffset->GetNumberEntry())->Connect("ReturnPressed()","TAxisEditor",this,"DoTitleOffset()");
   fLabelColor->Connect("ColorSelected(Pixel_t)", "TAxisEditor", this, "DoLabelColor(Pixel_t)");
   fLabelSize->Connect("ValueSet(Long_t)","TAxisEditor",this,"DoLabelSize()");
   (fLabelSize->GetNumberEntry())->Connect("ReturnPressed()","TAxisEditor",this,"DoLabelSize()");
   fNoExponent->Connect("Toggled(Bool_t)","TAxisEditor",this,"DoNoExponent()");
   fDecimal->Connect("Toggled(Bool_t)","TAxisEditor",this,"DoDecimal(Bool_t)");
   fLabelOffset->Connect("ValueSet(Long_t)", "TAxisEditor", this, "DoLabelOffset()");
   (fLabelOffset->GetNumberEntry())->Connect("ReturnPressed()", "TAxisEditor", this, "DoLabelOffset()");
   fLabelFont->Connect("Selected(Int_t)", "TAxisEditor", this, "DoLabelFont(Int_t)"); 
   fInit = kFALSE;
}

//______________________________________________________________________________
void TAxisEditor::SetModel(TObject* obj)
{
   // Pick up the used values of axis attributes.
   fAxis = (TAxis *)obj;
   fAvoidSignal = kTRUE;

   Color_t c = fAxis->GetAxisColor();
   Pixel_t p = TColor::Number2Pixel(c);
   fAxisColor->SetColor(p);

   Float_t fl = fAxis->GetTickLength();
   fTickLength->SetNumber(fl);
   
   Int_t div = fAxis->GetNdivisions();
   fDiv1->SetNumber(div % 100);
   fDiv2->SetNumber((div/100) % 100);
   fDiv3->SetNumber((div/10000) % 100);
   

   if ((!strcmp(fAxis->GetName(),"xaxis") && fGedEditor->GetPad()->GetLogx()) ||
       (!strcmp(fAxis->GetName(),"yaxis") && fGedEditor->GetPad()->GetLogy()) ||
       (!strcmp(fAxis->GetName(),"zaxis") && fGedEditor->GetPad()->GetLogz())) 

      fLogAxis->SetState(kButtonDown);
   else fLogAxis->SetState(kButtonUp);

   if (fLogAxis->GetState() == kButtonUp) {
      fMoreLog->SetState(kButtonDisabled);
   } else {
      Int_t morelog = fAxis->GetMoreLogLabels();
      if (morelog) fMoreLog->SetState(kButtonDown);
      else         fMoreLog->SetState(kButtonUp);
   }
   
   const char *both = fAxis->GetTicks();
   if (!strcmp(both,"+-")) {
      fTicksBoth->SetState(kButtonDown);
   } else {
      fTicksBoth->SetState(kButtonUp);
      if (!strcmp(both,"-")) fTicksFlag = -1;
      if (!strcmp(both,"+")) fTicksFlag =  1;
   }

   const char *text = fAxis->GetTitle();
   fTitle->SetText(text);
   
   c = fAxis->GetTitleColor();
   p = TColor::Number2Pixel(c);
   fTitleColor->SetColor(p);

   fl = fAxis->GetTitleSize();
   fTitleSize->SetNumber(fl);

   Style_t font = fAxis->GetTitleFont();
   fTitleFont->Select(font / 10);
   fTitlePrec = (Int_t)(font % 10);

   fl = fAxis->GetTitleOffset();
   fTitleOffset->SetNumber(fl);

   Int_t centered = fAxis->GetCenterTitle();
   if (centered) fCentered->SetState(kButtonDown);
   else          fCentered->SetState(kButtonUp);
   
   Int_t rotated = fAxis->GetRotateTitle();
   if (rotated) fRotated->SetState(kButtonDown);
   else         fRotated->SetState(kButtonUp);

   c = fAxis->GetLabelColor();
   p = TColor::Number2Pixel(c);
   fLabelColor->SetColor(p);

   fl = fAxis->GetLabelSize();
   fLabelSize->SetNumber(fl);

   font = fAxis->GetLabelFont();
   fLabelFont->Select(font / 10);
   fLabelPrec = (Int_t)(font % 10);

   fl = fAxis->GetLabelOffset();
   fLabelOffset->SetNumber(fl);

   Int_t noexp = fAxis->GetNoExponent();
   if (noexp) fNoExponent->SetState(kButtonDown);
   else       fNoExponent->SetState(kButtonUp);

   Bool_t on = fAxis->GetDecimals();
   if (on) fDecimal->SetState(kButtonDown);
   else    fDecimal->SetState(kButtonUp);
   
   if (fInit) ConnectSignals2Slots();
   fAvoidSignal = kFALSE;
}

//______________________________________________________________________________
void TAxisEditor::DoAxisColor(Pixel_t color)
{
   // Slot connected to the axis color.
   
   if (fAvoidSignal) return;
   fAxis->SetAxisColor(TColor::GetColor(color));
   Update();
}

//______________________________________________________________________________
void TAxisEditor::DoTickLength()
{
   // Slot connected to the tick length settings.

   if (fAvoidSignal) return;
   Float_t ticks = fTickLength->GetNumber();
   fAxis->SetTickLength(ticks);
   Update();
   if (fTickLength->GetNumber() < 0) fTicksFlag = -1;
   else fTicksFlag = 1;
}

//______________________________________________________________________________
void TAxisEditor::DoTicks()
{
   // Slot connected to the ticks draw settings.

   if (fAvoidSignal) return;
   if (fTicksBoth->GetState() == kButtonDown) {
      fAxis->SetTicks("+-");
   } else {
      if (fTicksFlag == -1) fAxis->SetTicks("-");
      else fAxis->SetTicks("");
   }
   Update();
}

//______________________________________________________________________________
void TAxisEditor::DoDivisions()
{
   // Slot connected to the number of divisions.

   // the number of divisions are used 3 number entry widgets
   if (fAvoidSignal) return;
   Int_t div = (Int_t)(fDiv1->GetNumber() + fDiv2->GetNumber()  * 100 
                                          + fDiv3->GetNumber() * 10000);
   fAxis->SetNdivisions(div, fOptimize->GetState());
   Update();
}

//______________________________________________________________________________
void TAxisEditor::DoLogAxis()
{
   // Slot for Log scale setting.

   if (fAvoidSignal) return;

   gPad = fGedEditor->GetPad();
      
   if (fLogAxis->GetState() == kButtonDown) {

      if (!strcmp(fAxis->GetName(),"xaxis")) gPad->SetLogx(1);
      if (!strcmp(fAxis->GetName(),"yaxis")) gPad->SetLogy(1);
      if (!strcmp(fAxis->GetName(),"zaxis")) gPad->SetLogz(1);

      Int_t morelog = fAxis->GetMoreLogLabels();
      if (morelog)  fMoreLog->SetState(kButtonDown);
      else          fMoreLog->SetState(kButtonUp);
      fOptimize->SetState(kButtonDisabled);

   } else if (fLogAxis->GetState() == kButtonUp){
      if (!strcmp(fAxis->GetName(),"xaxis")) gPad->SetLogx(0);
      if (!strcmp(fAxis->GetName(),"yaxis")) gPad->SetLogy(0);
      if (!strcmp(fAxis->GetName(),"zaxis")) gPad->SetLogz(0);
      fMoreLog->SetState(kButtonDisabled);
      fOptimize->SetState(kButtonDown);
   }
   Update();
}

//______________________________________________________________________________
void TAxisEditor::DoMoreLog()
{
   // Slot connected to more Log labels flag

   if (fAvoidSignal) return;
   Int_t flag = 0;
   if (fMoreLog->GetState() == kButtonDown)    flag = 1;
   else if (fMoreLog->GetState() == kButtonUp) flag = 0;
   fAxis->SetMoreLogLabels(flag);
   Update();
}

//______________________________________________________________________________
void TAxisEditor::DoTitle(const char *text)
{
   // Slot connected to the axis color.
   
   if (fAvoidSignal) return;
   fAxis->SetTitle(text);
   Update();
}

//______________________________________________________________________________
void TAxisEditor::DoTitleColor(Pixel_t color)
{
   // Slot connected to the title color.
   
   if (fAvoidSignal) return;
   fAxis->SetTitleColor(TColor::GetColor(color));
   Update();
}

//______________________________________________________________________________
void TAxisEditor::DoTitleSize()
{
   // Slot connected to the title font size.

   if (fAvoidSignal) return;
   Float_t size = fTitleSize->GetNumber();
   fAxis->SetTitleSize(size);
   Update();
}

//______________________________________________________________________________
void TAxisEditor::DoTitleFont(Int_t font)
{
   // Slot connected to the title font.

   if (fAvoidSignal) return;
   Int_t f = font * 10 + fTitlePrec;
   fAxis->SetTitleFont(f);
   Update();
}

//______________________________________________________________________________
void TAxisEditor::DoTitleOffset()
{
   // Slot connected to the title offset.

   if (fAvoidSignal) return;
   Float_t offset = fTitleOffset->GetNumber();
   fAxis->SetTitleOffset(offset);
   Update();
}

//______________________________________________________________________________
void TAxisEditor::DoTitleCentered()
{
   // Slot connected to centered title option.

   if (fAvoidSignal) return;
   Int_t ctr = fCentered->GetState();
   fAxis->CenterTitle(ctr);
   Update();
}

//______________________________________________________________________________
void TAxisEditor::DoTitleRotated()
{
   // Slot connected to the title rotation.

   if (fAvoidSignal) return;
   Int_t rot = fRotated->GetState();
   fAxis->RotateTitle(rot);
   Update();
}

//______________________________________________________________________________
void TAxisEditor::DoLabelColor(Pixel_t color)
{
   // Slot connected to the label color.

   if (fAvoidSignal) return;
   fAxis->SetLabelColor(TColor::GetColor(color));
   Update();
}

//______________________________________________________________________________
void TAxisEditor::DoLabelSize()
{
   // Slot connected to the label size.

   if (fAvoidSignal) return;
   Float_t size = fLabelSize->GetNumber();
   fAxis->SetLabelSize(size);
   Update();
}

//______________________________________________________________________________
void TAxisEditor::DoLabelFont(Int_t font)
{
   // Slot connected to the label font.

   if (fAvoidSignal) return;
   Int_t f = font * 10 + fLabelPrec;
   fAxis->SetLabelFont(f);
   Update();
}

//______________________________________________________________________________
void TAxisEditor::DoLabelOffset()
{
   // Slot connected to the label offset.

   if (fAvoidSignal) return;
   Float_t offset = fLabelOffset->GetNumber();
   fAxis->SetLabelOffset(offset);
   Update();
}

//______________________________________________________________________________
void TAxisEditor::DoNoExponent()
{
   // Slot connected to the labels' exponent flag.

   if (fAvoidSignal) return;
   Int_t exp = fNoExponent->GetState();
   fAxis->SetNoExponent(exp);
   Update();
}

//______________________________________________________________________________
void TAxisEditor::DoDecimal(Bool_t on)
{
   // Slot connected to the decimal part setting.

   if (fAvoidSignal) return;
   fAxis->SetDecimals(on);
   gStyle->SetStripDecimals(!on);
   Update();
   gPad->Modified();
   gPad->Update();
}

 TAxisEditor.cxx:1
 TAxisEditor.cxx:2
 TAxisEditor.cxx:3
 TAxisEditor.cxx:4
 TAxisEditor.cxx:5
 TAxisEditor.cxx:6
 TAxisEditor.cxx:7
 TAxisEditor.cxx:8
 TAxisEditor.cxx:9
 TAxisEditor.cxx:10
 TAxisEditor.cxx:11
 TAxisEditor.cxx:12
 TAxisEditor.cxx:13
 TAxisEditor.cxx:14
 TAxisEditor.cxx:15
 TAxisEditor.cxx:16
 TAxisEditor.cxx:17
 TAxisEditor.cxx:18
 TAxisEditor.cxx:19
 TAxisEditor.cxx:20
 TAxisEditor.cxx:21
 TAxisEditor.cxx:22
 TAxisEditor.cxx:23
 TAxisEditor.cxx:24
 TAxisEditor.cxx:25
 TAxisEditor.cxx:26
 TAxisEditor.cxx:27
 TAxisEditor.cxx:28
 TAxisEditor.cxx:29
 TAxisEditor.cxx:30
 TAxisEditor.cxx:31
 TAxisEditor.cxx:32
 TAxisEditor.cxx:33
 TAxisEditor.cxx:34
 TAxisEditor.cxx:35
 TAxisEditor.cxx:36
 TAxisEditor.cxx:37
 TAxisEditor.cxx:38
 TAxisEditor.cxx:39
 TAxisEditor.cxx:40
 TAxisEditor.cxx:41
 TAxisEditor.cxx:42
 TAxisEditor.cxx:43
 TAxisEditor.cxx:44
 TAxisEditor.cxx:45
 TAxisEditor.cxx:46
 TAxisEditor.cxx:47
 TAxisEditor.cxx:48
 TAxisEditor.cxx:49
 TAxisEditor.cxx:50
 TAxisEditor.cxx:51
 TAxisEditor.cxx:52
 TAxisEditor.cxx:53
 TAxisEditor.cxx:54
 TAxisEditor.cxx:55
 TAxisEditor.cxx:56
 TAxisEditor.cxx:57
 TAxisEditor.cxx:58
 TAxisEditor.cxx:59
 TAxisEditor.cxx:60
 TAxisEditor.cxx:61
 TAxisEditor.cxx:62
 TAxisEditor.cxx:63
 TAxisEditor.cxx:64
 TAxisEditor.cxx:65
 TAxisEditor.cxx:66
 TAxisEditor.cxx:67
 TAxisEditor.cxx:68
 TAxisEditor.cxx:69
 TAxisEditor.cxx:70
 TAxisEditor.cxx:71
 TAxisEditor.cxx:72
 TAxisEditor.cxx:73
 TAxisEditor.cxx:74
 TAxisEditor.cxx:75
 TAxisEditor.cxx:76
 TAxisEditor.cxx:77
 TAxisEditor.cxx:78
 TAxisEditor.cxx:79
 TAxisEditor.cxx:80
 TAxisEditor.cxx:81
 TAxisEditor.cxx:82
 TAxisEditor.cxx:83
 TAxisEditor.cxx:84
 TAxisEditor.cxx:85
 TAxisEditor.cxx:86
 TAxisEditor.cxx:87
 TAxisEditor.cxx:88
 TAxisEditor.cxx:89
 TAxisEditor.cxx:90
 TAxisEditor.cxx:91
 TAxisEditor.cxx:92
 TAxisEditor.cxx:93
 TAxisEditor.cxx:94
 TAxisEditor.cxx:95
 TAxisEditor.cxx:96
 TAxisEditor.cxx:97
 TAxisEditor.cxx:98
 TAxisEditor.cxx:99
 TAxisEditor.cxx:100
 TAxisEditor.cxx:101
 TAxisEditor.cxx:102
 TAxisEditor.cxx:103
 TAxisEditor.cxx:104
 TAxisEditor.cxx:105
 TAxisEditor.cxx:106
 TAxisEditor.cxx:107
 TAxisEditor.cxx:108
 TAxisEditor.cxx:109
 TAxisEditor.cxx:110
 TAxisEditor.cxx:111
 TAxisEditor.cxx:112
 TAxisEditor.cxx:113
 TAxisEditor.cxx:114
 TAxisEditor.cxx:115
 TAxisEditor.cxx:116
 TAxisEditor.cxx:117
 TAxisEditor.cxx:118
 TAxisEditor.cxx:119
 TAxisEditor.cxx:120
 TAxisEditor.cxx:121
 TAxisEditor.cxx:122
 TAxisEditor.cxx:123
 TAxisEditor.cxx:124
 TAxisEditor.cxx:125
 TAxisEditor.cxx:126
 TAxisEditor.cxx:127
 TAxisEditor.cxx:128
 TAxisEditor.cxx:129
 TAxisEditor.cxx:130
 TAxisEditor.cxx:131
 TAxisEditor.cxx:132
 TAxisEditor.cxx:133
 TAxisEditor.cxx:134
 TAxisEditor.cxx:135
 TAxisEditor.cxx:136
 TAxisEditor.cxx:137
 TAxisEditor.cxx:138
 TAxisEditor.cxx:139
 TAxisEditor.cxx:140
 TAxisEditor.cxx:141
 TAxisEditor.cxx:142
 TAxisEditor.cxx:143
 TAxisEditor.cxx:144
 TAxisEditor.cxx:145
 TAxisEditor.cxx:146
 TAxisEditor.cxx:147
 TAxisEditor.cxx:148
 TAxisEditor.cxx:149
 TAxisEditor.cxx:150
 TAxisEditor.cxx:151
 TAxisEditor.cxx:152
 TAxisEditor.cxx:153
 TAxisEditor.cxx:154
 TAxisEditor.cxx:155
 TAxisEditor.cxx:156
 TAxisEditor.cxx:157
 TAxisEditor.cxx:158
 TAxisEditor.cxx:159
 TAxisEditor.cxx:160
 TAxisEditor.cxx:161
 TAxisEditor.cxx:162
 TAxisEditor.cxx:163
 TAxisEditor.cxx:164
 TAxisEditor.cxx:165
 TAxisEditor.cxx:166
 TAxisEditor.cxx:167
 TAxisEditor.cxx:168
 TAxisEditor.cxx:169
 TAxisEditor.cxx:170
 TAxisEditor.cxx:171
 TAxisEditor.cxx:172
 TAxisEditor.cxx:173
 TAxisEditor.cxx:174
 TAxisEditor.cxx:175
 TAxisEditor.cxx:176
 TAxisEditor.cxx:177
 TAxisEditor.cxx:178
 TAxisEditor.cxx:179
 TAxisEditor.cxx:180
 TAxisEditor.cxx:181
 TAxisEditor.cxx:182
 TAxisEditor.cxx:183
 TAxisEditor.cxx:184
 TAxisEditor.cxx:185
 TAxisEditor.cxx:186
 TAxisEditor.cxx:187
 TAxisEditor.cxx:188
 TAxisEditor.cxx:189
 TAxisEditor.cxx:190
 TAxisEditor.cxx:191
 TAxisEditor.cxx:192
 TAxisEditor.cxx:193
 TAxisEditor.cxx:194
 TAxisEditor.cxx:195
 TAxisEditor.cxx:196
 TAxisEditor.cxx:197
 TAxisEditor.cxx:198
 TAxisEditor.cxx:199
 TAxisEditor.cxx:200
 TAxisEditor.cxx:201
 TAxisEditor.cxx:202
 TAxisEditor.cxx:203
 TAxisEditor.cxx:204
 TAxisEditor.cxx:205
 TAxisEditor.cxx:206
 TAxisEditor.cxx:207
 TAxisEditor.cxx:208
 TAxisEditor.cxx:209
 TAxisEditor.cxx:210
 TAxisEditor.cxx:211
 TAxisEditor.cxx:212
 TAxisEditor.cxx:213
 TAxisEditor.cxx:214
 TAxisEditor.cxx:215
 TAxisEditor.cxx:216
 TAxisEditor.cxx:217
 TAxisEditor.cxx:218
 TAxisEditor.cxx:219
 TAxisEditor.cxx:220
 TAxisEditor.cxx:221
 TAxisEditor.cxx:222
 TAxisEditor.cxx:223
 TAxisEditor.cxx:224
 TAxisEditor.cxx:225
 TAxisEditor.cxx:226
 TAxisEditor.cxx:227
 TAxisEditor.cxx:228
 TAxisEditor.cxx:229
 TAxisEditor.cxx:230
 TAxisEditor.cxx:231
 TAxisEditor.cxx:232
 TAxisEditor.cxx:233
 TAxisEditor.cxx:234
 TAxisEditor.cxx:235
 TAxisEditor.cxx:236
 TAxisEditor.cxx:237
 TAxisEditor.cxx:238
 TAxisEditor.cxx:239
 TAxisEditor.cxx:240
 TAxisEditor.cxx:241
 TAxisEditor.cxx:242
 TAxisEditor.cxx:243
 TAxisEditor.cxx:244
 TAxisEditor.cxx:245
 TAxisEditor.cxx:246
 TAxisEditor.cxx:247
 TAxisEditor.cxx:248
 TAxisEditor.cxx:249
 TAxisEditor.cxx:250
 TAxisEditor.cxx:251
 TAxisEditor.cxx:252
 TAxisEditor.cxx:253
 TAxisEditor.cxx:254
 TAxisEditor.cxx:255
 TAxisEditor.cxx:256
 TAxisEditor.cxx:257
 TAxisEditor.cxx:258
 TAxisEditor.cxx:259
 TAxisEditor.cxx:260
 TAxisEditor.cxx:261
 TAxisEditor.cxx:262
 TAxisEditor.cxx:263
 TAxisEditor.cxx:264
 TAxisEditor.cxx:265
 TAxisEditor.cxx:266
 TAxisEditor.cxx:267
 TAxisEditor.cxx:268
 TAxisEditor.cxx:269
 TAxisEditor.cxx:270
 TAxisEditor.cxx:271
 TAxisEditor.cxx:272
 TAxisEditor.cxx:273
 TAxisEditor.cxx:274
 TAxisEditor.cxx:275
 TAxisEditor.cxx:276
 TAxisEditor.cxx:277
 TAxisEditor.cxx:278
 TAxisEditor.cxx:279
 TAxisEditor.cxx:280
 TAxisEditor.cxx:281
 TAxisEditor.cxx:282
 TAxisEditor.cxx:283
 TAxisEditor.cxx:284
 TAxisEditor.cxx:285
 TAxisEditor.cxx:286
 TAxisEditor.cxx:287
 TAxisEditor.cxx:288
 TAxisEditor.cxx:289
 TAxisEditor.cxx:290
 TAxisEditor.cxx:291
 TAxisEditor.cxx:292
 TAxisEditor.cxx:293
 TAxisEditor.cxx:294
 TAxisEditor.cxx:295
 TAxisEditor.cxx:296
 TAxisEditor.cxx:297
 TAxisEditor.cxx:298
 TAxisEditor.cxx:299
 TAxisEditor.cxx:300
 TAxisEditor.cxx:301
 TAxisEditor.cxx:302
 TAxisEditor.cxx:303
 TAxisEditor.cxx:304
 TAxisEditor.cxx:305
 TAxisEditor.cxx:306
 TAxisEditor.cxx:307
 TAxisEditor.cxx:308
 TAxisEditor.cxx:309
 TAxisEditor.cxx:310
 TAxisEditor.cxx:311
 TAxisEditor.cxx:312
 TAxisEditor.cxx:313
 TAxisEditor.cxx:314
 TAxisEditor.cxx:315
 TAxisEditor.cxx:316
 TAxisEditor.cxx:317
 TAxisEditor.cxx:318
 TAxisEditor.cxx:319
 TAxisEditor.cxx:320
 TAxisEditor.cxx:321
 TAxisEditor.cxx:322
 TAxisEditor.cxx:323
 TAxisEditor.cxx:324
 TAxisEditor.cxx:325
 TAxisEditor.cxx:326
 TAxisEditor.cxx:327
 TAxisEditor.cxx:328
 TAxisEditor.cxx:329
 TAxisEditor.cxx:330
 TAxisEditor.cxx:331
 TAxisEditor.cxx:332
 TAxisEditor.cxx:333
 TAxisEditor.cxx:334
 TAxisEditor.cxx:335
 TAxisEditor.cxx:336
 TAxisEditor.cxx:337
 TAxisEditor.cxx:338
 TAxisEditor.cxx:339
 TAxisEditor.cxx:340
 TAxisEditor.cxx:341
 TAxisEditor.cxx:342
 TAxisEditor.cxx:343
 TAxisEditor.cxx:344
 TAxisEditor.cxx:345
 TAxisEditor.cxx:346
 TAxisEditor.cxx:347
 TAxisEditor.cxx:348
 TAxisEditor.cxx:349
 TAxisEditor.cxx:350
 TAxisEditor.cxx:351
 TAxisEditor.cxx:352
 TAxisEditor.cxx:353
 TAxisEditor.cxx:354
 TAxisEditor.cxx:355
 TAxisEditor.cxx:356
 TAxisEditor.cxx:357
 TAxisEditor.cxx:358
 TAxisEditor.cxx:359
 TAxisEditor.cxx:360
 TAxisEditor.cxx:361
 TAxisEditor.cxx:362
 TAxisEditor.cxx:363
 TAxisEditor.cxx:364
 TAxisEditor.cxx:365
 TAxisEditor.cxx:366
 TAxisEditor.cxx:367
 TAxisEditor.cxx:368
 TAxisEditor.cxx:369
 TAxisEditor.cxx:370
 TAxisEditor.cxx:371
 TAxisEditor.cxx:372
 TAxisEditor.cxx:373
 TAxisEditor.cxx:374
 TAxisEditor.cxx:375
 TAxisEditor.cxx:376
 TAxisEditor.cxx:377
 TAxisEditor.cxx:378
 TAxisEditor.cxx:379
 TAxisEditor.cxx:380
 TAxisEditor.cxx:381
 TAxisEditor.cxx:382
 TAxisEditor.cxx:383
 TAxisEditor.cxx:384
 TAxisEditor.cxx:385
 TAxisEditor.cxx:386
 TAxisEditor.cxx:387
 TAxisEditor.cxx:388
 TAxisEditor.cxx:389
 TAxisEditor.cxx:390
 TAxisEditor.cxx:391
 TAxisEditor.cxx:392
 TAxisEditor.cxx:393
 TAxisEditor.cxx:394
 TAxisEditor.cxx:395
 TAxisEditor.cxx:396
 TAxisEditor.cxx:397
 TAxisEditor.cxx:398
 TAxisEditor.cxx:399
 TAxisEditor.cxx:400
 TAxisEditor.cxx:401
 TAxisEditor.cxx:402
 TAxisEditor.cxx:403
 TAxisEditor.cxx:404
 TAxisEditor.cxx:405
 TAxisEditor.cxx:406
 TAxisEditor.cxx:407
 TAxisEditor.cxx:408
 TAxisEditor.cxx:409
 TAxisEditor.cxx:410
 TAxisEditor.cxx:411
 TAxisEditor.cxx:412
 TAxisEditor.cxx:413
 TAxisEditor.cxx:414
 TAxisEditor.cxx:415
 TAxisEditor.cxx:416
 TAxisEditor.cxx:417
 TAxisEditor.cxx:418
 TAxisEditor.cxx:419
 TAxisEditor.cxx:420
 TAxisEditor.cxx:421
 TAxisEditor.cxx:422
 TAxisEditor.cxx:423
 TAxisEditor.cxx:424
 TAxisEditor.cxx:425
 TAxisEditor.cxx:426
 TAxisEditor.cxx:427
 TAxisEditor.cxx:428
 TAxisEditor.cxx:429
 TAxisEditor.cxx:430
 TAxisEditor.cxx:431
 TAxisEditor.cxx:432
 TAxisEditor.cxx:433
 TAxisEditor.cxx:434
 TAxisEditor.cxx:435
 TAxisEditor.cxx:436
 TAxisEditor.cxx:437
 TAxisEditor.cxx:438
 TAxisEditor.cxx:439
 TAxisEditor.cxx:440
 TAxisEditor.cxx:441
 TAxisEditor.cxx:442
 TAxisEditor.cxx:443
 TAxisEditor.cxx:444
 TAxisEditor.cxx:445
 TAxisEditor.cxx:446
 TAxisEditor.cxx:447
 TAxisEditor.cxx:448
 TAxisEditor.cxx:449
 TAxisEditor.cxx:450
 TAxisEditor.cxx:451
 TAxisEditor.cxx:452
 TAxisEditor.cxx:453
 TAxisEditor.cxx:454
 TAxisEditor.cxx:455
 TAxisEditor.cxx:456
 TAxisEditor.cxx:457
 TAxisEditor.cxx:458
 TAxisEditor.cxx:459
 TAxisEditor.cxx:460
 TAxisEditor.cxx:461
 TAxisEditor.cxx:462
 TAxisEditor.cxx:463
 TAxisEditor.cxx:464
 TAxisEditor.cxx:465
 TAxisEditor.cxx:466
 TAxisEditor.cxx:467
 TAxisEditor.cxx:468
 TAxisEditor.cxx:469
 TAxisEditor.cxx:470
 TAxisEditor.cxx:471
 TAxisEditor.cxx:472
 TAxisEditor.cxx:473
 TAxisEditor.cxx:474
 TAxisEditor.cxx:475
 TAxisEditor.cxx:476
 TAxisEditor.cxx:477
 TAxisEditor.cxx:478
 TAxisEditor.cxx:479
 TAxisEditor.cxx:480
 TAxisEditor.cxx:481
 TAxisEditor.cxx:482
 TAxisEditor.cxx:483
 TAxisEditor.cxx:484
 TAxisEditor.cxx:485
 TAxisEditor.cxx:486
 TAxisEditor.cxx:487
 TAxisEditor.cxx:488
 TAxisEditor.cxx:489
 TAxisEditor.cxx:490
 TAxisEditor.cxx:491
 TAxisEditor.cxx:492
 TAxisEditor.cxx:493
 TAxisEditor.cxx:494
 TAxisEditor.cxx:495
 TAxisEditor.cxx:496
 TAxisEditor.cxx:497
 TAxisEditor.cxx:498
 TAxisEditor.cxx:499
 TAxisEditor.cxx:500
 TAxisEditor.cxx:501
 TAxisEditor.cxx:502
 TAxisEditor.cxx:503
 TAxisEditor.cxx:504
 TAxisEditor.cxx:505
 TAxisEditor.cxx:506
 TAxisEditor.cxx:507
 TAxisEditor.cxx:508
 TAxisEditor.cxx:509
 TAxisEditor.cxx:510
 TAxisEditor.cxx:511
 TAxisEditor.cxx:512
 TAxisEditor.cxx:513
 TAxisEditor.cxx:514
 TAxisEditor.cxx:515
 TAxisEditor.cxx:516
 TAxisEditor.cxx:517
 TAxisEditor.cxx:518
 TAxisEditor.cxx:519
 TAxisEditor.cxx:520
 TAxisEditor.cxx:521
 TAxisEditor.cxx:522
 TAxisEditor.cxx:523
 TAxisEditor.cxx:524
 TAxisEditor.cxx:525
 TAxisEditor.cxx:526
 TAxisEditor.cxx:527
 TAxisEditor.cxx:528
 TAxisEditor.cxx:529
 TAxisEditor.cxx:530
 TAxisEditor.cxx:531
 TAxisEditor.cxx:532
 TAxisEditor.cxx:533
 TAxisEditor.cxx:534
 TAxisEditor.cxx:535
 TAxisEditor.cxx:536
 TAxisEditor.cxx:537
 TAxisEditor.cxx:538
 TAxisEditor.cxx:539
 TAxisEditor.cxx:540
 TAxisEditor.cxx:541
 TAxisEditor.cxx:542
 TAxisEditor.cxx:543
 TAxisEditor.cxx:544
 TAxisEditor.cxx:545
 TAxisEditor.cxx:546
 TAxisEditor.cxx:547
 TAxisEditor.cxx:548
 TAxisEditor.cxx:549
 TAxisEditor.cxx:550
 TAxisEditor.cxx:551
 TAxisEditor.cxx:552
 TAxisEditor.cxx:553
 TAxisEditor.cxx:554
 TAxisEditor.cxx:555
 TAxisEditor.cxx:556
 TAxisEditor.cxx:557
 TAxisEditor.cxx:558
 TAxisEditor.cxx:559
 TAxisEditor.cxx:560
 TAxisEditor.cxx:561
 TAxisEditor.cxx:562
 TAxisEditor.cxx:563
 TAxisEditor.cxx:564
 TAxisEditor.cxx:565
 TAxisEditor.cxx:566
 TAxisEditor.cxx:567
 TAxisEditor.cxx:568
 TAxisEditor.cxx:569
 TAxisEditor.cxx:570
 TAxisEditor.cxx:571
 TAxisEditor.cxx:572
 TAxisEditor.cxx:573
 TAxisEditor.cxx:574
 TAxisEditor.cxx:575
 TAxisEditor.cxx:576
 TAxisEditor.cxx:577
 TAxisEditor.cxx:578
 TAxisEditor.cxx:579
 TAxisEditor.cxx:580
 TAxisEditor.cxx:581
 TAxisEditor.cxx:582
 TAxisEditor.cxx:583
 TAxisEditor.cxx:584
 TAxisEditor.cxx:585
 TAxisEditor.cxx:586
 TAxisEditor.cxx:587
 TAxisEditor.cxx:588
 TAxisEditor.cxx:589
 TAxisEditor.cxx:590
 TAxisEditor.cxx:591
 TAxisEditor.cxx:592
 TAxisEditor.cxx:593
 TAxisEditor.cxx:594
 TAxisEditor.cxx:595
 TAxisEditor.cxx:596
 TAxisEditor.cxx:597
 TAxisEditor.cxx:598
 TAxisEditor.cxx:599
 TAxisEditor.cxx:600
 TAxisEditor.cxx:601
 TAxisEditor.cxx:602
 TAxisEditor.cxx:603
 TAxisEditor.cxx:604
 TAxisEditor.cxx:605
 TAxisEditor.cxx:606
 TAxisEditor.cxx:607