replaced UpdateWindow with UpdateWindowMenu

git-svn-id: svn://svn.code.sf.net/p/processhacker/code@1763 21ef857c-d57f-4fe0-8362-d861dc6d29cd
This commit is contained in:
wj32
2009-08-29 01:55:47 +00:00
parent 0e62b511ae
commit 40ceca283f
5 changed files with 17 additions and 67 deletions
+13 -33
View File
@@ -1165,44 +1165,24 @@ namespace ProcessHacker
f.Activate();
}
public static void UpdateWindow(Form f)
public static void UpdateWindowMenu(Menu windowMenuItem, Form f)
{
if (f.InvokeRequired)
{
f.BeginInvoke(new UpdateWindowAction(UpdateWindow), f);
WeakReference<Form> fRef = new WeakReference<Form>(f);
return;
}
windowMenuItem.MenuItems.DisposeAndClear();
MenuItem windowMenuItem = (MenuItem)f.GetType().GetProperty("WindowMenuItem").GetValue(f, null);
wyDay.Controls.VistaMenu vistaMenu =
(wyDay.Controls.VistaMenu)f.GetType().GetProperty("VistaMenu").GetValue(f, null);
MenuItem item;
lock (windowMenuItem)
{
WeakReference<Form> fRef = new WeakReference<Form>(f);
item = new MenuItem("&Always On Top");
item.Tag = fRef;
item.Click += new EventHandler(windowAlwaysOnTopItemClicked);
item.Checked = f.TopMost;
windowMenuItem.MenuItems.Add(item);
foreach (MenuItem menuItem in windowMenuItem.MenuItems)
{
vistaMenu.SetImage(menuItem, null);
menuItem.Tag = null;
}
windowMenuItem.MenuItems.DisposeAndClear();
item = new MenuItem("&Always On Top");
item.Tag = fRef;
item.Click += new EventHandler(windowAlwaysOnTopItemClicked);
item.Checked = f.TopMost;
windowMenuItem.MenuItems.Add(item);
item = new MenuItem("&Close");
item.Tag = fRef;
item.Click += new EventHandler(windowCloseItemClicked);
windowMenuItem.MenuItems.Add(item);
vistaMenu.SetImage(item, global::ProcessHacker.Properties.Resources.application_delete);
}
item = new MenuItem("&Close");
item.Tag = fRef;
item.Click += new EventHandler(windowCloseItemClicked);
windowMenuItem.MenuItems.Add(item);
}
public static void AddEscapeToClose(this Form f)
@@ -1253,7 +1233,7 @@ namespace ProcessHacker
f.Invoke(new MethodInvoker(delegate { f.TopMost = !f.TopMost; }));
Program.UpdateWindow(f);
UpdateWindowMenu(((MenuItem)sender).Parent, f);
}
private static void windowCloseItemClicked(object sender, EventArgs e)