From c28fffc2ead986856a297ab36e1c91b8c50056a2 Mon Sep 17 00:00:00 2001 From: Kazuhiro Fujieda Date: Sun, 25 Mar 2018 18:08:30 +0900 Subject: [PATCH] =?utf8?q?HP=E3=81=AE=E6=95=B0=E5=AD=97=E3=81=AE=E3=82=AF?= =?utf8?q?=E3=83=AA=E3=83=83=E3=82=AF=E3=81=A7=E3=83=91=E3=83=BC=E3=82=BB?= =?utf8?q?=E3=83=B3=E3=83=88=E8=A1=A8=E7=A4=BA=E3=82=92=E5=88=87=E3=82=8A?= =?utf8?q?=E6=9B=BF=E3=81=88=E3=82=89=E3=82=8C=E3=82=8B=E3=82=88=E3=81=86?= =?utf8?q?=E3=81=AB=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- KancolleSniffer/BattleResultPanel.cs | 16 ++++++++++------ KancolleSniffer/ListForm.cs | 14 ++++++++++++-- KancolleSniffer/MainFormLabels.cs | 25 ++++++++++++++----------- KancolleSniffer/ShipListPanel.cs | 17 +++++++++++++---- 4 files changed, 49 insertions(+), 23 deletions(-) diff --git a/KancolleSniffer/BattleResultPanel.cs b/KancolleSniffer/BattleResultPanel.cs index 81cb58b..4dcb344 100644 --- a/KancolleSniffer/BattleResultPanel.cs +++ b/KancolleSniffer/BattleResultPanel.cs @@ -28,7 +28,6 @@ namespace KancolleSniffer private readonly List _friendLabels = new List(); private readonly List _enemyLabels = new List(); private readonly List _panelList = new List(); - private bool _hpPercent; private readonly List _hpLabels = new List(); private readonly ResizableToolTip _toolTip = new ResizableToolTip {ShowAlways = true}; private readonly BattleInfo.BattleResult[] _result = new BattleInfo.BattleResult[2]; @@ -48,13 +47,17 @@ namespace KancolleSniffer ResumeLayout(); } - public void SetShowHpPercent(bool hpPercent) + public event Action HpLabelClick; + + private void HpLabelClickHandler(object sender, EventArgs ev) + { + HpLabelClick?.Invoke(); + } + + public void ToggleHpPercent() { - if (hpPercent == _hpPercent) - return; foreach (var label in _hpLabels) label.ToggleHpPercent(); - _hpPercent = hpPercent; } public void Update(Sniffer sniffer) @@ -250,7 +253,7 @@ namespace KancolleSniffer _panelList[i].Width = panelWidth; _infomationPanel.Location = new Point( (int)Round(0 * ShipLabel.ScaleFactor.Width) + AutoScrollPosition.X, - (int)Round(20 * ShipLabel.ScaleFactor.Height) +AutoScrollPosition.Y); + (int)Round(20 * ShipLabel.ScaleFactor.Height) + AutoScrollPosition.Y); _infomationPanel.Visible = true; } @@ -318,6 +321,7 @@ namespace KancolleSniffer }; _friendLabels.Add(friend); _hpLabels.Add(friend[0]); + friend[0].Click += HpLabelClickHandler; var enemy = new[] { new ShipLabel {Location = new Point(119, 2), AutoSize = true}, diff --git a/KancolleSniffer/ListForm.cs b/KancolleSniffer/ListForm.cs index 3103b0b..5b1be31 100644 --- a/KancolleSniffer/ListForm.cs +++ b/KancolleSniffer/ListForm.cs @@ -44,6 +44,8 @@ namespace KancolleSniffer InitializeComponent(); _sniffer = sniffer; _config = config; + battleResultPanel.HpLabelClick += ToggleHpPercent; + shipListPanel.HpLabelClick += ToggleHpPercent; var swipe = new SwipeScrollify(); swipe.AddShipListPanel(shipListPanel); swipe.AddTreeView(itemTreeView); @@ -115,7 +117,6 @@ namespace KancolleSniffer public void UpdateBattleResult() { - battleResultPanel.SetShowHpPercent(shipListPanel.ShowHpInPercent); battleResultPanel.Spoiler = (_config.Spoilers & Spoiler.BattleResult) != 0; battleResultPanel.Update(_sniffer); } @@ -174,7 +175,10 @@ namespace KancolleSniffer var config = _config.ShipList; checkBoxShipType.Checked = config.ShipType; if (config.ShowHpInPercent) + { shipListPanel.ToggleHpPercent(); + battleResultPanel.ToggleHpPercent(); + } LoadShipGroupFromConfig(); comboBoxGroup.SelectedItem = config.Mode ?? "全員"; if (config.Location.X == int.MinValue) @@ -198,7 +202,6 @@ namespace KancolleSniffer if (!Visible) return; var config = _config.ShipList; - config.ShowHpInPercent = shipListPanel.ShowHpInPercent; StoreShipGroupToConfig(); var bounds = WindowState == FormWindowState.Normal ? Bounds : RestoreBounds; config.Location = bounds.Location; @@ -358,7 +361,14 @@ namespace KancolleSniffer private void labelHeaderHp_Click(object sender, EventArgs e) { + ToggleHpPercent(); + } + + private void ToggleHpPercent() + { + _config.ShipList.ShowHpInPercent = !_config.ShipList.ShowHpInPercent; shipListPanel.ToggleHpPercent(); + battleResultPanel.ToggleHpPercent(); } } } \ No newline at end of file diff --git a/KancolleSniffer/MainFormLabels.cs b/KancolleSniffer/MainFormLabels.cs index ba057fb..b7d7603 100644 --- a/KancolleSniffer/MainFormLabels.cs +++ b/KancolleSniffer/MainFormLabels.cs @@ -15,7 +15,6 @@ using System; using System.Collections.Generic; using System.Drawing; -using System.Linq; using System.Windows.Forms; using static System.Math; @@ -109,13 +108,20 @@ namespace KancolleSniffer label.Tag = i; label.Click += onClick; } + var hpLabel = shipLabels[i][0]; + _hpLables.Add(hpLabel); + hpLabel.Click += HpLabelClickHander; } - _hpLables.AddRange(shipLabels.Select(labels => labels[0])); headings[0].Cursor = Cursors.Hand; - headings[0].Click += (sender, ev) => ToggleHpPercent(); + headings[0].Click += HpLabelClickHander; parent.ResumeLayout(); } + private void HpLabelClickHander(object sender, EventArgs ev) + { + ToggleHpPercent(); + } + public void ToggleHpPercent() { ShowHpInPercent = !ShowHpInPercent; @@ -184,16 +190,13 @@ namespace KancolleSniffer label.Tag = i; label.Click += onClick; } + var hpLavel = _combinedLabels[i][0]; + _hpLables.Add(hpLavel); + hpLavel.Click += HpLabelClickHander; } - _hpLables.AddRange(_combinedLabels.Select(record => record[0]).ToArray()); headings[0].Cursor = headings[2].Cursor = Cursors.Hand; - void HpToggle(object sender, EventArgs ev) - { - foreach (var label in _hpLables) - label.ToggleHpPercent(); - } - headings[0].Click += HpToggle; - headings[2].Click += HpToggle; + headings[0].Click += HpLabelClickHander; + headings[2].Click += HpLabelClickHander; parent.ResumeLayout(); } diff --git a/KancolleSniffer/ShipListPanel.cs b/KancolleSniffer/ShipListPanel.cs index 33e7be8..e2fc1b4 100644 --- a/KancolleSniffer/ShipListPanel.cs +++ b/KancolleSniffer/ShipListPanel.cs @@ -36,7 +36,7 @@ namespace KancolleSniffer private readonly List _repairPanelList = new List(); private readonly List _hpLabels = new List(); private string _mode; - public bool ShowHpInPercent { get; private set; } + private bool _hpPercent; public const int GroupCount = 4; public HashSet[] GroupSettings { get; } = new HashSet[GroupCount]; @@ -334,9 +334,10 @@ namespace KancolleSniffer label.PresetColor = label.BackColor = ShipLabel.ColumnColors[(i + 1) % 2]; } - if (ShowHpInPercent) + if (_hpPercent) rpl[0].ToggleHpPercent(); _hpLabels.Add(rpl[0]); + rpl[0].Click += HpLabelClickHandler; } private void CreateShipLabels(int i) @@ -385,9 +386,10 @@ namespace KancolleSniffer label.PresetColor = label.BackColor = ShipLabel.ColumnColors[(i + 1) % 2]; } - if (ShowHpInPercent) + if (_hpPercent) labels[0].ToggleHpPercent(); _hpLabels.Add(labels[0]); + labels[0].Click += HpLabelClickHandler; } private void SetShipLabels() @@ -495,9 +497,16 @@ namespace KancolleSniffer panel.Visible = true; } + public event Action HpLabelClick; + + private void HpLabelClickHandler(object sender, EventArgs ev) + { + HpLabelClick?.Invoke(); + } + public void ToggleHpPercent() { - ShowHpInPercent = !ShowHpInPercent; + _hpPercent = !_hpPercent; foreach (var label in _hpLabels) label.ToggleHpPercent(); } -- 2.11.0