LuaConsole now updates when a new Luascript is saved in the LuaWriter.

LineNumbers can now be shown in the Writer, only updates when a selectionchanged event occurs, not on the scrolling of the screen.

Option to toggle LineNumbers on and off

-MightyMar
This commit is contained in:
mvl1986 2014-01-24 12:44:55 +00:00
parent 7560367f4e
commit 0a494c386e
5 changed files with 1140 additions and 1032 deletions

View File

@ -586,6 +586,7 @@ namespace BizHawk.Client.Common
public string LuaWriterFont = "Courier New";
public float LuaWriterZoom = 1;
public bool LuaWriterStartEmpty = false;
public bool LuaShowLineNumbers = false;
}
// these are used in the defctrl.json or wherever

File diff suppressed because it is too large Load Diff

View File

@ -513,9 +513,9 @@ namespace BizHawk.Client.EmuHawk
return true;
}
private static void OpenLuaWriter(string path)
private void OpenLuaWriter(string path)
{
var writer = new LuaWriter { CurrentFile = path };
var writer = new LuaWriter(this) { CurrentFile = path };
writer.Show();
}

View File

@ -28,108 +28,110 @@
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LuaWriter));
this.timer = new System.Windows.Forms.Timer(this.components);
this.menuStrip1 = new MenuStripEx();
this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.saveAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.undoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.redoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
this.cutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.copyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.pasteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
this.selectAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
this.searchToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.replaceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.goToToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.configToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.fontToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.syntaxHighlightingToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.backgroundColorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator();
this.startWithEmptyScriptToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.restoreSettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.MessageLabel = new System.Windows.Forms.Label();
this.AutoCompleteView = new System.Windows.Forms.ListView();
this.PositionLabel = new System.Windows.Forms.Label();
this.ZoomLabel = new System.Windows.Forms.Label();
this.LuaText = new BizHawk.Client.EmuHawk.LuaWriterBox();
this.Suggestion = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.menuStrip1.SuspendLayout();
this.SuspendLayout();
//
// timer
//
this.timer.Enabled = true;
this.timer.Interval = 1000;
this.timer.Tick += new System.EventHandler(this.timer_Tick);
//
// menuStrip1
//
this.menuStrip1.ClickThrough = true;
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LuaWriter));
this.timer = new System.Windows.Forms.Timer(this.components);
this.menuStrip1 = new MenuStripEx();
this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.saveAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.undoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.redoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
this.cutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.copyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.pasteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
this.selectAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
this.searchToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.replaceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.goToToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.configToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.fontToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.syntaxHighlightingToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.backgroundColorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.lineNumbersToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator();
this.startWithEmptyScriptToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.restoreSettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.MessageLabel = new System.Windows.Forms.Label();
this.AutoCompleteView = new System.Windows.Forms.ListView();
this.Suggestion = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.PositionLabel = new System.Windows.Forms.Label();
this.ZoomLabel = new System.Windows.Forms.Label();
this.LuaText = new BizHawk.Client.EmuHawk.LuaWriterBox();
this.LuaLineTextBox = new System.Windows.Forms.RichTextBox();
this.menuStrip1.SuspendLayout();
this.SuspendLayout();
//
// timer
//
this.timer.Enabled = true;
this.timer.Interval = 1000;
this.timer.Tick += new System.EventHandler(this.timer_Tick);
//
// menuStrip1
//
this.menuStrip1.ClickThrough = true;
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.fileToolStripMenuItem,
this.editToolStripMenuItem,
this.configToolStripMenuItem});
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
this.menuStrip1.Name = "menuStrip1";
this.menuStrip1.Size = new System.Drawing.Size(474, 24);
this.menuStrip1.TabIndex = 1;
this.menuStrip1.Text = "menuStrip1";
//
// fileToolStripMenuItem
//
this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
this.menuStrip1.Name = "menuStrip1";
this.menuStrip1.Size = new System.Drawing.Size(846, 24);
this.menuStrip1.TabIndex = 1;
this.menuStrip1.Text = "menuStrip1";
//
// fileToolStripMenuItem
//
this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.saveToolStripMenuItem,
this.saveAsToolStripMenuItem,
this.toolStripSeparator1,
this.exitToolStripMenuItem});
this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
this.fileToolStripMenuItem.Text = "&File";
//
// saveToolStripMenuItem
//
this.saveToolStripMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.SaveAs;
this.saveToolStripMenuItem.Name = "saveToolStripMenuItem";
this.saveToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S)));
this.saveToolStripMenuItem.Size = new System.Drawing.Size(195, 22);
this.saveToolStripMenuItem.Text = "&Save";
this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveToolStripMenuItem_Click);
//
// saveAsToolStripMenuItem
//
this.saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem";
this.saveAsToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift)
this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
this.fileToolStripMenuItem.Text = "&File";
//
// saveToolStripMenuItem
//
this.saveToolStripMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.SaveAs;
this.saveToolStripMenuItem.Name = "saveToolStripMenuItem";
this.saveToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S)));
this.saveToolStripMenuItem.Size = new System.Drawing.Size(195, 22);
this.saveToolStripMenuItem.Text = "&Save";
this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveToolStripMenuItem_Click);
//
// saveAsToolStripMenuItem
//
this.saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem";
this.saveAsToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift)
| System.Windows.Forms.Keys.S)));
this.saveAsToolStripMenuItem.Size = new System.Drawing.Size(195, 22);
this.saveAsToolStripMenuItem.Text = "Save &As...";
this.saveAsToolStripMenuItem.Click += new System.EventHandler(this.saveAsToolStripMenuItem_Click);
//
// toolStripSeparator1
//
this.toolStripSeparator1.Name = "toolStripSeparator1";
this.toolStripSeparator1.Size = new System.Drawing.Size(192, 6);
//
// exitToolStripMenuItem
//
this.exitToolStripMenuItem.Name = "exitToolStripMenuItem";
this.exitToolStripMenuItem.ShortcutKeyDisplayString = "Alt+F4";
this.exitToolStripMenuItem.Size = new System.Drawing.Size(195, 22);
this.exitToolStripMenuItem.Text = "E&xit";
this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click);
//
// editToolStripMenuItem
//
this.editToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.saveAsToolStripMenuItem.Size = new System.Drawing.Size(195, 22);
this.saveAsToolStripMenuItem.Text = "Save &As...";
this.saveAsToolStripMenuItem.Click += new System.EventHandler(this.saveAsToolStripMenuItem_Click);
//
// toolStripSeparator1
//
this.toolStripSeparator1.Name = "toolStripSeparator1";
this.toolStripSeparator1.Size = new System.Drawing.Size(192, 6);
//
// exitToolStripMenuItem
//
this.exitToolStripMenuItem.Name = "exitToolStripMenuItem";
this.exitToolStripMenuItem.ShortcutKeyDisplayString = "Alt+F4";
this.exitToolStripMenuItem.Size = new System.Drawing.Size(195, 22);
this.exitToolStripMenuItem.Text = "E&xit";
this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click);
//
// editToolStripMenuItem
//
this.editToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.undoToolStripMenuItem,
this.redoToolStripMenuItem,
this.toolStripSeparator2,
@ -142,254 +144,280 @@
this.searchToolStripMenuItem,
this.replaceToolStripMenuItem,
this.goToToolStripMenuItem});
this.editToolStripMenuItem.Name = "editToolStripMenuItem";
this.editToolStripMenuItem.Size = new System.Drawing.Size(39, 20);
this.editToolStripMenuItem.Text = "Edit";
this.editToolStripMenuItem.DropDownOpened += new System.EventHandler(this.editToolStripMenuItem_DropDownOpened);
//
// undoToolStripMenuItem
//
this.undoToolStripMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.undo;
this.undoToolStripMenuItem.Name = "undoToolStripMenuItem";
this.undoToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Z)));
this.undoToolStripMenuItem.Size = new System.Drawing.Size(164, 22);
this.undoToolStripMenuItem.Text = "Undo";
this.undoToolStripMenuItem.Click += new System.EventHandler(this.undoToolStripMenuItem_Click);
//
// redoToolStripMenuItem
//
this.redoToolStripMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.redo;
this.redoToolStripMenuItem.Name = "redoToolStripMenuItem";
this.redoToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Y)));
this.redoToolStripMenuItem.Size = new System.Drawing.Size(164, 22);
this.redoToolStripMenuItem.Text = "Redo";
this.redoToolStripMenuItem.Click += new System.EventHandler(this.redoToolStripMenuItem_Click);
//
// toolStripSeparator2
//
this.toolStripSeparator2.Name = "toolStripSeparator2";
this.toolStripSeparator2.Size = new System.Drawing.Size(161, 6);
//
// cutToolStripMenuItem
//
this.cutToolStripMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.CutHS;
this.cutToolStripMenuItem.Name = "cutToolStripMenuItem";
this.cutToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.X)));
this.cutToolStripMenuItem.Size = new System.Drawing.Size(164, 22);
this.cutToolStripMenuItem.Text = "Cut";
this.cutToolStripMenuItem.Click += new System.EventHandler(this.cutToolStripMenuItem_Click);
//
// copyToolStripMenuItem
//
this.copyToolStripMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Duplicate;
this.copyToolStripMenuItem.Name = "copyToolStripMenuItem";
this.copyToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.C)));
this.copyToolStripMenuItem.Size = new System.Drawing.Size(164, 22);
this.copyToolStripMenuItem.Text = "Copy";
this.copyToolStripMenuItem.Click += new System.EventHandler(this.copyToolStripMenuItem_Click);
//
// pasteToolStripMenuItem
//
this.pasteToolStripMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Paste;
this.pasteToolStripMenuItem.Name = "pasteToolStripMenuItem";
this.pasteToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.V)));
this.pasteToolStripMenuItem.Size = new System.Drawing.Size(164, 22);
this.pasteToolStripMenuItem.Text = "Paste";
this.pasteToolStripMenuItem.Click += new System.EventHandler(this.pasteToolStripMenuItem_Click);
//
// toolStripSeparator3
//
this.toolStripSeparator3.Name = "toolStripSeparator3";
this.toolStripSeparator3.Size = new System.Drawing.Size(161, 6);
//
// selectAllToolStripMenuItem
//
this.selectAllToolStripMenuItem.Name = "selectAllToolStripMenuItem";
this.selectAllToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.A)));
this.selectAllToolStripMenuItem.Size = new System.Drawing.Size(164, 22);
this.selectAllToolStripMenuItem.Text = "Select All";
this.selectAllToolStripMenuItem.Click += new System.EventHandler(this.selectAllToolStripMenuItem_Click);
//
// toolStripSeparator4
//
this.toolStripSeparator4.Name = "toolStripSeparator4";
this.toolStripSeparator4.Size = new System.Drawing.Size(161, 6);
//
// searchToolStripMenuItem
//
this.searchToolStripMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.FindHS;
this.searchToolStripMenuItem.Name = "searchToolStripMenuItem";
this.searchToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F)));
this.searchToolStripMenuItem.Size = new System.Drawing.Size(164, 22);
this.searchToolStripMenuItem.Text = "Search";
//
// replaceToolStripMenuItem
//
this.replaceToolStripMenuItem.Name = "replaceToolStripMenuItem";
this.replaceToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.H)));
this.replaceToolStripMenuItem.Size = new System.Drawing.Size(164, 22);
this.replaceToolStripMenuItem.Text = "Replace";
//
// goToToolStripMenuItem
//
this.goToToolStripMenuItem.Name = "goToToolStripMenuItem";
this.goToToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.G)));
this.goToToolStripMenuItem.Size = new System.Drawing.Size(164, 22);
this.goToToolStripMenuItem.Text = "Go to...";
this.goToToolStripMenuItem.Click += new System.EventHandler(this.goToToolStripMenuItem_Click);
//
// configToolStripMenuItem
//
this.configToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.editToolStripMenuItem.Name = "editToolStripMenuItem";
this.editToolStripMenuItem.Size = new System.Drawing.Size(39, 20);
this.editToolStripMenuItem.Text = "Edit";
this.editToolStripMenuItem.DropDownOpened += new System.EventHandler(this.editToolStripMenuItem_DropDownOpened);
//
// undoToolStripMenuItem
//
this.undoToolStripMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.undo;
this.undoToolStripMenuItem.Name = "undoToolStripMenuItem";
this.undoToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Z)));
this.undoToolStripMenuItem.Size = new System.Drawing.Size(164, 22);
this.undoToolStripMenuItem.Text = "Undo";
this.undoToolStripMenuItem.Click += new System.EventHandler(this.undoToolStripMenuItem_Click);
//
// redoToolStripMenuItem
//
this.redoToolStripMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.redo;
this.redoToolStripMenuItem.Name = "redoToolStripMenuItem";
this.redoToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Y)));
this.redoToolStripMenuItem.Size = new System.Drawing.Size(164, 22);
this.redoToolStripMenuItem.Text = "Redo";
this.redoToolStripMenuItem.Click += new System.EventHandler(this.redoToolStripMenuItem_Click);
//
// toolStripSeparator2
//
this.toolStripSeparator2.Name = "toolStripSeparator2";
this.toolStripSeparator2.Size = new System.Drawing.Size(161, 6);
//
// cutToolStripMenuItem
//
this.cutToolStripMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.CutHS;
this.cutToolStripMenuItem.Name = "cutToolStripMenuItem";
this.cutToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.X)));
this.cutToolStripMenuItem.Size = new System.Drawing.Size(164, 22);
this.cutToolStripMenuItem.Text = "Cut";
this.cutToolStripMenuItem.Click += new System.EventHandler(this.cutToolStripMenuItem_Click);
//
// copyToolStripMenuItem
//
this.copyToolStripMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Duplicate;
this.copyToolStripMenuItem.Name = "copyToolStripMenuItem";
this.copyToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.C)));
this.copyToolStripMenuItem.Size = new System.Drawing.Size(164, 22);
this.copyToolStripMenuItem.Text = "Copy";
this.copyToolStripMenuItem.Click += new System.EventHandler(this.copyToolStripMenuItem_Click);
//
// pasteToolStripMenuItem
//
this.pasteToolStripMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Paste;
this.pasteToolStripMenuItem.Name = "pasteToolStripMenuItem";
this.pasteToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.V)));
this.pasteToolStripMenuItem.Size = new System.Drawing.Size(164, 22);
this.pasteToolStripMenuItem.Text = "Paste";
this.pasteToolStripMenuItem.Click += new System.EventHandler(this.pasteToolStripMenuItem_Click);
//
// toolStripSeparator3
//
this.toolStripSeparator3.Name = "toolStripSeparator3";
this.toolStripSeparator3.Size = new System.Drawing.Size(161, 6);
//
// selectAllToolStripMenuItem
//
this.selectAllToolStripMenuItem.Name = "selectAllToolStripMenuItem";
this.selectAllToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.A)));
this.selectAllToolStripMenuItem.Size = new System.Drawing.Size(164, 22);
this.selectAllToolStripMenuItem.Text = "Select All";
this.selectAllToolStripMenuItem.Click += new System.EventHandler(this.selectAllToolStripMenuItem_Click);
//
// toolStripSeparator4
//
this.toolStripSeparator4.Name = "toolStripSeparator4";
this.toolStripSeparator4.Size = new System.Drawing.Size(161, 6);
//
// searchToolStripMenuItem
//
this.searchToolStripMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.FindHS;
this.searchToolStripMenuItem.Name = "searchToolStripMenuItem";
this.searchToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F)));
this.searchToolStripMenuItem.Size = new System.Drawing.Size(164, 22);
this.searchToolStripMenuItem.Text = "Search";
//
// replaceToolStripMenuItem
//
this.replaceToolStripMenuItem.Name = "replaceToolStripMenuItem";
this.replaceToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.H)));
this.replaceToolStripMenuItem.Size = new System.Drawing.Size(164, 22);
this.replaceToolStripMenuItem.Text = "Replace";
//
// goToToolStripMenuItem
//
this.goToToolStripMenuItem.Name = "goToToolStripMenuItem";
this.goToToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.G)));
this.goToToolStripMenuItem.Size = new System.Drawing.Size(164, 22);
this.goToToolStripMenuItem.Text = "Go to...";
this.goToToolStripMenuItem.Click += new System.EventHandler(this.goToToolStripMenuItem_Click);
//
// configToolStripMenuItem
//
this.configToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.fontToolStripMenuItem,
this.syntaxHighlightingToolStripMenuItem,
this.backgroundColorToolStripMenuItem,
this.lineNumbersToolStripMenuItem,
this.toolStripSeparator5,
this.startWithEmptyScriptToolStripMenuItem,
this.restoreSettingsToolStripMenuItem});
this.configToolStripMenuItem.Name = "configToolStripMenuItem";
this.configToolStripMenuItem.Size = new System.Drawing.Size(55, 20);
this.configToolStripMenuItem.Text = "&Config";
//
// fontToolStripMenuItem
//
this.fontToolStripMenuItem.Name = "fontToolStripMenuItem";
this.fontToolStripMenuItem.Size = new System.Drawing.Size(196, 22);
this.fontToolStripMenuItem.Text = "&Font";
this.fontToolStripMenuItem.Click += new System.EventHandler(this.fontToolStripMenuItem_Click);
//
// syntaxHighlightingToolStripMenuItem
//
this.syntaxHighlightingToolStripMenuItem.Name = "syntaxHighlightingToolStripMenuItem";
this.syntaxHighlightingToolStripMenuItem.Size = new System.Drawing.Size(196, 22);
this.syntaxHighlightingToolStripMenuItem.Text = "&Syntax Highlighting";
this.syntaxHighlightingToolStripMenuItem.Click += new System.EventHandler(this.syntaxHighlightingToolStripMenuItem_Click);
//
// backgroundColorToolStripMenuItem
//
this.backgroundColorToolStripMenuItem.Name = "backgroundColorToolStripMenuItem";
this.backgroundColorToolStripMenuItem.Size = new System.Drawing.Size(196, 22);
this.backgroundColorToolStripMenuItem.Text = "Background Color";
this.backgroundColorToolStripMenuItem.Click += new System.EventHandler(this.backgroundColorToolStripMenuItem_Click);
//
// toolStripSeparator5
//
this.toolStripSeparator5.Name = "toolStripSeparator5";
this.toolStripSeparator5.Size = new System.Drawing.Size(193, 6);
//
// startWithEmptyScriptToolStripMenuItem
//
this.startWithEmptyScriptToolStripMenuItem.Name = "startWithEmptyScriptToolStripMenuItem";
this.startWithEmptyScriptToolStripMenuItem.Size = new System.Drawing.Size(196, 22);
this.startWithEmptyScriptToolStripMenuItem.Text = "Start With Empty Script";
this.startWithEmptyScriptToolStripMenuItem.Click += new System.EventHandler(this.startWithEmptyScriptToolStripMenuItem_Click);
//
// restoreSettingsToolStripMenuItem
//
this.restoreSettingsToolStripMenuItem.Name = "restoreSettingsToolStripMenuItem";
this.restoreSettingsToolStripMenuItem.Size = new System.Drawing.Size(196, 22);
this.restoreSettingsToolStripMenuItem.Text = "Restore Settings";
this.restoreSettingsToolStripMenuItem.Click += new System.EventHandler(this.restoreSettingsToolStripMenuItem_Click);
//
// MessageLabel
//
this.MessageLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.MessageLabel.AutoSize = true;
this.MessageLabel.Location = new System.Drawing.Point(15, 424);
this.MessageLabel.Name = "MessageLabel";
this.MessageLabel.Size = new System.Drawing.Size(91, 13);
this.MessageLabel.TabIndex = 2;
this.MessageLabel.Text = " ";
//
// AutoCompleteView
//
this.AutoCompleteView.Activation = System.Windows.Forms.ItemActivation.OneClick;
this.AutoCompleteView.AllowColumnReorder = true;
this.AutoCompleteView.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.AutoCompleteView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.configToolStripMenuItem.Name = "configToolStripMenuItem";
this.configToolStripMenuItem.Size = new System.Drawing.Size(55, 20);
this.configToolStripMenuItem.Text = "&Config";
//
// fontToolStripMenuItem
//
this.fontToolStripMenuItem.Name = "fontToolStripMenuItem";
this.fontToolStripMenuItem.Size = new System.Drawing.Size(196, 22);
this.fontToolStripMenuItem.Text = "&Font";
this.fontToolStripMenuItem.Click += new System.EventHandler(this.fontToolStripMenuItem_Click);
//
// syntaxHighlightingToolStripMenuItem
//
this.syntaxHighlightingToolStripMenuItem.Name = "syntaxHighlightingToolStripMenuItem";
this.syntaxHighlightingToolStripMenuItem.Size = new System.Drawing.Size(196, 22);
this.syntaxHighlightingToolStripMenuItem.Text = "&Syntax Highlighting";
this.syntaxHighlightingToolStripMenuItem.Click += new System.EventHandler(this.syntaxHighlightingToolStripMenuItem_Click);
//
// backgroundColorToolStripMenuItem
//
this.backgroundColorToolStripMenuItem.Name = "backgroundColorToolStripMenuItem";
this.backgroundColorToolStripMenuItem.Size = new System.Drawing.Size(196, 22);
this.backgroundColorToolStripMenuItem.Text = "Background Color";
this.backgroundColorToolStripMenuItem.Click += new System.EventHandler(this.backgroundColorToolStripMenuItem_Click);
//
// lineNumbersToolStripMenuItem
//
this.lineNumbersToolStripMenuItem.CheckOnClick = true;
this.lineNumbersToolStripMenuItem.Name = "lineNumbersToolStripMenuItem";
this.lineNumbersToolStripMenuItem.Size = new System.Drawing.Size(196, 22);
this.lineNumbersToolStripMenuItem.Text = "Show Linenumbers";
this.lineNumbersToolStripMenuItem.Click += new System.EventHandler(this.toolStripMenuItem1_Click);
//
// toolStripSeparator5
//
this.toolStripSeparator5.Name = "toolStripSeparator5";
this.toolStripSeparator5.Size = new System.Drawing.Size(193, 6);
//
// startWithEmptyScriptToolStripMenuItem
//
this.startWithEmptyScriptToolStripMenuItem.Name = "startWithEmptyScriptToolStripMenuItem";
this.startWithEmptyScriptToolStripMenuItem.Size = new System.Drawing.Size(196, 22);
this.startWithEmptyScriptToolStripMenuItem.Text = "Start With Empty Script";
this.startWithEmptyScriptToolStripMenuItem.Click += new System.EventHandler(this.startWithEmptyScriptToolStripMenuItem_Click);
//
// restoreSettingsToolStripMenuItem
//
this.restoreSettingsToolStripMenuItem.Name = "restoreSettingsToolStripMenuItem";
this.restoreSettingsToolStripMenuItem.Size = new System.Drawing.Size(196, 22);
this.restoreSettingsToolStripMenuItem.Text = "Restore Settings";
this.restoreSettingsToolStripMenuItem.Click += new System.EventHandler(this.restoreSettingsToolStripMenuItem_Click);
//
// MessageLabel
//
this.MessageLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.MessageLabel.AutoSize = true;
this.MessageLabel.Location = new System.Drawing.Point(15, 484);
this.MessageLabel.Name = "MessageLabel";
this.MessageLabel.Size = new System.Drawing.Size(91, 13);
this.MessageLabel.TabIndex = 2;
this.MessageLabel.Text = " ";
//
// AutoCompleteView
//
this.AutoCompleteView.Activation = System.Windows.Forms.ItemActivation.OneClick;
this.AutoCompleteView.AllowColumnReorder = true;
this.AutoCompleteView.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.AutoCompleteView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.Suggestion});
this.AutoCompleteView.FullRowSelect = true;
this.AutoCompleteView.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
this.AutoCompleteView.HideSelection = false;
this.AutoCompleteView.HoverSelection = true;
this.AutoCompleteView.Location = new System.Drawing.Point(324, 322);
this.AutoCompleteView.MultiSelect = false;
this.AutoCompleteView.Name = "AutoCompleteView";
this.AutoCompleteView.Size = new System.Drawing.Size(121, 97);
this.AutoCompleteView.TabIndex = 3;
this.AutoCompleteView.UseCompatibleStateImageBehavior = false;
this.AutoCompleteView.View = System.Windows.Forms.View.Details;
this.AutoCompleteView.Visible = false;
this.AutoCompleteView.KeyDown += new System.Windows.Forms.KeyEventHandler(this.AutoComplete_KeyDown);
this.AutoCompleteView.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.AutoCompleteView_MouseDoubleClick);
//
// PositionLabel
//
this.PositionLabel.AutoSize = true;
this.PositionLabel.Location = new System.Drawing.Point(14, 30);
this.PositionLabel.Name = "PositionLabel";
this.PositionLabel.Size = new System.Drawing.Size(46, 13);
this.PositionLabel.TabIndex = 4;
this.PositionLabel.Text = " ";
//
// ZoomLabel
//
this.ZoomLabel.AutoSize = true;
this.ZoomLabel.Location = new System.Drawing.Point(393, 30);
this.ZoomLabel.Name = "ZoomLabel";
this.ZoomLabel.Size = new System.Drawing.Size(66, 13);
this.ZoomLabel.TabIndex = 5;
this.ZoomLabel.Text = "Zoom: 100%";
//
// LuaText
//
this.LuaText.AcceptsTab = true;
this.LuaText.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
this.AutoCompleteView.FullRowSelect = true;
this.AutoCompleteView.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
this.AutoCompleteView.HideSelection = false;
this.AutoCompleteView.HoverSelection = true;
this.AutoCompleteView.Location = new System.Drawing.Point(696, 382);
this.AutoCompleteView.MultiSelect = false;
this.AutoCompleteView.Name = "AutoCompleteView";
this.AutoCompleteView.Size = new System.Drawing.Size(121, 97);
this.AutoCompleteView.TabIndex = 3;
this.AutoCompleteView.UseCompatibleStateImageBehavior = false;
this.AutoCompleteView.View = System.Windows.Forms.View.Details;
this.AutoCompleteView.Visible = false;
this.AutoCompleteView.KeyDown += new System.Windows.Forms.KeyEventHandler(this.AutoComplete_KeyDown);
this.AutoCompleteView.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.AutoCompleteView_MouseDoubleClick);
//
// Suggestion
//
this.Suggestion.Width = 114;
//
// PositionLabel
//
this.PositionLabel.AutoSize = true;
this.PositionLabel.Location = new System.Drawing.Point(14, 30);
this.PositionLabel.Name = "PositionLabel";
this.PositionLabel.Size = new System.Drawing.Size(46, 13);
this.PositionLabel.TabIndex = 4;
this.PositionLabel.Text = " ";
//
// ZoomLabel
//
this.ZoomLabel.AutoSize = true;
this.ZoomLabel.Location = new System.Drawing.Point(393, 30);
this.ZoomLabel.Name = "ZoomLabel";
this.ZoomLabel.Size = new System.Drawing.Size(66, 13);
this.ZoomLabel.TabIndex = 5;
this.ZoomLabel.Text = "Zoom: 100%";
//
// LuaText
//
this.LuaText.AcceptsTab = true;
this.LuaText.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.LuaText.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.LuaText.EnableAutoDragDrop = true;
this.LuaText.Location = new System.Drawing.Point(15, 50);
this.LuaText.Name = "LuaText";
this.LuaText.Size = new System.Drawing.Size(444, 369);
this.LuaText.TabIndex = 0;
this.LuaText.Text = "";
this.LuaText.WordWrap = false;
this.LuaText.SelectionChanged += new System.EventHandler(this.LuaText_SelectionChanged);
this.LuaText.TextChanged += new System.EventHandler(this.LuaText_TextChanged);
this.LuaText.KeyDown += new System.Windows.Forms.KeyEventHandler(this.LuaText_KeyDown);
this.LuaText.KeyUp += new System.Windows.Forms.KeyEventHandler(this.LuaText_KeyUp);
this.LuaText.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.LuaText_PreviewKeyDown);
//
// Suggestion
//
this.Suggestion.Width = 114;
//
// LuaWriter
//
this.AllowDrop = true;
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(474, 441);
this.Controls.Add(this.AutoCompleteView);
this.Controls.Add(this.ZoomLabel);
this.Controls.Add(this.PositionLabel);
this.Controls.Add(this.MessageLabel);
this.Controls.Add(this.LuaText);
this.Controls.Add(this.menuStrip1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MainMenuStrip = this.menuStrip1;
this.Name = "LuaWriter";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "LuaWriter";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.LuaWriter_FormClosing);
this.Load += new System.EventHandler(this.LuaWriter_Load);
this.DragDrop += new System.Windows.Forms.DragEventHandler(this.LuaWriter_DragDrop);
this.DragEnter += new System.Windows.Forms.DragEventHandler(this.LuaWriter_DragEnter);
this.menuStrip1.ResumeLayout(false);
this.menuStrip1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
this.LuaText.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.LuaText.EnableAutoDragDrop = true;
this.LuaText.Location = new System.Drawing.Point(63, 50);
this.LuaText.Name = "LuaText";
this.LuaText.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical;
this.LuaText.Size = new System.Drawing.Size(768, 429);
this.LuaText.TabIndex = 0;
this.LuaText.Text = "";
this.LuaText.WordWrap = false;
this.LuaText.SelectionChanged += new System.EventHandler(this.LuaText_SelectionChanged);
this.LuaText.VScroll += new System.EventHandler(this.LuaText_VScroll);
this.LuaText.TextChanged += new System.EventHandler(this.LuaText_TextChanged);
this.LuaText.KeyDown += new System.Windows.Forms.KeyEventHandler(this.LuaText_KeyDown);
this.LuaText.KeyUp += new System.Windows.Forms.KeyEventHandler(this.LuaText_KeyUp);
this.LuaText.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.LuaText_PreviewKeyDown);
//
// LuaLineTextBox
//
this.LuaLineTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.LuaLineTextBox.BackColor = System.Drawing.SystemColors.ScrollBar;
this.LuaLineTextBox.Location = new System.Drawing.Point(0, 50);
this.LuaLineTextBox.Name = "LuaLineTextBox";
this.LuaLineTextBox.ReadOnly = true;
this.LuaLineTextBox.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.None;
this.LuaLineTextBox.Size = new System.Drawing.Size(60, 429);
this.LuaLineTextBox.TabIndex = 6;
this.LuaLineTextBox.Text = "";
this.LuaLineTextBox.Visible = false;
//
// LuaWriter
//
this.AllowDrop = true;
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(846, 501);
this.Controls.Add(this.LuaLineTextBox);
this.Controls.Add(this.AutoCompleteView);
this.Controls.Add(this.ZoomLabel);
this.Controls.Add(this.PositionLabel);
this.Controls.Add(this.MessageLabel);
this.Controls.Add(this.LuaText);
this.Controls.Add(this.menuStrip1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MainMenuStrip = this.menuStrip1;
this.Name = "LuaWriter";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "LuaWriter";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.LuaWriter_FormClosing);
this.Load += new System.EventHandler(this.LuaWriter_Load);
this.DragDrop += new System.Windows.Forms.DragEventHandler(this.LuaWriter_DragDrop);
this.DragEnter += new System.Windows.Forms.DragEventHandler(this.LuaWriter_DragEnter);
this.menuStrip1.ResumeLayout(false);
this.menuStrip1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
@ -428,5 +456,7 @@
private System.Windows.Forms.ToolStripSeparator toolStripSeparator5;
private System.Windows.Forms.ToolStripMenuItem backgroundColorToolStripMenuItem;
private System.Windows.Forms.ColumnHeader Suggestion;
private System.Windows.Forms.RichTextBox LuaLineTextBox;
private System.Windows.Forms.ToolStripMenuItem lineNumbersToolStripMenuItem;
}
}

View File

@ -15,13 +15,15 @@ namespace BizHawk.Client.EmuHawk
public partial class LuaWriter : Form
{
//TODO:
//ability to save new script (currently causes an exception)
//New scripts should be added to lua console automatically
//Loads of exceptions when closing the writer, primarily in System.Windows.Forms.dll and mscorlib.dll
//ability to save new script (currently causes an exception) - done
//New scripts should be added to lua console automatically - done
//make functions is string part of string or comment since the actual way of validating it isn't correct
//Save fontstyle to config
//Line numbers
//Save fontstyle to config - done
//Line numbersjn
//Option to toggle line numbers
//Auto-complete drop down on functions in libraries
//Auto-complete drop down on functions in libraries - done
//intellisense on library functions
//Option to turn off basic lua script
//Tool strip
@ -38,13 +40,24 @@ namespace BizHawk.Client.EmuHawk
private bool redo;
private bool hasChanged;
private bool ProcessingText;
private bool isFirst;
private bool DisableEvent;
private int lastLineofText;
private int lineIndex;
private int previousFirstVisibleChar;
private readonly char[] Symbols = { '+', '-', '*', '/', '%', '^', '#', '=', '<', '>', '(', ')', '{', '}', '[', ']', ';', ':', ',', '.' };
private List<int[]> pos = new List<int[]>();
private LuaConsole _owner;
public LuaWriter()
public LuaWriter(LuaConsole owner)
{
InitializeComponent();
LuaText.MouseWheel += LuaText_MouseWheel;
isFirst = true;
_owner = owner;
LuaText.MouseWheel += LuaText_MouseWheel;
lineNumbersToolStripMenuItem.Checked = Global.Config.LuaShowLineNumbers;
}
void LuaText_MouseWheel(object sender, MouseEventArgs e)
@ -54,15 +67,26 @@ namespace BizHawk.Client.EmuHawk
Double Zoom;
if ((LuaText.ZoomFactor == 0.1F && e.Delta < 0) || (LuaText.ZoomFactor == 5.0F && e.Delta > 0))
{
Zoom = (LuaText.ZoomFactor*100);
Zoom = (LuaText.ZoomFactor * 100);
}
else
{
Zoom = (LuaText.ZoomFactor*100) + e.Delta/12;
Zoom = (LuaText.ZoomFactor * 100) + e.Delta / 12;
}
ZoomLabel.Text = string.Format("Zoom: {0:0}%", Zoom);
}
else
{
//UpdateLineTextBox();
}
}
private void LuaText_VScroll(object sender, EventArgs e)
{
//UpdateLineTextBox();
}
private void timer_Tick(object sender, EventArgs e)
@ -71,7 +95,6 @@ namespace BizHawk.Client.EmuHawk
{
return;
}
// ProcessText(); // Commenting out until it's fixed to not scroll everything all the time
hasChanged = false;
}
@ -102,6 +125,8 @@ namespace BizHawk.Client.EmuHawk
ProcessingText = false;
LuaText.InhibitPaint = false;
LuaText.Refresh();
isFirst = false;
ShowLuaLineNumbersTextBox();
}
private void AddNumbers()
@ -452,11 +477,13 @@ namespace BizHawk.Client.EmuHawk
private void LoadFont()
{
LuaText.Font = new Font(Global.Config.LuaWriterFont, Global.Config.LuaWriterFontSize);
LuaLineTextBox.Font = new Font(Global.Config.LuaWriterFont, Global.Config.LuaWriterFontSize);
}
private void LuaWriter_Load(object sender, EventArgs e)
{
//LuaTextFont;
ProcessingText = true;
LuaText.SelectionTabs = new[] { 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 480, 500, 520, 540, 560, 580, 600 }; //adelikat: What a goofy way to have to do this
LoadFont();
@ -612,6 +639,12 @@ namespace BizHawk.Client.EmuHawk
}
private void LuaText_TextChanged(object sender, EventArgs e)
{
HasTextChanged();
}
private void HasTextChanged ()
{
if (!ProcessingText)
{
@ -640,9 +673,9 @@ namespace BizHawk.Client.EmuHawk
DialogResult result = f.ShowDialog();
if (result == DialogResult.OK)
{
LuaText.Font = f.Font;
Global.Config.LuaWriterFont = f.Font.Name;
Global.Config.LuaWriterFontSize = f.Font.Size;
LoadFont();
ProcessText(); //Re-update coloring and such when font changes
}
}
@ -812,35 +845,6 @@ namespace BizHawk.Client.EmuHawk
}
/*
private void SelectNextItem(bool Next)
{
if (AutoCompleteView.SelectedItems.Count > 0)
{
if (Next)
{
if (AutoCompleteView.FocusedItem == AutoCompleteView.Items[AutoCompleteView.Items.Count - 1])
return;
AutoCompleteView.FocusedItem = AutoCompleteView.Items[AutoCompleteView.Items.IndexOf(AutoCompleteView.SelectedItems[0]) + 1];
}
else
{
if (AutoCompleteView.FocusedItem == AutoCompleteView.Items[0])
return;
AutoCompleteView.FocusedItem = AutoCompleteView.Items[AutoCompleteView.Items.IndexOf(AutoCompleteView.SelectedItems[0]) - 1];
}
}
else
{
if (Next)
AutoCompleteView.FocusedItem = AutoCompleteView.Items[0];
}
}
*/
private string CurrentWord()
{
int last = LuaText.SelectionStart;
@ -916,7 +920,11 @@ namespace BizHawk.Client.EmuHawk
private void LuaText_SelectionChanged(object sender, EventArgs e)
{
UpdateLineNumber();
if (!DisableEvent && Global.Config.LuaShowLineNumbers && !isFirst)
{
UpdateLineNumber();
ShowLuaLineNumbersTextBox();
}
}
private void UpdateLineNumber()
@ -931,6 +939,50 @@ namespace BizHawk.Client.EmuHawk
}
}
private void UpdateLineTextBox()
{
DisableEvent = true;
int currentLocation = LuaText.SelectionStart;
int firstVisibleChar = LuaText.GetCharIndexFromPosition(new Point(0,0));
LuaText.Select(firstVisibleChar, 0);
if (lastLineofText != LuaText.GetLineFromCharIndex(LuaText.TextLength) || previousFirstVisibleChar != LuaText.GetCharIndexFromPosition(new Point(0, 0)))
{
previousFirstVisibleChar = firstVisibleChar;
lastLineofText = LuaText.GetLineFromCharIndex(LuaText.TextLength);
lineIndex = LuaText.GetLineFromCharIndex(firstVisibleChar);
if (LuaText.GetLineFromCharIndex(currentLocation) == lastLineofText)
{
lineIndex++;
}
LuaLineTextBox.Text = String.Empty;
for (int i = lineIndex + 1; i <= LuaText.GetLineFromCharIndex(LuaText.TextLength) + 1; i++)
{
if (i < 10)
{
LuaLineTextBox.Text += "00" + i;
}
else if (i >= 10 && i < 100)
{
LuaLineTextBox.Text += "0" + i;
}
else
{
LuaLineTextBox.Text += i;
}
if (i != LuaText.GetLineFromCharIndex(LuaText.TextLength) + 1)
{
LuaLineTextBox.Text += "\n";
}
}
}
LuaText.Select(currentLocation, 0);
DisableEvent = false;
}
private void LuaText_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
@ -938,12 +990,21 @@ namespace BizHawk.Client.EmuHawk
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
//TODO: check for changes and ask save
Close();
}
private void LuaWriter_FormClosing(object sender, FormClosingEventArgs e)
{
if (changes)
{
var result = MessageBox.Show("Save changes to this Document?", "Lua Writer", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button3);
if (result == DialogResult.Yes)
{
SaveScript();
_owner.LoadLuaFile(CurrentFile);
}
}
Global.Config.LuaWriterZoom = LuaText.ZoomFactor;
Global.Config.LuaWriterStartEmpty = startWithEmptyScriptToolStripMenuItem.Checked;
Global.Config.LuaWriterBackColor = LuaText.BackColor.ToArgb();
@ -1075,5 +1136,21 @@ namespace BizHawk.Client.EmuHawk
redoToolStripMenuItem.Enabled = false;
}
}
private void toolStripMenuItem1_Click(object sender, EventArgs e)
{
Global.Config.LuaShowLineNumbers = !Global.Config.LuaShowLineNumbers;
lineNumbersToolStripMenuItem.Checked = Global.Config.LuaShowLineNumbers;
ShowLuaLineNumbersTextBox();
}
private void ShowLuaLineNumbersTextBox()
{
LuaLineTextBox.Visible = Global.Config.LuaShowLineNumbers ;
if (LuaLineTextBox.Visible)
{
UpdateLineTextBox();
}
}
}
}