{\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
}\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
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