using DTXCreator.WAV_BMP_AVI;\r
using DTXCreator.UndoRedo;\r
using DTXCreator.オプション関連;\r
+using DTXCreator.MIDIインポート;\r
using DTXCreator.汎用;\r
using DTXCreator.Properties;\r
using FDK;\r
public Cチップパレット dlgチップパレット;\r
private Cオプション管理 mgrオプション管理者 = null;\r
private C選択モード管理 mgr選択モード管理者 = null;\r
- private C編集モード管理 mgr編集モード管理者 = null;\r
+ internal C編集モード管理 mgr編集モード管理者 = null;\r
internal C譜面管理 mgr譜面管理者 = null;\r
internal CWAVリスト管理 mgrWAVリスト管理者 = null;\r
internal CBMPリスト管理 mgrBMPリスト管理者 = null;\r
internal CAVIリスト管理 mgrAVIリスト管理者 = null;\r
internal CUndoRedo管理 mgrUndoRedo管理者 = null;\r
internal Cクリップボード cbクリップボード = null;\r
+ private CMIDIインポート管理 mgrMIDIインポート管理者 = null;\r
\r
internal MakeTempDTX makeTempDTX = null;\r
\r
return this.numericUpDownBPM.Value;\r
}\r
}\r
- internal int n現在選択中のWAV・BMP・AVIリストの行番号0to1294;\r
+ internal int n現在選択中のWAV_BMP_AVIリストの行番号0to1294;\r
\r
/// <summary>\r
/// DTXC.exe のあるフォルダの絶対パス。\r
}\r
}\r
\r
+ /// <summary>\r
+ /// 最後にMIDIを読み込んだフォルダ\r
+ /// </summary>\r
+ public string strMIDIインポートフォルダ;\r
+\r
//-----------------\r
#endregion\r
\r
#region [ 全体を通して必要な管理者オブジェクトを生成する。]\r
//-----------------\r
this.mgrオプション管理者 = new Cオプション管理( this );\r
+ this.mgrMIDIインポート管理者 = new CMIDIインポート管理(this);\r
//-----------------\r
#endregion\r
\r
\r
if( Directory.Exists( this.str作業フォルダ名 ) )\r
{\r
- Directory.SetCurrentDirectory( this.str作業フォルダ名 );\r
+ //Directory.SetCurrentDirectory( this.str作業フォルダ名 ); // #35399: 2015/8/15 カレントディレクトリを変更すると、.NET4以降用にbuildしたDTXMania本体での再生に失敗するため、カレントディレクトリの変更を中止する\r
+ // #35399: ただし作業フォルダは維持する(書き設定行は不要だが、if分岐は残す必要あり)\r
+ // this.str作業フォルダ名 = this.appアプリ設定.LastWorkFolder; \r
}\r
else\r
{\r
this.t編集モードにする();\r
}\r
#endregion\r
+ #region [ MIDIインポートフォルダ ]\r
+ //-----------------\r
+ this.strMIDIインポートフォルダ = this.appアプリ設定.LastMIDIImportFolder;\r
+ \r
+ if( ! Directory.Exists( this.strMIDIインポートフォルダ ) )\r
+ this.strMIDIインポートフォルダ = Directory.GetCurrentDirectory();\r
+ //-----------------\r
+ #endregion\r
+\r
}\r
private void tアプリ設定の保存()\r
{\r
this.appアプリ設定.AddLanesInfo( c.strレーン名, c.bIsVisible );\r
}\r
#endregion\r
-\r
+ #region [ MIDIインポートフォルダ ]\r
+ //-----------------\r
+ this.appアプリ設定.LastMIDIImportFolder =\r
+ this.strMIDIインポートフォルダ;\r
+ //-----------------\r
+ #endregion\r
\r
// 保存する。\r
\r
#endregion\r
#region [ 新規作成 ]\r
//-----------------\r
- private void tシナリオ・新規作成()\r
+ public void tシナリオ_新規作成()\r
{\r
// 作成前の保存確認。\r
\r
CUndoRedo管理.bUndoRedoした直後 = true; this.textBoxSTAGEFILE.Clear();\r
CUndoRedo管理.bUndoRedoした直後 = true; this.textBoxBACKGROUND.Clear();\r
CUndoRedo管理.bUndoRedoした直後 = true; this.textBoxRESULTIMAGE.Clear();\r
+ CUndoRedo管理.bUndoRedoした直後 = true; this.check556x710BGAAVI.Checked = false;\r
//-----------------\r
#endregion\r
\r
this.listViewAVIリスト.Items.Clear();\r
this.mgrAVIリスト管理者 = new CAVIリスト管理( this, this.listViewAVIリスト );\r
\r
- this.tWAV・BMP・AVIリストのカーソルを全部同じ行に合わせる( 0 );\r
+ this.tWAV_BMP_AVIリストのカーソルを全部同じ行に合わせる( 0 );\r
//-----------------\r
#endregion\r
\r
this.mgrUndoRedo管理者 = new CUndoRedo管理();\r
\r
CUndoRedo管理.bUndoRedoした直後 = false;\r
- this.tUndoRedo用GUIの有効・無効を設定する();\r
+ this.tUndoRedo用GUIの有効無効を設定する();\r
//-----------------\r
#endregion\r
\r
#endregion\r
#region [ 開く ]\r
//-----------------\r
- private void tシナリオ・開く()\r
+ private void tシナリオ_開く()\r
{\r
// 作成前の保存確認。\r
\r
//-----------------\r
#endregion\r
}\r
- private void tシナリオ・DragDropされたファイルを開く( string[] DropFiles )\r
+ private void tシナリオ_DragDropされたファイルを開く( string[] DropFiles )\r
{\r
// 開くファイルを決定する。\r
\r
\r
#region [ ファイルを読み込む。]\r
//-----------------\r
- this.t演奏ファイルを開いて読み込む( strファイル名 );\r
+ string strExt = Path.GetExtension( strファイル名 ).ToLower();\r
+\r
+ if ( strExt.Equals(".dtx") )\r
+ {\r
+ this.t演奏ファイルを開いて読み込む( strファイル名 );\r
+ }\r
+ else if (strExt.Equals(".smf") || strExt.Equals(".mid"))\r
+ {\r
+ this.mgrMIDIインポート管理者.tMIDIインポート管理を開く( strファイル名 );\r
+ this.mgr譜面管理者.tRefreshDisplayLanes(); // レーンの表示/非表示切り替えに備えて追加\r
+ }\r
+ else\r
+ {\r
+ MessageBox.Show(\r
+ Resources.strDTXファイルではありませんMSG,\r
+ Resources.str確認ダイアログのタイトル,\r
+ MessageBoxButtons.OK, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1 );\r
+\r
+ return; // 中断\r
+ }\r
//-----------------\r
#endregion\r
}\r
\r
this.strDTXファイル名 = Path.ChangeExtension( Path.GetFileName( strファイル名 ), ".dtx" ); // 拡張子は強制的に .dtx に変更。\r
this.str作業フォルダ名 = Path.GetDirectoryName( strファイル名 ) + @"\"; // 読み込み後、カレントフォルダは、作業ファイルのあるフォルダに移動する。\r
-\r
+ // #35399: カレントディレクトリの変更はしない。.NET4以降でbuildしたDTXMania本体で再生できなくなるため。\r
//-----------------\r
#endregion\r
\r
#endregion\r
#region [ 上書き保存/名前をつけて保存 ]\r
//-----------------\r
- private void tシナリオ・上書き保存()\r
+ private void tシナリオ_上書き保存()\r
{\r
// 前処理。\r
+ bool bDoSave = true;\r
\r
this.dlgチップパレット.t一時的に隠蔽する();\r
\r
\r
string str絶対パスファイル名 = this.tファイル保存ダイアログを開いてファイル名を取得する();\r
\r
- if( string.IsNullOrEmpty( str絶対パスファイル名 ) )\r
- return; // ファイル保存ダイアログがキャンセルされたのならここで打ち切り。\r
-\r
- //this.str作業フォルダ名 = Directory.GetCurrentDirectory() + @"\"; // ダイアログでディレクトリを変更した場合、カレントディレクトリも変更されている。\r
- this.str作業フォルダ名 = Path.GetDirectoryName(str絶対パスファイル名) + @"\";\r
- this.strDTXファイル名 = Path.GetFileName( str絶対パスファイル名 );\r
-\r
-\r
- // WAV・BMP・AVIリストにあるすべてのファイル名を、作業フォルダに対する相対パスに変換する。\r
-\r
- this.mgrWAVリスト管理者.tファイル名の相対パス化( this.str作業フォルダ名 );\r
- this.mgrBMPリスト管理者.tファイル名の相対パス化( this.str作業フォルダ名 );\r
- this.mgrAVIリスト管理者.tファイル名の相対パス化( this.str作業フォルダ名 );\r
+ if (string.IsNullOrEmpty(str絶対パスファイル名))\r
+ {\r
+ bDoSave = false;\r
+ }\r
+ else\r
+ {\r
+ //this.str作業フォルダ名 = Directory.GetCurrentDirectory() + @"\"; // ダイアログでディレクトリを変更した場合、カレントディレクトリも変更されている。\r
+ this.str作業フォルダ名 = Path.GetDirectoryName(str絶対パスファイル名) + @"\";\r
+ this.strDTXファイル名 = Path.GetFileName(str絶対パスファイル名);\r
+\r
+ // WAV・BMP・AVIリストにあるすべてのファイル名を、作業フォルダに対する相対パスに変換する。\r
+ this.mgrWAVリスト管理者.tファイル名の相対パス化(this.str作業フォルダ名);\r
+ this.mgrBMPリスト管理者.tファイル名の相対パス化(this.str作業フォルダ名);\r
+ this.mgrAVIリスト管理者.tファイル名の相対パス化(this.str作業フォルダ名);\r
+ }\r
}\r
//-----------------\r
#endregion\r
\r
-\r
// DTXファイルへ出力。\r
+ if (bDoSave)\r
+ {\r
\r
+ #region [ 選択モードだったなら選択を解除する。]\r
+ //-----------------\r
+ if (this.b選択モードである)\r
+ this.mgr選択モード管理者.t全チップの選択を解除する();\r
+ //-----------------\r
+ #endregion\r
\r
- #region [ 選択モードだったなら選択を解除する。]\r
- //-----------------\r
- if( this.b選択モードである )\r
- this.mgr選択モード管理者.t全チップの選択を解除する();\r
- //-----------------\r
- #endregion\r
-\r
- #region [ DTXファイルを出力する。]\r
- //-----------------\r
- var sw = new StreamWriter( this.str作業フォルダ名 + this.strDTXファイル名, false, Encoding.GetEncoding( 932/*Shift-JIS*/ ) );\r
- new CDTX入出力( this ).tDTX出力( sw );\r
- sw.Close();\r
- //-----------------\r
- #endregion\r
+ #region [ DTXファイルを出力する。]\r
+ //-----------------\r
+ var sw = new StreamWriter(this.str作業フォルダ名 + this.strDTXファイル名, false, Encoding.GetEncoding("utf-16"));\r
+ new CDTX入出力(this).tDTX出力(sw);\r
+ sw.Close();\r
+ //-----------------\r
+ #endregion\r
\r
- #region [ 出力したファイルのパスを、[ファイル]メニューの最近使ったファイル一覧に追加する。 ]\r
- //-----------------\r
- this.appアプリ設定.AddRecentUsedFile( this.str作業フォルダ名 + this.strDTXファイル名 );\r
- this.t最近使ったファイルをFileメニューへ追加する();\r
- //-----------------\r
- #endregion\r
+ #region [ 出力したファイルのパスを、[ファイル]メニューの最近使ったファイル一覧に追加する。 ]\r
+ //-----------------\r
+ this.appアプリ設定.AddRecentUsedFile(this.str作業フォルダ名 + this.strDTXファイル名);\r
+ this.t最近使ったファイルをFileメニューへ追加する();\r
+ //-----------------\r
+ #endregion\r
\r
+ #region [ Viewer用の一時ファイルを削除する (修正+保存、直後のViewer再生時に、直前の修正が反映されなくなることへの対応) ]\r
+ tViewer用の一時ファイルを削除する();\r
+ #endregion\r
\r
- // 後処理。\r
+ // 後処理。\r
+ this.b未保存 = false;\r
+ }\r
\r
#region [「保存中です」ポップアップを閉じる。]\r
//-----------------\r
#endregion\r
\r
this.dlgチップパレット.t一時的な隠蔽を解除する();\r
- this.b未保存 = false;\r
}\r
- private void tシナリオ・名前をつけて保存()\r
+ private void tシナリオ_名前をつけて保存()\r
{\r
// 前処理。\r
\r
\r
// 保存する。\r
\r
- this.tシナリオ・上書き保存();\r
+ this.tシナリオ_上書き保存();\r
\r
\r
// 後処理。\r
#endregion\r
#region [ 終了 ]\r
//-----------------\r
- private void tシナリオ・終了()\r
+ private void tシナリオ_終了()\r
{\r
// ウィンドウを閉じる。\r
\r
#endregion\r
#region [ 検索/置換 ]\r
//-----------------\r
- private void tシナリオ・検索()\r
+ private void tシナリオ_検索()\r
{\r
this.mgr選択モード管理者.t検索する(); // モードによらず、検索はすべて選択モード管理者が行う。\r
}\r
- private void tシナリオ・置換()\r
+ private void tシナリオ_置換()\r
{\r
this.mgr選択モード管理者.t置換する(); // モードによらず、置換はすべて選択モード管理者が行う。\r
}\r
#endregion\r
#region [ 小節長変更/小節の挿入/小節の削除 ]\r
//-----------------\r
- private void tシナリオ・小節長を変更する( C小節 cs )\r
+ private void tシナリオ_小節長を変更する( C小節 cs )\r
{\r
// 前処理。\r
\r
int n新Grid数 = (int) ( dlg.f倍率 * 192 + 0.5 );\r
int nGrid増減 = n旧Grid数 - n新Grid数;\r
\r
- this.t小節長を変更する・小節単位( n小節番号, dlg.f倍率 );\r
+ this.t小節長を変更する_小節単位( n小節番号, dlg.f倍率 );\r
\r
// そして、Gridの増減があった分だけ、コピーしたBEATチップのGridを増減する\r
int nGrid_BAR = this.mgr譜面管理者.n譜面先頭からみた小節先頭の位置gridを返す( n変更開始小節番号 );\r
#region [ コピーしておいた(そして、nGridを更新した))BEATチップを、BEATレーンに戻す ]\r
foreach ( Cチップ cチップ in listBEATチップ )\r
{\r
- this.mgr編集モード管理者.tBeatチップを配置する( cチップ.n位置grid, cチップ.n値・整数1to1295, cチップ.f値・浮動小数, cチップ.b裏 );\r
+ this.mgr編集モード管理者.tBeatチップを配置する( cチップ.n位置grid, cチップ.n値_整数1to1295, cチップ.f値_浮動小数, cチップ.b裏 );\r
}\r
#endregion\r
\r
listBEATチップ = null;\r
\r
// 画面を再描画。\r
- this.tUndoRedo用GUIの有効・無効を設定する();\r
+ this.tUndoRedo用GUIの有効無効を設定する();\r
\r
}\r
- private void t小節長を変更する・小節単位( int n小節番号, float f倍率 )\r
+ public void t小節長を変更する_小節単位( int n小節番号, float f倍率 )\r
{\r
// 対象の小節を取得。\r
\r
\r
// 画面を再描画。\r
\r
- this.tUndoRedo用GUIの有効・無効を設定する();\r
+ this.tUndoRedo用GUIの有効無効を設定する();\r
}\r
- private void tシナリオ・小節を挿入する( int n挿入位置の小節番号 )\r
+ private void tシナリオ_小節を挿入する( int n挿入位置の小節番号 )\r
{\r
// 作業を記録。\r
\r
\r
// 後処理。\r
\r
- this.tUndoRedo用GUIの有効・無効を設定する();\r
+ this.tUndoRedo用GUIの有効無効を設定する();\r
this.b未保存 = true;\r
}\r
- private void tシナリオ・小節を削除する( int n削除位置の小節番号 )\r
+ private void tシナリオ_小節を削除する( int n削除位置の小節番号 )\r
{\r
// 作業記録開始。\r
\r
\r
// 後処理。\r
\r
- this.tUndoRedo用GUIの有効・無効を設定する();\r
+ this.tUndoRedo用GUIの有効無効を設定する();\r
this.pictureBox譜面パネル.Refresh();\r
this.b未保存 = true;\r
}\r
#endregion\r
#region [ 選択チップの切り取り/コピー/貼り付け/削除 ]\r
//-----------------\r
- private void tシナリオ・切り取り()\r
+ private void tシナリオ_切り取り()\r
{\r
// 事前チェック。\r
\r
\r
#region [ 切り取り = コピー + 削除 ]\r
//-----------------\r
- this.tシナリオ・コピー();\r
- this.tシナリオ・削除();\r
+ this.tシナリオ_コピー();\r
+ this.tシナリオ_削除();\r
//-----------------\r
#endregion\r
}\r
- private void tシナリオ・コピー()\r
+ private void tシナリオ_コピー()\r
{\r
// 事前チェック。\r
\r
\r
#region [ 画面を再描画する。]\r
//-----------------\r
- this.t選択チップの有無に応じて編集用GUIの有効・無効を設定する();\r
+ this.t選択チップの有無に応じて編集用GUIの有効無効を設定する();\r
this.pictureBox譜面パネル.Refresh();\r
//-----------------\r
#endregion\r
}\r
- private void tシナリオ・貼り付け( int n譜面先頭からの位置grid )\r
+ private void tシナリオ_貼り付け( int n譜面先頭からの位置grid )\r
{\r
// 事前チェック。\r
\r
\r
#region [ 画面を再描画する。]\r
//-----------------\r
- this.t選択チップの有無に応じて編集用GUIの有効・無効を設定する();\r
+ this.t選択チップの有無に応じて編集用GUIの有効無効を設定する();\r
this.pictureBox譜面パネル.Refresh();\r
//-----------------\r
#endregion\r
}\r
- private void tシナリオ・削除()\r
+ private void tシナリオ_削除()\r
{\r
// 事前チェック。\r
\r
\r
// 画面を再描画する。\r
\r
- this.tUndoRedo用GUIの有効・無効を設定する();\r
- this.t選択チップの有無に応じて編集用GUIの有効・無効を設定する();\r
+ this.tUndoRedo用GUIの有効無効を設定する();\r
+ this.t選択チップの有無に応じて編集用GUIの有効無効を設定する();\r
this.pictureBox譜面パネル.Refresh();\r
}\r
//-----------------\r
#endregion\r
#region [ DTXViewer での再生・停止 ]\r
//-----------------\r
- private void tシナリオ・Viewerで最初から再生する()\r
+ private void tシナリオ_Viewerで最初から再生する()\r
{\r
#region [ DTXViewer 用の一時ファイルを出力する。]\r
//-----------------\r
- this.tViewer用の一時ファイルを出力する( false, this.b未保存 | !this.bBGMありで再生した | this.b再生速度を変更した | this.bDTXファイルを開いた );\r
- this.bBGMありで再生した = true;\r
+ this.tViewer用の一時ファイルを出力する( false, this.b未保存 | !this.b前回BGMありで再生した | this.b再生速度を変更した | this.bDTXファイルを開いた );\r
+ this.b前回BGMありで再生した = true;\r
//-----------------\r
#endregion\r
\r
//-----------------\r
#endregion\r
}\r
- private void tシナリオ・Viewerで現在位置から再生する()\r
+ private void tシナリオ_Viewerで現在位置から再生する()\r
{\r
#region [ DTXViewer 用の一時ファイルを出力する。]\r
//-----------------\r
- this.tViewer用の一時ファイルを出力する( false, this.b未保存 | !this.bBGMありで再生した | this.b再生速度を変更した | this.bDTXファイルを開いた );\r
- this.bBGMありで再生した = true;\r
+ this.tViewer用の一時ファイルを出力する( false, this.b未保存 | !this.b前回BGMありで再生した | this.b再生速度を変更した | this.bDTXファイルを開いた );\r
+ this.b前回BGMありで再生した = true;\r
//-----------------\r
#endregion\r
\r
#endregion\r
}\r
}\r
- private void tシナリオ・Viewerで現在位置からBGMのみ再生する()\r
+ private void tシナリオ_Viewerで現在位置からBGMのみ再生する()\r
{\r
#region [ DTXViewer 用の一時ファイルを出力する。]\r
//-----------------\r
- this.tViewer用の一時ファイルを出力する( true, this.b未保存 | this.bBGMありで再生した | this.b再生速度を変更した | this.bDTXファイルを開いた );\r
- this.bBGMありで再生した = false;\r
+ this.tViewer用の一時ファイルを出力する( true, this.b未保存 | this.b前回BGMありで再生した | this.b再生速度を変更した | this.bDTXファイルを開いた );\r
+ this.b前回BGMありで再生した = false;\r
//-----------------\r
#endregion\r
\r
#endregion\r
}\r
}\r
- private void tシナリオ・Viewerを再生停止する()\r
+ private void tシナリオ_Viewerを再生停止する()\r
{\r
try\r
{\r
this.mgr譜面管理者.strPATH_WAV = "";\r
}\r
}\r
+ private void tViewer用の一時ファイルを削除する()\r
+ {\r
+ this.strViewer演奏用一時ファイル名 = ""; // #35351 2015.7.23 yyagi add; to fix viewer plyback correctly just after save.\r
+ }\r
//-----------------\r
#endregion\r
#region [ Undo / Redo ]\r
//-----------------\r
- private void tシナリオ・Undoする()\r
+ private void tシナリオ_Undoする()\r
{\r
// Undo を実行する。\r
\r
\r
#region [ GUI を再描画する。]\r
//-----------------\r
- this.tUndoRedo用GUIの有効・無効を設定する();\r
- this.t選択チップの有無に応じて編集用GUIの有効・無効を設定する();\r
+ this.tUndoRedo用GUIの有効無効を設定する();\r
+ this.t選択チップの有無に応じて編集用GUIの有効無効を設定する();\r
this.pictureBox譜面パネル.Refresh();\r
//-----------------\r
#endregion\r
}\r
- private void tシナリオ・Redoする()\r
+ private void tシナリオ_Redoする()\r
{\r
// Redo を実行する。\r
\r
\r
#region [ GUI を再描画する。]\r
//-----------------\r
- this.tUndoRedo用GUIの有効・無効を設定する();\r
- this.t選択チップの有無に応じて編集用GUIの有効・無効を設定する();\r
+ this.tUndoRedo用GUIの有効無効を設定する();\r
+ this.t選択チップの有無に応じて編集用GUIの有効無効を設定する();\r
this.pictureBox譜面パネル.Refresh();\r
//-----------------\r
#endregion\r
this.toolStripMenuItem選択モード.CheckState = CheckState.Unchecked;\r
this.toolStripMenuItem編集モード.CheckState = CheckState.Checked;\r
}\r
- public void t選択チップの有無に応じて編集用GUIの有効・無効を設定する()\r
+ public void t選択チップの有無に応じて編集用GUIの有効無効を設定する()\r
{\r
bool b譜面上に選択チップがある = this.b選択チップがある;\r
bool bクリップボードに選択チップがある = ( this.cbクリップボード != null ) && ( this.cbクリップボード.nセル数 > 0 );\r
\r
#region [ クリックされた箇所の小節番号を取得する。]\r
//-----------------\r
- int n譜面先頭からの位置grid = this.mgr譜面管理者.nY座標dotが位置するgridを返す・ガイド幅単位( pt選択モードのコンテクストメニューを開いたときのマウスの位置.Y );\r
+ int n譜面先頭からの位置grid = this.mgr譜面管理者.nY座標dotが位置するgridを返す_ガイド幅単位( pt選択モードのコンテクストメニューを開いたときのマウスの位置.Y );\r
C小節 csクリックされた小節 = this.mgr譜面管理者.p譜面先頭からの位置gridを含む小節を返す( n譜面先頭からの位置grid );\r
+ if ( csクリックされた小節 == null ) return; // 小節が生成されていないところで右クリックした場合は何もしない(NullReferenceException回避)\r
int nPartNo = csクリックされた小節.n小節番号0to3599;\r
string strPartNo = C変換.str小節番号を文字列3桁に変換して返す( nPartNo );\r
//-----------------\r
\r
#region [ ToolStripMenuItem を手動で作って [ファイル] のサブメニューリストに追加する。]\r
//-----------------\r
+ string strShotenPath = AdjustPathString( path ); // #35890 2016.1.3 yyagi; shorten "RecentFiles" text if needed\r
var item2 = new ToolStripMenuItem() {\r
Name = "最近使ったファイル" + i,\r
Size = this.toolStripMenuItem終了.Size,\r
- Text = "&" + i + " " + path,\r
+ Text = "&" + i + " " + strShotenPath,\r
+ ToolTipText = path,\r
};\r
item2.Click += new EventHandler( this.toolStripMenuItem最近使ったファイル_Click );\r
this.toolStripMenuItemファイル.DropDownItems.Add( item2 );\r
//-----------------\r
#endregion\r
}\r
- public void tWAV・BMP・AVIリストのカーソルを全部同じ行に合わせる( int nIndex番号0to1294 )\r
+ // 参考: http://gushwell.ldblog.jp/archives/50815731.html\r
+ private string AdjustPathString( string text )\r
+ {\r
+ int nTargetWidth = (int)(this.Width * 0.8f);\r
+ Bitmap bmp = new Bitmap(nTargetWidth, this.Height);\r
+ Graphics g = Graphics.FromImage( bmp );\r
+ var item = new ToolStripMenuItem();\r
+ SizeF size = g.MeasureString( text, item.Font );\r
+//Debug.WriteLine( "WinWidth"+ this.Width + ", now=" + size.Width + ", font=" + this.Font.ToString());\r
+ while ( nTargetWidth < size.Width )\r
+ {\r
+ string text2 = ShortenPathString( text );\r
+ if ( text == text2 )\r
+ break;\r
+ size = g.MeasureString( text2, this.Font );\r
+ text = text2;\r
+//Debug.WriteLine( "winWidth" + this.Width + ", now=" + size.Width + ", font=" + this.Font.ToString() );\r
+ }\r
+ item.Dispose();\r
+ g.Dispose();\r
+ bmp.Dispose();\r
+ return text;\r
+ }\r
+ private string ShortenPathString( string text )\r
+ {\r
+ int nWidth = this.Width;\r
+ List<string> list = new List<string>(text.Split('\\'));\r
+ int i = list.Count / 2;\r
+ if ( list[i] != "..." )\r
+ {\r
+ list[i] = "...";\r
+ }\r
+ else\r
+ {\r
+ if ( list.Count % 2 == 0 && i > 1 )\r
+ list.RemoveAt(i - 1);\r
+ else if ( list.Count % 2 == 1 && i < list.Count - 2 )\r
+ list.RemoveAt(i + 1);\r
+ }\r
+ StringBuilder sb = new StringBuilder(list[0]);\r
+ for ( int n = 1; n < list.Count; n++ ) {\r
+ sb.Append('\\').Append(list[n]);\r
+ }\r
+//Debug.WriteLine( "org:" + text );\r
+//Debug.WriteLine( "now:" + sb );\r
+ return sb.ToString();\r
+ }\r
+ public void tWAV_BMP_AVIリストのカーソルを全部同じ行に合わせる( int nIndex番号0to1294 )\r
{\r
if( nIndex番号0to1294 >= 0 && nIndex番号0to1294 <= 1294 )\r
{\r
this.mgrBMPリスト管理者.tItemを選択する( nIndex番号0to1294 );\r
this.mgrAVIリスト管理者.tItemを選択する( nIndex番号0to1294 );\r
\r
- this.n現在選択中のWAV・BMP・AVIリストの行番号0to1294 = nIndex番号0to1294;\r
+ this.n現在選択中のWAV_BMP_AVIリストの行番号0to1294 = nIndex番号0to1294;\r
}\r
}\r
public string strファイルの存在するディレクトリを絶対パスで返す( string strファイル )\r
{\r
return new Size( this.splitContainerタブと譜面を分割.Panel2.Width, this.pictureBox譜面パネル.Height );\r
}\r
- public void tUndoRedo用GUIの有効・無効を設定する()\r
+ public void tUndoRedo用GUIの有効無効を設定する()\r
{\r
this.toolStripMenuItemアンドゥ.Enabled = this.mgrUndoRedo管理者.nUndo可能な回数 > 0;\r
this.toolStripMenuItemリドゥ.Enabled = this.mgrUndoRedo管理者.nRedo可能な回数 > 0;\r
#region [ private ]\r
//-----------------\r
private bool _b未保存 = true;\r
- private bool bBGMありで再生した = true;\r
+ private bool b前回BGMありで再生した = true;\r
private bool b再生速度を変更した = false;\r
private bool bDTXファイルを開いた = false;\r
private Point pt選択モードのコンテクストメニューを開いたときのマウスの位置;\r
};\r
if( dialog.ShowDialog() == DialogResult.OK )\r
{\r
- str相対ファイル名 = Cファイル選択・パス変換.str基点からの相対パスに変換して返す( dialog.FileName, this.str作業フォルダ名 );\r
+ str相対ファイル名 = Cファイル選択_パス変換.str基点からの相対パスに変換して返す( dialog.FileName, this.str作業フォルダ名 );\r
str相対ファイル名.Replace( '/', '\\' );\r
}\r
else\r
\r
return str相対ファイル名;\r
}\r
- private DialogResult t未保存なら保存する()\r
+ public DialogResult t未保存なら保存する()\r
{\r
var result = DialogResult.OK;\r
\r
// YES なら上書き保存。\r
\r
if( result == DialogResult.Yes )\r
- this.tシナリオ・上書き保存();\r
+ this.tシナリオ_上書き保存();\r
\r
\r
// 画面を再描画。\r
string[] data = (string[]) e.Data.GetData( DataFormats.FileDrop );\r
if( data.Length >= 1 )\r
{\r
- this.tシナリオ・DragDropされたファイルを開く( data );\r
+ this.tシナリオ_DragDropされたファイルを開く( data );\r
}\r
}\r
private void Cメインフォーム_DragEnter( object sender, DragEventArgs e )\r
//-----------------\r
private void toolStripMenuItem選択チップの切り取り_Click( object sender, EventArgs e )\r
{\r
- this.tシナリオ・切り取り();\r
+ this.tシナリオ_切り取り();\r
}\r
private void toolStripMenuItem選択チップのコピー_Click( object sender, EventArgs e )\r
{\r
- this.tシナリオ・コピー();\r
+ this.tシナリオ_コピー();\r
}\r
private void toolStripMenuItem選択チップの貼り付け_Click( object sender, EventArgs e )\r
{\r
\r
// Y座標から位置gridを得て、そこへ貼り付ける。\r
\r
- this.tシナリオ・貼り付け( this.mgr譜面管理者.nY座標dotが位置するgridを返す・ガイド幅単位( ptMenuClient.Y ) );\r
+ this.tシナリオ_貼り付け( this.mgr譜面管理者.nY座標dotが位置するgridを返す_ガイド幅単位( ptMenuClient.Y ) );\r
}\r
private void toolStripMenuItem選択チップの削除_Click( object sender, EventArgs e )\r
{\r
- this.tシナリオ・削除();\r
+ this.tシナリオ_削除();\r
}\r
\r
private void toolStripMenuItemすべてのチップの選択_Click( object sender, EventArgs e )\r
if ( this.mgr譜面管理者.nX座標dotが位置するレーン番号を返す( ptマウスの位置.X ) < 0 )\r
return; // クリックされた箇所にレーンがない\r
\r
- int n譜面先頭からの位置grid = this.mgr譜面管理者.nY座標dotが位置するgridを返す・ガイド幅単位( ptマウスの位置.Y );\r
+ int n譜面先頭からの位置grid = this.mgr譜面管理者.nY座標dotが位置するgridを返す_ガイド幅単位( ptマウスの位置.Y );\r
\r
C小節 csクリックされた小節 = this.mgr譜面管理者.p譜面先頭からの位置gridを含む小節を返す( n譜面先頭からの位置grid );\r
//-----------------\r
if ( this.mgr譜面管理者.nX座標dotが位置するレーン番号を返す( ptマウスの位置.X ) < 0 )\r
return; // クリックされた箇所にレーンがない\r
\r
- int n譜面先頭からの位置grid = this.mgr譜面管理者.nY座標dotが位置するgridを返す・ガイド幅単位( ptマウスの位置.Y );\r
+ int n譜面先頭からの位置grid = this.mgr譜面管理者.nY座標dotが位置するgridを返す_ガイド幅単位( ptマウスの位置.Y );\r
C小節 csクリックされた小節 = this.mgr譜面管理者.p譜面先頭からの位置gridを含む小節を返す( n譜面先頭からの位置grid );\r
//-----------------\r
#endregion\r
if( this.mgr譜面管理者.nX座標dotが位置するレーン番号を返す( ptマウス位置.X ) < 0 )\r
return; // クリックされた箇所にレーンがないなら無視。\r
\r
- int n譜面先頭からの位置grid = this.mgr譜面管理者.nY座標dotが位置するgridを返す・ガイド幅単位( ptマウス位置.Y );\r
+ int n譜面先頭からの位置grid = this.mgr譜面管理者.nY座標dotが位置するgridを返す_ガイド幅単位( ptマウス位置.Y );\r
C小節 csクリックされた小節 = this.mgr譜面管理者.p譜面先頭からの位置gridを含む小節を返す( n譜面先頭からの位置grid );\r
//-----------------\r
#endregion\r
#region [ 取得した小節の小節長を変更する。]\r
//-----------------\r
if( csクリックされた小節 != null )\r
- this.tシナリオ・小節長を変更する( csクリックされた小節 );\r
+ this.tシナリオ_小節長を変更する( csクリックされた小節 );\r
//-----------------\r
#endregion\r
}\r
if( this.mgr譜面管理者.nX座標dotが位置するレーン番号を返す( ptマウスの位置.X ) < 0 )\r
return; // クリックされた箇所にレーンがない\r
\r
- int n譜面先頭からの位置grid = this.mgr譜面管理者.nY座標dotが位置するgridを返す・ガイド幅単位( ptマウスの位置.Y );\r
+ int n譜面先頭からの位置grid = this.mgr譜面管理者.nY座標dotが位置するgridを返す_ガイド幅単位( ptマウスの位置.Y );\r
C小節 csクリックされた小節 = this.mgr譜面管理者.p譜面先頭からの位置gridを含む小節を返す( n譜面先頭からの位置grid );\r
//-----------------\r
#endregion\r
#region [ 該当小節の下へ新しい小節を挿入する。]\r
//-----------------\r
if( csクリックされた小節 != null )\r
- this.tシナリオ・小節を挿入する( csクリックされた小節.n小節番号0to3599 );\r
+ this.tシナリオ_小節を挿入する( csクリックされた小節.n小節番号0to3599 );\r
//-----------------\r
#endregion\r
}\r
if( this.mgr譜面管理者.nX座標dotが位置するレーン番号を返す( ptマウス位置.X ) < 0 )\r
return; // クリックされた箇所にレーンがないなら無視。\r
\r
- int n譜面先頭からの位置grid = this.mgr譜面管理者.nY座標dotが位置するgridを返す・ガイド幅単位( ptマウス位置.Y );\r
+ int n譜面先頭からの位置grid = this.mgr譜面管理者.nY座標dotが位置するgridを返す_ガイド幅単位( ptマウス位置.Y );\r
C小節 cs削除する小節 = this.mgr譜面管理者.p譜面先頭からの位置gridを含む小節を返す( n譜面先頭からの位置grid );\r
//-----------------\r
#endregion\r
#region [ 該当小節を削除する。]\r
//-----------------\r
if( cs削除する小節 != null )\r
- this.tシナリオ・小節を削除する( cs削除する小節.n小節番号0to3599 );\r
+ this.tシナリオ_小節を削除する( cs削除する小節.n小節番号0to3599 );\r
//-----------------\r
#endregion\r
}\r
//-----------------\r
if( !CUndoRedo管理.bUndoRedoした直後 )\r
{\r
- CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す・見るだけ();\r
+ CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す_見るだけ();\r
\r
if( ( oセル仮想 != null ) && oセル仮想.b所有権がある( this.textBox曲名 ) )\r
{\r
\r
// Undo ボタンを有効にする。\r
\r
- this.tUndoRedo用GUIの有効・無効を設定する();\r
+ this.tUndoRedo用GUIの有効無効を設定する();\r
}\r
}\r
//-----------------\r
}\r
private void textBox曲名_Leave( object sender, EventArgs e )\r
{\r
- CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す・見るだけ();\r
+ CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す_見るだけ();\r
\r
if( oセル仮想 != null )\r
oセル仮想.t所有権の放棄( this.textBox曲名 );\r
//-----------------\r
if( !CUndoRedo管理.bUndoRedoした直後 )\r
{\r
- CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す・見るだけ();\r
+ CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す_見るだけ();\r
\r
if( ( oセル仮想 != null ) && oセル仮想.b所有権がある( this.textBox製作者 ) )\r
{\r
\r
// Undo ボタンを有効にする。\r
\r
- this.tUndoRedo用GUIの有効・無効を設定する();\r
+ this.tUndoRedo用GUIの有効無効を設定する();\r
}\r
}\r
//-----------------\r
}\r
private void textBox製作者_Leave( object sender, EventArgs e )\r
{\r
- CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す・見るだけ();\r
+ CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す_見るだけ();\r
\r
if( oセル仮想 != null )\r
oセル仮想.t所有権の放棄( this.textBox製作者 );\r
//-----------------\r
if( !CUndoRedo管理.bUndoRedoした直後 )\r
{\r
- CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す・見るだけ();\r
+ CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す_見るだけ();\r
\r
if( ( oセル仮想 != null ) && oセル仮想.b所有権がある( this.textBoxコメント ) )\r
{\r
\r
// Undo ボタンを有効にする。\r
\r
- this.tUndoRedo用GUIの有効・無効を設定する();\r
+ this.tUndoRedo用GUIの有効無効を設定する();\r
}\r
}\r
//-----------------\r
}\r
private void textBoxコメント_Leave( object sender, EventArgs e )\r
{\r
- CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す・見るだけ();\r
+ CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す_見るだけ();\r
\r
if( oセル仮想 != null )\r
oセル仮想.t所有権の放棄( this.textBoxコメント );\r
//-----------------\r
if ( !CUndoRedo管理.bUndoRedoした直後 )\r
{\r
- CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す・見るだけ();\r
+ CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す_見るだけ();\r
\r
if ( ( oセル仮想 != null ) && oセル仮想.b所有権がある( this.textBoxGenre ) )\r
{\r
this.textBoxGenre,\r
new DGUndoを実行する<string>( this.textBoxGenre_Undo ),\r
new DGRedoを実行する<string>( this.textBoxGenre_Redo ),\r
- this.textBoxコメント_以前の値, this.textBoxGenre.Text ) );\r
+ this.textBoxGenre_以前の値, this.textBoxGenre.Text ) );\r
\r
// Undo ボタンを有効にする。\r
\r
- this.tUndoRedo用GUIの有効・無効を設定する();\r
+ this.tUndoRedo用GUIの有効無効を設定する();\r
}\r
}\r
//-----------------\r
}\r
private void textBoxGenre_Leave( object sender, EventArgs e )\r
{\r
- CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す・見るだけ();\r
+ CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す_見るだけ();\r
\r
if ( oセル仮想 != null )\r
oセル仮想.t所有権の放棄( this.textBoxGenre );\r
//-----------------\r
if( !CUndoRedo管理.bUndoRedoした直後 )\r
{\r
- CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す・見るだけ();\r
+ CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す_見るだけ();\r
\r
if( ( oセル仮想 != null ) && oセル仮想.b所有権がある( this.numericUpDownBPM ) )\r
{\r
\r
// Undoボタンを有効にする。\r
\r
- this.tUndoRedo用GUIの有効・無効を設定する();\r
+ this.tUndoRedo用GUIの有効無効を設定する();\r
}\r
}\r
//-----------------\r
}\r
private void numericUpDownBPM_Leave( object sender, EventArgs e )\r
{\r
- CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す・見るだけ();\r
+ CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す_見るだけ();\r
\r
if( oセル仮想 != null )\r
oセル仮想.t所有権の放棄( this.numericUpDownBPM );\r
//-----------------\r
if( !CUndoRedo管理.bUndoRedoした直後 )\r
{\r
- CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す・見るだけ();\r
+ CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す_見るだけ();\r
\r
if( oセル仮想 != null && oセル仮想.b所有権がある( this.hScrollBarDLEVEL ) )\r
{\r
\r
// Undo ボタンを有効にする。\r
\r
- this.tUndoRedo用GUIの有効・無効を設定する();\r
+ this.tUndoRedo用GUIの有効無効を設定する();\r
}\r
}\r
//-----------------\r
//-----------------\r
if( !CUndoRedo管理.bUndoRedoした直後 )\r
{\r
- CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す・見るだけ();\r
+ CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す_見るだけ();\r
\r
if( ( oセル仮想 != null ) && oセル仮想.b所有権がある( this.hScrollBarGLEVEL ) )\r
{\r
\r
// Undo ボタンを有効にする。\r
\r
- this.tUndoRedo用GUIの有効・無効を設定する();\r
+ this.tUndoRedo用GUIの有効無効を設定する();\r
}\r
}\r
//-----------------\r
//-----------------\r
if( !CUndoRedo管理.bUndoRedoした直後 )\r
{\r
- CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す・見るだけ();\r
+ CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す_見るだけ();\r
\r
if( ( oセル仮想 != null ) && oセル仮想.b所有権がある( this.hScrollBarBLEVEL ) )\r
{\r
\r
// Undo ボタンを有効にする。\r
\r
- this.tUndoRedo用GUIの有効・無効を設定する();\r
+ this.tUndoRedo用GUIの有効無効を設定する();\r
}\r
}\r
//-----------------\r
//-----------------\r
if( !CUndoRedo管理.bUndoRedoした直後 )\r
{\r
- CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す・見るだけ();\r
+ CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す_見るだけ();\r
\r
if( ( oセル仮想 != null ) && oセル仮想.b所有権がある( this.textBoxパネル ) )\r
{\r
\r
// Undoボタンを有効にする。\r
\r
- this.tUndoRedo用GUIの有効・無効を設定する();\r
+ this.tUndoRedo用GUIの有効無効を設定する();\r
}\r
}\r
//-----------------\r
}\r
private void textBoxパネル_Leave( object sender, EventArgs e )\r
{\r
- CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す・見るだけ();\r
+ CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す_見るだけ();\r
\r
if( oセル仮想 != null )\r
oセル仮想.t所有権の放棄( this.textBoxパネル );\r
//-----------------\r
if( !CUndoRedo管理.bUndoRedoした直後 )\r
{\r
- CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す・見るだけ();\r
+ CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す_見るだけ();\r
\r
if( ( oセル仮想 != null ) && oセル仮想.b所有権がある( this.textBoxPREVIEW ) )\r
{\r
\r
// Undo ボタンを有効にする。\r
\r
- this.tUndoRedo用GUIの有効・無効を設定する();\r
+ this.tUndoRedo用GUIの有効無効を設定する();\r
}\r
}\r
//-----------------\r
}\r
private void textBoxPREVIEW_Leave( object sender, EventArgs e )\r
{\r
- CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す・見るだけ();\r
+ CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す_見るだけ();\r
\r
if( oセル仮想 != null )\r
oセル仮想.t所有権の放棄( this.textBoxPREVIEW );\r
//-----------------\r
if( !CUndoRedo管理.bUndoRedoした直後 )\r
{\r
- CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す・見るだけ();\r
+ CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す_見るだけ();\r
\r
if( ( oセル仮想 != null ) && oセル仮想.b所有権がある( this.textBoxPREIMAGE ) )\r
{\r
\r
// Undo ボタンを有効にする。\r
\r
- this.tUndoRedo用GUIの有効・無効を設定する();\r
+ this.tUndoRedo用GUIの有効無効を設定する();\r
}\r
}\r
//-----------------\r
}\r
private void textBoxPREIMAGE_Leave( object sender, EventArgs e )\r
{\r
- CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す・見るだけ();\r
+ CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す_見るだけ();\r
\r
if( oセル仮想 != null )\r
oセル仮想.t所有権の放棄( this.textBoxPREIMAGE );\r
//-----------------\r
if( !CUndoRedo管理.bUndoRedoした直後 )\r
{\r
- CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す・見るだけ();\r
+ CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す_見るだけ();\r
\r
if( ( oセル仮想 != null ) && oセル仮想.b所有権がある( this.textBoxSTAGEFILE ) )\r
{\r
\r
// Undo ボタンを有効にする。\r
\r
- this.tUndoRedo用GUIの有効・無効を設定する();\r
+ this.tUndoRedo用GUIの有効無効を設定する();\r
}\r
}\r
//-----------------\r
}\r
private void textBoxSTAGEFILE_Leave( object sender, EventArgs e )\r
{\r
- CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す・見るだけ();\r
+ CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す_見るだけ();\r
\r
if( oセル仮想 != null )\r
oセル仮想.t所有権の放棄( this.textBoxSTAGEFILE );\r
//-----------------\r
if( !CUndoRedo管理.bUndoRedoした直後 )\r
{\r
- CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す・見るだけ();\r
+ CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す_見るだけ();\r
\r
if( ( oセル仮想 != null ) && oセル仮想.b所有権がある( this.textBoxBACKGROUND ) )\r
{\r
\r
// Undo ボタンを有効にする。\r
\r
- this.tUndoRedo用GUIの有効・無効を設定する();\r
+ this.tUndoRedo用GUIの有効無効を設定する();\r
}\r
}\r
//-----------------\r
}\r
private void textBoxBACKGROUND_Leave( object sender, EventArgs e )\r
{\r
- CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す・見るだけ();\r
+ CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す_見るだけ();\r
\r
if( oセル仮想 != null )\r
oセル仮想.t所有権の放棄( this.textBoxBACKGROUND );\r
//-----------------\r
if( !CUndoRedo管理.bUndoRedoした直後 )\r
{\r
- CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す・見るだけ();\r
+ CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す_見るだけ();\r
\r
if( ( oセル仮想 != null ) && oセル仮想.b所有権がある( this.textBoxRESULTIMAGE ) )\r
{\r
\r
// Undo ボタンを有効にする。\r
\r
- this.tUndoRedo用GUIの有効・無効を設定する();\r
+ this.tUndoRedo用GUIの有効無効を設定する();\r
}\r
}\r
//-----------------\r
}\r
private void textBoxRESULTIMAGE_Leave( object sender, EventArgs e )\r
{\r
- CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す・見るだけ();\r
+ CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す_見るだけ();\r
\r
if( oセル仮想 != null )\r
oセル仮想.t所有権の放棄( this.textBoxRESULTIMAGE );\r
}\r
}\r
#endregion\r
+ #region [ Use 556 x 710 BGA/AVI ]\r
+ private bool check556x710BGAAVI_以前の値 = false;\r
+ private void check556x710BGAAVI_CheckedChanged(object sender, EventArgs e)\r
+ {\r
+ // Undo/Redo リストを修正する。\r
+\r
+ #region [ Undo/Redo リストを修正。]\r
+ //-----------------\r
+ if (!CUndoRedo管理.bUndoRedoした直後)\r
+ {\r
+ CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す_見るだけ();\r
+\r
+ if ((oセル仮想 != null) && oセル仮想.b所有権がある(this.check556x710BGAAVI))\r
+ {\r
+ // 既存のセルの値を更新。\r
+\r
+ ((CUndoRedoセル<bool>)oセル仮想).変更後の値 = this.check556x710BGAAVI.Checked;\r
+ }\r
+ else\r
+ {\r
+ // 新しいセルを追加。\r
+\r
+ this.mgrUndoRedo管理者.tノードを追加する(\r
+ new CUndoRedoセル<bool>(\r
+ this.check556x710BGAAVI.Checked,\r
+ new DGUndoを実行する<bool>(this.check556x710BGAAVI_Undo),\r
+ new DGRedoを実行する<bool>(this.check556x710BGAAVI_Redo),\r
+ this.check556x710BGAAVI_以前の値, this.check556x710BGAAVI.Checked));\r
+\r
+ // Undo ボタンを有効にする。\r
+\r
+ this.tUndoRedo用GUIの有効無効を設定する();\r
+ }\r
+ }\r
+ //-----------------\r
+ #endregion\r
+\r
+\r
+ // Undo 用に値を保管しておく。\r
+\r
+ this.check556x710BGAAVI_以前の値 = this.check556x710BGAAVI.Checked;\r
+ \r
+\r
+ // 完了。\r
+\r
+ CUndoRedo管理.bUndoRedoした直後 = false;\r
+ this.b未保存 = true;\r
+ }\r
+ private void check556x710BGAAVI_Leave(object sender, EventArgs e)\r
+ {\r
+ CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す_見るだけ();\r
+\r
+ if (oセル仮想 != null)\r
+ oセル仮想.t所有権の放棄(this.check556x710BGAAVI);\r
+ }\r
+ private void check556x710BGAAVI_Undo(bool b変更前, bool b変更後)\r
+ {\r
+ // 変更前の値に戻す。\r
+\r
+ this.tタブを選択する(Eタブ種別.基本情報);\r
+\r
+ this.t次のプロパティ変更処理がUndoRedoリストに載らないようにする();\r
+ this.check556x710BGAAVI.Checked = b変更前;\r
+\r
+ this.check556x710BGAAVI.Focus();\r
+ }\r
+ private void check556x710BGAAVI_Redo(bool b変更前, bool b変更後)\r
+ {\r
+ // 変更後の値に戻す。\r
+\r
+ this.tタブを選択する(Eタブ種別.基本情報);\r
+\r
+ this.t次のプロパティ変更処理がUndoRedoリストに載らないようにする();\r
+ this.check556x710BGAAVI.Checked = b変更後;\r
+\r
+ this.check556x710BGAAVI.Focus();\r
+ }\r
+ #endregion\r
//-----------------\r
#endregion\r
#region [ GUIイベント:WAVリスト関連 ]\r
#region [ WAV, BMP, AVI のカーソルを、選択された行に全部合わせる。]\r
//-----------------\r
if( this.listViewWAVリスト.SelectedIndices.Count > 0 )\r
- this.tWAV・BMP・AVIリストのカーソルを全部同じ行に合わせる( this.listViewWAVリスト.SelectedIndices[ 0 ] );\r
+ this.tWAV_BMP_AVIリストのカーソルを全部同じ行に合わせる( this.listViewWAVリスト.SelectedIndices[ 0 ] );\r
//-----------------\r
#endregion\r
}\r
#region [ WAV, BMP, AVI のカーソルを、選択された行に全部合わせる。]\r
//-----------------\r
if( this.listViewBMPリスト.SelectedIndices.Count > 0 )\r
- this.tWAV・BMP・AVIリストのカーソルを全部同じ行に合わせる( this.listViewBMPリスト.SelectedIndices[ 0 ] );\r
+ this.tWAV_BMP_AVIリストのカーソルを全部同じ行に合わせる( this.listViewBMPリスト.SelectedIndices[ 0 ] );\r
//-----------------\r
#endregion\r
}\r
#region [ WAV, BMP, AVI のカーソルを、選択された行に全部合わせる。]\r
//-----------------\r
if( this.listViewAVIリスト.SelectedIndices.Count > 0 )\r
- this.tWAV・BMP・AVIリストのカーソルを全部同じ行に合わせる( this.listViewAVIリスト.SelectedIndices[ 0 ] );\r
+ this.tWAV_BMP_AVIリストのカーソルを全部同じ行に合わせる( this.listViewAVIリスト.SelectedIndices[ 0 ] );\r
//-----------------\r
#endregion\r
}\r
//-----------------\r
if( !CUndoRedo管理.bUndoRedoした直後 )\r
{\r
- CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す・見るだけ();\r
+ CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す_見るだけ();\r
\r
if( ( oセル仮想 != null ) && oセル仮想.b所有権がある( this.textBox自由入力欄 ) )\r
{\r
\r
// Undoボタンを有効にする。\r
\r
- this.tUndoRedo用GUIの有効・無効を設定する();\r
+ this.tUndoRedo用GUIの有効無効を設定する();\r
}\r
}\r
//-----------------\r
}\r
private void textBox自由入力欄_Leave( object sender, EventArgs e )\r
{\r
- CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す・見るだけ();\r
+ CUndoRedoセル仮想 oセル仮想 = this.mgrUndoRedo管理者.tUndoするノードを取得して返す_見るだけ();\r
\r
if( oセル仮想 != null )\r
oセル仮想.t所有権の放棄( this.textBox自由入力欄 );\r
//-----------------\r
private void toolStripMenuItem新規_Click( object sender, EventArgs e )\r
{\r
- this.tシナリオ・新規作成();\r
+ this.tシナリオ_新規作成();\r
}\r
private void toolStripMenuItem開く_Click( object sender, EventArgs e )\r
{\r
- this.tシナリオ・開く();\r
+ this.tシナリオ_開く();\r
}\r
private void toolStripMenuItem上書き保存_Click( object sender, EventArgs e )\r
{\r
- this.tシナリオ・上書き保存();\r
+ this.tシナリオ_上書き保存();\r
}\r
private void toolStripMenuItem名前を付けて保存_Click( object sender, EventArgs e )\r
{\r
- this.tシナリオ・名前をつけて保存();\r
+ this.tシナリオ_名前をつけて保存();\r
}\r
private void toolStripMenuItem終了_Click( object sender, EventArgs e )\r
{\r
- this.tシナリオ・終了();\r
+ this.tシナリオ_終了();\r
}\r
private void toolStripMenuItem最近使ったファイル_Click( object sender, EventArgs e )\r
{\r
//-----------------\r
private void toolStripMenuItemアンドゥ_Click( object sender, EventArgs e )\r
{\r
- this.tシナリオ・Undoする();\r
+ this.tシナリオ_Undoする();\r
}\r
private void toolStripMenuItemリドゥ_Click( object sender, EventArgs e )\r
{\r
- this.tシナリオ・Redoする();\r
+ this.tシナリオ_Redoする();\r
}\r
private void toolStripMenuItem切り取り_Click( object sender, EventArgs e )\r
{\r
- this.tシナリオ・切り取り();\r
+ this.tシナリオ_切り取り();\r
}\r
private void toolStripMenuItemコピー_Click( object sender, EventArgs e )\r
{\r
- this.tシナリオ・コピー();\r
+ this.tシナリオ_コピー();\r
}\r
private void toolStripMenuItem貼り付け_Click( object sender, EventArgs e )\r
{\r
{\r
// マウスが譜面上になかった → 表示領域下辺から貼り付ける\r
\r
- this.tシナリオ・貼り付け( this.mgr譜面管理者.n現在の譜面表示下辺の譜面先頭からの位置grid );\r
+ this.tシナリオ_貼り付け( this.mgr譜面管理者.n現在の譜面表示下辺の譜面先頭からの位置grid );\r
}\r
else\r
{\r
// マウスが譜面上にあった\r
\r
- this.tシナリオ・貼り付け( this.mgr譜面管理者.nY座標dotが位置するgridを返す・ガイド幅単位( ptマウス位置.Y ) );\r
+ this.tシナリオ_貼り付け( this.mgr譜面管理者.nY座標dotが位置するgridを返す_ガイド幅単位( ptマウス位置.Y ) );\r
}\r
}\r
private void toolStripMenuItem削除_Click( object sender, EventArgs e )\r
{\r
- this.tシナリオ・削除();\r
+ this.tシナリオ_削除();\r
}\r
private void toolStripMenuItemすべて選択_Click( object sender, EventArgs e )\r
{\r
}\r
private void toolStripMenuItem検索_Click( object sender, EventArgs e )\r
{\r
- this.tシナリオ・検索();\r
+ this.tシナリオ_検索();\r
}\r
private void toolStripMenuItem置換_Click( object sender, EventArgs e )\r
{\r
- this.tシナリオ・置換();\r
+ this.tシナリオ_置換();\r
}\r
//-----------------\r
#endregion\r
//-----------------\r
private void toolStripMenuItem先頭から再生_Click( object sender, EventArgs e )\r
{\r
- this.tシナリオ・Viewerで最初から再生する();\r
+ this.tシナリオ_Viewerで最初から再生する();\r
}\r
private void toolStripMenuItem現在位置から再生_Click( object sender, EventArgs e )\r
{\r
- this.tシナリオ・Viewerで現在位置から再生する();\r
+ this.tシナリオ_Viewerで現在位置から再生する();\r
}\r
private void toolStripMenuItem現在位置からBGMのみ再生_Click( object sender, EventArgs e )\r
{\r
- this.tシナリオ・Viewerで現在位置からBGMのみ再生する();\r
+ this.tシナリオ_Viewerで現在位置からBGMのみ再生する();\r
}\r
private void toolStripMenuItem再生停止_Click( object sender, EventArgs e )\r
{\r
- this.tシナリオ・Viewerを再生停止する();\r
+ this.tシナリオ_Viewerを再生停止する();\r
}\r
//-----------------\r
#endregion\r
this.mgrオプション管理者.tオプションダイアログを開いて編集し結果をアプリ設定に格納する();\r
this.mgr譜面管理者.tRefreshDisplayLanes(); // レーンの表示/非表示切り替えに備えて追加\r
}\r
+ private void toolStripMenuItemMIDIImport_Click( object sender, EventArgs e)\r
+ {\r
+ this.mgrMIDIインポート管理者.tMIDIインポート管理を開く();\r
+ this.mgr譜面管理者.tRefreshDisplayLanes(); // レーンの表示/非表示切り替えに備えて追加\r
+ }\r
//-----------------\r
#endregion\r
#region [ GUIイベント:メニューバー [ヘルプ] ]\r
//-----------------\r
private void toolStripButton新規作成_Click( object sender, EventArgs e )\r
{\r
- this.tシナリオ・新規作成();\r
+ this.tシナリオ_新規作成();\r
}\r
private void toolStripButton開く_Click( object sender, EventArgs e )\r
{\r
- this.tシナリオ・開く();\r
+ this.tシナリオ_開く();\r
}\r
private void toolStripButton上書き保存_Click( object sender, EventArgs e )\r
{\r
- this.tシナリオ・上書き保存();\r
+ this.tシナリオ_上書き保存();\r
}\r
private void toolStripButton切り取り_Click( object sender, EventArgs e )\r
{\r
- this.tシナリオ・切り取り();\r
+ this.tシナリオ_切り取り();\r
}\r
private void toolStripButtonコピー_Click( object sender, EventArgs e )\r
{\r
- this.tシナリオ・コピー();\r
+ this.tシナリオ_コピー();\r
}\r
private void toolStripButton貼り付け_Click( object sender, EventArgs e )\r
{\r
{\r
// マウスが譜面上になかった → 表示領域下辺から貼り付ける\r
\r
- this.tシナリオ・貼り付け( this.mgr譜面管理者.n現在の譜面表示下辺の譜面先頭からの位置grid );\r
+ this.tシナリオ_貼り付け( this.mgr譜面管理者.n現在の譜面表示下辺の譜面先頭からの位置grid );\r
}\r
else\r
{\r
// マウスが譜面上にあった\r
\r
- this.tシナリオ・貼り付け( this.mgr譜面管理者.nY座標dotが位置するgridを返す・ガイド幅単位( ptマウスの位置.Y ) );\r
+ this.tシナリオ_貼り付け( this.mgr譜面管理者.nY座標dotが位置するgridを返す_ガイド幅単位( ptマウスの位置.Y ) );\r
}\r
}\r
private void toolStripButton削除_Click( object sender, EventArgs e )\r
{\r
- this.tシナリオ・削除();\r
+ this.tシナリオ_削除();\r
}\r
private void toolStripButtonアンドゥ_Click( object sender, EventArgs e )\r
{\r
- this.tシナリオ・Undoする();\r
+ this.tシナリオ_Undoする();\r
}\r
private void toolStripButtonリドゥ_Click( object sender, EventArgs e )\r
{\r
- this.tシナリオ・Redoする();\r
+ this.tシナリオ_Redoする();\r
}\r
private void toolStripButtonチップパレット_Click( object sender, EventArgs e )\r
{\r
}\r
private void toolStripButton先頭から再生_Click( object sender, EventArgs e )\r
{\r
- this.tシナリオ・Viewerで最初から再生する();\r
+ this.tシナリオ_Viewerで最初から再生する();\r
}\r
private void toolStripButton現在位置から再生_Click( object sender, EventArgs e )\r
{\r
- this.tシナリオ・Viewerで現在位置から再生する();\r
+ this.tシナリオ_Viewerで現在位置から再生する();\r
}\r
private void toolStripButton現在位置からBGMのみ再生_Click( object sender, EventArgs e )\r
{\r
- this.tシナリオ・Viewerで現在位置からBGMのみ再生する();\r
+ this.tシナリオ_Viewerで現在位置からBGMのみ再生する();\r
}\r
private void toolStripButton再生停止_Click( object sender, EventArgs e )\r
{\r
- this.tシナリオ・Viewerを再生停止する();\r
+ this.tシナリオ_Viewerを再生停止する();\r
}\r
\r
//private void ToolStripMenuItemBeatChipsGeneration_Click( object sender, EventArgs e ) // Beat Detections\r
{\r
string filename = "";\r
\r
- #region [ マウスカーソルを待機中に変更 (アプリウインドウ外で右クリックメニュー選択していると、効果がない・・・) ]\r
- this.Cursor = Cursors.WaitCursor;\r
- #endregion\r
-\r
-\r
#region [ BGM, BPM, BEATレーンのレーン番号を取得 ]\r
int laneBGM = this.mgr譜面管理者.nレーン名に対応するレーン番号を返す( "BGM" );\r
int laneBPM = this.mgr譜面管理者.nレーン名に対応するレーン番号を返す( "BPM" );\r
int laneBEAT = this.mgr譜面管理者.nレーン名に対応するレーン番号を返す( "BEAT" );\r
#endregion\r
\r
- #region [ BPM,BEATレーンの情報を消去 ]\r
- this.mgr選択モード管理者.tレーン上の全チップを選択する( laneBPM );\r
- this.tシナリオ・削除();\r
- this.mgr選択モード管理者.tレーン上の全チップを選択する( laneBEAT );\r
- this.tシナリオ・削除();\r
- #endregion\r
-\r
#region [ BGMレーンにあるチップを抽出して、beat検出する対象のサウンドファイルを決める ]\r
// とりあえずBGMチップは1個しかない前提で進める。追々、複数のBGMチップでも動作するようにはしたい。\r
#region [ BGMチップ抽出 ]\r
if ( nBGMチップのindex >= 0 )\r
{\r
nBGMチップの小節番号 = c小節.n小節番号0to3599;\r
- filename = this.mgrWAVリスト管理者.tファイル名を絶対パスで返す( c小節.listチップ[ nBGMチップのindex ].n値・整数1to1295 );\r
+ filename = this.mgrWAVリスト管理者.tファイル名を絶対パスで返す( c小節.listチップ[ nBGMチップのindex ].n値_整数1to1295);\r
Debug.WriteLine( filename );\r
break; // とりあえず1個見つけたらbreakしちゃう\r
}\r
//}\r
//}\r
}\r
+ if ( filename == "" )\r
+ {\r
+ MessageBox.Show( "BGMチップが配置されていません。BGMチップを1つ配置してください。", "BGMチップ検出エラー", MessageBoxButtons.OK, MessageBoxIcon.Error );\r
+ return;\r
+ }\r
#endregion\r
#endregion\r
\r
+ #region [ マウスカーソルを待機中に変更 (アプリウインドウ外で右クリックメニュー選択していると、効果がない・・・) ]\r
+ this.Cursor = Cursors.WaitCursor;\r
+ #endregion\r
+\r
+ #region [ BPM,BEATレーンの情報を消去 ]\r
+ this.mgr選択モード管理者.tレーン上の全チップを選択する( laneBPM );\r
+ this.tシナリオ_削除();\r
+ this.mgr選択モード管理者.tレーン上の全チップを選択する( laneBEAT );\r
+ this.tシナリオ_削除();\r
+ #endregion\r
\r
\r
#region [ BASSFXのBeat detectionを実行する ]\r
\r
BPMchipsGeneneration_Main();\r
\r
- #region [ マウスカーソルの形を元に戻す ]\r
- this.Cursor = Cursors.Default;\r
- #endregion\r
-\r
cbd.Dispose();\r
cbd = null;\r
\r
this.pictureBox譜面パネル.Invalidate();\r
#endregion\r
\r
+\r
#region [ listBeatPositionsの開放 ]\r
listBeatPositions.Clear();\r
listBeatPositions = null;\r
#endregion\r
+\r
+ #region [ マウスカーソルの形を元に戻す ]\r
+ this.Cursor = Cursors.Default;\r
+ #endregion\r
}\r
\r
//private void ToolStripMenuItemBPMChipsGeneration_Click( object sender, EventArgs e )\r
#region [ BPMレーンとHHレーンを消去(0小節目を除く) ]\r
int laneBPM = this.mgr譜面管理者.nレーン名に対応するレーン番号を返す( "BPM" );\r
this.mgr選択モード管理者.tレーン上の全チップを選択する( laneBPM, 1 );\r
- this.tシナリオ・削除();\r
+ this.tシナリオ_削除();\r
\r
#region [ デバッグ用: HHレーンを消去 ]\r
int laneHH = this.mgr譜面管理者.nレーン名に対応するレーン番号を返す( "HH" );\r
this.mgr選択モード管理者.tレーン上の全チップを選択する( laneHH, 1 );\r
- this.tシナリオ・削除();\r
+ this.tシナリオ_削除();\r
#endregion\r
#endregion\r
\r
\r
listBeatPositions.Add(\r
new CBeatDetect.stBeatPos(\r
- c小節.listチップ[ index ].f値・浮動小数,\r
+ c小節.listチップ[ index ].f値_浮動小数,\r
n小節番号,\r
this.mgr譜面管理者.n譜面先頭からみた小節先頭の位置gridを返す( n小節番号 ) + c小節.listチップ[ index ].n位置grid,\r
c小節.listチップ[ index ].n位置grid,\r
return target;\r
}\r
\r
+ private void calcDifficultyToolStripMenuItem_Click(object sender, EventArgs e)\r
+ {\r
+ DTXCreator.コード._05.譜面.C難易度自動計算マン f = new コード._05.譜面.C難易度自動計算マン(this);\r
+\r
+ Cメッセージポップアップ pop = new Cメッセージポップアップ(Resources.str難易度計算マン計算中);\r
+ pop.Owner = this;\r
+ pop.Show();\r
+ pop.Refresh();\r
+\r
+ f.Prepare();\r
+ hScrollBarDLEVEL.Value = f.DLevel;\r
+ hScrollBarGLEVEL.Value = f.GLevel;\r
+ hScrollBarBLEVEL.Value = f.BLevel;\r
+ pop.Close();\r
+ }\r
+\r
//-----------------\r
#endregion\r
\r