Example #1
0
        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;
                }
            }
        }
Example #2
0
        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;
                }
            }
        }