swh:1:snp:af87cd67498ef4fe47c76ed3e7caffe5b61facaf
Tip revision: 8feeafb4a9c7b2ad065ff7cb00db52255e287025 authored by dpiparo on 28 November 2023, 00:27:58 UTC
"Update ROOT version files to v6.26/14."
"Update ROOT version files to v6.26/14."
Tip revision: 8feeafb
selection_sigs.C
/// \file
/// \ingroup tutorial_eve
/// Test signals from TEveSelection class.
///
/// \macro_code
///
/// \author Matevz Tadel
#include "TEveSelection.h" // To enforce auto-loading of libEve.
class SigTestSpitter
{
TEveSelection *fSel;
TString fPrefix;
public:
SigTestSpitter(TEveSelection* sel, const TString& prefix) :
fSel(sel), fPrefix(prefix)
{
fSel->Connect("SelectionAdded(TEveElement*)", "SigTestSpitter", this, "Added(TEveElement*)");
fSel->Connect("SelectionRemoved(TEveElement*)", "SigTestSpitter", this, "Removed(TEveElement*)");
fSel->Connect("SelectionCleared()", "SigTestSpitter", this, "Cleared()");
}
~SigTestSpitter()
{
fSel->Disconnect("SelectionAdded(TEveElement*)", this, "Added(TEveElement*)");
fSel->Disconnect("SelectionRemoved(TEveElement*)", this, "Removed(TEveElement*)");
fSel->Disconnect("SelectionCleared()", this, "Cleared()");
}
// ----------------------------------------------------------------
void Added(TEveElement* el)
{
printf("%s Added 0x%lx '%s'\n", fPrefix.Data(), (ULong_t)el, el ? el->GetElementName() : "");
}
void Removed(TEveElement* el)
{
printf("%s Removed 0x%lx '%s'\n", fPrefix.Data(), (ULong_t)el, el ? el->GetElementName() : "");
}
void Cleared()
{
printf("%s Cleared'\n", fPrefix.Data());
}
};
void selection_sigs()
{
TEveManager::Create();
new SigTestSpitter(gEve->GetSelection(), "Selection");
new SigTestSpitter(gEve->GetHighlight(), "Highlight");
}