From 46745b94a96e65ac785b89702c1957a72840e6b1 Mon Sep 17 00:00:00 2001 From: jeffman Date: Mon, 20 Mar 2017 00:05:12 -0400 Subject: [PATCH] Added a Google Translate button --- ScriptTool/ScriptTool/ScriptTool.csproj | 6 +- ScriptTool/ScriptTool/packages.config | 2 +- ScriptTool/ScriptToolGui/App.config | 12 +++- ScriptTool/ScriptToolGui/MainForm.Designer.cs | 38 ++++++++----- ScriptTool/ScriptToolGui/MainForm.cs | 57 ++++++++++++++++++- ScriptTool/ScriptToolGui/ScriptToolGui.csproj | 6 +- ScriptTool/ScriptToolGui/StringPreviewer.cs | 43 ++++++++------ ScriptTool/ScriptToolGui/packages.config | 2 +- 8 files changed, 123 insertions(+), 43 deletions(-) diff --git a/ScriptTool/ScriptTool/ScriptTool.csproj b/ScriptTool/ScriptTool/ScriptTool.csproj index 5259d7b..7841611 100644 --- a/ScriptTool/ScriptTool/ScriptTool.csproj +++ b/ScriptTool/ScriptTool/ScriptTool.csproj @@ -33,9 +33,9 @@ 4 - - False - ..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll + + ..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll + True diff --git a/ScriptTool/ScriptTool/packages.config b/ScriptTool/ScriptTool/packages.config index af70bc8..3e14be6 100644 --- a/ScriptTool/ScriptTool/packages.config +++ b/ScriptTool/ScriptTool/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/ScriptTool/ScriptToolGui/App.config b/ScriptTool/ScriptToolGui/App.config index d0feca6..4d56584 100644 --- a/ScriptTool/ScriptToolGui/App.config +++ b/ScriptTool/ScriptToolGui/App.config @@ -1,6 +1,14 @@ - + - + + + + + + + + + diff --git a/ScriptTool/ScriptToolGui/MainForm.Designer.cs b/ScriptTool/ScriptToolGui/MainForm.Designer.cs index cbdfe46..1b2ae7b 100644 --- a/ScriptTool/ScriptToolGui/MainForm.Designer.cs +++ b/ScriptTool/ScriptToolGui/MainForm.Designer.cs @@ -53,7 +53,7 @@ this.lineOpsPanel = new System.Windows.Forms.FlowLayoutPanel(); this.copyCodesButton = new System.Windows.Forms.Button(); this.previewButton = new System.Windows.Forms.Button(); - this.previewer = new ScriptToolGui.StringPreviewer(); + this.translateButton = new System.Windows.Forms.Button(); this.codeSplitContainer = new System.Windows.Forms.SplitContainer(); this.codeList = new System.Windows.Forms.ListBox(); this.label2 = new System.Windows.Forms.Label(); @@ -65,6 +65,7 @@ this.statusBar = new System.Windows.Forms.StatusStrip(); this.writeLabel = new System.Windows.Forms.ToolStripStatusLabel(); this.writeTimer = new System.Windows.Forms.Timer(this.components); + this.previewer = new ScriptToolGui.StringPreviewer(); this.mainMenu.SuspendLayout(); this.topPanel.SuspendLayout(); this.mainPanel.SuspendLayout(); @@ -121,7 +122,7 @@ this.checkCompletionMenu, this.autosaveMenu}); this.toolsMenu.Name = "toolsMenu"; - this.toolsMenu.Size = new System.Drawing.Size(48, 20); + this.toolsMenu.Size = new System.Drawing.Size(47, 20); this.toolsMenu.Text = "Tools"; // // resolveDuplicateLabelsMenu @@ -337,6 +338,7 @@ this.lineOpsPanel.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; this.lineOpsPanel.Controls.Add(this.copyCodesButton); this.lineOpsPanel.Controls.Add(this.previewButton); + this.lineOpsPanel.Controls.Add(this.translateButton); this.lineOpsPanel.Dock = System.Windows.Forms.DockStyle.Bottom; this.lineOpsPanel.Location = new System.Drawing.Point(0, 489); this.lineOpsPanel.Name = "lineOpsPanel"; @@ -363,18 +365,15 @@ this.previewButton.UseVisualStyleBackColor = true; this.previewButton.Click += new System.EventHandler(this.previewButton_Click); // - // previewer + // translateButton // - this.previewer.AutoScroll = true; - this.previewer.CharLookup = null; - this.previewer.DisplayedString = null; - this.previewer.Dock = System.Windows.Forms.DockStyle.Fill; - this.previewer.Location = new System.Drawing.Point(0, 0); - this.previewer.M12Compiler = null; - this.previewer.MaxWidth = 0; - this.previewer.Name = "previewer"; - this.previewer.Size = new System.Drawing.Size(796, 133); - this.previewer.TabIndex = 0; + this.translateButton.Location = new System.Drawing.Point(214, 3); + this.translateButton.Name = "translateButton"; + this.translateButton.Size = new System.Drawing.Size(114, 23); + this.translateButton.TabIndex = 2; + this.translateButton.Text = "Google Translate"; + this.translateButton.UseVisualStyleBackColor = true; + this.translateButton.Click += new System.EventHandler(this.translateButton_Click); // // codeSplitContainer // @@ -500,6 +499,18 @@ this.writeTimer.Interval = 10000; this.writeTimer.Tick += new System.EventHandler(this.writeTimer_Tick); // + // previewer + // + this.previewer.AutoScroll = true; + this.previewer.CharLookup = null; + this.previewer.Dock = System.Windows.Forms.DockStyle.Fill; + this.previewer.Location = new System.Drawing.Point(0, 0); + this.previewer.M12Compiler = null; + this.previewer.MaxWidth = 0; + this.previewer.Name = "previewer"; + this.previewer.Size = new System.Drawing.Size(796, 133); + this.previewer.TabIndex = 0; + // // MainForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -584,6 +595,7 @@ private System.Windows.Forms.Button prevButton; private System.Windows.Forms.Button nextButton; private System.Windows.Forms.ToolStripMenuItem autosaveMenu; + private System.Windows.Forms.Button translateButton; } } diff --git a/ScriptTool/ScriptToolGui/MainForm.cs b/ScriptTool/ScriptToolGui/MainForm.cs index 6d317eb..da346d9 100644 --- a/ScriptTool/ScriptToolGui/MainForm.cs +++ b/ScriptTool/ScriptToolGui/MainForm.cs @@ -23,6 +23,7 @@ namespace ScriptToolGui static Compiler ebCompiler = new Compiler(EbControlCode.Codes, (rom, address) => rom[address] < 0x20); static readonly Game[] validGames; static IDictionary ebCharLookup; + static IDictionary m12CharLookup; // Lookups Dictionary textboxLookup; @@ -64,12 +65,13 @@ namespace ScriptToolGui { validGames = new Game[] { Game.Eb, Game.M12, Game.M12English }; ebCharLookup = JsonConvert.DeserializeObject>(File.ReadAllText("eb-char-lookup.json")); + m12CharLookup = JsonConvert.DeserializeObject>(File.ReadAllText("m12-char-lookup.json")); } string ReadEbString(byte[] rom, int address, int length) { var sb = new StringBuilder(); - for(int i=0;i4 - - False - ..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll + + ..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll + True diff --git a/ScriptTool/ScriptToolGui/StringPreviewer.cs b/ScriptTool/ScriptToolGui/StringPreviewer.cs index dbdf969..5dc127c 100644 --- a/ScriptTool/ScriptToolGui/StringPreviewer.cs +++ b/ScriptTool/ScriptToolGui/StringPreviewer.cs @@ -18,30 +18,16 @@ namespace ScriptToolGui public int MaxWidth { get; set; } - private string text; - public string DisplayedString - { - get - { - return text; - } - set - { - text = value; - Redraw(); - } - } - public StringPreviewer() { InitializeComponent(); } - private void Redraw() + private void RedrawFancy(string str) { stringPanel.Controls.Clear(); - if (M12Compiler == null || CharLookup == null || text == null) + if (M12Compiler == null || CharLookup == null || str == null) { return; } @@ -49,7 +35,7 @@ namespace ScriptToolGui try { IList widths; - IList parsed = M12Compiler.FormatPreviewM12(text, out widths, CharLookup); + IList parsed = M12Compiler.FormatPreviewM12(str, out widths, CharLookup); for (int i = 0; i < parsed.Count; i++) { @@ -77,5 +63,28 @@ namespace ScriptToolGui stringPanel.Controls.Add(errLabel); } } + + private void RedrawPlain(string str) + { + stringPanel.Controls.Clear(); + + if (str == null) + return; + + var label = new Label + { + AutoSize = true, + Text = str + }; + stringPanel.Controls.Add(label); + } + + public void DisplayString(string str, bool fancy) + { + if (fancy) + RedrawFancy(str); + else + RedrawPlain(str); + } } } diff --git a/ScriptTool/ScriptToolGui/packages.config b/ScriptTool/ScriptToolGui/packages.config index 747efc5..3e14be6 100644 --- a/ScriptTool/ScriptToolGui/packages.config +++ b/ScriptTool/ScriptToolGui/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file