2018-03-18 19:57:56 -04:00
|
|
|
|
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 Mesen.GUI.Controls;
|
|
|
|
|
using Mesen.GUI.Config;
|
|
|
|
|
using Mesen.GUI.Debugger.Controls;
|
|
|
|
|
|
|
|
|
|
namespace Mesen.GUI.Debugger
|
|
|
|
|
{
|
2018-06-16 17:19:20 -04:00
|
|
|
|
public partial class frmCodePreviewTooltip : TooltipForm
|
2018-03-18 19:57:56 -04:00
|
|
|
|
{
|
|
|
|
|
private ICodeViewer _codeViewer;
|
|
|
|
|
|
|
|
|
|
private int _lineIndex;
|
2018-07-25 00:41:52 -04:00
|
|
|
|
private CodeInfo _code;
|
2018-03-18 19:57:56 -04:00
|
|
|
|
private Ld65DbgImporter _symbolProvider;
|
|
|
|
|
private Ld65DbgImporter.FileInfo _selectedFile;
|
|
|
|
|
|
|
|
|
|
protected override bool ShowWithoutActivation
|
|
|
|
|
{
|
|
|
|
|
get { return true; }
|
|
|
|
|
}
|
|
|
|
|
|
2018-07-25 00:41:52 -04:00
|
|
|
|
public frmCodePreviewTooltip(Form parent, int lineIndex, CodeInfo code = null, Ld65DbgImporter symbolProvider = null, Ld65DbgImporter.FileInfo selectedFile = null)
|
2018-03-18 19:57:56 -04:00
|
|
|
|
{
|
2018-06-10 14:35:41 -04:00
|
|
|
|
_parentForm = parent;
|
2018-03-18 19:57:56 -04:00
|
|
|
|
_code = code;
|
|
|
|
|
_symbolProvider = symbolProvider;
|
|
|
|
|
_lineIndex = lineIndex;
|
|
|
|
|
_selectedFile = selectedFile;
|
|
|
|
|
InitializeComponent();
|
2018-06-10 14:35:41 -04:00
|
|
|
|
|
|
|
|
|
this.TopLevel = false;
|
|
|
|
|
this.Parent = _parentForm;
|
|
|
|
|
_parentForm.Controls.Add(this);
|
2018-03-18 19:57:56 -04:00
|
|
|
|
}
|
|
|
|
|
|
2018-06-16 17:19:20 -04:00
|
|
|
|
protected override void OnLoad(EventArgs e)
|
2018-03-18 19:57:56 -04:00
|
|
|
|
{
|
2019-01-27 13:45:57 -05:00
|
|
|
|
panel.SuspendLayout();
|
2018-03-18 19:57:56 -04:00
|
|
|
|
|
|
|
|
|
if(_code != null) {
|
|
|
|
|
_codeViewer = new ctrlDebuggerCode();
|
|
|
|
|
_codeViewer.SymbolProvider = _symbolProvider;
|
|
|
|
|
(_codeViewer as ctrlDebuggerCode).Code = _code;
|
|
|
|
|
} else {
|
|
|
|
|
_codeViewer = new ctrlSourceViewer();
|
|
|
|
|
|
|
|
|
|
//Must set symbol provider before setting CurrentFile
|
|
|
|
|
_codeViewer.SymbolProvider = _symbolProvider;
|
|
|
|
|
|
|
|
|
|
(_codeViewer as ctrlSourceViewer).HideFileDropdown = true;
|
|
|
|
|
(_codeViewer as ctrlSourceViewer).CurrentFile = _selectedFile;
|
|
|
|
|
}
|
|
|
|
|
|
2018-06-13 18:48:27 -04:00
|
|
|
|
_codeViewer.CodeViewer.BaseFont = new Font(ConfigManager.Config.DebugInfo.FontFamily, ConfigManager.Config.DebugInfo.FontSize, ConfigManager.Config.DebugInfo.FontStyle);
|
2018-03-18 19:57:56 -04:00
|
|
|
|
_codeViewer.CodeViewer.HideSelection = true;
|
|
|
|
|
_codeViewer.CodeViewer.ShowScrollbars = false;
|
2018-07-24 23:23:26 -04:00
|
|
|
|
_codeViewer.CodeViewer.ScrollToLineIndex(_lineIndex, eHistoryType.Always, true);
|
2018-06-09 17:54:34 -04:00
|
|
|
|
_codeViewer.SetConfig(ConfigManager.Config.DebugInfo.LeftView, true);
|
2018-03-18 19:57:56 -04:00
|
|
|
|
|
|
|
|
|
Control control = _codeViewer as Control;
|
|
|
|
|
control.Dock = DockStyle.Fill;
|
2019-01-27 13:45:57 -05:00
|
|
|
|
panel.Controls.Add(control);
|
2018-03-18 19:57:56 -04:00
|
|
|
|
|
2019-01-27 13:45:57 -05:00
|
|
|
|
panel.ResumeLayout();
|
2018-06-10 14:35:41 -04:00
|
|
|
|
this.BringToFront();
|
2018-06-16 17:19:20 -04:00
|
|
|
|
base.OnLoad(e);
|
2019-01-27 13:45:57 -05:00
|
|
|
|
|
|
|
|
|
panel.BackColor = ThemeHelper.IsDark ? ThemeHelper.Theme.FormBgColor : SystemColors.Info;
|
2018-03-18 19:57:56 -04:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void ScrollToLineIndex(int lineIndex)
|
|
|
|
|
{
|
|
|
|
|
_codeViewer?.CodeViewer.ScrollToLineIndex(0);
|
|
|
|
|
_codeViewer?.CodeViewer.ScrollToLineIndex(lineIndex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|