void CalculateEmotionSpace(ref string text, out Vector2 LeftSideSpace, out int nNextLineNum, out bool needShow)
{
nNextLineNum = 0;
LeftSideSpace = Vector2.zero;
needShow = true;
if (null == m_Font)
{
m_Font = m_ChatText.font;
if (m_Font != null)
{
m_ChatTextHeight = m_Font.CalculatePrintedSize(" ", true, UIFont.SymbolStyle.None).y;
SPACE_WIDTH = m_Font.CalculatePrintedSize(" ", true, UIFont.SymbolStyle.Uncolored).x;
}
}
string striptext = NGUITools.StripSymbols(text);
int stripEmotionStart = striptext.IndexOf("[em=");
LeftSideSpace = m_Font.CalculatePrintedSize(striptext.Substring(0, stripEmotionStart), true, UIFont.SymbolStyle.None);
// float fEllipsisWidth = m_Font.CalculatePrintedSize("...", true, UIFont.SymbolStyle.None).x;
// if (LeftSideSpace.x + EMOTIONITEM_WIDTH > labelChatText.GetComponent<UIWidget>().width * MaxLines - fEllipsisWidth)
// {
// needShow = false;
// return;
// }
int nLineStart = 0;
for (int i = nLineStart + 1; i <= stripEmotionStart; i++)
{
float fChatWidth = m_Font.CalculatePrintedSize(striptext.Substring(nLineStart, i - nLineStart), true, UIFont.SymbolStyle.None).x;
if (i == stripEmotionStart)
{
if (fChatWidth > m_ChatText.width)
{
nNextLineNum += 1;
LeftSideSpace.x -= m_Font.CalculatePrintedSize(striptext.Substring(nLineStart, i - nLineStart - 1), true, UIFont.SymbolStyle.Uncolored).x;
nLineStart = i - 1;
}
else if (fChatWidth + SPACE_WIDTH > m_ChatText.width)
{
nNextLineNum += 1;
LeftSideSpace.x = 0;
}
}
else
{
if (fChatWidth > m_ChatText.width)
{
nNextLineNum += 1;
LeftSideSpace.x -= m_Font.CalculatePrintedSize(striptext.Substring(nLineStart, i - nLineStart - 1), true, UIFont.SymbolStyle.Uncolored).x;
nLineStart = i - 1;
}
}
}
}