• R/O
  • SSH
  • HTTPS

lsharp: Commit


Commit MetaInfo

Revision14 (tree)
Time2011-04-21 22:25:32
Authoraqua877

Log Message

(empty log message)

Change Summary

Incremental Difference

--- LSchedule/MainWindow.Designer.cs (nonexistent)
+++ LSchedule/MainWindow.Designer.cs (revision 14)
@@ -0,0 +1,569 @@
1+namespace Aqua877.WinApp.IronLivetube.LSchedule
2+{
3+ partial class MainWindow
4+ {
5+ /// <summary>
6+ /// 必要なデザイナー変数です。
7+ /// </summary>
8+ private System.ComponentModel.IContainer components = null;
9+
10+ /// <summary>
11+ /// 使用中のリソースをすべてクリーンアップします。
12+ /// </summary>
13+ /// <param name="disposing">マネージ リソースが破棄される場合 true、破棄されない場合は false です。</param>
14+ protected override void Dispose(bool disposing)
15+ {
16+ if (disposing && (components != null))
17+ {
18+ components.Dispose();
19+ }
20+ base.Dispose(disposing);
21+ }
22+
23+ #region Windows フォーム デザイナーで生成されたコード
24+
25+ /// <summary>
26+ /// デザイナー サポートに必要なメソッドです。このメソッドの内容を
27+ /// コード エディターで変更しないでください。
28+ /// </summary>
29+ private void InitializeComponent()
30+ {
31+ this.components = new System.ComponentModel.Container();
32+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainWindow));
33+ this.MenuBar = new System.Windows.Forms.MenuStrip();
34+ this.FileMenu = new System.Windows.Forms.ToolStripMenuItem();
35+ this.SettingsMenu = new System.Windows.Forms.ToolStripMenuItem();
36+ this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
37+ this.ExitMenu = new System.Windows.Forms.ToolStripMenuItem();
38+ this.EditMenu = new System.Windows.Forms.ToolStripMenuItem();
39+ this.CopyMenu = new System.Windows.Forms.ToolStripMenuItem();
40+ this.CopyLiveAuthorMenu = new System.Windows.Forms.ToolStripMenuItem();
41+ this.CopyLiveTitleMenu = new System.Windows.Forms.ToolStripMenuItem();
42+ this.CopyLiveUrlMenu = new System.Windows.Forms.ToolStripMenuItem();
43+ this.OperationMenu = new System.Windows.Forms.ToolStripMenuItem();
44+ this.SetFavoriteMenu = new System.Windows.Forms.ToolStripMenuItem();
45+ this.SetUnFavoriteMenu = new System.Windows.Forms.ToolStripMenuItem();
46+ this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
47+ this.SetFilteringMenu = new System.Windows.Forms.ToolStripMenuItem();
48+ this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
49+ this.OpenMenu = new System.Windows.Forms.ToolStripMenuItem();
50+ this.OpenLiveMenu = new System.Windows.Forms.ToolStripMenuItem();
51+ this.OpenLivePageMenu = new System.Windows.Forms.ToolStripMenuItem();
52+ this.OpenLiveWikiMenu = new System.Windows.Forms.ToolStripMenuItem();
53+ this.toolStripSeparator7 = new System.Windows.Forms.ToolStripSeparator();
54+ this.InvokeIronLivetubeMenu = new System.Windows.Forms.ToolStripMenuItem();
55+ this.HelpMenu = new System.Windows.Forms.ToolStripMenuItem();
56+ this.ShowVersionInfoMenu = new System.Windows.Forms.ToolStripMenuItem();
57+ this.StatusBar = new System.Windows.Forms.StatusStrip();
58+ this.StatusBarText = new System.Windows.Forms.ToolStripStatusLabel();
59+ this.LiveList = new System.Windows.Forms.ListView();
60+ this.LiveTitle = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
61+ this.LiveAuthor = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
62+ this.LiveListeners = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
63+ this.LiveVisitors = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
64+ this.LiveComments = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
65+ this.LiveStart = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
66+ this.LiveTags = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
67+ this.LiveListMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
68+ this.CopyMenuStrip = new System.Windows.Forms.ToolStripMenuItem();
69+ this.CopyLiveTitleMenuStrip = new System.Windows.Forms.ToolStripMenuItem();
70+ this.CopyLiveAuthorMenuStrip = new System.Windows.Forms.ToolStripMenuItem();
71+ this.CopyLiveUrlMenuStrip = new System.Windows.Forms.ToolStripMenuItem();
72+ this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
73+ this.SetFavoriteMenuStrip = new System.Windows.Forms.ToolStripMenuItem();
74+ this.SetUnFavoriteMenuStrip = new System.Windows.Forms.ToolStripMenuItem();
75+ this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator();
76+ this.SetFilteringMenuStrip = new System.Windows.Forms.ToolStripMenuItem();
77+ this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator();
78+ this.OpenMenuStrip = new System.Windows.Forms.ToolStripMenuItem();
79+ this.OpenLiveMenuStrip = new System.Windows.Forms.ToolStripMenuItem();
80+ this.OpenLivePageMenuStrip = new System.Windows.Forms.ToolStripMenuItem();
81+ this.OpenLiveWikiMenuStrip = new System.Windows.Forms.ToolStripMenuItem();
82+ this.toolStripSeparator8 = new System.Windows.Forms.ToolStripSeparator();
83+ this.InvokeIronLivetubeMenuStrip = new System.Windows.Forms.ToolStripMenuItem();
84+ this.LiveThumbnails = new System.Windows.Forms.ImageList(this.components);
85+ this.TaskTrayIcon = new System.Windows.Forms.NotifyIcon(this.components);
86+ this.MenuBar.SuspendLayout();
87+ this.StatusBar.SuspendLayout();
88+ this.LiveListMenuStrip.SuspendLayout();
89+ this.SuspendLayout();
90+ //
91+ // MenuBar
92+ //
93+ this.MenuBar.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
94+ this.FileMenu,
95+ this.EditMenu,
96+ this.OperationMenu,
97+ this.HelpMenu});
98+ this.MenuBar.Location = new System.Drawing.Point(0, 0);
99+ this.MenuBar.Name = "MenuBar";
100+ this.MenuBar.Padding = new System.Windows.Forms.Padding(7, 3, 0, 3);
101+ this.MenuBar.Size = new System.Drawing.Size(584, 28);
102+ this.MenuBar.TabIndex = 0;
103+ this.MenuBar.Text = "menuStrip1";
104+ //
105+ // FileMenu
106+ //
107+ this.FileMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
108+ this.SettingsMenu,
109+ this.toolStripSeparator3,
110+ this.ExitMenu});
111+ this.FileMenu.Name = "FileMenu";
112+ this.FileMenu.Size = new System.Drawing.Size(85, 22);
113+ this.FileMenu.Text = "ファイル(&F)";
114+ //
115+ // SettingsMenu
116+ //
117+ this.SettingsMenu.Name = "SettingsMenu";
118+ this.SettingsMenu.Size = new System.Drawing.Size(152, 22);
119+ this.SettingsMenu.Text = "設定(&S)";
120+ this.SettingsMenu.Click += new System.EventHandler(this.SettingsMenu_Click);
121+ //
122+ // toolStripSeparator3
123+ //
124+ this.toolStripSeparator3.Name = "toolStripSeparator3";
125+ this.toolStripSeparator3.Size = new System.Drawing.Size(149, 6);
126+ //
127+ // ExitMenu
128+ //
129+ this.ExitMenu.Name = "ExitMenu";
130+ this.ExitMenu.Size = new System.Drawing.Size(152, 22);
131+ this.ExitMenu.Text = "終了(&X)";
132+ this.ExitMenu.Click += new System.EventHandler(this.ExitMenu_Click);
133+ //
134+ // EditMenu
135+ //
136+ this.EditMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
137+ this.CopyMenu,
138+ this.CopyLiveAuthorMenu,
139+ this.CopyLiveTitleMenu,
140+ this.CopyLiveUrlMenu});
141+ this.EditMenu.Name = "EditMenu";
142+ this.EditMenu.Size = new System.Drawing.Size(61, 22);
143+ this.EditMenu.Text = "編集(&E)";
144+ //
145+ // CopyMenu
146+ //
147+ this.CopyMenu.Name = "CopyMenu";
148+ this.CopyMenu.Size = new System.Drawing.Size(190, 22);
149+ this.CopyMenu.Text = "コピー(&C)";
150+ this.CopyMenu.Click += new System.EventHandler(this.CopyMenu_Click);
151+ //
152+ // CopyLiveAuthorMenu
153+ //
154+ this.CopyLiveAuthorMenu.Name = "CopyLiveAuthorMenu";
155+ this.CopyLiveAuthorMenu.Size = new System.Drawing.Size(190, 22);
156+ this.CopyLiveAuthorMenu.Text = "配信者名をコピー(&B)";
157+ this.CopyLiveAuthorMenu.Click += new System.EventHandler(this.CopyLiveAuthorMenu_Click);
158+ //
159+ // CopyLiveTitleMenu
160+ //
161+ this.CopyLiveTitleMenu.Name = "CopyLiveTitleMenu";
162+ this.CopyLiveTitleMenu.Size = new System.Drawing.Size(190, 22);
163+ this.CopyLiveTitleMenu.Text = "配信名をコピー(&N)";
164+ this.CopyLiveTitleMenu.Click += new System.EventHandler(this.CopyLiveTitleMenu_Click);
165+ //
166+ // CopyLiveUrlMenu
167+ //
168+ this.CopyLiveUrlMenu.Name = "CopyLiveUrlMenu";
169+ this.CopyLiveUrlMenu.Size = new System.Drawing.Size(190, 22);
170+ this.CopyLiveUrlMenu.Text = "URLをコピー(&U)";
171+ this.CopyLiveUrlMenu.Click += new System.EventHandler(this.CopyUrlMenu_Click);
172+ //
173+ // OperationMenu
174+ //
175+ this.OperationMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
176+ this.SetFavoriteMenu,
177+ this.SetUnFavoriteMenu,
178+ this.toolStripSeparator4,
179+ this.SetFilteringMenu,
180+ this.toolStripSeparator2,
181+ this.OpenMenu});
182+ this.OperationMenu.Name = "OperationMenu";
183+ this.OperationMenu.Size = new System.Drawing.Size(63, 22);
184+ this.OperationMenu.Text = "操作(&O)";
185+ //
186+ // SetFavoriteMenu
187+ //
188+ this.SetFavoriteMenu.Name = "SetFavoriteMenu";
189+ this.SetFavoriteMenu.Size = new System.Drawing.Size(167, 22);
190+ this.SetFavoriteMenu.Text = "通知登録(&F)";
191+ this.SetFavoriteMenu.Click += new System.EventHandler(this.SetFavoriteMenu_Click);
192+ //
193+ // SetUnFavoriteMenu
194+ //
195+ this.SetUnFavoriteMenu.Name = "SetUnFavoriteMenu";
196+ this.SetUnFavoriteMenu.Size = new System.Drawing.Size(167, 22);
197+ this.SetUnFavoriteMenu.Text = "通知登録解除(&U)";
198+ this.SetUnFavoriteMenu.Click += new System.EventHandler(this.SetUnFavoriteMenu_Click);
199+ //
200+ // toolStripSeparator4
201+ //
202+ this.toolStripSeparator4.Name = "toolStripSeparator4";
203+ this.toolStripSeparator4.Size = new System.Drawing.Size(164, 6);
204+ //
205+ // SetFilteringMenu
206+ //
207+ this.SetFilteringMenu.Name = "SetFilteringMenu";
208+ this.SetFilteringMenu.Size = new System.Drawing.Size(167, 22);
209+ this.SetFilteringMenu.Text = "除外登録(&N)";
210+ this.SetFilteringMenu.Click += new System.EventHandler(this.SetFilteringMenu_Click);
211+ //
212+ // toolStripSeparator2
213+ //
214+ this.toolStripSeparator2.Name = "toolStripSeparator2";
215+ this.toolStripSeparator2.Size = new System.Drawing.Size(164, 6);
216+ //
217+ // OpenMenu
218+ //
219+ this.OpenMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
220+ this.OpenLiveMenu,
221+ this.OpenLivePageMenu,
222+ this.OpenLiveWikiMenu,
223+ this.toolStripSeparator7,
224+ this.InvokeIronLivetubeMenu});
225+ this.OpenMenu.Name = "OpenMenu";
226+ this.OpenMenu.Size = new System.Drawing.Size(167, 22);
227+ this.OpenMenu.Text = "開く(&O)";
228+ //
229+ // OpenLiveMenu
230+ //
231+ this.OpenLiveMenu.Name = "OpenLiveMenu";
232+ this.OpenLiveMenu.Size = new System.Drawing.Size(201, 22);
233+ this.OpenLiveMenu.Text = "配信を開く(&L)";
234+ this.OpenLiveMenu.Click += new System.EventHandler(this.OpenLiveMenu_Click);
235+ //
236+ // OpenLivePageMenu
237+ //
238+ this.OpenLivePageMenu.Name = "OpenLivePageMenu";
239+ this.OpenLivePageMenu.Size = new System.Drawing.Size(201, 22);
240+ this.OpenLivePageMenu.Text = "配信者ページを開く(&P)";
241+ this.OpenLivePageMenu.Click += new System.EventHandler(this.OpenLivePageMenu_Click);
242+ //
243+ // OpenLiveWikiMenu
244+ //
245+ this.OpenLiveWikiMenu.Name = "OpenLiveWikiMenu";
246+ this.OpenLiveWikiMenu.Size = new System.Drawing.Size(201, 22);
247+ this.OpenLiveWikiMenu.Text = "配信者Wikiを開く(&W)";
248+ this.OpenLiveWikiMenu.Click += new System.EventHandler(this.OpenLiveWikiMenu_Click);
249+ //
250+ // toolStripSeparator7
251+ //
252+ this.toolStripSeparator7.Name = "toolStripSeparator7";
253+ this.toolStripSeparator7.Size = new System.Drawing.Size(198, 6);
254+ //
255+ // InvokeIronLivetubeMenu
256+ //
257+ this.InvokeIronLivetubeMenu.Name = "InvokeIronLivetubeMenu";
258+ this.InvokeIronLivetubeMenu.Size = new System.Drawing.Size(201, 22);
259+ this.InvokeIronLivetubeMenu.Text = "IronLivetubeを起動(&I)";
260+ this.InvokeIronLivetubeMenu.Click += new System.EventHandler(this.InvokeIronLivetubeMenu_Click);
261+ //
262+ // HelpMenu
263+ //
264+ this.HelpMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
265+ this.ShowVersionInfoMenu});
266+ this.HelpMenu.Name = "HelpMenu";
267+ this.HelpMenu.Size = new System.Drawing.Size(75, 22);
268+ this.HelpMenu.Text = "ヘルプ(&H)";
269+ //
270+ // ShowVersionInfoMenu
271+ //
272+ this.ShowVersionInfoMenu.Name = "ShowVersionInfoMenu";
273+ this.ShowVersionInfoMenu.Size = new System.Drawing.Size(178, 22);
274+ this.ShowVersionInfoMenu.Text = "バージョン情報(&V)";
275+ this.ShowVersionInfoMenu.Click += new System.EventHandler(this.ShowVersionInfoMenu_Click);
276+ //
277+ // StatusBar
278+ //
279+ this.StatusBar.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
280+ this.StatusBarText});
281+ this.StatusBar.Location = new System.Drawing.Point(0, 340);
282+ this.StatusBar.Name = "StatusBar";
283+ this.StatusBar.Padding = new System.Windows.Forms.Padding(1, 0, 16, 0);
284+ this.StatusBar.Size = new System.Drawing.Size(584, 23);
285+ this.StatusBar.TabIndex = 1;
286+ this.StatusBar.Text = "statusStrip1";
287+ //
288+ // StatusBarText
289+ //
290+ this.StatusBarText.Name = "StatusBarText";
291+ this.StatusBarText.Size = new System.Drawing.Size(12, 18);
292+ this.StatusBarText.Text = " ";
293+ //
294+ // LiveList
295+ //
296+ this.LiveList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
297+ this.LiveTitle,
298+ this.LiveAuthor,
299+ this.LiveListeners,
300+ this.LiveVisitors,
301+ this.LiveComments,
302+ this.LiveStart,
303+ this.LiveTags});
304+ this.LiveList.ContextMenuStrip = this.LiveListMenuStrip;
305+ this.LiveList.Dock = System.Windows.Forms.DockStyle.Fill;
306+ this.LiveList.FullRowSelect = true;
307+ this.LiveList.LargeImageList = this.LiveThumbnails;
308+ this.LiveList.Location = new System.Drawing.Point(0, 28);
309+ this.LiveList.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
310+ this.LiveList.MultiSelect = false;
311+ this.LiveList.Name = "LiveList";
312+ this.LiveList.Size = new System.Drawing.Size(584, 312);
313+ this.LiveList.TabIndex = 2;
314+ this.LiveList.UseCompatibleStateImageBehavior = false;
315+ this.LiveList.View = System.Windows.Forms.View.Details;
316+ this.LiveList.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.LiveList_ColumnClick);
317+ this.LiveList.DoubleClick += new System.EventHandler(this.LiveList_DoubleClick);
318+ //
319+ // LiveTitle
320+ //
321+ this.LiveTitle.Text = "配信名";
322+ this.LiveTitle.Width = 300;
323+ //
324+ // LiveAuthor
325+ //
326+ this.LiveAuthor.Text = "配信者名";
327+ this.LiveAuthor.Width = 100;
328+ //
329+ // LiveListeners
330+ //
331+ this.LiveListeners.Text = "見ている人";
332+ this.LiveListeners.Width = 80;
333+ //
334+ // LiveVisitors
335+ //
336+ this.LiveVisitors.Text = "見た人";
337+ //
338+ // LiveComments
339+ //
340+ this.LiveComments.Text = "コメント数";
341+ //
342+ // LiveStart
343+ //
344+ this.LiveStart.Text = "配信開始";
345+ this.LiveStart.Width = 140;
346+ //
347+ // LiveTags
348+ //
349+ this.LiveTags.Text = "タグ";
350+ this.LiveTags.Width = 200;
351+ //
352+ // LiveListMenuStrip
353+ //
354+ this.LiveListMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
355+ this.CopyMenuStrip,
356+ this.CopyLiveTitleMenuStrip,
357+ this.CopyLiveAuthorMenuStrip,
358+ this.CopyLiveUrlMenuStrip,
359+ this.toolStripSeparator1,
360+ this.SetFavoriteMenuStrip,
361+ this.SetUnFavoriteMenuStrip,
362+ this.toolStripSeparator6,
363+ this.SetFilteringMenuStrip,
364+ this.toolStripSeparator5,
365+ this.OpenMenuStrip});
366+ this.LiveListMenuStrip.Name = "LiveListMenuStrip";
367+ this.LiveListMenuStrip.Size = new System.Drawing.Size(191, 198);
368+ //
369+ // CopyMenuStrip
370+ //
371+ this.CopyMenuStrip.Name = "CopyMenuStrip";
372+ this.CopyMenuStrip.Size = new System.Drawing.Size(190, 22);
373+ this.CopyMenuStrip.Text = "コピー(&C)";
374+ this.CopyMenuStrip.Click += new System.EventHandler(this.CopyMenuStrip_Click);
375+ //
376+ // CopyLiveTitleMenuStrip
377+ //
378+ this.CopyLiveTitleMenuStrip.Name = "CopyLiveTitleMenuStrip";
379+ this.CopyLiveTitleMenuStrip.Size = new System.Drawing.Size(190, 22);
380+ this.CopyLiveTitleMenuStrip.Text = "配信名をコピー(&N)";
381+ this.CopyLiveTitleMenuStrip.Click += new System.EventHandler(this.CopyLiveTitleMenuStrip_Click);
382+ //
383+ // CopyLiveAuthorMenuStrip
384+ //
385+ this.CopyLiveAuthorMenuStrip.Name = "CopyLiveAuthorMenuStrip";
386+ this.CopyLiveAuthorMenuStrip.Size = new System.Drawing.Size(190, 22);
387+ this.CopyLiveAuthorMenuStrip.Text = "配信者名をコピー(&B)";
388+ this.CopyLiveAuthorMenuStrip.Click += new System.EventHandler(this.CopyLiveAuthorMenuStrip_Click);
389+ //
390+ // CopyLiveUrlMenuStrip
391+ //
392+ this.CopyLiveUrlMenuStrip.Name = "CopyLiveUrlMenuStrip";
393+ this.CopyLiveUrlMenuStrip.Size = new System.Drawing.Size(190, 22);
394+ this.CopyLiveUrlMenuStrip.Text = "URLをコピー(&U)";
395+ this.CopyLiveUrlMenuStrip.Click += new System.EventHandler(this.CopyLiveUrlMenuStrip_Click);
396+ //
397+ // toolStripSeparator1
398+ //
399+ this.toolStripSeparator1.Name = "toolStripSeparator1";
400+ this.toolStripSeparator1.Size = new System.Drawing.Size(187, 6);
401+ //
402+ // SetFavoriteMenuStrip
403+ //
404+ this.SetFavoriteMenuStrip.Name = "SetFavoriteMenuStrip";
405+ this.SetFavoriteMenuStrip.Size = new System.Drawing.Size(190, 22);
406+ this.SetFavoriteMenuStrip.Text = "通知登録(&F)";
407+ this.SetFavoriteMenuStrip.Click += new System.EventHandler(this.SetFavoriteMenuStrip_Click);
408+ //
409+ // SetUnFavoriteMenuStrip
410+ //
411+ this.SetUnFavoriteMenuStrip.Name = "SetUnFavoriteMenuStrip";
412+ this.SetUnFavoriteMenuStrip.Size = new System.Drawing.Size(190, 22);
413+ this.SetUnFavoriteMenuStrip.Text = "通知登録解除(&U)";
414+ this.SetUnFavoriteMenuStrip.Click += new System.EventHandler(this.SetUnFavoriteMenuStrip_Click);
415+ //
416+ // toolStripSeparator6
417+ //
418+ this.toolStripSeparator6.Name = "toolStripSeparator6";
419+ this.toolStripSeparator6.Size = new System.Drawing.Size(187, 6);
420+ //
421+ // SetFilteringMenuStrip
422+ //
423+ this.SetFilteringMenuStrip.Name = "SetFilteringMenuStrip";
424+ this.SetFilteringMenuStrip.Size = new System.Drawing.Size(190, 22);
425+ this.SetFilteringMenuStrip.Text = "除外登録(&N)";
426+ this.SetFilteringMenuStrip.Click += new System.EventHandler(this.SetFilteringMenuStrip_Click);
427+ //
428+ // toolStripSeparator5
429+ //
430+ this.toolStripSeparator5.Name = "toolStripSeparator5";
431+ this.toolStripSeparator5.Size = new System.Drawing.Size(187, 6);
432+ //
433+ // OpenMenuStrip
434+ //
435+ this.OpenMenuStrip.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
436+ this.OpenLiveMenuStrip,
437+ this.OpenLivePageMenuStrip,
438+ this.OpenLiveWikiMenuStrip,
439+ this.toolStripSeparator8,
440+ this.InvokeIronLivetubeMenuStrip});
441+ this.OpenMenuStrip.Name = "OpenMenuStrip";
442+ this.OpenMenuStrip.Size = new System.Drawing.Size(190, 22);
443+ this.OpenMenuStrip.Text = "開く(&O)";
444+ //
445+ // OpenLiveMenuStrip
446+ //
447+ this.OpenLiveMenuStrip.Name = "OpenLiveMenuStrip";
448+ this.OpenLiveMenuStrip.Size = new System.Drawing.Size(201, 22);
449+ this.OpenLiveMenuStrip.Text = "配信を開く(&L)";
450+ //
451+ // OpenLivePageMenuStrip
452+ //
453+ this.OpenLivePageMenuStrip.Name = "OpenLivePageMenuStrip";
454+ this.OpenLivePageMenuStrip.Size = new System.Drawing.Size(201, 22);
455+ this.OpenLivePageMenuStrip.Text = "配信者ページを開く(&P)";
456+ this.OpenLivePageMenuStrip.Click += new System.EventHandler(this.OpenLivePageMenuStrip_Click);
457+ //
458+ // OpenLiveWikiMenuStrip
459+ //
460+ this.OpenLiveWikiMenuStrip.Name = "OpenLiveWikiMenuStrip";
461+ this.OpenLiveWikiMenuStrip.Size = new System.Drawing.Size(201, 22);
462+ this.OpenLiveWikiMenuStrip.Text = "配信者Wikiを開く(&W)";
463+ this.OpenLiveWikiMenuStrip.Click += new System.EventHandler(this.OpenLiveWikiMenuStrip_Click);
464+ //
465+ // toolStripSeparator8
466+ //
467+ this.toolStripSeparator8.Name = "toolStripSeparator8";
468+ this.toolStripSeparator8.Size = new System.Drawing.Size(198, 6);
469+ //
470+ // InvokeIronLivetubeMenuStrip
471+ //
472+ this.InvokeIronLivetubeMenuStrip.Name = "InvokeIronLivetubeMenuStrip";
473+ this.InvokeIronLivetubeMenuStrip.Size = new System.Drawing.Size(201, 22);
474+ this.InvokeIronLivetubeMenuStrip.Text = "IronLivetubeを起動(&I)";
475+ this.InvokeIronLivetubeMenuStrip.Click += new System.EventHandler(this.InvokeIronLivetubeMenuStrip_Click);
476+ //
477+ // LiveThumbnails
478+ //
479+ this.LiveThumbnails.ColorDepth = System.Windows.Forms.ColorDepth.Depth32Bit;
480+ this.LiveThumbnails.ImageSize = new System.Drawing.Size(128, 72);
481+ this.LiveThumbnails.TransparentColor = System.Drawing.Color.Transparent;
482+ //
483+ // TaskTrayIcon
484+ //
485+ this.TaskTrayIcon.Icon = ((System.Drawing.Icon)(resources.GetObject("TaskTrayIcon.Icon")));
486+ this.TaskTrayIcon.Visible = true;
487+ //
488+ // MainWindow
489+ //
490+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 18F);
491+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
492+ this.ClientSize = new System.Drawing.Size(584, 363);
493+ this.Controls.Add(this.LiveList);
494+ this.Controls.Add(this.StatusBar);
495+ this.Controls.Add(this.MenuBar);
496+ this.Font = new System.Drawing.Font("メイリオ", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128)));
497+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
498+ this.MainMenuStrip = this.MenuBar;
499+ this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
500+ this.Name = "MainWindow";
501+ this.Text = "IronLivetube - LiveScheduler";
502+ this.MenuBar.ResumeLayout(false);
503+ this.MenuBar.PerformLayout();
504+ this.StatusBar.ResumeLayout(false);
505+ this.StatusBar.PerformLayout();
506+ this.LiveListMenuStrip.ResumeLayout(false);
507+ this.ResumeLayout(false);
508+ this.PerformLayout();
509+
510+ }
511+
512+ #endregion
513+
514+ private System.Windows.Forms.MenuStrip MenuBar;
515+ private System.Windows.Forms.ToolStripMenuItem FileMenu;
516+ private System.Windows.Forms.ToolStripMenuItem ExitMenu;
517+ private System.Windows.Forms.ToolStripMenuItem EditMenu;
518+ private System.Windows.Forms.ToolStripMenuItem HelpMenu;
519+ private System.Windows.Forms.StatusStrip StatusBar;
520+ private System.Windows.Forms.ToolStripStatusLabel StatusBarText;
521+ private System.Windows.Forms.ListView LiveList;
522+ private System.Windows.Forms.ToolStripMenuItem SettingsMenu;
523+ private System.Windows.Forms.ToolStripSeparator toolStripSeparator3;
524+ private System.Windows.Forms.ToolStripMenuItem CopyMenu;
525+ private System.Windows.Forms.ToolStripMenuItem CopyLiveTitleMenu;
526+ private System.Windows.Forms.ToolStripMenuItem CopyLiveAuthorMenu;
527+ private System.Windows.Forms.ToolStripMenuItem CopyLiveUrlMenu;
528+ private System.Windows.Forms.ToolStripMenuItem ShowVersionInfoMenu;
529+ private System.Windows.Forms.ColumnHeader LiveTitle;
530+ private System.Windows.Forms.ColumnHeader LiveAuthor;
531+ private System.Windows.Forms.ColumnHeader LiveListeners;
532+ private System.Windows.Forms.ColumnHeader LiveVisitors;
533+ private System.Windows.Forms.ColumnHeader LiveComments;
534+ private System.Windows.Forms.ColumnHeader LiveStart;
535+ private System.Windows.Forms.ColumnHeader LiveTags;
536+ private System.Windows.Forms.ToolStripMenuItem OperationMenu;
537+ private System.Windows.Forms.ToolStripMenuItem SetFavoriteMenu;
538+ private System.Windows.Forms.ToolStripMenuItem SetUnFavoriteMenu;
539+ private System.Windows.Forms.ToolStripSeparator toolStripSeparator4;
540+ private System.Windows.Forms.ToolStripMenuItem SetFilteringMenu;
541+ private System.Windows.Forms.ContextMenuStrip LiveListMenuStrip;
542+ private System.Windows.Forms.ToolStripMenuItem CopyMenuStrip;
543+ private System.Windows.Forms.ToolStripMenuItem CopyLiveTitleMenuStrip;
544+ private System.Windows.Forms.ToolStripMenuItem CopyLiveAuthorMenuStrip;
545+ private System.Windows.Forms.ToolStripMenuItem CopyLiveUrlMenuStrip;
546+ private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
547+ private System.Windows.Forms.ToolStripMenuItem SetFavoriteMenuStrip;
548+ private System.Windows.Forms.ToolStripMenuItem SetUnFavoriteMenuStrip;
549+ private System.Windows.Forms.ToolStripSeparator toolStripSeparator6;
550+ private System.Windows.Forms.ToolStripMenuItem SetFilteringMenuStrip;
551+ private System.Windows.Forms.ToolStripSeparator toolStripSeparator5;
552+ private System.Windows.Forms.ToolStripMenuItem OpenMenuStrip;
553+ private System.Windows.Forms.ToolStripMenuItem OpenLiveMenuStrip;
554+ private System.Windows.Forms.ToolStripMenuItem OpenLivePageMenuStrip;
555+ private System.Windows.Forms.ToolStripMenuItem OpenLiveWikiMenuStrip;
556+ private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
557+ private System.Windows.Forms.ToolStripMenuItem OpenMenu;
558+ private System.Windows.Forms.ToolStripMenuItem OpenLiveMenu;
559+ private System.Windows.Forms.ToolStripMenuItem OpenLivePageMenu;
560+ private System.Windows.Forms.ToolStripMenuItem OpenLiveWikiMenu;
561+ private System.Windows.Forms.NotifyIcon TaskTrayIcon;
562+ private System.Windows.Forms.ToolStripSeparator toolStripSeparator7;
563+ private System.Windows.Forms.ToolStripMenuItem InvokeIronLivetubeMenu;
564+ private System.Windows.Forms.ToolStripSeparator toolStripSeparator8;
565+ private System.Windows.Forms.ToolStripMenuItem InvokeIronLivetubeMenuStrip;
566+ private System.Windows.Forms.ImageList LiveThumbnails;
567+ }
568+}
569+
--- LSchedule/MainWindow.cs (nonexistent)
+++ LSchedule/MainWindow.cs (revision 14)
@@ -0,0 +1,504 @@
1+using System;
2+using System.Collections.Generic;
3+using System.ComponentModel;
4+using System.Data;
5+using System.Drawing;
6+using System.Linq;
7+using System.Text;
8+using System.Windows.Forms;
9+using System.Diagnostics;
10+
11+namespace Aqua877.WinApp.IronLivetube.LSchedule
12+{
13+ public partial class MainWindow : Form
14+ {
15+ private object syncObj = new Object();
16+ private LiveDataBase LiveData;
17+ private global::Aqua877.WinApp.IronLivetube.SendersWiki WikiList;
18+ private MainWindowListViewSorter SortHelper = new MainWindowListViewSorter();
19+
20+ public MainWindow()
21+ {
22+ this.InitializeComponent();
23+
24+ this.LiveThumbnails.Images.Add(Settings.LoadingImage);
25+ this.LiveList.View = Settings.Setting.ViewMode;
26+ this.LiveList.ListViewItemSorter = this.SortHelper;
27+ this.LiveData = new LiveDataBase();
28+ this.LiveData.OnGetLiveDataFinished += this.OnGetLiveDataFinished;
29+ this.LiveData.OnStatusTextChanged += s => this.SetStatusText(s);
30+ this.LiveData.OnGetThumbnailFinished += data => {
31+ lock (syncObj)
32+ {
33+ if (data.Thumbnail != null)
34+ {
35+ this.LiveThumbnails.Images.Add(data.Thumbnail);
36+ var f = this.LiveList.Items.Cast<ListViewItem>().Where(xs => xs.SubItems[0].Text == data.Title && xs.SubItems[1].Text == data.Author);
37+ if (f.Count() > 0)
38+ {
39+ f.First().ImageIndex = this.LiveThumbnails.Images.Count - 1;
40+ }
41+ }
42+ }
43+
44+ //Debug
45+ var x = this.LiveList.Items.Cast<ListViewItem>().ToArray();
46+ x.ToString();
47+ };
48+ this.LiveData.BeginGetLiveSchedule();
49+
50+ this.WikiList = new SendersWiki();
51+ }
52+
53+ public void OnGetLiveDataFinished(IEnumerable<LiveData> added, IEnumerable<LiveData> removed)
54+ {
55+ this.LiveList.ListViewItemSorter = null;
56+ this.LiveList.BeginUpdate();
57+
58+ removed.Select(xs => {
59+ var o = this.LiveList.Items.Cast<ListViewItem>().SingleOrDefault(a => a.SubItems[1].Text == xs.Title || a.SubItems[2].Text == xs.Author);
60+ if (o == default(ListViewItem))
61+ {
62+ return -1;
63+ }
64+ else
65+ {
66+ return o.Index;
67+ }
68+ }).Where(xs => xs != -1)
69+ .ForEach(xs => this.LiveList.Items.RemoveAt(xs));
70+
71+ added.Where(xs =>
72+ !Settings.Setting.FilteringList.Any(fs =>
73+ {
74+ switch (fs.Target)
75+ {
76+ case MatchTarget.Author:
77+ {
78+ if (xs.Author == fs.FilteringString)
79+ {
80+ return true;
81+ }
82+ break;
83+ }
84+
85+ case MatchTarget.Title:
86+ {
87+ if (xs.Title == fs.FilteringString)
88+ {
89+ return true;
90+ }
91+ break;
92+ }
93+ case MatchTarget.Tags:
94+ {
95+ if (xs.Tags.Contains(fs.FilteringString))
96+ {
97+ return true;
98+ }
99+ break;
100+ }
101+ }
102+ return false;
103+ })).Select(xs => new {
104+ data = xs,
105+ item = new ListViewItem(new[] {
106+ new ListViewItem.ListViewSubItem { Text = xs.Title },
107+ new ListViewItem.ListViewSubItem { Text = xs.Author },
108+ new ListViewItem.ListViewSubItem { Text = xs.Listeners.ToString() },
109+ new ListViewItem.ListViewSubItem { Text = xs.Visitors.ToString() },
110+ new ListViewItem.ListViewSubItem { Text = xs.Comments.ToString() },
111+ new ListViewItem.ListViewSubItem { Text = xs.Start.ToString() },
112+ new ListViewItem.ListViewSubItem { Text = string.Join(" ", xs.Tags) }
113+ }, 0)}
114+ .Do(l =>
115+ {
116+ Settings.Setting.FavoriteList.ForEach(f =>
117+ {
118+ switch (f.Target)
119+ {
120+ case MatchTarget.Author:
121+ {
122+ if (xs.Author == f.FavoriteString)
123+ {
124+ l.item.ForeColor = f.TextColor;
125+ l.item.BackColor = f.BackgroundColor;
126+ }
127+ break;
128+ }
129+
130+ case MatchTarget.Title:
131+ {
132+ if (xs.Title == f.FavoriteString)
133+ {
134+ l.item.ForeColor = f.TextColor;
135+ l.item.BackColor = f.BackgroundColor;
136+ }
137+ break;
138+ }
139+
140+ case MatchTarget.Tags:
141+ {
142+ if (xs.Tags.Contains(f.FavoriteString))
143+ {
144+ l.item.ForeColor = f.TextColor;
145+ l.item.BackColor = f.BackgroundColor;
146+ }
147+ break;
148+ }
149+ }
150+ });
151+ })
152+ ).ForEach(xs =>
153+ {
154+ xs.item.ImageIndex = 0;
155+ this.LiveList.Items.Add(xs.item);
156+ });
157+
158+ this.LiveList.ListViewItemSorter = this.SortHelper;
159+ this.LiveList.Sort();
160+ this.LiveList.EndUpdate();
161+
162+ if (Settings.Setting.IsNotifyOnPopUp && this.LiveData.LiveCollection.Count() != added.Count())
163+ {
164+ this.TaskTrayIcon.BalloonTipIcon = ToolTipIcon.Info;
165+ this.TaskTrayIcon.BalloonTipTitle = "お気に入り配信";
166+ this.TaskTrayIcon.BalloonTipText = added.Count() + " 件のお気に入り配信が見つかりました。";
167+ this.TaskTrayIcon.ShowBalloonTip(3000);
168+ }
169+ }
170+
171+ private void LiveList_ColumnClick(object sender, ColumnClickEventArgs e)
172+ {
173+ if (!Settings.Setting.IsLockSort)
174+ {
175+ this.SortHelper.Column = e.Column;
176+ this.LiveList.Sort();
177+ }
178+ }
179+
180+ private void LiveList_DoubleClick(object sender, EventArgs e)
181+ {
182+ try
183+ {
184+ Process.Start(this.LiveData.LiveCollection.Single(xs =>
185+ xs.Title == this.LiveList.SelectedItems[0].SubItems[0].Text &&
186+ xs.Author == this.LiveList.SelectedItems[0].SubItems[1].Text
187+ ).Url.ToString());
188+ }
189+ catch(Win32Exception)
190+ {
191+
192+ }
193+ }
194+
195+ public void SetStatusText(string text)
196+ {
197+ this.StatusBarText.Text = text;
198+
199+ Observable.Return(text)
200+ .Delay(TimeSpan.FromSeconds(3))
201+ .ObserveOnDispatcher()
202+ .Subscribe(s =>
203+ {
204+ if (this.StatusBarText.Text == s)
205+ {
206+ this.StatusBarText.Text = "";
207+ }
208+ }
209+ );
210+ }
211+
212+ private void SettingsMenu_Click(object sender, EventArgs e)
213+ {
214+ using (var sw = new SettingsWindow())
215+ {
216+ sw.ShowDialog();
217+ }
218+
219+ this.LiveList.Items.Cast<ListViewItem>().ForEach(xs =>
220+ {
221+ //除外
222+ Settings.Setting.FilteringList.ForEach(f => {
223+ switch (f.Target)
224+ {
225+ case MatchTarget.Author:
226+ {
227+ if (xs.SubItems[1].Text == f.FilteringString)
228+ {
229+ this.LiveList.Items.RemoveAt(xs.Index);
230+ }
231+ break;
232+ }
233+
234+ case MatchTarget.Title:
235+ {
236+ if (xs.SubItems[0].Text == f.FilteringString)
237+ {
238+ this.LiveList.Items.RemoveAt(xs.Index);
239+ }
240+ break;
241+ }
242+
243+ case MatchTarget.Tags:
244+ {
245+ if (xs.SubItems[6].Text.Split(' ').Contains(f.FilteringString))
246+ {
247+ this.LiveList.Items.RemoveAt(xs.Index);
248+ }
249+ break;
250+ }
251+ }
252+ });
253+
254+ Settings.Setting.FavoriteList.ForEach(f =>
255+ {
256+ //色分け
257+ switch (f.Target)
258+ {
259+ case MatchTarget.Author:
260+ {
261+ if (xs.SubItems[1].Text == f.FavoriteString)
262+ {
263+ xs.ForeColor = f.TextColor;
264+ xs.BackColor = f.BackgroundColor;
265+ }
266+ break;
267+ }
268+
269+ case MatchTarget.Title:
270+ {
271+ if (xs.SubItems[0].Text == f.FavoriteString)
272+ {
273+ xs.ForeColor = f.TextColor;
274+ xs.BackColor = f.BackgroundColor;
275+ }
276+ break;
277+ }
278+
279+ case MatchTarget.Tags:
280+ {
281+ if (xs.SubItems[6].Text.Split(' ').Contains(f.FavoriteString))
282+ {
283+ xs.ForeColor = f.TextColor;
284+ xs.BackColor = f.BackgroundColor;
285+ }
286+ break;
287+ }
288+ }
289+ });
290+ });
291+
292+ this.LiveList.View = Settings.Setting.ViewMode;
293+ }
294+
295+ private void ExitMenu_Click(object sender, EventArgs e)
296+ {
297+ Application.Exit();
298+ }
299+
300+ private void CopyMenu_Click(object sender, EventArgs e)
301+ {
302+ if(!this.LiveList.SelectedItems.Cast<ListViewItem>().Any())
303+ {
304+ return;
305+ }
306+
307+ var livedata = this.LiveData.LiveCollection.First/*Single*/(xs => xs.Title == this.LiveList.SelectedItems[0].SubItems[0].Text);
308+
309+ Clipboard.SetText(String.Format("[{0}]{1}({2}:{3}視:{4}コ) {5}", livedata.Author, livedata.Title, livedata.Listeners, livedata.Visitors, livedata.Comments, string.Join(" ", livedata.Tags)));
310+ }
311+
312+ private void CopyLiveTitleMenu_Click(object sender, EventArgs e)
313+ {
314+ if (!this.LiveList.SelectedItems.Cast<ListViewItem>().Any())
315+ {
316+ return;
317+ }
318+
319+ var livedata = this.LiveData.LiveCollection.First/*Single*/(xs => xs.Title == this.LiveList.SelectedItems[0].SubItems[0].Text);
320+ }
321+
322+ private void CopyLiveAuthorMenu_Click(object sender, EventArgs e)
323+ {
324+ if (!this.LiveList.SelectedItems.Cast<ListViewItem>().Any())
325+ {
326+ return;
327+ }
328+
329+ var livedata = this.LiveData.LiveCollection.First/*Single*/(xs => xs.Title == this.LiveList.SelectedItems[0].SubItems[0].Text);
330+
331+ Clipboard.SetText(livedata.Author);
332+ }
333+
334+ private void CopyUrlMenu_Click(object sender, EventArgs e)
335+ {
336+ if (!this.LiveList.SelectedItems.Cast<ListViewItem>().Any())
337+ {
338+ return;
339+ }
340+
341+ var livedata = this.LiveData.LiveCollection.First/*Single*/(xs => xs.Title == this.LiveList.SelectedItems[0].SubItems[0].Text);
342+
343+ Clipboard.SetText(livedata.Url.ToString());
344+ }
345+
346+ private void SetFavoriteMenu_Click(object sender, EventArgs e)
347+ {
348+ if (!this.LiveList.SelectedItems.Cast<ListViewItem>().Any())
349+ {
350+ return;
351+ }
352+
353+ if (Settings.Setting.FavoriteList.Any(xs => xs.FavoriteString == this.LiveList.SelectedItems[0].SubItems[1].Text && xs.Target == MatchTarget.Author))
354+ {
355+ return;
356+ }
357+
358+ Settings.Setting.FavoriteList.Add(new Favorite(){
359+ FavoriteString = this.LiveList.SelectedItems[0].SubItems[1].Text,
360+ Target = MatchTarget.Author,
361+ BackgroundColor = Color.Orange,
362+ TextColor = Color.White
363+ });
364+
365+ this.LiveList.SelectedItems[0].ForeColor = Color.White;
366+ this.LiveList.SelectedItems[0].BackColor = Color.Orange;
367+ }
368+
369+ private void SetUnFavoriteMenu_Click(object sender, EventArgs e)
370+ {
371+ if (!this.LiveList.SelectedItems.Cast<ListViewItem>().Any())
372+ {
373+ return;
374+ }
375+
376+ var f = Settings.Setting.FavoriteList.Find(xs => xs.FavoriteString == this.LiveList.SelectedItems[0].SubItems[1].Text && xs.Target == MatchTarget.Author);
377+
378+ if (f == null)
379+ {
380+ return;
381+ }
382+
383+ Settings.Setting.FavoriteList.Remove(f);
384+
385+ this.LiveList.SelectedItems[0].ForeColor = this.LiveList.ForeColor;
386+ this.LiveList.SelectedItems[0].BackColor = this.LiveList.BackColor;
387+ }
388+
389+ private void SetFilteringMenu_Click(object sender, EventArgs e)
390+ {
391+ if (!this.LiveList.SelectedItems.Cast<ListViewItem>().Any())
392+ {
393+ return;
394+ }
395+
396+ if (Settings.Setting.FilteringList.Any(xs => xs.FilteringString == this.LiveList.SelectedItems[0].SubItems[1].Text && xs.Target == MatchTarget.Author))
397+ {
398+ return;
399+ }
400+
401+ Settings.Setting.FilteringList.Add(new Filtering() {
402+ FilteringString = this.LiveList.SelectedItems[0].SubItems[1].Text,
403+ Target = MatchTarget.Author
404+ });
405+
406+ this.LiveList.Items.RemoveAt(this.LiveList.SelectedItems[0].Index);
407+ }
408+
409+ private void OpenLiveMenu_Click(object sender, EventArgs e)
410+ {
411+ Process.Start(this.LiveData.LiveCollection.Single(xs =>
412+ xs.Title == this.LiveList.SelectedItems[0].SubItems[0].Text &&
413+ xs.Author == this.LiveList.SelectedItems[0].SubItems[1].Text
414+ ).Url.ToString());
415+ }
416+
417+ private void OpenLivePageMenu_Click(object sender, EventArgs e)
418+ {
419+ Process.Start(this.LiveData.LiveCollection.Single(xs =>
420+ xs.Title == this.LiveList.SelectedItems[0].SubItems[0].Text &&
421+ xs.Author == this.LiveList.SelectedItems[0].SubItems[1].Text
422+ ).Let(l => "http://livetube.cc/" + l.Author + "/" + l.Title));
423+ }
424+
425+ private void OpenLiveWikiMenu_Click(object sender, EventArgs e)
426+ {
427+ if (this.LiveList.SelectedItems.Cast<ListViewItem>().Any())
428+ {
429+ if (this.WikiList.SendersWikiList.Keys.Contains(this.LiveList.SelectedItems[0].SubItems[1].Text))
430+ {
431+ Process.Start(this.WikiList.SendersWikiList[this.LiveList.SelectedItems[0].SubItems[1].Text].ToString());
432+ }
433+ }
434+ }
435+
436+ private void InvokeIronLivetubeMenu_Click(object sender, EventArgs e)
437+ {
438+ if (Settings.Setting.IronLivetubePath != "")
439+ {
440+ Process.Start(Settings.Setting.IronLivetubePath, this.LiveData.LiveCollection.First/*Single*/(xs => xs.Title == this.LiveList.SelectedItems[0].SubItems[0].Text).Url.ToString());
441+ }
442+ }
443+
444+ private void ShowVersionInfoMenu_Click(object sender, EventArgs e)
445+ {
446+
447+ }
448+
449+ private void CopyMenuStrip_Click(object sender, EventArgs e)
450+ {
451+ this.CopyMenu.PerformClick();
452+ }
453+
454+ private void CopyLiveTitleMenuStrip_Click(object sender, EventArgs e)
455+ {
456+ this.CopyLiveTitleMenu.PerformClick();
457+ }
458+
459+ private void CopyLiveAuthorMenuStrip_Click(object sender, EventArgs e)
460+ {
461+ this.CopyLiveAuthorMenu.PerformClick();
462+ }
463+
464+ private void CopyLiveUrlMenuStrip_Click(object sender, EventArgs e)
465+ {
466+ this.CopyLiveUrlMenu.PerformClick();
467+ }
468+
469+ private void SetFavoriteMenuStrip_Click(object sender, EventArgs e)
470+ {
471+ this.SetFavoriteMenu.PerformClick();
472+ }
473+
474+ private void SetUnFavoriteMenuStrip_Click(object sender, EventArgs e)
475+ {
476+ this.SetUnFavoriteMenu.PerformClick();
477+ }
478+
479+ private void SetFilteringMenuStrip_Click(object sender, EventArgs e)
480+ {
481+ this.SetFilteringMenu.PerformClick();
482+ }
483+
484+ private void OpenLiveMenuStrip_Click(object sender, EventArgs e)
485+ {
486+ this.OpenLiveMenu.PerformClick();
487+ }
488+
489+ private void OpenLivePageMenuStrip_Click(object sender, EventArgs e)
490+ {
491+ this.OpenLivePageMenu.PerformClick();
492+ }
493+
494+ private void OpenLiveWikiMenuStrip_Click(object sender, EventArgs e)
495+ {
496+ this.OpenLiveWikiMenu.PerformClick();
497+ }
498+
499+ private void InvokeIronLivetubeMenuStrip_Click(object sender, EventArgs e)
500+ {
501+ this.InvokeIronLivetubeMenu.PerformClick();
502+ }
503+ }
504+}
--- LSchedule/LiveDataBase.cs (nonexistent)
+++ LSchedule/LiveDataBase.cs (revision 14)
@@ -0,0 +1,227 @@
1+using System;
2+using System.Collections.Generic;
3+using System.Linq;
4+using System.Text;
5+using System.Net;
6+using System.Xml.Linq;
7+using System.Web;
8+using System.Drawing;
9+using System.Threading;
10+using System.Concurrency;
11+using System.IO;
12+using System.Text.RegularExpressions;
13+using System.Diagnostics;
14+
15+namespace Aqua877.WinApp.IronLivetube.LSchedule
16+{
17+ public class LiveData
18+ {
19+ public event Action OnGetThumbnailFinished;
20+
21+ public string Title { get; set; }
22+ public string Author { get; set; }
23+ public DateTime Start { get; set; }
24+ public Uri Url { get; set; }
25+ public string[] Tags { get; set; }
26+ public int Listeners { get; set; }
27+ public int Visitors { get; set; }
28+ public int Comments { get; set; }
29+ public Uri ThumbnailUrl { get; set; }
30+ public Image Thumbnail { get; set; }
31+
32+ public void BeginGetThumbnail()
33+ {
34+ Observable.Start(() =>
35+ {
36+ using (var connector = new WebClient())
37+ {
38+ try
39+ {
40+ using (var stream = connector.OpenRead(this.ThumbnailUrl))
41+ {
42+ this.Thumbnail = Image.FromStream(stream);
43+ }
44+ }
45+ catch(WebException)
46+ {
47+ return;
48+ }
49+ }
50+ }, Scheduler.ThreadPool)
51+ .ObserveOnDispatcher()
52+ .Subscribe(_ => this.NotifyOnGetThumbnailFinished());
53+ }
54+
55+ protected virtual void NotifyOnGetThumbnailFinished()
56+ {
57+ if (this.OnGetThumbnailFinished != null)
58+ {
59+ this.OnGetThumbnailFinished();
60+ }
61+ }
62+
63+ public override bool Equals(object obj)
64+ {
65+ var o = obj as LiveData;
66+
67+ if (o == null)
68+ {
69+ return false;
70+ }
71+
72+ return this.Title == o.Title && this.Author == o.Author;
73+ }
74+
75+ public override int GetHashCode()
76+ {
77+ return this.Title.GetHashCode() ^ this.Author.GetHashCode();
78+ }
79+ }
80+
81+ public class LiveDataBase
82+ {
83+ private List<LiveData> _LiveCollection = new List<LiveData>();
84+ public IDisposable GetDataTimer;
85+
86+ public event Action<IEnumerable<LiveData>, IEnumerable<LiveData>> OnGetLiveDataFinished;
87+ public event Action<string> OnStatusTextChanged;
88+ public event Action<LiveData> OnGetThumbnailFinished;
89+
90+ public List<LiveData> LiveCollection
91+ {
92+ get
93+ {
94+ return this._LiveCollection;
95+ }
96+ set
97+ {
98+ this._LiveCollection = value;
99+ }
100+ }
101+
102+ public LiveDataBase()
103+ {
104+ }
105+
106+ public void BeginGetLiveSchedule()
107+ {
108+ this.GetDataTimer = Observable.Timer(TimeSpan.FromSeconds(0), TimeSpan.FromSeconds(60)).ObserveOnDispatcher()
109+ .Subscribe(
110+ s =>
111+ {
112+ this.NotifyOnStatusTextChanged("配信情報取得開始...");
113+ var connector = new WebClient() { Encoding = Encoding.UTF8 };
114+ connector.DownloadStringCompleted += this.OnGetLiveFeedFinished;
115+#if DEBUG
116+ connector.DownloadStringAsync(new Uri("http://192.168.1.3/ltagg/ltapi.xml"));
117+#else
118+ connector.DownloadStringAsync(new Uri("http://aqua-s.ddo.jp/ltagg/ltapi.xml"));
119+#endif
120+ }
121+ );
122+ }
123+
124+ private void OnGetLiveFeedFinished(object sender, DownloadStringCompletedEventArgs e)
125+ {
126+ if (e.Error != null)
127+ {
128+ this.NotifyOnStatusTextChanged("配信情報取得中にエラーが発生しました");
129+ }
130+ else
131+ {
132+ var document = XElement.Parse(e.Result);
133+
134+ var current = document.Descendants("Live")
135+ .Select(xs =>
136+ new LiveData()
137+ {
138+ Title = HttpUtility.HtmlDecode(xs.Element("Title").Value),
139+ Author = HttpUtility.HtmlDecode(xs.Element("Author").Value),
140+ Url = new Uri(xs.Element("Url").Value),
141+ ThumbnailUrl = new Uri(xs.Element("ThumbnailUrl").Value),
142+ Tags = xs.Element("Tags").Elements("Tag").Select(es => es.Value).ToArray(),
143+ Listeners = int.Parse(xs.Element("Listeners").Value),
144+ Visitors = int.Parse(xs.Element("Visitors").Value),
145+ Comments = int.Parse(xs.Element("Comments").Value),
146+ Start = DateTime.Parse(xs.Element("Start").Value)
147+ }
148+ )
149+ .OrderBy(xs => xs.Start, (a, b) => DateTime.Compare(a, b));
150+
151+ var added = current.Except(this._LiveCollection);
152+ added.ForEach(xs => {
153+ xs.OnGetThumbnailFinished += () => this.NotifyOnGetThumbnailFinished(xs);
154+ xs.BeginGetThumbnail();
155+ });
156+
157+ var removed = this._LiveCollection.Except(current);
158+
159+ this._LiveCollection = current.ToList();
160+
161+ this.NotifyOnStatusTextChanged("取得成功");
162+ this.NotifyOnGetLiveDataFinished(added, removed);
163+ }
164+ }
165+
166+ public void EndGetLiveSchedule()
167+ {
168+ this.GetDataTimer.Dispose();
169+ }
170+
171+ protected virtual void NotifyOnGetLiveDataFinished(IEnumerable<LiveData> added, IEnumerable<LiveData> removed)
172+ {
173+ if (this.OnGetLiveDataFinished != null)
174+ {
175+ this.OnGetLiveDataFinished(added, removed);
176+ }
177+ }
178+
179+ protected virtual void NotifyOnStatusTextChanged(string text)
180+ {
181+ if (this.OnStatusTextChanged != null)
182+ {
183+ this.OnStatusTextChanged(text);
184+ }
185+ }
186+
187+ protected virtual void NotifyOnGetThumbnailFinished(LiveData data)
188+ {
189+ if(this.OnGetThumbnailFinished != null)
190+ {
191+ this.OnGetThumbnailFinished(data);
192+ }
193+ }
194+ }
195+
196+ public static class Extensions
197+ {
198+ public static void ForEach<T>(this IEnumerable<T> array, Action<T> action)
199+ {
200+ foreach (T item in array)
201+ {
202+ action(item);
203+ }
204+ }
205+
206+ public static void ForEach<T>(this IEnumerable<T> array, Action<T, int> action)
207+ {
208+ int count = 0;
209+ foreach (T item in array)
210+ {
211+ action(item, count);
212+ count++;
213+ }
214+ }
215+
216+ public static TRet Let<TArg, TRet>(this TArg obj, Func<TArg, TRet> action)
217+ {
218+ return action(obj);
219+ }
220+
221+ public static T Do<T>(this T obj, Action<T> action)
222+ {
223+ action(obj);
224+ return obj;
225+ }
226+ }
227+}
--- LSchedule/SettingsWindow.Designer.cs (nonexistent)
+++ LSchedule/SettingsWindow.Designer.cs (revision 14)
@@ -0,0 +1,631 @@
1+namespace Aqua877.WinApp.IronLivetube.LSchedule
2+{
3+ partial class SettingsWindow
4+ {
5+ /// <summary>
6+ /// Required designer variable.
7+ /// </summary>
8+ private System.ComponentModel.IContainer components = null;
9+
10+ /// <summary>
11+ /// Clean up any resources being used.
12+ /// </summary>
13+ /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
14+ protected override void Dispose(bool disposing)
15+ {
16+ if (disposing && (components != null))
17+ {
18+ components.Dispose();
19+ }
20+ base.Dispose(disposing);
21+ }
22+
23+ #region Windows Form Designer generated code
24+
25+ /// <summary>
26+ /// Required method for Designer support - do not modify
27+ /// the contents of this method with the code editor.
28+ /// </summary>
29+ private void InitializeComponent()
30+ {
31+ this.tabPage4 = new System.Windows.Forms.TabPage();
32+ this.AddFilteringByLiveTagsButton = new System.Windows.Forms.RadioButton();
33+ this.AddFilteringByLiveTitleButton = new System.Windows.Forms.RadioButton();
34+ this.AddFilteringByLiveAuthorButton = new System.Windows.Forms.RadioButton();
35+ this.label2 = new System.Windows.Forms.Label();
36+ this.AddFilteringTextBox = new System.Windows.Forms.TextBox();
37+ this.RemoveFilteringButton = new System.Windows.Forms.Button();
38+ this.AddFilteringButton = new System.Windows.Forms.Button();
39+ this.groupBox2 = new System.Windows.Forms.GroupBox();
40+ this.FilteringList = new System.Windows.Forms.ListBox();
41+ this.tabPage3 = new System.Windows.Forms.TabPage();
42+ this.ChangeTextColorButton = new System.Windows.Forms.Button();
43+ this.PreviewTextColorTextBox = new System.Windows.Forms.TextBox();
44+ this.PreviewBackgroundColorTextbox = new System.Windows.Forms.TextBox();
45+ this.AddFavoriteTextBox = new System.Windows.Forms.TextBox();
46+ this.ChangeBackgroundColorButton = new System.Windows.Forms.Button();
47+ this.AddFavoriteByLiveTagsButton = new System.Windows.Forms.RadioButton();
48+ this.AddFavoriteByLiveTitleButton = new System.Windows.Forms.RadioButton();
49+ this.AddFavoriteByLiveAuthorButton = new System.Windows.Forms.RadioButton();
50+ this.label1 = new System.Windows.Forms.Label();
51+ this.RemoveFavoriteButton = new System.Windows.Forms.Button();
52+ this.AddFavoriteButton = new System.Windows.Forms.Button();
53+ this.groupBox1 = new System.Windows.Forms.GroupBox();
54+ this.FavoriteList = new System.Windows.Forms.ListBox();
55+ this.tabPage1 = new System.Windows.Forms.TabPage();
56+ this.tabControl1 = new System.Windows.Forms.TabControl();
57+ this.TextColorDialog = new System.Windows.Forms.ColorDialog();
58+ this.BackgroundColorDialog = new System.Windows.Forms.ColorDialog();
59+ this.groupBox3 = new System.Windows.Forms.GroupBox();
60+ this.label3 = new System.Windows.Forms.Label();
61+ this.NotifySoundPathTextBox = new System.Windows.Forms.TextBox();
62+ this.ChangeNotifySoundPathButton = new System.Windows.Forms.Button();
63+ this.IsNotifyOnPopUpCheckBox = new System.Windows.Forms.CheckBox();
64+ this.groupBox4 = new System.Windows.Forms.GroupBox();
65+ this.groupBox5 = new System.Windows.Forms.GroupBox();
66+ this.IsLockSortCheckBox = new System.Windows.Forms.CheckBox();
67+ this.IsStoreTaskTrayCheckBox = new System.Windows.Forms.CheckBox();
68+ this.ChangeIronLivetubePathButton = new System.Windows.Forms.Button();
69+ this.IronLivetubePathTextBox = new System.Windows.Forms.TextBox();
70+ this.label4 = new System.Windows.Forms.Label();
71+ this.ChangeNotifySoundPathDialog = new System.Windows.Forms.OpenFileDialog();
72+ this.ChangeIronLivetubePathDialog = new System.Windows.Forms.OpenFileDialog();
73+ this.ViewModeBox = new System.Windows.Forms.ComboBox();
74+ this.label5 = new System.Windows.Forms.Label();
75+ this.tabPage4.SuspendLayout();
76+ this.groupBox2.SuspendLayout();
77+ this.tabPage3.SuspendLayout();
78+ this.groupBox1.SuspendLayout();
79+ this.tabPage1.SuspendLayout();
80+ this.tabControl1.SuspendLayout();
81+ this.groupBox3.SuspendLayout();
82+ this.groupBox4.SuspendLayout();
83+ this.groupBox5.SuspendLayout();
84+ this.SuspendLayout();
85+ //
86+ // tabPage4
87+ //
88+ this.tabPage4.Controls.Add(this.AddFilteringByLiveTagsButton);
89+ this.tabPage4.Controls.Add(this.AddFilteringByLiveTitleButton);
90+ this.tabPage4.Controls.Add(this.AddFilteringByLiveAuthorButton);
91+ this.tabPage4.Controls.Add(this.label2);
92+ this.tabPage4.Controls.Add(this.AddFilteringTextBox);
93+ this.tabPage4.Controls.Add(this.RemoveFilteringButton);
94+ this.tabPage4.Controls.Add(this.AddFilteringButton);
95+ this.tabPage4.Controls.Add(this.groupBox2);
96+ this.tabPage4.Location = new System.Drawing.Point(4, 27);
97+ this.tabPage4.Name = "tabPage4";
98+ this.tabPage4.Padding = new System.Windows.Forms.Padding(3);
99+ this.tabPage4.Size = new System.Drawing.Size(586, 342);
100+ this.tabPage4.TabIndex = 3;
101+ this.tabPage4.Text = "除外登録";
102+ this.tabPage4.UseVisualStyleBackColor = true;
103+ //
104+ // AddFilteringByLiveTagsButton
105+ //
106+ this.AddFilteringByLiveTagsButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
107+ this.AddFilteringByLiveTagsButton.AutoSize = true;
108+ this.AddFilteringByLiveTagsButton.Location = new System.Drawing.Point(533, 312);
109+ this.AddFilteringByLiveTagsButton.Name = "AddFilteringByLiveTagsButton";
110+ this.AddFilteringByLiveTagsButton.Size = new System.Drawing.Size(50, 22);
111+ this.AddFilteringByLiveTagsButton.TabIndex = 15;
112+ this.AddFilteringByLiveTagsButton.Text = "タグ";
113+ this.AddFilteringByLiveTagsButton.UseVisualStyleBackColor = true;
114+ //
115+ // AddFilteringByLiveTitleButton
116+ //
117+ this.AddFilteringByLiveTitleButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
118+ this.AddFilteringByLiveTitleButton.AutoSize = true;
119+ this.AddFilteringByLiveTitleButton.Location = new System.Drawing.Point(465, 312);
120+ this.AddFilteringByLiveTitleButton.Name = "AddFilteringByLiveTitleButton";
121+ this.AddFilteringByLiveTitleButton.Size = new System.Drawing.Size(62, 22);
122+ this.AddFilteringByLiveTitleButton.TabIndex = 14;
123+ this.AddFilteringByLiveTitleButton.Text = "配信名";
124+ this.AddFilteringByLiveTitleButton.UseVisualStyleBackColor = true;
125+ //
126+ // AddFilteringByLiveAuthorButton
127+ //
128+ this.AddFilteringByLiveAuthorButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
129+ this.AddFilteringByLiveAuthorButton.AutoSize = true;
130+ this.AddFilteringByLiveAuthorButton.Checked = true;
131+ this.AddFilteringByLiveAuthorButton.Location = new System.Drawing.Point(385, 312);
132+ this.AddFilteringByLiveAuthorButton.Name = "AddFilteringByLiveAuthorButton";
133+ this.AddFilteringByLiveAuthorButton.Size = new System.Drawing.Size(74, 22);
134+ this.AddFilteringByLiveAuthorButton.TabIndex = 13;
135+ this.AddFilteringByLiveAuthorButton.TabStop = true;
136+ this.AddFilteringByLiveAuthorButton.Text = "配信者名";
137+ this.AddFilteringByLiveAuthorButton.UseVisualStyleBackColor = true;
138+ //
139+ // label2
140+ //
141+ this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
142+ this.label2.AutoSize = true;
143+ this.label2.Location = new System.Drawing.Point(8, 315);
144+ this.label2.Name = "label2";
145+ this.label2.Size = new System.Drawing.Size(65, 18);
146+ this.label2.TabIndex = 12;
147+ this.label2.Text = "登録対象 :";
148+ //
149+ // AddFilteringTextBox
150+ //
151+ this.AddFilteringTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
152+ this.AddFilteringTextBox.Location = new System.Drawing.Point(79, 312);
153+ this.AddFilteringTextBox.Name = "AddFilteringTextBox";
154+ this.AddFilteringTextBox.Size = new System.Drawing.Size(295, 25);
155+ this.AddFilteringTextBox.TabIndex = 11;
156+ //
157+ // RemoveFilteringButton
158+ //
159+ this.RemoveFilteringButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
160+ this.RemoveFilteringButton.Location = new System.Drawing.Point(427, 281);
161+ this.RemoveFilteringButton.Name = "RemoveFilteringButton";
162+ this.RemoveFilteringButton.Size = new System.Drawing.Size(75, 25);
163+ this.RemoveFilteringButton.TabIndex = 10;
164+ this.RemoveFilteringButton.Text = "削除(&R)";
165+ this.RemoveFilteringButton.UseVisualStyleBackColor = true;
166+ this.RemoveFilteringButton.Click += new System.EventHandler(this.RemoveFilteringButton_Click);
167+ //
168+ // AddFilteringButton
169+ //
170+ this.AddFilteringButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
171+ this.AddFilteringButton.Location = new System.Drawing.Point(508, 281);
172+ this.AddFilteringButton.Name = "AddFilteringButton";
173+ this.AddFilteringButton.Size = new System.Drawing.Size(75, 25);
174+ this.AddFilteringButton.TabIndex = 9;
175+ this.AddFilteringButton.Text = "追加(&A)";
176+ this.AddFilteringButton.UseVisualStyleBackColor = true;
177+ this.AddFilteringButton.Click += new System.EventHandler(this.AddFilteringButton_Click);
178+ //
179+ // groupBox2
180+ //
181+ this.groupBox2.Controls.Add(this.FilteringList);
182+ this.groupBox2.Dock = System.Windows.Forms.DockStyle.Top;
183+ this.groupBox2.Location = new System.Drawing.Point(3, 3);
184+ this.groupBox2.Name = "groupBox2";
185+ this.groupBox2.Size = new System.Drawing.Size(580, 272);
186+ this.groupBox2.TabIndex = 8;
187+ this.groupBox2.TabStop = false;
188+ this.groupBox2.Text = "除外登録一覧";
189+ //
190+ // FilteringList
191+ //
192+ this.FilteringList.Dock = System.Windows.Forms.DockStyle.Fill;
193+ this.FilteringList.FormattingEnabled = true;
194+ this.FilteringList.ItemHeight = 18;
195+ this.FilteringList.Location = new System.Drawing.Point(3, 21);
196+ this.FilteringList.Name = "FilteringList";
197+ this.FilteringList.Size = new System.Drawing.Size(574, 248);
198+ this.FilteringList.TabIndex = 0;
199+ //
200+ // tabPage3
201+ //
202+ this.tabPage3.Controls.Add(this.ChangeTextColorButton);
203+ this.tabPage3.Controls.Add(this.PreviewTextColorTextBox);
204+ this.tabPage3.Controls.Add(this.PreviewBackgroundColorTextbox);
205+ this.tabPage3.Controls.Add(this.AddFavoriteTextBox);
206+ this.tabPage3.Controls.Add(this.ChangeBackgroundColorButton);
207+ this.tabPage3.Controls.Add(this.AddFavoriteByLiveTagsButton);
208+ this.tabPage3.Controls.Add(this.AddFavoriteByLiveTitleButton);
209+ this.tabPage3.Controls.Add(this.AddFavoriteByLiveAuthorButton);
210+ this.tabPage3.Controls.Add(this.label1);
211+ this.tabPage3.Controls.Add(this.RemoveFavoriteButton);
212+ this.tabPage3.Controls.Add(this.AddFavoriteButton);
213+ this.tabPage3.Controls.Add(this.groupBox1);
214+ this.tabPage3.Location = new System.Drawing.Point(4, 27);
215+ this.tabPage3.Name = "tabPage3";
216+ this.tabPage3.Padding = new System.Windows.Forms.Padding(3);
217+ this.tabPage3.Size = new System.Drawing.Size(586, 342);
218+ this.tabPage3.TabIndex = 2;
219+ this.tabPage3.Text = "通知登録";
220+ this.tabPage3.UseVisualStyleBackColor = true;
221+ //
222+ // ChangeTextColorButton
223+ //
224+ this.ChangeTextColorButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
225+ this.ChangeTextColorButton.Location = new System.Drawing.Point(365, 312);
226+ this.ChangeTextColorButton.Name = "ChangeTextColorButton";
227+ this.ChangeTextColorButton.Size = new System.Drawing.Size(75, 25);
228+ this.ChangeTextColorButton.TabIndex = 11;
229+ this.ChangeTextColorButton.Text = "文字色";
230+ this.ChangeTextColorButton.UseVisualStyleBackColor = true;
231+ this.ChangeTextColorButton.Click += new System.EventHandler(this.ChangeTextColorButton_Click);
232+ //
233+ // PreviewTextColorTextBox
234+ //
235+ this.PreviewTextColorTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
236+ this.PreviewTextColorTextBox.BackColor = System.Drawing.Color.Black;
237+ this.PreviewTextColorTextBox.Location = new System.Drawing.Point(446, 312);
238+ this.PreviewTextColorTextBox.Name = "PreviewTextColorTextBox";
239+ this.PreviewTextColorTextBox.ReadOnly = true;
240+ this.PreviewTextColorTextBox.Size = new System.Drawing.Size(25, 25);
241+ this.PreviewTextColorTextBox.TabIndex = 10;
242+ //
243+ // PreviewBackgroundColorTextbox
244+ //
245+ this.PreviewBackgroundColorTextbox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
246+ this.PreviewBackgroundColorTextbox.BackColor = System.Drawing.Color.Orange;
247+ this.PreviewBackgroundColorTextbox.Location = new System.Drawing.Point(558, 312);
248+ this.PreviewBackgroundColorTextbox.Name = "PreviewBackgroundColorTextbox";
249+ this.PreviewBackgroundColorTextbox.ReadOnly = true;
250+ this.PreviewBackgroundColorTextbox.Size = new System.Drawing.Size(25, 25);
251+ this.PreviewBackgroundColorTextbox.TabIndex = 8;
252+ //
253+ // AddFavoriteTextBox
254+ //
255+ this.AddFavoriteTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
256+ this.AddFavoriteTextBox.Location = new System.Drawing.Point(79, 284);
257+ this.AddFavoriteTextBox.Name = "AddFavoriteTextBox";
258+ this.AddFavoriteTextBox.Size = new System.Drawing.Size(295, 25);
259+ this.AddFavoriteTextBox.TabIndex = 3;
260+ //
261+ // ChangeBackgroundColorButton
262+ //
263+ this.ChangeBackgroundColorButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
264+ this.ChangeBackgroundColorButton.Location = new System.Drawing.Point(477, 312);
265+ this.ChangeBackgroundColorButton.Name = "ChangeBackgroundColorButton";
266+ this.ChangeBackgroundColorButton.Size = new System.Drawing.Size(75, 25);
267+ this.ChangeBackgroundColorButton.TabIndex = 9;
268+ this.ChangeBackgroundColorButton.Text = "背景色";
269+ this.ChangeBackgroundColorButton.UseVisualStyleBackColor = true;
270+ this.ChangeBackgroundColorButton.Click += new System.EventHandler(this.ChangeBackgroundColorButton_Click);
271+ //
272+ // AddFavoriteByLiveTagsButton
273+ //
274+ this.AddFavoriteByLiveTagsButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
275+ this.AddFavoriteByLiveTagsButton.AutoSize = true;
276+ this.AddFavoriteByLiveTagsButton.Location = new System.Drawing.Point(533, 284);
277+ this.AddFavoriteByLiveTagsButton.Name = "AddFavoriteByLiveTagsButton";
278+ this.AddFavoriteByLiveTagsButton.Size = new System.Drawing.Size(50, 22);
279+ this.AddFavoriteByLiveTagsButton.TabIndex = 7;
280+ this.AddFavoriteByLiveTagsButton.Text = "タグ";
281+ this.AddFavoriteByLiveTagsButton.UseVisualStyleBackColor = true;
282+ //
283+ // AddFavoriteByLiveTitleButton
284+ //
285+ this.AddFavoriteByLiveTitleButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
286+ this.AddFavoriteByLiveTitleButton.AutoSize = true;
287+ this.AddFavoriteByLiveTitleButton.Location = new System.Drawing.Point(465, 284);
288+ this.AddFavoriteByLiveTitleButton.Name = "AddFavoriteByLiveTitleButton";
289+ this.AddFavoriteByLiveTitleButton.Size = new System.Drawing.Size(62, 22);
290+ this.AddFavoriteByLiveTitleButton.TabIndex = 6;
291+ this.AddFavoriteByLiveTitleButton.Text = "配信名";
292+ this.AddFavoriteByLiveTitleButton.UseVisualStyleBackColor = true;
293+ //
294+ // AddFavoriteByLiveAuthorButton
295+ //
296+ this.AddFavoriteByLiveAuthorButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
297+ this.AddFavoriteByLiveAuthorButton.AutoSize = true;
298+ this.AddFavoriteByLiveAuthorButton.Checked = true;
299+ this.AddFavoriteByLiveAuthorButton.Location = new System.Drawing.Point(385, 284);
300+ this.AddFavoriteByLiveAuthorButton.Name = "AddFavoriteByLiveAuthorButton";
301+ this.AddFavoriteByLiveAuthorButton.Size = new System.Drawing.Size(74, 22);
302+ this.AddFavoriteByLiveAuthorButton.TabIndex = 5;
303+ this.AddFavoriteByLiveAuthorButton.TabStop = true;
304+ this.AddFavoriteByLiveAuthorButton.Text = "配信者名";
305+ this.AddFavoriteByLiveAuthorButton.UseVisualStyleBackColor = true;
306+ //
307+ // label1
308+ //
309+ this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
310+ this.label1.AutoSize = true;
311+ this.label1.Location = new System.Drawing.Point(8, 287);
312+ this.label1.Name = "label1";
313+ this.label1.Size = new System.Drawing.Size(65, 18);
314+ this.label1.TabIndex = 4;
315+ this.label1.Text = "登録対象 :";
316+ //
317+ // RemoveFavoriteButton
318+ //
319+ this.RemoveFavoriteButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
320+ this.RemoveFavoriteButton.Location = new System.Drawing.Point(427, 253);
321+ this.RemoveFavoriteButton.Name = "RemoveFavoriteButton";
322+ this.RemoveFavoriteButton.Size = new System.Drawing.Size(75, 25);
323+ this.RemoveFavoriteButton.TabIndex = 2;
324+ this.RemoveFavoriteButton.Text = "削除(&R)";
325+ this.RemoveFavoriteButton.UseVisualStyleBackColor = true;
326+ this.RemoveFavoriteButton.Click += new System.EventHandler(this.RemoveFavoriteButton_Click);
327+ //
328+ // AddFavoriteButton
329+ //
330+ this.AddFavoriteButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
331+ this.AddFavoriteButton.Location = new System.Drawing.Point(508, 253);
332+ this.AddFavoriteButton.Name = "AddFavoriteButton";
333+ this.AddFavoriteButton.Size = new System.Drawing.Size(75, 25);
334+ this.AddFavoriteButton.TabIndex = 1;
335+ this.AddFavoriteButton.Text = "追加(&A)";
336+ this.AddFavoriteButton.UseVisualStyleBackColor = true;
337+ this.AddFavoriteButton.Click += new System.EventHandler(this.AddFavoriteButton_Click);
338+ //
339+ // groupBox1
340+ //
341+ this.groupBox1.Controls.Add(this.FavoriteList);
342+ this.groupBox1.Dock = System.Windows.Forms.DockStyle.Top;
343+ this.groupBox1.Location = new System.Drawing.Point(3, 3);
344+ this.groupBox1.Name = "groupBox1";
345+ this.groupBox1.Size = new System.Drawing.Size(580, 244);
346+ this.groupBox1.TabIndex = 0;
347+ this.groupBox1.TabStop = false;
348+ this.groupBox1.Text = "通知登録一覧";
349+ //
350+ // FavoriteList
351+ //
352+ this.FavoriteList.Dock = System.Windows.Forms.DockStyle.Fill;
353+ this.FavoriteList.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
354+ this.FavoriteList.ForeColor = System.Drawing.Color.Black;
355+ this.FavoriteList.FormattingEnabled = true;
356+ this.FavoriteList.ItemHeight = 18;
357+ this.FavoriteList.Location = new System.Drawing.Point(3, 21);
358+ this.FavoriteList.Name = "FavoriteList";
359+ this.FavoriteList.Size = new System.Drawing.Size(574, 220);
360+ this.FavoriteList.TabIndex = 0;
361+ this.FavoriteList.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.FavoriteList_DrawItem);
362+ //
363+ // tabPage1
364+ //
365+ this.tabPage1.Controls.Add(this.groupBox5);
366+ this.tabPage1.Controls.Add(this.groupBox4);
367+ this.tabPage1.Controls.Add(this.groupBox3);
368+ this.tabPage1.Location = new System.Drawing.Point(4, 27);
369+ this.tabPage1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
370+ this.tabPage1.Name = "tabPage1";
371+ this.tabPage1.Padding = new System.Windows.Forms.Padding(3, 4, 3, 4);
372+ this.tabPage1.Size = new System.Drawing.Size(586, 342);
373+ this.tabPage1.TabIndex = 0;
374+ this.tabPage1.Text = "全般";
375+ this.tabPage1.UseVisualStyleBackColor = true;
376+ //
377+ // tabControl1
378+ //
379+ this.tabControl1.Controls.Add(this.tabPage1);
380+ this.tabControl1.Controls.Add(this.tabPage3);
381+ this.tabControl1.Controls.Add(this.tabPage4);
382+ this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill;
383+ this.tabControl1.Location = new System.Drawing.Point(0, 0);
384+ this.tabControl1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
385+ this.tabControl1.Name = "tabControl1";
386+ this.tabControl1.SelectedIndex = 0;
387+ this.tabControl1.Size = new System.Drawing.Size(594, 373);
388+ this.tabControl1.TabIndex = 0;
389+ //
390+ // groupBox3
391+ //
392+ this.groupBox3.Controls.Add(this.IsNotifyOnPopUpCheckBox);
393+ this.groupBox3.Controls.Add(this.ChangeNotifySoundPathButton);
394+ this.groupBox3.Controls.Add(this.NotifySoundPathTextBox);
395+ this.groupBox3.Controls.Add(this.label3);
396+ this.groupBox3.Dock = System.Windows.Forms.DockStyle.Top;
397+ this.groupBox3.Location = new System.Drawing.Point(3, 4);
398+ this.groupBox3.Name = "groupBox3";
399+ this.groupBox3.Size = new System.Drawing.Size(580, 83);
400+ this.groupBox3.TabIndex = 0;
401+ this.groupBox3.TabStop = false;
402+ this.groupBox3.Text = "通知設定";
403+ //
404+ // label3
405+ //
406+ this.label3.AutoSize = true;
407+ this.label3.Location = new System.Drawing.Point(6, 27);
408+ this.label3.Name = "label3";
409+ this.label3.Size = new System.Drawing.Size(80, 18);
410+ this.label3.TabIndex = 0;
411+ this.label3.Text = "通知音の場所";
412+ //
413+ // NotifySoundPathTextBox
414+ //
415+ this.NotifySoundPathTextBox.Location = new System.Drawing.Point(92, 24);
416+ this.NotifySoundPathTextBox.Name = "NotifySoundPathTextBox";
417+ this.NotifySoundPathTextBox.ReadOnly = true;
418+ this.NotifySoundPathTextBox.Size = new System.Drawing.Size(404, 25);
419+ this.NotifySoundPathTextBox.TabIndex = 1;
420+ //
421+ // ChangeNotifySoundPathButton
422+ //
423+ this.ChangeNotifySoundPathButton.Location = new System.Drawing.Point(502, 24);
424+ this.ChangeNotifySoundPathButton.Name = "ChangeNotifySoundPathButton";
425+ this.ChangeNotifySoundPathButton.Size = new System.Drawing.Size(75, 25);
426+ this.ChangeNotifySoundPathButton.TabIndex = 2;
427+ this.ChangeNotifySoundPathButton.Text = "参照";
428+ this.ChangeNotifySoundPathButton.UseVisualStyleBackColor = true;
429+ this.ChangeNotifySoundPathButton.Click += new System.EventHandler(this.ChangeNotifySoundPathButton_Click);
430+ //
431+ // IsNotifyOnPopUpCheckBox
432+ //
433+ this.IsNotifyOnPopUpCheckBox.AutoSize = true;
434+ this.IsNotifyOnPopUpCheckBox.Location = new System.Drawing.Point(9, 55);
435+ this.IsNotifyOnPopUpCheckBox.Name = "IsNotifyOnPopUpCheckBox";
436+ this.IsNotifyOnPopUpCheckBox.Size = new System.Drawing.Size(255, 22);
437+ this.IsNotifyOnPopUpCheckBox.TabIndex = 3;
438+ this.IsNotifyOnPopUpCheckBox.Text = "タスクトレイ上のポップアップで通知する";
439+ this.IsNotifyOnPopUpCheckBox.UseVisualStyleBackColor = true;
440+ this.IsNotifyOnPopUpCheckBox.CheckedChanged += new System.EventHandler(this.IsNotifyOnPopUpCheckBox_CheckedChanged);
441+ //
442+ // groupBox4
443+ //
444+ this.groupBox4.Controls.Add(this.label5);
445+ this.groupBox4.Controls.Add(this.ViewModeBox);
446+ this.groupBox4.Controls.Add(this.IsStoreTaskTrayCheckBox);
447+ this.groupBox4.Controls.Add(this.IsLockSortCheckBox);
448+ this.groupBox4.Dock = System.Windows.Forms.DockStyle.Top;
449+ this.groupBox4.Location = new System.Drawing.Point(3, 87);
450+ this.groupBox4.Name = "groupBox4";
451+ this.groupBox4.Size = new System.Drawing.Size(580, 122);
452+ this.groupBox4.TabIndex = 1;
453+ this.groupBox4.TabStop = false;
454+ this.groupBox4.Text = "表示設定";
455+ //
456+ // groupBox5
457+ //
458+ this.groupBox5.Controls.Add(this.ChangeIronLivetubePathButton);
459+ this.groupBox5.Controls.Add(this.IronLivetubePathTextBox);
460+ this.groupBox5.Controls.Add(this.label4);
461+ this.groupBox5.Dock = System.Windows.Forms.DockStyle.Top;
462+ this.groupBox5.Location = new System.Drawing.Point(3, 209);
463+ this.groupBox5.Name = "groupBox5";
464+ this.groupBox5.Size = new System.Drawing.Size(580, 60);
465+ this.groupBox5.TabIndex = 2;
466+ this.groupBox5.TabStop = false;
467+ this.groupBox5.Text = "その他設定";
468+ //
469+ // IsLockSortCheckBox
470+ //
471+ this.IsLockSortCheckBox.AutoSize = true;
472+ this.IsLockSortCheckBox.Location = new System.Drawing.Point(9, 24);
473+ this.IsLockSortCheckBox.Name = "IsLockSortCheckBox";
474+ this.IsLockSortCheckBox.Size = new System.Drawing.Size(183, 22);
475+ this.IsLockSortCheckBox.TabIndex = 0;
476+ this.IsLockSortCheckBox.Text = "リストの表示順をロックする";
477+ this.IsLockSortCheckBox.UseVisualStyleBackColor = true;
478+ this.IsLockSortCheckBox.CheckedChanged += new System.EventHandler(this.IsLockSortCheckBox_CheckedChanged);
479+ //
480+ // IsStoreTaskTrayCheckBox
481+ //
482+ this.IsStoreTaskTrayCheckBox.AutoSize = true;
483+ this.IsStoreTaskTrayCheckBox.Location = new System.Drawing.Point(9, 52);
484+ this.IsStoreTaskTrayCheckBox.Name = "IsStoreTaskTrayCheckBox";
485+ this.IsStoreTaskTrayCheckBox.Size = new System.Drawing.Size(183, 22);
486+ this.IsStoreTaskTrayCheckBox.TabIndex = 1;
487+ this.IsStoreTaskTrayCheckBox.Text = "最小化時タスクトレイへ格納";
488+ this.IsStoreTaskTrayCheckBox.UseVisualStyleBackColor = true;
489+ this.IsStoreTaskTrayCheckBox.CheckedChanged += new System.EventHandler(this.IsStoreTaskTrayCheckBox_CheckedChanged);
490+ //
491+ // ChangeIronLivetubePathButton
492+ //
493+ this.ChangeIronLivetubePathButton.Location = new System.Drawing.Point(502, 24);
494+ this.ChangeIronLivetubePathButton.Name = "ChangeIronLivetubePathButton";
495+ this.ChangeIronLivetubePathButton.Size = new System.Drawing.Size(75, 25);
496+ this.ChangeIronLivetubePathButton.TabIndex = 6;
497+ this.ChangeIronLivetubePathButton.Text = "参照";
498+ this.ChangeIronLivetubePathButton.UseVisualStyleBackColor = true;
499+ this.ChangeIronLivetubePathButton.Click += new System.EventHandler(this.ChangeIronLivetubePathButton_Click);
500+ //
501+ // IronLivetubePathTextBox
502+ //
503+ this.IronLivetubePathTextBox.Location = new System.Drawing.Point(154, 24);
504+ this.IronLivetubePathTextBox.Name = "IronLivetubePathTextBox";
505+ this.IronLivetubePathTextBox.ReadOnly = true;
506+ this.IronLivetubePathTextBox.Size = new System.Drawing.Size(342, 25);
507+ this.IronLivetubePathTextBox.TabIndex = 5;
508+ //
509+ // label4
510+ //
511+ this.label4.AutoSize = true;
512+ this.label4.Location = new System.Drawing.Point(6, 27);
513+ this.label4.Name = "label4";
514+ this.label4.Size = new System.Drawing.Size(142, 18);
515+ this.label4.TabIndex = 4;
516+ this.label4.Text = "IronLivetube本体の場所";
517+ //
518+ // ChangeNotifySoundPathDialog
519+ //
520+ this.ChangeNotifySoundPathDialog.Filter = ".wavファイル|*.wav";
521+ //
522+ // ChangeIronLivetubePathDialog
523+ //
524+ this.ChangeIronLivetubePathDialog.Filter = ".exeファイル|*.exe";
525+ //
526+ // ViewModeBox
527+ //
528+ this.ViewModeBox.FormattingEnabled = true;
529+ this.ViewModeBox.Items.AddRange(new object[] {
530+ "大きなアイコン",
531+ "小さなアイコン",
532+ "一覧",
533+ "詳細"});
534+ this.ViewModeBox.Location = new System.Drawing.Point(116, 80);
535+ this.ViewModeBox.Name = "ViewModeBox";
536+ this.ViewModeBox.Size = new System.Drawing.Size(150, 26);
537+ this.ViewModeBox.TabIndex = 2;
538+ this.ViewModeBox.Text = "詳細";
539+ this.ViewModeBox.SelectedIndexChanged += new System.EventHandler(this.ViewModeBox_SelectedIndexChanged);
540+ //
541+ // label5
542+ //
543+ this.label5.AutoSize = true;
544+ this.label5.Location = new System.Drawing.Point(6, 83);
545+ this.label5.Name = "label5";
546+ this.label5.Size = new System.Drawing.Size(104, 18);
547+ this.label5.TabIndex = 3;
548+ this.label5.Text = "リストの表示方法";
549+ //
550+ // SettingsWindow
551+ //
552+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 18F);
553+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
554+ this.ClientSize = new System.Drawing.Size(594, 373);
555+ this.Controls.Add(this.tabControl1);
556+ this.Font = new System.Drawing.Font("メイリオ", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128)));
557+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
558+ this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
559+ this.MaximizeBox = false;
560+ this.MinimizeBox = false;
561+ this.Name = "SettingsWindow";
562+ this.ShowIcon = false;
563+ this.ShowInTaskbar = false;
564+ this.Text = "設定";
565+ this.tabPage4.ResumeLayout(false);
566+ this.tabPage4.PerformLayout();
567+ this.groupBox2.ResumeLayout(false);
568+ this.tabPage3.ResumeLayout(false);
569+ this.tabPage3.PerformLayout();
570+ this.groupBox1.ResumeLayout(false);
571+ this.tabPage1.ResumeLayout(false);
572+ this.tabControl1.ResumeLayout(false);
573+ this.groupBox3.ResumeLayout(false);
574+ this.groupBox3.PerformLayout();
575+ this.groupBox4.ResumeLayout(false);
576+ this.groupBox4.PerformLayout();
577+ this.groupBox5.ResumeLayout(false);
578+ this.groupBox5.PerformLayout();
579+ this.ResumeLayout(false);
580+
581+ }
582+
583+ #endregion
584+
585+ private System.Windows.Forms.TabPage tabPage4;
586+ private System.Windows.Forms.RadioButton AddFilteringByLiveTagsButton;
587+ private System.Windows.Forms.RadioButton AddFilteringByLiveTitleButton;
588+ private System.Windows.Forms.RadioButton AddFilteringByLiveAuthorButton;
589+ private System.Windows.Forms.Label label2;
590+ private System.Windows.Forms.TextBox AddFilteringTextBox;
591+ private System.Windows.Forms.Button RemoveFilteringButton;
592+ private System.Windows.Forms.Button AddFilteringButton;
593+ private System.Windows.Forms.GroupBox groupBox2;
594+ private System.Windows.Forms.ListBox FilteringList;
595+ private System.Windows.Forms.TabPage tabPage3;
596+ private System.Windows.Forms.Button ChangeTextColorButton;
597+ private System.Windows.Forms.TextBox PreviewTextColorTextBox;
598+ private System.Windows.Forms.TextBox PreviewBackgroundColorTextbox;
599+ private System.Windows.Forms.TextBox AddFavoriteTextBox;
600+ private System.Windows.Forms.Button ChangeBackgroundColorButton;
601+ private System.Windows.Forms.RadioButton AddFavoriteByLiveTagsButton;
602+ private System.Windows.Forms.RadioButton AddFavoriteByLiveTitleButton;
603+ private System.Windows.Forms.RadioButton AddFavoriteByLiveAuthorButton;
604+ private System.Windows.Forms.Label label1;
605+ private System.Windows.Forms.Button RemoveFavoriteButton;
606+ private System.Windows.Forms.Button AddFavoriteButton;
607+ private System.Windows.Forms.GroupBox groupBox1;
608+ private System.Windows.Forms.ListBox FavoriteList;
609+ private System.Windows.Forms.TabPage tabPage1;
610+ private System.Windows.Forms.TabControl tabControl1;
611+ private System.Windows.Forms.ColorDialog TextColorDialog;
612+ private System.Windows.Forms.ColorDialog BackgroundColorDialog;
613+ private System.Windows.Forms.GroupBox groupBox5;
614+ private System.Windows.Forms.GroupBox groupBox4;
615+ private System.Windows.Forms.CheckBox IsLockSortCheckBox;
616+ private System.Windows.Forms.GroupBox groupBox3;
617+ private System.Windows.Forms.CheckBox IsNotifyOnPopUpCheckBox;
618+ private System.Windows.Forms.Button ChangeNotifySoundPathButton;
619+ private System.Windows.Forms.TextBox NotifySoundPathTextBox;
620+ private System.Windows.Forms.Label label3;
621+ private System.Windows.Forms.Button ChangeIronLivetubePathButton;
622+ private System.Windows.Forms.TextBox IronLivetubePathTextBox;
623+ private System.Windows.Forms.Label label4;
624+ private System.Windows.Forms.CheckBox IsStoreTaskTrayCheckBox;
625+ private System.Windows.Forms.OpenFileDialog ChangeNotifySoundPathDialog;
626+ private System.Windows.Forms.OpenFileDialog ChangeIronLivetubePathDialog;
627+ private System.Windows.Forms.Label label5;
628+ private System.Windows.Forms.ComboBox ViewModeBox;
629+
630+ }
631+}
\ No newline at end of file
--- LSchedule/SendersWiki.cs (nonexistent)
+++ LSchedule/SendersWiki.cs (revision 14)
@@ -0,0 +1,33 @@
1+using System;
2+using System.Collections.Generic;
3+using System.Linq;
4+using System.Text;
5+using System.Net;
6+using System.Text.RegularExpressions;
7+
8+namespace Aqua877.WinApp.IronLivetube
9+{
10+ public class SendersWiki
11+ {
12+ public Dictionary<string, Uri> SendersWikiList = new Dictionary<string, Uri>();
13+
14+ public SendersWiki()
15+ {
16+ var connector = new WebClient { Encoding = Encoding.UTF8 };
17+ connector.DownloadStringCompleted += this.OnFinishedGetSendersWiki;
18+ connector.DownloadStringAsync(new Uri("http://www30.atwiki.jp/livetube/pages/11.html"));
19+ }
20+
21+ private void OnFinishedGetSendersWiki(object sender, DownloadStringCompletedEventArgs e)
22+ {
23+ if (e.Error == null)
24+ {
25+ var pattern = new Regex("<a href=\"(.*?)\" title=\"(.*?) \\((?:.*?)\\)\">(?:.*?)</a>");
26+ this.SendersWikiList = pattern.Matches(e.Result).Cast<Match>()
27+ .Select(m => new { url = m.Groups[1].Value, sender = m.Groups[2].Value })
28+ .Distinct(xs => xs.sender)
29+ .ToDictionary(i => i.sender, i => new Uri(i.url));
30+ }
31+ }
32+ }
33+}
--- LSchedule/SettingsWindow.cs (nonexistent)
+++ LSchedule/SettingsWindow.cs (revision 14)
@@ -0,0 +1,265 @@
1+using System;
2+using System.Collections.Generic;
3+using System.ComponentModel;
4+using System.Data;
5+using System.Drawing;
6+using System.Linq;
7+using System.Text;
8+using System.Windows.Forms;
9+using System.Reflection;
10+
11+namespace Aqua877.WinApp.IronLivetube.LSchedule
12+{
13+ public partial class SettingsWindow : Form
14+ {
15+ public SettingsWindow()
16+ {
17+ this.InitializeComponent();
18+
19+ this.NotifySoundPathTextBox.Text = Settings.Setting.NotifySoundPath;
20+ this.IsNotifyOnPopUpCheckBox.Checked = Settings.Setting.IsNotifyOnPopUp;
21+ this.IsLockSortCheckBox.Checked = Settings.Setting.IsLockSort;
22+ this.IsStoreTaskTrayCheckBox.Checked = Settings.Setting.IsStoreTaskTray;
23+ switch (Settings.Setting.ViewMode)
24+ {
25+ case View.Details:
26+ this.ViewModeBox.Text = "詳細";
27+ break;
28+
29+ case View.SmallIcon:
30+ this.ViewModeBox.Text = "小さなアイコン";
31+ break;
32+
33+ case View.LargeIcon:
34+ this.ViewModeBox.Text = "大きなアイコン";
35+ break;
36+
37+ case View.List:
38+ this.ViewModeBox.Text = "一覧";
39+ break;
40+
41+ default: break;
42+ }
43+ this.IronLivetubePathTextBox.Text = Settings.Setting.IronLivetubePath;
44+
45+ this.FavoriteList.Items.AddRange(
46+ Settings.Setting.FavoriteList
47+ .Select(xs => String.Format("[{0}] {1}", xs.Target == MatchTarget.Author ? "配信者名" : xs.Target == MatchTarget.Title ? "配信名" : "タグ", xs.FavoriteString)).ToArray());
48+
49+ this.FilteringList.Items.AddRange(
50+ Settings.Setting.FilteringList
51+ .Select(xs => String.Format("[{0}] {1}", xs.Target == MatchTarget.Author ? "配信者名" : xs.Target == MatchTarget.Title ? "配信名" : "タグ", xs.FilteringString)).ToArray());
52+ }
53+
54+ //全般設定タブ
55+ private void ChangeNotifySoundPathButton_Click(object sender, EventArgs e)
56+ {
57+ var ret = this.ChangeNotifySoundPathDialog.ShowDialog();
58+
59+ if (ret == DialogResult.OK)
60+ {
61+ Settings.Setting.NotifySoundPath = this.ChangeNotifySoundPathDialog.FileName;
62+ }
63+ else if (ret == DialogResult.Cancel)
64+ {
65+ Settings.Setting.NotifySoundPath = "";
66+ }
67+ }
68+
69+ private void IsNotifyOnPopUpCheckBox_CheckedChanged(object sender, EventArgs e)
70+ {
71+ Settings.Setting.IsNotifyOnPopUp = this.IsNotifyOnPopUpCheckBox.Checked;
72+ }
73+
74+ private void IsLockSortCheckBox_CheckedChanged(object sender, EventArgs e)
75+ {
76+ Settings.Setting.IsLockSort = this.IsLockSortCheckBox.Checked;
77+ }
78+
79+ private void IsStoreTaskTrayCheckBox_CheckedChanged(object sender, EventArgs e)
80+ {
81+ Settings.Setting.IsStoreTaskTray = this.IsStoreTaskTrayCheckBox.Checked;
82+ }
83+
84+ private void ViewModeBox_SelectedIndexChanged(object sender, EventArgs e)
85+ {
86+ switch (this.ViewModeBox.Text)
87+ {
88+ case "詳細":
89+ Settings.Setting.ViewMode = View.Details;
90+ break;
91+
92+ case "小さなアイコン":
93+ Settings.Setting.ViewMode = View.SmallIcon;
94+ break;
95+
96+ case "大きなアイコン":
97+ Settings.Setting.ViewMode = View.LargeIcon;
98+ break;
99+
100+ case "一覧":
101+ Settings.Setting.ViewMode = View.List;
102+ break;
103+
104+ default: break;
105+ }
106+ }
107+
108+ private void ChangeIronLivetubePathButton_Click(object sender, EventArgs e)
109+ {
110+ var ret = this.ChangeIronLivetubePathDialog.ShowDialog();
111+
112+ if (ret == DialogResult.OK)
113+ {
114+ Settings.Setting.IronLivetubePath = this.ChangeIronLivetubePathDialog.FileName;
115+ }
116+ else if (ret == DialogResult.Cancel)
117+ {
118+ Settings.Setting.IronLivetubePath = "";
119+ }
120+ }
121+
122+ //通知登録タブ
123+ private void AddFavoriteButton_Click(object sender, EventArgs e)
124+ {
125+ if (this.AddFavoriteTextBox.Text == "")
126+ {
127+ return;
128+ }
129+
130+ var t = this.AddFavoriteByLiveAuthorButton.Checked ? MatchTarget.Author : this.AddFavoriteByLiveTitleButton.Checked ? MatchTarget.Title : MatchTarget.Tags;
131+
132+ if (Settings.Setting.FavoriteList.Any(xs => xs.FavoriteString == this.AddFavoriteTextBox.Text && xs.Target == t))
133+ {
134+ return;
135+ }
136+
137+ this.FavoriteList.Items.Add(
138+ String.Format("[{0}] {1}",
139+ this.AddFavoriteByLiveAuthorButton.Checked ? "配信者名" :
140+ this.AddFavoriteByLiveTitleButton.Checked ? "配信名" : "タグ",
141+ this.AddFavoriteTextBox.Text
142+ ));
143+
144+ Settings.Setting.FavoriteList.Add(
145+ new Favorite()
146+ {
147+ FavoriteString = this.AddFavoriteTextBox.Text,
148+ Target = t,
149+ TextColor = this.PreviewTextColorTextBox.BackColor,
150+ BackgroundColor = this.PreviewBackgroundColorTextbox.BackColor
151+ }
152+ );
153+
154+ this.AddFavoriteTextBox.Text = "";
155+ }
156+
157+ private void RemoveFavoriteButton_Click(object sender, EventArgs e)
158+ {
159+ if (!this.FavoriteList.SelectedItems.Cast<object>().Any())
160+ {
161+ return;
162+ }
163+
164+ Settings.Setting.FavoriteList.RemoveAt(this.FavoriteList.SelectedIndex);
165+ this.FavoriteList.Items.Remove(this.FavoriteList.SelectedItems[0]);
166+ }
167+
168+ private void ChangeTextColorButton_Click(object sender, EventArgs e)
169+ {
170+ var ret = this.TextColorDialog.ShowDialog();
171+
172+ if (ret == DialogResult.OK)
173+ {
174+ this.PreviewTextColorTextBox.BackColor = this.TextColorDialog.Color;
175+ }
176+ }
177+
178+ private void ChangeBackgroundColorButton_Click(object sender, EventArgs e)
179+ {
180+ var ret = this.BackgroundColorDialog.ShowDialog();
181+
182+ if (ret == DialogResult.OK)
183+ {
184+ this.PreviewBackgroundColorTextbox.BackColor = this.BackgroundColorDialog.Color;
185+ }
186+ }
187+
188+ private void FavoriteList_DrawItem(object sender, DrawItemEventArgs e)
189+ {
190+ if (e.Index > -1)
191+ {
192+ var row = this.FavoriteList.Items[e.Index] as string;
193+ var t = row.Split(' ')[0].Trim('[').TrimEnd(']') == "配信者名" ? MatchTarget.Author : row.Split(' ')[0].Trim('[').TrimEnd(']') == "配信名" ? MatchTarget.Title : MatchTarget.Tags;
194+ var s = row.Split(' ')[1];
195+ var d = Settings.Setting.FavoriteList.Single(xs => xs.FavoriteString == s && xs.Target == t);
196+
197+ Brush textBrush = null;
198+ Brush backgroundBrush = null;
199+ if ((e.State & DrawItemState.Selected) != DrawItemState.Selected)
200+ {
201+ textBrush = new SolidBrush(d.TextColor);
202+ backgroundBrush = new SolidBrush(d.BackgroundColor);
203+ }
204+ else
205+ {
206+ textBrush = new SolidBrush(e.ForeColor);
207+ backgroundBrush = new SolidBrush(SystemColors.MenuHighlight);
208+ }
209+
210+ e.Graphics.FillRectangle(backgroundBrush, ((Rectangle)(typeof(DrawItemEventArgs).GetField("rect", BindingFlags.Instance | BindingFlags.GetField | BindingFlags.NonPublic).GetValue(e))));
211+ e.Graphics.DrawString(row, e.Font, textBrush, e.Bounds);
212+ }
213+ else
214+ {
215+ e.DrawBackground();
216+ }
217+ }
218+
219+ //除外登録タブ
220+ private void AddFilteringButton_Click(object sender, EventArgs e)
221+ {
222+ if (this.AddFilteringTextBox.Text == "")
223+ {
224+ return;
225+ }
226+
227+ var t = this.AddFilteringByLiveAuthorButton.Checked ? MatchTarget.Author : this.AddFilteringByLiveTitleButton.Checked ? MatchTarget.Title : MatchTarget.Tags;
228+
229+ if (Settings.Setting.FilteringList.Any(xs => xs.FilteringString == this.AddFilteringTextBox.Text && xs.Target == t))
230+ {
231+ return;
232+ }
233+
234+ this.FilteringList.Items.Add(
235+ String.Format("[{0}] {1}",
236+ this.AddFilteringByLiveAuthorButton.Checked ? "配信者名" :
237+ this.AddFilteringByLiveTitleButton.Checked ? "配信名" : "タグ",
238+ this.AddFilteringTextBox.Text
239+ ));
240+
241+ Settings.Setting.FilteringList.Add(
242+ new Filtering()
243+ {
244+ FilteringString = this.AddFilteringTextBox.Text,
245+ Target = t,
246+ }
247+ );
248+
249+ this.AddFilteringTextBox.Text = "";
250+ }
251+
252+ private void RemoveFilteringButton_Click(object sender, EventArgs e)
253+ {
254+ if (!this.FilteringList.SelectedItems.Cast<object>().Any())
255+ {
256+ return;
257+ }
258+
259+ Settings.Setting.FilteringList.RemoveAt(this.FilteringList.SelectedIndex);
260+ this.FilteringList.Items.Remove(this.FilteringList.SelectedItems[0]);
261+ }
262+
263+
264+ }
265+}
--- LSchedule/Settings.cs (nonexistent)
+++ LSchedule/Settings.cs (revision 14)
@@ -0,0 +1,96 @@
1+using System;
2+using System.Collections.Generic;
3+using System.Linq;
4+using System.Text;
5+using System.Drawing;
6+using System.IO;
7+using System.Xml.Serialization;
8+using System.Runtime.Serialization.Formatters.Binary;
9+using System.Windows.Forms;
10+
11+namespace Aqua877.WinApp.IronLivetube.LSchedule
12+{
13+ public static class Settings
14+ {
15+ public static SettingObject Setting;
16+ public static Image LoadingImage;
17+
18+ public static void Load()
19+ {
20+ using (var fs = new FileStream(Environment.CurrentDirectory + "\\Settings.dat", FileMode.OpenOrCreate, FileAccess.Read))
21+ {
22+ try
23+ {
24+ var deserializer = new BinaryFormatter();
25+ Setting = deserializer.Deserialize(fs) as SettingObject;
26+
27+ if (Setting == null)
28+ {
29+ Setting = new SettingObject();
30+ }
31+ }
32+ catch
33+ {
34+ Setting = new SettingObject();
35+ }
36+ }
37+
38+ LoadingImage = Image.FromFile(Environment.CurrentDirectory + "\\Loading.png");
39+ }
40+
41+ public static void Save()
42+ {
43+ using (var fs = new FileStream(Environment.CurrentDirectory + "\\Settings.dat", FileMode.Create, FileAccess.Write))
44+ {
45+ try
46+ {
47+ var serializer = new BinaryFormatter();
48+ serializer.Serialize(fs, Setting);
49+ }
50+ catch (IOException)
51+ {
52+ return;
53+ }
54+ }
55+
56+ LoadingImage.Dispose();
57+ }
58+ }
59+
60+ public enum MatchTarget
61+ {
62+ Author,
63+ Title,
64+ Tags
65+ }
66+
67+ [Serializable]
68+ public class Favorite
69+ {
70+ public string FavoriteString { get; set; }
71+ public MatchTarget Target { get; set; }
72+ public Color TextColor { get; set; }
73+ public Color BackgroundColor { get; set; }
74+ }
75+
76+ [Serializable]
77+ public class Filtering
78+ {
79+ public string FilteringString { get; set; }
80+ public MatchTarget Target { get; set; }
81+ }
82+
83+ [Serializable]
84+ public class SettingObject
85+ {
86+ public List<Favorite> FavoriteList = new List<Favorite>();
87+ public List<Filtering> FilteringList = new List<Filtering>();
88+
89+ public string NotifySoundPath;
90+ public bool IsNotifyOnPopUp;
91+ public bool IsLockSort;
92+ public bool IsStoreTaskTray;
93+ public View ViewMode = View.Details;
94+ public string IronLivetubePath;
95+ }
96+}
--- LSchedule/MainWindowListViewSorter.cs (nonexistent)
+++ LSchedule/MainWindowListViewSorter.cs (revision 14)
@@ -0,0 +1,145 @@
1+using System;
2+using System.Collections.Generic;
3+using System.Linq;
4+using System.Text;
5+using System.Collections;
6+using System.Windows.Forms;
7+
8+namespace Aqua877.WinApp.IronLivetube.LSchedule
9+{
10+ public class MainWindowListViewSorter : IComparer
11+ {
12+ private int _Column;
13+ private SortOrder _Order;
14+
15+ public int Column
16+ {
17+ set
18+ {
19+ if (this._Column == value)
20+ {
21+ if (this._Order == SortOrder.Ascending)
22+ {
23+ this._Order = SortOrder.Descending;
24+ }
25+ else if (this._Order == SortOrder.Descending)
26+ {
27+ this._Order = SortOrder.Ascending;
28+ }
29+ }
30+ this._Column = value;
31+ }
32+ get
33+ {
34+ return this._Column;
35+ }
36+ }
37+
38+ public SortOrder Order
39+ {
40+ set
41+ {
42+ this._Order = value;
43+ }
44+ get
45+ {
46+ return this._Order;
47+ }
48+ }
49+
50+ public MainWindowListViewSorter(int column, SortOrder order)
51+ {
52+ this._Column = column;
53+ this._Order = order;
54+ }
55+
56+ public MainWindowListViewSorter()
57+ {
58+ this._Column = 0;
59+ this._Order = SortOrder.Ascending;
60+ }
61+
62+ public int Compare(object x, object y)
63+ {
64+ int result = 0;
65+
66+ var itemx = x as ListViewItem;
67+ var itemy = y as ListViewItem;
68+
69+ switch (this.Column)
70+ {
71+ case 2:
72+ case 3:
73+ case 4:
74+ {
75+ if (itemx.SubItems[this._Column].Text == "")
76+ {
77+ if (itemy.SubItems[this._Column].Text == "")
78+ {
79+ result = 0;
80+ }
81+ else
82+ {
83+ result = -1;
84+ }
85+ }
86+ else if (itemy.SubItems[this._Column].Text == "")
87+ {
88+ result = 1;
89+ }
90+ else
91+ {
92+ result = int.Parse(itemx.SubItems[this._Column].Text).CompareTo(int.Parse(itemy.SubItems[this._Column].Text));
93+ break;
94+ }
95+ break;
96+ }
97+
98+ case 0:
99+ case 1:
100+ case 6:
101+ {
102+ if (itemx.SubItems[this._Column].Text == "")
103+ {
104+ if (itemy.SubItems[this._Column].Text == "")
105+ {
106+ result = 0;
107+ }
108+ else
109+ {
110+ result = -1;
111+ }
112+ }
113+ else if (itemy.SubItems[this._Column].Text == "")
114+ {
115+ result = 1;
116+ }
117+ else
118+ {
119+ result = string.Compare(itemx.SubItems[this._Column].Text, itemy.SubItems[this._Column].Text);
120+ }
121+ break;
122+ }
123+
124+ case 5:
125+ {
126+ result = DateTime.Compare(
127+ DateTime.Parse(itemx.SubItems[this._Column].Text),
128+ DateTime.Parse(itemy.SubItems[this._Column].Text)
129+ );
130+ break;
131+ }
132+ }
133+
134+ if (this._Order == SortOrder.Descending)
135+ {
136+ result = -result;
137+ }
138+ else if (this._Order == SortOrder.None)
139+ {
140+ result = 0;
141+ }
142+ return result;
143+ }
144+ }
145+}
--- LSchedule/bin/Release/LSchedule.vshost.exe.manifest (nonexistent)
+++ LSchedule/bin/Release/LSchedule.vshost.exe.manifest (revision 14)
@@ -0,0 +1,11 @@
1+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
3+ <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
4+ <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
5+ <security>
6+ <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
7+ <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
8+ </requestedPrivileges>
9+ </security>
10+ </trustInfo>
11+</assembly>
--- LSchedule/bin/Debug/Settings.xml (nonexistent)
+++ LSchedule/bin/Debug/Settings.xml (revision 14)
@@ -0,0 +1,12 @@
1+<?xml version="1.0"?>
2+<SettingObject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3+ <FavoriteList>
4+ <Favorite>
5+ <FavoriteString>ああああああああああああああああ</FavoriteString>
6+ <Target>Author</Target>
7+ <TextColor />
8+ <BackgroundColor />
9+ </Favorite>
10+ </FavoriteList>
11+ <FilteringList />
12+</SettingObject>
\ No newline at end of file
--- LSchedule/bin/Debug/LSchedule.vshost.exe.manifest (nonexistent)
+++ LSchedule/bin/Debug/LSchedule.vshost.exe.manifest (revision 14)
@@ -0,0 +1,11 @@
1+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
3+ <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
4+ <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
5+ <security>
6+ <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
7+ <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
8+ </requestedPrivileges>
9+ </security>
10+ </trustInfo>
11+</assembly>
--- LSchedule/obj/x86/Debug/LSchedule.csproj.FileListAbsolute.txt (nonexistent)
+++ LSchedule/obj/x86/Debug/LSchedule.csproj.FileListAbsolute.txt (revision 14)
@@ -0,0 +1,11 @@
1+D:\Users\AquaMarine\Documents\Visual Studio 2010\Projects\こめんとびゅわー(仮) ver.2.x\LSchedule\bin\Debug\LSchedule.exe.config
2+D:\Users\AquaMarine\Documents\Visual Studio 2010\Projects\こめんとびゅわー(仮) ver.2.x\LSchedule\bin\Debug\LSchedule.exe
3+D:\Users\AquaMarine\Documents\Visual Studio 2010\Projects\こめんとびゅわー(仮) ver.2.x\LSchedule\bin\Debug\LSchedule.pdb
4+D:\Users\AquaMarine\Documents\Visual Studio 2010\Projects\こめんとびゅわー(仮) ver.2.x\LSchedule\obj\x86\Debug\ResolveAssemblyReference.cache
5+D:\Users\AquaMarine\Documents\Visual Studio 2010\Projects\こめんとびゅわー(仮) ver.2.x\LSchedule\obj\x86\Debug\GenerateResource.read.1.tlog
6+D:\Users\AquaMarine\Documents\Visual Studio 2010\Projects\こめんとびゅわー(仮) ver.2.x\LSchedule\obj\x86\Debug\GenerateResource.write.1.tlog
7+D:\Users\AquaMarine\Documents\Visual Studio 2010\Projects\こめんとびゅわー(仮) ver.2.x\LSchedule\obj\x86\Debug\LSchedule.exe
8+D:\Users\AquaMarine\Documents\Visual Studio 2010\Projects\こめんとびゅわー(仮) ver.2.x\LSchedule\obj\x86\Debug\LSchedule.pdb
9+D:\Users\AquaMarine\Documents\Visual Studio 2010\Projects\こめんとびゅわー(仮) ver.2.x\LSchedule\obj\x86\Debug\Aqua877.WinApp.IronLivetube.LSchedule.MainWindow.resources
10+D:\Users\AquaMarine\Documents\Visual Studio 2010\Projects\こめんとびゅわー(仮) ver.2.x\LSchedule\obj\x86\Debug\Aqua877.WinApp.IronLivetube.LSchedule.Properties.Resources.resources
11+D:\Users\AquaMarine\Documents\Visual Studio 2010\Projects\こめんとびゅわー(仮) ver.2.x\LSchedule\obj\x86\Debug\Aqua877.WinApp.IronLivetube.LSchedule.SettingsWindow.resources
Show on old repository browser