diff --git a/Ched/Ched.csproj b/Ched/Ched.csproj index 1e8ca8f..cc21299 100644 --- a/Ched/Ched.csproj +++ b/Ched/Ched.csproj @@ -66,10 +66,15 @@ ..\packages\PriorityQueue.0.1.0\lib\net45\ConcurrentPriorityQueue.dll True + + ..\packages\Microsoft.Xaml.Behaviors.Wpf.1.1.19\lib\net45\Microsoft.Xaml.Behaviors.dll + ..\packages\Newtonsoft.Json.12.0.1\lib\net45\Newtonsoft.Json.dll True + + @@ -112,6 +117,7 @@ True + @@ -122,6 +128,7 @@ + @@ -167,11 +174,15 @@ - - Form + + + + + + BindableNumericUpDown.xaml - - BookPropertiesForm.cs + + BookPropertiesWindow.xaml Form @@ -189,12 +200,6 @@ CustomQuantizeSelectionForm.cs - - Form - - - ExportForm.cs - @@ -233,12 +238,6 @@ - - UserControl - - - SoundSourceSelector.cs - Form @@ -251,22 +250,27 @@ VersionInfoForm.cs + + + SusExportWindow.xaml + + - ResXFileCodeGenerator + PublicResXFileCodeGenerator ErrorStrings.Designer.cs - ResXFileCodeGenerator + PublicResXFileCodeGenerator FileFilterStrings.Designer.cs - ResXFileCodeGenerator + PublicResXFileCodeGenerator MainFormStrings.en.Designer.cs - ResXFileCodeGenerator + PublicResXFileCodeGenerator MainFormStrings.Designer.cs @@ -274,11 +278,11 @@ PluginStrings.en.Designer.cs - ResXFileCodeGenerator + PublicResXFileCodeGenerator PluginStrings.Designer.cs - ResXFileCodeGenerator + PublicResXFileCodeGenerator Resources.Designer.cs Designer @@ -287,12 +291,6 @@ Resources.resx True - - BookPropertiesForm.cs - - - BookPropertiesForm.cs - BPMSelectionForm.cs @@ -305,12 +303,6 @@ CustomQuantizeSelectionForm.cs - - ExportForm.cs - - - ExportForm.cs - HighSpeedSelectionForm.cs @@ -323,12 +315,6 @@ ShiftTimeSelectionForm.cs - - SoundSourceSelector.cs - - - SoundSourceSelector.cs - TimeSignatureSelectionForm.cs @@ -453,6 +439,24 @@ Ched.Plugins + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + diff --git a/Ched/Components/Exporter/SusExporter.cs b/Ched/Components/Exporter/SusExporter.cs index fc092af..f731222 100644 --- a/Ched/Components/Exporter/SusExporter.cs +++ b/Ched/Components/Exporter/SusExporter.cs @@ -1,6 +1,7 @@ using System; using System.Collections; using System.Collections.Generic; +using System.ComponentModel; using System.Linq; using System.IO; using System.Text; @@ -41,6 +42,10 @@ public void Export(string path, ScoreBook book) writer.WriteLine(); + writer.WriteLine(args.AdditionalData); + + writer.WriteLine(); + writer.WriteLine("#REQUEST \"ticks_per_beat {0}\"", book.Score.TicksPerBeat); writer.WriteLine(); @@ -440,6 +445,8 @@ public class SusArgs private string jacketFilePath; [Newtonsoft.Json.JsonProperty] private bool hasPaddingBar; + [Newtonsoft.Json.JsonProperty] + private string additionalData; public string PlayLevel { @@ -483,12 +490,23 @@ public string JacketFilePath set { jacketFilePath = value; } } + public string AdditionalData + { + get => additionalData; + set => additionalData = value; + } + public enum Difficulty { + [Description("BASIC")] Basic, + [Description("ADVANCED")] Advanced, + [Description("EXPERT")] Expert, + [Description("MASTER")] Master, + [Description("WORLD'S END")] WorldsEnd } } diff --git a/Ched/Localization/ErrorStrings.Designer.cs b/Ched/Localization/ErrorStrings.Designer.cs index fe21dbf..de35a46 100644 --- a/Ched/Localization/ErrorStrings.Designer.cs +++ b/Ched/Localization/ErrorStrings.Designer.cs @@ -22,7 +22,7 @@ namespace Ched.Localization { [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class ErrorStrings { + public class ErrorStrings { private static global::System.Resources.ResourceManager resourceMan; @@ -36,7 +36,7 @@ internal class ErrorStrings { /// Returns the cached ResourceManager instance used by this class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { + public static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Ched.Localization.ErrorStrings", typeof(ErrorStrings).Assembly); @@ -51,7 +51,7 @@ internal class ErrorStrings { /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { + public static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } @@ -63,7 +63,7 @@ internal class ErrorStrings { /// /// Looks up a localized string similar to エクスポートに失敗しました。. /// - internal static string ExportFailed { + public static string ExportFailed { get { return ResourceManager.GetString("ExportFailed", resourceCulture); } @@ -72,7 +72,7 @@ internal class ErrorStrings { /// /// Looks up a localized string similar to 編集中のデータは破棄されますがよろしいですか?. /// - internal static string FileDiscardConfirmation { + public static string FileDiscardConfirmation { get { return ResourceManager.GetString("FileDiscardConfirmation", resourceCulture); } @@ -81,7 +81,7 @@ internal class ErrorStrings { /// /// Looks up a localized string similar to ファイルの読み込み中にエラーが発生しました。. /// - internal static string FileLoadError { + public static string FileLoadError { get { return ResourceManager.GetString("FileLoadError", resourceCulture); } @@ -90,7 +90,7 @@ internal class ErrorStrings { /// /// Looks up a localized string similar to ファイルにアクセスできません。. /// - internal static string FileNotAccessible { + public static string FileNotAccessible { get { return ResourceManager.GetString("FileNotAccessible", resourceCulture); } @@ -99,7 +99,7 @@ internal class ErrorStrings { /// /// Looks up a localized string similar to 現在のバージョンでは開けないファイルです。. /// - internal static string FileNotCompatible { + public static string FileNotCompatible { get { return ResourceManager.GetString("FileNotCompatible", resourceCulture); } @@ -110,7 +110,7 @@ internal class ErrorStrings { ///バージョンアップしてよろしいですか? ///(以前のバージョンでは開けなくなります。). /// - internal static string FileUpgradeNeeded { + public static string FileUpgradeNeeded { get { return ResourceManager.GetString("FileUpgradeNeeded", resourceCulture); } @@ -119,7 +119,7 @@ internal class ErrorStrings { /// /// Looks up a localized string similar to インポートに失敗しました。. /// - internal static string ImportFailed { + public static string ImportFailed { get { return ResourceManager.GetString("ImportFailed", resourceCulture); } @@ -128,7 +128,7 @@ internal class ErrorStrings { /// /// Looks up a localized string similar to 拍子定義が無効です。イベントが小節の先頭に配置されていることを確認してください。(場所: 第{0}拍付近). /// - internal static string InvalidTimeSignature { + public static string InvalidTimeSignature { get { return ResourceManager.GetString("InvalidTimeSignature", resourceCulture); } @@ -137,7 +137,7 @@ internal class ErrorStrings { /// /// Looks up a localized string similar to 譜面プロパティから音源ファイルを指定してください。. /// - internal static string MusicSourceNull { + public static string MusicSourceNull { get { return ResourceManager.GetString("MusicSourceNull", resourceCulture); } @@ -146,7 +146,7 @@ internal class ErrorStrings { /// /// Looks up a localized string similar to 出力先を指定してください。. /// - internal static string OutputPathRequired { + public static string OutputPathRequired { get { return ResourceManager.GetString("OutputPathRequired", resourceCulture); } @@ -155,7 +155,7 @@ internal class ErrorStrings { /// /// Looks up a localized string similar to プラグインの実行中にエラーが発生しました。. /// - internal static string PluginException { + public static string PluginException { get { return ResourceManager.GetString("PluginException", resourceCulture); } @@ -164,7 +164,7 @@ internal class ErrorStrings { /// /// Looks up a localized string similar to 以下のプラグインの読み込みに失敗しました。DLLファイルがブロックされている可能性があります。. /// - internal static string PluginLoadError { + public static string PluginLoadError { get { return ResourceManager.GetString("PluginLoadError", resourceCulture); } @@ -173,7 +173,7 @@ internal class ErrorStrings { /// /// Looks up a localized string similar to プレビュー中にエラーが発生しました。. /// - internal static string PreviewException { + public static string PreviewException { get { return ResourceManager.GetString("PreviewException", resourceCulture); } @@ -182,7 +182,7 @@ internal class ErrorStrings { /// /// Looks up a localized string similar to 簡易プレビューが利用できない環境です。. /// - internal static string PreviewNotSupported { + public static string PreviewNotSupported { get { return ResourceManager.GetString("PreviewNotSupported", resourceCulture); } @@ -191,7 +191,7 @@ internal class ErrorStrings { /// /// Looks up a localized string similar to 再エクスポートが完了しました。. /// - internal static string ReExportComplete { + public static string ReExportComplete { get { return ResourceManager.GetString("ReExportComplete", resourceCulture); } @@ -200,7 +200,7 @@ internal class ErrorStrings { /// /// Looks up a localized string similar to 音源ファイルが見つかりません。. /// - internal static string SourceFileNotFound { + public static string SourceFileNotFound { get { return ResourceManager.GetString("SourceFileNotFound", resourceCulture); } diff --git a/Ched/Localization/FileFilterStrings.Designer.cs b/Ched/Localization/FileFilterStrings.Designer.cs index 309fca2..eb1f13e 100644 --- a/Ched/Localization/FileFilterStrings.Designer.cs +++ b/Ched/Localization/FileFilterStrings.Designer.cs @@ -19,10 +19,10 @@ namespace Ched.Localization { // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class FileFilterStrings { + public class FileFilterStrings { private static global::System.Resources.ResourceManager resourceMan; @@ -36,7 +36,7 @@ internal class FileFilterStrings { /// Returns the cached ResourceManager instance used by this class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { + public static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Ched.Localization.FileFilterStrings", typeof(FileFilterStrings).Assembly); @@ -51,7 +51,7 @@ internal class FileFilterStrings { /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { + public static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } @@ -63,7 +63,7 @@ internal class FileFilterStrings { /// /// Looks up a localized string similar to 音声ファイル. /// - internal static string AudioFilter { + public static string AudioFilter { get { return ResourceManager.GetString("AudioFilter", resourceCulture); } @@ -72,10 +72,19 @@ internal class FileFilterStrings { /// /// Looks up a localized string similar to Ched専用形式. /// - internal static string ChedFilter { + public static string ChedFilter { get { return ResourceManager.GetString("ChedFilter", resourceCulture); } } + + /// + /// Looks up a localized string similar to 画像ファイル. + /// + public static string ImageFilter { + get { + return ResourceManager.GetString("ImageFilter", resourceCulture); + } + } } } diff --git a/Ched/Localization/FileFilterStrings.en.resx b/Ched/Localization/FileFilterStrings.en.resx index 6e839e2..a8f7f3b 100644 --- a/Ched/Localization/FileFilterStrings.en.resx +++ b/Ched/Localization/FileFilterStrings.en.resx @@ -123,4 +123,7 @@ Ched File Format + + Image File + \ No newline at end of file diff --git a/Ched/Localization/FileFilterStrings.resx b/Ched/Localization/FileFilterStrings.resx index e66a503..2b430f2 100644 --- a/Ched/Localization/FileFilterStrings.resx +++ b/Ched/Localization/FileFilterStrings.resx @@ -123,4 +123,7 @@ Ched専用形式 + + 画像ファイル + \ No newline at end of file diff --git a/Ched/Localization/MainFormStrings.Designer.cs b/Ched/Localization/MainFormStrings.Designer.cs index ef935cc..8654855 100644 --- a/Ched/Localization/MainFormStrings.Designer.cs +++ b/Ched/Localization/MainFormStrings.Designer.cs @@ -22,7 +22,7 @@ namespace Ched.Localization { [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class MainFormStrings { + public class MainFormStrings { private static global::System.Resources.ResourceManager resourceMan; @@ -36,7 +36,7 @@ internal class MainFormStrings { /// Returns the cached ResourceManager instance used by this class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { + public static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Ched.Localization.MainFormStrings", typeof(MainFormStrings).Assembly); @@ -51,7 +51,7 @@ internal class MainFormStrings { /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { + public static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } @@ -63,16 +63,25 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to 最終ノートで停止. /// - internal static string AbortAtLastNote { + public static string AbortAtLastNote { get { return ResourceManager.GetString("AbortAtLastNote", resourceCulture); } } + /// + /// Looks up a localized string similar to 自由記述欄. + /// + public static string AdditionalData { + get { + return ResourceManager.GetString("AdditionalData", resourceCulture); + } + } + /// /// Looks up a localized string similar to 振り下げAIR. /// - internal static string AirDown { + public static string AirDown { get { return ResourceManager.GetString("AirDown", resourceCulture); } @@ -81,7 +90,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to 振り下げ左AIR. /// - internal static string AirLeftDown { + public static string AirLeftDown { get { return ResourceManager.GetString("AirLeftDown", resourceCulture); } @@ -90,7 +99,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to 振り上げ左AIR. /// - internal static string AirLeftUp { + public static string AirLeftUp { get { return ResourceManager.GetString("AirLeftUp", resourceCulture); } @@ -99,7 +108,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to 振り下げ右AIR. /// - internal static string AirRightDown { + public static string AirRightDown { get { return ResourceManager.GetString("AirRightDown", resourceCulture); } @@ -108,7 +117,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to 振り上げ右AIR. /// - internal static string AirRightUp { + public static string AirRightUp { get { return ResourceManager.GetString("AirRightUp", resourceCulture); } @@ -117,25 +126,61 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to 振り上げAIR. /// - internal static string AirUp { + public static string AirUp { get { return ResourceManager.GetString("AirUp", resourceCulture); } } + /// + /// Looks up a localized string similar to アーティスト. + /// + public static string Artist { + get { + return ResourceManager.GetString("Artist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 基本情報. + /// + public static string BasicInformation { + get { + return ResourceManager.GetString("BasicInformation", resourceCulture); + } + } + /// /// Looks up a localized string similar to 譜面プロパティ. /// - internal static string bookProperty { + public static string BookProperty { get { - return ResourceManager.GetString("bookProperty", resourceCulture); + return ResourceManager.GetString("BookProperty", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 参照. + /// + public static string Browse { + get { + return ResourceManager.GetString("Browse", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to キャンセル. + /// + public static string Cancel { + get { + return ResourceManager.GetString("Cancel", resourceCulture); } } /// /// Looks up a localized string similar to コピー. /// - internal static string Copy { + public static string Copy { get { return ResourceManager.GetString("Copy", resourceCulture); } @@ -144,7 +189,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to カスタム. /// - internal static string Custom { + public static string Custom { get { return ResourceManager.GetString("Custom", resourceCulture); } @@ -153,7 +198,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to 切り取り. /// - internal static string Cut { + public static string Cut { get { return ResourceManager.GetString("Cut", resourceCulture); } @@ -162,16 +207,25 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to イベント削除. /// - internal static string DeleteEvent { + public static string DeleteEvent { get { return ResourceManager.GetString("DeleteEvent", resourceCulture); } } + /// + /// Looks up a localized string similar to 難易度. + /// + public static string Difficulty { + get { + return ResourceManager.GetString("Difficulty", resourceCulture); + } + } + /// /// Looks up a localized string similar to 分. /// - internal static string Division { + public static string Division { get { return ResourceManager.GetString("Division", resourceCulture); } @@ -180,7 +234,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to 編集(&E). /// - internal static string EditMenu { + public static string EditMenu { get { return ResourceManager.GetString("EditMenu", resourceCulture); } @@ -189,7 +243,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to 消しゴム. /// - internal static string Eraser { + public static string Eraser { get { return ResourceManager.GetString("Eraser", resourceCulture); } @@ -198,7 +252,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to 終了. /// - internal static string Exit { + public static string Exit { get { return ResourceManager.GetString("Exit", resourceCulture); } @@ -207,7 +261,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to エクスポート. /// - internal static string Export { + public static string Export { get { return ResourceManager.GetString("Export", resourceCulture); } @@ -216,7 +270,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to ファイル(&F). /// - internal static string FileMenu { + public static string FileMenu { get { return ResourceManager.GetString("FileMenu", resourceCulture); } @@ -225,7 +279,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to 選択範囲内ノーツを反転. /// - internal static string FlipSelectedNotes { + public static string FlipSelectedNotes { get { return ResourceManager.GetString("FlipSelectedNotes", resourceCulture); } @@ -234,7 +288,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to ヘルプを開く. /// - internal static string Help { + public static string Help { get { return ResourceManager.GetString("Help", resourceCulture); } @@ -243,7 +297,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to ヘルプ(&H). /// - internal static string HelpMenu { + public static string HelpMenu { get { return ResourceManager.GetString("HelpMenu", resourceCulture); } @@ -252,7 +306,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to ハイスピード. /// - internal static string HighSpeed { + public static string HighSpeed { get { return ResourceManager.GetString("HighSpeed", resourceCulture); } @@ -261,7 +315,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to インポート. /// - internal static string Import { + public static string Import { get { return ResourceManager.GetString("Import", resourceCulture); } @@ -270,7 +324,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to AIR-ACTIONとAIRを同時に追加する. /// - internal static string InsertAirWithAirAction { + public static string InsertAirWithAirAction { get { return ResourceManager.GetString("InsertAirWithAirAction", resourceCulture); } @@ -279,16 +333,43 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to 挿入(&I). /// - internal static string InsertMenu { + public static string InsertMenu { get { return ResourceManager.GetString("InsertMenu", resourceCulture); } } + /// + /// Looks up a localized string similar to ジャケットファイル. + /// + public static string JacketFile { + get { + return ResourceManager.GetString("JacketFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to レベル. + /// + public static string Level { + get { + return ResourceManager.GetString("Level", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 音源情報. + /// + public static string MusicInformation { + get { + return ResourceManager.GetString("MusicInformation", resourceCulture); + } + } + /// /// Looks up a localized string similar to レーン幅を狭める. /// - internal static string NarrowLaneWidth { + public static string NarrowLaneWidth { get { return ResourceManager.GetString("NarrowLaneWidth", resourceCulture); } @@ -297,16 +378,34 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to 新規作成. /// - internal static string NewFile { + public static string NewFile { get { return ResourceManager.GetString("NewFile", resourceCulture); } } + /// + /// Looks up a localized string similar to ノーツデザイナー. + /// + public static string NotesDesigner { + get { + return ResourceManager.GetString("NotesDesigner", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to オフセット. + /// + public static string Offset { + get { + return ResourceManager.GetString("Offset", resourceCulture); + } + } + /// /// Looks up a localized string similar to 開く. /// - internal static string OpenFile { + public static string OpenFile { get { return ResourceManager.GetString("OpenFile", resourceCulture); } @@ -315,7 +414,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to 貼り付け. /// - internal static string Paste { + public static string Paste { get { return ResourceManager.GetString("Paste", resourceCulture); } @@ -324,7 +423,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to 反転貼り付け. /// - internal static string PasteFlipped { + public static string PasteFlipped { get { return ResourceManager.GetString("PasteFlipped", resourceCulture); } @@ -333,7 +432,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to ペン. /// - internal static string Pen { + public static string Pen { get { return ResourceManager.GetString("Pen", resourceCulture); } @@ -342,7 +441,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to 再生/停止. /// - internal static string Play { + public static string Play { get { return ResourceManager.GetString("Play", resourceCulture); } @@ -351,7 +450,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to 再生(&P). /// - internal static string PlayMenu { + public static string PlayMenu { get { return ResourceManager.GetString("PlayMenu", resourceCulture); } @@ -360,7 +459,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to プラグイン. /// - internal static string Plugin { + public static string Plugin { get { return ResourceManager.GetString("Plugin", resourceCulture); } @@ -369,7 +468,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to やり直す. /// - internal static string Redo { + public static string Redo { get { return ResourceManager.GetString("Redo", resourceCulture); } @@ -378,7 +477,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to 選択範囲内イベントを削除. /// - internal static string RemoveEvents { + public static string RemoveEvents { get { return ResourceManager.GetString("RemoveEvents", resourceCulture); } @@ -387,7 +486,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to 選択範囲内ノーツを削除. /// - internal static string RemoveSelectedNotes { + public static string RemoveSelectedNotes { get { return ResourceManager.GetString("RemoveSelectedNotes", resourceCulture); } @@ -396,7 +495,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to 名前を付けて保存. /// - internal static string SaveAs { + public static string SaveAs { get { return ResourceManager.GetString("SaveAs", resourceCulture); } @@ -405,7 +504,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to 上書き保存. /// - internal static string SaveFile { + public static string SaveFile { get { return ResourceManager.GetString("SaveFile", resourceCulture); } @@ -414,7 +513,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to 譜面プレビュー. /// - internal static string ScorePreview { + public static string ScorePreview { get { return ResourceManager.GetString("ScorePreview", resourceCulture); } @@ -423,7 +522,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to すべて選択. /// - internal static string SelectAll { + public static string SelectAll { get { return ResourceManager.GetString("SelectAll", resourceCulture); } @@ -432,7 +531,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to 選択. /// - internal static string Selection { + public static string Selection { get { return ResourceManager.GetString("Selection", resourceCulture); } @@ -441,7 +540,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to 最初から現在位置まで選択. /// - internal static string SelectToBeginning { + public static string SelectToBeginning { get { return ResourceManager.GetString("SelectToBeginning", resourceCulture); } @@ -450,7 +549,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to 現在位置から最後まで選択. /// - internal static string SelectToEnd { + public static string SelectToEnd { get { return ResourceManager.GetString("SelectToEnd", resourceCulture); } @@ -459,16 +558,25 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to SLIDE(中継点). /// - internal static string SlideStep { + public static string SlideStep { get { return ResourceManager.GetString("SlideStep", resourceCulture); } } + /// + /// Looks up a localized string similar to 音源ファイル. + /// + public static string SoundFile { + get { + return ResourceManager.GetString("SoundFile", resourceCulture); + } + } + /// /// Looks up a localized string similar to 停止. /// - internal static string Stop { + public static string Stop { get { return ResourceManager.GetString("Stop", resourceCulture); } @@ -477,16 +585,25 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to 拍子. /// - internal static string TimeSignature { + public static string TimeSignature { get { return ResourceManager.GetString("TimeSignature", resourceCulture); } } + /// + /// Looks up a localized string similar to タイトル. + /// + public static string Title { + get { + return ResourceManager.GetString("Title", resourceCulture); + } + } + /// /// Looks up a localized string similar to 元に戻す. /// - internal static string Undo { + public static string Undo { get { return ResourceManager.GetString("Undo", resourceCulture); } @@ -495,7 +612,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to バージョン情報. /// - internal static string VersionInfo { + public static string VersionInfo { get { return ResourceManager.GetString("VersionInfo", resourceCulture); } @@ -504,7 +621,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to 表示(&V). /// - internal static string ViewMenu { + public static string ViewMenu { get { return ResourceManager.GetString("ViewMenu", resourceCulture); } @@ -513,7 +630,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to レーン幅を広げる. /// - internal static string WidenLaneWidth { + public static string WidenLaneWidth { get { return ResourceManager.GetString("WidenLaneWidth", resourceCulture); } @@ -522,7 +639,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to 拡大. /// - internal static string ZoomIn { + public static string ZoomIn { get { return ResourceManager.GetString("ZoomIn", resourceCulture); } @@ -531,7 +648,7 @@ internal class MainFormStrings { /// /// Looks up a localized string similar to 縮小. /// - internal static string ZoomOut { + public static string ZoomOut { get { return ResourceManager.GetString("ZoomOut", resourceCulture); } diff --git a/Ched/Localization/MainFormStrings.en.resx b/Ched/Localization/MainFormStrings.en.resx index 5debfcc..ada8a9e 100644 --- a/Ched/Localization/MainFormStrings.en.resx +++ b/Ched/Localization/MainFormStrings.en.resx @@ -120,7 +120,7 @@ Stop At Last Note - + Score Properties @@ -276,4 +276,43 @@ Select to End + + Artist + + + Basic Information + + + Browse + + + Cancel + + + Music Information + + + Note Designer + + + Offset + + + Sound File + + + Title + + + Additional Data + + + Difficulty + + + Jacket File + + + Level + \ No newline at end of file diff --git a/Ched/Localization/MainFormStrings.resx b/Ched/Localization/MainFormStrings.resx index 1d2d85d..2b0e00f 100644 --- a/Ched/Localization/MainFormStrings.resx +++ b/Ched/Localization/MainFormStrings.resx @@ -120,7 +120,7 @@ 最終ノートで停止 - + 譜面プロパティ @@ -276,4 +276,43 @@ 現在位置から最後まで選択 + + アーティスト + + + 基本情報 + + + 参照 + + + キャンセル + + + 音源情報 + + + ノーツデザイナー + + + オフセット + + + 音源ファイル + + + タイトル + + + 自由記述欄 + + + 難易度 + + + ジャケットファイル + + + レベル + \ No newline at end of file diff --git a/Ched/Localization/PluginStrings.Designer.cs b/Ched/Localization/PluginStrings.Designer.cs index e4e151d..4de9f0a 100644 --- a/Ched/Localization/PluginStrings.Designer.cs +++ b/Ched/Localization/PluginStrings.Designer.cs @@ -19,10 +19,10 @@ namespace Ched.Localization { // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class PluginStrings { + public class PluginStrings { private static global::System.Resources.ResourceManager resourceMan; @@ -36,7 +36,7 @@ internal class PluginStrings { /// Returns the cached ResourceManager instance used by this class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { + public static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Ched.Localization.PluginStrings", typeof(PluginStrings).Assembly); @@ -51,7 +51,7 @@ internal class PluginStrings { /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { + public static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } @@ -63,7 +63,7 @@ internal class PluginStrings { /// /// Looks up a localized string similar to コンボ計算. /// - internal static string ComboCalculator { + public static string ComboCalculator { get { return ResourceManager.GetString("ComboCalculator", resourceCulture); } @@ -72,7 +72,7 @@ internal class PluginStrings { /// /// Looks up a localized string similar to スライド編み込み. /// - internal static string SlideKnitter { + public static string SlideKnitter { get { return ResourceManager.GetString("SlideKnitter", resourceCulture); } @@ -81,7 +81,7 @@ internal class PluginStrings { /// /// Looks up a localized string similar to スライド結合. /// - internal static string SlideMerger { + public static string SlideMerger { get { return ResourceManager.GetString("SlideMerger", resourceCulture); } @@ -90,7 +90,7 @@ internal class PluginStrings { /// /// Looks up a localized string similar to スライド時間軸反転. /// - internal static string SlideReverser { + public static string SlideReverser { get { return ResourceManager.GetString("SlideReverser", resourceCulture); } @@ -99,7 +99,7 @@ internal class PluginStrings { /// /// Looks up a localized string similar to スライド分割. /// - internal static string SlideSplitter { + public static string SlideSplitter { get { return ResourceManager.GetString("SlideSplitter", resourceCulture); } diff --git a/Ched/Properties/AssemblyInfo.cs b/Ched/Properties/AssemblyInfo.cs index 32f4f2c..d7ab4f4 100644 --- a/Ched/Properties/AssemblyInfo.cs +++ b/Ched/Properties/AssemblyInfo.cs @@ -11,4 +11,4 @@ [assembly: ComVisible(false)] [assembly: Guid("4c0c9f98-6fcf-4d2f-b821-37a66362dc75")] -[assembly: AssemblyVersion("2.7.0.0")] +[assembly: AssemblyVersion("2.8.0.0")] diff --git a/Ched/Properties/Resources.Designer.cs b/Ched/Properties/Resources.Designer.cs index f777989..3a7e01e 100644 --- a/Ched/Properties/Resources.Designer.cs +++ b/Ched/Properties/Resources.Designer.cs @@ -8,10 +8,10 @@ // //------------------------------------------------------------------------------ -namespace Ched.Properties -{ - - +namespace Ched.Properties { + using System; + + /// /// A strongly-typed resource class, for looking up localized strings, etc. /// @@ -19,398 +19,332 @@ namespace Ched.Properties // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - + public class Resources { + private static global::System.Resources.ResourceManager resourceMan; - + private static global::System.Globalization.CultureInfo resourceCulture; - + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { + internal Resources() { } - + /// /// Returns the cached ResourceManager instance used by this class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if (object.ReferenceEquals(resourceMan, null)) - { + public static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Ched.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; } } - + /// /// Overrides the current thread's CurrentUICulture property for all /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { + public static global::System.Globalization.CultureInfo Culture { + get { return resourceCulture; } - set - { + set { resourceCulture = value; } } - + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap AirActionIcon - { - get - { + public static System.Drawing.Bitmap AirActionIcon { + get { object obj = ResourceManager.GetObject("AirActionIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } - + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap AirDownIcon - { - get - { + public static System.Drawing.Bitmap AirDownIcon { + get { object obj = ResourceManager.GetObject("AirDownIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } - + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap AirLeftDownIcon - { - get - { + public static System.Drawing.Bitmap AirLeftDownIcon { + get { object obj = ResourceManager.GetObject("AirLeftDownIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } - + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap AirLeftUpIcon - { - get - { + public static System.Drawing.Bitmap AirLeftUpIcon { + get { object obj = ResourceManager.GetObject("AirLeftUpIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } - + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap AirRightDownIcon - { - get - { + public static System.Drawing.Bitmap AirRightDownIcon { + get { object obj = ResourceManager.GetObject("AirRightDownIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } - + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap AirRightUpIcon - { - get - { + public static System.Drawing.Bitmap AirRightUpIcon { + get { object obj = ResourceManager.GetObject("AirRightUpIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } - + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap AirUpIcon - { - get - { + public static System.Drawing.Bitmap AirUpIcon { + get { object obj = ResourceManager.GetObject("AirUpIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } - + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap CopyIcon - { - get - { + public static System.Drawing.Bitmap CopyIcon { + get { object obj = ResourceManager.GetObject("CopyIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } - + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap CutIcon - { - get - { + public static System.Drawing.Bitmap CutIcon { + get { object obj = ResourceManager.GetObject("CutIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } - + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap DamgeIcon - { - get - { + public static System.Drawing.Bitmap DamgeIcon { + get { object obj = ResourceManager.GetObject("DamgeIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } - + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap EditIcon - { - get - { + public static System.Drawing.Bitmap EditIcon { + get { object obj = ResourceManager.GetObject("EditIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } - + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap EraserIcon - { - get - { + public static System.Drawing.Bitmap EraserIcon { + get { object obj = ResourceManager.GetObject("EraserIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } - + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap ExportIcon - { - get - { + public static System.Drawing.Bitmap ExportIcon { + get { object obj = ResourceManager.GetObject("ExportIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } - + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap ExTapIcon - { - get - { + public static System.Drawing.Bitmap ExTapIcon { + get { object obj = ResourceManager.GetObject("ExTapIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } - + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap FlickIcon - { - get - { + public static System.Drawing.Bitmap FlickIcon { + get { object obj = ResourceManager.GetObject("FlickIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } - + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap HoldIcon - { - get - { + public static System.Drawing.Bitmap HoldIcon { + get { object obj = ResourceManager.GetObject("HoldIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } - + /// /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). /// - internal static System.Drawing.Icon MainIcon - { - get - { + public static System.Drawing.Icon MainIcon { + get { object obj = ResourceManager.GetObject("MainIcon", resourceCulture); return ((System.Drawing.Icon)(obj)); } } - + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap NewFileIcon - { - get - { + public static System.Drawing.Bitmap NewFileIcon { + get { object obj = ResourceManager.GetObject("NewFileIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } - + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap OpenFileIcon - { - get - { + public static System.Drawing.Bitmap OpenFileIcon { + get { object obj = ResourceManager.GetObject("OpenFileIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } - + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap PasteIcon - { - get - { + public static System.Drawing.Bitmap PasteIcon { + get { object obj = ResourceManager.GetObject("PasteIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } - + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap RedoIcon - { - get - { + public static System.Drawing.Bitmap RedoIcon { + get { object obj = ResourceManager.GetObject("RedoIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } - + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap SaveFileIcon - { - get - { + public static System.Drawing.Bitmap SaveFileIcon { + get { object obj = ResourceManager.GetObject("SaveFileIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } - + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap SelectionIcon - { - get - { + public static System.Drawing.Bitmap SelectionIcon { + get { object obj = ResourceManager.GetObject("SelectionIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } - + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap SlideIcon - { - get - { + public static System.Drawing.Bitmap SlideIcon { + get { object obj = ResourceManager.GetObject("SlideIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } - + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap SlideStepIcon - { - get - { + public static System.Drawing.Bitmap SlideStepIcon { + get { object obj = ResourceManager.GetObject("SlideStepIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } - + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap TapIcon - { - get - { + public static System.Drawing.Bitmap TapIcon { + get { object obj = ResourceManager.GetObject("TapIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } - + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap UndoIcon - { - get - { + public static System.Drawing.Bitmap UndoIcon { + get { object obj = ResourceManager.GetObject("UndoIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } - + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap ZoomInIcon - { - get - { + public static System.Drawing.Bitmap ZoomInIcon { + get { object obj = ResourceManager.GetObject("ZoomInIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } - + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap ZoomOutIcon - { - get - { + public static System.Drawing.Bitmap ZoomOutIcon { + get { object obj = ResourceManager.GetObject("ZoomOutIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } diff --git a/Ched/UI/BookPropertiesForm.Designer.cs b/Ched/UI/BookPropertiesForm.Designer.cs deleted file mode 100644 index eb06b03..0000000 --- a/Ched/UI/BookPropertiesForm.Designer.cs +++ /dev/null @@ -1,147 +0,0 @@ -namespace Ched.UI -{ - partial class BookPropertiesForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(BookPropertiesForm)); - this.titleBox = new System.Windows.Forms.TextBox(); - this.artistBox = new System.Windows.Forms.TextBox(); - this.notesDesignerBox = new System.Windows.Forms.TextBox(); - this.groupBox1 = new System.Windows.Forms.GroupBox(); - this.label3 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.label1 = new System.Windows.Forms.Label(); - this.groupBox2 = new System.Windows.Forms.GroupBox(); - this.musicSourceSelector = new Ched.UI.SoundSourceSelector(); - this.buttonOK = new System.Windows.Forms.Button(); - this.buttonCancel = new System.Windows.Forms.Button(); - this.groupBox1.SuspendLayout(); - this.groupBox2.SuspendLayout(); - this.SuspendLayout(); - // - // titleBox - // - resources.ApplyResources(this.titleBox, "titleBox"); - this.titleBox.Name = "titleBox"; - // - // artistBox - // - resources.ApplyResources(this.artistBox, "artistBox"); - this.artistBox.Name = "artistBox"; - // - // notesDesignerBox - // - resources.ApplyResources(this.notesDesignerBox, "notesDesignerBox"); - this.notesDesignerBox.Name = "notesDesignerBox"; - // - // groupBox1 - // - resources.ApplyResources(this.groupBox1, "groupBox1"); - this.groupBox1.Controls.Add(this.label3); - this.groupBox1.Controls.Add(this.label2); - this.groupBox1.Controls.Add(this.label1); - this.groupBox1.Controls.Add(this.titleBox); - this.groupBox1.Controls.Add(this.notesDesignerBox); - this.groupBox1.Controls.Add(this.artistBox); - this.groupBox1.Name = "groupBox1"; - this.groupBox1.TabStop = false; - // - // label3 - // - resources.ApplyResources(this.label3, "label3"); - this.label3.Name = "label3"; - // - // label2 - // - resources.ApplyResources(this.label2, "label2"); - this.label2.Name = "label2"; - // - // label1 - // - resources.ApplyResources(this.label1, "label1"); - this.label1.Name = "label1"; - // - // groupBox2 - // - resources.ApplyResources(this.groupBox2, "groupBox2"); - this.groupBox2.Controls.Add(this.musicSourceSelector); - this.groupBox2.Name = "groupBox2"; - this.groupBox2.TabStop = false; - // - // musicSourceSelector - // - resources.ApplyResources(this.musicSourceSelector, "musicSourceSelector"); - this.musicSourceSelector.AllowDrop = true; - this.musicSourceSelector.Name = "musicSourceSelector"; - // - // buttonOK - // - resources.ApplyResources(this.buttonOK, "buttonOK"); - this.buttonOK.Name = "buttonOK"; - this.buttonOK.UseVisualStyleBackColor = true; - // - // buttonCancel - // - resources.ApplyResources(this.buttonCancel, "buttonCancel"); - this.buttonCancel.Name = "buttonCancel"; - this.buttonCancel.UseVisualStyleBackColor = true; - // - // BookPropertiesForm - // - resources.ApplyResources(this, "$this"); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.buttonCancel); - this.Controls.Add(this.buttonOK); - this.Controls.Add(this.groupBox2); - this.Controls.Add(this.groupBox1); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "BookPropertiesForm"; - this.groupBox1.ResumeLayout(false); - this.groupBox1.PerformLayout(); - this.groupBox2.ResumeLayout(false); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.TextBox titleBox; - private System.Windows.Forms.TextBox artistBox; - private System.Windows.Forms.TextBox notesDesignerBox; - private System.Windows.Forms.GroupBox groupBox1; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.GroupBox groupBox2; - private SoundSourceSelector musicSourceSelector; - private System.Windows.Forms.Button buttonOK; - private System.Windows.Forms.Button buttonCancel; - } -} \ No newline at end of file diff --git a/Ched/UI/BookPropertiesForm.cs b/Ched/UI/BookPropertiesForm.cs deleted file mode 100644 index 957ee82..0000000 --- a/Ched/UI/BookPropertiesForm.cs +++ /dev/null @@ -1,41 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -using Ched.Core; - -namespace Ched.UI -{ - public partial class BookPropertiesForm : Form - { - public SoundSource MusicSource { get { return musicSourceSelector.Value; } } - - public BookPropertiesForm(ScoreBook book, SoundSource musicSource) - { - InitializeComponent(); - AcceptButton = buttonOK; - CancelButton = buttonCancel; - buttonOK.DialogResult = DialogResult.OK; - buttonCancel.DialogResult = DialogResult.Cancel; - - titleBox.Text = book.Title; - artistBox.Text = book.ArtistName; - notesDesignerBox.Text = book.NotesDesignerName; - if (musicSource != null) musicSourceSelector.Value = musicSource; - - buttonOK.Click += (s, e) => - { - book.Title = titleBox.Text; - book.ArtistName = artistBox.Text; - book.NotesDesignerName = notesDesignerBox.Text; - Close(); - }; - } - } -} diff --git a/Ched/UI/BookPropertiesForm.en.resx b/Ched/UI/BookPropertiesForm.en.resx deleted file mode 100644 index 47de2e4..0000000 --- a/Ched/UI/BookPropertiesForm.en.resx +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - 16, 77 - - - 75, 13 - - - Note Designer - - - 61, 50 - - - 30, 13 - - - Artist - - - 64, 23 - - - 27, 13 - - - Title - - - Information - - - Music Information - - - Cancel - - - Score Properties - - \ No newline at end of file diff --git a/Ched/UI/BookPropertiesForm.resx b/Ched/UI/BookPropertiesForm.resx deleted file mode 100644 index 7c25862..0000000 --- a/Ched/UI/BookPropertiesForm.resx +++ /dev/null @@ -1,401 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - タイトル - - - - 3 - - - - 235, 20 - - - 5 - - - 286, 259 - - - 1 - - - OK - - - 97, 20 - - - label1 - - - 6 - - - groupBox1 - - - 97, 74 - - - groupBox2 - - - 0 - - - 83, 13 - - - 235, 20 - - - 6, 13 - - - label3 - - - 3 - - - True - - - groupBox1 - - - 10, 77 - - - 2 - - - 基本情報 - - - 3 - - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 4 - - - groupBox1 - - - 42, 13 - - - 75, 25 - - - musicSourceSelector - - - buttonCancel - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 1 - - - 59, 13 - - - 音源情報 - - - 12, 128 - - - titleBox - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 1 - - - 5 - - - notesDesignerBox - - - 2 - - - 4 - - - 97, 47 - - - 5 - - - キャンセル - - - ノーツデザイナー - - - 12, 13 - - - 75, 25 - - - $this - - - 349, 108 - - - groupBox1 - - - artistBox - - - Ched.UI.SoundSourceSelector, Ched, Version=2.2.0.2, Culture=neutral, PublicKeyToken=null - - - True - - - $this - - - True - - - label2 - - - 235, 20 - - - System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - BookPropertiesForm - - - 205, 259 - - - 51, 23 - - - 349, 125 - - - groupBox1 - - - アーティスト - - - groupBox1 - - - 34, 50 - - - groupBox2 - - - 4 - - - 0 - - - buttonOK - - - 譜面プロパティ - - - groupBox1 - - - 331, 99 - - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 373, 297 - - - 3 - - - $this - - - 0 - - - 2 - - - $this - - - 0 - - - 0 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 12, 17 - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - True - - \ No newline at end of file diff --git a/Ched/UI/ExportForm.Designer.cs b/Ched/UI/ExportForm.Designer.cs deleted file mode 100644 index 558d084..0000000 --- a/Ched/UI/ExportForm.Designer.cs +++ /dev/null @@ -1,266 +0,0 @@ -namespace Ched.UI -{ - partial class ExportForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ExportForm)); - this.label1 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.label3 = new System.Windows.Forms.Label(); - this.label4 = new System.Windows.Forms.Label(); - this.label5 = new System.Windows.Forms.Label(); - this.label6 = new System.Windows.Forms.Label(); - this.label7 = new System.Windows.Forms.Label(); - this.label8 = new System.Windows.Forms.Label(); - this.label9 = new System.Windows.Forms.Label(); - this.browseButton = new System.Windows.Forms.Button(); - this.label11 = new System.Windows.Forms.Label(); - this.soundOffsetBox = new System.Windows.Forms.NumericUpDown(); - this.titleBox = new System.Windows.Forms.TextBox(); - this.artistBox = new System.Windows.Forms.TextBox(); - this.notesDesignerBox = new System.Windows.Forms.TextBox(); - this.difficultyDropDown = new System.Windows.Forms.ComboBox(); - this.levelDropDown = new System.Windows.Forms.ComboBox(); - this.songIdBox = new System.Windows.Forms.TextBox(); - this.soundFileBox = new System.Windows.Forms.TextBox(); - this.jacketFileBox = new System.Windows.Forms.TextBox(); - this.outputBox = new System.Windows.Forms.TextBox(); - this.label12 = new System.Windows.Forms.Label(); - this.exportButton = new System.Windows.Forms.Button(); - this.hasPaddingBarBox = new System.Windows.Forms.CheckBox(); - ((System.ComponentModel.ISupportInitialize)(this.soundOffsetBox)).BeginInit(); - this.SuspendLayout(); - // - // label1 - // - resources.ApplyResources(this.label1, "label1"); - this.label1.Name = "label1"; - // - // label2 - // - resources.ApplyResources(this.label2, "label2"); - this.label2.Name = "label2"; - // - // label3 - // - resources.ApplyResources(this.label3, "label3"); - this.label3.Name = "label3"; - // - // label4 - // - resources.ApplyResources(this.label4, "label4"); - this.label4.Name = "label4"; - // - // label5 - // - resources.ApplyResources(this.label5, "label5"); - this.label5.Name = "label5"; - // - // label6 - // - resources.ApplyResources(this.label6, "label6"); - this.label6.Name = "label6"; - // - // label7 - // - resources.ApplyResources(this.label7, "label7"); - this.label7.Name = "label7"; - // - // label8 - // - resources.ApplyResources(this.label8, "label8"); - this.label8.Name = "label8"; - // - // label9 - // - resources.ApplyResources(this.label9, "label9"); - this.label9.Name = "label9"; - // - // browseButton - // - resources.ApplyResources(this.browseButton, "browseButton"); - this.browseButton.Name = "browseButton"; - this.browseButton.UseVisualStyleBackColor = true; - // - // label11 - // - resources.ApplyResources(this.label11, "label11"); - this.label11.Name = "label11"; - // - // soundOffsetBox - // - resources.ApplyResources(this.soundOffsetBox, "soundOffsetBox"); - this.soundOffsetBox.DecimalPlaces = 3; - this.soundOffsetBox.Increment = new decimal(new int[] { - 1, - 0, - 0, - 131072}); - this.soundOffsetBox.Maximum = new decimal(new int[] { - 1000, - 0, - 0, - 0}); - this.soundOffsetBox.Minimum = new decimal(new int[] { - 1000, - 0, - 0, - -2147483648}); - this.soundOffsetBox.Name = "soundOffsetBox"; - // - // titleBox - // - resources.ApplyResources(this.titleBox, "titleBox"); - this.titleBox.Name = "titleBox"; - // - // artistBox - // - resources.ApplyResources(this.artistBox, "artistBox"); - this.artistBox.Name = "artistBox"; - // - // notesDesignerBox - // - resources.ApplyResources(this.notesDesignerBox, "notesDesignerBox"); - this.notesDesignerBox.Name = "notesDesignerBox"; - // - // difficultyDropDown - // - resources.ApplyResources(this.difficultyDropDown, "difficultyDropDown"); - this.difficultyDropDown.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.difficultyDropDown.FormattingEnabled = true; - this.difficultyDropDown.Name = "difficultyDropDown"; - // - // levelDropDown - // - resources.ApplyResources(this.levelDropDown, "levelDropDown"); - this.levelDropDown.FormattingEnabled = true; - this.levelDropDown.Name = "levelDropDown"; - // - // songIdBox - // - resources.ApplyResources(this.songIdBox, "songIdBox"); - this.songIdBox.Name = "songIdBox"; - // - // soundFileBox - // - resources.ApplyResources(this.soundFileBox, "soundFileBox"); - this.soundFileBox.Name = "soundFileBox"; - // - // jacketFileBox - // - resources.ApplyResources(this.jacketFileBox, "jacketFileBox"); - this.jacketFileBox.Name = "jacketFileBox"; - // - // outputBox - // - resources.ApplyResources(this.outputBox, "outputBox"); - this.outputBox.Name = "outputBox"; - // - // label12 - // - resources.ApplyResources(this.label12, "label12"); - this.label12.Name = "label12"; - // - // exportButton - // - resources.ApplyResources(this.exportButton, "exportButton"); - this.exportButton.Name = "exportButton"; - this.exportButton.UseVisualStyleBackColor = true; - // - // hasPaddingBarBox - // - resources.ApplyResources(this.hasPaddingBarBox, "hasPaddingBarBox"); - this.hasPaddingBarBox.Name = "hasPaddingBarBox"; - this.hasPaddingBarBox.UseVisualStyleBackColor = true; - // - // ExportForm - // - resources.ApplyResources(this, "$this"); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.hasPaddingBarBox); - this.Controls.Add(this.exportButton); - this.Controls.Add(this.label12); - this.Controls.Add(this.outputBox); - this.Controls.Add(this.jacketFileBox); - this.Controls.Add(this.soundFileBox); - this.Controls.Add(this.songIdBox); - this.Controls.Add(this.levelDropDown); - this.Controls.Add(this.difficultyDropDown); - this.Controls.Add(this.notesDesignerBox); - this.Controls.Add(this.artistBox); - this.Controls.Add(this.titleBox); - this.Controls.Add(this.soundOffsetBox); - this.Controls.Add(this.label11); - this.Controls.Add(this.browseButton); - this.Controls.Add(this.label9); - this.Controls.Add(this.label8); - this.Controls.Add(this.label7); - this.Controls.Add(this.label6); - this.Controls.Add(this.label5); - this.Controls.Add(this.label4); - this.Controls.Add(this.label3); - this.Controls.Add(this.label2); - this.Controls.Add(this.label1); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "ExportForm"; - ((System.ComponentModel.ISupportInitialize)(this.soundOffsetBox)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.Label label5; - private System.Windows.Forms.Label label6; - private System.Windows.Forms.Label label7; - private System.Windows.Forms.Label label8; - private System.Windows.Forms.Label label9; - private System.Windows.Forms.Button browseButton; - private System.Windows.Forms.Label label11; - private System.Windows.Forms.NumericUpDown soundOffsetBox; - private System.Windows.Forms.TextBox titleBox; - private System.Windows.Forms.TextBox artistBox; - private System.Windows.Forms.TextBox notesDesignerBox; - private System.Windows.Forms.ComboBox difficultyDropDown; - private System.Windows.Forms.ComboBox levelDropDown; - private System.Windows.Forms.TextBox songIdBox; - private System.Windows.Forms.TextBox soundFileBox; - private System.Windows.Forms.TextBox jacketFileBox; - private System.Windows.Forms.TextBox outputBox; - private System.Windows.Forms.Label label12; - private System.Windows.Forms.Button exportButton; - private System.Windows.Forms.CheckBox hasPaddingBarBox; - } -} \ No newline at end of file diff --git a/Ched/UI/ExportForm.cs b/Ched/UI/ExportForm.cs deleted file mode 100644 index 75e4608..0000000 --- a/Ched/UI/ExportForm.cs +++ /dev/null @@ -1,104 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -using Ched.Core; -using Ched.Components.Exporter; -using Ched.Localization; - -namespace Ched.UI -{ - public partial class ExportForm : Form - { - private readonly string ArgsKey = "sus"; - private readonly string Filter = "Sliding Universal Score(*.sus)|*.sus"; - - private SusExporter exporter = new SusExporter(); - - public string OutputPath - { - get { return outputBox.Text; } - set { outputBox.Text = value; } - } - - public IExporter Exporter { get { return exporter; } } - - public ExportForm(ScoreBook book) - { - InitializeComponent(); - Icon = Properties.Resources.MainIcon; - ShowInTaskbar = false; - hasPaddingBarBox.Visible = false; - - levelDropDown.Items.AddRange(Enumerable.Range(1, 14).SelectMany(p => new string[] { p.ToString(), p + "+" }).ToArray()); - difficultyDropDown.Items.AddRange(new string[] { "BASIC", "ADVANCED", "EXPERT", "MASTER", "WORLD'S END" }); - - if (!book.ExporterArgs.ContainsKey(ArgsKey) || !(book.ExporterArgs[ArgsKey] is SusArgs)) - { - book.ExporterArgs[ArgsKey] = new SusArgs(); - } - - var args = book.ExporterArgs[ArgsKey] as SusArgs; - - titleBox.Text = book.Title; - artistBox.Text = book.ArtistName; - notesDesignerBox.Text = book.NotesDesignerName; - difficultyDropDown.SelectedIndex = (int)args.PlayDifficulty; - levelDropDown.Text = args.PlayLevel; - songIdBox.Text = args.SongId; - soundFileBox.Text = args.SoundFileName; - soundOffsetBox.Value = args.SoundOffset; - jacketFileBox.Text = args.JacketFilePath; - - browseButton.Click += (s, e) => - { - var dialog = new SaveFileDialog() - { - Filter = Filter - }; - if (dialog.ShowDialog(this) == DialogResult.OK) - { - outputBox.Text = dialog.FileName; - } - }; - - exportButton.Click += (s, e) => - { - if (string.IsNullOrEmpty(OutputPath)) browseButton.PerformClick(); - if (string.IsNullOrEmpty(OutputPath)) - { - MessageBox.Show(this, ErrorStrings.OutputPathRequired, Program.ApplicationName); - return; - } - book.Title = titleBox.Text; - book.ArtistName = artistBox.Text; - book.NotesDesignerName = notesDesignerBox.Text; - args.PlayDifficulty = (SusArgs.Difficulty)difficultyDropDown.SelectedIndex; - args.PlayLevel = levelDropDown.Text; - args.SongId = songIdBox.Text; - args.SoundFileName = soundFileBox.Text; - args.SoundOffset = soundOffsetBox.Value; - args.JacketFilePath = jacketFileBox.Text; - - try - { - exporter.CustomArgs = args; - exporter.Export(OutputPath, book); - DialogResult = DialogResult.OK; - Close(); - } - catch (Exception ex) - { - MessageBox.Show(this, ErrorStrings.ExportFailed, Program.ApplicationName, MessageBoxButtons.OK, MessageBoxIcon.Error); - Program.DumpException(ex); - } - }; - } - } -} diff --git a/Ched/UI/ExportForm.en.resx b/Ched/UI/ExportForm.en.resx deleted file mode 100644 index e07eafe..0000000 --- a/Ched/UI/ExportForm.en.resx +++ /dev/null @@ -1,190 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - 27, 13 - - - Title - - - 30, 13 - - - Artist - - - 75, 13 - - - Note Designer - - - 47, 13 - - - Difficulty - - - 33, 13 - - - Level - - - 77, 13 - - - Song Filename - - - 82, 13 - - - Playback Offset - - - 84, 13 - - - Jacket Filename - - - Browse - - - 95, 13 - - - Output Destination - - - Export - - - 231, 17 - - - Insert a single blank space at the beginning - - - Export - - \ No newline at end of file diff --git a/Ched/UI/ExportForm.resx b/Ched/UI/ExportForm.resx deleted file mode 100644 index 239c1ae..0000000 --- a/Ched/UI/ExportForm.resx +++ /dev/null @@ -1,729 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - 83, 13 - - - 出力先 - - - label6 - - - 119, 179 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - True - - - 16 - - - 119, 21 - - - True - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 75, 25 - - - 3 - - - $this - - - 6 - - - 14, 72 - - - 4 - - - 230, 206 - - - 参照 - - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - SONGID - - - 22 - - - browseButton - - - ノーツデザイナー - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 2 - - - $this - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 16 - - - 7 - - - 25 - - - $this - - - 15 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17 - - - 119, 14 - - - 178, 20 - - - エクスポート - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 23 - - - label1 - - - 2 - - - 24 - - - 18, 13 - - - 6 - - - 1 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 6, 13 - - - 9 - - - 36, 13 - - - $this - - - label11 - - - レベル - - - 先頭に1小節の空白を挿入する - - - True - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - Right - - - True - - - soundFileBox - - - $this - - - $this - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 22 - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 4 - - - jacketFileBox - - - True - - - label7 - - - [s] - - - 16, 313 - - - 再生オフセット - - - $this - - - $this - - - label5 - - - 90, 13 - - - levelDropDown - - - 14 - - - 14, 99 - - - 14, 17 - - - 73, 13 - - - ExportForm - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Bottom - - - $this - - - 178, 20 - - - エクスポート - - - 119, 41 - - - notesDesignerBox - - - songIdBox - - - $this - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - hasPaddingBarBox - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 16, 348 - - - 59, 13 - - - 14 - - - 0 - - - 14, 208 - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 14, 127 - - - $this - - - 8 - - - label9 - - - soundOffsetBox - - - 178, 95 - - - 175, 17 - - - 67, 20 - - - 23 - - - outputBox - - - True - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 178, 20 - - - 17 - - - 305, 311 - - - 19 - - - True - - - 20 - - - 95, 13 - - - label4 - - - ジャケットファイル名 - - - 20 - - - サウンドファイル名 - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - label12 - - - 0 - - - 18 - - - 3 - - - 1 - - - 178, 20 - - - 5 - - - 8 - - - 5 - - - $this - - - 124, 263 - - - True - - - difficultyDropDown - - - $this - - - 281, 20 - - - $this - - - 178, 20 - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 13 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - label3 - - - 11 - - - アーティスト - - - 178, 20 - - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - True - - - $this - - - 14, 182 - - - 119, 233 - - - label8 - - - 11 - - - 19 - - - exportButton - - - 42, 13 - - - 21 - - - 12 - - - True - - - True - - - タイトル - - - 14, 236 - - - 119, 21 - - - 49, 13 - - - 27 - - - 10 - - - label2 - - - $this - - - 119, 152 - - - 14, 44 - - - 398, 386 - - - titleBox - - - $this - - - $this - - - 14, 290 - - - 303, 208 - - - 18 - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 21 - - - $this - - - 7 - - - 26 - - - 119, 68 - - - 43, 13 - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 43, 13 - - - 364, 25 - - - $this - - - artistBox - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 14, 155 - - - True - - - 難易度 - - - 178, 124 - - - 15 - - - True - - \ No newline at end of file diff --git a/Ched/UI/Helpers.cs b/Ched/UI/Helpers.cs new file mode 100644 index 0000000..6e67726 --- /dev/null +++ b/Ched/UI/Helpers.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Ched.UI +{ + public static class Helpers + { + public static string GetFilterString(string kind, IEnumerable extensions) + { + var wildcards = extensions.Select(p => "*" + p); + return kind + string.Format("({0})|{1}", string.Join(", ", wildcards), string.Join(";", wildcards)); + } + } +} diff --git a/Ched/UI/MainForm.cs b/Ched/UI/MainForm.cs index 3c5367b..729e03a 100644 --- a/Ched/UI/MainForm.cs +++ b/Ched/UI/MainForm.cs @@ -17,6 +17,7 @@ using Ched.Plugins; using Ched.Properties; using Ched.UI.Operations; +using Ched.UI.Windows; namespace Ched.UI { @@ -240,13 +241,11 @@ protected void LoadBook(ScoreBook book) UpdateThumbHeight(); SetText(book.Path); LastExportData = null; + CurrentMusicSource = new SoundSource(); if (!string.IsNullOrEmpty(book.Path)) { - SoundSettings.Default.ScoreSound.TryGetValue(book.Path, out CurrentMusicSource); - } - else - { - CurrentMusicSource = null; + SoundSettings.Default.ScoreSound.TryGetValue(book.Path, out SoundSource src); + if (src != null) CurrentMusicSource = src; } } @@ -303,21 +302,31 @@ protected void SaveFile() } CommitChanges(); ScoreBook.Save(); - if (CurrentMusicSource != null) - { - SoundSettings.Default.ScoreSound[ScoreBook.Path] = CurrentMusicSource; - SoundSettings.Default.Save(); - } OperationManager.CommitChanges(); + + SoundSettings.Default.ScoreSound[ScoreBook.Path] = CurrentMusicSource; + SoundSettings.Default.Save(); } protected void ExportFile() { CommitChanges(); - var dialog = new ExportForm(ScoreBook); - if (dialog.ShowDialog(this) == DialogResult.OK) + var dialog = new SaveFileDialog() + { + Title = MainFormStrings.Export, + Filter = "Sliding Universal Score(*.sus)|*.sus" + }; + if (dialog.ShowDialog(this) != DialogResult.OK) return; + var susArgs = ScoreBook.ExporterArgs.ContainsKey("sus") ? ScoreBook.ExporterArgs["sus"] as Components.Exporter.SusArgs : new Components.Exporter.SusArgs(); + var vm = new SusExportWindowViewModel(ScoreBook, susArgs); + var window = new SusExportWindow() { DataContext = vm }; + var result = window.ShowDialog(this); + if (result.HasValue && result.Value) { - LastExportData = new ExportData() { OutputPath = dialog.OutputPath, Exporter = dialog.Exporter }; + var exporter = new Components.Exporter.SusExporter() { CustomArgs = susArgs }; + exporter.Export(dialog.FileName, ScoreBook); + ScoreBook.ExporterArgs["sus"] = susArgs; + LastExportData = new ExportData() { OutputPath = dialog.FileName, Exporter = exporter }; } } @@ -371,16 +380,14 @@ private MainMenu CreateMainMenu(NoteView noteView) }); })).ToArray(); - var bookPropertiesMenuItem = new MenuItem(MainFormStrings.bookProperty, (s, e) => + var bookPropertiesMenuItem = new MenuItem(MainFormStrings.BookProperty, (s, e) => { - var form = new BookPropertiesForm(ScoreBook, CurrentMusicSource); - if (form.ShowDialog(this) == DialogResult.OK) + var vm = new BookPropertiesWindowViewModel(ScoreBook, CurrentMusicSource); + var window = new BookPropertiesWindow() { - CurrentMusicSource = form.MusicSource; - if (string.IsNullOrEmpty(ScoreBook.Path)) return; - SoundSettings.Default.ScoreSound[ScoreBook.Path] = CurrentMusicSource; - SoundSettings.Default.Save(); - } + DataContext = vm + }; + window.ShowDialog(this); }); var fileMenuItems = new MenuItem[] @@ -604,7 +611,7 @@ void updateScore(Score newScore) var playItem = new MenuItem(MainFormStrings.Play, (s, e) => { - if (CurrentMusicSource == null) + if (string.IsNullOrEmpty(CurrentMusicSource?.FilePath)) { MessageBox.Show(this, ErrorStrings.MusicSourceNull, Program.ApplicationName, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; diff --git a/Ched/UI/SoundManager.cs b/Ched/UI/SoundManager.cs index aa31f47..0a2bfaa 100644 --- a/Ched/UI/SoundManager.cs +++ b/Ched/UI/SoundManager.cs @@ -142,13 +142,19 @@ protected void CheckSupported() [Serializable] public class SoundSource { + public static readonly IReadOnlyCollection SupportedExtensions = new string[] { ".wav", ".mp3", ".ogg" }; + /// /// この音源における遅延時間を取得します。 /// この値は、タイミングよく音声が出力されるまでの秒数です。 /// - public double Latency { get; } + public double Latency { get; set; } + + public string FilePath { get; set; } - public string FilePath { get; } + public SoundSource() + { + } public SoundSource(string path, double latency) { diff --git a/Ched/UI/SoundSourceSelector.Designer.cs b/Ched/UI/SoundSourceSelector.Designer.cs deleted file mode 100644 index 35b2d54..0000000 --- a/Ched/UI/SoundSourceSelector.Designer.cs +++ /dev/null @@ -1,115 +0,0 @@ -namespace Ched.UI -{ - partial class SoundSourceSelector - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SoundSourceSelector)); - this.filePathBox = new System.Windows.Forms.TextBox(); - this.buttonBrowse = new System.Windows.Forms.Button(); - this.latencyBox = new System.Windows.Forms.NumericUpDown(); - this.label1 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.label3 = new System.Windows.Forms.Label(); - ((System.ComponentModel.ISupportInitialize)(this.latencyBox)).BeginInit(); - this.SuspendLayout(); - // - // filePathBox - // - resources.ApplyResources(this.filePathBox, "filePathBox"); - this.filePathBox.Name = "filePathBox"; - // - // buttonBrowse - // - resources.ApplyResources(this.buttonBrowse, "buttonBrowse"); - this.buttonBrowse.Name = "buttonBrowse"; - this.buttonBrowse.UseVisualStyleBackColor = true; - this.buttonBrowse.Click += new System.EventHandler(this.buttonBrowse_Click); - // - // latencyBox - // - resources.ApplyResources(this.latencyBox, "latencyBox"); - this.latencyBox.DecimalPlaces = 3; - this.latencyBox.Increment = new decimal(new int[] { - 1, - 0, - 0, - 131072}); - this.latencyBox.Maximum = new decimal(new int[] { - 60, - 0, - 0, - 0}); - this.latencyBox.Minimum = new decimal(new int[] { - 60, - 0, - 0, - -2147483648}); - this.latencyBox.Name = "latencyBox"; - // - // label1 - // - resources.ApplyResources(this.label1, "label1"); - this.label1.Name = "label1"; - // - // label2 - // - resources.ApplyResources(this.label2, "label2"); - this.label2.Name = "label2"; - // - // label3 - // - resources.ApplyResources(this.label3, "label3"); - this.label3.Name = "label3"; - // - // SoundSourceSelector - // - resources.ApplyResources(this, "$this"); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.label3); - this.Controls.Add(this.label2); - this.Controls.Add(this.label1); - this.Controls.Add(this.latencyBox); - this.Controls.Add(this.buttonBrowse); - this.Controls.Add(this.filePathBox); - this.Name = "SoundSourceSelector"; - ((System.ComponentModel.ISupportInitialize)(this.latencyBox)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.TextBox filePathBox; - private System.Windows.Forms.Button buttonBrowse; - private System.Windows.Forms.NumericUpDown latencyBox; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Label label3; - } -} diff --git a/Ched/UI/SoundSourceSelector.cs b/Ched/UI/SoundSourceSelector.cs deleted file mode 100644 index 4e50293..0000000 --- a/Ched/UI/SoundSourceSelector.cs +++ /dev/null @@ -1,68 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -using Ched.Localization; - -namespace Ched.UI -{ - public partial class SoundSourceSelector : UserControl - { - public IEnumerable SupportedExtensions => new string[] { ".wav", ".mp3", ".ogg" }; - - public SoundSource Value - { - get - { - if (string.IsNullOrEmpty(filePathBox.Text)) return null; - return new SoundSource(filePathBox.Text, (double)latencyBox.Value); - } - set - { - if (value == null) throw new ArgumentNullException(); - filePathBox.Text = value?.FilePath ?? ""; - latencyBox.Value = (decimal)(value?.Latency ?? 0); - } - } - - public SoundSourceSelector() - { - InitializeComponent(); - - AllowDrop = true; - DragEnter += (s, e) => - { - e.Effect = DragDropEffects.None; - if (!e.Data.GetDataPresent(DataFormats.FileDrop)) return; - - var items = (string[])e.Data.GetData(DataFormats.FileDrop); - if (items.Length != 1) return; - - string path = items.Single(); - if (SupportedExtensions.Any(p => Path.GetExtension(path) == p) && File.Exists(path)) - e.Effect = DragDropEffects.Copy; - }; - DragDrop += (s, e) => - { - filePathBox.Text = ((string[])e.Data.GetData(DataFormats.FileDrop)).Single(); - }; - } - - private void buttonBrowse_Click(object sender, EventArgs e) - { - var wildcards = SupportedExtensions.Select(p => "*" + p); - var dialog = new OpenFileDialog() - { - Filter = FileFilterStrings.AudioFilter + string.Format("({0})|{1}", string.Join(", ", wildcards), string.Join(";", wildcards)) - }; - if (dialog.ShowDialog(this) == DialogResult.OK) filePathBox.Text = dialog.FileName; - } - } -} diff --git a/Ched/UI/SoundSourceSelector.en.resx b/Ched/UI/SoundSourceSelector.en.resx deleted file mode 100644 index 89e9b4c..0000000 --- a/Ched/UI/SoundSourceSelector.en.resx +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Browse - - - - 57, 13 - - - Sound File - - - 35, 13 - - - Offset - - \ No newline at end of file diff --git a/Ched/UI/SoundSourceSelector.resx b/Ched/UI/SoundSourceSelector.resx deleted file mode 100644 index cb84c56..0000000 --- a/Ched/UI/SoundSourceSelector.resx +++ /dev/null @@ -1,291 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - latencyBox - - - 音源ファイル - - - - Top, Left, Right - - - - 6, 13 - - - 0 - - - - True - - - True - - - 49, 13 - - - 15, 68 - - - $this - - - System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - buttonBrowse - - - SoundSourceSelector - - - Top, Right - - - $this - - - 5 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 15, 13 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 4 - - - 65, 13 - - - $this - - - 2 - - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - [s] - - - label1 - - - 2 - - - 238, 20 - - - 3 - - - label3 - - - 352, 102 - - - オフセット - - - 5 - - - 261, 30 - - - label2 - - - 18, 13 - - - True - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 0 - - - 1 - - - 17, 33 - - - 参照 - - - 4 - - - 151, 68 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 3 - - - 77, 20 - - - filePathBox - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 68, 64 - - - 1 - - - 75, 25 - - - $this - - - True - - \ No newline at end of file diff --git a/Ched/UI/Windows/Behaviors/InitialFocusBehavior.cs b/Ched/UI/Windows/Behaviors/InitialFocusBehavior.cs new file mode 100644 index 0000000..280c2bf --- /dev/null +++ b/Ched/UI/Windows/Behaviors/InitialFocusBehavior.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Input; +using Microsoft.Xaml.Behaviors; + +namespace Ched.UI.Windows.Behaviors +{ + public class InitialFocusBehavior : Behavior + { + protected override void OnAttached() + { + base.OnAttached(); + AssociatedObject.Loaded += OnLoaded; + } + + protected override void OnDetaching() + { + base.OnDetaching(); + AssociatedObject.Loaded -= OnLoaded; + } + + private void OnLoaded(object sender, RoutedEventArgs e) + { + ((Window)sender).MoveFocus(new TraversalRequest(FocusNavigationDirection.First)); + } + } +} diff --git a/Ched/UI/Windows/Behaviors/OpenFileBehavior.cs b/Ched/UI/Windows/Behaviors/OpenFileBehavior.cs new file mode 100644 index 0000000..86b6167 --- /dev/null +++ b/Ched/UI/Windows/Behaviors/OpenFileBehavior.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Input; +using Microsoft.Xaml.Behaviors; + +namespace Ched.UI.Windows.Behaviors +{ + public class OpenFileBehavior : Behavior + + + + + + + + + + + + + + + + + + + diff --git a/Ched/UI/Windows/BookPropertiesWindow.xaml.cs b/Ched/UI/Windows/BookPropertiesWindow.xaml.cs new file mode 100644 index 0000000..afc0c13 --- /dev/null +++ b/Ched/UI/Windows/BookPropertiesWindow.xaml.cs @@ -0,0 +1,125 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; + +using Ched.Core; +using Ched.Localization; + +namespace Ched.UI.Windows +{ + /// + /// Interaction logic for BookPropertiesWindow.xaml + /// + public partial class BookPropertiesWindow : Window + { + public BookPropertiesWindow() + { + InitializeComponent(); + } + } + + public class BookPropertiesWindowViewModel : INotifyPropertyChanged + { + public event PropertyChangedEventHandler PropertyChanged; + + private ScoreBook ScoreBook { get; } = new ScoreBook(); + private SoundSource MusicSource { get; set; } = new SoundSource(); + + public string SoundSourceFilter { get; } = Helpers.GetFilterString(FileFilterStrings.AudioFilter, SoundSource.SupportedExtensions); + public Action SetMusicSourceFileAction => path => MusicSourcePath = path; + + private string title; + public string Title + { + get => title; + set + { + if (value == title) return; + title = value; + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Title))); + } + } + + private string artist; + public string Artist + { + get => artist; + set + { + if (value == artist) return; + artist = value; + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Artist))); + } + } + + private string notesDesigner; + public string NotesDesigner + { + get => notesDesigner; + set + { + if (value == notesDesigner) return; + notesDesigner = value; + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(NotesDesigner))); + } + } + + private string musicSourcePath; + public string MusicSourcePath + { + get => musicSourcePath; + set + { + if (value == musicSourcePath) return; + musicSourcePath = value; + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(MusicSourcePath))); + } + } + + private double musicSourceLatency; + public double MusicSourceLatency + { + get => musicSourceLatency; + set + { + if (value == musicSourceLatency) return; + musicSourceLatency = value; + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(MusicSourceLatency))); + } + } + + public BookPropertiesWindowViewModel() + { + } + + public BookPropertiesWindowViewModel(ScoreBook scoreBook, SoundSource musicSource) + { + ScoreBook = scoreBook; + MusicSource = musicSource; + } + + public void BeginEdit() + { + Title = ScoreBook.Title; + Artist = ScoreBook.ArtistName; + NotesDesigner = ScoreBook.NotesDesignerName; + + MusicSourcePath = MusicSource.FilePath; + MusicSourceLatency = MusicSource.Latency; + } + + public void CommitEdit() + { + ScoreBook.Title = Title; + ScoreBook.ArtistName = Artist; + ScoreBook.NotesDesignerName = NotesDesigner; + + MusicSource.FilePath = MusicSourcePath; + MusicSource.Latency = MusicSourceLatency; + } + } +} diff --git a/Ched/UI/Windows/CommonStyles.xaml b/Ched/UI/Windows/CommonStyles.xaml new file mode 100644 index 0000000..2ebe8f9 --- /dev/null +++ b/Ched/UI/Windows/CommonStyles.xaml @@ -0,0 +1,50 @@ + + + 14 + + + + + + + + + + + + + diff --git a/Ched/UI/Windows/EnumSourceProvider.cs b/Ched/UI/Windows/EnumSourceProvider.cs new file mode 100644 index 0000000..95bfe59 --- /dev/null +++ b/Ched/UI/Windows/EnumSourceProvider.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Markup; + +namespace Ched.UI.Windows +{ + public class EnumSourceProvider : MarkupExtension + { + private static string DisplayName(T value) + { + var field = value.GetType().GetField(value.ToString()); + var attr = (DescriptionAttribute)field.GetCustomAttributes(typeof(DescriptionAttribute), false).FirstOrDefault(); + return attr.Description; + } + + public System.Collections.IEnumerable Source { get; } = typeof(T).GetEnumValues().Cast().Select(p => new { Code = p, Name = DisplayName(p) }); + + public override object ProvideValue(IServiceProvider serviceProvider) => this; + } +} diff --git a/Ched/UI/Windows/SusExportWindow.xaml b/Ched/UI/Windows/SusExportWindow.xaml new file mode 100644 index 0000000..3fe53cb --- /dev/null +++ b/Ched/UI/Windows/SusExportWindow.xaml @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + + + + + + + + 140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Ched/UI/Windows/SusExportWindow.xaml.cs b/Ched/UI/Windows/SusExportWindow.xaml.cs new file mode 100644 index 0000000..b253f39 --- /dev/null +++ b/Ched/UI/Windows/SusExportWindow.xaml.cs @@ -0,0 +1,164 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; + +using Ched.Core; +using Ched.Components.Exporter; +using Ched.Localization; + +namespace Ched.UI.Windows +{ + /// + /// Interaction logic for SusExportWindow.xaml + /// + public partial class SusExportWindow : Window + { + public SusExportWindow() + { + InitializeComponent(); + } + } + + public class SusExportWindowViewModel : INotifyPropertyChanged + { + public event PropertyChangedEventHandler PropertyChanged; + + private SusArgs SusArgs { get; } + private ScoreBook ScoreBook { get; } + + public string MusicFilter { get; } = Helpers.GetFilterString(FileFilterStrings.AudioFilter, SoundSource.SupportedExtensions); + public string ImageFilter { get; } = Helpers.GetFilterString(FileFilterStrings.ImageFilter, new[] { ".jpg", ".png", ".bmp" }); + public IEnumerable Levels { get; } = Enumerable.Range(1, 14).SelectMany(p => new string[] { p.ToString(), $"{p}+" }); + + public string Title => ScoreBook.Title; + public string Artist => ScoreBook.ArtistName; + public string NotesDesigner => ScoreBook.NotesDesignerName; + + private SusArgs.Difficulty difficulty; + public SusArgs.Difficulty Difficulty + { + get => difficulty; + set + { + if (value == difficulty) return; + difficulty = value; + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Difficulty))); + } + } + + private string level; + public string Level + { + get => level; + set + { + if (value == level) return; + level = value; + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Level))); + } + } + + private string songId; + public string SongId + { + get => songId; + set + { + if (value == songId) return; + songId = value; + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(SongId))); + } + } + + private string soundFileName; + public string SoundFileName + { + get => soundFileName; + set + { + if (value == soundFileName) return; + soundFileName = value; + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(SoundFileName))); + } + } + + private double soundOffset; + public double SoundOffset + { + get => soundOffset; + set + { + if (value == soundOffset) return; + soundOffset = value; + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(SoundOffset))); + } + } + + private string jacketFileName; + public string JacketFileName + { + get => jacketFileName; + set + { + if (value == jacketFileName) return; + jacketFileName = value; + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(JacketFileName))); + } + } + + private string additionalData; + public string AdditionalData + { + get => additionalData; + set + { + if (value == additionalData) return; + additionalData = value; + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(AdditionalData))); + } + } + + public Action SetSoundFileNameAction => path => SoundFileName = System.IO.Path.GetFileName(path); + public Action SetJacketFileNameAction => path => JacketFileName = System.IO.Path.GetFileName(path); + + public SusExportWindowViewModel() + { + } + + public SusExportWindowViewModel(ScoreBook book, SusArgs susArgs) + { + ScoreBook = book; + SusArgs = susArgs; + } + + public void BeginEdit() + { + Difficulty = SusArgs.PlayDifficulty; + Level = SusArgs.PlayLevel; + SongId = SusArgs.SongId; + SoundFileName = SusArgs.SoundFileName; + SoundOffset = (double)SusArgs.SoundOffset; + JacketFileName = SusArgs.JacketFilePath; + AdditionalData = SusArgs.AdditionalData; + } + + public void CommitEdit() + { + SusArgs.PlayDifficulty = Difficulty; + SusArgs.PlayLevel = Level; + SusArgs.SongId = SongId; + SusArgs.SoundFileName = SoundFileName; + SusArgs.SoundOffset = (decimal)SoundOffset; + SusArgs.JacketFilePath = JacketFileName; + SusArgs.AdditionalData = AdditionalData; + } + } + + public class SusDifficultySourceProvider : EnumSourceProvider + { + } +} diff --git a/Ched/UI/Windows/WpfExtensions.cs b/Ched/UI/Windows/WpfExtensions.cs new file mode 100644 index 0000000..ff21014 --- /dev/null +++ b/Ched/UI/Windows/WpfExtensions.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; + +namespace Ched.UI.Windows +{ + public static class WpfExtensions + { + public static bool? ShowDialog(this Window window, System.Windows.Forms.Form form) + { + var helper = new System.Windows.Interop.WindowInteropHelper(window); + helper.Owner = form.Handle; + return window.ShowDialog(); + } + } +} diff --git a/Ched/packages.config b/Ched/packages.config index 393214c..50b6351 100644 --- a/Ched/packages.config +++ b/Ched/packages.config @@ -3,6 +3,7 @@ + diff --git a/README.md b/README.md index f1ceed9..1977b99 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ ## ダウンロード -現在の最新版は[v2.7.0](https://github.com/paralleltree/Ched/releases)です。 +現在の最新版は[v2.8.0](https://github.com/paralleltree/Ched/releases)です。 ## 使い方 @@ -80,6 +80,26 @@ Usage of BASS indicates that you agree to the above conditions. All trademarks and other registered names contained in the BASS package are the property of their respective owners. +### XAML Behaviors + +> The MIT License (MIT) +Copyright (c) 2015 Microsoft +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + ## Special Thanks * [@kb10uy](https://twitter.com/kb10uy) * [@Horeizai_YMK](https://twitter.com/Horeizai_YMK)