Example #1
0
        //字符串网格控制
        public override bool HandleTextMesh(URichTextParseInfo info)
        {
            if (info.vertStartIndex < 0)
            {
                return(false);
            }

            int vertEndIndex   = GetVertEndIndex(info.vertStartIndex, endMsg);
            int vertStartIndex = info.vertStartIndex + preMsg.Length;


            //可以考虑用内存池,减少内存分配
            var output = new List <UIVertex>();

            vHelper.GetUIVertexStream(output);

            //绘制下划线
            vHelper.Clear();
            List <Rect> lineRects = richText.GetTextTiles(vertStartIndex, vertEndIndex, output);

            for (int i = 0; i < lineRects.Count; i++)
            {
                output.AddRange(URichTextUtil.GetUnderLineVerts(lineRects[i], vertEndIndex, richText.GetUnderLineInfo()));
            }
            //添加的顶点数组
            vHelper.AddUIVertexTriangleStream(output);

            info.urlHrefInfo.m_tagTextRects.AddRange(lineRects);

            info.urlHrefInfo.strHrefEvent = info.values[1].ToString();
            return(true);
        }
Example #2
0
 public static void Init()
 {
     if (_handler == null)
     {
         _handler = new URichTextHandler_URL();
         URichTextUtil.AddHandler(_handler);
     }
 }
Example #3
0
        public override string HandleText(ref int addTextCount, string text, int startIndex, int endIndex, int length, GroupCollection group)
        {
            string strColor = m_defaultURLColor;

            //如果有匹配到 color=的话取匹配到的颜色
            if (group.Count >= 2 && group[2].Length > 0)
            {
                strColor = group[2].Value.Remove(0, 1).ToString();
            }

            strColor = strColor.Insert(strColor.IndexOf("=") + 1, "#");

            string tmpPreMsg = string.Format(preMsg, strColor);

            text = URichTextUtil.ReplacePlaceHolder(tmpPreMsg, endMsg, text, startIndex, endIndex);

            return(text);
        }
Example #4
0
 //前期的字符串替换
 public override string HandleText(ref int addTextCount, string text, int startIndex, int endIndex, int length, GroupCollection group)
 {
     text = URichTextUtil.ReplacePlaceHolder(preMsg, endMsg, text, startIndex, endIndex);
     return(text);
 }
Example #5
0
 //前期的字符串替换
 public override string HandleText(ref int addTextCount, string text, int startIndex, int endIndex, int length, GroupCollection group)
 {
     text = URichTextUtil.ReplacePlaceHolder("<quad size=" + group[2].Value + " width=" + group[3].Value + " />", text, startIndex);
     return(text);
 }