CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
FWGeometryTableViewBase::FWViewCombo Class Reference

#include <FWGeometryTableViewBase.h>

Inheritance diagram for FWGeometryTableViewBase::FWViewCombo:

Public Member Functions

 FWViewCombo (const TGWindow *p, FWGeometryTableViewBase *t)
 
Bool_t HandleButton (Event_t *event) override
 
void setElement (TEveElement *x)
 
 ~FWViewCombo () override
 

Private Attributes

TEveElement * m_el
 
FWGeometryTableViewBasem_tableView
 

Detailed Description

Definition at line 48 of file FWGeometryTableViewBase.h.

Constructor & Destructor Documentation

FWGeometryTableViewBase::FWViewCombo::FWViewCombo ( const TGWindow *  p,
FWGeometryTableViewBase t 
)
inline

Definition at line 54 of file FWGeometryTableViewBase.h.

55  : TGTextButton(p,
56  "Select Views",
57  -1,
58  TGButton::GetDefaultGC()(),
59  TGTextButton::GetDefaultFontStruct(),
60  kRaisedFrame | kDoubleBorder),
61  m_tableView(t),
62  m_el(nullptr) {}
FWGeometryTableViewBase::FWViewCombo::~FWViewCombo ( )
inlineoverride

Definition at line 63 of file FWGeometryTableViewBase.h.

63 {}

Member Function Documentation

Bool_t FWGeometryTableViewBase::FWViewCombo::HandleButton ( Event_t *  event)
override

Definition at line 50 of file FWGeometryTableViewBase.cc.

References FWGeometryTableManagerBase::cancelEditor(), fwLog, FWGeometryTableViewBase::getTableManager(), training_settings::idx, fwlog::kInfo, m_el, m_tableView, genParticles_cff::map, AlCaHLTBitMon_ParallelJobs::p, alignCSCRings::s, and findQualityFiles::v.

Referenced by setElement().

50  {
51  if (event->fType == kButtonPress) {
52  bool map = false;
53 
54  FWPopupMenu* m_viewPopup = new FWPopupMenu(nullptr);
55 
56  TEveElementList* views = gEve->GetViewers();
57  int idx = 0;
58 
59  for (TEveElement::List_i it = views->BeginChildren(); it != views->EndChildren(); ++it) {
60  TEveViewer* v = ((TEveViewer*)(*it));
61  if (strstr(v->GetElementName(), "3D")) {
62  bool added = false;
63  m_viewPopup->AddEntry(v->GetElementName(), idx);
64 
65  for (TEveElement::List_i eit = v->BeginChildren(); eit != v->EndChildren(); ++eit) {
66  TEveScene* s = ((TEveSceneInfo*)*eit)->GetScene();
67  if (m_el && s->HasChildren() && s->FirstChild() == m_el) {
68  added = true;
69  break;
70  }
71  }
72  map = true;
73  if (added)
74  m_viewPopup->CheckEntry(idx);
75  }
76  ++idx;
77  }
78 
79  if (map) {
80  Window_t wdummy;
81  Int_t ax, ay;
82  gVirtualX->TranslateCoordinates(GetId(),
83  gClient->GetDefaultRoot()->GetId(),
84  event->fX,
85  event->fY, //0,0 in local coordinates
86  ax,
87  ay, //coordinates of screen
88  wdummy);
89 
90  m_viewPopup->PlaceMenu(ax, ay, true, true);
91  m_viewPopup->Connect("Activated(Int_t)",
92  "FWGeometryTableViewBase",
93  const_cast<FWGeometryTableViewBase*>(m_tableView),
94  "selectView(Int_t)");
95  } else {
96  fwLog(fwlog::kInfo) << "No 3D View added. \n";
97  }
98  }
99  return true;
100 }
#define fwLog(_level_)
Definition: fwLog.h:45
Definition: event.py:1
void FWGeometryTableViewBase::FWViewCombo::setElement ( TEveElement *  x)
inline

Member Data Documentation

TEveElement* FWGeometryTableViewBase::FWViewCombo::m_el
private

Definition at line 51 of file FWGeometryTableViewBase.h.

Referenced by HandleButton().

FWGeometryTableViewBase* FWGeometryTableViewBase::FWViewCombo::m_tableView
private

Definition at line 50 of file FWGeometryTableViewBase.h.

Referenced by HandleButton().