diff --git a/CSharp/Libraries/UniversalEditor.UserInterface/Engine.cs b/CSharp/Libraries/UniversalEditor.UserInterface/Engine.cs index 2469192b..67090aa5 100644 --- a/CSharp/Libraries/UniversalEditor.UserInterface/Engine.cs +++ b/CSharp/Libraries/UniversalEditor.UserInterface/Engine.cs @@ -21,6 +21,7 @@ using MBS.Framework.UserInterface.Input.Keyboard; using MBS.Framework.Drawing; using UniversalEditor.UserInterface.Panels; using MBS.Framework.UserInterface.Controls; +using MBS.Framework.UserInterface.Controls.Docking; namespace UniversalEditor.UserInterface { @@ -535,6 +536,25 @@ namespace UniversalEditor.UserInterface #endregion + Application.AttachCommandEventHandler("DockingContainerContextMenu_Close", delegate (object sender, EventArgs e) + { + CommandEventArgs ce = (e as CommandEventArgs); + if (ce != null) + { + DockingWindow dw = ce.GetNamedParameter("Item"); + LastWindow?.CloseFile(dw); + } + }); + Application.AttachCommandEventHandler("DockingContainerContextMenu_CloseAll", delegate (object sender, EventArgs e) + { + LastWindow?.CloseWindow(); + }); + Application.AttachCommandEventHandler("DockingContainerContextMenu_CloseAllButThis", delegate (object sender, EventArgs e) + { + MessageDialog.ShowDialog("Not implemented ... yet", "Error", MessageDialogButtons.OK, MessageDialogIcon.Error); + }); + + #region Dynamic Commands #region View #region Panels diff --git a/CSharp/Libraries/UniversalEditor.UserInterface/IHostApplicationWindow.cs b/CSharp/Libraries/UniversalEditor.UserInterface/IHostApplicationWindow.cs index 29df0843..3575932d 100644 --- a/CSharp/Libraries/UniversalEditor.UserInterface/IHostApplicationWindow.cs +++ b/CSharp/Libraries/UniversalEditor.UserInterface/IHostApplicationWindow.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using MBS.Framework.UserInterface; +using MBS.Framework.UserInterface.Controls.Docking; namespace UniversalEditor.UserInterface { @@ -35,7 +36,7 @@ namespace UniversalEditor.UserInterface /// The index of the perspective to switch to. void SwitchPerspective(int index); - void CloseFile(); + void CloseFile(DockingWindow dw = null); void CloseProject(); void CloseWindow(); diff --git a/CSharp/Libraries/UniversalEditor.UserInterface/MainWindow.cs b/CSharp/Libraries/UniversalEditor.UserInterface/MainWindow.cs index 09d4c686..aaba3df0 100644 --- a/CSharp/Libraries/UniversalEditor.UserInterface/MainWindow.cs +++ b/CSharp/Libraries/UniversalEditor.UserInterface/MainWindow.cs @@ -1029,16 +1029,18 @@ namespace UniversalEditor.UserInterface } private System.Collections.Generic.List Windows = new System.Collections.Generic.List(); - public void CloseFile() + public void CloseFile(DockingWindow dw = null) { - DockingWindow dw = (dckContainer.CurrentItem as DockingWindow); + if (dw == null) + dw = (dckContainer.CurrentItem as DockingWindow); + EditorPage ep = (dw?.ChildControl as EditorPage); if (ep != null && !ConfirmExit(ep)) { return; } - dckContainer.Items.Remove(dckContainer.CurrentItem); + dckContainer.Items.Remove(dw); documentWindowCount--; if (documentWindowCount == 0)