/// <summary> /// Initializes text widget subclass with default values from widget template. /// </summary> /// <param name="context">Widget context</param> /// <param name="viewDesignPrefab">Prefab for icon views</param> public new void Init(RosJsonMessage context, GameObject viewDesignPrefab) { color = WidgetUtility.BytesToColor(context.textColor); fontSize = context.textFontSize; TextWidgetTemplate incomingMessageTemplate = new TextWidgetTemplate(context.textMessage, WidgetUtility.BytesToColor(context.textColor), context.textFontSize); currentlyDisplayedMessage = incomingMessageTemplate; base.Init(context, viewDesignPrefab); }
/// <summary> /// Change message in view according to template. Use default values if not specified in template. /// </summary> /// <param name="incomingMessageTemplate"></param> private void changeDisplayedMessage(TextWidgetTemplate incomingMessageTemplate) { if (incomingMessageTemplate.messageToDisplay.Equals("")) { return; } if (incomingMessageTemplate.textColor == null) { incomingMessageTemplate.textColor = color; } if (incomingMessageTemplate.textFontSize == 0) { incomingMessageTemplate.textFontSize = fontSize; } currentlyDisplayedMessage = incomingMessageTemplate; if (view != null) { ((TextView)view).ChangeMessage(incomingMessageTemplate); } }
/// <summary> /// Change message. /// </summary> /// <param name="incomingMessageTemplate"></param> public void ChangeMessage(TextWidgetTemplate incomingMessageTemplate) { textMeshPro.text = incomingMessageTemplate.messageToDisplay; textMeshPro.color = incomingMessageTemplate.textColor; textMeshPro.fontSize = incomingMessageTemplate.textFontSize; }
/// <summary> /// Process new incoming ros message. /// </summary> /// <param name="rosMessage"></param> public override void ProcessRosMessage(RosJsonMessage rosMessage) { TextWidgetTemplate incomingMessageTemplate = new TextWidgetTemplate(rosMessage.textMessage, WidgetUtility.BytesToColor(rosMessage.textColor), rosMessage.textFontSize); changeDisplayedMessage(incomingMessageTemplate); }