\r
using System.Linq;\r
using System.Windows.Forms;\r
+using KancolleSniffer.Model;\r
\r
namespace KancolleSniffer.View\r
{\r
public class ShipLabels : ControlsArranger\r
{\r
- public ShipLabel Fleet { get; set; }\r
+ public ShipLabel.Fleet Fleet { get; set; }\r
public ShipLabel.Name Name { get; set; }\r
public ShipLabel.Hp Hp { get; set; }\r
- public ShipLabel Cond { get; set; }\r
- public ShipLabel Level { get; set; }\r
- public ShipLabel Exp { get; set; }\r
+ public ShipLabel.Cond Cond { get; set; }\r
+ public ShipLabel.Level Level { get; set; }\r
+ public ShipLabel.Exp Exp { get; set; }\r
public Label BackGround { get; set; }\r
\r
- public override Control[] Controls =>\r
- new Control[] {Hp, Cond, Level, Exp, Name, Fleet, BackGround}.Where(c => c != null)\r
- .ToArray(); // 名前のZ-orderを下に\r
+ // Nameが長すぎる場合は他のラベルの下に隠れてほしいのでのZ-orderを下にする。\r
+ // サブクラスで追加するラベルはBackGroundで隠れないようにZ-orderを上にする。\r
+ public sealed override Control[] Controls =>\r
+ AddedControls.Concat(new Control[] {Fleet, Hp, Cond, Level, Exp, Name, BackGround}.Where(c => c != null))\r
+ .ToArray();\r
+\r
+ protected virtual Control[] AddedControls => new Control[0];\r
+\r
+ public virtual void Set(ShipStatus status)\r
+ {\r
+ foreach (var label in new ShipLabel[] {Fleet, Name, Hp, Cond, Level, Exp})\r
+ label?.Set(status);\r
+ }\r
+\r
+ public virtual void Reset()\r
+ {\r
+ foreach (var label in new ShipLabel[] {Fleet, Name, Hp, Cond, Level, Exp})\r
+ label?.Reset();\r
+ }\r
}\r
}
\ No newline at end of file