<Compile Include="Util\HttpUtility.cs" />\r
<Compile Include="View\FleetSpec.cs" />\r
<Compile Include="View\GrowLeftLabel.cs" />\r
+ <Compile Include="View\HqPanel.cs">\r
+ <SubType>Component</SubType>\r
+ </Compile>\r
<Compile Include="View\KDockPanel.cs">\r
<SubType>Component</SubType>\r
</Compile>\r
{\r
this.components = new System.ComponentModel.Container();\r
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));\r
- this.panelHeadquarters = new System.Windows.Forms.Panel();\r
- this.labelPlayLog = new System.Windows.Forms.Label();\r
- this.labelLogin = new System.Windows.Forms.Label();\r
- this.labelBucketHistoryButton = new System.Windows.Forms.Label();\r
- this.labelAchievement = new System.Windows.Forms.Label();\r
- this.label28 = new System.Windows.Forms.Label();\r
- this.labelNumOfBuckets = new System.Windows.Forms.Label();\r
- this.label3 = new System.Windows.Forms.Label();\r
- this.labelNumOfEquips = new System.Windows.Forms.Label();\r
- this.label2 = new System.Windows.Forms.Label();\r
- this.labelNumOfShips = new System.Windows.Forms.Label();\r
- this.label1 = new System.Windows.Forms.Label();\r
this.panelShipInfo = new System.Windows.Forms.Panel();\r
this.labelPresetAkashiTimer = new System.Windows.Forms.Label();\r
this.linkLabelGuide = new System.Windows.Forms.LinkLabel();\r
this.labelFleet4 = new System.Windows.Forms.Label();\r
this.labelFleet3 = new System.Windows.Forms.Label();\r
this.labelFleet2 = new System.Windows.Forms.Label();\r
- this.labelBucketHistory = new System.Windows.Forms.Label();\r
this.label36 = 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.labelCheckFleet4 = new System.Windows.Forms.Label();\r
this.labelCheckFleet1 = new System.Windows.Forms.Label();\r
this.labelQuestCount = new System.Windows.Forms.Label();\r
+ this.kdockPanel = new KancolleSniffer.View.KDockPanel();\r
this.panelRepairList = new KancolleSniffer.View.RepairListForMain();\r
this.ndockPanel = new KancolleSniffer.View.NDockPanel();\r
this.missionPanel = new KancolleSniffer.View.MissionPanel();\r
this.questPanel = new KancolleSniffer.View.QuestPanel();\r
- this.kdockPanel = new KancolleSniffer.View.KDockPanel();\r
- this.panelHeadquarters.SuspendLayout();\r
+ this.hqPanel = new KancolleSniffer.View.HqPanel();\r
this.panelShipInfo.SuspendLayout();\r
this.panelBattleInfo.SuspendLayout();\r
this.panelMaterialHistory.SuspendLayout();\r
this.contextMenuStripMain.SuspendLayout();\r
this.SuspendLayout();\r
// \r
- // panelHeadquarters\r
- // \r
- this.panelHeadquarters.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;\r
- this.panelHeadquarters.Controls.Add(this.labelPlayLog);\r
- this.panelHeadquarters.Controls.Add(this.labelLogin);\r
- this.panelHeadquarters.Controls.Add(this.labelBucketHistoryButton);\r
- this.panelHeadquarters.Controls.Add(this.labelAchievement);\r
- this.panelHeadquarters.Controls.Add(this.label28);\r
- this.panelHeadquarters.Controls.Add(this.labelNumOfBuckets);\r
- this.panelHeadquarters.Controls.Add(this.label3);\r
- this.panelHeadquarters.Controls.Add(this.labelNumOfEquips);\r
- this.panelHeadquarters.Controls.Add(this.label2);\r
- this.panelHeadquarters.Controls.Add(this.labelNumOfShips);\r
- this.panelHeadquarters.Controls.Add(this.label1);\r
- this.panelHeadquarters.Location = new System.Drawing.Point(6, 6);\r
- this.panelHeadquarters.Name = "panelHeadquarters";\r
- this.panelHeadquarters.Size = new System.Drawing.Size(220, 33);\r
- this.panelHeadquarters.TabIndex = 0;\r
- // \r
- // labelPlayLog\r
- // \r
- this.labelPlayLog.AutoSize = true;\r
- this.labelPlayLog.Location = new System.Drawing.Point(207, 3);\r
- this.labelPlayLog.Name = "labelPlayLog";\r
- this.labelPlayLog.Size = new System.Drawing.Size(11, 12);\r
- this.labelPlayLog.TabIndex = 24;\r
- this.labelPlayLog.Text = "*";\r
- this.labelPlayLog.Visible = false;\r
- // \r
- // labelLogin\r
- // \r
- this.labelLogin.Font = new System.Drawing.Font("MS UI Gothic", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128)));\r
- this.labelLogin.Location = new System.Drawing.Point(6, 2);\r
- this.labelLogin.Name = "labelLogin";\r
- this.labelLogin.Size = new System.Drawing.Size(210, 28);\r
- this.labelLogin.TabIndex = 23;\r
- this.labelLogin.Text = "艦これにログインしてください。\r\nログイン中ならログインし直してください。";\r
- this.labelLogin.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;\r
- // \r
- // labelBucketHistoryButton\r
- // \r
- this.labelBucketHistoryButton.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;\r
- this.labelBucketHistoryButton.Image = ((System.Drawing.Image)(resources.GetObject("labelBucketHistoryButton.Image")));\r
- this.labelBucketHistoryButton.Location = new System.Drawing.Point(146, 15);\r
- this.labelBucketHistoryButton.Name = "labelBucketHistoryButton";\r
- this.labelBucketHistoryButton.Size = new System.Drawing.Size(14, 14);\r
- this.labelBucketHistoryButton.TabIndex = 9;\r
- this.labelBucketHistoryButton.Click += new System.EventHandler(this.labelBucketHistoryButton_Click);\r
- // \r
- // labelAchievement\r
- // \r
- this.labelAchievement.Location = new System.Drawing.Point(166, 18);\r
- this.labelAchievement.Name = "labelAchievement";\r
- this.labelAchievement.Size = new System.Drawing.Size(33, 12);\r
- this.labelAchievement.TabIndex = 7;\r
- this.labelAchievement.TextAlign = System.Drawing.ContentAlignment.MiddleRight;\r
- // \r
- // label28\r
- // \r
- this.label28.AutoSize = true;\r
- this.label28.Location = new System.Drawing.Point(170, 3);\r
- this.label28.Name = "label28";\r
- this.label28.Size = new System.Drawing.Size(29, 12);\r
- this.label28.TabIndex = 6;\r
- this.label28.Text = "戦果";\r
- // \r
- // labelNumOfBuckets\r
- // \r
- this.labelNumOfBuckets.Location = new System.Drawing.Point(116, 18);\r
- this.labelNumOfBuckets.Name = "labelNumOfBuckets";\r
- this.labelNumOfBuckets.Size = new System.Drawing.Size(30, 12);\r
- this.labelNumOfBuckets.TabIndex = 5;\r
- this.labelNumOfBuckets.Text = "0";\r
- this.labelNumOfBuckets.TextAlign = System.Drawing.ContentAlignment.MiddleRight;\r
- this.labelNumOfBuckets.Click += new System.EventHandler(this.labelBucketHistoryButton_Click);\r
- // \r
- // label3\r
- // \r
- this.label3.AutoSize = true;\r
- this.label3.Location = new System.Drawing.Point(113, 3);\r
- this.label3.Name = "label3";\r
- this.label3.Size = new System.Drawing.Size(33, 12);\r
- this.label3.TabIndex = 4;\r
- this.label3.Text = "バケツ";\r
- // \r
- // labelNumOfEquips\r
- // \r
- this.labelNumOfEquips.Location = new System.Drawing.Point(46, 18);\r
- this.labelNumOfEquips.Name = "labelNumOfEquips";\r
- this.labelNumOfEquips.Size = new System.Drawing.Size(60, 12);\r
- this.labelNumOfEquips.TabIndex = 3;\r
- this.labelNumOfEquips.Text = "0/0";\r
- this.labelNumOfEquips.TextAlign = System.Drawing.ContentAlignment.MiddleRight;\r
- // \r
- // label2\r
- // \r
- this.label2.AutoSize = true;\r
- this.label2.Location = new System.Drawing.Point(65, 3);\r
- this.label2.Name = "label2";\r
- this.label2.Size = new System.Drawing.Size(41, 12);\r
- this.label2.TabIndex = 2;\r
- this.label2.Text = "装備数";\r
- // \r
- // labelNumOfShips\r
- // \r
- this.labelNumOfShips.Location = new System.Drawing.Point(0, 18);\r
- this.labelNumOfShips.Name = "labelNumOfShips";\r
- this.labelNumOfShips.Size = new System.Drawing.Size(48, 12);\r
- this.labelNumOfShips.TabIndex = 1;\r
- this.labelNumOfShips.Text = "0/0";\r
- this.labelNumOfShips.TextAlign = System.Drawing.ContentAlignment.MiddleRight;\r
- // \r
- // label1\r
- // \r
- this.label1.AutoSize = true;\r
- this.label1.Location = new System.Drawing.Point(7, 3);\r
- this.label1.Name = "label1";\r
- this.label1.Size = new System.Drawing.Size(41, 12);\r
- this.label1.TabIndex = 0;\r
- this.label1.Text = "艦娘数";\r
- // \r
// panelShipInfo\r
// \r
this.panelShipInfo.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;\r
this.labelFleet2.TabIndex = 21;\r
this.labelFleet2.Text = "第二";\r
// \r
- // labelBucketHistory\r
- // \r
- this.labelBucketHistory.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;\r
- this.labelBucketHistory.Location = new System.Drawing.Point(106, 36);\r
- this.labelBucketHistory.Name = "labelBucketHistory";\r
- this.labelBucketHistory.Size = new System.Drawing.Size(61, 28);\r
- this.labelBucketHistory.TabIndex = 42;\r
- this.labelBucketHistory.Text = "今日\r\n今週";\r
- this.labelBucketHistory.TextAlign = System.Drawing.ContentAlignment.MiddleRight;\r
- this.labelBucketHistory.Visible = false;\r
- this.labelBucketHistory.Click += new System.EventHandler(this.labelBucketHistory_Click);\r
- // \r
// label36\r
// \r
this.label36.AutoSize = true;\r
this.labelQuestCount.TabIndex = 57;\r
this.labelQuestCount.Text = "0";\r
// \r
+ // kdockPanel\r
+ // \r
+ this.kdockPanel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;\r
+ this.kdockPanel.Location = new System.Drawing.Point(149, 209);\r
+ this.kdockPanel.Name = "kdockPanel";\r
+ this.kdockPanel.Size = new System.Drawing.Size(77, 64);\r
+ this.kdockPanel.TabIndex = 60;\r
+ // \r
// panelRepairList\r
// \r
this.panelRepairList.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;\r
// ndockPanel\r
// \r
this.ndockPanel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;\r
+ this.ndockPanel.Cursor = System.Windows.Forms.Cursors.Hand;\r
this.ndockPanel.Location = new System.Drawing.Point(6, 209);\r
this.ndockPanel.Name = "ndockPanel";\r
this.ndockPanel.Size = new System.Drawing.Size(140, 64);\r
// missionPanel\r
// \r
this.missionPanel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;\r
+ this.missionPanel.Cursor = System.Windows.Forms.Cursors.Hand;\r
this.missionPanel.Location = new System.Drawing.Point(6, 290);\r
this.missionPanel.Name = "missionPanel";\r
this.missionPanel.Size = new System.Drawing.Size(220, 49);\r
this.questPanel.Size = new System.Drawing.Size(220, 94);\r
this.questPanel.TabIndex = 56;\r
// \r
- // kdockPanel\r
+ // hqPanel\r
// \r
- this.kdockPanel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;\r
- this.kdockPanel.Location = new System.Drawing.Point(149, 209);\r
- this.kdockPanel.Name = "kdockPanel";\r
- this.kdockPanel.Size = new System.Drawing.Size(77, 64);\r
- this.kdockPanel.TabIndex = 60;\r
+ this.hqPanel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;\r
+ this.hqPanel.Location = new System.Drawing.Point(6, 6);\r
+ this.hqPanel.Name = "hqPanel";\r
+ this.hqPanel.Size = new System.Drawing.Size(220, 33);\r
+ this.hqPanel.TabIndex = 61;\r
// \r
// MainForm\r
// \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.hqPanel);\r
this.Controls.Add(this.kdockPanel);\r
this.Controls.Add(this.panelRepairList);\r
this.Controls.Add(this.ndockPanel);\r
this.Controls.Add(this.labelAkashiRepair);\r
this.Controls.Add(this.labelAkashiRepairTimer);\r
this.Controls.Add(this.panelMaterialHistory);\r
- this.Controls.Add(this.labelBucketHistory);\r
this.Controls.Add(this.labelBullSq4);\r
this.Controls.Add(this.labelFuelSq4);\r
this.Controls.Add(this.labelBullSq3);\r
this.Controls.Add(this.labelNDock);\r
this.Controls.Add(this.panelShipInfo);\r
this.Controls.Add(this.labelFleet1);\r
- this.Controls.Add(this.panelHeadquarters);\r
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;\r
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));\r
this.MaximizeBox = false;\r
this.Load += new System.EventHandler(this.MainForm_Load);\r
this.Shown += new System.EventHandler(this.MainForm_Shown);\r
this.Resize += new System.EventHandler(this.MainForm_Resize);\r
- this.panelHeadquarters.ResumeLayout(false);\r
- this.panelHeadquarters.PerformLayout();\r
this.panelShipInfo.ResumeLayout(false);\r
this.panelShipInfo.PerformLayout();\r
this.panelBattleInfo.ResumeLayout(false);\r
}\r
\r
#endregion\r
-\r
- private System.Windows.Forms.Panel panelHeadquarters;\r
- private System.Windows.Forms.Label labelNumOfBuckets;\r
- private System.Windows.Forms.Label label3;\r
- private System.Windows.Forms.Label labelNumOfEquips;\r
- private System.Windows.Forms.Label label2;\r
- private System.Windows.Forms.Label labelNumOfShips;\r
- private System.Windows.Forms.Label label1;\r
private System.Windows.Forms.Panel panelShipInfo;\r
private System.Windows.Forms.Label labelNDock;\r
private System.Windows.Forms.Label labelConstruct;\r
private System.Windows.Forms.Label labelFleet2;\r
private System.Windows.Forms.Label labelFighterPower;\r
private System.Windows.Forms.Label labelFighterPowerCaption;\r
- private System.Windows.Forms.Label labelLogin;\r
- private System.Windows.Forms.Label labelAchievement;\r
- private System.Windows.Forms.Label label28;\r
- private System.Windows.Forms.Label labelBucketHistoryButton;\r
- private System.Windows.Forms.Label labelBucketHistory;\r
private System.Windows.Forms.Panel panelMaterialHistory;\r
private System.Windows.Forms.Label labelBouxiteHistory;\r
private System.Windows.Forms.Label labelSteelHistory;\r
private System.Windows.Forms.ToolStripMenuItem listToolStripMenuItem;\r
private System.Windows.Forms.Label labelLoS;\r
private System.Windows.Forms.Label labelLoSCaption;\r
- private System.Windows.Forms.Label labelPlayLog;\r
private System.Windows.Forms.Panel panelBattleInfo;\r
private System.Windows.Forms.Label labelEnemyFighterPower;\r
private System.Windows.Forms.Label labelEnemyFighterPowerCaption;\r
private MissionPanel missionPanel;\r
private NDockPanel ndockPanel;\r
private KDockPanel kdockPanel;\r
+ private HqPanel hqPanel;\r
}\r
}\r
\r
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
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
{\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
{\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
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
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
}\r
if (_playLog == null || _configDialog.Visible)\r
{\r
- labelPlayLog.Visible = false;\r
+ hqPanel.PlayLog.Visible = false;\r
return;\r
}\r
PlayLog();\r
{\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
\r
private void UpdateItemInfo()\r
{\r
+ hqPanel.Update();\r
_numberAndHistory.Update();\r
if (_listFormGroup.Visible)\r
_listFormGroup.UpdateList();\r
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
});\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
--- /dev/null
+using System;\r
+using System.Drawing;\r
+using System.Windows.Forms;\r
+using KancolleSniffer.Model;\r
+using KancolleSniffer.Properties;\r
+\r
+namespace KancolleSniffer.View\r
+{\r
+ public class HqPanel : PanelWithToolTip\r
+ {\r
+ public Label Login { get; } = new Label\r
+ {\r
+ Location = new Point(6, 2),\r
+ Size = new Size(210, 28),\r
+ Font = new Font("MS UI Gothic", 9.75f),\r
+ TextAlign = ContentAlignment.MiddleLeft,\r
+ Text = "艦これにログインしてください。\r\nログイン中ならログインし直してください。"\r
+ };\r
+\r
+ public Label PlayLog { get; } = new Label\r
+ {\r
+ Location = new Point(207, 3),\r
+ AutoSize = true,\r
+ Text = "*",\r
+ Visible = false\r
+ };\r
+\r
+ private readonly Label _bucketHistoryButton = new Label\r
+ {\r
+ Location = new Point(146, 15),\r
+ Size = new Size(14, 14),\r
+ BorderStyle = BorderStyle.FixedSingle,\r
+ Image = Resources.arrow_virtical\r
+ };\r
+\r
+ private readonly Label _achievement = new Label\r
+ {\r
+ Location = new Point(166, 18),\r
+ Size = new Size(33, 12),\r
+ TextAlign = ContentAlignment.MiddleRight\r
+ };\r
+\r
+ private readonly Label _numOfBuckets = new Label\r
+ {\r
+ Location = new Point(116, 18),\r
+ Size = new Size(30, 12),\r
+ Text = "0",\r
+ TextAlign = ContentAlignment.MiddleRight\r
+ };\r
+\r
+ private readonly Label _numOfEquips = new Label\r
+ {\r
+ Location = new Point(46, 18),\r
+ Size = new Size(60, 12),\r
+ Text = "0/0",\r
+ TextAlign = ContentAlignment.MiddleRight\r
+ };\r
+\r
+ private readonly Label _numOfShips = new Label\r
+ {\r
+ Location = new Point(0, 18),\r
+ Size = new Size(48, 12),\r
+ Text = "0/0",\r
+ TextAlign = ContentAlignment.MiddleRight\r
+ };\r
+\r
+ private readonly Label _bucketHistory = new Label\r
+ {\r
+ BorderStyle = BorderStyle.FixedSingle,\r
+ Name = "labelBucketHistory",\r
+ Size = new Size(61, 28),\r
+ Text = "今日\r\n今週",\r
+ TextAlign = ContentAlignment.MiddleRight,\r
+ Visible = false\r
+ };\r
+\r
+ private readonly Control[] _captions =\r
+ {\r
+ new Label\r
+ {\r
+ Location = new Point(170, 3),\r
+ AutoSize = true,\r
+ Text = "戦果"\r
+ },\r
+ new Label\r
+ {\r
+ Location = new Point(113, 3),\r
+ AutoSize = true,\r
+ Text = "バケツ"\r
+ },\r
+ new Label\r
+ {\r
+ Location = new Point(65, 3),\r
+ AutoSize = true,\r
+ Text = "装備数"\r
+ },\r
+ new Label\r
+ {\r
+ Location = new Point(7, 3),\r
+ AutoSize = true,\r
+ Text = "艦娘数"\r
+ }\r
+ };\r
+\r
+ public MainForm.Context Context { private get; set; }\r
+\r
+ public HqPanel()\r
+ {\r
+ BorderStyle = BorderStyle.FixedSingle;\r
+ Controls.AddRange(new Control[]\r
+ {Login, PlayLog, _bucketHistoryButton, _achievement, _numOfBuckets, _numOfEquips, _numOfShips});\r
+ Controls.AddRange(_captions);\r
+ _bucketHistoryButton.Click += BucketHistoryButtonClick;\r
+ _numOfBuckets.Click += BucketHistoryButtonClick;\r
+ _bucketHistory.Click += BucketHistoryButtonClick;\r
+ }\r
+\r
+ protected override void OnParentChanged(EventArgs e)\r
+ {\r
+ base.OnParentChanged(e);\r
+ _bucketHistory.Location =\r
+ new Point(Location.X + Parent.Location.X + 100, Location.Y + Parent.Location.Y + 30);\r
+ Parent.Controls.Add(_bucketHistory);\r
+ }\r
+\r
+ public new void Update()\r
+ {\r
+ UpdateNumOfShips();\r
+ UpdateNumOfEquips();\r
+ Context.Submitter.Flash();\r
+ UpdateNumOfBuckets();\r
+ UpdateBucketHistory();\r
+ UpdateAchievement();\r
+ }\r
+\r
+ private void UpdateNumOfBuckets()\r
+ {\r
+ _numOfBuckets.Text = Context.Sniffer.Material.MaterialHistory[(int)Material.Bucket].Now.ToString("D");\r
+ }\r
+\r
+ private void UpdateAchievement()\r
+ {\r
+ var ac = Context.Sniffer.Achievement.Value;\r
+ if (ac >= 10000)\r
+ ac = 9999;\r
+ _achievement.Text = ac >= 1000 ? ((int)ac).ToString("D") : ac.ToString("F1");\r
+ ToolTip.SetToolTip(_achievement,\r
+ "今月 " + Context.Sniffer.Achievement.ValueOfMonth.ToString("F1") + "\n" +\r
+ "EO " + Context.Sniffer.ExMap.Achievement);\r
+ }\r
+\r
+ private void UpdateNumOfShips()\r
+ {\r
+ var ship = Context.Sniffer.ShipCounter;\r
+ _numOfShips.Text = $"{ship.Now:D}/{ship.Max:D}";\r
+ _numOfShips.ForeColor = ship.TooMany ? CUDColors.Red : Color.Black;\r
+ if (ship.Alarm)\r
+ {\r
+ var message = $"残り{ship.Rest:D}隻";\r
+ Context.Submitter.Enqueue("艦娘数超過", message);\r
+ ship.Alarm = false;\r
+ }\r
+ }\r
+\r
+ private void UpdateNumOfEquips()\r
+ {\r
+ var item = Context.Sniffer.ItemCounter;\r
+ _numOfEquips.Text = $"{item.Now:D}/{item.Max:D}";\r
+ _numOfEquips.ForeColor = item.TooMany ? CUDColors.Red : Color.Black;\r
+ if (item.Alarm)\r
+ {\r
+ var message = $"残り{item.Rest:D}個";\r
+ Context.Submitter.Enqueue("装備数超過", message);\r
+ item.Alarm = false;\r
+ }\r
+ }\r
+\r
+ private void UpdateBucketHistory()\r
+ {\r
+ var count = Context.Sniffer.Material.MaterialHistory[(int)Material.Bucket];\r
+ var day = CutOverflow(count.Now - count.BegOfDay, 999);\r
+ var week = CutOverflow(count.Now - count.BegOfWeek, 999);\r
+ _bucketHistory.Text = $"{day:+#;-#;±0} 今日\n{week:+#;-#;±0} 今週";\r
+ }\r
+\r
+ private void BucketHistoryButtonClick(object sender, EventArgs e)\r
+ {\r
+ if (_bucketHistory.Visible)\r
+ {\r
+ _bucketHistory.Visible = false;\r
+ _bucketHistoryButton.BackColor = DefaultBackColor;\r
+ }\r
+ else\r
+ {\r
+ _bucketHistory.Visible = true;\r
+ _bucketHistory.BringToFront();\r
+ _bucketHistoryButton.BackColor = CustomColors.ActiveButtonColor;\r
+ }\r
+ }\r
+\r
+ private static int CutOverflow(int value, int limit)\r
+ {\r
+ if (value > limit)\r
+ return limit;\r
+ if (value < -limit)\r
+ return -limit;\r
+ return value;\r
+ }\r
+ }\r
+}
\ No newline at end of file
{\r
public class NumberAndHistoryLabels\r
{\r
- public Label NumOfShips { get; set; }\r
- public Label NumOfEquips { get; set; }\r
- public Label NumOfBuckets { get; set; }\r
- public Label BucketHistory { get; set; }\r
- public Label Achievement { get; set; }\r
public Label FuelHistory { get; set; }\r
public Label BulletHistory { get; set; }\r
public Label SteelHistory { get; set; }\r
public ToolTip ToolTip { get; set; }\r
}\r
\r
- public interface INotifySubmitter\r
- {\r
- void Flash();\r
- void Enqueue(string key, string subject);\r
- }\r
-\r
public class NumberAndHistory\r
{\r
private readonly NumberAndHistoryLabels _labels;\r
private readonly Sniffer _sniffer;\r
private readonly ToolTip _toolTip;\r
- private readonly INotifySubmitter _submitter;\r
+ private readonly MainForm.INotifySubmitter _submitter;\r
\r
- public NumberAndHistory(NumberAndHistoryLabels labels, Sniffer sniffer, INotifySubmitter submitter)\r
+ public NumberAndHistory(NumberAndHistoryLabels labels, Sniffer sniffer, MainForm.INotifySubmitter submitter)\r
{\r
_labels = labels;\r
_sniffer = sniffer;\r
\r
public void Update()\r
{\r
- UpdateNumOfShips();\r
- UpdateNumOfEquips();\r
- _submitter.Flash();\r
- UpdateNumOfBuckets();\r
- UpdateBucketHistory();\r
- UpdateAchievement();\r
UpdateMaterialHistory();\r
}\r
\r
- private void UpdateNumOfBuckets()\r
- {\r
- _labels.NumOfBuckets.Text = _sniffer.Material.MaterialHistory[(int)Material.Bucket].Now.ToString("D");\r
- }\r
-\r
- private void UpdateAchievement()\r
- {\r
- var ac = _sniffer.Achievement.Value;\r
- if (ac >= 10000)\r
- ac = 9999;\r
- _labels.Achievement.Text = ac >= 1000 ? ((int)ac).ToString("D") : ac.ToString("F1");\r
- _toolTip.SetToolTip(_labels.Achievement,\r
- "今月 " + _sniffer.Achievement.ValueOfMonth.ToString("F1") + "\n" +\r
- "EO " + _sniffer.ExMap.Achievement);\r
- }\r
-\r
- public void UpdateNumOfShips()\r
- {\r
- var ship = _sniffer.ShipCounter;\r
- _labels.NumOfShips.Text = $"{ship.Now:D}/{ship.Max:D}";\r
- _labels.NumOfShips.ForeColor = ship.TooMany ? CUDColors.Red : Color.Black;\r
- if (ship.Alarm)\r
- {\r
- var message = $"残り{ship.Rest:D}隻";\r
- _submitter.Enqueue("艦娘数超過", message);\r
- ship.Alarm = false;\r
- }\r
- }\r
-\r
- public void UpdateNumOfEquips()\r
- {\r
- var item = _sniffer.ItemCounter;\r
- _labels.NumOfEquips.Text = $"{item.Now:D}/{item.Max:D}";\r
- _labels.NumOfEquips.ForeColor = item.TooMany ? CUDColors.Red : Color.Black;\r
- if (item.Alarm)\r
- {\r
- var message = $"残り{item.Rest:D}個";\r
- _submitter.Enqueue("装備数超過", message);\r
- item.Alarm = false;\r
- }\r
- }\r
-\r
- private void UpdateBucketHistory()\r
- {\r
- var count = _sniffer.Material.MaterialHistory[(int)Material.Bucket];\r
- var day = CutOverflow(count.Now - count.BegOfDay, 999);\r
- var week = CutOverflow(count.Now - count.BegOfWeek, 999);\r
- _labels.BucketHistory.Text = $"{day:+#;-#;±0} 今日\n{week:+#;-#;±0} 今週";\r
- }\r
-\r
private void UpdateMaterialHistory()\r
{\r
var labels = new[] {_labels.FuelHistory, _labels.BulletHistory, _labels.SteelHistory, _labels.BauxiteHistory };\r