OSDN Git Service

#24756 ソートメニュー内の決定を右シンバルでできなかった問題を修正。
[dtxmania/dtxmania.git] / DTXManiaプロジェクト / コード / ステージ / 05.選曲 / CActSortSongs.cs
index dbe3a50..097b1d9 100644 (file)
@@ -1,6 +1,7 @@
 using System;\r
 using System.Collections.Generic;\r
 using System.Diagnostics;\r
+using System.Globalization;\r
 using System.Text;\r
 using System.Runtime.InteropServices;\r
 using System.Drawing;\r
@@ -33,6 +34,7 @@ namespace DTXMania
                        this.n現在の選択行 = 0;\r
                        nSortType = (int) ESortItem.Default;\r
                        nSortOrder = (int) ESortOrder.Descend;\r
+                       bIsJapanLocale = ( CultureInfo.CurrentCulture.TwoLetterISOLanguageName == "ja" );       // #24758 2011.4.1 yyagi add; To check JP locale\r
                }\r
 \r
 \r
@@ -40,6 +42,8 @@ namespace DTXMania
                public void tActivateSortMenu( ref CActSelect曲リスト ca )\r
                {\r
                        this.act曲リスト = ca;\r
+                       nSortType = (int) ESortItem.Default;            // #24757 2011.4.1 yyagi: Clear sorting status in each stating menu.\r
+                       nSortOrder = (int) ESortOrder.Descend;          //\r
                        this.bIsActiveSortMenu = true;\r
                }\r
                public void tDeativateSortMenu()\r
@@ -62,7 +66,6 @@ namespace DTXMania
                                switch( this.n現在の選択行 )\r
                                {\r
                                        case (int) ESortItem.Title:\r
-//                                             this.act曲リスト.t曲リストのソート2_タイトル順( eInst, nSortOrder );\r
                                                this.act曲リスト.t曲リストのソート(\r
                                                        CDTXMania.Songs管理.t曲リストのソート2_タイトル順, eInst, nSortOrder\r
                                                );\r
@@ -161,6 +164,7 @@ namespace DTXMania
                        {\r
                                this.txCursor = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenConfig menu cursor.png" ), false );\r
                                this.txSortMenuBackground = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenSelect sort menu background.png" ), false );\r
+                               this.txSortMenuChoices = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenSelect sort menu choices.png" ), false );    // #24758 2011.4.1 yyagi; for JP locale, Japanese 昇順/降順 (ascend/descend) png parts.\r
                                base.OnManagedリソースの作成();\r
                        }\r
                }\r
@@ -168,6 +172,7 @@ namespace DTXMania
                {\r
                        if ( !base.b活性化してない )\r
                        {\r
+                               CDTXMania.tテクスチャの解放( ref this.txSortMenuChoices );\r
                                CDTXMania.tテクスチャの解放( ref this.txSortMenuBackground );\r
                                CDTXMania.tテクスチャの解放( ref this.txCursor );\r
                        }\r
@@ -209,7 +214,8 @@ namespace DTXMania
                                                eAction = ESortAction.Decide;\r
                                        }\r
                                        else if (\r
-                                               CDTXMania.Pad.b押された( E楽器パート.DRUMS, Eパッド.RD ) \r
+                                               CDTXMania.Pad.b押された( E楽器パート.DRUMS, Eパッド.Decide )        // #24756 2011.4.1 yyagi: Add condition "Drum-Decide" to enable CY in Sort Menu.\r
+                                               || CDTXMania.Pad.b押された( E楽器パート.DRUMS, Eパッド.RD ) \r
                                                || CDTXMania.Pad.b押された( E楽器パート.DRUMS, Eパッド.LC )\r
                                                || ( CDTXMania.ConfigIni.bEnterがキー割り当てのどこにも使用されていない && CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.Return ) ) )\r
                                        {\r
@@ -284,7 +290,15 @@ namespace DTXMania
                                        if ( bBold )\r
                                        {\r
                                                // nSortOder+1 == 0(Ascend), (1,) 2(Descend)\r
-                                               font.t文字列描画( 350, 80 + i * 32, strSortOrder[ nSortOrder + 1 ], bBold, 1.0f );\r
+                                               if ( bIsJapanLocale )\r
+                                               {       // #24758 2011.4.1 yyagi: for JP locale, 昇順/降順 is used instead of ascend/descend.\r
+                                                       Rectangle rect = new Rectangle( 0, this.txSortMenuChoices.sz画像サイズ.Height / 2 * (nSortOrder+1)/2, this.txSortMenuChoices.sz画像サイズ.Width, this.txSortMenuChoices.sz画像サイズ.Height / 2 );\r
+                                                       this.txSortMenuChoices.t2D描画( CDTXMania.app.Device, 350, 78 + i * 32, rect );\r
+                                               }\r
+                                               else\r
+                                               {\r
+                                                       font.t文字列描画( 350, 80 + i * 32, strSortOrder[ nSortOrder + 1 ], bBold, 1.0f );\r
+                                               }\r
                                        }\r
                                }\r
                                #endregion\r
@@ -303,9 +317,11 @@ namespace DTXMania
 \r
                private int n現在の選択行;\r
                private CTexture txSortMenuBackground;\r
+               private CTexture txSortMenuChoices;\r
                private CTexture txCursor;\r
                private CActDFPFont font;\r
                private CActSelect曲リスト act曲リスト;\r
+               private bool bIsJapanLocale;\r
 \r
                [StructLayout( LayoutKind.Sequential )]\r
                private struct STキー反復用カウンタ\r