Updated AMS marker feats. Removed arcane & divine marker feats. Updated Dread Necromancer for epic progression. Updated weapon baseitem models. Updated new weapons for crafting & npc equip. Updated prefix. Updated release archive.
202 lines
4.9 KiB
C#
202 lines
4.9 KiB
C#
//
|
|
// This code was pulled from www.developerfusion.com
|
|
//
|
|
|
|
using System;
|
|
using System.Runtime.InteropServices;
|
|
using System.Windows.Forms;
|
|
using System.Windows;
|
|
using System.Collections;
|
|
|
|
namespace System
|
|
{
|
|
public class SystemMenu : ArrayList
|
|
{
|
|
|
|
public const int BYPOSITION = 0x400;
|
|
public const int REMOVE = 0x1000;
|
|
public const int CHECKED = 0x8;
|
|
public const int APPEND = 0x100;
|
|
public const int SEPERATOR = 0x800;
|
|
public const int GRAYED = 0x1;
|
|
public const int DISABLED = 0x2;
|
|
public const int BITMAP = 0x4;
|
|
public const int RADIOCHECK = 0x200;
|
|
public const int BREAK = 0x40;
|
|
public const int BARBREAK = 0x20;
|
|
|
|
[DllImport("user32.dll")]
|
|
private static extern int GetSystemMenu(int HWND);
|
|
[DllImport("user32.dll")]
|
|
private static extern int AppendMenu(int MenuHandle, int Props, int FlagsW, string text);
|
|
[DllImport("user32.dll")]
|
|
private static extern int RemoveMenu(int MenuHandle, int pos, int Flags);
|
|
[DllImport("user32.dll")]
|
|
private static extern int GetMenuItemID(int Menuhandle, int pos);
|
|
[DllImport("user32.dll")]
|
|
private static extern int ModifyMenu(int MHandle, int pos,int flags,int newPos,string text);
|
|
|
|
private Form form;
|
|
private int SystemMenuHandle;
|
|
|
|
public int Handle
|
|
{
|
|
get { return SystemMenuHandle; }
|
|
}
|
|
|
|
public SystemMenu(Form f) : base(0)
|
|
{
|
|
form = f;
|
|
SystemMenuHandle = GetSystemMenu(form.Handle.ToInt32());
|
|
}
|
|
|
|
public void Add(SystemMenuItem MI)
|
|
{
|
|
base.Add(MI);
|
|
if(MI.Text == "-")
|
|
{
|
|
AppendMenu(SystemMenuHandle,SystemMenu.SEPERATOR,MI.MenuID,null);
|
|
}
|
|
else
|
|
{
|
|
AppendMenu(SystemMenuHandle,MI.Flags,MI.MenuID,MI.Text);
|
|
}
|
|
}
|
|
|
|
public void Remove(SystemMenuItem MI)
|
|
{
|
|
base.Remove(MI);
|
|
RemoveMenu(SystemMenuHandle, MI.MenuID, 0);
|
|
}
|
|
|
|
public void ModifyMenuPosition(int pos, int flags, string text)
|
|
{
|
|
ModifyMenu(this.Handle, pos, flags|SystemMenu.BYPOSITION, pos, text);
|
|
}
|
|
|
|
public new SystemMenuItem this[int index]
|
|
{
|
|
get { return (SystemMenuItem)base[index]; }
|
|
set
|
|
{
|
|
if(value!=null)
|
|
{
|
|
SystemMenuItem MI = (SystemMenuItem)value;
|
|
ModifyMenu(this.Handle, this[index].MenuID, MI.Flags, MI.MenuID, MI.Text); }
|
|
base[index] = (object)value;
|
|
}
|
|
}
|
|
|
|
}// end of class SystemMenu
|
|
|
|
public class SystemMenuItem : MenuItem
|
|
{
|
|
[DllImport("user32.dll")]
|
|
private static extern int GetSystemMenu(int HWND);
|
|
[DllImport("user32.dll")]
|
|
private static extern int AppendMenu(int MenuHandle, int Props, int FlagsW, string text);
|
|
[DllImport("user32.dll")]
|
|
private static extern int RemoveMenu(int MenuHandle, int pos, int Flags);
|
|
[DllImport("user32.dll")]
|
|
private static extern int GetMenuItemID(int Menuhandle, int pos);
|
|
[DllImport("user32.dll")]
|
|
private static extern int ModifyMenu(int MHandle, int pos,int flags,int newPos,string text);
|
|
[DllImport("user32.dll")]
|
|
private static extern int CheckMenuItem(int HMenu, int pos, int flags);
|
|
|
|
private int flags = 0;
|
|
public int Flags
|
|
{
|
|
get { return flags; }
|
|
}
|
|
|
|
private SystemMenu menu;
|
|
public SystemMenuItem(string text, SystemMenu SM)
|
|
{
|
|
base.Text = text;
|
|
menu = SM;
|
|
if(text == "-")
|
|
this.flags = SystemMenu.SEPERATOR;
|
|
}
|
|
|
|
public new int MenuID
|
|
{
|
|
get { return base.MenuID; }
|
|
}
|
|
|
|
public SystemMenuItem CloneMenu(int should_be_null)
|
|
{
|
|
should_be_null = 0;
|
|
return new SystemMenuItem(this.Text, menu);
|
|
}
|
|
|
|
public new bool Checked
|
|
{
|
|
get { return base.Checked; }
|
|
set
|
|
{
|
|
base.Checked = value;
|
|
if(base.Checked)
|
|
{
|
|
flags = (flags|SystemMenu.CHECKED);
|
|
CheckMenuItem(menu.Handle, this.MenuID, flags);
|
|
}
|
|
else
|
|
{
|
|
flags = (flags&(~SystemMenu.CHECKED));
|
|
CheckMenuItem(menu.Handle, this.MenuID, flags);
|
|
}
|
|
}
|
|
}
|
|
|
|
public new string Text
|
|
{
|
|
get { return base.Text; }
|
|
set
|
|
{
|
|
base.Text = value;
|
|
ModifyMenu(menu.Handle, this.MenuID, this.flags, this.MenuID, base.Text);
|
|
}
|
|
}
|
|
|
|
public new bool Break
|
|
{
|
|
get { return base.Break; }
|
|
set
|
|
{
|
|
base.Break = value;
|
|
if(base.Break)
|
|
{
|
|
flags = flags|SystemMenu.BREAK;
|
|
ModifyMenu(menu.Handle, this.MenuID, this.flags, this.MenuID, base.Text);
|
|
}
|
|
else
|
|
{
|
|
flags = flags&(~SystemMenu.BREAK);
|
|
ModifyMenu(menu.Handle, this.MenuID, this.flags, this.MenuID, base.Text);
|
|
}
|
|
}
|
|
}
|
|
|
|
public new bool BarBreak
|
|
{
|
|
get { return base.BarBreak; }
|
|
set
|
|
{
|
|
base.BarBreak = value;
|
|
if(base.BarBreak)
|
|
{
|
|
flags = flags|SystemMenu.BARBREAK;
|
|
ModifyMenu(menu.Handle, this.MenuID, this.flags, this.MenuID, base.Text);
|
|
}
|
|
else
|
|
{
|
|
flags = flags&(~SystemMenu.BARBREAK);
|
|
ModifyMenu(menu.Handle, this.MenuID, this.flags, this.MenuID, base.Text);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
}//end of class SystemMenuItem
|
|
} |