public virtual void AddHyperLinkBackingButton(Gump gump) { if (NewIdMethodInfo == null) { Console.WriteLine("Can't back hyperlink, underlying server core has changed."); return; } int displayTextLengthInPixels = LabelWidthInPixels; int x = Location.X; int y = Location.Y + 1; for (int gumpIdx = 0; gumpIdx < HYPERLINK_BACK_GUMP_WIDTHS.Length; ++gumpIdx) { int gumpWidth = HYPERLINK_BACK_GUMP_WIDTHS[gumpIdx]; int gumpId = HYPERLINK_BACK_GUMP_IDS[gumpIdx]; bool continueLooping = true; while (displayTextLengthInPixels - gumpWidth >= 0) { gump.AddGumpEntryFirst(new GumpButton(x, y, gumpId, gumpId, (int)NewIdMethodInfo.Invoke(gump, new object[] { }), GumpButtonType.Reply, CallbackParam, Callback)); displayTextLengthInPixels -= gumpWidth; if (displayTextLengthInPixels >= 0 && displayTextLengthInPixels - gumpWidth < 0) { gump.AddGumpEntryFirst(new GumpButton(x + displayTextLengthInPixels, y, gumpId, gumpId, (int)NewIdMethodInfo.Invoke(gump, new object[] { }), GumpButtonType.Reply, CallbackParam, Callback, "")); x += displayTextLengthInPixels; displayTextLengthInPixels = 0; continueLooping = false; } x += gumpWidth; } if (!continueLooping) { break; } } }
public virtual void AddHyperLinkBackingButton(Gump gump) { if (NewIdMethodInfo == null) { Console.WriteLine("Can't back hyperlink, underlying server core has changed."); return; } int displayTextLengthInPixels = LabelWidthInPixels; int x = Location.X; int y = Location.Y + 1; for (int gumpIdx = 0; gumpIdx < HYPERLINK_BACK_GUMP_WIDTHS.Length; ++gumpIdx) { int gumpWidth = HYPERLINK_BACK_GUMP_WIDTHS[gumpIdx]; int gumpId = HYPERLINK_BACK_GUMP_IDS[gumpIdx]; bool continueLooping = true; while (displayTextLengthInPixels - gumpWidth >= 0) { gump.AddGumpEntryFirst(new GumpButton(x, y, gumpId, gumpId, (int)NewIdMethodInfo.Invoke(gump, new object[] { }), GumpButtonType.Reply, CallbackParam, Callback)); displayTextLengthInPixels -= gumpWidth; if (displayTextLengthInPixels >= 0 && displayTextLengthInPixels - gumpWidth < 0) { gump.AddGumpEntryFirst(new GumpButton(x + displayTextLengthInPixels, y, gumpId, gumpId, (int)NewIdMethodInfo.Invoke(gump, new object[] { }), GumpButtonType.Reply, CallbackParam, Callback, "")); x += displayTextLengthInPixels; displayTextLengthInPixels = 0; continueLooping = false; } x += gumpWidth; } if (!continueLooping) { break; } } }