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; }
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; }
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); }