Re: [ROOT] attaching action to window close

From: Fons Rademakers (Fons.Rademakers@cern.ch)
Date: Mon Oct 30 2000 - 12:35:16 MET


Hi David,

   like Valeriy Onuchin already said in his reply, this is very easy with
the Qt like signal/slots mechanism we have recently introduced in ROOT.
Currently this facility is only available in the development version of
ROOT in CVS. To read more about signal/slot in ROOT see see
http://root.cern.ch/root/HowtoSignalSlot.html.
For example what you want can be achieved with the little macro below:

//-- close.C
void close()
{
   TCanvas *c = new TCanvas();

   TRootCanvas *rc = (TRootCanvas*)c->GetCanvasImp();
   rc->Connect("CloseWindow()", 0, 0, "monitorClose()");
}

void monitorClose()
{
   printf("canvas closed\n");
}


Cheers, Fons.



David Faden wrote:
> 
> Hi,
>    Is there a way to specify a chunk of code to be executed when
> a TCanvas (or GUI window) is closed? Is it possible to do this under
> interpretted code without blocking without polling -- something akin to
> TPad::AddExec(char*, char*)?
>    Does the number returned by TCanvas::GetCanvasID() have any utitility
> if the TCanvas is not embedded?
>    Thank you.
> 
> David

-- 
Org:    CERN, European Laboratory for Particle Physics.
Mail:   1211 Geneve 23, Switzerland
E-Mail: Fons.Rademakers@cern.ch              Phone: +41 22 7679248
WWW:    http://root.cern.ch/~rdm/            Fax:   +41 22 7677910



This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:36 MET