{\r
private readonly Sniffer _sniffer;\r
private readonly Config _config;\r
+ private readonly CheckBox[] _shipTypeCheckBoxes;\r
public const int PanelWidth = 217;\r
\r
public enum SortOrder\r
InitializeComponent();\r
_sniffer = sniffer;\r
_config = config;\r
+ _shipTypeCheckBoxes = new[]\r
+ {\r
+ checkBoxSTypeBattleShip,\r
+ checkBoxSTypeAircraftCarrier,\r
+ checkBoxSTypeHeavyCruiser,\r
+ checkBoxSTypeLightCruiser,\r
+ checkBoxSTypeDestroyer,\r
+ checkBoxSTypeEscort,\r
+ checkBoxSTypeSubmarine,\r
+ checkBoxSTypeAuxiliary\r
+ };\r
battleResultPanel.HpLabelClick += ToggleHpPercent;\r
shipListPanel.HpLabelClick += ToggleHpPercent;\r
var swipe = new SwipeScrollify();\r
{\r
richTextBoxMiscText.Text = _sniffer.MiscText;\r
}\r
- else\r
+ else if (InShipStatus || InGroupConfig || InRepairList)\r
{\r
SetHeaderSortOrder();\r
- shipListPanel.Update(_sniffer, comboBoxGroup.Text, _config.ShipList.SortOrder,\r
- _config.ShipList.ShipType);\r
+ shipListPanel.Update(_sniffer, comboBoxGroup.Text, _config.ShipList);\r
}\r
if (shipListPanel.GroupUpdated)\r
{\r
public void UpdateAirBattleResult()\r
{\r
airBattleResultPanel.ShowResultAutomatic = (_config.Spoilers & Spoiler.AirBattleResult) != 0;\r
- airBattleResultPanel.SetResult(_sniffer.Battle.AirBattleResults);\r
+ airBattleResultPanel.SetResult(_sniffer);\r
}\r
\r
public void UpdateBattleResult()\r
MinimumSize = new Size(Width, 0);\r
MaximumSize = new Size(Width, int.MaxValue);\r
var config = _config.ShipList;\r
- checkBoxShipType.Checked = config.ShipType;\r
if (config.ShowHpInPercent)\r
{\r
shipListPanel.ToggleHpPercent();\r
}\r
LoadShipGroupFromConfig();\r
comboBoxGroup.SelectedItem = config.Mode ?? "全艦";\r
+ SetCheckBoxSTypeSate();\r
if (config.Location.X == int.MinValue)\r
return;\r
var bounds = new Rectangle(config.Location, config.Size);\r
shipListPanel.GroupSettings[i] = i < group.Count ? new HashSet<int>(group[i]) : new HashSet<int>();\r
}\r
\r
+ private void SetCheckBoxSTypeSate()\r
+ {\r
+ for (var type = 0; type < _shipTypeCheckBoxes.Length; type++)\r
+ _shipTypeCheckBoxes[type].Checked = ((int)_config.ShipList.ShipCategories & (1 << type)) != 0;\r
+ checkBoxSTypeAll.Checked = _config.ShipList.ShipCategories == ShipCategory.All;\r
+ checkBoxSTypeDetails.Checked = _config.ShipList.ShipType;\r
+ }\r
+\r
private void ShipListForm_FormClosing(object sender, FormClosingEventArgs e)\r
{\r
e.Cancel = true;\r
}\r
}\r
\r
- private void checkBoxShipType_CheckedChanged(object sender, EventArgs e)\r
- {\r
- _config.ShipList.ShipType = checkBoxShipType.Checked;\r
- UpdateList();\r
- SetActiveControl();\r
- }\r
-\r
private void comboBoxGroup_DropDownClosed(object sender, EventArgs e)\r
{\r
SetActiveControl();\r
UpdateList();\r
SetActiveControl();\r
copyToolStripMenuItem.Enabled = InShipStatus | InItemList;\r
+ if (!(InShipStatus || InGroupConfig || InRepairList))\r
+ SetPanelSTypeState(false);\r
}\r
\r
private void ShipListForm_KeyPress(object sender, KeyPressEventArgs e)\r
shipListPanel.ToggleHpPercent();\r
battleResultPanel.ToggleHpPercent();\r
}\r
+\r
+ private void labelSTypeButton_Click(object sender, EventArgs e)\r
+ {\r
+ SetPanelSTypeState(!panelSType.Visible);\r
+ }\r
+\r
+ private void checkBoxSType_Click(object sender, EventArgs e)\r
+ {\r
+ _config.ShipList.ShipCategories = SelectedShipTypes;\r
+ UpdateList();\r
+ SetActiveControl();\r
+ }\r
+\r
+ private ShipCategory SelectedShipTypes =>\r
+ (ShipCategory)_shipTypeCheckBoxes.Select((cb, type) => cb.Checked ? 1 << type : 0).Sum();\r
+\r
+ private void checkBoxSTypeAll_Click(object sender, EventArgs e)\r
+ {\r
+ foreach (var checkBox in _shipTypeCheckBoxes)\r
+ checkBox.Checked = checkBoxSTypeAll.Checked;\r
+ checkBoxSType_Click(sender, e);\r
+ }\r
+\r
+ private void panelSType_Click(object sender, EventArgs e)\r
+ {\r
+ SetPanelSTypeState(false);\r
+ }\r
+\r
+ private void SetPanelSTypeState(bool visible)\r
+ {\r
+ panelSType.Visible = visible;\r
+ labelSTypeButton.BackColor = visible ? CustomColors.ActiveButtonColor : DefaultBackColor;\r
+ }\r
+\r
+ private void checkBoxSTypeDetails_Click(object sender, EventArgs e)\r
+ {\r
+ _config.ShipList.ShipType = checkBoxSTypeDetails.Checked;\r
+ UpdateList();\r
+ SetActiveControl();\r
+ }\r
}\r
}
\ No newline at end of file