• R/O
  • HTTP
  • SSH
  • HTTPS

CsWin10Desktop3: Commit

Visual C# 7.0, Windows10 Desktop App


Commit MetaInfo

Revision6dcdf0722d5c73074f8c4ac02c92a80619089fce (tree)
Time2017-10-09 17:28:51
Authorくまかみ工房 <kumakamikoubou@gmai...>
Commiterくまかみ工房

Log Message

SSTEditor に「Level」項目を追加。

SSTFormat.v3.スコア.難易度 の規定値を 0.00 から 5.00 に変更。

Change Summary

Incremental Difference

--- a/SSTFEditor/メインフォーム.Designer.cs
+++ b/SSTFEditor/メインフォーム.Designer.cs
@@ -33,6 +33,9 @@
3333 this.splitContainer分割パネルコンテナ = new System.Windows.Forms.SplitContainer();
3434 this.tabControl情報タブコンテナ = new System.Windows.Forms.TabControl();
3535 this.tabPage基本情報 = new System.Windows.Forms.TabPage();
36+ this.textBoxLevel = new System.Windows.Forms.TextBox();
37+ this.trackBarLevel = new System.Windows.Forms.TrackBar();
38+ this.labelLevel = new System.Windows.Forms.Label();
3639 this.textBoxサウンド遅延ms = new System.Windows.Forms.TextBox();
3740 this.labelサウンド遅延ms = new System.Windows.Forms.Label();
3841 this.textBoxメモ = new System.Windows.Forms.TextBox();
@@ -146,6 +149,7 @@
146149 this.splitContainer分割パネルコンテナ.SuspendLayout();
147150 this.tabControl情報タブコンテナ.SuspendLayout();
148151 this.tabPage基本情報.SuspendLayout();
152+ ((System.ComponentModel.ISupportInitialize)(this.trackBarLevel)).BeginInit();
149153 ((System.ComponentModel.ISupportInitialize)(this.numericUpDownメモ用小節番号)).BeginInit();
150154 ((System.ComponentModel.ISupportInitialize)(this.pictureBox譜面パネル)).BeginInit();
151155 this.menuStripメニューバー.SuspendLayout();
@@ -182,6 +186,9 @@
182186 // tabPage基本情報
183187 //
184188 this.tabPage基本情報.BackColor = System.Drawing.SystemColors.Window;
189+ this.tabPage基本情報.Controls.Add(this.textBoxLevel);
190+ this.tabPage基本情報.Controls.Add(this.trackBarLevel);
191+ this.tabPage基本情報.Controls.Add(this.labelLevel);
185192 this.tabPage基本情報.Controls.Add(this.textBoxサウンド遅延ms);
186193 this.tabPage基本情報.Controls.Add(this.labelサウンド遅延ms);
187194 this.tabPage基本情報.Controls.Add(this.textBoxメモ);
@@ -197,6 +204,27 @@
197204 resources.ApplyResources(this.tabPage基本情報, "tabPage基本情報");
198205 this.tabPage基本情報.Name = "tabPage基本情報";
199206 //
207+ // textBoxLevel
208+ //
209+ resources.ApplyResources(this.textBoxLevel, "textBoxLevel");
210+ this.textBoxLevel.Name = "textBoxLevel";
211+ this.textBoxLevel.Validating += new System.ComponentModel.CancelEventHandler(this.textBoxLevel_Validating);
212+ this.textBoxLevel.Validated += new System.EventHandler(this.textBoxLevel_Validated);
213+ //
214+ // trackBarLevel
215+ //
216+ this.trackBarLevel.LargeChange = 50;
217+ resources.ApplyResources(this.trackBarLevel, "trackBarLevel");
218+ this.trackBarLevel.Maximum = 999;
219+ this.trackBarLevel.Name = "trackBarLevel";
220+ this.trackBarLevel.Value = 500;
221+ this.trackBarLevel.Scroll += new System.EventHandler(this.trackBarLevel_Scroll);
222+ //
223+ // labelLevel
224+ //
225+ resources.ApplyResources(this.labelLevel, "labelLevel");
226+ this.labelLevel.Name = "labelLevel";
227+ //
200228 // textBoxサウンド遅延ms
201229 //
202230 resources.ApplyResources(this.textBoxサウンド遅延ms, "textBoxサウンド遅延ms");
@@ -213,7 +241,7 @@
213241 resources.ApplyResources(this.textBoxメモ, "textBoxメモ");
214242 this.textBoxメモ.Name = "textBoxメモ";
215243 this.textBoxメモ.TextChanged += new System.EventHandler(this.textBoxメモ_TextChanged);
216- this.textBoxメモ.Leave += new System.EventHandler(this.textBoxメモ_Leave);
244+ this.textBoxメモ.Validated += new System.EventHandler(this.textBoxメモ_Validated);
217245 //
218246 // labelメモ用小節番号
219247 //
@@ -257,7 +285,7 @@
257285 resources.ApplyResources(this.textBox説明, "textBox説明");
258286 this.textBox説明.Name = "textBox説明";
259287 this.textBox説明.TextChanged += new System.EventHandler(this.textBox説明_TextChanged);
260- this.textBox説明.Leave += new System.EventHandler(this.textBox説明_Leave);
288+ this.textBox説明.Validated += new System.EventHandler(this.textBox説明_Validated);
261289 //
262290 // label曲名
263291 //
@@ -269,7 +297,7 @@
269297 resources.ApplyResources(this.textBox曲名, "textBox曲名");
270298 this.textBox曲名.Name = "textBox曲名";
271299 this.textBox曲名.TextChanged += new System.EventHandler(this.textBox曲名_TextChanged);
272- this.textBox曲名.Leave += new System.EventHandler(this.textBox曲名_Leave);
300+ this.textBox曲名.Validated += new System.EventHandler(this.textBox曲名_Validated);
273301 //
274302 // label現在のチップ種別
275303 //
@@ -1019,6 +1047,7 @@
10191047 this.tabControl情報タブコンテナ.ResumeLayout(false);
10201048 this.tabPage基本情報.ResumeLayout(false);
10211049 this.tabPage基本情報.PerformLayout();
1050+ ((System.ComponentModel.ISupportInitialize)(this.trackBarLevel)).EndInit();
10221051 ((System.ComponentModel.ISupportInitialize)(this.numericUpDownメモ用小節番号)).EndInit();
10231052 ((System.ComponentModel.ISupportInitialize)(this.pictureBox譜面パネル)).EndInit();
10241053 this.menuStripメニューバー.ResumeLayout(false);
@@ -1143,6 +1172,9 @@
11431172 private System.Windows.Forms.TextBox textBoxサウンド遅延ms;
11441173 private System.Windows.Forms.Label labelサウンド遅延ms;
11451174 private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemガイド間隔36分;
1175+ private System.Windows.Forms.TextBox textBoxLevel;
1176+ private System.Windows.Forms.TrackBar trackBarLevel;
1177+ private System.Windows.Forms.Label labelLevel;
11461178 }
11471179 }
11481180
--- a/SSTFEditor/メインフォーム.cs
+++ b/SSTFEditor/メインフォーム.cs
@@ -1485,9 +1485,11 @@ namespace SSTFEditor
14851485 //-----------------
14861486 this._次のプロパティ変更がUndoRedoリストに載らないようにする();
14871487 this.textBox曲名.Clear();
1488-
1489- this._次のプロパティ変更がUndoRedoリストに載らないようにする();
1488+ this.textBoxLevel.Text = "5.00";
1489+ this.trackBarLevel.Value = 500;
14901490 this.textBox説明.Clear();
1491+ this.numericUpDownメモ用小節番号.Value = 0;
1492+ this.textBoxメモ.Clear();
14911493 //-----------------
14921494 #endregion
14931495 #region " Viewer 再生 "
@@ -1619,14 +1621,25 @@ namespace SSTFEditor
16191621 ( from file in Directory.GetFiles( Path.GetDirectoryName( this._作業フォルダパス ) )
16201622 where スコア.背景動画のデフォルト拡張子s.Any( 拡張子名 => ( Path.GetExtension( file ).ToLower() == 拡張子名 ) )
16211623 select file ).FirstOrDefault(); // 複数あったら、最初に見つけたほうを採用。1つも見つからなければ null。
1624+
16221625 this._次のプロパティ変更がUndoRedoリストに載らないようにする();
16231626 this.textBox曲名.Text = 譜面.SSTFormatScore.曲名;
1627+
1628+ this._次のプロパティ変更がUndoRedoリストに載らないようにする();
1629+ this.textBoxLevel.Text = 譜面.SSTFormatScore.難易度.ToString( "0.00" );
1630+
1631+ this._次のプロパティ変更がUndoRedoリストに載らないようにする();
1632+ this.trackBarLevel.Value = Math.Min( Math.Max( (int) ( 譜面.SSTFormatScore.難易度 * 100 ), 0 ), 999 );
1633+
16241634 this._次のプロパティ変更がUndoRedoリストに載らないようにする();
16251635 this.textBox説明.Text = 譜面.SSTFormatScore.説明文;
1636+
16261637 this._次のプロパティ変更がUndoRedoリストに載らないようにする();
16271638 this.textBox背景動画.Text = Path.GetFileName( 譜面.SSTFormatScore.背景動画ファイル名 );
1639+
16281640 this._次のプロパティ変更がUndoRedoリストに載らないようにする();
16291641 this.textBoxメモ.Text = ( this.譜面.SSTFormatScore.dicメモ.ContainsKey( 0 ) ) ? this.譜面.SSTFormatScore.dicメモ[ 0 ] : "";
1642+
16301643 this._次のプロパティ変更がUndoRedoリストに載らないようにする();
16311644 this.textBoxサウンド遅延ms.Text = this.譜面.SSTFormatScore.サウンドデバイス遅延ms.ToString();
16321645
@@ -2707,13 +2720,11 @@ namespace SSTFEditor
27072720 // スコアには随時保存する。
27082721 譜面.SSTFormatScore.曲名 = this.textBox曲名.Text;
27092722 }
2710-
2711- protected void textBox曲名_Leave( object sender, EventArgs e )
2723+ protected void textBox曲名_Validated( object sender, EventArgs e )
27122724 {
27132725 // 最新の UndoRedoセル の所有権を放棄する。
27142726 this.UndoRedo管理.Undoするセルを取得して返す_見るだけ()?.所有権を放棄する( this.textBox曲名 );
27152727 }
2716-
27172728 private string textBox曲名_以前の値 = "";
27182729
27192730 protected void textBox説明_TextChanged( object sender, EventArgs e )
@@ -2772,13 +2783,11 @@ namespace SSTFEditor
27722783 // スコアには随時保存する。
27732784 譜面.SSTFormatScore.説明文 = this.textBox説明.Text;
27742785 }
2775-
2776- protected void textBox説明_Leave( object sender, EventArgs e )
2786+ protected void textBox説明_Validated( object sender, EventArgs e )
27772787 {
27782788 // 最新 UndoRedoセル の所有権を放棄する。
27792789 this.UndoRedo管理.Undoするセルを取得して返す_見るだけ()?.所有権を放棄する( this.textBox説明 );
27802790 }
2781-
27822791 private string textBox説明_以前の値 = "";
27832792
27842793 protected void textBoxメモ_TextChanged( object sender, EventArgs e )
@@ -2921,8 +2930,7 @@ namespace SSTFEditor
29212930 //-----------------
29222931 #endregion
29232932 }
2924-
2925- protected void textBoxメモ_Leave( object sender, EventArgs e )
2933+ protected void textBoxメモ_Validated( object sender, EventArgs e )
29262934 {
29272935 // 最新 UndoRedoセル の所有権を放棄する。
29282936 this.UndoRedo管理.Undoするセルを取得して返す_見るだけ()?.所有権を放棄する( this.textBoxメモ );
@@ -2930,7 +2938,6 @@ namespace SSTFEditor
29302938 // 小節メモをリフレッシュ。
29312939 this.splitContainer分割パネルコンテナ.Panel2.Refresh();
29322940 }
2933-
29342941 private string textBoxメモ_以前の値 = "";
29352942
29362943 protected void numericUpDownメモ用小節番号_ValueChanged( object sender, EventArgs e )
@@ -2944,7 +2951,108 @@ namespace SSTFEditor
29442951 this.textBoxメモ.Text = "";
29452952 this._次のプロパティ変更がUndoRedoリストに載るようにする();
29462953 }
2954+
2955+ protected void trackBarLevel_Scroll( object sender, EventArgs e )
2956+ {
2957+ // テキストボックスに数値を反映。(0~999 → 0.00~9.99 に変換)
2958+ this.textBoxLevel.Text = ( this.trackBarLevel.Value / 100.0 ).ToString( "0.00" );
2959+
2960+ // テキストボックスに Validation を起こさせる。
2961+ this.textBoxLevel.Focus();
2962+ this.trackBarLevel.Focus();
2963+ }
2964+
2965+ protected void textBoxLevel_Validating( object sender, System.ComponentModel.CancelEventArgs e )
2966+ {
2967+ // 入力値が 0.00 ~ 9.99 の小数であるか確認する。
2968+ if( float.TryParse( this.textBoxLevel.Text, out float val ) )
2969+ {
2970+ // 値を丸める
2971+ if( val < 0.0f )
2972+ {
2973+ this.textBoxLevel.Text = "0.00";
2974+ val = 0.0f;
2975+ }
2976+ else if( val > 9.99f )
2977+ {
2978+ this.textBoxLevel.Text = "9.99";
2979+ val = 9.99f;
2980+ }
2981+
2982+ #region " この変更が Undo/Redo したことによるものではない場合、UndoRedoセルを追加 or 修正する。"
2983+ //-----------------
2984+ if( false == UndoRedo.管理.UndoRedoした直後である )
2985+ {
2986+ // 最新のセルの所有者が自分?
2987+ var cell = this.UndoRedo管理.Undoするセルを取得して返す_見るだけ();
2988+
2989+ if( ( null != cell ) && cell.所有権がある( this.textBoxLevel ) )
2990+ {
2991+ // (A) 所有者である → 最新のセルの "変更後の値" を現在のコントロールの値に更新する。
2992+ ( (UndoRedo.セル<string>) cell ).変更後の値 = this.textBoxLevel.Text;
2993+ }
2994+ else
2995+ {
2996+ // (B) 所有者ではない → 以下のようにセルを新規追加する。
2997+ // "変更前の値" ← 以前の値
2998+ // "変更後の値" ← 現在の値
2999+ // "所有者ID" ← 対象となるコンポーネントオブジェクト
3000+ var cc = new UndoRedo.セル<string>(
3001+ 所有者ID: this.textBoxLevel,
3002+ Undoアクション: ( 変更対象, 変更前, 変更後, 任意1, 任意2 ) => {
3003+ this._タブを選択する( タブ種別.基本情報 );
3004+ this._次のプロパティ変更がUndoRedoリストに載らないようにする();
3005+ this.textBoxLevel.Text = 変更前;
3006+ this.textBoxLevel.Focus();
3007+ this.trackBarLevel.Value = ( string.IsNullOrEmpty( 変更前 ) ) ? 0 : (int) ( float.Parse( 変更前 ) * 100 );
3008+ },
3009+ Redoアクション: ( 変更対象, 変更前, 変更後, 任意1, 任意2 ) => {
3010+ this._タブを選択する( タブ種別.基本情報 );
3011+ this._次のプロパティ変更がUndoRedoリストに載らないようにする();
3012+ this.textBoxLevel.Text = 変更後;
3013+ this.textBoxLevel.Focus();
3014+ this.trackBarLevel.Value = ( string.IsNullOrEmpty( 変更後 ) ) ? 0 : (int) ( float.Parse( 変更後 ) * 100 );
3015+ },
3016+ 変更対象: null,
3017+ 変更前の値: this.textBoxLevel_以前の値,
3018+ 変更後の値: this.textBoxLevel.Text,
3019+ 任意1: null,
3020+ 任意2: null );
3021+
3022+ this.UndoRedo管理.セルを追加する( cc );
3023+
3024+ // Undo ボタンを有効にする。
3025+ this.UndoRedo用GUIのEnabledを設定する();
3026+ }
3027+ }
3028+ //-----------------
3029+ #endregion
3030+
3031+ this.textBoxLevel_以前の値 = this.textBoxLevel.Text; // 以前の値 ← 現在の値
3032+ UndoRedo.管理.UndoRedoした直後である = false;
3033+ this.未保存である = true;
3034+
3035+ // トラックバーに反映する。
3036+ this.trackBarLevel.Value = (int) ( val * 100 );
3037+
3038+ // スコアに反映する。
3039+ 譜面.SSTFormatScore.難易度 = val;
3040+ }
3041+ else
3042+ {
3043+ e.Cancel = true;
3044+ this.textBoxLevel.Text = ( this.trackBarLevel.Value / 100 ).ToString( "0.00" );
3045+ this.textBoxLevel.Select();
3046+ }
3047+ }
3048+ protected void textBoxLevel_Validated( object sender, EventArgs e )
3049+ {
3050+ // 最新の UndoRedoセル の所有権を放棄する。
3051+ this.UndoRedo管理.Undoするセルを取得して返す_見るだけ()?.所有権を放棄する( this.textBoxLevel );
3052+ }
3053+ private string textBoxLevel_以前の値 = "5.00";
29473054 //-----------------
29483055 #endregion
3056+
29493057 }
29503058 }
--- a/SSTFEditor/メインフォーム.ja-JP.resx
+++ b/SSTFEditor/メインフォーム.ja-JP.resx
@@ -117,10 +117,26 @@
117117 <resheader name="writer">
118118 <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119119 </resheader>
120+ <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
121+ <data name="labelCurrentChipType.Size" type="System.Drawing.Size, System.Drawing">
122+ <value>132, 24</value>
123+ </data>
124+ <data name="labelCurrentChipType.Text" xml:space="preserve">
125+ <value>現在のレーンのチップ種別:
126+(SPACEキーで変更)</value>
127+ </data>
128+ <data name="tabPage基本情報.Text" xml:space="preserve">
129+ <value>基本情報</value>
130+ </data>
131+ <data name="labelLevel.Size" type="System.Drawing.Size, System.Drawing">
132+ <value>34, 12</value>
133+ </data>
134+ <data name="labelLevel.Text" xml:space="preserve">
135+ <value>レベル</value>
136+ </data>
120137 <data name="labelサウンド遅延ms.Text" xml:space="preserve">
121138 <value>サウンド遅延 [ms] (自動検出)</value>
122139 </data>
123- <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
124140 <data name="labelメモ用小節番号.Location" type="System.Drawing.Point, System.Drawing">
125141 <value>147, 214</value>
126142 </data>
@@ -154,15 +170,11 @@
154170 <data name="label曲名.Text" xml:space="preserve">
155171 <value>曲名</value>
156172 </data>
157- <data name="tabPage基本情報.Text" xml:space="preserve">
158- <value>基本情報</value>
159- </data>
160- <data name="labelCurrentChipType.Size" type="System.Drawing.Size, System.Drawing">
161- <value>132, 24</value>
173+ <data name="toolStripMenuItemファイル.Size" type="System.Drawing.Size, System.Drawing">
174+ <value>67, 20</value>
162175 </data>
163- <data name="labelCurrentChipType.Text" xml:space="preserve">
164- <value>現在のレーンのチップ種別:
165-(SPACEキーで変更)</value>
176+ <data name="toolStripMenuItemファイル.Text" xml:space="preserve">
177+ <value>ファイル(&amp;F)</value>
166178 </data>
167179 <data name="toolStripMenuItem新規作成.Size" type="System.Drawing.Size, System.Drawing">
168180 <value>184, 22</value>
@@ -197,95 +209,101 @@
197209 <data name="toolStripMenuItem終了.Text" xml:space="preserve">
198210 <value>終了(&amp;X)</value>
199211 </data>
200- <data name="toolStripMenuItemファイル.Size" type="System.Drawing.Size, System.Drawing">
201- <value>66, 20</value>
212+ <data name="toolStripMenuItem編集.Size" type="System.Drawing.Size, System.Drawing">
213+ <value>57, 20</value>
202214 </data>
203- <data name="toolStripMenuItemファイル.Text" xml:space="preserve">
204- <value>ファイル(&amp;F)</value>
215+ <data name="toolStripMenuItem編集.Text" xml:space="preserve">
216+ <value>編集(&amp;E)</value>
205217 </data>
206218 <data name="toolStripMenuItem元に戻す.Size" type="System.Drawing.Size, System.Drawing">
207- <value>183, 22</value>
219+ <value>184, 22</value>
208220 </data>
209221 <data name="toolStripMenuItem元に戻す.Text" xml:space="preserve">
210222 <value>元に戻す(&amp;U)</value>
211223 </data>
212224 <data name="toolStripMenuItemやり直す.Size" type="System.Drawing.Size, System.Drawing">
213- <value>183, 22</value>
225+ <value>184, 22</value>
214226 </data>
215227 <data name="toolStripMenuItemやり直す.Text" xml:space="preserve">
216228 <value>やり直す(&amp;R)</value>
217229 </data>
218230 <data name="toolStripSeparator2.Size" type="System.Drawing.Size, System.Drawing">
219- <value>180, 6</value>
231+ <value>181, 6</value>
220232 </data>
221233 <data name="toolStripMenuItem切り取り.Size" type="System.Drawing.Size, System.Drawing">
222- <value>183, 22</value>
234+ <value>184, 22</value>
223235 </data>
224236 <data name="toolStripMenuItem切り取り.Text" xml:space="preserve">
225237 <value>切り取り(&amp;T)</value>
226238 </data>
227239 <data name="toolStripMenuItemコピー.Size" type="System.Drawing.Size, System.Drawing">
228- <value>183, 22</value>
240+ <value>184, 22</value>
229241 </data>
230242 <data name="toolStripMenuItemコピー.Text" xml:space="preserve">
231243 <value>コピー(&amp;C)</value>
232244 </data>
233245 <data name="toolStripMenuItem貼り付け.Size" type="System.Drawing.Size, System.Drawing">
234- <value>183, 22</value>
246+ <value>184, 22</value>
235247 </data>
236248 <data name="toolStripMenuItem貼り付け.Text" xml:space="preserve">
237249 <value>貼り付け(&amp;P)</value>
238250 </data>
239251 <data name="toolStripMenuItem削除.Size" type="System.Drawing.Size, System.Drawing">
240- <value>183, 22</value>
252+ <value>184, 22</value>
241253 </data>
242254 <data name="toolStripMenuItem削除.Text" xml:space="preserve">
243255 <value>削除(&amp;D)</value>
244256 </data>
245257 <data name="toolStripSeparator3.Size" type="System.Drawing.Size, System.Drawing">
246- <value>180, 6</value>
258+ <value>181, 6</value>
247259 </data>
248260 <data name="toolStripMenuItemすべて選択.Size" type="System.Drawing.Size, System.Drawing">
249- <value>183, 22</value>
261+ <value>184, 22</value>
250262 </data>
251263 <data name="toolStripMenuItemすべて選択.Text" xml:space="preserve">
252264 <value>すべて選択(&amp;A)</value>
253265 </data>
254266 <data name="toolStripSeparator4.Size" type="System.Drawing.Size, System.Drawing">
255- <value>180, 6</value>
267+ <value>181, 6</value>
256268 </data>
257269 <data name="toolStripMenuItem選択モード.Size" type="System.Drawing.Size, System.Drawing">
258- <value>183, 22</value>
270+ <value>184, 22</value>
259271 </data>
260272 <data name="toolStripMenuItem選択モード.Text" xml:space="preserve">
261273 <value>選択モード(&amp;S)</value>
262274 </data>
263275 <data name="toolStripMenuItem編集モード.Size" type="System.Drawing.Size, System.Drawing">
264- <value>183, 22</value>
276+ <value>184, 22</value>
265277 </data>
266278 <data name="toolStripMenuItem編集モード.Text" xml:space="preserve">
267279 <value>編集モード(&amp;E)</value>
268280 </data>
269281 <data name="toolStripMenuItemモード切替え.Size" type="System.Drawing.Size, System.Drawing">
270- <value>183, 22</value>
282+ <value>184, 22</value>
271283 </data>
272284 <data name="toolStripMenuItemモード切替え.Text" xml:space="preserve">
273285 <value>モード切替え(&amp;M)</value>
274286 </data>
275287 <data name="toolStripSeparator5.Size" type="System.Drawing.Size, System.Drawing">
276- <value>180, 6</value>
288+ <value>181, 6</value>
277289 </data>
278290 <data name="toolStripMenuItem検索.Size" type="System.Drawing.Size, System.Drawing">
279- <value>183, 22</value>
291+ <value>184, 22</value>
280292 </data>
281293 <data name="toolStripMenuItem検索.Text" xml:space="preserve">
282294 <value>検索(&amp;F)</value>
283295 </data>
284- <data name="toolStripMenuItem編集.Size" type="System.Drawing.Size, System.Drawing">
285- <value>57, 20</value>
296+ <data name="toolStripMenuItem表示.Size" type="System.Drawing.Size, System.Drawing">
297+ <value>58, 20</value>
286298 </data>
287- <data name="toolStripMenuItem編集.Text" xml:space="preserve">
288- <value>編集(&amp;E)</value>
299+ <data name="toolStripMenuItem表示.Text" xml:space="preserve">
300+ <value>表示(&amp;V)</value>
301+ </data>
302+ <data name="toolStripMenuItemガイド間隔.Size" type="System.Drawing.Size, System.Drawing">
303+ <value>141, 22</value>
304+ </data>
305+ <data name="toolStripMenuItemガイド間隔.Text" xml:space="preserve">
306+ <value>ガイド間隔(&amp;G)</value>
289307 </data>
290308 <data name="toolStripMenuItemガイド間隔4分.Size" type="System.Drawing.Size, System.Drawing">
291309 <value>136, 22</value>
@@ -308,6 +326,9 @@
308326 <data name="toolStripMenuItemガイド間隔32分.Size" type="System.Drawing.Size, System.Drawing">
309327 <value>136, 22</value>
310328 </data>
329+ <data name="toolStripMenuItemガイド間隔36分.Size" type="System.Drawing.Size, System.Drawing">
330+ <value>136, 22</value>
331+ </data>
311332 <data name="toolStripMenuItemガイド間隔48分.Size" type="System.Drawing.Size, System.Drawing">
312333 <value>136, 22</value>
313334 </data>
@@ -338,17 +359,11 @@
338359 <data name="toolStripMenuItemガイド間隔縮小.Text" xml:space="preserve">
339360 <value>縮小(&amp;N)</value>
340361 </data>
341- <data name="toolStripMenuItemガイド間隔.Size" type="System.Drawing.Size, System.Drawing">
342- <value>140, 22</value>
343- </data>
344- <data name="toolStripMenuItemガイド間隔.Text" xml:space="preserve">
345- <value>ガイド間隔(&amp;G)</value>
346- </data>
347- <data name="toolStripMenuItem表示.Size" type="System.Drawing.Size, System.Drawing">
362+ <data name="toolStripMenuItem再生.Size" type="System.Drawing.Size, System.Drawing">
348363 <value>58, 20</value>
349364 </data>
350- <data name="toolStripMenuItem表示.Text" xml:space="preserve">
351- <value>表示(&amp;V)</value>
365+ <data name="toolStripMenuItem再生.Text" xml:space="preserve">
366+ <value>再生(&amp;P)</value>
352367 </data>
353368 <data name="toolStripMenuItem先頭から再生.Size" type="System.Drawing.Size, System.Drawing">
354369 <value>237, 22</value>
@@ -374,23 +389,23 @@
374389 <data name="toolStripMenuItem再生停止.Text" xml:space="preserve">
375390 <value>再生停止(&amp;S)</value>
376391 </data>
377- <data name="toolStripMenuItem再生.Size" type="System.Drawing.Size, System.Drawing">
378- <value>58, 20</value>
392+ <data name="toolStripMenuItemツール.Size" type="System.Drawing.Size, System.Drawing">
393+ <value>60, 20</value>
379394 </data>
380- <data name="toolStripMenuItem再生.Text" xml:space="preserve">
381- <value>再生(&amp;P)</value>
395+ <data name="toolStripMenuItemツール.Text" xml:space="preserve">
396+ <value>ツール(&amp;T)</value>
382397 </data>
383398 <data name="toolStripMenuItemオプション.Size" type="System.Drawing.Size, System.Drawing">
384- <value>134, 22</value>
399+ <value>135, 22</value>
385400 </data>
386401 <data name="toolStripMenuItemオプション.Text" xml:space="preserve">
387402 <value>オプション(&amp;O)</value>
388403 </data>
389- <data name="toolStripMenuItemツール.Size" type="System.Drawing.Size, System.Drawing">
390- <value>60, 20</value>
404+ <data name="toolStripMenuItemヘルプ.Size" type="System.Drawing.Size, System.Drawing">
405+ <value>65, 20</value>
391406 </data>
392- <data name="toolStripMenuItemツール.Text" xml:space="preserve">
393- <value>ツール(&amp;T)</value>
407+ <data name="toolStripMenuItemヘルプ.Text" xml:space="preserve">
408+ <value>ヘルプ(&amp;H)</value>
394409 </data>
395410 <data name="toolStripMenuItemバージョン.Size" type="System.Drawing.Size, System.Drawing">
396411 <value>133, 22</value>
@@ -398,12 +413,6 @@
398413 <data name="toolStripMenuItemバージョン.Text" xml:space="preserve">
399414 <value>バージョン(&amp;V)</value>
400415 </data>
401- <data name="toolStripMenuItemヘルプ.Size" type="System.Drawing.Size, System.Drawing">
402- <value>65, 20</value>
403- </data>
404- <data name="toolStripMenuItemヘルプ.Text" xml:space="preserve">
405- <value>ヘルプ(&amp;H)</value>
406- </data>
407416 <data name="toolStripButton新規作成.ToolTipText" xml:space="preserve">
408417 <value>新しい譜面を作成します。</value>
409418 </data>
@@ -497,6 +506,9 @@
497506 <data name="toolStripButton音量UP.ToolTipText" xml:space="preserve">
498507 <value>チップ音量を上げる</value>
499508 </data>
509+ <data name="contextMenuStrip譜面右メニュー.Size" type="System.Drawing.Size, System.Drawing">
510+ <value>191, 198</value>
511+ </data>
500512 <data name="toolStripMenuItem選択チップの切り取り.Size" type="System.Drawing.Size, System.Drawing">
501513 <value>190, 22</value>
502514 </data>
@@ -554,7 +566,4 @@
554566 <data name="toolStripMenuItem小節の削除.Text" xml:space="preserve">
555567 <value>小節の削除(&amp;E)</value>
556568 </data>
557- <data name="contextMenuStrip譜面右メニュー.Size" type="System.Drawing.Size, System.Drawing">
558- <value>191, 198</value>
559- </data>
560569 </root>
\ No newline at end of file
--- a/SSTFEditor/メインフォーム.resx
+++ b/SSTFEditor/メインフォーム.resx
@@ -125,15 +125,96 @@
125125 <data name="splitContainer分割パネルコンテナ.Location" type="System.Drawing.Point, System.Drawing">
126126 <value>0, 50</value>
127127 </data>
128+ <data name="textBoxLevel.Location" type="System.Drawing.Point, System.Drawing">
129+ <value>10, 62</value>
130+ </data>
131+ <assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
132+ <data name="textBoxLevel.MaxLength" type="System.Int32, mscorlib">
133+ <value>5</value>
134+ </data>
135+ <data name="textBoxLevel.Size" type="System.Drawing.Size, System.Drawing">
136+ <value>51, 19</value>
137+ </data>
138+ <data name="textBoxLevel.TabIndex" type="System.Int32, mscorlib">
139+ <value>3</value>
140+ </data>
141+ <data name="textBoxLevel.Text" xml:space="preserve">
142+ <value>5.00</value>
143+ </data>
144+ <data name="textBoxLevel.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms">
145+ <value>Right</value>
146+ </data>
147+ <data name="&gt;&gt;textBoxLevel.Name" xml:space="preserve">
148+ <value>textBoxLevel</value>
149+ </data>
150+ <data name="&gt;&gt;textBoxLevel.Type" xml:space="preserve">
151+ <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
152+ </data>
153+ <data name="&gt;&gt;textBoxLevel.Parent" xml:space="preserve">
154+ <value>tabPage基本情報</value>
155+ </data>
156+ <data name="&gt;&gt;textBoxLevel.ZOrder" xml:space="preserve">
157+ <value>0</value>
158+ </data>
159+ <data name="trackBarLevel.Location" type="System.Drawing.Point, System.Drawing">
160+ <value>67, 49</value>
161+ </data>
162+ <data name="trackBarLevel.Size" type="System.Drawing.Size, System.Drawing">
163+ <value>217, 45</value>
164+ </data>
165+ <data name="trackBarLevel.TabIndex" type="System.Int32, mscorlib">
166+ <value>4</value>
167+ </data>
168+ <data name="&gt;&gt;trackBarLevel.Name" xml:space="preserve">
169+ <value>trackBarLevel</value>
170+ </data>
171+ <data name="&gt;&gt;trackBarLevel.Type" xml:space="preserve">
172+ <value>System.Windows.Forms.TrackBar, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
173+ </data>
174+ <data name="&gt;&gt;trackBarLevel.Parent" xml:space="preserve">
175+ <value>tabPage基本情報</value>
176+ </data>
177+ <data name="&gt;&gt;trackBarLevel.ZOrder" xml:space="preserve">
178+ <value>1</value>
179+ </data>
180+ <data name="labelLevel.AutoSize" type="System.Boolean, mscorlib">
181+ <value>True</value>
182+ </data>
183+ <data name="labelLevel.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
184+ <value>NoControl</value>
185+ </data>
186+ <data name="labelLevel.Location" type="System.Drawing.Point, System.Drawing">
187+ <value>8, 46</value>
188+ </data>
189+ <data name="labelLevel.Size" type="System.Drawing.Size, System.Drawing">
190+ <value>32, 12</value>
191+ </data>
192+ <data name="labelLevel.TabIndex" type="System.Int32, mscorlib">
193+ <value>2</value>
194+ </data>
195+ <data name="labelLevel.Text" xml:space="preserve">
196+ <value>Level</value>
197+ </data>
198+ <data name="&gt;&gt;labelLevel.Name" xml:space="preserve">
199+ <value>labelLevel</value>
200+ </data>
201+ <data name="&gt;&gt;labelLevel.Type" xml:space="preserve">
202+ <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
203+ </data>
204+ <data name="&gt;&gt;labelLevel.Parent" xml:space="preserve">
205+ <value>tabPage基本情報</value>
206+ </data>
207+ <data name="&gt;&gt;labelLevel.ZOrder" xml:space="preserve">
208+ <value>2</value>
209+ </data>
128210 <data name="textBoxサウンド遅延ms.Location" type="System.Drawing.Point, System.Drawing">
129- <value>212, 322</value>
211+ <value>212, 369</value>
130212 </data>
131213 <data name="textBoxサウンド遅延ms.Size" type="System.Drawing.Size, System.Drawing">
132214 <value>72, 19</value>
133215 </data>
134- <assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
135216 <data name="textBoxサウンド遅延ms.TabIndex" type="System.Int32, mscorlib">
136- <value>17</value>
217+ <value>14</value>
137218 </data>
138219 <data name="textBoxサウンド遅延ms.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms">
139220 <value>Right</value>
@@ -148,7 +229,7 @@
148229 <value>tabPage基本情報</value>
149230 </data>
150231 <data name="&gt;&gt;textBoxサウンド遅延ms.ZOrder" xml:space="preserve">
151- <value>0</value>
232+ <value>3</value>
152233 </data>
153234 <data name="labelサウンド遅延ms.AutoSize" type="System.Boolean, mscorlib">
154235 <value>True</value>
@@ -157,13 +238,13 @@
157238 <value>NoControl</value>
158239 </data>
159240 <data name="labelサウンド遅延ms.Location" type="System.Drawing.Point, System.Drawing">
160- <value>8, 325</value>
241+ <value>8, 372</value>
161242 </data>
162243 <data name="labelサウンド遅延ms.Size" type="System.Drawing.Size, System.Drawing">
163244 <value>153, 12</value>
164245 </data>
165246 <data name="labelサウンド遅延ms.TabIndex" type="System.Int32, mscorlib">
166- <value>16</value>
247+ <value>13</value>
167248 </data>
168249 <data name="labelサウンド遅延ms.Text" xml:space="preserve">
169250 <value>Sound Delay [ms] (auto find)</value>
@@ -178,10 +259,10 @@
178259 <value>tabPage基本情報</value>
179260 </data>
180261 <data name="&gt;&gt;labelサウンド遅延ms.ZOrder" xml:space="preserve">
181- <value>1</value>
262+ <value>4</value>
182263 </data>
183264 <data name="textBoxメモ.Location" type="System.Drawing.Point, System.Drawing">
184- <value>10, 237</value>
265+ <value>10, 284</value>
185266 </data>
186267 <data name="textBoxメモ.Multiline" type="System.Boolean, mscorlib">
187268 <value>True</value>
@@ -193,7 +274,7 @@
193274 <value>274, 71</value>
194275 </data>
195276 <data name="textBoxメモ.TabIndex" type="System.Int32, mscorlib">
196- <value>15</value>
277+ <value>12</value>
197278 </data>
198279 <data name="textBoxメモ.WordWrap" type="System.Boolean, mscorlib">
199280 <value>False</value>
@@ -208,7 +289,7 @@
208289 <value>tabPage基本情報</value>
209290 </data>
210291 <data name="&gt;&gt;textBoxメモ.ZOrder" xml:space="preserve">
211- <value>2</value>
292+ <value>5</value>
212293 </data>
213294 <data name="labelメモ用小節番号.AutoSize" type="System.Boolean, mscorlib">
214295 <value>True</value>
@@ -217,13 +298,13 @@
217298 <value>NoControl</value>
218299 </data>
219300 <data name="labelメモ用小節番号.Location" type="System.Drawing.Point, System.Drawing">
220- <value>174, 214</value>
301+ <value>174, 261</value>
221302 </data>
222303 <data name="labelメモ用小節番号.Size" type="System.Drawing.Size, System.Drawing">
223304 <value>32, 12</value>
224305 </data>
225306 <data name="labelメモ用小節番号.TabIndex" type="System.Int32, mscorlib">
226- <value>14</value>
307+ <value>10</value>
227308 </data>
228309 <data name="labelメモ用小節番号.Text" xml:space="preserve">
229310 <value>Part#</value>
@@ -238,16 +319,16 @@
238319 <value>tabPage基本情報</value>
239320 </data>
240321 <data name="&gt;&gt;labelメモ用小節番号.ZOrder" xml:space="preserve">
241- <value>3</value>
322+ <value>6</value>
242323 </data>
243324 <data name="numericUpDownメモ用小節番号.Location" type="System.Drawing.Point, System.Drawing">
244- <value>212, 212</value>
325+ <value>212, 259</value>
245326 </data>
246327 <data name="numericUpDownメモ用小節番号.Size" type="System.Drawing.Size, System.Drawing">
247328 <value>72, 19</value>
248329 </data>
249330 <data name="numericUpDownメモ用小節番号.TabIndex" type="System.Int32, mscorlib">
250- <value>13</value>
331+ <value>11</value>
251332 </data>
252333 <data name="numericUpDownメモ用小節番号.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms">
253334 <value>Right</value>
@@ -262,7 +343,7 @@
262343 <value>tabPage基本情報</value>
263344 </data>
264345 <data name="&gt;&gt;numericUpDownメモ用小節番号.ZOrder" xml:space="preserve">
265- <value>4</value>
346+ <value>7</value>
266347 </data>
267348 <data name="labelメモ小節単位.AutoSize" type="System.Boolean, mscorlib">
268349 <value>True</value>
@@ -271,13 +352,13 @@
271352 <value>NoControl</value>
272353 </data>
273354 <data name="labelメモ小節単位.Location" type="System.Drawing.Point, System.Drawing">
274- <value>8, 214</value>
355+ <value>8, 261</value>
275356 </data>
276357 <data name="labelメモ小節単位.Size" type="System.Drawing.Size, System.Drawing">
277358 <value>108, 12</value>
278359 </data>
279360 <data name="labelメモ小節単位.TabIndex" type="System.Int32, mscorlib">
280- <value>12</value>
361+ <value>9</value>
281362 </data>
282363 <data name="labelメモ小節単位.Text" xml:space="preserve">
283364 <value>Memo (in each part)</value>
@@ -292,19 +373,19 @@
292373 <value>tabPage基本情報</value>
293374 </data>
294375 <data name="&gt;&gt;labelメモ小節単位.ZOrder" xml:space="preserve">
295- <value>5</value>
376+ <value>8</value>
296377 </data>
297378 <data name="label背景動画.AutoSize" type="System.Boolean, mscorlib">
298379 <value>True</value>
299380 </data>
300381 <data name="label背景動画.Location" type="System.Drawing.Point, System.Drawing">
301- <value>8, 167</value>
382+ <value>8, 214</value>
302383 </data>
303384 <data name="label背景動画.Size" type="System.Drawing.Size, System.Drawing">
304385 <value>86, 12</value>
305386 </data>
306387 <data name="label背景動画.TabIndex" type="System.Int32, mscorlib">
307- <value>9</value>
388+ <value>7</value>
308389 </data>
309390 <data name="label背景動画.Text" xml:space="preserve">
310391 <value>BGV (auto find)</value>
@@ -319,10 +400,10 @@
319400 <value>tabPage基本情報</value>
320401 </data>
321402 <data name="&gt;&gt;label背景動画.ZOrder" xml:space="preserve">
322- <value>6</value>
403+ <value>9</value>
323404 </data>
324405 <data name="textBox背景動画.Location" type="System.Drawing.Point, System.Drawing">
325- <value>10, 182</value>
406+ <value>10, 229</value>
326407 </data>
327408 <data name="textBox背景動画.Size" type="System.Drawing.Size, System.Drawing">
328409 <value>275, 19</value>
@@ -340,7 +421,7 @@
340421 <value>tabPage基本情報</value>
341422 </data>
342423 <data name="&gt;&gt;textBox背景動画.ZOrder" xml:space="preserve">
343- <value>7</value>
424+ <value>10</value>
344425 </data>
345426 <data name="label説明.AutoSize" type="System.Boolean, mscorlib">
346427 <value>True</value>
@@ -349,13 +430,13 @@
349430 <value>NoControl</value>
350431 </data>
351432 <data name="label説明.Location" type="System.Drawing.Point, System.Drawing">
352- <value>8, 46</value>
433+ <value>8, 93</value>
353434 </data>
354435 <data name="label説明.Size" type="System.Drawing.Size, System.Drawing">
355436 <value>63, 12</value>
356437 </data>
357438 <data name="label説明.TabIndex" type="System.Int32, mscorlib">
358- <value>7</value>
439+ <value>5</value>
359440 </data>
360441 <data name="label説明.Text" xml:space="preserve">
361442 <value>Description</value>
@@ -370,10 +451,10 @@
370451 <value>tabPage基本情報</value>
371452 </data>
372453 <data name="&gt;&gt;label説明.ZOrder" xml:space="preserve">
373- <value>8</value>
454+ <value>11</value>
374455 </data>
375456 <data name="textBox説明.Location" type="System.Drawing.Point, System.Drawing">
376- <value>10, 61</value>
457+ <value>10, 108</value>
377458 </data>
378459 <data name="textBox説明.Multiline" type="System.Boolean, mscorlib">
379460 <value>True</value>
@@ -397,7 +478,7 @@
397478 <value>tabPage基本情報</value>
398479 </data>
399480 <data name="&gt;&gt;textBox説明.ZOrder" xml:space="preserve">
400- <value>9</value>
481+ <value>12</value>
401482 </data>
402483 <data name="label曲名.AutoSize" type="System.Boolean, mscorlib">
403484 <value>True</value>
@@ -409,7 +490,7 @@
409490 <value>28, 12</value>
410491 </data>
411492 <data name="label曲名.TabIndex" type="System.Int32, mscorlib">
412- <value>1</value>
493+ <value>0</value>
413494 </data>
414495 <data name="label曲名.Text" xml:space="preserve">
415496 <value>Title</value>
@@ -424,7 +505,7 @@
424505 <value>tabPage基本情報</value>
425506 </data>
426507 <data name="&gt;&gt;label曲名.ZOrder" xml:space="preserve">
427- <value>10</value>
508+ <value>13</value>
428509 </data>
429510 <data name="textBox曲名.Location" type="System.Drawing.Point, System.Drawing">
430511 <value>10, 24</value>
@@ -433,7 +514,7 @@
433514 <value>275, 19</value>
434515 </data>
435516 <data name="textBox曲名.TabIndex" type="System.Int32, mscorlib">
436- <value>0</value>
517+ <value>1</value>
437518 </data>
438519 <data name="&gt;&gt;textBox曲名.Name" xml:space="preserve">
439520 <value>textBox曲名</value>
@@ -445,7 +526,7 @@
445526 <value>tabPage基本情報</value>
446527 </data>
447528 <data name="&gt;&gt;textBox曲名.ZOrder" xml:space="preserve">
448- <value>11</value>
529+ <value>14</value>
449530 </data>
450531 <data name="tabPage基本情報.Location" type="System.Drawing.Point, System.Drawing">
451532 <value>4, 22</value>
--- a/SSTFormat/v3/スコア.cs
+++ b/SSTFormat/v3/スコア.cs
@@ -135,7 +135,7 @@ namespace SSTFormat.v3
135135 {
136136 get;
137137 set;
138- } = 0.0f;
138+ } = 5.0f;
139139 /// <remarks>
140140 /// 背景動画ファイル名は、sstf ファイルには保存されず、必要時に sstf ファイルと同じフォルダを検索して取得する。
141141 /// </remarks>
@@ -377,9 +377,10 @@ namespace SSTFormat.v3
377377 if( !string.IsNullOrEmpty( this.説明文 ) )
378378 {
379379 // 改行コードは、2文字のリテラル "\n" に置換。
380- sw.WriteLine( "Description=" + this.説明文.Replace( Environment.NewLine, @"\n" ) );
380+ sw.WriteLine( $"Description=" + this.説明文.Replace( Environment.NewLine, @"\n" ) );
381381 }
382- sw.WriteLine( "SoundDevice.Delay={0}", this.サウンドデバイス遅延ms );
382+ sw.WriteLine( $"SoundDevice.Delay={this.サウンドデバイス遅延ms}" );
383+ sw.WriteLine( $"Level={this.難易度.ToString( "0.00" )}" );
383384 sw.WriteLine( "" );
384385
385386 // 全チップの出力
Show on old repository browser