OSDN Git Service

ShipListForm→ListFormなどの名前の変更を行う
[kancollesniffer/KancolleSniffer.git] / KancolleSniffer / MainForm.cs
index 0cbc153..214d64e 100644 (file)
@@ -42,7 +42,7 @@ namespace KancolleSniffer
         private bool _combinedFleet;\r
         private readonly Label[] _labelCheckFleets;\r
         private readonly ShipLabels _shipLabels;\r
-        private readonly ShipListForm _shipListForm;\r
+        private readonly ListForm _listForm;\r
         private readonly NoticeQueue _noticeQueue;\r
         private bool _started;\r
         private string _debugLogFile;\r
@@ -70,14 +70,15 @@ namespace KancolleSniffer
             SetupFleetClick();\r
             _shipLabels = new ShipLabels();\r
             _shipLabels.CreateAkashiTimers(panelShipInfo);\r
-            _shipLabels.CreateLabels(panelShipInfo, ShowShipOnShipList);\r
+            _shipLabels.CreateShipLabels(panelShipInfo, ShowShipOnShipList);\r
             _shipLabels.CreateCombinedShipLabels(panelCombinedFleet, ShowShipOnShipList);\r
-            _shipLabels.CreateDamagedShipList(panelDamagedShipList, panelDamagedShipList_Click);\r
+            _shipLabels.CreateRepairList(panelRepairList, panelRepairList_Click);\r
             _shipLabels.CreateNDockLabels(panelDock, labelNDock_Click);\r
             labelPresetAkashiTimer.BackColor = ShipLabels.ColumnColors[1];\r
-            _shipListForm = new ShipListForm(_sniffer, _config) {Owner = this};\r
+            _listForm = new ListForm(_sniffer, _config) {Owner = this};\r
             _noticeQueue = new NoticeQueue(Ring);\r
             _config.Load();\r
+            PerformZoom();\r
             _sniffer.LoadState();\r
         }\r
 \r
@@ -96,7 +97,6 @@ namespace KancolleSniffer
             if (response == null || !response.StartsWith("svdata="))\r
             {\r
                 WriteDebugLog(url, request, response);\r
-                ShowServerError(url, request, response);\r
                 return;\r
             }\r
             if (_config.KancolleDb.On)\r
@@ -105,17 +105,7 @@ namespace KancolleSniffer
             WriteDebugLog(url, request, response);\r
             try\r
             {\r
-                var update = _sniffer.Sniff(url, request, JsonParser.Parse(response));\r
-                if (update == Sniffer.Update.Error)\r
-                {\r
-                    ShowServerError(url, request, response);\r
-                    return;\r
-                }\r
-                UpdateInfo(update);\r
-            }\r
-            catch (FormatException e)\r
-            {\r
-                ShowServerError(url, request, response, e);\r
+                UpdateInfo(_sniffer.Sniff(url, request, JsonParser.Parse(response)));\r
             }\r
             catch (RuntimeBinderException e)\r
             {\r
@@ -144,14 +134,6 @@ namespace KancolleSniffer
             }\r
         }\r
 \r
-        private void ShowServerError(string url, string request, string response, Exception e = null)\r
-        {\r
-            if (_errorDialog.ShowDialog(this, "サーバーからの応答が異常です。",\r
-                $"{(e == null ? "" : e + "\r\n")}url: {url}\r\nrequest: {request}\r\nresponse: {response ?? "(null)"}\r\n") ==\r
-                DialogResult.Abort)\r
-                Application.Exit();\r
-        }\r
-\r
         private string UnescapeString(string s)\r
         {\r
             try\r
@@ -265,6 +247,19 @@ namespace KancolleSniffer
                 ApplyConfig();\r
         }\r
 \r
+        private void PerformZoom()\r
+        {\r
+            if (_config.Zoom == 100)\r
+                return;\r
+            var prev = CurrentAutoScaleDimensions;\r
+            foreach (var control in new Control[] {this, _listForm, labelLogin, labelGuide})\r
+                control.Font = new Font(control.Font.FontFamily, control.Font.Size * _config.Zoom / 100);\r
+            ShipLabel.LatinFont = new Font("Tahoma", 8f * _config.Zoom / 100);\r
+            var cur = CurrentAutoScaleDimensions;\r
+            ShipLabel.ScaleFactor = new SizeF(ShipLabel.ScaleFactor.Width * cur.Width / prev.Width,\r
+                ShipLabel.ScaleFactor.Height * cur.Height / prev.Height);\r
+        }\r
+\r
         private void RestoreLocation()\r
         {\r
             if (_config.Location.X == int.MinValue)\r
@@ -277,7 +272,7 @@ namespace KancolleSniffer
 \r
         private void ApplyConfig()\r
         {\r
-            _shipListForm.TopMost = TopMost = _config.TopMost;\r
+            _listForm.TopMost = TopMost = _config.TopMost;\r
             _sniffer.Item.MarginShips = _config.MarginShips;\r
             _sniffer.Item.MarginEquips = _config.MarginEquips;\r
             _sniffer.Achievement.ResetHours = _config.ResetHours;\r
@@ -401,7 +396,17 @@ namespace KancolleSniffer
         private void timerMain_Tick(object sender, EventArgs e)\r
         {\r
             if (_started)\r
-                UpdateTimers();\r
+            {\r
+                try\r
+                {\r
+                    UpdateTimers();\r
+                }\r
+                catch (Exception ex)\r
+                {\r
+                    if (_errorDialog.ShowDialog(this, "エラーが発生しました。", ex.ToString()) == DialogResult.Abort)\r
+                        Application.Exit();\r
+                }\r
+            }\r
             if (_playLog == null || _configDialog.Visible)\r
             {\r
                 labelPlayLog.Visible = false;\r
@@ -434,13 +439,13 @@ namespace KancolleSniffer
 \r
         private void ShowShipOnShipList(object sender, EventArgs ev)\r
         {\r
-            if (!_shipListForm.Visible)\r
+            if (!_listForm.Visible)\r
                 return;\r
             var idx = (int)((Control)sender).Tag;\r
             var statuses = _sniffer.GetShipStatuses(_currentFleet);\r
             if (statuses.Length <= idx)\r
                 return;\r
-            _shipListForm.ShowShip(statuses[idx].Id);\r
+            _listForm.ShowShip(statuses[idx].Id);\r
         }\r
 \r
         private void UpdateItemInfo()\r
@@ -457,8 +462,8 @@ namespace KancolleSniffer
                 "今月 " + _sniffer.Achievement.ValueOfMonth.ToString("F1") + "\n" +\r
                 "EO " + _sniffer.ExMap.Achievement);\r
             UpdateMaterialHistry();\r
-            if (_shipListForm.Visible)\r
-                _shipListForm.UpdateList();\r
+            if (_listForm.Visible)\r
+                _listForm.UpdateList();\r
         }\r
 \r
         private void UpdateNumOfShips()\r
@@ -524,21 +529,21 @@ namespace KancolleSniffer
             UpdatePanelShipInfo();\r
             NotifyDamagedShip();\r
             UpdateChargeInfo();\r
-            UpdateDamagedShipList();\r
-            if (_shipListForm.Visible)\r
-                _shipListForm.UpdateList();\r
+            UpdateRepairList();\r
+            if (_listForm.Visible)\r
+                _listForm.UpdateList();\r
         }\r
 \r
         private void UpdatePanelShipInfo()\r
         {\r
             var statuses = _sniffer.GetShipStatuses(_currentFleet);\r
-            _shipLabels.SetShipInfo(statuses);\r
+            _shipLabels.SetShipLabels(statuses);\r
             if (_sniffer.CombinedFleetType == 0)\r
                 _combinedFleet = false;\r
             labelFleet1.Text = _combinedFleet ? "連合" : "第一";\r
             panelCombinedFleet.Visible = _combinedFleet;\r
             if (_combinedFleet)\r
-                _shipLabels.SetCombinedShipInfo(_sniffer.GetShipStatuses(0), _sniffer.GetShipStatuses(1));\r
+                _shipLabels.SetCombinedShipLabels(_sniffer.GetShipStatuses(0), _sniffer.GetShipStatuses(1));\r
             UpdateAkashiTimer();\r
             UpdateFighterPower();\r
             UpdateLoS();\r
@@ -589,7 +594,7 @@ namespace KancolleSniffer
 \r
         private void UpdateLoS()\r
         {\r
-            labelLoS.Text = _sniffer.GetFleetLineOfSights(_currentFleet).ToString("F1");\r
+            labelLoS.Text = (Floor(_sniffer.GetFleetLineOfSights(_currentFleet) * 10) / 10.0).ToString("F1");\r
         }\r
 \r
         private void UpdateBattleInfo()\r
@@ -779,9 +784,9 @@ namespace KancolleSniffer
             }\r
         }\r
 \r
-        private void UpdateDamagedShipList()\r
+        private void UpdateRepairList()\r
         {\r
-            _shipLabels.SetDamagedShipList(_sniffer.DamagedShipList);\r
+            _shipLabels.SetRepairList(_sniffer.RepairList);\r
         }\r
 \r
         private void UpdateQuestList()\r
@@ -982,34 +987,34 @@ namespace KancolleSniffer
             UpdateItemInfo();\r
         }\r
 \r
-        private void labelDamgedShipListButton_Click(object sender, EventArgs e)\r
+        private void labelRepairListButton_Click(object sender, EventArgs e)\r
         {\r
-            if (panelDamagedShipList.Visible)\r
+            if (panelRepairList.Visible)\r
             {\r
-                panelDamagedShipList.Visible = false;\r
-                labelDamgedShipListButton.BackColor = DefaultBackColor;\r
+                panelRepairList.Visible = false;\r
+                labelRepairListButton.BackColor = DefaultBackColor;\r
             }\r
             else\r
             {\r
-                panelDamagedShipList.Visible = true;\r
-                panelDamagedShipList.BringToFront();\r
-                labelDamgedShipListButton.BackColor = SystemColors.ActiveCaption;\r
+                panelRepairList.Visible = true;\r
+                panelRepairList.BringToFront();\r
+                labelRepairListButton.BackColor = SystemColors.ActiveCaption;\r
             }\r
         }\r
 \r
-        private void panelDamagedShipList_Click(object sender, EventArgs e)\r
+        private void panelRepairList_Click(object sender, EventArgs e)\r
         {\r
-            panelDamagedShipList.Visible = false;\r
-            labelDamgedShipListButton.BackColor = DefaultBackColor;\r
+            panelRepairList.Visible = false;\r
+            labelRepairListButton.BackColor = DefaultBackColor;\r
         }\r
 \r
         private void ShipListToolStripMenuItem_Click(object sender, EventArgs e)\r
         {\r
-            _shipListForm.UpdateList();\r
-            _shipListForm.Show();\r
-            if (_shipListForm.WindowState == FormWindowState.Minimized)\r
-                _shipListForm.WindowState = FormWindowState.Normal;\r
-            _shipListForm.Activate();\r
+            _listForm.UpdateList();\r
+            _listForm.Show();\r
+            if (_listForm.WindowState == FormWindowState.Minimized)\r
+                _listForm.WindowState = FormWindowState.Normal;\r
+            _listForm.Activate();\r
         }\r
 \r
         private void LogToolStripMenuItem_Click(object sender, EventArgs e)\r