static public int get_ignoreWhiteSpace(IntPtr l) { try { FairyGUI.Utils.HtmlParseOptions self = (FairyGUI.Utils.HtmlParseOptions)checkSelf(l); pushValue(l, true); pushValue(l, self.ignoreWhiteSpace); return(2); } catch (Exception e) { return(error(l, e)); } }
static public int get_linkBgColor(IntPtr l) { try { FairyGUI.Utils.HtmlParseOptions self = (FairyGUI.Utils.HtmlParseOptions)checkSelf(l); pushValue(l, true); pushValue(l, self.linkBgColor); return(2); } catch (Exception e) { return(error(l, e)); } }
static public int constructor(IntPtr l) { try { FairyGUI.Utils.HtmlParseOptions o; o = new FairyGUI.Utils.HtmlParseOptions(); pushValue(l, true); pushValue(l, o); return(2); } catch (Exception e) { return(error(l, e)); } }
static public int set_linkBgColor(IntPtr l) { try { FairyGUI.Utils.HtmlParseOptions self = (FairyGUI.Utils.HtmlParseOptions)checkSelf(l); UnityEngine.Color v; checkType(l, 2, out v); self.linkBgColor = v; pushValue(l, true); return(1); } catch (Exception e) { return(error(l, e)); } }
static public int set_linkUnderline(IntPtr l) { try { FairyGUI.Utils.HtmlParseOptions self = (FairyGUI.Utils.HtmlParseOptions)checkSelf(l); System.Boolean v; checkType(l, 2, out v); self.linkUnderline = v; pushValue(l, true); return(1); } catch (Exception e) { return(error(l, e)); } }
public RichTextField() { gameObject.name = "RichTextField"; this.opaque = true; htmlPageContext = HtmlPageContext.inst; htmlParseOptions = new HtmlParseOptions(); this.textField = new TextField(); textField.EnableRichSupport(this); AddChild(textField); _refreshObjectsDelegate = InternalRefreshObjects; }
public RichTextField() { CreateGameObject("RichTextField"); htmlPageContext = HtmlPageContext.inst; htmlParseOptions = new HtmlParseOptions(); _textField = new TextField(); _textField._optimizeNotTouchable = false; _textField._richTextField = this; AddChild(_textField); graphics = _textField.graphics; onClick.AddCapture(__click); }
virtual public void Parse(string aSource, TextFormat defaultFormat, List <HtmlElement> elements, HtmlParseOptions parseOptions) { if (parseOptions == null) { parseOptions = _defaultOptions; } _elements = elements; _textFormatStackTop = 0; _ignoreWhiteSpace = parseOptions.ignoreWhiteSpace; _format.CopyFrom(defaultFormat); _format.colorChanged = false; string text; XMLIterator.Begin(aSource, true); while (XMLIterator.NextTag()) { if (_skipText == 0) { text = XMLIterator.GetText(_ignoreWhiteSpace); if (text.Length > 0) { AppendText(text); } } switch (XMLIterator.tagName) { case "b": if (XMLIterator.tagType == XMLTagType.Start) { PushTextFormat(); _format.bold = true; } else { PopTextFormat(); } break; case "i": if (XMLIterator.tagType == XMLTagType.Start) { PushTextFormat(); _format.italic = true; } else { PopTextFormat(); } break; case "u": if (XMLIterator.tagType == XMLTagType.Start) { PushTextFormat(); _format.underline = true; } else { PopTextFormat(); } break; case "sub": { if (XMLIterator.tagType == XMLTagType.Start) { PushTextFormat(); _format.size = Mathf.CeilToInt(_format.size * 0.58f); _format.specialStyle = TextFormat.SpecialStyle.Subscript; } else { PopTextFormat(); } } break; case "sup": { if (XMLIterator.tagType == XMLTagType.Start) { PushTextFormat(); _format.size = Mathf.CeilToInt(_format.size * 0.58f); _format.specialStyle = TextFormat.SpecialStyle.Superscript; } else { PopTextFormat(); } } break; case "font": if (XMLIterator.tagType == XMLTagType.Start) { PushTextFormat(); _format.size = XMLIterator.GetAttributeInt("size", _format.size); string color = XMLIterator.GetAttribute("color"); if (color != null) { string[] parts = color.Split(','); if (parts.Length == 1) { _format.color = ToolSet.ConvertFromHtmlColor(color); _format.gradientColor = null; _format.colorChanged = true; } else { if (_format.gradientColor == null) { _format.gradientColor = new Color32[4]; } _format.gradientColor[0] = ToolSet.ConvertFromHtmlColor(parts[0]); _format.gradientColor[1] = ToolSet.ConvertFromHtmlColor(parts[1]); if (parts.Length > 2) { _format.gradientColor[2] = ToolSet.ConvertFromHtmlColor(parts[2]); if (parts.Length > 3) { _format.gradientColor[3] = ToolSet.ConvertFromHtmlColor(parts[3]); } else { _format.gradientColor[3] = _format.gradientColor[2]; } } else { _format.gradientColor[2] = _format.gradientColor[0]; _format.gradientColor[3] = _format.gradientColor[1]; } } } } else if (XMLIterator.tagType == XMLTagType.End) { PopTextFormat(); } break; case "br": AppendText("\n"); break; case "img": if (XMLIterator.tagType == XMLTagType.Start || XMLIterator.tagType == XMLTagType.Void) { HtmlElement element = HtmlElement.GetElement(HtmlElementType.Image); element.FetchAttributes(); element.name = element.GetString("name"); element.format.align = _format.align; _elements.Add(element); } break; case "a": if (XMLIterator.tagType == XMLTagType.Start) { PushTextFormat(); _format.underline = _format.underline | parseOptions.linkUnderline; if (!_format.colorChanged && parseOptions.linkColor.a != 0) { _format.color = parseOptions.linkColor; } HtmlElement element = HtmlElement.GetElement(HtmlElementType.Link); element.FetchAttributes(); element.name = element.GetString("name"); element.format.align = _format.align; _elements.Add(element); } else if (XMLIterator.tagType == XMLTagType.End) { PopTextFormat(); HtmlElement element = HtmlElement.GetElement(HtmlElementType.LinkEnd); _elements.Add(element); } break; case "input": { HtmlElement element = HtmlElement.GetElement(HtmlElementType.Input); element.FetchAttributes(); element.name = element.GetString("name"); element.format.CopyFrom(_format); _elements.Add(element); } break; case "select": { if (XMLIterator.tagType == XMLTagType.Start || XMLIterator.tagType == XMLTagType.Void) { HtmlElement element = HtmlElement.GetElement(HtmlElementType.Select); element.FetchAttributes(); if (XMLIterator.tagType == XMLTagType.Start) { sHelperList1.Clear(); sHelperList2.Clear(); while (XMLIterator.NextTag()) { if (XMLIterator.tagName == "select") { break; } if (XMLIterator.tagName == "option") { if (XMLIterator.tagType == XMLTagType.Start || XMLIterator.tagType == XMLTagType.Void) { sHelperList2.Add(XMLIterator.GetAttribute("value", string.Empty)); } else { sHelperList1.Add(XMLIterator.GetText()); } } } element.Set("items", sHelperList1.ToArray()); element.Set("values", sHelperList2.ToArray()); } element.name = element.GetString("name"); element.format.CopyFrom(_format); _elements.Add(element); } } break; case "p": if (XMLIterator.tagType == XMLTagType.Start) { PushTextFormat(); string align = XMLIterator.GetAttribute("align"); _format.align = FieldTypes.ParseAlign(align); if (!IsNewLine()) { AppendText("\n"); } } else if (XMLIterator.tagType == XMLTagType.End) { if (!IsNewLine()) { AppendText("\n"); } PopTextFormat(); } break; case "ui": case "div": case "li": if (!IsNewLine()) { AppendText("\n"); } break; case "html": case "body": //full html _ignoreWhiteSpace = true; break; case "head": case "style": case "script": case "form": if (XMLIterator.tagType == XMLTagType.Start) { _skipText++; } else if (XMLIterator.tagType == XMLTagType.End) { _skipText--; } break; } } if (_skipText == 0) { text = XMLIterator.GetText(_ignoreWhiteSpace); if (text.Length > 0) { AppendText(text); } } _elements = null; }
public HtmlParser() { _textFormatStack = new List <TextFormat2>(); _format = new TextFormat2(); _defaultOptions = new HtmlParseOptions(); }
void Create(TextField textField) { CreateGameObject("RichTextField"); this.opaque = true; onFocusIn = new EventListener(this, "onFocusIn"); onFocusOut = new EventListener(this, "onFocusOut"); onChanged = new EventListener(this, "onChanged"); htmlPageContext = HtmlPageContext.inst; htmlParseOptions = new HtmlParseOptions(); this.textField = textField; textField.richTextField = this; AddChild(textField); graphics = textField.graphics; }
public virtual void Parse(string aSource, TextFormat defaultFormat, List<HtmlElement> elements, HtmlParseOptions parseOptions) { if (parseOptions == null) parseOptions = _defaultOptions; _elements = elements; _textFormatStackTop = 0; _ignoreWhiteSpace = parseOptions.ignoreWhiteSpace; _format.CopyFrom(defaultFormat); _format.colorChanged = false; string text; XMLIterator.Begin(aSource, true); while (XMLIterator.NextTag()) { if (_skipText == 0) { text = XMLIterator.GetText(_ignoreWhiteSpace); if (text.Length > 0) AppendText(text); } switch (XMLIterator.tagName) { case "b": if (XMLIterator.tagType == XMLTagType.Start) { PushTextFormat(); _format.bold = true; } else PopTextFormat(); break; case "i": if (XMLIterator.tagType == XMLTagType.Start) { PushTextFormat(); _format.italic = true; } else PopTextFormat(); break; case "u": if (XMLIterator.tagType == XMLTagType.Start) { PushTextFormat(); _format.underline = true; } else PopTextFormat(); break; case "sub": break; case "sup": break; case "font": if (XMLIterator.tagType == XMLTagType.Start) { PushTextFormat(); _format.size = XMLIterator.GetAttributeInt("size", _format.size); string color = XMLIterator.GetAttribute("color"); if (color != null) { string[] parts = color.Split(','); if (parts.Length == 1) { _format.color = ToolSet.ConvertFromHtmlColor(color); _format.gradientColor = null; _format.colorChanged = true; } else { if (_format.gradientColor == null) _format.gradientColor = new Color32[4]; _format.gradientColor[0] = ToolSet.ConvertFromHtmlColor(parts[0]); _format.gradientColor[1] = ToolSet.ConvertFromHtmlColor(parts[1]); if (parts.Length > 2) { _format.gradientColor[2] = ToolSet.ConvertFromHtmlColor(parts[2]); if (parts.Length > 3) _format.gradientColor[3] = ToolSet.ConvertFromHtmlColor(parts[3]); else _format.gradientColor[3] = _format.gradientColor[2]; } else { _format.gradientColor[2] = _format.gradientColor[0]; _format.gradientColor[3] = _format.gradientColor[1]; } } } } else if (XMLIterator.tagType == XMLTagType.End) PopTextFormat(); break; case "br": AppendText("\n"); break; case "img": if (XMLIterator.tagType == XMLTagType.Start || XMLIterator.tagType == XMLTagType.Void) { HtmlElement element = HtmlElement.GetElement(HtmlElementType.Image); element.FetchAttributes(); element.name = element.GetString("name"); _elements.Add(element); } break; case "a": if (XMLIterator.tagType == XMLTagType.Start) { PushTextFormat(); _format.underline = _format.underline | parseOptions.linkUnderline; if (!_format.colorChanged && parseOptions.linkColor.a != 0) _format.color = parseOptions.linkColor; HtmlElement element = HtmlElement.GetElement(HtmlElementType.Link); element.FetchAttributes(); element.name = element.GetString("name"); _elements.Add(element); } else if (XMLIterator.tagType == XMLTagType.End) { PopTextFormat(); HtmlElement element = HtmlElement.GetElement(HtmlElementType.LinkEnd); _elements.Add(element); } break; case "input": { HtmlElement element = HtmlElement.GetElement(HtmlElementType.Input); element.FetchAttributes(); element.name = element.GetString("name"); element.format.CopyFrom(_format); _elements.Add(element); } break; case "select": { if (XMLIterator.tagType == XMLTagType.Start || XMLIterator.tagType == XMLTagType.Void) { HtmlElement element = HtmlElement.GetElement(HtmlElementType.Select); element.FetchAttributes(); if (XMLIterator.tagType == XMLTagType.Start) { sHelperList1.Clear(); sHelperList2.Clear(); while (XMLIterator.NextTag()) { if (XMLIterator.tagName == "select") break; if (XMLIterator.tagName == "option") { if (XMLIterator.tagType == XMLTagType.Start || XMLIterator.tagType == XMLTagType.Void) sHelperList2.Add(XMLIterator.GetAttribute("value", string.Empty)); else sHelperList1.Add(XMLIterator.GetText()); } } element.Set("items", sHelperList1.ToArray()); element.Set("values", sHelperList2.ToArray()); } element.name = element.GetString("name"); element.format.CopyFrom(_format); _elements.Add(element); } } break; case "p": case "ui": case "div": case "li": if (!IsNewLine()) AppendText("\n"); break; case "html": case "body": //full html _ignoreWhiteSpace = true; break; case "head": case "style": case "script": case "form": if (XMLIterator.tagType == XMLTagType.Start) _skipText++; else if (XMLIterator.tagType == XMLTagType.End) _skipText--; break; } } if (_skipText == 0) { text = XMLIterator.GetText(_ignoreWhiteSpace); if (text.Length > 0) AppendText(text); } _elements = null; }
public HtmlParser() { _textFormatStack = new List<TextFormat2>(); _format = new TextFormat2(); _defaultOptions = new HtmlParseOptions(); }