OSDN Git Service

#36057 configファイルがxml化したため、従来Config.iniファイルを直接編集することでのみ設定変更できていた項目が、設定変更しづらくなった。
[dtxmania/dtxmania.git] / DTXManiaプロジェクト / コード / ステージ / 05.選曲 / CActSortSongs.cs
index 6560442..480c0f2 100644 (file)
@@ -7,111 +7,123 @@ namespace DTXMania
 {\r
        internal class CActSortSongs : CActSelectPopupMenu\r
        {\r
-\r
-               // コンストラクタ\r
-\r
                public CActSortSongs()\r
                {\r
-                       List<CItemBase> lci = new List<CItemBase>();\r
-                       lci.Add( new CItemList( "Title",                CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "Z,Y,X,...",               "A,B,C,..." } ) );\r
-                       lci.Add( new CItemList( "Level",                CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "99,98,97,...",    "1,2,3,..." } ) );\r
-                       lci.Add( new CItemList( "Best Rank",    CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "E,D,C,...",               "SS,S,A,..." } ) );\r
-                       lci.Add( new CItemList( "PlayCount",    CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "10,9,8,...",              "1,2,3,..." } ) );\r
-                       lci.Add( new CItemList( "Author",               CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "Z,Y,X,...",               "A,B,C,..." } ) );\r
-                       lci.Add( new CItemList( "SkillPoint",   CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "100,99,98,...",   "1,2,3,..." } ) );\r
-#if TEST_SORTBGM\r
-                       lci.Add( new CItemList( "BPM",                  CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "300,200,...",     "70,80,90,..." } ) );\r
-#endif\r
-                       lci.Add( new CItemList( "Date",                 CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "Dec.31,30,...",   "Jan.1,2,..." } ) );\r
-                       lci.Add( new CItemList( "Return",               CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "",                                "" } ) );\r
-                       \r
-                       base.Initialize( lci, false, "SORT MENU" );\r
-               }\r
+                       List<COptionBase> lci = new List<COptionBase>();\r
 \r
+                       string[] items = new string[] { "Z,Y,X,...", "A,B,C,..." };\r
+                       COptionStringList title = new COptionStringList(items[0]);\r
+                       title.Initialize( "strSortByTitle", items);\r
+                       title.OnEnterDelegate = () =>\r
+                       {\r
+                               this.act曲リスト.t曲リストのソート(CDTXMania.Instance.Songs管理.t曲リストのソート2_タイトル順, eInst,\r
+                                               title.Index == 0 ? -1 : 1);\r
+                               this.act曲リスト.t選択曲が変更された(true);\r
+                       };\r
+                       lci.Add( title );\r
 \r
-               // メソッド\r
-               public void tActivatePopupMenu( E楽器パート einst, ref CActSelect曲リスト ca )\r
-               {\r
-                   this.act曲リスト = ca;\r
-                       base.tActivatePopupMenu( einst );\r
-               }\r
-               //public void tDeativatePopupMenu()\r
-               //{\r
-               //      base.tDeativatePopupMenu();\r
-               //}\r
+                       items = new string[] { "99,98,97,...", "1,2,3,..." };\r
+                       COptionStringList level = new COptionStringList(items[0]);\r
+                       level.Initialize( "strSortByLevel", items);\r
+                       level.OnEnterDelegate = () =>\r
+                       {\r
+                               this.act曲リスト.t曲リストのソート(\r
+                                                               CDTXMania.Instance.Songs管理.t曲リストのソート4_LEVEL順, eInst,\r
+                                                               level.Index == 0 ? -1 : 1,\r
+                                                               this.act曲リスト.n現在のアンカ難易度レベル);\r
+                               this.act曲リスト.t選択曲が変更された(true);\r
+                       };\r
+                       lci.Add( level );\r
 \r
+                       items = new string[] { "E,D,C,...", "SS,S,A,..." };\r
+                       COptionStringList bestrank = new COptionStringList(items[0]);\r
+                       bestrank.Initialize( "strSortByBestRank", items);\r
+                       bestrank.OnEnterDelegate = () =>\r
+                       {\r
+                               this.act曲リスト.t曲リストのソート(\r
+                                                               CDTXMania.Instance.Songs管理.t曲リストのソート5_BestRank順, eInst,\r
+                                                               bestrank.Index == 0 ? -1 : 1,\r
+                                                               this.act曲リスト.n現在のアンカ難易度レベル\r
+                                               );\r
+                       };\r
+                       lci.Add( bestrank );\r
 \r
-               public override void tEnter押下Main( int nSortOrder )\r
-               {\r
-                       nSortOrder *= 2;        // 0,1  => -1, 1\r
-                       nSortOrder -= 1;\r
-                       switch ( n現在の選択行 )\r
+                       items = new string[] { "10,9,8,...", "1,2,3,..." };\r
+                       COptionStringList playcount = new COptionStringList(items[0]);\r
+                       playcount.Initialize( "strSortByPlayCount", items);\r
+                       playcount.OnEnterDelegate = () =>\r
                        {\r
-                               case (int) EOrder.Title:\r
-                                       this.act曲リスト.t曲リストのソート(\r
-                                               CDTXMania.Songs管理.t曲リストのソート2_タイトル順, eInst, nSortOrder\r
-                                       );\r
-                                       this.act曲リスト.t選択曲が変更された(true);\r
-                                       break;\r
-                               case (int) EOrder.Level:\r
-                                       this.act曲リスト.t曲リストのソート(\r
-                                               CDTXMania.Songs管理.t曲リストのソート4_LEVEL順, eInst, nSortOrder,\r
-                                               this.act曲リスト.n現在のアンカ難易度レベル\r
-                                       );\r
-                                       this.act曲リスト.t選択曲が変更された( true );\r
-                                       break;\r
-                               case (int) EOrder.BestRank:\r
-                                       this.act曲リスト.t曲リストのソート(\r
-                                               CDTXMania.Songs管理.t曲リストのソート5_BestRank順, eInst, nSortOrder,\r
-                                               this.act曲リスト.n現在のアンカ難易度レベル\r
-                                       );\r
-                                       break;\r
-                               case (int) EOrder.PlayCount:\r
-                                       // this.act曲リスト.t曲リストのソート3_演奏回数の多い順( eInst, nSortOrder );\r
-                                       this.act曲リスト.t曲リストのソート(\r
-                                               CDTXMania.Songs管理.t曲リストのソート3_演奏回数の多い順, eInst, nSortOrder,\r
-                                               this.act曲リスト.n現在のアンカ難易度レベル\r
-                                       );\r
-                                       this.act曲リスト.t選択曲が変更された( true );\r
-                                       break;\r
-                               case (int) EOrder.Author:\r
-                                       this.act曲リスト.t曲リストのソート(\r
-                                               CDTXMania.Songs管理.t曲リストのソート8_アーティスト名順, eInst, nSortOrder,\r
+                               this.act曲リスト.t曲リストのソート(\r
+                                               CDTXMania.Instance.Songs管理.t曲リストのソート3_演奏回数の多い順, eInst,\r
+                                               playcount.Index == 0 ? -1 : 1,\r
                                                this.act曲リスト.n現在のアンカ難易度レベル\r
-                                       );\r
-                                       this.act曲リスト.t選択曲が変更された( true );\r
-                                       break;\r
-                               case (int) EOrder.SkillPoint:\r
-                                       this.act曲リスト.t曲リストのソート(\r
-                                               CDTXMania.Songs管理.t曲リストのソート6_SkillPoint順, eInst, nSortOrder,\r
-                                               this.act曲リスト.n現在のアンカ難易度レベル\r
-                                       );\r
-                                       this.act曲リスト.t選択曲が変更された( true );\r
-                                       break;\r
-#if TEST_SORTBGM\r
-                                               case (int) ESortItem.BPM:\r
-                                               this.act曲リスト.t曲リストのソート(\r
-                                                       CDTXMania.Songs管理.t曲リストのソート9_BPM順, eInst, nSortOrder,\r
-                                                       this.act曲リスト.n現在のアンカ難易度レベル\r
+                               );\r
+                               this.act曲リスト.t選択曲が変更された(true);\r
+                       };\r
+                       lci.Add( playcount );\r
+\r
+                       items = new string[] { "Z,Y,X,...", "A,B,C,..." };\r
+                       COptionStringList author = new COptionStringList(items[0]);\r
+                       author.Initialize( "strSortByAuthor", items);\r
+                       author.OnEnterDelegate = () =>\r
+                       {\r
+                               this.act曲リスト.t曲リストのソート(\r
+                                                               CDTXMania.Instance.Songs管理.t曲リストのソート8_アーティスト名順, eInst,\r
+                                                               author.Index == 0 ? -1 : 1,\r
+                                                               this.act曲リスト.n現在のアンカ難易度レベル\r
                                                );\r
-                                       this.act曲リスト.t選択曲が変更された(true);\r
-                                               break;\r
-#endif\r
-                               case (int) EOrder.Date:\r
-                                       this.act曲リスト.t曲リストのソート(\r
-                                               CDTXMania.Songs管理.t曲リストのソート7_更新日時順, eInst, nSortOrder,\r
-                                               this.act曲リスト.n現在のアンカ難易度レベル\r
-                                       );\r
-                                       this.act曲リスト.t選択曲が変更された( true );\r
-                                       break;\r
-                               case (int) EOrder.Return:\r
-                                       this.tDeativatePopupMenu();\r
-                                       break;\r
-                               default:\r
-                                       break;\r
-                       }\r
+                               this.act曲リスト.t選択曲が変更された(true);\r
+                       };\r
+                       lci.Add( author );\r
+\r
+                       items = new string[] { "100,99,98,...", "1,2,3,..." };\r
+                       COptionStringList skillpoint = new COptionStringList(items[0]);\r
+                       skillpoint.Initialize( "strSortBySkillPoint", items);\r
+                       skillpoint.OnEnterDelegate = () =>\r
+                       {\r
+                               this.act曲リスト.t曲リストのソート(\r
+                                                               CDTXMania.Instance.Songs管理.t曲リストのソート6_SkillPoint順, eInst,\r
+                                                               skillpoint.Index == 0 ? -1 : 1,\r
+                                                               this.act曲リスト.n現在のアンカ難易度レベル\r
+                                               );\r
+                               this.act曲リスト.t選択曲が変更された(true);\r
+                       };\r
+                       lci.Add( skillpoint );\r
+                       \r
+                       items = new string[] { "Dec.31,30,...", "Jan.1,2,..." };\r
+                       COptionStringList date = new COptionStringList(items[0]);\r
+                       date.Initialize( "strSortByDate", items);\r
+                       date.OnEnterDelegate = () =>\r
+                       {\r
+                               this.act曲リスト.t曲リストのソート(\r
+                                                                               CDTXMania.Instance.Songs管理.t曲リストのソート7_更新日時順, eInst,\r
+                                                                               date.Index == 0 ? -1 : 1,\r
+                                                                               this.act曲リスト.n現在のアンカ難易度レベル\r
+                                                               );\r
+                               this.act曲リスト.t選択曲が変更された(true);\r
+                       };\r
+                       lci.Add( date );\r
+\r
+\r
+                       COptionString ret = new COptionString("Return");\r
+                       ret.Initialize( "strSortReturn");\r
+                       ret.OnEnterDelegate = () =>\r
+                       {\r
+                               this.tDeativatePopupMenu();\r
+                       };\r
+                       lci.Add( ret );\r
+\r
+                       base.Initialize(lci, false, CDTXMania.Instance.Resources.Label("strSortMenu"));\r
                }\r
-               \r
+\r
+\r
+               // メソッド\r
+               public void tActivatePopupMenu(EPart einst, ref CActSelect曲リスト ca)\r
+               {\r
+                       this.act曲リスト = ca;\r
+                       base.tActivatePopupMenu(einst);\r
+               }\r
+\r
                // CActivity 実装\r
 \r
                public override void On活性化()\r
@@ -120,14 +132,14 @@ namespace DTXMania
                }\r
                public override void On非活性化()\r
                {\r
-                       if( !base.b活性化してない )\r
+                       if (!base.b活性化してない)\r
                        {\r
                                base.On非活性化();\r
                        }\r
                }\r
                public override void OnManagedリソースの作成()\r
                {\r
-                       if( !base.b活性化してない )\r
+                       if (!base.b活性化してない)\r
                        {\r
                                base.OnManagedリソースの作成();\r
                        }\r
@@ -137,25 +149,8 @@ namespace DTXMania
                        base.OnManagedリソースの解放();\r
                }\r
 \r
-               #region [ private ]\r
-               //-----------------\r
 \r
-               private CActSelect曲リスト act曲リスト;\r
-\r
-               private enum EOrder : int\r
-               {\r
-                       Title = 0, Level, BestRank, PlayCount,\r
-                       Author,\r
-                       SkillPoint,\r
-#if TEST_SORTBGM\r
-                       BPM,\r
-#endif\r
-                       Date,\r
-                       Return, END,\r
-                       Default = 99\r
-               };\r
-               //-----------------\r
-               #endregion\r
+               CActSelect曲リスト act曲リスト;\r
        }\r
 \r
 \r