public ContextMenuGump(ContextMenuData data) : base(0, 0) { m_Data = data; IResourceProvider provider = ServiceRegistry.GetService<IResourceProvider>(); AFont font = (AFont)provider.GetUnicodeFont(1); m_Background = (ResizePic)AddControl(new ResizePic(this, 0, 0, 0x0A3C, 50, font.Height * m_Data.Count + 20)); StringBuilder htmlContextItems = new StringBuilder(); for (int i = 0; i < m_Data.Count; i++) { htmlContextItems.Append(string.Format("<a href='{0}' color='#DDD' hovercolor='#FFF' activecolor='#BBB' style='text-decoration:none;'>{1}</a><br/>", m_Data[i].ResponseCode, m_Data[i].Caption)); } m_MenuItems = (HtmlGumpling)AddControl(new HtmlGumpling(this, 10, 10, 200, font.Height * m_Data.Count, 0, 0, htmlContextItems.ToString())); }
public ContextMenuInfo(PacketReader reader) { reader.ReadByte(); // unknown, always 0x00 int subcommand = reader.ReadByte(); // 0x01 for 2D, 0x02 for KR Menu = new ContextMenuData(reader.ReadInt32()); int contextMenuChoiceCount = reader.ReadByte(); for (int i = 0; i < contextMenuChoiceCount; i++) { int iUniqueID = reader.ReadUInt16(); int iClilocID = reader.ReadUInt16() + 3000000; int iFlags = reader.ReadUInt16(); // 0x00=enabled, 0x01=disabled, 0x02=arrow, 0x20 = color int iColor = 0; if ((iFlags & 0x20) == 0x20) { iColor = reader.ReadUInt16(); } Menu.AddItem(iUniqueID, iClilocID, iFlags, iColor); } }