diff --git a/BizHawk.MultiClient/BizHawk.MultiClient.csproj b/BizHawk.MultiClient/BizHawk.MultiClient.csproj index 16ff9de803..2ea986e467 100644 --- a/BizHawk.MultiClient/BizHawk.MultiClient.csproj +++ b/BizHawk.MultiClient/BizHawk.MultiClient.csproj @@ -357,6 +357,9 @@ LuaWriter.cs + + Component + FFmpegWriterForm.cs diff --git a/BizHawk.MultiClient/tools/LuaWriter.Designer.cs b/BizHawk.MultiClient/tools/LuaWriter.Designer.cs index f0149fb709..6254eb6eca 100644 --- a/BizHawk.MultiClient/tools/LuaWriter.Designer.cs +++ b/BizHawk.MultiClient/tools/LuaWriter.Designer.cs @@ -28,43 +28,44 @@ /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.LuaText = new System.Windows.Forms.RichTextBox(); - this.timer = new System.Windows.Forms.Timer(this.components); - this.SuspendLayout(); - // - // LuaText - // - this.LuaText.AcceptsTab = true; - this.LuaText.Location = new System.Drawing.Point(12, 12); - this.LuaText.Name = "LuaText"; - this.LuaText.Size = new System.Drawing.Size(819, 417); - this.LuaText.TabIndex = 0; - this.LuaText.Text = ""; - this.LuaText.WordWrap = false; - this.LuaText.ZoomFactor = 2F; - // - // timer - // - this.timer.Enabled = true; - this.timer.Interval = 1000; - this.timer.Tick += new System.EventHandler(this.timer_Tick); - // - // LuaWriter - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(843, 441); - this.Controls.Add(this.LuaText); - this.Name = "LuaWriter"; - this.Text = "LuaWriter"; - this.ResumeLayout(false); + this.components = new System.ComponentModel.Container(); + this.LuaText = new LuaWriterBox(); + this.timer = new System.Windows.Forms.Timer(this.components); + this.SuspendLayout(); + // + // LuaText + // + this.LuaText.AcceptsTab = true; + this.LuaText.Location = new System.Drawing.Point(12, 12); + this.LuaText.Name = "LuaText"; + this.LuaText.Size = new System.Drawing.Size(819, 417); + this.LuaText.TabIndex = 0; + this.LuaText.Text = ""; + this.LuaText.WordWrap = false; + this.LuaText.ZoomFactor = 2F; + // + // timer + // + this.timer.Enabled = true; + this.timer.Interval = 1000; + this.timer.Tick += new System.EventHandler(this.timer_Tick); + // + // LuaWriter + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(843, 441); + this.Controls.Add(this.LuaText); + this.Name = "LuaWriter"; + this.Text = "LuaWriter"; + this.Load += new System.EventHandler(this.LuaWriter_Load); + this.ResumeLayout(false); } #endregion - private System.Windows.Forms.RichTextBox LuaText; + private LuaWriterBox LuaText; private System.Windows.Forms.Timer timer; } } \ No newline at end of file diff --git a/BizHawk.MultiClient/tools/LuaWriter.cs b/BizHawk.MultiClient/tools/LuaWriter.cs index 81f4c939ac..3b0589151d 100644 --- a/BizHawk.MultiClient/tools/LuaWriter.cs +++ b/BizHawk.MultiClient/tools/LuaWriter.cs @@ -10,156 +10,160 @@ using System.Text.RegularExpressions; namespace BizHawk.MultiClient { - public partial class LuaWriter : Form - { - public Regex keyWords = new Regex("and|break|do|else|if|end|false|for|function|in|local|nil|not|or|repeat|return|then|true|until|while|elseif"); - public LuaWriter() - { - InitializeComponent(); - } + public partial class LuaWriter : Form + { + public Regex keyWords = new Regex("and|break|do|else|if|end|false|for|function|in|local|nil|not|or|repeat|return|then|true|until|while|elseif"); + public LuaWriter() + { + InitializeComponent(); + } - private void timer_Tick(object sender, EventArgs e) - { - int selPos = LuaText.SelectionStart; - int selChars = LuaText.SelectedText.Length; + private void timer_Tick(object sender, EventArgs e) + { + int selPos = LuaText.SelectionStart; + int selChars = LuaText.SelectedText.Length; LuaText.SelectAll(); LuaText.SelectionColor = Color.Black; - ColorReservedWords(); + ColorReservedWords(); - ColorComments(); + ColorComments(); - ColorStrings(); + ColorStrings(); - LuaText.Select(selPos, selChars); - } + LuaText.Select(selPos, selChars); + } - private void ColorStrings() - { - int firstMark, opening, ending, endLine; + private void ColorStrings() + { + int firstMark, opening, ending, endLine; - char[] chars = { '"', '\'' }; - foreach (char mark in chars) - { - firstMark = LuaText.Find(mark.ToString()); - while (firstMark > 0) - { - opening = firstMark; - if (LuaText.GetLineFromCharIndex(opening) + 1 == LuaText.Lines.Count()) - endLine = LuaText.Text.Length - 1; - else - endLine = LuaText.GetFirstCharIndexFromLine(LuaText.GetLineFromCharIndex(opening) + 1) - 1; - - ending = 0; + char[] chars = { '"', '\'' }; + foreach (char mark in chars) + { + firstMark = LuaText.Find(mark.ToString()); + while (firstMark > 0) + { + opening = firstMark; + if (LuaText.GetLineFromCharIndex(opening) + 1 == LuaText.Lines.Count()) + endLine = LuaText.Text.Length - 1; + else + endLine = LuaText.GetFirstCharIndexFromLine(LuaText.GetLineFromCharIndex(opening) + 1) - 1; - if (opening != LuaText.Text.Length - 1) - { - if (opening + 1 != endLine) - { - ending = LuaText.Find(mark.ToString(), opening + 1, endLine, RichTextBoxFinds.MatchCase); - if (ending > 0) - { - while (ending > 0) - { - if (!IsThisPartOfTheString(LuaText.Text.Substring(opening, ending - opening + 1))) - break; - else - ending++; + ending = 0; - ending = LuaText.Find(mark.ToString(), ending, endLine, RichTextBoxFinds.MatchCase); - } - } - else - ending = endLine; - } - else - ending = endLine; - } - else - ending = endLine; + if (opening != LuaText.Text.Length - 1) + { + if (opening + 1 != endLine) + { + ending = LuaText.Find(mark.ToString(), opening + 1, endLine, RichTextBoxFinds.MatchCase); + if (ending > 0) + { + while (ending > 0) + { + if (!IsThisPartOfTheString(LuaText.Text.Substring(opening, ending - opening + 1))) + break; + else + ending++; - if (opening != LuaText.Text.Length) - { - LuaText.Select(opening, ending - opening + 1); - LuaText.SelectionColor = Color.FromArgb(Global.Config.LuaStringColor); - if (ending >= LuaText.Text.Length) - ending++; - else - break; + ending = LuaText.Find(mark.ToString(), ending, endLine, RichTextBoxFinds.MatchCase); + } + } + else + ending = endLine; + } + else + ending = endLine; + } + else + ending = endLine; - firstMark = LuaText.Find(mark.ToString(), ending + 1, LuaText.Text.Length, RichTextBoxFinds.MatchCase); - } - else - break; - } - } - } + if (opening != LuaText.Text.Length) + { + LuaText.Select(opening, ending - opening + 1); + LuaText.SelectionColor = Color.FromArgb(Global.Config.LuaStringColor); + if (ending >= LuaText.Text.Length) + ending++; + else + break; - private bool IsThisPartOfTheString(string wholestring) - { - int ammount = 0; - for (int x = wholestring.Length - 2; x > -1; x--) - { - if (wholestring[x] == '\\') - ammount++; - else - break; - } + firstMark = LuaText.Find(mark.ToString(), ending + 1, LuaText.Text.Length, RichTextBoxFinds.MatchCase); + } + else + break; + } + } + } - return !(ammount % 2 == 0); - } + private bool IsThisPartOfTheString(string wholestring) + { + int ammount = 0; + for (int x = wholestring.Length - 2; x > -1; x--) + { + if (wholestring[x] == '\\') + ammount++; + else + break; + } - private void ColorComments() - { - foreach (Match CommentMatch in new Regex("--").Matches(LuaText.Text)) - { - int endComment; + return !(ammount % 2 == 0); + } - if (LuaText.Text.Substring(CommentMatch.Index, 4) == "--[[") - { - if (LuaText.Find("]]", RichTextBoxFinds.MatchCase) > 0) - endComment = LuaText.SelectionStart - CommentMatch.Index + 2; - else - endComment = LuaText.Text.Length; + private void ColorComments() + { + foreach (Match CommentMatch in new Regex("--").Matches(LuaText.Text)) + { + int endComment; - LuaText.Select(CommentMatch.Index, endComment); + if (LuaText.Text.Substring(CommentMatch.Index, 4) == "--[[") + { + if (LuaText.Find("]]", RichTextBoxFinds.MatchCase) > 0) + endComment = LuaText.SelectionStart - CommentMatch.Index + 2; + else + endComment = LuaText.Text.Length; + + LuaText.Select(CommentMatch.Index, endComment); LuaText.SelectionColor = Color.FromArgb(Global.Config.LuaCommentColor); - } - else - { - if (LuaText.GetLineFromCharIndex(CommentMatch.Index) + 1 == LuaText.Lines.Count()) - endComment = LuaText.Text.Length - CommentMatch.Index; - else - endComment = LuaText.GetFirstCharIndexFromLine(LuaText.GetLineFromCharIndex(CommentMatch.Index) + 1) - CommentMatch.Index; + } + else + { + if (LuaText.GetLineFromCharIndex(CommentMatch.Index) + 1 == LuaText.Lines.Count()) + endComment = LuaText.Text.Length - CommentMatch.Index; + else + endComment = LuaText.GetFirstCharIndexFromLine(LuaText.GetLineFromCharIndex(CommentMatch.Index) + 1) - CommentMatch.Index; - LuaText.Select(CommentMatch.Index, endComment); + LuaText.Select(CommentMatch.Index, endComment); LuaText.SelectionColor = Color.FromArgb(Global.Config.LuaCommentColor); - } - } - } + } + } + } - private void ColorReservedWords() - { - foreach (Match keyWordMatch in keyWords.Matches(LuaText.Text)) - { - char before = ' ', after = ' '; + private void ColorReservedWords() + { + foreach (Match keyWordMatch in keyWords.Matches(LuaText.Text)) + { + char before = ' ', after = ' '; - if (keyWordMatch.Index > 0) - if(keyWordMatch.Index > 5 && keyWordMatch.Value != "if" && LuaText.Text.Substring(keyWordMatch.Index - 4, 4) != "else") - before = LuaText.Text[keyWordMatch.Index - 1]; + if (keyWordMatch.Index > 0) + if (keyWordMatch.Index > 5 && keyWordMatch.Value != "if" && LuaText.Text.Substring(keyWordMatch.Index - 4, 4) != "else") + before = LuaText.Text[keyWordMatch.Index - 1]; - if (keyWordMatch.Index + keyWordMatch.Length != LuaText.Text.Length) - if (keyWordMatch.Value != "else" && LuaText.Text.Substring(keyWordMatch.Index, 2) != "if") - after = LuaText.Text[keyWordMatch.Index + keyWordMatch.Length]; + if (keyWordMatch.Index + keyWordMatch.Length != LuaText.Text.Length) + if (keyWordMatch.Value != "else" && LuaText.Text.Substring(keyWordMatch.Index, 2) != "if") + after = LuaText.Text[keyWordMatch.Index + keyWordMatch.Length]; - if (!char.IsLetterOrDigit(before) && !char.IsLetterOrDigit(after)) - { - LuaText.Select(keyWordMatch.Index, keyWordMatch.Length); + if (!char.IsLetterOrDigit(before) && !char.IsLetterOrDigit(after)) + { + LuaText.Select(keyWordMatch.Index, keyWordMatch.Length); LuaText.SelectionColor = Color.FromArgb(Global.Config.LuaKeyWordColor); - } - } - } + } + } + } - } + private void LuaWriter_Load(object sender, EventArgs e) + { + + } + } } \ No newline at end of file diff --git a/BizHawk.MultiClient/tools/LuaWriterBox.cs b/BizHawk.MultiClient/tools/LuaWriterBox.cs new file mode 100644 index 0000000000..3ca93ad587 --- /dev/null +++ b/BizHawk.MultiClient/tools/LuaWriterBox.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace BizHawk.MultiClient +{ + class LuaWriterBox : RichTextBox + { + public LuaWriterBox() + { + SetStyle(ControlStyles.AllPaintingInWmPaint, true); + SetStyle(ControlStyles.OptimizedDoubleBuffer, true); + } + } +}