X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=KancolleSniffer%2FShipListPanel.cs;h=d924c7ee808743a45483e40e1a7e79b857228907;hb=32d72a681db4fd64e4074a84809c4095563ac009;hp=554e2abc86a8ab8c62418e0c88ea2517ab8c4222;hpb=f48d3b6633c29413a22b7425af452d908b29ed95;p=kancollesniffer%2FKancolleSniffer.git diff --git a/KancolleSniffer/ShipListPanel.cs b/KancolleSniffer/ShipListPanel.cs index 554e2ab..d924c7e 100644 --- a/KancolleSniffer/ShipListPanel.cs +++ b/KancolleSniffer/ShipListPanel.cs @@ -58,7 +58,7 @@ namespace KancolleSniffer protected override void OnResize(EventArgs ev) { base.OnResize(ev); - if (_shipList == null || _shipList.Length == 0) + if (_shipList == null || _shipList.Length == 0 || !Visible) return; SuspendDrawing(); SetupLabels(); @@ -68,6 +68,8 @@ namespace KancolleSniffer protected override void OnMouseWheel(MouseEventArgs e) { + if (!ScrollBar.Visible) + return; ScrollBar.Value = Max(ScrollBar.Minimum, Min(ScrollBar.Maximum - ScrollBar.LargeChange + 1, ScrollBar.Value - e.Delta * SystemInformation.MouseWheelScrollLines / 120)); } @@ -145,26 +147,43 @@ namespace KancolleSniffer { if (a == null || b == null) throw new ArgumentNullException(); - if (_shipType && a.Spec.ShipType != b.Spec.ShipType) - return a.Spec.ShipType - b.Spec.ShipType; - switch (_order) + if (_shipType) + { + if (a.Spec.ShipType != b.Spec.ShipType) + return a.Spec.ShipType - b.Spec.ShipType; + if (a.Level != b.Level) + { + if (a.Level == 1000) + return -1; + if (b.Level == 1000) + return 1; + } + } + if (_order == ListForm.SortOrder.Repair && a.RepairTime != b.RepairTime) + return (int)(b.RepairTime - a.RepairTime).TotalSeconds; + if (a.Cond != b.Cond) + { + if (_order == ListForm.SortOrder.CondAscend) + return a.Cond - b.Cond; + if (_order == ListForm.SortOrder.CondDescend) + return b.Cond - a.Cond; + } + if (a.Level != b.Level) + { + if (_order == ListForm.SortOrder.ExpToNextAscend) + return b.Level - a.Level; + if (_order == ListForm.SortOrder.ExpToNextDescend) + return a.Level - b.Level; + if (!_shipType) // Condが同じかSortOrder.Noneで艦種なし + return b.Level - a.Level; + } + if (a.ExpToNext != b.ExpToNext) { - case ListForm.SortOrder.None: - case ListForm.SortOrder.ExpToNext: - break; - case ListForm.SortOrder.Cond: - if (a.Cond != b.Cond) - return a.Cond - b.Cond; - break; - case ListForm.SortOrder.Repair: - if (a.RepairTime != b.RepairTime) - return (int)(b.RepairTime - a.RepairTime).TotalSeconds; - break; + if (_order == ListForm.SortOrder.ExpToNextAscend) + return a.ExpToNext - b.ExpToNext; + if (_order == ListForm.SortOrder.ExpToNextDescend) + return b.ExpToNext - a.ExpToNext; } - if ((!_shipType || _order == ListForm.SortOrder.ExpToNext) && a.Level != b.Level) - return b.Level - a.Level; - if (_order == ListForm.SortOrder.ExpToNext && a.ExpToNext != b.ExpToNext) - return a.ExpToNext - b.ExpToNext; if (a.Spec.SortNo != b.Spec.SortNo) return a.Spec.SortNo - b.Spec.SortNo; return a.Id - b.Id; @@ -460,7 +479,7 @@ namespace KancolleSniffer rpl[0].SetHp(s); rpl[1].SetLevel(s); rpl[2].SetRepairTime(s); - rpl[3].Text = TimeSpan.FromSeconds(s.RepairSecPerHp).ToString(@"mm\:ss"); + rpl[3].Text = s.RepairTimePerHp.ToString(@"mm\:ss"); rpl[4].SetName(s, ShipNameWidth.RepairListFull); rpl[5].SetFleet(s); panel.Visible = true;