public virtual void AddHyperLinkBackingButton(SuperGump gump) { var displayTextLengthInPixels = LabelWidthInPixels; var x = Location.X; var y = Location.Y + 1; for (var gumpIdx = 0; gumpIdx < HYPERLINK_BACK_GUMP_WIDTHS.Length; ++gumpIdx) { var gumpWidth = HYPERLINK_BACK_GUMP_WIDTHS[gumpIdx]; var gumpId = HYPERLINK_BACK_GUMP_IDS[gumpIdx]; var continueLooping = true; while (displayTextLengthInPixels - gumpWidth >= 0) { gump.AddButton(x, y, gumpId, gumpId, b => Callback(b, CallbackParam)); gump.MoveLastAddedToBack(); displayTextLengthInPixels -= gumpWidth; if (displayTextLengthInPixels >= 0 && displayTextLengthInPixels - gumpWidth < 0) { gump.AddButton(x + displayTextLengthInPixels, y, gumpId, gumpId, b => Callback(b, CallbackParam)); gump.MoveLastAddedToBack(); x += displayTextLengthInPixels; displayTextLengthInPixels = 0; continueLooping = false; } x += gumpWidth; } if (!continueLooping) { break; } } }