Пример #1
0
        public override void Render(GraphicsDevice device, Renderer Renderer, int X, int Y)
        {
            float textwidth = GFXUtility.StrW(this.Title, this.WM.Renderer.UIFont);
            float offsetX   = 3f;
            float offsetY   = (this.Height - 16f) / 2f;

            Renderer.SetColour(Hot ? HotColour : Colour);
            Renderer.RenderBar(device, X + this.X, Y + this.Y, this.Width, this.Height, 1f, 2);
            Renderer.SetColour(Color.Gray);
            Renderer.RenderSmallText(device, offsetX + X + this.X, offsetY + Y + this.Y, this.Title, Microsoft.Xna.Framework.Color.White, false, true);
            this.Hot = false;
        }
Пример #2
0
        public override void Render(GraphicsDevice device, Renderer Renderer, int X, int Y)
        {
            WM.Renderer.RenderButton(device, X + this.X, Y + this.Y, this.Width, this.Height, this.Hot);
            float textwidth = GFXUtility.StrW(this.Title, this.WM.Renderer.UIFont);
            float offsetX   = (this.Width - textwidth) / 2f;
            float offsetY   = (this.Height - 16f) / 2f;

            if (md)
            {
                textoffset = 1;
            }
            else
            {
                textoffset = 0;
            }
            if (!Hot)
            {
                textoffset = 0;
            }
            Renderer.RenderSmallText(device, offsetX + X + this.X + textoffset, offsetY + Y + this.Y + textoffset, this.Title, Microsoft.Xna.Framework.Color.White, false, true);
            this.Hot = false;
        }
Пример #3
0
        public void AppendText(string Text, bool ContinueLine = false, List <System.Action> LinkAction = null)
        {
            string[] l           = Text.Split(' ');
            string   CurrentWord = "";
            string   CurrentLine = "";
            float    Xoffset     = 0;

            if (ContinueLine)
            {
                CurrentLine = Lines.Last();
                Lines.Remove(CurrentLine);
                Regex  regex           = new Regex(@"\^\w+\s");
                string CurrentLinePure = regex.Replace(CurrentLine, "");
                Xoffset = GFXUtility.StrW(CurrentLinePure + " ", Font);
            }
            else
            {
                LastControlWord = "";
            }
            float      CurrentLength;
            float      spacewidth  = GFXUtility.StrW(" ", Font);
            ActionLink currentlink = null;

            for (int i = 0; i < l.Length; i++)
            {
                CurrentWord = l[i];
                if (CurrentWord == "")
                {
                    continue;
                }
                //control words start with ^ and are never displayed
                if (CurrentWord[0] == '^')
                {
                    CurrentLine    += CurrentWord + " ";
                    LastControlWord = CurrentWord;
                    if (CurrentWord == "^BEGINLINK")
                    {
                        currentlink = new ActionLink();

                        if (LinkAction != null && LinkAction.Count > 0)
                        {
                            currentlink.ClickHandler = LinkAction.First();
                            LinkAction.Remove(LinkAction.First());
                        }
                        currentlink.LinkStart = (int)Xoffset;
                        currentlink.LineID    = this.Lines.Count;
                    }
                    if (CurrentWord == "^ENDLINK")
                    {
                        currentlink.LinkEnd = (int)Xoffset;
                        this.Links.Add(currentlink);
                    }
                    continue;
                }
                CurrentLength = GFXUtility.StrW(CurrentWord + " ", Font);
                if ((Xoffset + CurrentLength) < MaxWidth + spacewidth)
                {
                    CurrentLine += CurrentWord + " ";
                    Xoffset     += CurrentLength;
                }
                else
                {
                    if (LastControlWord == "^BEGINLINK" || (currentlink != null && currentlink.LinkEnd == 0))
                    {
                        CurrentLine        += "^ENDLINK";
                        currentlink.LinkEnd = (int)Xoffset;
                        this.Links.Add(currentlink);
                        System.Action tmp = currentlink.ClickHandler;
                        currentlink = new ActionLink();
                        currentlink.ClickHandler = tmp;
                        currentlink.LinkStart    = 0;
                        currentlink.LineID       = this.Lines.Count + 1;
                    }
                    AddLine(CurrentLine);
                    CurrentLine = "";
                    if (LastControlWord != "")
                    {
                        CurrentLine += LastControlWord + " ";
                    }
                    CurrentLine += CurrentWord + " ";
                    Xoffset      = CurrentLength;
                }
            }
            AddLine(CurrentLine);
        }