<Collapsible Margin="2 2 2 2">
<CollapsibleHeading Title="Gas filters" />
<CollapsibleBody Margin="20 0 0 0">
- <GridContainer HorizontalExpand="True" Name="CGasContainer" Columns="3" />
+ <BoxContainer Orientation="Vertical">
+ <BoxContainer Margin="2">
+ <Button Name="CSelectAll" Text="{Loc 'air-alarm-ui-scrubber-select-all-gases-label'}" />
+ <Button Name="CDeselectAll" Text="{Loc 'air-alarm-ui-scrubber-deselect-all-gases-label'}" />
+ </BoxContainer>
+ <GridContainer Name="CGasContainer" Columns="3" />
+ </BoxContainer>
</CollapsibleBody>
</Collapsible>
</BoxContainer>
private FloatSpinBox _volumeRate => CVolumeRate;
private CheckBox _wideNet => CWideNet;
private Button _copySettings => CCopySettings;
+ private Button _selectAll => CSelectAll;
+ private Button _deselectAll => CDeselectAll;
private GridContainer _gases => CGasContainer;
private Dictionary<Gas, Button> _gasControls = new();
ScrubberDataCopied?.Invoke(_data);
};
- foreach (var value in Enum.GetValues<Gas>())
+ var allGases = Enum.GetValues<Gas>();
+ _selectAll.OnPressed += _ =>
+ {
+ _data.FilterGases = new HashSet<Gas>(allGases);
+ ScrubberDataChanged?.Invoke(_address, _data);
+ };
+
+ _deselectAll.OnPressed += _ =>
+ {
+ _data.FilterGases = [];
+ ScrubberDataChanged?.Invoke(_address, _data);
+ };
+
+ foreach (var value in allGases)
{
var gasButton = new Button
{
air-alarm-ui-scrubber-pump-direction-label = Direction
air-alarm-ui-scrubber-volume-rate-label = Rate (L)
air-alarm-ui-scrubber-wide-net-label = WideNet
+air-alarm-ui-scrubber-select-all-gases-label = Select all
+air-alarm-ui-scrubber-deselect-all-gases-label = Deselect all
### Thresholds