ROOT logo
// This macro plays a recorded ROOT session showing how to perform various
// interactive graphical editing operations. The initial graphics setup 
// was created using the following root commands: 
//
//   t = new TRecorder();
//   t->Start("graphedit_playback.root");
//   gStyle->SetPalette(1);
//   TCanvas *c2 = new TCanvas("c2","c2",0,0,700,500);
//   TH2F* h2 = new TH2F("h2","Random 2D Gaussian",40,-4,4,40,-4,4);
//   h2->SetDirectory(0);
//   TRandom r;
//   for (int i=0;i<50000;i++) h2->Fill(r.Gaus(),r.Gaus());
//   h2->Draw();
//   gPad->Update();
//   TCanvas *c1 = new TCanvas("c1","c1",0,0,700,500);
//   TH1F* h1 = new TH1F("h1","Random 1D Gaussian",100,-4,4);
//   h1->SetDirectory(0);
//   h1->FillRandom("gaus",10000);
//   h1->Draw();
//   gPad->Update();
//  
//   // Here the following "sketch" was done.
//  
//   t->Stop();
//
// The interactive editing shows:
//     - Object editing using object editors
//     - Direct editing on the graphics canvas
//     - Saving PS and bitmap files.
//     - Saving as a .C file: C++ code corresponding to the modifications
//       is saved.
//
// The sketch of the recorded actions is:
//
//    On the canvas c1:
//       Open View/Editor
//       Select histogram
//       Change fill style
//       Change fill color
//       Move stat box
//       Change fill color
//       Move title 
//       Change fill color using wheel color
//       Select Y axis
//       Change axis title
//       Select X axis
//       Change axis title
//       Select histogram
//       Go in binning
//       Change range
//       Move range
//       On the canvas menu set grid Y
//       On the canvas menu set grid X
//       On the canvas menu set log Y
//       Increase the range.
//       Close View/Editor
//       Save as PS file
//       Save as C file
//       Close c1
//    On the canvas c2:
//       Open View/Editor
//       Select histogram
//       Select COL
//       Select Palette
//       Move Stats
//       Select Overflows
//       Select histogram
//       Select 3D
//       Select SURF1
//       Rotate Surface
//       Go in binning
//       Change X range
//       Change Y range
//       Close View/Editor
//       Save as GIF file
//       Save as C file
//       Close c2

void graph_edit_playback()
{
   TRecorder* r = new TRecorder("http://root.cern.ch/files/graphedit_playback.root");
}
 graph_edit_playback.C:1
 graph_edit_playback.C:2
 graph_edit_playback.C:3
 graph_edit_playback.C:4
 graph_edit_playback.C:5
 graph_edit_playback.C:6
 graph_edit_playback.C:7
 graph_edit_playback.C:8
 graph_edit_playback.C:9
 graph_edit_playback.C:10
 graph_edit_playback.C:11
 graph_edit_playback.C:12
 graph_edit_playback.C:13
 graph_edit_playback.C:14
 graph_edit_playback.C:15
 graph_edit_playback.C:16
 graph_edit_playback.C:17
 graph_edit_playback.C:18
 graph_edit_playback.C:19
 graph_edit_playback.C:20
 graph_edit_playback.C:21
 graph_edit_playback.C:22
 graph_edit_playback.C:23
 graph_edit_playback.C:24
 graph_edit_playback.C:25
 graph_edit_playback.C:26
 graph_edit_playback.C:27
 graph_edit_playback.C:28
 graph_edit_playback.C:29
 graph_edit_playback.C:30
 graph_edit_playback.C:31
 graph_edit_playback.C:32
 graph_edit_playback.C:33
 graph_edit_playback.C:34
 graph_edit_playback.C:35
 graph_edit_playback.C:36
 graph_edit_playback.C:37
 graph_edit_playback.C:38
 graph_edit_playback.C:39
 graph_edit_playback.C:40
 graph_edit_playback.C:41
 graph_edit_playback.C:42
 graph_edit_playback.C:43
 graph_edit_playback.C:44
 graph_edit_playback.C:45
 graph_edit_playback.C:46
 graph_edit_playback.C:47
 graph_edit_playback.C:48
 graph_edit_playback.C:49
 graph_edit_playback.C:50
 graph_edit_playback.C:51
 graph_edit_playback.C:52
 graph_edit_playback.C:53
 graph_edit_playback.C:54
 graph_edit_playback.C:55
 graph_edit_playback.C:56
 graph_edit_playback.C:57
 graph_edit_playback.C:58
 graph_edit_playback.C:59
 graph_edit_playback.C:60
 graph_edit_playback.C:61
 graph_edit_playback.C:62
 graph_edit_playback.C:63
 graph_edit_playback.C:64
 graph_edit_playback.C:65
 graph_edit_playback.C:66
 graph_edit_playback.C:67
 graph_edit_playback.C:68
 graph_edit_playback.C:69
 graph_edit_playback.C:70
 graph_edit_playback.C:71
 graph_edit_playback.C:72
 graph_edit_playback.C:73
 graph_edit_playback.C:74
 graph_edit_playback.C:75
 graph_edit_playback.C:76
 graph_edit_playback.C:77
 graph_edit_playback.C:78
 graph_edit_playback.C:79
 graph_edit_playback.C:80
 graph_edit_playback.C:81
 graph_edit_playback.C:82
 graph_edit_playback.C:83