OSDN Git Service

艦娘数や装備数のパネルをHqPanelに分離する
[kancollesniffer/KancolleSniffer.git] / KancolleSniffer / MainForm.cs
index 817bdbf..b09b9e8 100644 (file)
@@ -65,6 +65,28 @@ namespace KancolleSniffer
         public Sniffer Sniffer { get; } = new Sniffer();\r
         public Config Config { get; } = new Config();\r
 \r
+        public interface INotifySubmitter\r
+        {\r
+            void Flash();\r
+            void Enqueue(string key, string subject);\r
+        }\r
+\r
+        public class Context\r
+        {\r
+            public Sniffer Sniffer { get; }\r
+            public Config Config { get; }\r
+            public INotifySubmitter Submitter { get; }\r
+            public Func<DateTime> GetNow { get; }\r
+\r
+            public Context(Sniffer sniffer, Config config, INotifySubmitter submitter, Func<DateTime> getNow)\r
+            {\r
+                Sniffer = sniffer;\r
+                Config = config;\r
+                Submitter = submitter;\r
+                GetNow = getNow;\r
+            }\r
+        }\r
+\r
         public MainForm()\r
         {\r
             InitializeComponent();\r
@@ -92,9 +114,16 @@ namespace KancolleSniffer
             panelRepairList.CreateLabels(panelRepairList_Click);\r
             ndockPanel.SetClickHandler(labelNDock_Click);\r
             missionPanel.SetClickHandler(labelMission_Click);\r
+            SetContextToView();\r
             PerformZoom();\r
         }\r
 \r
+        private void SetContextToView()\r
+        {\r
+            var context = new Context(Sniffer, Config, new NotifySubmitter(_notificationManager), () => _now);\r
+            hqPanel.Context = context;\r
+        }\r
+\r
         private void SetScaleFactorOfDpiScaling()\r
         {\r
             var autoScaleDimensions = new SizeF(6f, 12f); // AutoScaleDimensionの初期値\r
@@ -123,11 +152,6 @@ namespace KancolleSniffer
         {\r
             _numberAndHistory = new NumberAndHistory(new NumberAndHistoryLabels\r
             {\r
-                NumOfShips = labelNumOfShips,\r
-                NumOfEquips = labelNumOfEquips,\r
-                NumOfBuckets = labelNumOfBuckets,\r
-                BucketHistory = labelBucketHistory,\r
-                Achievement = labelAchievement,\r
                 FuelHistory = labelFuelHistory,\r
                 BulletHistory = labelBulletHistory,\r
                 SteelHistory = labelSteelHistory,\r
@@ -320,7 +344,7 @@ namespace KancolleSniffer
         {\r
             if (update == Sniffer.Update.Start)\r
             {\r
-                labelLogin.Visible = false;\r
+                hqPanel.Login.Visible = false;\r
                 linkLabelGuide.Visible = false;\r
                 _started = true;\r
                 _notificationManager.StopAllRepeat();\r
@@ -511,7 +535,7 @@ namespace KancolleSniffer
             var prev = CurrentAutoScaleDimensions;\r
             foreach (var control in new Control[]\r
             {\r
-                this, labelLogin, linkLabelGuide,\r
+                this, linkLabelGuide, hqPanel.Login,\r
                 _configDialog, _configDialog.NotificationConfigDialog,\r
                 contextMenuStripMain, _errorDialog\r
             })\r
@@ -552,9 +576,8 @@ namespace KancolleSniffer
             if (TopMost != Config.TopMost)\r
                 TopMost = _listFormGroup.TopMost = Config.TopMost;\r
             Sniffer.ShipCounter.Margin = Config.MarginShips;\r
-            _numberAndHistory.UpdateNumOfShips();\r
             Sniffer.ItemCounter.Margin = Config.MarginEquips;\r
-            _numberAndHistory.UpdateNumOfEquips();\r
+            hqPanel.Update();\r
             Sniffer.Achievement.ResetHours = Config.ResetHours;\r
             labelAkashiRepair.Visible = labelAkashiRepairTimer.Visible =\r
                 labelPresetAkashiTimer.Visible = Config.UsePresetAkashi;\r
@@ -607,7 +630,7 @@ namespace KancolleSniffer
             }\r
             if (_playLog == null || _configDialog.Visible)\r
             {\r
-                labelPlayLog.Visible = false;\r
+                hqPanel.PlayLog.Visible = false;\r
                 return;\r
             }\r
             PlayLog();\r
@@ -627,13 +650,13 @@ namespace KancolleSniffer
                 {\r
                     if (!_playLog.MoveNext() || _playLog.Current == null)\r
                     {\r
-                        labelPlayLog.Visible = false;\r
+                        hqPanel.PlayLog.Visible = false;\r
                         return;\r
                     }\r
                 } while (!_playLog.Current.StartsWith(s));\r
                 lines.Add(_playLog.Current.Substring(s.Length));\r
             }\r
-            labelPlayLog.Visible = !labelPlayLog.Visible;\r
+            hqPanel.PlayLog.Visible = !hqPanel.PlayLog.Visible;\r
             ProcessRequestMain(lines[0], lines[1], lines[2]);\r
         }\r
 \r
@@ -652,6 +675,7 @@ namespace KancolleSniffer
 \r
         private void UpdateItemInfo()\r
         {\r
+            hqPanel.Update();\r
             _numberAndHistory.Update();\r
             if (_listFormGroup.Visible)\r
                 _listFormGroup.UpdateList();\r
@@ -986,11 +1010,6 @@ namespace KancolleSniffer
                 SetPreNotification(key, fleet, subject);\r
         }\r
 \r
-        private void SetTimerColor(Label label, AlarmTimer timer, DateTime now)\r
-        {\r
-            label.ForeColor = timer.IsFinished(now) ? CUDColors.Red : Color.Black;\r
-        }\r
-\r
         private void UpdateCondTimers()\r
         {\r
             DateTime timer;\r
@@ -1312,27 +1331,6 @@ namespace KancolleSniffer
             });\r
         }\r
 \r
-        private void labelBucketHistoryButton_Click(object sender, EventArgs e)\r
-        {\r
-            if (labelBucketHistory.Visible)\r
-            {\r
-                labelBucketHistory.Visible = false;\r
-                labelBucketHistoryButton.BackColor = DefaultBackColor;\r
-            }\r
-            else\r
-            {\r
-                labelBucketHistory.Visible = true;\r
-                labelBucketHistory.BringToFront();\r
-                labelBucketHistoryButton.BackColor = CustomColors.ActiveButtonColor;\r
-            }\r
-        }\r
-\r
-        private void labelBucketHistory_Click(object sender, EventArgs e)\r
-        {\r
-            labelBucketHistory.Visible = false;\r
-            labelBucketHistoryButton.BackColor = DefaultBackColor;\r
-        }\r
-\r
         private void labelMaterialHistoryButton_Click(object sender, EventArgs e)\r
         {\r
             if (panelMaterialHistory.Visible)\r