GetString() public method

public GetString ( string attrName ) : string
attrName string
return string
Example #1
0
        public HtmlLink()
        {
            _shape = new SelectionShape();
            _shape.gameObject.name = "HtmlLink";

            _clickHandler = (EventContext context) =>
            {
                _owner.onClickLink.BubbleCall(_element.GetString("href"));
            };
            _rolloverHandler = (EventContext context) =>
            {
                context.CaptureTouch();
                if (_owner.htmlParseOptions.linkHoverBgColor.a > 0)
                {
                    _shape.color = _owner.htmlParseOptions.linkHoverBgColor;
                }
            };
            _rolloutHandler = () =>
            {
                if (_owner.htmlParseOptions.linkHoverBgColor.a > 0)
                {
                    _shape.color = _owner.htmlParseOptions.linkBgColor;
                }
            };
        }
Example #2
0
 static public int GetString(IntPtr l)
 {
     try {
         int argc = LuaDLL.lua_gettop(l);
         if (argc == 2)
         {
             FairyGUI.Utils.HtmlElement self = (FairyGUI.Utils.HtmlElement)checkSelf(l);
             System.String a1;
             checkType(l, 2, out a1);
             var ret = self.GetString(a1);
             pushValue(l, true);
             pushValue(l, ret);
             return(2);
         }
         else if (argc == 3)
         {
             FairyGUI.Utils.HtmlElement self = (FairyGUI.Utils.HtmlElement)checkSelf(l);
             System.String a1;
             checkType(l, 2, out a1);
             System.String a2;
             checkType(l, 3, out a2);
             var ret = self.GetString(a1, a2);
             pushValue(l, true);
             pushValue(l, ret);
             return(2);
         }
         pushValue(l, false);
         LuaDLL.lua_pushstring(l, "No matched override function to call");
         return(2);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }
Example #3
0
        public void Create(RichTextField owner, HtmlElement element)
        {
            _owner   = owner;
            _element = element;

            if (comboBox == null)
            {
                return;
            }

            int width  = element.GetInt("width", 0);
            int height = element.GetInt("height", 0);

            if (width == 0)
            {
                width = comboBox.sourceWidth;
            }
            if (height == 0)
            {
                height = comboBox.sourceHeight;
            }

            comboBox.SetSize(width, height);
            comboBox.items  = (string[])element.Get("items");
            comboBox.values = (string[])element.Get("values");
            comboBox.value  = element.GetString("value");
        }
Example #4
0
        public void Create(RichTextField owner, HtmlElement element)
        {
            _owner   = owner;
            _element = element;

            if (button == null)
            {
                return;
            }

            button.onClick.Add(_clickHandler);
            int width  = element.GetInt("width", 0);
            int height = element.GetInt("height", 0);

            if (width == 0)
            {
                width = button.sourceWidth;
            }
            if (height == 0)
            {
                height = button.sourceHeight;
            }

            button.SetSize(width, height);
            button.text = element.GetString("value");
        }
Example #5
0
        public void Create(RichTextField owner, HtmlElement element)
        {
            _owner = owner;
            _element = element;

            string type = element.GetString("type");
            if (type != null)
                type = type.ToLower();

            _hidden = type == "hidden";
            if (!_hidden)
            {
                int width = element.GetInt("width", 0);
                int height = element.GetInt("height", 0);
                _borderSize = element.GetInt("border", defaultBorderSize);
                Color borderColor = element.GetColor("border-color", defaultBorderColor);

                if (width == 0)
                {
                    width = element.space - _borderSize * 2;
                    if (width > _owner.width / 2 || width < 100)
                        width = (int)_owner.width / 2;
                }
                if (height == 0)
                    height = element.format.size + 10 + _borderSize * 2;

                textInput.textFormat = element.format;
                textInput.displayAsPassword = type == "password";
                textInput.SetSize(width - _borderSize * 2, height - _borderSize * 2);
                textInput.maxLength = element.GetInt("maxlength", int.MaxValue);
                _border.size = new Vector2(width, height);
                _border.DrawRect(_borderSize, borderColor, new Color(0, 0, 0, 0));
            }
            textInput.text = element.GetString("value");
        }
Example #6
0
        public void Create(RichTextField owner, HtmlElement element)
        {
            _owner   = owner;
            _element = element;

            string type = element.GetString("type");

            if (type != null)
            {
                type = type.ToLower();
            }

            _hidden = type == "hidden";
            if (!_hidden)
            {
                int width  = element.GetInt("width", 0);
                int height = element.GetInt("height", 0);
                _borderSize = element.GetInt("border", defaultBorderSize);
                Color borderColor = element.GetColor("border-color", defaultBorderColor);

                if (width == 0)
                {
                    width = element.space;
                    if (width > _owner.width / 2 || width < 100)
                    {
                        width = (int)_owner.width / 2;
                    }
                }
                if (height == 0)
                {
                    height = element.format.size + 10 + _borderSize * 2;
                }

                textInput.textFormat        = element.format;
                textInput.displayAsPassword = type == "password";
                textInput.SetSize(width - _borderSize * 2, height - _borderSize * 2);
                textInput.maxLength = element.GetInt("maxlength", int.MaxValue);

                _border.SetXY(-_borderSize, -_borderSize);
                _border.SetSize(width, height);
                _border.DrawRect(_borderSize, borderColor, new Color(0, 0, 0, 0));
            }
            textInput.text = element.GetString("value");
        }
        public virtual IHtmlObject CreateObject(RichTextField owner, HtmlElement element)
        {
            IHtmlObject ret = null;
            if (element.type == HtmlElementType.Image)
            {
                if (_imagePool.Count > 0 && Application.isPlaying)
                    ret = _imagePool.Pop();
                else
                    ret = new HtmlImage();
            }
            else if (element.type == HtmlElementType.Link)
            {
                if (_linkPool.Count > 0 && Application.isPlaying)
                    ret = _linkPool.Pop();
                else
                    ret = new HtmlLink();
            }
            else if (element.type == HtmlElementType.Input)
            {
                string type = element.GetString("type");
                if (type != null)
                    type = type.ToLower();
                if (type == "button" || type == "submit")
                {
                    if (_buttonPool.Count > 0 && Application.isPlaying)
                        ret = _buttonPool.Pop();
                    else
                        ret = new HtmlButton();
                }
                else
                {
                    if (_inputPool.Count > 0 && Application.isPlaying)
                        ret = _inputPool.Pop();
                    else
                        ret = new HtmlInput();
                }
            }
            else if (element.type == HtmlElementType.Select)
            {
                if (_selectPool.Count > 0 && Application.isPlaying)
                    ret = _selectPool.Pop();
                else
                    ret = new HtmlSelect();
            }

            if (ret != null)
            {
                ret.Create(owner, element);
                if (ret.displayObject != null)
                    ret.displayObject.home = owner.cachedTransform;
            }

            return ret;
        }
Example #8
0
        public void Create(RichTextField owner, HtmlElement element)
        {
            _owner   = owner;
            _element = element;

            int width  = element.GetInt("width", 0);
            int height = element.GetInt("height", 0);

            NTexture texture = owner.htmlPageContext.GetImageTexture(this);

            if (texture != null)
            {
                if (width == 0)
                {
                    width = texture.width;
                }
                if (height == 0)
                {
                    height = texture.height;
                }

                loader.SetSize(width, height);
                loader.texture   = texture;
                _externalTexture = true;
            }
            else
            {
                string src = element.GetString("src");
                if (src != null && (width == 0 || height == 0))
                {
                    PackageItem pi = UIPackage.GetItemByURL(src);
                    if (pi != null)
                    {
                        width  = pi.width;
                        height = pi.height;
                    }
                }

                if (width == 0)
                {
                    width = 5;
                }
                if (height == 0)
                {
                    height = 10;
                }

                loader.SetSize(width, height);
                loader.url       = src;
                _externalTexture = false;
            }
        }
Example #9
0
        public void Create(RichTextField owner, HtmlElement element)
        {
            _owner = owner;
            _element = element;

            int width = element.GetInt("width", 0);
            int height = element.GetInt("height", 0);

            NTexture texture = owner.htmlPageContext.GetImageTexture(this);
            if (texture != null)
            {
                if (width == 0)
                    width = texture.width;
                if (height == 0)
                    height = texture.height;

                loader.SetSize(width, height);
                loader.texture = texture;
                _externalTexture = true;

            }
            else
            {
                string src = element.GetString("src");
                if (src != null && (width == 0 || height == 0))
                {
                    PackageItem pi = UIPackage.GetItemByURL(src);
                    if (pi != null)
                    {
                        width = pi.width;
                        height = pi.height;
                    }
                }

                if (width == 0)
                    width = 5;
                if (height == 0)
                    height = 10;

                loader.SetSize(width, height);
                loader.url = src;
                _externalTexture = false;
            }
        }
Example #10
0
        public void Create(RichTextField owner, HtmlElement element)
        {
            _owner   = owner;
            _element = element;

            if (comboBox == null)
            {
                return;
            }

            comboBox.onChanged.Add(_changeHandler);

            int width  = element.GetInt("width", comboBox.sourceWidth);
            int height = element.GetInt("height", comboBox.sourceHeight);

            comboBox.SetSize(width, height);
            comboBox.items  = (string[])element.Get("items");
            comboBox.values = (string[])element.Get("values");
            comboBox.value  = element.GetString("value");
        }
Example #11
0
 public HtmlLink()
 {
     shape         = new Shape();
     _clickHandler = (EventContext context) =>
     {
         _owner.onClickLink.Call(_element.GetString("href"));
     };
     _rolloverHandler = (EventContext context) =>
     {
         context.CaptureTouch();
         if (_owner.htmlParseOptions.linkHoverBgColor.a > 0)
         {
             shape.graphics.Tint(_owner.htmlParseOptions.linkHoverBgColor);
         }
     };
     _rolloutHandler = () =>
     {
         if (_owner.htmlParseOptions.linkBgColor.a > 0)
         {
             shape.graphics.Tint(_owner.htmlParseOptions.linkBgColor);
         }
     };
 }
Example #12
0
        public HtmlLink()
        {
            _shape = new SelectionShape();

            _clickHandler = (EventContext context) =>
            {
                _owner.BubbleEvent("onClickLink", _element.GetString("href"));
            };
            _rolloverHandler = (EventContext context) =>
            {
                if (_owner.htmlParseOptions.linkHoverBgColor.A > 0)
                {
                    _shape.color = _owner.htmlParseOptions.linkHoverBgColor;
                }
            };
            _rolloutHandler = () =>
            {
                if (_owner.htmlParseOptions.linkHoverBgColor.A > 0)
                {
                    _shape.color = _owner.htmlParseOptions.linkBgColor;
                }
            };
        }
Example #13
0
        virtual public IHtmlObject CreateObject(RichTextField owner, HtmlElement element)
        {
            IHtmlObject ret = null;

            if (element.type == HtmlElementType.Image)
            {
                if (_imagePool.Count > 0)
                {
                    ret = _imagePool.Pop();
                }
                else
                {
                    ret = new HtmlImage();
                }
            }
            else if (element.type == HtmlElementType.Link)
            {
                if (_linkPool.Count > 0)
                {
                    ret = _linkPool.Pop();
                }
                else
                {
                    ret = new HtmlLink();
                }
            }
            else if (element.type == HtmlElementType.Input)
            {
                string type = element.GetString("type");
                if (type != null)
                {
                    type = type.ToLower();
                }
                if (type == "button" || type == "submit")
                {
                    if (_buttonPool.Count > 0)
                    {
                        ret = _buttonPool.Pop();
                    }
                    else
                    {
                        ret = new HtmlButton();
                    }
                }
                else
                {
                    if (_inputPool.Count > 0)
                    {
                        ret = _inputPool.Pop();
                    }
                    else
                    {
                        ret = new HtmlInput();
                    }
                }
            }
            else if (element.type == HtmlElementType.Select)
            {
                if (_selectPool.Count > 0)
                {
                    ret = _selectPool.Pop();
                }
                else
                {
                    ret = new HtmlSelect();
                }
            }

            if (ret != null)
            {
                ret.Create(owner, element);
                if (ret.displayObject != null)
                {
                    ret.displayObject.home = owner.cachedTransform;
                }
            }

            return(ret);
        }
        public void Create(RichTextField owner, HtmlElement element)
        {
            _owner = owner;
            _element = element;

            if (button == null)
                return;

            button.onClick.Add(_clickHandler);
            int width = element.GetInt("width", 0);
            int height = element.GetInt("height", 0);

            if (width == 0)
                width = button.sourceWidth;
            if (height == 0)
                height = button.sourceHeight;

            button.SetSize(width, height);
            button.text = element.GetString("value");
        }
Example #15
0
        virtual public IHtmlObject CreateObject(RichTextField owner, HtmlElement element)
        {
            IHtmlObject ret = null;

            if (element.type == HtmlElementType.Image)
            {
                if (_imagePool.Count > 0 && Application.isPlaying)
                {
                    ret = _imagePool.Pop();
                }
                else
                {
                    ret = new HtmlImage();
                }
            }
            else if (element.type == HtmlElementType.Input)
            {
                string type = element.GetString("type");
                if (type != null)
                {
                    type = type.ToLower();
                }
                if (type == "button" || type == "submit")
                {
                    if (_buttonPool.Count > 0 && Application.isPlaying)
                    {
                        ret = _buttonPool.Pop();
                    }
                    else
                    {
                        ret = new HtmlButton();
                    }
                }
                else
                {
                    if (_inputPool.Count > 0 && Application.isPlaying)
                    {
                        ret = _inputPool.Pop();
                    }
                    else
                    {
                        ret = new HtmlInput();
                    }
                }
            }
            else if (element.type == HtmlElementType.Select)
            {
                if (_selectPool.Count > 0 && Application.isPlaying)
                {
                    ret = _selectPool.Pop();
                }
                else
                {
                    ret = new HtmlSelect();
                }
            }

            if (ret != null)
            {
                ret.Create(owner, element);
            }

            return(ret);
        }
        virtual public IHtmlObject CreateObject(RichTextField owner, HtmlElement element)
        {
            IHtmlObject ret      = null;
            bool        fromPool = false;

            if (element.type == HtmlElementType.Image)
            {
                if (_imagePool.Count > 0 && _poolManager != null)
                {
                    ret      = _imagePool.Pop();
                    fromPool = true;
                }
                else
                {
                    ret = new HtmlImage();
                }
            }
            else if (element.type == HtmlElementType.Link)
            {
                if (_linkPool.Count > 0 && _poolManager != null)
                {
                    ret      = _linkPool.Pop();
                    fromPool = true;
                }
                else
                {
                    ret = new HtmlLink();
                }
            }
            else if (element.type == HtmlElementType.Input)
            {
                string type = element.GetString("type");
                if (type != null)
                {
                    type = type.ToLower();
                }
                if (type == "button" || type == "submit")
                {
                    if (_buttonPool.Count > 0 && _poolManager != null)
                    {
                        ret      = _buttonPool.Pop();
                        fromPool = true;
                    }
                    else
                    {
                        ret = new HtmlButton();
                    }
                }
                else
                {
                    if (_inputPool.Count > 0 && _poolManager != null)
                    {
                        ret      = _inputPool.Pop();
                        fromPool = true;
                    }
                    else
                    {
                        ret = new HtmlInput();
                    }
                }
            }
            else if (element.type == HtmlElementType.Select)
            {
                if (_selectPool.Count > 0 && _poolManager != null)
                {
                    ret      = _selectPool.Pop();
                    fromPool = true;
                }
                else
                {
                    ret = new HtmlSelect();
                }
            }

            //Debug.Log("from=" + fromPool);
            if (ret != null)
            {
                //可能已经被GameObject tree deleted了,不再使用
                if (fromPool && ret.displayObject != null && ret.displayObject.isDisposed)
                {
                    ret.Dispose();
                    return(CreateObject(owner, element));
                }
                ret.Create(owner, element);
                if (ret.displayObject != null)
                {
                    ret.displayObject.home = owner.cachedTransform;
                }
            }

            return(ret);
        }
Example #17
0
        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 void Create(RichTextField owner, HtmlElement element)
        {
            _owner = owner;
            _element = element;

            if (comboBox == null)
                return;

            comboBox.onChanged.Add(_changeHandler);

            int width = element.GetInt("width", 0);
            int height = element.GetInt("height", 0);

            if (width == 0)
                width = comboBox.sourceWidth;
            if (height == 0)
                height = comboBox.sourceHeight;

            comboBox.SetSize(width, height);
            comboBox.items = (string[])element.Get("items");
            comboBox.values = (string[])element.Get("values");
            comboBox.value = element.GetString("value");
        }