OSDN Git Service

Merge branch 'feature/37178_プロジェクトとソリューションファイルの英語化' into develop
[dtxmania/dtxmania.git] / DTXMania / コード / ステージ / 05.選曲 / CActSortSongs.cs
diff --git a/DTXMania/コード/ステージ/05.選曲/CActSortSongs.cs b/DTXMania/コード/ステージ/05.選曲/CActSortSongs.cs
new file mode 100644 (file)
index 0000000..2f17d41
--- /dev/null
@@ -0,0 +1,157 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Text;
+
+namespace DTXMania
+{
+       internal class CActSortSongs : CActSelectPopupMenu
+       {
+               public CActSortSongs()
+               {
+                       List<COptionBase> lci = new List<COptionBase>();
+
+                       string[] items = new string[] { "Z,Y,X,...", "A,B,C,..." };
+                       COptionStringList title = new COptionStringList(items[0]);
+                       title.Initialize( "strSortByTitle", items);
+                       title.OnEnterDelegate = () =>
+                       {
+                               this.act曲リスト.t曲リストのソート(CDTXMania.Instance.Songs管理.t曲リストのソート2_タイトル順, eInst,
+                                               title.Index == 0 ? -1 : 1);
+                               this.act曲リスト.t選択曲が変更された(true);
+                       };
+                       lci.Add( title );
+
+                       items = new string[] { "99,98,97,...", "1,2,3,..." };
+                       COptionStringList level = new COptionStringList(items[0]);
+                       level.Initialize( "strSortByLevel", items);
+                       level.OnEnterDelegate = () =>
+                       {
+                               this.act曲リスト.t曲リストのソート(
+                                                               CDTXMania.Instance.Songs管理.t曲リストのソート4_LEVEL順, eInst,
+                                                               level.Index == 0 ? -1 : 1,
+                                                               this.act曲リスト.n現在のアンカ難易度レベル);
+                               this.act曲リスト.t選択曲が変更された(true);
+                       };
+                       lci.Add( level );
+
+                       items = new string[] { "E,D,C,...", "SS,S,A,..." };
+                       COptionStringList bestrank = new COptionStringList(items[0]);
+                       bestrank.Initialize( "strSortByBestRank", items);
+                       bestrank.OnEnterDelegate = () =>
+                       {
+                               this.act曲リスト.t曲リストのソート(
+                                                               CDTXMania.Instance.Songs管理.t曲リストのソート5_BestRank順, eInst,
+                                                               bestrank.Index == 0 ? -1 : 1,
+                                                               this.act曲リスト.n現在のアンカ難易度レベル
+                                               );
+                       };
+                       lci.Add( bestrank );
+
+                       items = new string[] { "10,9,8,...", "1,2,3,..." };
+                       COptionStringList playcount = new COptionStringList(items[0]);
+                       playcount.Initialize( "strSortByPlayCount", items);
+                       playcount.OnEnterDelegate = () =>
+                       {
+                               this.act曲リスト.t曲リストのソート(
+                                               CDTXMania.Instance.Songs管理.t曲リストのソート3_演奏回数の多い順, eInst,
+                                               playcount.Index == 0 ? -1 : 1,
+                                               this.act曲リスト.n現在のアンカ難易度レベル
+                               );
+                               this.act曲リスト.t選択曲が変更された(true);
+                       };
+                       lci.Add( playcount );
+
+                       items = new string[] { "Z,Y,X,...", "A,B,C,..." };
+                       COptionStringList author = new COptionStringList(items[0]);
+                       author.Initialize( "strSortByAuthor", items);
+                       author.OnEnterDelegate = () =>
+                       {
+                               this.act曲リスト.t曲リストのソート(
+                                                               CDTXMania.Instance.Songs管理.t曲リストのソート8_アーティスト名順, eInst,
+                                                               author.Index == 0 ? -1 : 1,
+                                                               this.act曲リスト.n現在のアンカ難易度レベル
+                                               );
+                               this.act曲リスト.t選択曲が変更された(true);
+                       };
+                       lci.Add( author );
+
+                       items = new string[] { "100,99,98,...", "1,2,3,..." };
+                       COptionStringList skillpoint = new COptionStringList(items[0]);
+                       skillpoint.Initialize( "strSortBySkillPoint", items);
+                       skillpoint.OnEnterDelegate = () =>
+                       {
+                               this.act曲リスト.t曲リストのソート(
+                                                               CDTXMania.Instance.Songs管理.t曲リストのソート6_SkillPoint順, eInst,
+                                                               skillpoint.Index == 0 ? -1 : 1,
+                                                               this.act曲リスト.n現在のアンカ難易度レベル
+                                               );
+                               this.act曲リスト.t選択曲が変更された(true);
+                       };
+                       lci.Add( skillpoint );
+                       
+                       items = new string[] { "Dec.31,30,...", "Jan.1,2,..." };
+                       COptionStringList date = new COptionStringList(items[0]);
+                       date.Initialize( "strSortByDate", items);
+                       date.OnEnterDelegate = () =>
+                       {
+                               this.act曲リスト.t曲リストのソート(
+                                                                               CDTXMania.Instance.Songs管理.t曲リストのソート7_更新日時順, eInst,
+                                                                               date.Index == 0 ? -1 : 1,
+                                                                               this.act曲リスト.n現在のアンカ難易度レベル
+                                                               );
+                               this.act曲リスト.t選択曲が変更された(true);
+                       };
+                       lci.Add( date );
+
+
+                       COptionString ret = new COptionString("Return");
+                       ret.Initialize( "strSortReturn");
+                       ret.OnEnterDelegate = () =>
+                       {
+                               this.tDeativatePopupMenu();
+                       };
+                       lci.Add( ret );
+
+                       base.Initialize(lci, false, CDTXMania.Instance.Resources.Label("strSortMenu"));
+               }
+
+
+               // メソッド
+               public void tActivatePopupMenu(EPart einst, ref CActSelect曲リスト ca)
+               {
+                       this.act曲リスト = ca;
+                       base.tActivatePopupMenu(einst);
+               }
+
+               // CActivity 実装
+
+               public override void On活性化()
+               {
+                       base.On活性化();
+               }
+               public override void On非活性化()
+               {
+                       if (!base.b活性化してない)
+                       {
+                               base.On非活性化();
+                       }
+               }
+               public override void OnManagedリソースの作成()
+               {
+                       if (!base.b活性化してない)
+                       {
+                               base.OnManagedリソースの作成();
+                       }
+               }
+               public override void OnManagedリソースの解放()
+               {
+                       base.OnManagedリソースの解放();
+               }
+
+
+               CActSelect曲リスト act曲リスト;
+       }
+
+
+}