Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
exec3.C
Go to the documentation of this file.
1 /// \file
2 /// \ingroup tutorial_gui
3 /// Example of using signal/slot in TCanvas/TPad to get feedback about processed events.
4 /// Note that slots can be either functions or class methods.
5 /// Compare this with tutorials $ROOTSYS/tutorials/hist/exec1.C and $ROOTSYS/tutorials/hist/exec2.C.
6 ///
7 /// \macro_code
8 ///
9 /// \author Ilka Antcheva
10 
11 #include <TH1.h>
12 #include <TCanvas.h>
13 #include <TQObject.h>
14 #include "TROOT.h"
15 
16 void exec3()
17 {
18  // Temporary work around the lack of automatic refresh of the list
19  // when a script is reloaded.
20  gROOT->GetListOfGlobalFunctions()->Delete();
21 
22  TH1F *h = new TH1F("h","h",100,-3,3);
23  h->FillRandom("gaus",1000);
24  TCanvas *c1=new TCanvas("c1");
25  h->Draw();
26  c1->Update();
27  c1->Connect("ProcessedEvent(Int_t,Int_t,Int_t,TObject*)", 0, 0,
28  "exec3event(Int_t,Int_t,Int_t,TObject*)");
29 }
30 
31 void exec3event(Int_t event, Int_t x, Int_t y, TObject *selected)
32 {
33  TCanvas *c = (TCanvas *) gTQSender;
34  printf("Canvas %s: event=%d, x=%d, y=%d, selected=%s\n", c->GetName(),
35  event, x, y, selected->IsA()->GetName());
36 }