Simple macro showing capabilities of triple slider. 
 
 
 
};
 
 
private:
 
public:
 
   void CloseWindow() override;
   void DoText(
const char *
text);
 
   void DoSlider();
   void HandleButtons();
 
};
 
{
 
   char buf[32];
   
   
   AddFrame(fCanvas, 
fLcan);
   fCanvas->GetCanvas()->SetFillColor(33);
   fCanvas->GetCanvas()->SetFrameFillColor(41);
   fCanvas->GetCanvas()->SetBorderMode(0);
   fCanvas->GetCanvas()->SetGrid();
   fCanvas->GetCanvas()->SetLogy();
 
 
   fCheck1->SetToolTipText(
"Pointer position constrained to slider sides");
 
   fCheck2->SetToolTipText(
"Pointer position relative to slider position");
 
 
 
 
                                   GetDefaultFrameBackground(),
   fHslider1->Connect(
"PointerPositionChanged()", 
"TTripleSliderDemo",
 
                      this, "DoSlider()");
   fHslider1->Connect(
"PositionChanged()", 
"TTripleSliderDemo",
 
                      this, "DoSlider()");
 
 
 
 
   fTeh1->SetToolTipText(
"Minimum (left) Value of Slider");
 
   fTeh2->SetToolTipText(
"Pointer Position Value");
 
   fTeh3->SetToolTipText(
"Maximum (right) Value of Slider");
 
 
   fTbh1->AddText(0, 
"0.0");
 
   fTbh2->AddText(0, 
"0.0");
 
   fTbh3->AddText(0, 
"0.0");
 
 
   fTeh1->Connect(
"TextChanged(char*)", 
"TTripleSliderDemo", 
this,
 
                  "DoText(char*)");
   fTeh2->Connect(
"TextChanged(char*)", 
"TTripleSliderDemo", 
this,
 
                  "DoText(char*)");
   fTeh3->Connect(
"TextChanged(char*)", 
"TTripleSliderDemo", 
this,
 
                  "DoText(char*)");
 
   fCheck1->Connect(
"Clicked()", 
"TTripleSliderDemo", 
this,
 
                    "HandleButtons()");
   fCheck2->Connect(
"Clicked()", 
"TTripleSliderDemo", 
this,
 
                    "HandleButtons()");
 
 
   
 
   
 
 
 
   
   
   SetWindowName("Triple Slider Demo");
   Resize(GetDefaultSize());
   MapWindow();
 
   fFitFcn = 
new TF1(
"fFitFcn", 
"TMath::LogNormal(x, [0], [1], [2])", 0, 5);
 
 
 
}
 
TTripleSliderDemo::~TTripleSliderDemo()
{
   
 
   Cleanup();
}
 
void TTripleSliderDemo::CloseWindow()
{
   
 
   delete this;
}
 
void TTripleSliderDemo::DoText(const char * )
{
   
 
 
   switch (id) {
         break;
         break;
         break;
      default:
         break;
   }
   fCanvas->GetCanvas()->Modified();
   fCanvas->GetCanvas()->Update();
}
 
void TTripleSliderDemo::DoSlider()
{
   
 
   char buf[32];
 
   fTeh1->SetCursorPosition(
fTeh1->GetCursorPosition());
 
 
   fTeh2->SetCursorPosition(
fTeh2->GetCursorPosition());
 
 
   fTeh3->SetCursorPosition(
fTeh3->GetCursorPosition());
 
 
   fCanvas->GetCanvas()->Modified();
   fCanvas->GetCanvas()->Update();
}
 
void TTripleSliderDemo::HandleButtons()
{
   
 
 
   switch (id) {
         break;
         break;
      default:
         break;
   }
}
 
 
{
}
 
#define ClassDef(name, id)
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize MapSubwindows
Option_t Option_t TPoint TPoint const char text
R__EXTERN void * gTQSender
A composite frame that layout their children in horizontal way.
This class describes layout hints used by the layout classes.
Defines top level windows that interact with the system Window Manager.
A text buffer is used in several widgets, like TGTextEntry, TGFileDialog, etc.
A TGTextEntry is a one line text input widget.
TripleSlider inherit from DoubleSlider widgets and allow easy selection of a min, max and pointer val...
This class creates a TGCanvas in which a TCanvas is created.