Skip to content

Commit

Permalink
#5532: Set up stage flag bindings
Browse files Browse the repository at this point in the history
  • Loading branch information
codereader committed Feb 21, 2021
1 parent 3ace0cf commit d685ffc
Show file tree
Hide file tree
Showing 5 changed files with 88 additions and 64 deletions.
16 changes: 8 additions & 8 deletions install/ui/materialeditor.fbp
Expand Up @@ -9629,7 +9629,7 @@
<object class="notebookpage" expanded="0">
<property name="bitmap"></property>
<property name="label">Blending</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 @@ -10324,7 +10324,7 @@
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">maskRed</property>
<property name="name">MaterialStageFlagMaskRed</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
Expand Down Expand Up @@ -10388,7 +10388,7 @@
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">maskRed1</property>
<property name="name">MaterialStageFlagMaskGreen</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
Expand Down Expand Up @@ -10452,7 +10452,7 @@
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">maskRed2</property>
<property name="name">MaterialStageFlagMaskBlue</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
Expand Down Expand Up @@ -10516,7 +10516,7 @@
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">maskRed3</property>
<property name="name">MaterialStageFlagMaskAlpha</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
Expand Down Expand Up @@ -10580,7 +10580,7 @@
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">maskRed4</property>
<property name="name">MaterialStageFlagMaskColour</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
Expand Down Expand Up @@ -10644,7 +10644,7 @@
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">maskRed5</property>
<property name="name">MaterialStageFlagMaskDepth</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
Expand Down Expand Up @@ -15366,7 +15366,7 @@
<object class="notebookpage" expanded="0">
<property name="bitmap"></property>
<property name="label">Vertex Colour</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
16 changes: 8 additions & 8 deletions install/ui/materialeditor.xrc
Expand Up @@ -1637,7 +1637,7 @@
<object class="wxNotebook" name="MaterialEditorSettingsNotebook">
<object class="notebookpage">
<label>Blending</label>
<selected>0</selected>
<selected>1</selected>
<object class="wxPanel" name="BlendPanel">
<style>wxTAB_TRAVERSAL</style>
<object class="wxBoxSizer">
Expand Down Expand Up @@ -1751,7 +1751,7 @@
<option>0</option>
<flag>wxALIGN_CENTER_VERTICAL</flag>
<border>0</border>
<object class="wxCheckBox" name="maskRed">
<object class="wxCheckBox" name="MaterialStageFlagMaskRed">
<label>Red</label>
<checked>1</checked>
</object>
Expand All @@ -1760,7 +1760,7 @@
<option>0</option>
<flag>wxALIGN_CENTER_VERTICAL|wxLEFT</flag>
<border>6</border>
<object class="wxCheckBox" name="maskRed1">
<object class="wxCheckBox" name="MaterialStageFlagMaskGreen">
<label>Green</label>
<checked>1</checked>
</object>
Expand All @@ -1769,7 +1769,7 @@
<option>0</option>
<flag>wxALIGN_CENTER_VERTICAL|wxLEFT</flag>
<border>6</border>
<object class="wxCheckBox" name="maskRed2">
<object class="wxCheckBox" name="MaterialStageFlagMaskBlue">
<label>Blue</label>
<checked>1</checked>
</object>
Expand All @@ -1778,7 +1778,7 @@
<option>0</option>
<flag>wxALIGN_CENTER_VERTICAL|wxLEFT</flag>
<border>6</border>
<object class="wxCheckBox" name="maskRed3">
<object class="wxCheckBox" name="MaterialStageFlagMaskAlpha">
<label>Alpha</label>
<checked>1</checked>
</object>
Expand All @@ -1787,7 +1787,7 @@
<option>0</option>
<flag>wxALIGN_CENTER_VERTICAL|wxLEFT</flag>
<border>6</border>
<object class="wxCheckBox" name="maskRed4">
<object class="wxCheckBox" name="MaterialStageFlagMaskColour">
<label>Colour</label>
<checked>1</checked>
</object>
Expand All @@ -1796,7 +1796,7 @@
<option>0</option>
<flag>wxALIGN_CENTER_VERTICAL|wxLEFT</flag>
<border>6</border>
<object class="wxCheckBox" name="maskRed5">
<object class="wxCheckBox" name="MaterialStageFlagMaskDepth">
<label>Depth</label>
<checked>1</checked>
</object>
Expand Down Expand Up @@ -2606,7 +2606,7 @@
</object>
<object class="notebookpage">
<label>Vertex Colour</label>
<selected>1</selected>
<selected>0</selected>
<object class="wxPanel" name="m_panel611">
<style>wxTAB_TRAVERSAL</style>
<object class="wxBoxSizer">
Expand Down
15 changes: 7 additions & 8 deletions radiant/ui/materials/MaterialBinding.h
Expand Up @@ -36,30 +36,29 @@ class Binding
}
};

using MaterialBinding = Binding<MaterialPtr>;

template<typename Source>
class CheckBoxBinding :
public MaterialBinding
public Binding<Source>
{
private:
wxCheckBox* _checkbox;
std::function<bool(const MaterialPtr&)> _loadFunc;
std::function<bool(const Source&)> _loadFunc;

public:
CheckBoxBinding(wxCheckBox* checkbox, const std::function<bool(const MaterialPtr&)> loadFunc) :
CheckBoxBinding(wxCheckBox* checkbox, const std::function<bool(const Source&)> loadFunc) :
_checkbox(checkbox),
_loadFunc(loadFunc)
{}

virtual void updateFromSource(const MaterialPtr& material) override
virtual void updateFromSource(const Source& source) override
{
if (!getSource())
if (!source)
{
_checkbox->SetValue(false);
return;
}

_checkbox->SetValue(_loadFunc(getSource()));
_checkbox->SetValue(_loadFunc(source));
}
};

Expand Down

0 comments on commit d685ffc

Please sign in to comment.