public FileViewer() { TreatAllFilesAsText = false; ShowEntireFile = false; NumberOfContextLines = AppSettings.NumberOfContextLines; InitializeComponent(); InitializeComplete(); UICommandsSourceSet += OnUICommandsSourceSet; _internalFileViewer = new FileViewerInternal(() => Module); _internalFileViewer.MouseEnter += (_, e) => OnMouseEnter(e); _internalFileViewer.MouseLeave += (_, e) => OnMouseLeave(e); _internalFileViewer.MouseMove += (_, e) => OnMouseMove(e); _internalFileViewer.KeyUp += (_, e) => OnKeyUp(e); var internalFileViewerControl = (Control)_internalFileViewer; internalFileViewerControl.Dock = DockStyle.Fill; Controls.Add(internalFileViewerControl); _async = new AsyncLoader(); _async.LoadingError += (_, e) => { if (!IsDisposed) { ResetForText(null); _internalFileViewer.SetText("Unsupported file: \n\n" + e.Exception.ToString(), openWithDifftool: null /* not applicable */); TextLoaded?.Invoke(this, null); } }; IgnoreWhitespaceChanges = AppSettings.IgnoreWhitespaceChanges; ignoreWhiteSpaces.Checked = IgnoreWhitespaceChanges; ignoreWhiteSpaces.Image = Images.WhitespaceIgnore; ignoreWhitespaceChangesToolStripMenuItem.Checked = IgnoreWhitespaceChanges; ignoreWhitespaceChangesToolStripMenuItem.Image = ignoreWhiteSpaces.Image; ignoreAllWhitespaces.Checked = AppSettings.IgnoreAllWhitespaceChanges; ignoreAllWhitespaces.Image = Images.WhitespaceIgnoreAll; ignoreAllWhitespaceChangesToolStripMenuItem.Checked = ignoreAllWhitespaces.Checked; ignoreAllWhitespaceChangesToolStripMenuItem.Image = ignoreAllWhitespaces.Image; ShowEntireFile = AppSettings.ShowEntireFile; showEntireFileButton.Checked = ShowEntireFile; showEntireFileToolStripMenuItem.Checked = ShowEntireFile; SetStateOfContextLinesButtons(); showNonPrintChars.Checked = AppSettings.ShowNonPrintingChars; showNonprintableCharactersToolStripMenuItem.Checked = AppSettings.ShowNonPrintingChars; ToggleNonPrintingChars(AppSettings.ShowNonPrintingChars); IsReadOnly = true; var encodingList = AppSettings.AvailableEncodings.Values.Select(e => e.EncodingName).ToList(); var defaultEncodingName = Encoding.Default.EncodingName; for (int i = 0; i < encodingList.Count; i++) { if (string.Equals(encodingList[i], defaultEncodingName, StringComparison.OrdinalIgnoreCase)) { encodingList[i] = "Default (" + Encoding.Default.HeaderName + ")"; break; } } encodingToolStripComboBox.Items.AddRange(encodingList.ToArray <object>()); _internalFileViewer.MouseMove += (_, e) => { if (_currentViewIsPatch && !fileviewerToolbar.Visible) { fileviewerToolbar.Visible = true; fileviewerToolbar.Location = new Point(Width - fileviewerToolbar.Width - 40, 0); fileviewerToolbar.BringToFront(); } }; _internalFileViewer.MouseLeave += (_, e) => { if (GetChildAtPoint(PointToClient(MousePosition)) != fileviewerToolbar && fileviewerToolbar != null) { fileviewerToolbar.Visible = false; } }; _internalFileViewer.TextChanged += (sender, e) => { if (_patchHighlighting) { _internalFileViewer.AddPatchHighlighting(); } TextChanged?.Invoke(sender, e); }; _internalFileViewer.ScrollPosChanged += (sender, e) => ScrollPosChanged?.Invoke(sender, e); _internalFileViewer.SelectedLineChanged += (sender, e) => SelectedLineChanged?.Invoke(sender, e); _internalFileViewer.DoubleClick += (_, args) => RequestDiffView?.Invoke(this, EventArgs.Empty); HotkeysEnabled = true; if (!IsDesignModeActive && ContextMenuStrip == null) { ContextMenuStrip = contextMenu; } contextMenu.Opening += (sender, e) => { copyToolStripMenuItem.Enabled = _internalFileViewer.GetSelectionLength() > 0; ContextMenuOpening?.Invoke(sender, e); }; _fullPathResolver = new FullPathResolver(() => Module.WorkingDir); }
public FileViewer() { TreatAllFilesAsText = false; ShowEntireFile = false; NumberOfContextLines = AppSettings.NumberOfContextLines; InitializeComponent(); InitializeComplete(); UICommandsSourceSet += OnUICommandsSourceSet; internalFileViewer.MouseEnter += (_, e) => OnMouseEnter(e); internalFileViewer.MouseLeave += (_, e) => OnMouseLeave(e); internalFileViewer.MouseMove += (_, e) => OnMouseMove(e); internalFileViewer.KeyUp += (_, e) => OnKeyUp(e); _async = new AsyncLoader(); _async.LoadingError += (_, e) => { if (!IsDisposed) { ResetForText(null); internalFileViewer.SetText("Unsupported file: \n\n" + e.Exception.ToString(), openWithDifftool: null /* not applicable */); TextLoaded?.Invoke(this, null); } }; IgnoreWhitespaceChanges = AppSettings.IgnoreWhitespaceChanges; ignoreWhiteSpaces.Checked = IgnoreWhitespaceChanges; ignoreWhiteSpaces.Image = Images.WhitespaceIgnore; ignoreWhitespaceChangesToolStripMenuItem.Checked = IgnoreWhitespaceChanges; ignoreWhitespaceChangesToolStripMenuItem.Image = ignoreWhiteSpaces.Image; ignoreAllWhitespaces.Checked = AppSettings.IgnoreAllWhitespaceChanges; ignoreAllWhitespaces.Image = Images.WhitespaceIgnoreAll; ignoreAllWhitespaceChangesToolStripMenuItem.Checked = ignoreAllWhitespaces.Checked; ignoreAllWhitespaceChangesToolStripMenuItem.Image = ignoreAllWhitespaces.Image; ShowEntireFile = AppSettings.ShowEntireFile; showEntireFileButton.Checked = ShowEntireFile; showEntireFileToolStripMenuItem.Checked = ShowEntireFile; SetStateOfContextLinesButtons(); showNonPrintChars.Checked = AppSettings.ShowNonPrintingChars; showNonprintableCharactersToolStripMenuItem.Checked = AppSettings.ShowNonPrintingChars; ToggleNonPrintingChars(AppSettings.ShowNonPrintingChars); IsReadOnly = true; internalFileViewer.MouseMove += (_, e) => { if (_currentViewIsPatch && !fileviewerToolbar.Visible) { fileviewerToolbar.Visible = true; fileviewerToolbar.Location = new Point(Width - fileviewerToolbar.Width - 40, 0); fileviewerToolbar.BringToFront(); } }; internalFileViewer.MouseLeave += (_, e) => { if (GetChildAtPoint(PointToClient(MousePosition)) != fileviewerToolbar && fileviewerToolbar != null) { fileviewerToolbar.Visible = false; } }; internalFileViewer.TextChanged += (sender, e) => { if (_patchHighlighting) { internalFileViewer.AddPatchHighlighting(); } TextChanged?.Invoke(sender, e); }; internalFileViewer.ScrollPosChanged += (sender, e) => ScrollPosChanged?.Invoke(sender, e); internalFileViewer.SelectedLineChanged += (sender, e) => SelectedLineChanged?.Invoke(sender, e); internalFileViewer.DoubleClick += (_, args) => RequestDiffView?.Invoke(this, EventArgs.Empty); HotkeysEnabled = true; if (!IsDesignModeActive && ContextMenuStrip == null) { ContextMenuStrip = contextMenu; } contextMenu.Opening += (sender, e) => { copyToolStripMenuItem.Enabled = internalFileViewer.GetSelectionLength() > 0; ContextMenuOpening?.Invoke(sender, e); }; _fullPathResolver = new FullPathResolver(() => Module.WorkingDir); }
protected virtual void OnRequestDiffView(EventArgs args) { RequestDiffView?.Invoke(this, args); }