OSDN Git Service

QuestPanelのダブルクリックの自前実装をやめる
[kancollesniffer/KancolleSniffer.git] / KancolleSniffer / View / ContextMenuMain.cs
1 using System;\r
2 using System.Drawing;\r
3 using System.Linq;\r
4 using System.Windows.Forms;\r
5 \r
6 namespace KancolleSniffer.View\r
7 {\r
8     public class ContextMenuMain : ContextMenuStrip\r
9     {\r
10         private readonly ToolStripMenuItem[] _menuItems =\r
11         {\r
12             new ToolStripMenuItem\r
13             {\r
14                 Name = "listToolStripMenuItem",\r
15                 Size = new Size(125, 22),\r
16                 Text = "一覧(&L)"\r
17             },\r
18             new ToolStripMenuItem\r
19             {\r
20                 Name = "LogToolStripMenuItem",\r
21                 Size = new Size(125, 22),\r
22                 Text = "報告書(&R)"\r
23             },\r
24             new ToolStripMenuItem\r
25             {\r
26                 Name = "CaptureToolStripMenuItem",\r
27                 Size = new Size(125, 22),\r
28                 Text = "撮影(&C)"\r
29             },\r
30             new ToolStripMenuItem\r
31             {\r
32                 Name = "ConfigToolStripMenuItem",\r
33                 Size = new Size(125, 22),\r
34                 Text = "設定(&O)"\r
35             },\r
36             new ToolStripMenuItem\r
37             {\r
38                 Name = "ExitToolStripMenuItem",\r
39                 Size = new Size(125, 22),\r
40                 Text = "終了(&X)"\r
41             }\r
42         };\r
43 \r
44         public ContextMenuMain()\r
45         {\r
46             // ReSharper disable once VirtualMemberCallInConstructor\r
47             Items.AddRange(_menuItems.ToArray<ToolStripItem>());\r
48         }\r
49 \r
50         public void SetClickHandlers(Action list, Action report, Action capture,\r
51             Action config, Action exit)\r
52         {\r
53             foreach (var entry in _menuItems.Zip(new []{list, report, capture, config, exit}, (item, handler) => new {item, handler}))\r
54                 entry.item.Click += (sender, e) => entry.handler();\r
55         }\r
56     }\r
57 }