To run, do "python <path-to>/demo.py". 
 
import os, sys
import ROOT
 
 
workdir = os.path.dirname( sys.argv[0] )
if workdir:
   os.chdir( workdir )
 
 
ROOT.gStyle.SetScreenFactor(1)   
 
bar = ROOT.TControlBar( 'vertical', 'Demos', 10, 10 )
 
if sys.version_info[0] > 2:
    to_run = 'exec(open(\'{}\').read())'
else:
    to_run = 'execfile(\'{}\')'
 
bar.AddButton( 'Help on Demos', r'TPython::Exec( "' + to_run.format('demoshelp.py') + '" );', 'Click Here For Help on Running the Demos' )
bar.AddButton( 'browser',       r'TPython::Exec( "b = ROOT.TBrowser()" );',          'Start the ROOT browser' )
bar.AddButton( 'framework',     r'TPython::Exec( "' + to_run.format('../legacy/pyroot/framework.py') + '" );', 'An Example of Object Oriented User Interface' )
bar.AddButton( 'first',         r'TPython::Exec( "' + to_run.format('../legacy/pyroot/first.py') + '" );',     'An Example of Slide with Root' )
bar.AddButton( 'hsimple',       r'TPython::Exec( "' + to_run.format('hsimple.py') + '" );',   'Creating histograms/Ntuples on file', "button" )
bar.AddButton( 'hsum',          r'TPython::Exec( "' + to_run.format('hsum.py') + '" );',      'Filling Histograms and Some Graphics Options' )
bar.AddButton( 'formula1',      r'TPython::Exec( "' + to_run.format('formula1.py') + '" );',  'Simple Formula and Functions' )
bar.AddButton( 'surfaces',      r'TPython::Exec( "' + to_run.format('surfaces.py') + '" );',  'Surface Drawing Options' )
bar.AddButton( 'fillrandom',    r'TPython::Exec( "' + to_run.format('fillrandom.py') + '" );','Histograms with Random Numbers from a Function' )
bar.AddButton( 'fit1',          r'TPython::Exec( "' + to_run.format('fit1.py') + '" );',      'A Simple Fitting Example' )
bar.AddButton( 'multifit',      r'TPython::Exec( "' + to_run.format('multifit.py') + '" );',  'Fitting in Subranges of Histograms' )
bar.AddButton( 'h1draw',        r'TPython::Exec( "' + to_run.format('h1ReadAndDraw.py') + '" );',    'Drawing Options for 1D Histograms' )
bar.AddButton( 'graph',         r'TPython::Exec( "' + to_run.format('graph.py') + '" );',     'Example of a Simple Graph' )
bar.AddButton( 'gerrors',       r'TPython::Exec( "' + to_run.format('gerrors.py') + '" );',   'Example of a Graph with Error Bars' )
bar.AddButton( 'tornado',       r'TPython::Exec( "' + to_run.format('tornado.py') + '" );',   'Examples of 3-D PolyMarkers' )
bar.AddButton( 'shapes',        r'TPython::Exec( "' + to_run.format('shapes.py') + '" );',    'The Geometry Shapes' )
bar.AddButton( 'geometry',      r'TPython::Exec( "' + to_run.format('geometry.py') + '" );',  'Creation of the NA49 Geometry File' )
bar.AddButton( 'na49view',      r'TPython::Exec( "' + to_run.format('na49view.py') + '" );',  'Two Views of the NA49 Detector Geometry' )
bar.AddButton( 'file',          r'TPython::Exec( "' + to_run.format('../legacy/pyroot/file.py') + '" );',      'The ROOT File Format' )
bar.AddButton( 'fildir',        r'TPython::Exec( "' + to_run.format('../legacy/pyroot/fildir.py') + '" );',    'The ROOT File, Directories and Keys' )
bar.AddButton( 'tree',          r'TPython::Exec( "' + to_run.format('../legacy/pyroot/tree.py') + '" );',      'The Tree Data Structure' )
bar.AddButton( 'ntuple1',       r'TPython::Exec( "' + to_run.format('ntuple1.py') + '" );',   'Ntuples and Selections' )
bar.AddButton( 'rootmarks',     r'TPython::Exec( "' + to_run.format('../legacy/pyroot/rootmarks.py') +'" );', 'Prints an Estimated ROOTMARKS for Your Machine' )
bar.AddSeparator()       
bar.AddButton( 'make ntuple',   r'TPython::Exec( "' + to_run.format('mrt.py') + '" );',       'Convert a text file to an ntuple' )
 
bar.Show()
 
ROOT.gROOT.SaveContext()
 
 
if __name__ == '__main__':
   rep = ''
   while not rep in [ 'q', 'Q' ]:
      
      if sys.version_info[0] > 2:
         rep = 
input( 
'enter "q" to quit: ' )
 
      else:
         rep = raw_input( 'enter "q" to quit: ' )
         rep = rep[0]
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void input
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t UChar_t len