private void PopulateWindowMenu ()
{
if (mdilist) {
if (mdilist_items == null) {
mdilist_items = new Hashtable ();
mdilist_forms = new Hashtable ();
}
do {
MainMenu main = GetMainMenu ();
if (main == null || main.GetForm () == null)
break;
Form form = main.GetForm ();
//mdicontainer = form.MdiContainer;
// Remove closed forms
MenuItem[] items = new MenuItem[mdilist_items.Count];
mdilist_items.Keys.CopyTo (items, 0);
foreach (MenuItem item in items) {
Form mdichild = (Form) mdilist_items [item];
}
// Add new forms and update state for existing forms.
/*
for (int i = 0; i < mdicontainer.mdi_child_list.Count; i++) {
Form mdichild = (Form)mdicontainer.mdi_child_list[i];
MenuItem item;
if (mdilist_forms.Contains (mdichild)) {
item = (MenuItem) mdilist_forms [mdichild];
} else {
item = new MenuItem ();
item.is_window_menu_item = true;
item.Click += new EventHandler (MdiWindowClickHandler);
mdilist_items [item] = mdichild;
mdilist_forms [mdichild] = item;
MenuItems.AddNoEvents (item);
}
item.Visible = mdichild.Visible;
item.Text = "&" + (i + 1).ToString () + " " + mdichild.Text;
item.Checked = form.ActiveMdiChild == mdichild;
}
*/
} while (false);
} else {
// Remove all forms
if (mdilist_items != null) {
foreach (MenuItem item in mdilist_items.Values) {
MenuItems.Remove (item);
}
mdilist_forms.Clear ();
mdilist_items.Clear ();
}
}
}