CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes | Friends
CmsShowModelPopup Class Reference

#include <Fireworks/Core/interface/CmsShowModelPopup.h>

Inheritance diagram for CmsShowModelPopup:

Public Member Functions

void changeModelColor (Color_t iColor)
 
void changeModelOpacity (Int_t opacity=100)
 
 ClassDefOverride (CmsShowModelPopup, 0)
 
void clicked ()
 
void CloseWindow () override
 
 CmsShowModelPopup (FWDetailViewManager *, FWSelectionManager *, const FWColorManager *, const TGWindow *p=nullptr, UInt_t w=1, UInt_t h=1)
 
void colorSetChanged ()
 
void disconnectAll ()
 
void fillModelPopup (const FWSelectionManager &iSelMgr)
 
void openDetailedView ()
 
void toggleModelVisible (Bool_t on=kTRUE)
 
void updateDisplay ()
 
 ~CmsShowModelPopup () override
 

Private Member Functions

 CmsShowModelPopup (const CmsShowModelPopup &)
 
const CmsShowModelPopupoperator= (const CmsShowModelPopup &)
 

Private Attributes

sigc::connection m_changes
 
const FWColorManagerm_colorManager
 
FWColorSelectm_colorSelectWidget
 
sigc::connection m_destroyedConn
 
FWDetailViewManagerm_detailViewManager
 
FWDialogBuilderm_dialogBuilder
 
TGCheckButton * m_isVisibleButton
 
sigc::connection m_modelChangedConn
 
TGLabel * m_modelLabel
 
std::set< FWModelIdm_models
 
TGHSlider * m_opacitySlider
 
std::vector< TGTextButton * > m_openDetailedViewButtons
 

Friends

class CmsShowModelPopupDetailViewButtonAdapter
 

Detailed Description

Description: <one line="" class="" summary>="">

Usage: <usage>

Definition at line 52 of file CmsShowModelPopup.h.

Constructor & Destructor Documentation

◆ CmsShowModelPopup() [1/2]

CmsShowModelPopup::CmsShowModelPopup ( FWDetailViewManager iManager,
FWSelectionManager iSelMgr,
const FWColorManager iColorMgr,
const TGWindow *  p = nullptr,
UInt_t  w = 1,
UInt_t  h = 1 
)

Definition at line 54 of file CmsShowModelPopup.cc.

References FWDialogBuilder::addCheckbox(), FWDialogBuilder::addColorPicker(), FWDialogBuilder::addHSeparator(), FWDialogBuilder::addHSlider(), FWDialogBuilder::addLabel(), FWDialogBuilder::expand(), fillModelPopup(), FWDialogBuilder::indent(), m_changes, m_colorSelectWidget, m_dialogBuilder, m_isVisibleButton, m_modelLabel, m_opacitySlider, m_openDetailedViewButtons, and FWSelectionManager::selectionChanged_.

60  : TGTransientFrame(gClient->GetDefaultRoot(), p, w, h),
61  m_detailViewManager(iManager),
62  m_colorManager(iColorMgr),
63  m_dialogBuilder(nullptr) {
64  m_changes =
65  iSelMgr->selectionChanged_.connect(std::bind(&CmsShowModelPopup::fillModelPopup, this, std::placeholders::_1));
66 
67  SetCleanup(kDeepCleanup);
68 
69  TGVerticalFrame *vf = new TGVerticalFrame(this);
70  AddFrame(vf, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 2, 2, 2, 4));
72 
73  // Do the layouting of the various widgets.
75  .addLabel(" ", 14, 1, &m_modelLabel)
76  .addLabel("Color", 8)
78  .expand(false)
79  .addHSeparator()
80  .addLabel("Opacity", 8)
82  .addHSeparator(2)
83  .addCheckbox("Visible", &m_isVisibleButton)
84  .addHSeparator();
85 
86  // Dummy button for detail views. Can be overidden.
87  TGTextButton *detailedViewButton = new TGTextButton(this, "Open Detailed View", 0);
88  AddFrame(detailedViewButton, new TGLayoutHints(kLHintsExpandX, 4, 4, 4, 4));
89  m_openDetailedViewButtons.push_back(detailedViewButton);
90 
91  m_colorSelectWidget->Connect("ColorChosen(Color_t)", "CmsShowModelPopup", this, "changeModelColor(Color_t)");
92  m_isVisibleButton->Connect("Toggled(Bool_t)", "CmsShowModelPopup", this, "toggleModelVisible(Bool_t)");
93  m_opacitySlider->Connect("PositionChanged(Int_t)", "CmsShowModelPopup", this, "changeModelOpacity(Int_t)");
94 
95  SetWindowName("Object Controller");
96  MapSubwindows();
97  Resize(GetDefaultSize());
98  Layout();
99 
100  fillModelPopup(*iSelMgr);
101 }
T w() const
FWDialogBuilder & addHSlider(size_t size, TGHSlider **out=nullptr)
sigc::connection m_changes
FWDialogBuilder & addLabel(const char *text, size_t fontSize=12, size_t weight=0, TGLabel **out=nullptr)
FWDialogBuilder & addCheckbox(const char *text, TGCheckButton **out=nullptr)
TGCheckButton * m_isVisibleButton
FWDialogBuilder & addHSeparator(size_t horizontalPadding=4, size_t verticalPadding=3)
sigc::signal< void(const FWSelectionManager &)> selectionChanged_
const FWColorManager * m_colorManager
std::vector< TGTextButton * > m_openDetailedViewButtons
FWDialogBuilder & expand(size_t expandX=true, size_t expandY=false)
FWDialogBuilder * m_dialogBuilder
FWDetailViewManager * m_detailViewManager
void fillModelPopup(const FWSelectionManager &iSelMgr)
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
TGHSlider * m_opacitySlider
FWDialogBuilder & indent(int left=2, int right=-1)
FWDialogBuilder & addColorPicker(const FWColorManager *manager, FWColorSelect **out=nullptr)
FWColorSelect * m_colorSelectWidget

◆ ~CmsShowModelPopup()

CmsShowModelPopup::~CmsShowModelPopup ( )
override

Definition at line 108 of file CmsShowModelPopup.cc.

References disconnectAll(), m_changes, m_colorSelectWidget, m_isVisibleButton, and m_opacitySlider.

108  {
109  m_changes.disconnect();
110  m_colorSelectWidget->Disconnect("ColorSelected(Pixel_t)", this, "changeModelColor(Pixel_t)");
111  m_opacitySlider->Disconnect("PositionChanged(Int_t)", this, "changeModelOpacity(Int_t)");
112  m_isVisibleButton->Disconnect("Toggled(Bool_t)", this, "toggleModelVisible(Bool_t)");
113  disconnectAll();
114 }
sigc::connection m_changes
TGCheckButton * m_isVisibleButton
TGHSlider * m_opacitySlider
FWColorSelect * m_colorSelectWidget

◆ CmsShowModelPopup() [2/2]

CmsShowModelPopup::CmsShowModelPopup ( const CmsShowModelPopup )
private

Member Function Documentation

◆ changeModelColor()

void CmsShowModelPopup::changeModelColor ( Color_t  color)

Change the color of the selected objects.

NOTES:

  • Notice that the whole thing works with a "Copy old properties and modify" paradigm.

Definition at line 290 of file CmsShowModelPopup.cc.

References MillePedeFileConverter_cfg::e, mps_fire::i, info(), m_models, and FWDisplayProperties::setColor().

290  {
291  if (m_models.empty())
292  return;
293 
294  FWChangeSentry sentry(*(m_models.begin()->item()->changeManager()));
295  for (std::set<FWModelId>::iterator i = m_models.begin(), e = m_models.end(); i != e; ++i) {
296  const FWEventItem::ModelInfo &info = i->item()->modelInfo(i->index());
297  FWDisplayProperties changeProperties = info.displayProperties();
298  changeProperties.setColor(color);
299  i->item()->setDisplayProperties(i->index(), changeProperties);
300  }
301 }
void setColor(Color_t iColor)
static const TGPicture * info(bool iBackgroundIsBlack)
std::set< FWModelId > m_models

◆ changeModelOpacity()

void CmsShowModelPopup::changeModelOpacity ( Int_t  opacity = 100)

Change the opacity of the selected objects. See above in changeModelColor for additional notes.

Definition at line 306 of file CmsShowModelPopup.cc.

References MillePedeFileConverter_cfg::e, mps_fire::i, info(), m_models, and FWDisplayProperties::setTransparency().

306  {
307  if (m_models.empty())
308  return;
309 
310  FWChangeSentry sentry(*(m_models.begin()->item()->changeManager()));
311  for (std::set<FWModelId>::iterator i = m_models.begin(), e = m_models.end(); i != e; ++i) {
312  const FWEventItem::ModelInfo &info = i->item()->modelInfo(i->index());
313  FWDisplayProperties changeProperties = info.displayProperties();
314  changeProperties.setTransparency(100 - opacity);
315  i->item()->setDisplayProperties(i->index(), changeProperties);
316  }
317 }
static const TGPicture * info(bool iBackgroundIsBlack)
std::set< FWModelId > m_models
void setTransparency(Char_t transparency)

◆ ClassDefOverride()

CmsShowModelPopup::ClassDefOverride ( CmsShowModelPopup  ,
 
)

◆ clicked()

void CmsShowModelPopup::clicked ( )

Definition at line 341 of file CmsShowModelPopup.cc.

References callgraph::cs, FWDetailViewManager::detailViewsFor(), m_detailViewManager, m_models, and FWDetailViewManager::openDetailViewFor().

341  {
342  TGTextButton *cs = static_cast<TGTextButton *>(gTQSender);
343  int iIndex = cs->WidgetId();
344  std::vector<std::string> viewChoices = m_detailViewManager->detailViewsFor(*(m_models.begin()));
345 
346  m_detailViewManager->openDetailViewFor(*(m_models.begin()), *(viewChoices.begin() + iIndex));
347 }
std::vector< std::string > detailViewsFor(const FWModelId &) const
std::set< FWModelId > m_models
void openDetailViewFor(const FWModelId &, const std::string &)
FWDetailViewManager * m_detailViewManager

◆ CloseWindow()

void CmsShowModelPopup::CloseWindow ( )
inlineoverride

Definition at line 64 of file CmsShowModelPopup.h.

64 { UnmapWindow(); }

◆ colorSetChanged()

void CmsShowModelPopup::colorSetChanged ( )

Definition at line 252 of file CmsShowModelPopup.cc.

References MillePedeFileConverter_cfg::e, mps_fire::i, info(), m_colorSelectWidget, m_models, AlCaHLTBitMon_ParallelJobs::p, and FWColorSelect::SetColorByIndex().

Referenced by FWGUIManager::finishUpColorChange().

252  {
253  for (std::set<FWModelId>::iterator i = m_models.begin(), e = m_models.end(); i != e; ++i) {
254  const FWEventItem::ModelInfo &info = i->item()->modelInfo(i->index());
255  const FWDisplayProperties &p = info.displayProperties();
256  m_colorSelectWidget->SetColorByIndex(p.color(), kFALSE);
257  }
258 }
static const TGPicture * info(bool iBackgroundIsBlack)
void SetColorByIndex(Color_t iColor)
std::set< FWModelId > m_models
FWColorSelect * m_colorSelectWidget

◆ disconnectAll()

void CmsShowModelPopup::disconnectAll ( )

This is invoked to when no object is selected and sets the dialog in a disabled look.

Definition at line 263 of file CmsShowModelPopup.cc.

References cms::cuda::assert(), MillePedeFileConverter_cfg::e, mps_fire::i, m_colorSelectWidget, m_destroyedConn, m_isVisibleButton, m_modelChangedConn, m_modelLabel, m_opacitySlider, m_openDetailedViewButtons, and FWColorSelect::SetColorByIndex().

Referenced by fillModelPopup(), and ~CmsShowModelPopup().

263  {
264  m_modelChangedConn.disconnect();
265  m_destroyedConn.disconnect();
266  // m_item = 0;
267  // m_model = 0;
268  m_modelLabel->SetText("No object selected");
269  m_colorSelectWidget->SetColorByIndex(kRed, kFALSE);
270  m_isVisibleButton->SetDisabledAndSelected(kTRUE);
271  m_colorSelectWidget->SetEnabled(kFALSE);
272  m_opacitySlider->SetEnabled(kFALSE);
273  m_isVisibleButton->SetEnabled(kFALSE);
274  m_openDetailedViewButtons.front()->SetEnabled(kFALSE);
275  m_openDetailedViewButtons.front()->SetText("Open Detail View ...");
277  for (size_t i = 1, e = m_openDetailedViewButtons.size(); i != e; ++i) {
278  TGCompositeFrame *cf = (TGCompositeFrame *)m_openDetailedViewButtons[i]->GetParent();
279  cf->HideFrame(m_openDetailedViewButtons[i]);
280  }
281 }
sigc::connection m_destroyedConn
void SetColorByIndex(Color_t iColor)
assert(be >=bs)
sigc::connection m_modelChangedConn
TGCheckButton * m_isVisibleButton
std::vector< TGTextButton * > m_openDetailedViewButtons
TGHSlider * m_opacitySlider
FWColorSelect * m_colorSelectWidget

◆ fillModelPopup()

void CmsShowModelPopup::fillModelPopup ( const FWSelectionManager iSelMgr)

this updates the dialog when selection changes. It also handles multiple Selections by updating only the widgets which have non controversial (i.e. different across selected objects) values.

Definition at line 135 of file CmsShowModelPopup.cc.

References FWDisplayProperties::color(), FWDetailViewManager::detailViewsFor(), disconnectAll(), FWEventItem::ModelInfo::displayProperties(), MillePedeFileConverter_cfg::e, mps_fire::i, triggerObjects_cff::id, info(), FWDisplayProperties::isVisible(), B2GTnPMonitor_cfi::item, m_colorSelectWidget, m_destroyedConn, m_detailViewManager, m_isVisibleButton, m_modelChangedConn, m_modelLabel, m_models, m_opacitySlider, m_openDetailedViewButtons, alignCSCRings::s, FWSelectionManager::selected(), FWColorSelect::SetColorByIndex(), FWDisplayProperties::transparency(), and updateDisplay().

Referenced by CmsShowModelPopup().

135  {
136  disconnectAll();
137  // Handles the case in which the selection is empty.
138  if (iSelMgr.selected().empty())
139  return;
140 
141  // Handle the case in which the selection is not empty.
142  bool multipleNames = false, multipleColors = false, multipleVis = false, multipleTransparecy = false;
143 
144  m_models = iSelMgr.selected();
145  std::set<FWModelId>::const_iterator id = m_models.begin();
146  const FWEventItem *item = id->item();
147  const FWEventItem::ModelInfo info = item->modelInfo(id->index());
148  const FWDisplayProperties &props = info.displayProperties();
149 
150  // The old logic was broken here. It was enought that the last item
151  // was the same as the first one, and all of them would have been considered
152  // equal. This should fix it. The idea is that if any of the elements in
153  // models in [1, N] are different from the first, then we consider the
154  // set with multipleXYZ.
155  for (std::set<FWModelId>::const_iterator i = ++(m_models.begin()), e = m_models.end(); i != e; ++i) {
156  const FWEventItem::ModelInfo &nextInfo = i->item()->modelInfo(i->index());
157  const FWDisplayProperties &nextProps = nextInfo.displayProperties();
158 
159  multipleNames = multipleNames || (item->name() != i->item()->name());
160  multipleColors = multipleColors || (props.color() != nextProps.color());
161  multipleVis = multipleVis || (props.isVisible() != nextProps.isVisible());
162  multipleTransparecy = multipleTransparecy || (props.transparency() != nextProps.transparency());
163  }
164 
165  // Handle the name.
166  std::ostringstream s;
167  if (multipleNames)
168  s << m_models.size() << " objects";
169  else
170  s << m_models.size() << " " << item->name();
171  m_modelLabel->SetText(s.str().c_str());
172 
173  if (m_models.size() == 1) {
174  m_modelLabel->SetText(item->modelName(id->index()).c_str());
175  std::vector<std::string> viewChoices = m_detailViewManager->detailViewsFor(*id);
176  m_openDetailedViewButtons.front()->SetEnabled(!viewChoices.empty());
177  //be sure we show just the right number of buttons
178  if (viewChoices.size() > m_openDetailedViewButtons.size()) {
179  for (size_t i = 0, e = m_openDetailedViewButtons.size(); i != e; ++i) {
180  // printf("show existing buttons\n");
181  TGCompositeFrame *cf = (TGCompositeFrame *)m_openDetailedViewButtons[i]->GetParent();
182  cf->ShowFrame(m_openDetailedViewButtons[i]);
183  }
184 
185  //now we make additional buttons
186  TGTextButton *button;
187  for (size_t index = m_openDetailedViewButtons.size(); index < viewChoices.size(); ++index) {
188  button = new TGTextButton(this, "dummy", index);
189  AddFrame(button, new TGLayoutHints(kLHintsExpandX, 4, 4, 4, 4));
190  TGCompositeFrame *cf = (TGCompositeFrame *)button->GetParent();
191  cf->MapWindow();
192  cf->MapSubwindows();
193  m_openDetailedViewButtons.push_back(button);
194 
195  button->Connect("Clicked()", "CmsShowModelPopup", this, "clicked()");
196  }
197  } else if (!viewChoices.empty()) {
198  // printf("show button subset %d \n", viewChoices.size());
199  for (size_t i = 0, e = viewChoices.size(); i != e; ++i) {
200  TGCompositeFrame *cf = (TGCompositeFrame *)m_openDetailedViewButtons[i]->GetParent();
201  cf->ShowFrame(m_openDetailedViewButtons[i]);
202  }
203  }
204 
205  //set the names
206  for (size_t i = 0, e = viewChoices.size(); i != e; ++i) {
207  if (viewChoices[i][0] == '!') {
208  m_openDetailedViewButtons[i]->SetEnabled(false);
209  m_openDetailedViewButtons[i]->SetText(("Open " + viewChoices[i].substr(1) + " Detail View ...").c_str());
210 
211  } else {
212  m_openDetailedViewButtons[i]->SetText(("Open " + viewChoices[i] + " Detail View ...").c_str());
213  m_openDetailedViewButtons[i]->SetEnabled(true);
214  }
215  }
216  }
217 
218  // Set the various widgets.
219  m_colorSelectWidget->SetColorByIndex(props.color(), kFALSE);
220  m_opacitySlider->SetPosition(100 - props.transparency());
221  m_isVisibleButton->SetDisabledAndSelected(props.isVisible());
222 
223  m_opacitySlider->SetEnabled(kTRUE);
224  m_colorSelectWidget->SetEnabled(kTRUE);
225  m_isVisibleButton->SetEnabled(kTRUE);
226 
227  m_modelChangedConn = item->changed_.connect(std::bind(&CmsShowModelPopup::updateDisplay, this));
228  m_destroyedConn = item->goingToBeDestroyed_.connect(std::bind(&CmsShowModelPopup::disconnectAll, this));
229 
230  Resize(GetDefaultSize());
231  Layout();
232 }
static const TGPicture * info(bool iBackgroundIsBlack)
sigc::connection m_destroyedConn
void SetColorByIndex(Color_t iColor)
Char_t transparency() const
std::vector< std::string > detailViewsFor(const FWModelId &) const
const FWDisplayProperties & displayProperties() const
Definition: FWEventItem.h:64
sigc::connection m_modelChangedConn
TGCheckButton * m_isVisibleButton
std::set< FWModelId > m_models
std::vector< TGTextButton * > m_openDetailedViewButtons
FWDetailViewManager * m_detailViewManager
const std::set< FWModelId > & selected() const
TGHSlider * m_opacitySlider
FWColorSelect * m_colorSelectWidget

◆ openDetailedView()

void CmsShowModelPopup::openDetailedView ( )

Definition at line 335 of file CmsShowModelPopup.cc.

References FWDetailViewManager::detailViewsFor(), m_detailViewManager, m_models, and FWDetailViewManager::openDetailViewFor().

335  {
336  std::vector<std::string> viewChoices = m_detailViewManager->detailViewsFor(*(m_models.begin()));
337 
338  m_detailViewManager->openDetailViewFor(*(m_models.begin()), viewChoices.front());
339 }
std::vector< std::string > detailViewsFor(const FWModelId &) const
std::set< FWModelId > m_models
void openDetailViewFor(const FWModelId &, const std::string &)
FWDetailViewManager * m_detailViewManager

◆ operator=()

const CmsShowModelPopup& CmsShowModelPopup::operator= ( const CmsShowModelPopup )
private

◆ toggleModelVisible()

void CmsShowModelPopup::toggleModelVisible ( Bool_t  on = kTRUE)

Change (not toggle actually) the visibility of selected objects. See changeModelColor for additional notes.

Definition at line 322 of file CmsShowModelPopup.cc.

References mps_fire::i, info(), m_models, and FWDisplayProperties::setIsVisible().

322  {
323  if (m_models.empty())
324  return;
325 
326  FWChangeSentry sentry(*(m_models.begin()->item()->changeManager()));
327  for (std::set<FWModelId>::iterator i = m_models.begin(); i != m_models.end(); ++i) {
328  const FWEventItem::ModelInfo &info = i->item()->modelInfo(i->index());
329  FWDisplayProperties changeProperties = info.displayProperties();
330  changeProperties.setIsVisible(on);
331  i->item()->setDisplayProperties(i->index(), changeProperties);
332  }
333 }
static const TGPicture * info(bool iBackgroundIsBlack)
std::set< FWModelId > m_models
void setIsVisible(bool iSet)

◆ updateDisplay()

void CmsShowModelPopup::updateDisplay ( )

Based on the actual models properties, update the GUI.

Definition at line 236 of file CmsShowModelPopup.cc.

References MillePedeFileConverter_cfg::e, mps_fire::i, info(), m_colorSelectWidget, m_isVisibleButton, m_models, m_opacitySlider, AlCaHLTBitMon_ParallelJobs::p, and FWColorSelect::SetColorByIndex().

Referenced by fillModelPopup().

236  {
237  for (std::set<FWModelId>::iterator i = m_models.begin(), e = m_models.end(); i != e; ++i) {
238  const FWEventItem::ModelInfo &info = i->item()->modelInfo(i->index());
239  const FWDisplayProperties &p = info.displayProperties();
240  m_colorSelectWidget->SetColorByIndex(p.color(), kFALSE);
241 
242  if (p.isVisible())
243  m_isVisibleButton->SetState(kButtonDown, kFALSE);
244  else
245  m_isVisibleButton->SetState(kButtonUp, kFALSE);
246 
247  m_opacitySlider->SetPosition(100 - p.transparency());
248  }
249 }
static const TGPicture * info(bool iBackgroundIsBlack)
void SetColorByIndex(Color_t iColor)
TGCheckButton * m_isVisibleButton
std::set< FWModelId > m_models
TGHSlider * m_opacitySlider
FWColorSelect * m_colorSelectWidget

Friends And Related Function Documentation

◆ CmsShowModelPopupDetailViewButtonAdapter

friend class CmsShowModelPopupDetailViewButtonAdapter
friend

Definition at line 54 of file CmsShowModelPopup.h.

Member Data Documentation

◆ m_changes

sigc::connection CmsShowModelPopup::m_changes
private

Definition at line 98 of file CmsShowModelPopup.h.

Referenced by CmsShowModelPopup(), and ~CmsShowModelPopup().

◆ m_colorManager

const FWColorManager* CmsShowModelPopup::m_colorManager
private

Definition at line 101 of file CmsShowModelPopup.h.

◆ m_colorSelectWidget

FWColorSelect* CmsShowModelPopup::m_colorSelectWidget
private

◆ m_destroyedConn

sigc::connection CmsShowModelPopup::m_destroyedConn
private

Definition at line 97 of file CmsShowModelPopup.h.

Referenced by disconnectAll(), and fillModelPopup().

◆ m_detailViewManager

FWDetailViewManager* CmsShowModelPopup::m_detailViewManager
private

Definition at line 100 of file CmsShowModelPopup.h.

Referenced by clicked(), fillModelPopup(), and openDetailedView().

◆ m_dialogBuilder

FWDialogBuilder* CmsShowModelPopup::m_dialogBuilder
private

Definition at line 103 of file CmsShowModelPopup.h.

Referenced by CmsShowModelPopup().

◆ m_isVisibleButton

TGCheckButton* CmsShowModelPopup::m_isVisibleButton
private

◆ m_modelChangedConn

sigc::connection CmsShowModelPopup::m_modelChangedConn
private

Definition at line 96 of file CmsShowModelPopup.h.

Referenced by disconnectAll(), and fillModelPopup().

◆ m_modelLabel

TGLabel* CmsShowModelPopup::m_modelLabel
private

Definition at line 89 of file CmsShowModelPopup.h.

Referenced by CmsShowModelPopup(), disconnectAll(), and fillModelPopup().

◆ m_models

std::set<FWModelId> CmsShowModelPopup::m_models
private

◆ m_opacitySlider

TGHSlider* CmsShowModelPopup::m_opacitySlider
private

◆ m_openDetailedViewButtons

std::vector<TGTextButton*> CmsShowModelPopup::m_openDetailedViewButtons
private

Definition at line 92 of file CmsShowModelPopup.h.

Referenced by CmsShowModelPopup(), disconnectAll(), and fillModelPopup().