public ShardPollGump(Mobile from, ShardPoller poller, bool editing, Queue <ShardPoller> polls) : base(50, 50)
{
m_From = from;
m_Poller = poller;
m_Editing = editing;
m_Polls = polls;
Closable = false;
AddPage(0);
int totalVotes = 0;
int totalOptionHeight = 0;
for (int i = 0; i < poller.Options.Length; ++i)
{
totalVotes += poller.Options[i].Votes;
totalOptionHeight += poller.Options[i].ComputeHeight() + 5;
}
bool isViewingResults = editing && poller.Active;
bool isCompleted = totalVotes > 0 && !poller.Active;
if (editing && !isViewingResults)
{
totalOptionHeight += 35;
}
int height = 115 + totalOptionHeight;
AddBackground(1, 1, 398, height - 2, 3600);
AddAlphaRegion(16, 15, 369, height - 31);
AddItem(308, 30, 0x1E5E);
string title;
if (editing)
{
title = (isCompleted ? "Poll Completed" : "Poll Editor");
}
else
{
title = "Shard Poll";
}
AddHtml(22, 22, 294, 20, Color(Center(title), LabelColor32), false, false);
if (editing)
{
AddHtml(22, 22, 294, 20, Color(String.Format("{0} total", totalVotes), LabelColor32), false, false);
AddButton(287, 23, 0x2622, 0x2623, 2, GumpButtonType.Reply, 0);
}
AddHtml(22, 50, 294, 40, Color(poller.Title, 0x99CC66), false, false);
AddImageTiled(32, 88, 264, 1, 9107);
AddImageTiled(42, 90, 264, 1, 9157);
int y = 100;
for (int i = 0; i < poller.Options.Length; ++i)
{
ShardPollOption option = poller.Options[i];
string text = option.Title;
if (editing && totalVotes > 0)
{
double perc = option.Votes / (double)totalVotes;
text = String.Format("[{1}: {2}%] {0}", text, option.Votes, (int)(perc * 100));
}
int optHeight = option.ComputeHeight();
y += optHeight / 2;
if (isViewingResults)
{
AddImage(24, y - 15, 0x25FE);
}
else
{
AddRadio(24, y - 15, 0x25F9, 0x25FC, false, 1 + i);
}
AddHtml(60, y - (9 * option.LineBreaks), 250, 18 * option.LineBreaks, Color(text, LabelColor32), false, false);
y += optHeight / 2;
y += 5;
}
if (editing && !isViewingResults)
{
AddRadio(24, y + 15 - 15, 0x25F9, 0x25FC, false, 1 + poller.Options.Length);
AddHtml(60, y + 15 - 9, 250, 18, Color("Create new option.", 0x99CC66), false, false);
}
AddButton(314, height - 73, 247, 248, 1, GumpButtonType.Reply, 0);
AddButton(314, height - 47, 242, 241, 0, GumpButtonType.Reply, 0);
}