Skip to content

Commit

Permalink
#5532: Show/hide deform pages as needed
Browse files Browse the repository at this point in the history
  • Loading branch information
codereader committed Feb 21, 2021
1 parent d0c3793 commit 666551c
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 9 deletions.
12 changes: 6 additions & 6 deletions install/ui/materialeditor.fbp
Expand Up @@ -5501,7 +5501,7 @@
<property name="border">0</property>
<property name="flag">wxEXPAND</property>
<property name="proportion">1</property>
<object class="wxBoxSizer" expanded="1">
<object class="wxBoxSizer" expanded="0">
<property name="minimum_size"></property>
<property name="name">bSizer7811</property>
<property name="orient">wxHORIZONTAL</property>
Expand Down Expand Up @@ -5567,11 +5567,11 @@
<property name="wrap">-1</property>
</object>
</object>
<object class="sizeritem" expanded="1">
<object class="sizeritem" expanded="0">
<property name="border">6</property>
<property name="flag">wxALIGN_CENTER_VERTICAL</property>
<property name="proportion">0</property>
<object class="wxSpinCtrlDouble" expanded="1">
<object class="wxSpinCtrlDouble" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
Expand Down Expand Up @@ -6176,7 +6176,7 @@
<object class="notebookpage" expanded="0">
<property name="bitmap"></property>
<property name="label">Deform</property>
<property name="select">0</property>
<property name="select">1</property>
<object class="wxPanel" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
Expand Down Expand Up @@ -6308,7 +6308,7 @@
</object>
<object class="sizeritem" expanded="0">
<property name="border">6</property>
<property name="flag">wxALL|wxEXPAND</property>
<property name="flag">wxALL</property>
<property name="proportion">1</property>
<object class="wxBoxSizer" expanded="0">
<property name="minimum_size"></property>
Expand Down Expand Up @@ -7828,7 +7828,7 @@
<object class="notebookpage" expanded="0">
<property name="bitmap"></property>
<property name="label">Misc</property>
<property name="select">1</property>
<property name="select">0</property>
<object class="wxPanel" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
Expand Down
6 changes: 3 additions & 3 deletions install/ui/materialeditor.xrc
Expand Up @@ -1049,7 +1049,7 @@
</object>
<object class="notebookpage">
<label>Deform</label>
<selected>0</selected>
<selected>1</selected>
<object class="wxPanel" name="DeformPage">
<style>wxTAB_TRAVERSAL</style>
<object class="wxBoxSizer">
Expand All @@ -1071,7 +1071,7 @@
</object>
<object class="sizeritem">
<option>1</option>
<flag>wxALL|wxEXPAND</flag>
<flag>wxALL</flag>
<border>6</border>
<object class="wxBoxSizer">
<orient>wxVERTICAL</orient>
Expand Down Expand Up @@ -1307,7 +1307,7 @@
</object>
<object class="notebookpage">
<label>Misc</label>
<selected>1</selected>
<selected>0</selected>
<object class="wxPanel" name="MiscPage">
<style>wxTAB_TRAVERSAL</style>
<object class="wxBoxSizer">
Expand Down
22 changes: 22 additions & 0 deletions radiant/ui/materials/MaterialEditor.cpp
Expand Up @@ -298,6 +298,13 @@ void MaterialEditor::setupMaterialDeformPage()
{
dropdown->AppendString(pair.first);
}

_deformPanels[Material::DEFORM_FLARE] = getControl<wxPanel>("DeformFlarePanel");
_deformPanels[Material::DEFORM_EXPAND] = getControl<wxPanel>("DeformExpandPanel");
_deformPanels[Material::DEFORM_MOVE] = getControl<wxPanel>("DeformMovePanel");
_deformPanels[Material::DEFORM_TURBULENT] = getControl<wxPanel>("DeformTurbulentPanel");
_deformPanels[Material::DEFORM_PARTICLE] = getControl<wxPanel>("DeformParticlePanel");
_deformPanels[Material::DEFORM_PARTICLE2] = getControl<wxPanel>("DeformParticle2Panel");
}

void MaterialEditor::setupMaterialStageView()
Expand Down Expand Up @@ -436,6 +443,14 @@ void MaterialEditor::updateMaterialPropertiesFromMaterial()
deformDropdown->Select(0);
}

// Hide the unrelated deform controls
for (const auto& pair : _deformPanels)
{
pair.second->Show(_material->getDeformType() == pair.first);
}

getControl<wxPanel>("DeformPage")->Layout();

// Surround the definition with curly braces, these are not included
auto definition = fmt::format("{0}\n{{{1}}}", _material->getName(), _material->getDefinition());
_sourceView->SetValue(definition);
Expand All @@ -444,6 +459,13 @@ void MaterialEditor::updateMaterialPropertiesFromMaterial()
{
getControl<wxChoice>("MaterialEditorDeformChoice")->Select(0);

for (const auto& pair : _deformPanels)
{
pair.second->Hide();
}

getControl<wxPanel>("DeformPage")->Layout();

getControl<wxCheckBox>("MaterialHasRenderBump")->SetValue(false);
getControl<wxTextCtrl>("MaterialRenderBumpArguments")->SetValue("");

Expand Down
1 change: 1 addition & 0 deletions radiant/ui/materials/MaterialEditor.h
Expand Up @@ -35,6 +35,7 @@ class MaterialEditor :
MaterialPtr _material;

std::set<std::shared_ptr<MaterialBinding>> _bindings;
std::map<Material::DeformType, wxPanel*> _deformPanels;

private:
MaterialEditor();
Expand Down

0 comments on commit 666551c

Please sign in to comment.