MCPcopy Create free account
hub / github.com/codereader/DarkRadiant / setupAdvancedPanel

Method setupAdvancedPanel

radiant/ui/modelselector/ModelSelector.cpp:110–159  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

108}
109
110void ModelSelector::setupAdvancedPanel(wxWindow* parent)
111{
112 auto detailsPage = findNamedPanel(parent, "ModelDetailsPanel");
113
114 // Create info panel
115 _infoTable = new wxutil::KeyValueTable(detailsPage);
116 _infoTable->SetMinClientSize(wxSize(-1, 140));
117
118 detailsPage->GetSizer()->Add(_infoTable, 1, wxEXPAND);
119
120 auto materialsPage = findNamedPanel(parent, "ModelMaterialsPanel");
121
122 _materialsList = new MaterialsList(materialsPage, _modelPreview->getRenderSystem());
123 _materialsList->SetMinClientSize(wxSize(-1, 140));
124
125 materialsPage->GetSizer()->Add(_materialsList, 1, wxEXPAND);
126
127 // Refresh preview when material visibility changed
128 _materialsList->signal_visibilityChanged().connect(
129 sigc::mem_fun(*this, &ModelSelector::onMaterialVisibilityStatusChanged)
130 );
131
132 auto entityPage = findNamedPanel(parent, "ModelRelatedEntitiesPanel");
133
134 _relatedEntityStore = new wxutil::TreeModel(_relatedEntityColumns, true);
135 _relatedEntityView = wxutil::TreeView::CreateWithModel(entityPage, _relatedEntityStore.get());
136
137 _relatedEntityView->AppendTextColumn(_("Entity Class"), _relatedEntityColumns.eclassName.getColumnIndex(),
138 wxDATAVIEW_CELL_INERT, wxCOL_WIDTH_AUTOSIZE, wxALIGN_NOT, wxDATAVIEW_COL_SORTABLE);
139 _relatedEntityView->AppendTextColumn(_("Skin"), _relatedEntityColumns.skin.getColumnIndex(),
140 wxDATAVIEW_CELL_INERT, wxCOL_WIDTH_AUTOSIZE, wxALIGN_NOT, wxDATAVIEW_COL_SORTABLE);
141
142 _relatedEntityView->Bind(wxEVT_DATAVIEW_SELECTION_CHANGED, &ModelSelector::onRelatedEntitySelectionChange, this);
143 _relatedEntityView->Bind(wxEVT_DATAVIEW_ITEM_ACTIVATED, &ModelSelector::onRelatedEntityActivated, this);
144
145 _relatedEntityView->Bind(wxEVT_DATAVIEW_ITEM_CONTEXT_MENU, [&] (auto&)
146 {
147 _relatedEntityContextMenu->show(this);
148 });
149
150 // Construct the context menu
151 _relatedEntityContextMenu = std::make_shared<wxutil::PopupMenu>();
152 _relatedEntityContextMenu->addItem(
153 new wxutil::IconTextMenuItem(_(SHOW_ECLASS_DEFINITION_TEXT), SHOW_ECLASS_DEFINITION_ICON),
154 std::bind(&ModelSelector::onShowClassDefinition, this),
155 [this]() { return _relatedEntityView->GetSelection().IsOk(); }
156 );
157
158 entityPage->GetSizer()->Prepend(_relatedEntityView, 1, wxEXPAND);
159}
160
161void ModelSelector::onShowClassDefinition()
162{

Callers

nothing calls this directly

Calls 8

AddMethod · 0.80
getColumnIndexMethod · 0.80
_Function · 0.50
getRenderSystemMethod · 0.45
connectMethod · 0.45
getMethod · 0.45
showMethod · 0.45
addItemMethod · 0.45

Tested by

no test coverage detected