예제 #1
0
        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;
                }
            }
        }