OSDN Git Service

補給状況のアイコン表示をChargeStatusに分離する
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Sun, 19 Apr 2020 05:53:39 +0000 (14:53 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Sun, 30 Aug 2020 05:58:21 +0000 (14:58 +0900)
KancolleSniffer/KancolleSniffer.csproj
KancolleSniffer/MainForm.Designer.cs
KancolleSniffer/MainForm.cs
KancolleSniffer/MainForm.resx
KancolleSniffer/View/ChargeStatus.cs [new file with mode: 0644]

index 9683136..80fc97b 100644 (file)
@@ -83,6 +83,9 @@
     <Compile Include="Log\BattleLogProcessor.cs" />\r
     <Compile Include="Model\Range.cs" />\r
     <Compile Include="Util\Clipboard.cs" />\r
+    <Compile Include="View\ChargeStatus.cs">\r
+      <SubType>Component</SubType>\r
+    </Compile>\r
     <Compile Include="View\IUpdateable.cs" />\r
     <Compile Include="View\MaterialHistoryPanel.cs">\r
       <SubType>Component</SubType>\r
index 4758b01..d24630a 100644 (file)
@@ -68,18 +68,8 @@ namespace KancolleSniffer
             this.labelFleet2 = new System.Windows.Forms.Label();\r
             this.labelMaterialCaption = new System.Windows.Forms.Label();\r
             this.label31 = new System.Windows.Forms.Label();\r
-            this.imageListFuelSq = new System.Windows.Forms.ImageList(this.components);\r
-            this.imageListBullSq = new System.Windows.Forms.ImageList(this.components);\r
             this.labelAkashiRepair = new System.Windows.Forms.Label();\r
             this.labelClearQuest = new System.Windows.Forms.Label();\r
-            this.labelBullSq4 = new System.Windows.Forms.Label();\r
-            this.labelFuelSq4 = new System.Windows.Forms.Label();\r
-            this.labelBullSq3 = new System.Windows.Forms.Label();\r
-            this.labelFuelSq3 = new System.Windows.Forms.Label();\r
-            this.labelBullSq2 = new System.Windows.Forms.Label();\r
-            this.labelFuelSq2 = new System.Windows.Forms.Label();\r
-            this.labelBullSq1 = new System.Windows.Forms.Label();\r
-            this.labelFuelSq1 = new System.Windows.Forms.Label();\r
             this.labelRepairListButton = new System.Windows.Forms.Label();\r
             this.labelMaterialHistoryButton = new System.Windows.Forms.Label();\r
             this.labelCheckFleet2 = new System.Windows.Forms.Label();\r
@@ -95,6 +85,10 @@ namespace KancolleSniffer
             this.hqPanel = new KancolleSniffer.View.HqPanel();\r
             this.materialHistoryPanel = new KancolleSniffer.View.MaterialHistoryPanel();\r
             this.shipInfoPanel = new KancolleSniffer.View.ShipInfoPanel();\r
+            this.chargeStatus1 = new KancolleSniffer.View.ChargeStatus();\r
+            this.chargeStatus2 = new KancolleSniffer.View.ChargeStatus();\r
+            this.chargeStatus3 = new KancolleSniffer.View.ChargeStatus();\r
+            this.chargeStatus4 = new KancolleSniffer.View.ChargeStatus();\r
             this.contextMenuStripNotifyIcon.SuspendLayout();\r
             this.contextMenuStripMain.SuspendLayout();\r
             this.SuspendLayout();\r
@@ -280,36 +274,6 @@ namespace KancolleSniffer
             this.label31.Text = "要修復";\r
             this.label31.Click += new System.EventHandler(this.labelRepairListButton_Click);\r
             // \r
-            // imageListFuelSq\r
-            // \r
-            this.imageListFuelSq.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageListFuelSq.ImageStream")));\r
-            this.imageListFuelSq.TransparentColor = System.Drawing.Color.Transparent;\r
-            this.imageListFuelSq.Images.SetKeyName(0, "透明sq.png");\r
-            this.imageListFuelSq.Images.SetKeyName(1, "燃料黄sq.png");\r
-            this.imageListFuelSq.Images.SetKeyName(2, "燃料橙sq.png");\r
-            this.imageListFuelSq.Images.SetKeyName(3, "燃料赤sq.png");\r
-            this.imageListFuelSq.Images.SetKeyName(4, "燃料灰sq.png");\r
-            this.imageListFuelSq.Images.SetKeyName(5, "透明sq.png");\r
-            this.imageListFuelSq.Images.SetKeyName(6, "燃料薄黄sq.png");\r
-            this.imageListFuelSq.Images.SetKeyName(7, "燃料薄橙sq.png");\r
-            this.imageListFuelSq.Images.SetKeyName(8, "燃料薄赤sq.png");\r
-            this.imageListFuelSq.Images.SetKeyName(9, "燃料薄灰sq.png");\r
-            // \r
-            // imageListBullSq\r
-            // \r
-            this.imageListBullSq.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageListBullSq.ImageStream")));\r
-            this.imageListBullSq.TransparentColor = System.Drawing.Color.Transparent;\r
-            this.imageListBullSq.Images.SetKeyName(0, "透明sq.png");\r
-            this.imageListBullSq.Images.SetKeyName(1, "弾薬黄sq.png");\r
-            this.imageListBullSq.Images.SetKeyName(2, "弾薬橙sq.png");\r
-            this.imageListBullSq.Images.SetKeyName(3, "弾薬赤sq.png");\r
-            this.imageListBullSq.Images.SetKeyName(4, "弾薬灰sq.png");\r
-            this.imageListBullSq.Images.SetKeyName(5, "透明sq.png");\r
-            this.imageListBullSq.Images.SetKeyName(6, "弾薬薄黄sq.png");\r
-            this.imageListBullSq.Images.SetKeyName(7, "弾薬薄橙sq.png");\r
-            this.imageListBullSq.Images.SetKeyName(8, "弾薬薄赤sq.png");\r
-            this.imageListBullSq.Images.SetKeyName(9, "弾薬薄灰sq.png");\r
-            // \r
             // labelAkashiRepair\r
             // \r
             this.labelAkashiRepair.AutoSize = true;\r
@@ -332,78 +296,6 @@ namespace KancolleSniffer
             this.labelClearQuest.MouseDown += new System.Windows.Forms.MouseEventHandler(this.labelClearQuest_MouseDown);\r
             this.labelClearQuest.MouseUp += new System.Windows.Forms.MouseEventHandler(this.labelClearQuest_MouseUp);\r
             // \r
-            // labelBullSq4\r
-            // \r
-            this.labelBullSq4.ImageIndex = 0;\r
-            this.labelBullSq4.ImageList = this.imageListBullSq;\r
-            this.labelBullSq4.Location = new System.Drawing.Point(214, 42);\r
-            this.labelBullSq4.Name = "labelBullSq4";\r
-            this.labelBullSq4.Size = new System.Drawing.Size(8, 13);\r
-            this.labelBullSq4.TabIndex = 53;\r
-            // \r
-            // labelFuelSq4\r
-            // \r
-            this.labelFuelSq4.ImageIndex = 0;\r
-            this.labelFuelSq4.ImageList = this.imageListFuelSq;\r
-            this.labelFuelSq4.Location = new System.Drawing.Point(205, 42);\r
-            this.labelFuelSq4.Name = "labelFuelSq4";\r
-            this.labelFuelSq4.Size = new System.Drawing.Size(8, 13);\r
-            this.labelFuelSq4.TabIndex = 52;\r
-            // \r
-            // labelBullSq3\r
-            // \r
-            this.labelBullSq3.ImageIndex = 0;\r
-            this.labelBullSq3.ImageList = this.imageListBullSq;\r
-            this.labelBullSq3.Location = new System.Drawing.Point(159, 42);\r
-            this.labelBullSq3.Name = "labelBullSq3";\r
-            this.labelBullSq3.Size = new System.Drawing.Size(8, 13);\r
-            this.labelBullSq3.TabIndex = 51;\r
-            // \r
-            // labelFuelSq3\r
-            // \r
-            this.labelFuelSq3.ImageIndex = 0;\r
-            this.labelFuelSq3.ImageList = this.imageListFuelSq;\r
-            this.labelFuelSq3.Location = new System.Drawing.Point(150, 42);\r
-            this.labelFuelSq3.Name = "labelFuelSq3";\r
-            this.labelFuelSq3.Size = new System.Drawing.Size(8, 13);\r
-            this.labelFuelSq3.TabIndex = 50;\r
-            // \r
-            // labelBullSq2\r
-            // \r
-            this.labelBullSq2.ImageIndex = 0;\r
-            this.labelBullSq2.ImageList = this.imageListBullSq;\r
-            this.labelBullSq2.Location = new System.Drawing.Point(104, 42);\r
-            this.labelBullSq2.Name = "labelBullSq2";\r
-            this.labelBullSq2.Size = new System.Drawing.Size(8, 13);\r
-            this.labelBullSq2.TabIndex = 49;\r
-            // \r
-            // labelFuelSq2\r
-            // \r
-            this.labelFuelSq2.ImageIndex = 0;\r
-            this.labelFuelSq2.ImageList = this.imageListFuelSq;\r
-            this.labelFuelSq2.Location = new System.Drawing.Point(95, 42);\r
-            this.labelFuelSq2.Name = "labelFuelSq2";\r
-            this.labelFuelSq2.Size = new System.Drawing.Size(8, 13);\r
-            this.labelFuelSq2.TabIndex = 48;\r
-            // \r
-            // labelBullSq1\r
-            // \r
-            this.labelBullSq1.ImageIndex = 0;\r
-            this.labelBullSq1.ImageList = this.imageListBullSq;\r
-            this.labelBullSq1.Location = new System.Drawing.Point(49, 42);\r
-            this.labelBullSq1.Name = "labelBullSq1";\r
-            this.labelBullSq1.Size = new System.Drawing.Size(8, 13);\r
-            this.labelBullSq1.TabIndex = 47;\r
-            // \r
-            // labelFuelSq1\r
-            // \r
-            this.labelFuelSq1.ImageIndex = 0;\r
-            this.labelFuelSq1.ImageList = this.imageListFuelSq;\r
-            this.labelFuelSq1.Location = new System.Drawing.Point(40, 42);\r
-            this.labelFuelSq1.Name = "labelFuelSq1";\r
-            this.labelFuelSq1.Size = new System.Drawing.Size(8, 13);\r
-            this.labelFuelSq1.TabIndex = 43;\r
-            // \r
             // labelRepairListButton\r
             // \r
             this.labelRepairListButton.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;\r
@@ -541,12 +433,52 @@ namespace KancolleSniffer
             this.shipInfoPanel.Size = new System.Drawing.Size(220, 134);\r
             this.shipInfoPanel.TabIndex = 67;\r
             // \r
+            // chargeStatus1\r
+            // \r
+            this.chargeStatus1.Context = null;\r
+            this.chargeStatus1.Location = new System.Drawing.Point(40, 42);\r
+            this.chargeStatus1.Name = "chargeStatus1";\r
+            this.chargeStatus1.Size = new System.Drawing.Size(17, 13);\r
+            this.chargeStatus1.TabIndex = 69;\r
+            this.chargeStatus1.Text = "chargeStatus1";\r
+            // \r
+            // chargeStatus2\r
+            // \r
+            this.chargeStatus2.Context = null;\r
+            this.chargeStatus2.Location = new System.Drawing.Point(95, 42);\r
+            this.chargeStatus2.Name = "chargeStatus2";\r
+            this.chargeStatus2.Size = new System.Drawing.Size(17, 13);\r
+            this.chargeStatus2.TabIndex = 71;\r
+            this.chargeStatus2.Text = "chargeStatus2";\r
+            // \r
+            // chargeStatus3\r
+            // \r
+            this.chargeStatus3.Context = null;\r
+            this.chargeStatus3.Location = new System.Drawing.Point(150, 42);\r
+            this.chargeStatus3.Name = "chargeStatus3";\r
+            this.chargeStatus3.Size = new System.Drawing.Size(17, 13);\r
+            this.chargeStatus3.TabIndex = 72;\r
+            this.chargeStatus3.Text = "chargeStatus3";\r
+            // \r
+            // chargeStatus4\r
+            // \r
+            this.chargeStatus4.Context = null;\r
+            this.chargeStatus4.Location = new System.Drawing.Point(205, 42);\r
+            this.chargeStatus4.Name = "chargeStatus4";\r
+            this.chargeStatus4.Size = new System.Drawing.Size(17, 13);\r
+            this.chargeStatus4.TabIndex = 73;\r
+            this.chargeStatus4.Text = "chargeStatus4";\r
+            // \r
             // MainForm\r
             // \r
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);\r
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;\r
             this.ClientSize = new System.Drawing.Size(232, 456);\r
             this.ContextMenuStrip = this.contextMenuStripMain;\r
+            this.Controls.Add(this.chargeStatus3);\r
+            this.Controls.Add(this.chargeStatus4);\r
+            this.Controls.Add(this.chargeStatus2);\r
+            this.Controls.Add(this.chargeStatus1);\r
             this.Controls.Add(this.shipInfoPanel);\r
             this.Controls.Add(this.materialHistoryPanel);\r
             this.Controls.Add(this.hqPanel);\r
@@ -559,14 +491,6 @@ namespace KancolleSniffer
             this.Controls.Add(this.labelClearQuest);\r
             this.Controls.Add(this.labelAkashiRepair);\r
             this.Controls.Add(this.labelAkashiRepairTimer);\r
-            this.Controls.Add(this.labelBullSq4);\r
-            this.Controls.Add(this.labelFuelSq4);\r
-            this.Controls.Add(this.labelBullSq3);\r
-            this.Controls.Add(this.labelFuelSq3);\r
-            this.Controls.Add(this.labelBullSq2);\r
-            this.Controls.Add(this.labelFuelSq2);\r
-            this.Controls.Add(this.labelBullSq1);\r
-            this.Controls.Add(this.labelFuelSq1);\r
             this.Controls.Add(this.labelRepairListButton);\r
             this.Controls.Add(this.label31);\r
             this.Controls.Add(this.labelMaterialHistoryButton);\r
@@ -626,16 +550,6 @@ namespace KancolleSniffer
         private System.Windows.Forms.ToolStripMenuItem NotifyIconOpenToolStripMenuItem;\r
         private System.Windows.Forms.ToolStripMenuItem NotifyIconExitToolStripMenuItem;\r
         private System.Windows.Forms.ToolStripMenuItem listToolStripMenuItem;\r
-        private System.Windows.Forms.ImageList imageListFuelSq;\r
-        private System.Windows.Forms.Label labelFuelSq1;\r
-        private System.Windows.Forms.ImageList imageListBullSq;\r
-        private System.Windows.Forms.Label labelBullSq1;\r
-        private System.Windows.Forms.Label labelBullSq2;\r
-        private System.Windows.Forms.Label labelFuelSq2;\r
-        private System.Windows.Forms.Label labelBullSq3;\r
-        private System.Windows.Forms.Label labelFuelSq3;\r
-        private System.Windows.Forms.Label labelBullSq4;\r
-        private System.Windows.Forms.Label labelFuelSq4;\r
         private System.Windows.Forms.ToolStripMenuItem LogToolStripMenuItem;\r
         private System.Windows.Forms.ToolStripMenuItem CaptureToolStripMenuItem;\r
         private System.Windows.Forms.Label labelAkashiRepairTimer;\r
@@ -650,6 +564,10 @@ namespace KancolleSniffer
         private HqPanel hqPanel;\r
         private MaterialHistoryPanel materialHistoryPanel;\r
         private ShipInfoPanel shipInfoPanel;\r
+        private ChargeStatus chargeStatus1;\r
+        private ChargeStatus chargeStatus2;\r
+        private ChargeStatus chargeStatus3;\r
+        private ChargeStatus chargeStatus4;\r
     }\r
 }\r
 \r
index 9d8c1fc..4814e58 100644 (file)
@@ -101,7 +101,11 @@ namespace KancolleSniffer
 \r
         private void SetupUpdateable()\r
         {\r
-            _updateable = new IUpdateContext[] {hqPanel, missionPanel, kdockPanel, ndockPanel, materialHistoryPanel, shipInfoPanel};\r
+            _updateable = new IUpdateContext[]\r
+            {\r
+                hqPanel, missionPanel, kdockPanel, ndockPanel, materialHistoryPanel, shipInfoPanel, chargeStatus1,\r
+                chargeStatus2, chargeStatus3, chargeStatus4\r
+            };\r
             var context = new UpdateContext(Sniffer, Config, new NotifySubmitter(_notificationManager), () => _now);\r
             foreach (var updateable in _updateable)\r
                 updateable.Context = context;\r
@@ -699,17 +703,10 @@ namespace KancolleSniffer
 \r
         private void UpdateChargeInfo()\r
         {\r
-            var fuelSq = new[] {labelFuelSq1, labelFuelSq2, labelFuelSq3, labelFuelSq4};\r
-            var bullSq = new[] {labelBullSq1, labelBullSq2, labelBullSq3, labelBullSq4};\r
-\r
-            for (var i = 0; i < fuelSq.Length; i++)\r
+            foreach (var status in new[] {chargeStatus1, chargeStatus2, chargeStatus3, chargeStatus4})\r
             {\r
-                var stat = Sniffer.Fleets[i].ChargeStatus;\r
-                fuelSq[i].ImageIndex = stat.Fuel;\r
-                bullSq[i].ImageIndex = stat.Bull;\r
-                var text = stat.Empty ? "" : $"燃{stat.FuelRatio * 100:f1}% 弾{stat.BullRatio * 100:f1}%";\r
-                _toolTip.SetToolTip(fuelSq[i], text);\r
-                _toolTip.SetToolTip(bullSq[i], text);\r
+                status.Update();\r
+                _toolTip.SetToolTip(status, status.Text);\r
             }\r
         }\r
 \r
@@ -926,9 +923,8 @@ namespace KancolleSniffer
         {\r
             var labels = new[]\r
             {\r
-                new[] {labelFleet1, labelFleet2, labelFleet3, labelFleet4},\r
-                new[] {labelFuelSq1, labelFuelSq2, labelFuelSq3, labelFuelSq4},\r
-                new[] {labelBullSq1, labelBullSq2, labelBullSq3, labelBullSq4}\r
+                new Control[] {labelFleet1, labelFleet2, labelFleet3, labelFleet4},\r
+                new Control[] {chargeStatus1, chargeStatus2, chargeStatus3, chargeStatus4}\r
             };\r
             foreach (var a in labels)\r
             {\r
@@ -948,7 +944,7 @@ namespace KancolleSniffer
         {\r
             if (!_started)\r
                 return;\r
-            var fleet = (int)((Label)sender).Tag;\r
+            var fleet = (int)((Control)sender).Tag;\r
             if (shipInfoPanel.CurrentFleet == fleet)\r
                 return;\r
             shipInfoPanel.CombinedFleet = false;\r
@@ -997,9 +993,9 @@ namespace KancolleSniffer
         {\r
             if (!_started)\r
                 return;\r
-            var fleet = (int)((Label)sender).Tag;\r
+            var fleet = (int)((Control)sender).Tag;\r
             var text = TextGenerator.GenerateFleetData(Sniffer, fleet);\r
-            CopyFleetText(text, (Label)sender);\r
+            CopyFleetText(text, (Control)sender);\r
         }\r
 \r
         private void labelFleet1_DoubleClick(object sender, EventArgs e)\r
@@ -1010,10 +1006,10 @@ namespace KancolleSniffer
             var text = TextGenerator.GenerateFleetData(Sniffer, 0);\r
             if (shipInfoPanel.CombinedFleet)\r
                 text += TextGenerator.GenerateFleetData(Sniffer, 1);\r
-            CopyFleetText(text, (Label)sender);\r
+            CopyFleetText(text, (Control)sender);\r
         }\r
 \r
-        private void CopyFleetText(string text, Label fleetButton)\r
+        private void CopyFleetText(string text, Control fleetButton)\r
         {\r
             if (string.IsNullOrEmpty(text))\r
                 return;\r
index b55d2d1..91a332c 100644 (file)
   <resheader name="writer">\r
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\r
   </resheader>\r
-  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />\r
-  <data name="labelBucketHistoryButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
-    <value>\r
-        iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAX\r
-        EQAAFxEByibzPwAAAD1JREFUKFN1jEEOACAIw/Y0f+7TlJHMTIUmu0BaBDO2mvGHYYd3/CVVJW1RVY4t\r
-        vHLZwiufLWiWtqBpNrABpkcf4SFY/H8AAAAASUVORK5CYII=\r
-</value>\r
-  </data>\r
   <metadata name="timerMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
     <value>17, 17</value>\r
   </metadata>\r
   <metadata name="contextMenuStripNotifyIcon.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
     <value>577, 26</value>\r
   </metadata>\r
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />\r
   <data name="notifyIconMain.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
     <value>\r
         AAABAAQAQEAAAAEAIAAoQAAARgAAACAgAAABACAAKBAAAG5AAAAYGAAAAQAgACgJAACWUAAAEBAAAAEA\r
   <metadata name="contextMenuStripMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
     <value>269, 17</value>\r
   </metadata>\r
-  <metadata name="imageListFuelSq.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
-    <value>796, 26</value>\r
-  </metadata>\r
-  <data name="imageListFuelSq.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">\r
-    <value>\r
-        AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w\r
-        LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0\r
-        ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAs\r
-        GQAAAk1TRnQBSQFMAgEBCgEAAUQBAAFEAQABCAEAAQ0BAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAEg\r
-        AwABJwMAAQEBAAEgBQABgAETEwABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/\r
-        AQABJAL/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/QQABJAL/\r
-        AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AcsCyAH/AcsCyAH/AcsCyAH/\r
-        AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/QQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/\r
-        AQABJAL/AQABJAL/AQABJAL/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/\r
-        AcsCyAH/QQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AcsCyAH/\r
-        AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/QQABJAL/AQABJAL/AQABJAL/\r
-        AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/\r
-        AcsCyAH/AcsCyAH/AcsCyAH/QAABpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/\r
-        AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHE\r
-        AbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/0AAAaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGy\r
-        Af8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGl\r
-        AcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf9AAAGlAcQBsgH/AaUBxAGyAf8BpQHE\r
-        AbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/\r
-        AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/QAABpQHEAbIB/wGl\r
-        AcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGy\r
-        Af8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/0AA\r
-        AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHE\r
-        AbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/\r
-        AaUBxAGyAf9AAAGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGl\r
-        AcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGy\r
-        Af8BpQHEAbIB/wGlAcQBsgH/QAABpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/\r
-        AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHE\r
-        AbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/0AAAaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGy\r
-        Af8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGl\r
-        AcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf9AAAHLAsgB/wHLAsgB/wHLAsgB/wHL\r
-        AsgB/wHLAsgB/wHLAsgB/wHLAsgB/wHLAsgB/yEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/\r
-        AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZ\r
-        Av8BAAGZAv8BAAGZAv8BAAGZAv8BywLIAf8BywLIAf8BywLIAf8BywLIAf8BywLIAf8BywLIAf8BywLI\r
-        Af8BywLIAf8hAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1\r
-        AfoB/wEAAfUB+gH/AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABmQL/\r
-        AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/IQAB9QH6Af8BAAH1\r
-        AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAZkC/wEA\r
-        AZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEAAZkC/wHLAsgB/wHLAsgB/wHLAsgB/wHL\r
-        AsgB/wHLAsgB/wHLAsgB/wHLAsgB/wHLAsgB/yEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/\r
-        AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZ\r
-        Av8BAAGZAv8BAAGZAv8BAAGZAv8BywLIAf8BywLIAf8BywLIAf8BywLIAf8BywLIAf8BywLIAf8BywLI\r
-        Af8BywLIAf8hAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1\r
-        AfoB/wEAAfUB+gH/AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABmQL/\r
-        ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGD\r
-        AVAB/yAAAaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGy\r
-        Af8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGl\r
-        AcQBsgH/AaUBxAGyAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQ\r
-        Af8BMQGDAVAB/wExAYMBUAH/IAABpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/\r
-        AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHE\r
-        AbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/\r
-        ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8gAAGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGl\r
-        AcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGy\r
-        Af8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/ATEBgwFQAf8BMQGDAVAB/wEx\r
-        AYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/yAAAaUBxAGyAf8BpQHE\r
-        AbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/\r
-        AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BMQGD\r
-        AVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/\r
-        IAABpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGl\r
-        AcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGy\r
-        Af8BpQHEAbIB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wEx\r
-        AYMBUAH/ATEBgwFQAf8gAAGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHE\r
-        AbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/\r
-        AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGD\r
-        AVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/yAAAaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGy\r
-        Af8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGl\r
-        AcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQ\r
-        Af8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/IAABpQHEAbIB/wGlAcQBsgH/\r
-        AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHE\r
-        AbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/yEAAfUB+gH/\r
-        AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAGZ\r
-        Av8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAEkAv8BAAEkAv8BAAEk\r
-        Av8BAAEkAv8BAAEkAv8BAAEkAv8BAAEkAv8BAAEkAv8hAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1\r
-        AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQABmQL/AQABmQL/AQABmQL/AQABmQL/\r
-        AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/\r
-        AQABJAL/AQABJAL/IQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/\r
-        AQAB9QH6Af8BAAH1AfoB/wEAAZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEA\r
-        AZkC/wEAASQC/wEAASQC/wEAASQC/wEAASQC/wEAASQC/wEAASQC/wEAASQC/wEAASQC/yEAAfUB+gH/\r
-        AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAGZ\r
-        Av8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAEkAv8BAAEkAv8BAAEk\r
-        Av8BAAEkAv8BAAEkAv8BAAEkAv8BAAEkAv8BAAEkAv8hAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1\r
-        AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQABmQL/AQABmQL/AQABmQL/AQABmQL/\r
-        AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/\r
-        AQABJAL/AQABJAL/IAABMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQ\r
-        Af8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wEx\r
-        AYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQ\r
-        Af8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8gAAExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/\r
-        ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGD\r
-        AVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/\r
-        ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/yAAATEBgwFQAf8BMQGDAVAB/wEx\r
-        AYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQ\r
-        Af8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wEx\r
-        AYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/IAABMQGD\r
-        AVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/\r
-        ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGD\r
-        AVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/\r
-        ATEBgwFQAf8gAAExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wEx\r
-        AYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQ\r
-        Af8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wEx\r
-        AYMBUAH/ATEBgwFQAf8BMQGDAVAB/yAAATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGD\r
-        AVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/\r
-        ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGD\r
-        AVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/IAABMQGDAVAB/wExAYMBUAH/ATEBgwFQ\r
-        Af8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wEx\r
-        AYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQ\r
-        Af8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8gAAExAYMBUAH/\r
-        ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGD\r
-        AVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/\r
-        ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGD\r
-        AVAB/wFCAU0BPgcAAT4DAAEoAwABIAMAAScDAAEBAQABAQUAAZwXAAP/NgAB/wMAAf8DAAH/AwAB/wMA\r
-        Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wIAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA\r
-        Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAs=\r
-</value>\r
-  </data>\r
-  <metadata name="imageListBullSq.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
-    <value>945, 26</value>\r
-  </metadata>\r
-  <data name="imageListBullSq.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">\r
-    <value>\r
-        AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w\r
-        LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0\r
-        ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADi\r
-        FgAAAk1TRnQBSQFMAgEBCgEAATwBAAE8AQABCAEAAQ0BAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAEg\r
-        AwABJwMAAQEBAAEgBQABgAETEwABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/\r
-        AQABJAL/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/QQABJAL/\r
-        AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AcsCyAH/AcsCyAH/AcsCyAH/\r
-        AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/QQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/\r
-        AQABJAL/AQABJAL/AQABJAL/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/\r
-        AcsCyAH/QQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AcsCyAH/\r
-        AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/QQABJAL/AQABJAL/AQABJAL/\r
-        AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/\r
-        AcsCyAH/AcsCyAH/AcsCyAH/QAABkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/\r
-        AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5\r
-        Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/0AAAZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHN\r
-        Af8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQ\r
-        AbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf9AAAFwAYQBjAHjAZABuQHNAf8BkAG5\r
-        Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AW4BfQGDAd8BcAGEAYwB4wGQAbkBzQH/\r
-        AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wFuAX0BgwHfQAABZAFrAW8BywGQ\r
-        AbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wFeAWMBZQG/AWQBawFv\r
-        AcsBkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BXgFjAWUBv0AA\r
-        A0cBgAGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wNHAYADRwGA\r
-        AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/A0cBgEAAAxcBIAGI\r
-        AaUBtgH3AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BjAGpAcAB+wMUARwDFwEgAYgBpQG2\r
-        AfcBkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGMAakBwAH7AxQBHEQAAz0BaAGQAbkBzQH/\r
-        AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/A0ABcAgAAz0BaAGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQ\r
-        AbkBzQH/A0ABcEwAAzgBXAFgAWcBaAHDAWABZwFoAcMDOAFcEAADOAFcAWABZwFoAcMBYAFnAWgBwwM4\r
-        AVxIAAHLAsgB/wHLAsgB/wHLAsgB/wHLAsgB/wHLAsgB/wHLAsgB/wHLAsgB/wHLAsgB/yEAAfUB+gH/\r
-        AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAGZ\r
-        Av8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BywLIAf8BywLIAf8BywLI\r
-        Af8BywLIAf8BywLIAf8BywLIAf8BywLIAf8BywLIAf8hAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1\r
-        AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQABmQL/AQABmQL/AQABmQL/AQABmQL/\r
-        AQABmQL/AQABmQL/AQABmQL/AQABmQL/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/\r
-        AcsCyAH/AcsCyAH/IQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/\r
-        AQAB9QH6Af8BAAH1AfoB/wEAAZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEA\r
-        AZkC/wHLAsgB/wHLAsgB/wHLAsgB/wHLAsgB/wHLAsgB/wHLAsgB/wHLAsgB/wHLAsgB/yEAAfUB+gH/\r
-        AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAGZ\r
-        Av8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BywLIAf8BywLIAf8BywLI\r
-        Af8BywLIAf8BywLIAf8BywLIAf8BywLIAf8BywLIAf8hAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1\r
-        AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQABmQL/AQABmQL/AQABmQL/AQABmQL/\r
-        AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFi\r
-        AZkB/wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/yAAAZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHN\r
-        Af8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQ\r
-        AbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZ\r
-        Af8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/IAABkAG5Ac0B/wGQAbkBzQH/\r
-        AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5\r
-        Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wE5AWABdgHj\r
-        AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/ATwBYAFzAd8gAAFw\r
-        AYQBjAHjAZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AW4BfQGD\r
-        Ad8BcAGEAYwB4wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wFu\r
-        AX0BgwHfAUwBWwFkAcsBAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZ\r
-        Af8BUAFZAWABvyAAAWQBawFvAcsBkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/\r
-        AZABuQHNAf8BXgFjAWUBvwFkAWsBbwHLAZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5\r
-        Ac0B/wGQAbkBzQH/AV4BYwFlAb8BRgJHAYABAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wEA\r
-        AWIBmQH/AQABYgGZAf8BRgJHAYAgAANHAYABkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQ\r
-        AbkBzQH/AZABuQHNAf8DRwGAA0cBgAGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHN\r
-        Af8BkAG5Ac0B/wNHAYADFwEgARYBZgGLAfcBAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wEI\r
-        AV8BlAH7AxQBHCAAAxcBIAGIAaUBtgH3AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BjAGp\r
-        AcAB+wMUARwDFwEgAYgBpQG2AfcBkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGMAakBwAH7\r
-        AxQBHAQAATwCPQFoAQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8DQAFwKAADPQFoAZABuQHN\r
-        Af8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8DQAFwCAADPQFoAZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/\r
-        AZABuQHNAf8DQAFwDAADOAFcAU8BWwFjAcMBTwFbAWMBwwM4AVwwAAM4AVwBYAFnAWgBwwFgAWcBaAHD\r
-        AzgBXBAAAzgBXAFgAWcBaAHDAWABZwFoAcMDOAFcKQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6\r
-        Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEA\r
-        AZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEAASQC/wEAASQC/wEAASQC/wEAASQC/wEAASQC/wEAASQC/wEA\r
-        ASQC/wEAASQC/yEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEA\r
-        AfUB+gH/AQAB9QH6Af8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZ\r
-        Av8BAAEkAv8BAAEkAv8BAAEkAv8BAAEkAv8BAAEkAv8BAAEkAv8BAAEkAv8BAAEkAv8hAAH1AfoB/wEA\r
-        AfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQABmQL/\r
-        AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABJAL/AQABJAL/AQABJAL/\r
-        AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/IQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6\r
-        Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEA\r
-        AZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEAASQC/wEAASQC/wEAASQC/wEAASQC/wEAASQC/wEAASQC/wEA\r
-        ASQC/wEAASQC/yEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEA\r
-        AfUB+gH/AQAB9QH6Af8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZ\r
-        Av8BAAEkAv8BAAEkAv8BAAEkAv8BAAEkAv8BAAEkAv8BAAEkAv8BAAEkAv8BAAEkAv8hAAFiAZkB/wEA\r
-        AWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZ\r
-        Af8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wEA\r
-        AWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZ\r
-        Af8hAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wEA\r
-        AWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZ\r
-        Af8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wEA\r
-        AWIBmQH/AQABYgGZAf8gAAE5AWABdgHjAQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFi\r
-        AZkB/wEAAWIBmQH/ATwBYAFzAd8BOQFgAXYB4wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/\r
-        AQABYgGZAf8BAAFiAZkB/wE8AWABcwHfATkBYAF2AeMBAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFi\r
-        AZkB/wEAAWIBmQH/AQABYgGZAf8BPAFgAXMB3yAAAUwBWwFkAcsBAAFiAZkB/wEAAWIBmQH/AQABYgGZ\r
-        Af8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BUAFZAWABvwFMAVsBZAHLAQABYgGZAf8BAAFiAZkB/wEA\r
-        AWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AVABWQFgAb8BTAFbAWQBywEAAWIBmQH/AQABYgGZ\r
-        Af8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wFQAVkBYAG/IAABRgJHAYABAAFiAZkB/wEA\r
-        AWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BRgJHAYABRgJHAYABAAFiAZkB/wEA\r
-        AWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BRgJHAYABRgJHAYABAAFiAZkB/wEA\r
-        AWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BRgJHAYAgAAMXASABFgFmAYsB9wEA\r
-        AWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQgBXwGUAfsDFAEcAxcBIAEWAWYBiwH3AQABYgGZ\r
-        Af8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BCAFfAZQB+wMUARwDFwEgARYBZgGLAfcBAAFiAZkB/wEA\r
-        AWIBmQH/AQABYgGZAf8BAAFiAZkB/wEIAV8BlAH7AxQBHCQAATwCPQFoAQABYgGZAf8BAAFiAZkB/wEA\r
-        AWIBmQH/AQABYgGZAf8DQAFwCAABPAI9AWgBAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wNA\r
-        AXAIAAE8Aj0BaAEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/A0ABcCwAAzgBXAFPAVsBYwHD\r
-        AU8BWwFjAcMDOAFcEAADOAFcAU8BWwFjAcMBTwFbAWMBwwM4AVwQAAM4AVwBTwFbAWMBwwFPAVsBYwHD\r
-        AzgBXAgAAUIBTQE+BwABPgMAASgDAAEgAwABJwMAAQEBAAEBBQABnBcAA/8tAAKBAgACwwMAAf8DAAH/\r
-        AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AgABgQH/AoEBwwH/AsMB/wMAAf8DAAH/\r
-        AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A4EB/wPDCw==\r
-</value>\r
-  </data>\r
   <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
     <value>\r
         AAABAAQAQEAAAAEAIAAoQAAARgAAACAgAAABACAAKBAAAG5AAAAYGAAAAQAgACgJAACWUAAAEBAAAAEA\r
diff --git a/KancolleSniffer/View/ChargeStatus.cs b/KancolleSniffer/View/ChargeStatus.cs
new file mode 100644 (file)
index 0000000..adc16da
--- /dev/null
@@ -0,0 +1,121 @@
+// Copyright (C) 2020 Kazuhiro Fujieda <fujieda@users.osdn.me>\r
+//\r
+// Licensed under the Apache License, Version 2.0 (the "License");\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+//    http://www.apache.org/licenses/LICENSE-2.0\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an "AS IS" BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+\r
+using System.Drawing;\r
+using System.Windows.Forms;\r
+\r
+namespace KancolleSniffer.View\r
+{\r
+    public class ChargeStatus : Control, IUpdateContext\r
+    {\r
+        private readonly Color[] _colors = {CUDColors.Yellow, CUDColors.Orange, CUDColors.Red, CUDColors.LightGray};\r
+\r
+        private float IconWidth => Width * 8 / 17.0f;\r
+\r
+        private float Head => Height * 8 / 13f;\r
+\r
+        private float BulletLeft => Width * 9 / 17.0f;\r
+\r
+        private readonly Brush _defaultBrush = new SolidBrush(DefaultBackColor);\r
+\r
+        private Graphics _g;\r
+\r
+        private Model.ChargeStatus _status;\r
+\r
+        public UpdateContext Context { get; set; }\r
+\r
+        public override string Text { get; set; } = "";\r
+\r
+        public new void Update()\r
+        {\r
+            var fleet = (int)Tag;\r
+            _status = Context.Sniffer.Fleets[fleet].ChargeStatus;\r
+            Text = _status.Empty ? "" : $"燃{_status.FuelRatio * 100:f1}% 弾{_status.BullRatio * 100:f1}%";\r
+            Invalidate();\r
+        }\r
+\r
+        protected override void OnPaint(PaintEventArgs e)\r
+        {\r
+            if (_status == null)\r
+                return;\r
+            _g = e.Graphics;\r
+            DrawFuelStatus();\r
+            DrawBulletStatus();\r
+        }\r
+\r
+        private void DrawFuelStatus()\r
+        {\r
+            var charge = _status.Fuel;\r
+            if (charge % 5 == 0)\r
+            {\r
+                Clear(0);\r
+                return;\r
+            }\r
+            DrawFuelHead(charge);\r
+            DrawStatus(0, charge % 5 - 1);\r
+        }\r
+\r
+        private void DrawFuelHead(int charge)\r
+        {\r
+            _g.FillPolygon(\r
+                new SolidBrush(charge <= 4 ? Color.FromArgb(83, 131, 52) : Color.FromArgb(178, 196, 165)),\r
+                new[]\r
+                {\r
+                    new PointF(0, 0), new PointF(IconWidth, 0), new PointF(IconWidth, Height), new Point(0, Height)\r
+                });\r
+        }\r
+\r
+        private void DrawBulletStatus()\r
+        {\r
+            var charge = _status.Bull;\r
+            if (charge % 5 == 0)\r
+            {\r
+                Clear(BulletLeft);\r
+                return;\r
+            }\r
+            DrawBulletHead(charge);\r
+            DrawStatus(BulletLeft, charge % 5 - 1);\r
+        }\r
+\r
+        private void DrawBulletHead(int charge)\r
+        {\r
+            var l = BulletLeft;\r
+            var r = l + IconWidth;\r
+            var curve = Height * 6 / 13f;\r
+            var brush = new SolidBrush(charge <= 4 ? Color.FromArgb(153, 101, 0) : Color.FromArgb(205, 185, 144));\r
+            _g.FillClosedCurve(brush,\r
+                new[] {new PointF(l, curve), new PointF(l + IconWidth / 2.0f, -1), new PointF(r, curve)});\r
+            _g.FillPolygon(brush,\r
+                new[]\r
+                {\r
+                    new PointF(l, curve), new PointF(r, curve), new PointF(r, Height), new PointF(l, Height)\r
+                });\r
+        }\r
+\r
+        private void DrawStatus(float left, int color)\r
+        {\r
+            var right = left + IconWidth;\r
+            _g.FillPolygon(new SolidBrush(_colors[color]),\r
+                new[]\r
+                {\r
+                    new PointF(left, Head), new PointF(right, Head), new PointF(right, Height), new PointF(left, Height)\r
+                });\r
+        }\r
+\r
+        private void Clear(float left)\r
+        {\r
+            _g.FillRectangle(_defaultBrush, left, 0, left + IconWidth, Height);\r
+        }\r
+    }\r
+}
\ No newline at end of file