18 #include <sigc++/sigc++.h>
60 : TGTransientFrame(gClient->GetDefaultRoot(), p, w, h),
61 m_detailViewManager(iManager),
62 m_colorManager(iColorMgr),
63 m_dialogBuilder(nullptr) {
67 SetCleanup(kDeepCleanup);
69 TGVerticalFrame *vf =
new TGVerticalFrame(
this);
70 AddFrame(vf,
new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 2, 2, 2, 4));
87 TGTextButton *detailedViewButton =
new TGTextButton(
this,
"Open Detailed View", 0);
88 AddFrame(detailedViewButton,
new TGLayoutHints(kLHintsExpandX, 4, 4, 4, 4));
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)");
95 SetWindowName(
"Object Controller");
97 Resize(GetDefaultSize());
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)");
142 bool multipleNames =
false, multipleColors =
false, multipleVis =
false, multipleTransparecy =
false;
145 std::set<FWModelId>::const_iterator
id =
m_models.begin();
155 for (std::set<FWModelId>::const_iterator
i = ++(
m_models.begin()),
e =
m_models.end();
i !=
e; ++
i) {
159 multipleNames = multipleNames || (item->
name() !=
i->item()->name());
160 multipleColors = multipleColors || (props.
color() != nextProps.
color());
166 std::ostringstream
s;
186 TGTextButton *button;
188 button =
new TGTextButton(
this,
"dummy",
index);
189 AddFrame(button,
new TGLayoutHints(kLHintsExpandX, 4, 4, 4, 4));
190 TGCompositeFrame *cf = (TGCompositeFrame *)button->GetParent();
195 button->Connect(
"Clicked()",
"CmsShowModelPopup",
this,
"clicked()");
197 }
else if (!viewChoices.empty()) {
199 for (
size_t i = 0,
e = viewChoices.size();
i !=
e; ++
i) {
206 for (
size_t i = 0,
e = viewChoices.size();
i !=
e; ++
i) {
207 if (viewChoices[
i][0] ==
'!') {
230 Resize(GetDefaultSize());
299 i->item()->setDisplayProperties(
i->index(), changeProperties);
315 i->item()->setDisplayProperties(
i->index(), changeProperties);
331 i->item()->setDisplayProperties(
i->index(), changeProperties);
342 TGTextButton *
cs =
static_cast<TGTextButton *
>(gTQSender);
343 int iIndex = cs->WidgetId();
const std::set< FWModelId > & selected() const
void setColor(Color_t iColor)
const FWDisplayProperties & displayProperties() const
void SetColorByIndex(Color_t iColor)
std::string modelName(int iIndex) const
const std::string & name() const
unique_ptr< ClusterSequence > cs
FWDialogBuilder & addHSlider(size_t size, TGHSlider **out=nullptr)
FWItemChangeSignal goingToBeDestroyed_
FWDialogBuilder & addLabel(const char *text, size_t fontSize=12, size_t weight=0, TGLabel **out=nullptr)
FWDialogBuilder & addCheckbox(const char *text, TGCheckButton **out=nullptr)
Char_t transparency() const
FWDialogBuilder & addHSeparator(size_t horizontalPadding=4, size_t verticalPadding=3)
std::vector< std::string > detailViewsFor(const FWModelId &) const
FWDialogBuilder & expand(size_t expandX=true, size_t expandY=false)
void setTransparency(Char_t transparency)
void openDetailViewFor(const FWModelId &, const std::string &)
sigc::signal< void, const FWSelectionManager & > selectionChanged_
FWModelChangeSignal changed_
ModelInfo modelInfo(int iIndex) const
void setIsVisible(bool iSet)
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
FWDialogBuilder & indent(int left=2, int right=-1)
FWDialogBuilder & addColorPicker(const FWColorManager *manager, FWColorSelect **out=nullptr)