public Status(JsonNode jnNode) : base(jnNode) { m_jnNode = jnNode; m_lsReplyNames = new List <string>(); if (m_jnNode.ContainsKey("text") && m_jnNode["text"].IsString()) { JsonNode jnEntities = Entities(); List <JsonObject> ljoUrls = null; if (jnEntities != null && jnEntities.ContainsKey("urls") && jnEntities["urls"].IsList()) { ljoUrls = jnEntities["urls"].ToList(); } m_stStatusText = StatusText.FromString(RemoveRT(m_jnNode["text"].ToString()), ljoUrls); m_bIsReply = (m_stStatusText.Words.Count > 1) && (m_stStatusText.Words[0].Type == StatusTextElement.StatusTextElementType.ScreenName); m_bIsRetweet = (m_jnNode.ContainsKey("retweeted_status")) || (m_stStatusText.Words.Count > 0) && (m_stStatusText.Words[0].Text.Trim() == "RT"); for (int i = 0; i < m_stStatusText.Words.Count; i++) { if (m_stStatusText.Words[i].Type == StatusTextElement.StatusTextElementType.ScreenName) { m_lsReplyNames.Add(m_stStatusText.Words[i].Text); } else { break; } } } }
private void UpdateText(string sNewText) { if (!m_bAlreadyUpdating) { m_bAlreadyUpdating = true; int iStart = rtbTextBox.SelectionStart; m_stStatusText = StatusText.FromString(sNewText); rtbTextBox.Rtf = m_stStatusText.ToRTF(m_fntFont); rtbTextBox.SelectionStart = iStart; m_bAlreadyUpdating = false; } }