using Server.Gumps; using Server.Network; namespace Server.Items { public class MetallicHuePicker : Gump { private CustomHuePickerCallback m_Callback; private Mobile m_From; private T m_State; public MetallicHuePicker(Mobile from, CustomHuePickerCallback callback, T state) : base(450, 450) { m_From = from; m_Callback = callback; m_State = state; Render(); } public void Render() { AddPage(0); AddBackground(0, 0, 450, 450, 0x13BE); AddBackground(10, 10, 430, 430, 0xBB8); AddHtmlLocalized(55, 400, 200, 25, 1011036); // OKAY AddButton(20, 400, 4005, 4007, 1); AddButton(200, 400, 4005, 4007, 2); AddLabel(235, 400, 0, "DEFAULT"); AddHtmlLocalized(55, 25, 200, 25, 1150063); // Base/Shadow Color AddHtmlLocalized(260, 25, 200, 25, 1150064); // Highlight Color for (int row = 0; row < 13; row++) { AddButton(30, 65 + row * 25, 0x1467, 0x1468, row + 1, GumpButtonType.Page, row + 1); AddItem(50, 65 + row * 25, 0x1412, 2501 + row * 12 + (row == 12 ? 6 : 0)); } for (int page = 1; page < 14; page++) { AddPage(page); for (int row = 0; row < 12; row++) { int hue = 2501 + (page == 13 ? 6 : 0) + row + 12 * (page - 1); /* OSI just had to skip 6 unused hues, didnt they */ AddRadio(260, 65 + row * 25, 0xd2, 0xd3, false, hue); AddItem(280, 65 + row * 25, 0x1412, hue); } } } public override void OnResponse(NetState sender, RelayInfo info) { switch (info.ButtonID) { case 1: // Okay { if (info.Switches.Length > 0) m_Callback(m_From, m_State, info.Switches[0]); break; } case 2: // Default { m_Callback(m_From, m_State, 0); break; } } } } }