/// <summary> /// Updates associated text label for the entry in the menu /// </summary> public virtual void UpdateText(bool isHighlighted, bool isDuplicating) { ITextBoard nameTB = Element.name.TextBoard, valueTB = Element.value.TextBoard, postTB = Element.postfix.TextBoard; IBlockMember blockMember = AssocMember; StringBuilder name = blockMember.Name, disp = blockMember.FormattedValue, status = blockMember.StatusText; GlyphFormat dupeCrossFormat, bodyFormat, valueFormat; if (PropertyOpen) { dupeCrossFormat = QuickActionMenu.selectedFormat; bodyFormat = QuickActionMenu.selectedFormat; valueFormat = QuickActionMenu.selectedFormat; } else { dupeCrossFormat = QuickActionMenu.dupeCrossFormat; bodyFormat = QuickActionMenu.bodyFormat; valueFormat = isHighlighted ? QuickActionMenu.highlightFormat : QuickActionMenu.valueFormat; } // Update Name nameTB.Clear(); if (isDuplicating && IsSelectedForDuplication) { nameTB.Append("+ ", dupeCrossFormat); } if (name != null) { textBuf.Clear(); textBuf.AppendSubstringMax(name, maxEntryCharCount); nameTB.Append(textBuf, bodyFormat); if (disp != null || status != null) { nameTB.Append(": ", bodyFormat); } } // Update Value if (!Element.value.InputOpen && !WaitingForChatInput) { valueTB.Clear(); if (disp != null) { var colorMember = AssocMember as IBlockNumericValue <Color>; valueTB.Append(disp, valueFormat); } } // Update Postfix postTB.Clear(); if (status != null) { postTB.Append(' ', bodyFormat); postTB.Append(status, bodyFormat); } }