//========================================================================================= // windows menu command // //--------------------------------------------------------------------------------- private void windowToolStripMenuItem_DropDownOpening(object sender, EventArgs e) { bool userMode = SystemConfig.IsInUserMode; editToolStripMenuItem.Visible = !userMode; favoritesToolStripMenuItem.Visible = !userMode; historyToolStripMenuItem.Visible = !userMode; ascendantsToolStripMenuItem.Visible = !userMode; optionsToolStripMenuItem.Visible = !userMode; debugInfoToolStripMenuItem.Visible = SystemConfig.IsInDebuggerMode; foreach (ToolStripItem item in windowToolStripMenuItem.DropDownItems) { if (!(item is ToolStripMenuItem)) { continue; } bool check = false; if (item != null && item.Tag != null && (item.Tag is Type)) { Type type = item.Tag as Type; ITaxonControl itc = TaxonControlList.FindTaxonControl(item.Tag as Type); check = itc != null; } (item as ToolStripMenuItem).Checked = check; } }
//------------------------------------------------------------------- public static void RegisterTaxonControl(ITaxonControl _itc) { if (_List.IndexOf(_itc) != -1) { return; } _List.Add(_itc); Console.WriteLine("Register: " + _itc); OnRegisterTaxonControl?.Invoke(null, new TaxonControlEventArgs(_itc)); }
//--------------------------------------------------------------------------------- private void windowToolStripMenuItem_Click(object sender, EventArgs e) { ToolStripMenuItem item = sender as ToolStripMenuItem; Type type = item.Tag as Type; if (type == null) { return; } ITaxonControl itc = TaxonControlList.FindTaxonControl(type); if (itc != null) { if (itc.OwnerContainer == null) { return; } if (itc is TaxonControl) { if ((itc as TaxonControl).CanBeClosed) { itc.OwnerContainer.Remove(itc as TaxonControl, true); TaxonControlList.UnregisterTaxonControl(itc); } else // cannot close, just set focus then { itc.OwnerContainer.SetFocus(itc); } } } else { object o = type.GetConstructor(new Type[] { }).Invoke(new object[] { }); new FormContainer(o as TaxonControl).Show(this); } }
//------------------------------------------------------------------- public static void UnregisterTaxonControl(ITaxonControl _itc) { OnUnregisterTaxonControl?.Invoke(null, new TaxonControlEventArgs(_itc)); _List.Remove(_itc); Console.WriteLine("Unregister: " + _itc); }
//------------------------------------------------------------------- public static void InitTaxonControlOnLoad(ITaxonControl _itc) { Console.WriteLine("Init after load: " + _itc); OnInitTaxonControlAfterLoad?.Invoke(null, new TaxonControlEventArgs(_itc)); }
public TaxonControlEventArgs(ITaxonControl _itc) { ITC = _itc; }