public void OnTabClosed() { if (ActiveDialog != null) { ActiveDialog.OnTabClosed(); } if (Journal != null) { Journal.OnTabClosed(); } TabClosed?.Invoke(this, EventArgs.Empty); }
protected bool CloseDialog(CloseSource source, bool AskSave) { if (TabParent.CheckClosingSlaveTabs(this as ITdiTab)) { return(false); } if (ActiveDialog is ITdiDialog dlg) { if (AskSave && dlg.HasChanges) { string Message = "Объект изменён. Сохранить изменения перед закрытием?"; MessageDialog md = new MessageDialog((Window)this.Toplevel, DialogFlags.Modal, MessageType.Question, ButtonsType.YesNo, Message); md.AddButton("Отмена", ResponseType.Cancel); int result = md.Run(); md.Destroy(); if (result == (int)ResponseType.Cancel || result == (int)ResponseType.DeleteEvent) { return(false); } if (result == (int)ResponseType.Yes) { if (!dlg.Save()) { logger.Warn("Объект не сохранён. Отмена закрытия..."); return(false); } } } } var oldTab = ActiveDialog; ActiveDialog.OnTabClosed(); ActiveDialog = null; activeGlgWidget.Destroy(); (TabParent as TdiNotebook)?.OnSliderTabClosed(this, oldTab, source); OnSliderTabChanged(); return(true); }