public frmScript(bool forceBlank = false) { InitializeComponent(); ThemeHelper.ExcludeFromTheme(txtScriptContent); txtScriptContent.ForeColor = Color.Black; DebugInfo.ApplyConfig(); List <string> builtInScripts = new List <string> { "DmcCapture.lua", "DrawMode.lua", "Example.lua", "GameBoyMode.lua", "Grid.lua", "LogParallax.lua", "ModifyScreen.lua", "NtscSafeArea.lua", "ReverseMode.lua", "SpriteBox.lua" }; foreach (string script in builtInScripts) { ToolStripItem item = mnuBuiltInScripts.DropDownItems.Add(script); item.Click += (s, e) => { LoadBuiltInScript(item.Text); }; } tsToolbar.AddItemsToToolbar( mnuOpen, mnuSave, null, mnuRun, mnuStop, null, mnuBuiltInScripts ); DebugInfo config = ConfigManager.Config.DebugInfo; _popupMenu = new AutocompleteMenu(txtScriptContent, this); _popupMenu.ImageList = new ImageList(); _popupMenu.ImageList.Images.Add(Resources.Enum); _popupMenu.ImageList.Images.Add(Resources.Function); _popupMenu.SelectedColor = Color.LightBlue; _popupMenu.SearchPattern = @"[\w\.]"; List <AutocompleteItem> items = new List <AutocompleteItem>(); _availableFunctions.Sort((a, b) => { int type = a[0].CompareTo(b[0]); if (type == 0) { return(a[1].CompareTo(b[1])); } else { return(-type); } }); foreach (List <string> item in _availableFunctions) { MethodAutocompleteItem autocompleteItem = new MethodAutocompleteItem(item[1]); autocompleteItem.ImageIndex = item[0] == "func" ? 1 : 0; autocompleteItem.ToolTipTitle = item[2]; if (!string.IsNullOrWhiteSpace(item[3])) { autocompleteItem.ToolTipText = "Parameters" + Environment.NewLine + item[3] + Environment.NewLine + Environment.NewLine; } if (!string.IsNullOrWhiteSpace(item[4])) { autocompleteItem.ToolTipText += "Return Value" + Environment.NewLine + item[4] + Environment.NewLine + Environment.NewLine; } if (!string.IsNullOrWhiteSpace(item[5])) { autocompleteItem.ToolTipText += "Description" + Environment.NewLine + item[5] + Environment.NewLine + Environment.NewLine; } items.Add(autocompleteItem); } _popupMenu.Items.SetAutocompleteItems(items); UpdateRecentScripts(); mnuTutorialScript.Checked = config.ScriptStartupBehavior == ScriptStartupBehavior.ShowTutorial; mnuBlankWindow.Checked = config.ScriptStartupBehavior == ScriptStartupBehavior.ShowBlankWindow; mnuAutoLoadLastScript.Checked = config.ScriptStartupBehavior == ScriptStartupBehavior.LoadLastScript; if (!forceBlank) { if (mnuAutoLoadLastScript.Checked && mnuRecentScripts.DropDownItems.Count > 0) { string scriptToLoad = config.RecentScripts.Where((s) => File.Exists(s)).FirstOrDefault(); if (scriptToLoad != null) { LoadScriptFile(scriptToLoad, false); } } else if (mnuTutorialScript.Checked) { LoadBuiltInScript("Example.lua"); } } RestoreLocation(config.ScriptWindowLocation, config.ScriptWindowSize); mnuSaveBeforeRun.Checked = config.SaveScriptBeforeRun; if (config.ScriptCodeWindowHeight >= ctrlSplit.Panel1MinSize) { if (config.ScriptCodeWindowHeight == Int32.MaxValue) { ctrlSplit.CollapsePanel(); } else { ctrlSplit.SplitterDistance = config.ScriptCodeWindowHeight; } } txtScriptContent.Font = new Font(config.ScriptFontFamily, config.ScriptFontSize, config.ScriptFontStyle); txtScriptContent.Zoom = config.ScriptZoom; }
public frmScript(bool forceBlank = false) { InitializeComponent(); DebugInfo config = ConfigManager.Config.DebugInfo; _popupMenu = new AutocompleteMenu(txtScriptContent, this); _popupMenu.ImageList = new ImageList(); _popupMenu.ImageList.Images.Add(Resources.Enum); _popupMenu.ImageList.Images.Add(Resources.Function); _popupMenu.SelectedColor = Color.LightBlue; _popupMenu.SearchPattern = @"[\w\.]"; List <AutocompleteItem> items = new List <AutocompleteItem>(); _availableFunctions.Sort((a, b) => { int type = a[0].CompareTo(b[0]); if (type == 0) { return(a[1].CompareTo(b[1])); } else { return(-type); } }); foreach (List <string> item in _availableFunctions) { MethodAutocompleteItem autocompleteItem = new MethodAutocompleteItem(item[1]); autocompleteItem.ImageIndex = item[0] == "func" ? 1 : 0; autocompleteItem.ToolTipTitle = item[2]; if (!string.IsNullOrWhiteSpace(item[3])) { autocompleteItem.ToolTipText = "Parameters" + Environment.NewLine + item[3] + Environment.NewLine + Environment.NewLine; } if (!string.IsNullOrWhiteSpace(item[4])) { autocompleteItem.ToolTipText += "Return Value" + Environment.NewLine + item[4] + Environment.NewLine + Environment.NewLine; } if (!string.IsNullOrWhiteSpace(item[5])) { autocompleteItem.ToolTipText += "Description" + Environment.NewLine + item[5] + Environment.NewLine + Environment.NewLine; } items.Add(autocompleteItem); } _popupMenu.Items.SetAutocompleteItems(items); UpdateRecentScripts(); mnuTutorialScript.Checked = config.ScriptStartupBehavior == ScriptStartupBehavior.ShowTutorial; mnuBlankWindow.Checked = config.ScriptStartupBehavior == ScriptStartupBehavior.ShowBlankWindow; mnuAutoLoadLastScript.Checked = config.ScriptStartupBehavior == ScriptStartupBehavior.LoadLastScript; if (!forceBlank) { if (mnuAutoLoadLastScript.Checked && mnuRecentScripts.DropDownItems.Count > 0) { string scriptToLoad = config.RecentScripts.Where((s) => File.Exists(s)).FirstOrDefault(); if (scriptToLoad != null) { LoadScriptFile(scriptToLoad, false); } } else if (mnuTutorialScript.Checked) { using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Mesen.GUI.Debugger.Example.lua")) { using (StreamReader reader = new StreamReader(stream)) { txtScriptContent.Text = reader.ReadToEnd(); _originalText = txtScriptContent.Text; txtScriptContent.ClearUndo(); } } } } if (!config.ScriptWindowSize.IsEmpty) { this.Size = config.ScriptWindowSize; } mnuSaveBeforeRun.Checked = config.SaveScriptBeforeRun; if (config.ScriptCodeWindowHeight >= ctrlSplit.Panel1MinSize) { if (config.ScriptCodeWindowHeight == Int32.MaxValue) { ctrlSplit.CollapsePanel(); } else { ctrlSplit.SplitterDistance = config.ScriptCodeWindowHeight; } } txtScriptContent.Font = new Font(config.ScriptFontFamily, config.ScriptFontSize, config.ScriptFontStyle); txtScriptContent.Zoom = config.ScriptZoom; if (!this.DesignMode) { this._notifListener = new InteropEmu.NotificationListener(); this._notifListener.OnNotification += this._notifListener_OnNotification; this.InitShortcuts(); } }