72 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C#
		
	
	
	
| namespace SRDebugger.UI.Other
 | |
| {
 | |
|     using Services;
 | |
|     using SRF;
 | |
|     using UnityEngine;
 | |
|     using UnityEngine.UI;
 | |
| 
 | |
|     public class ConsoleTabQuickViewControl : SRMonoBehaviourEx
 | |
|     {
 | |
|         private const int Max = 1000;
 | |
|         private static readonly string MaxString = (Max - 1) + "+";
 | |
|         private int _prevErrorCount = -1;
 | |
|         private int _prevInfoCount = -1;
 | |
|         private int _prevWarningCount = -1;
 | |
| 
 | |
|         [Import] public IConsoleService ConsoleService;
 | |
| 
 | |
|         [RequiredField] public Text ErrorCountText;
 | |
| 
 | |
|         [RequiredField] public Text InfoCountText;
 | |
| 
 | |
|         [RequiredField] public Text WarningCountText;
 | |
| 
 | |
|         protected override void Awake()
 | |
|         {
 | |
|             base.Awake();
 | |
| 
 | |
|             ErrorCountText.text = "0";
 | |
|             WarningCountText.text = "0";
 | |
|             InfoCountText.text = "0";
 | |
|         }
 | |
| 
 | |
|         protected override void Update()
 | |
|         {
 | |
|             base.Update();
 | |
| 
 | |
|             if (ConsoleService == null)
 | |
|             {
 | |
|                 return;
 | |
|             }
 | |
| 
 | |
|             if (HasChanged(ConsoleService.ErrorCount, ref _prevErrorCount, Max))
 | |
|             {
 | |
|                 ErrorCountText.text = Internal.SRDebuggerUtil.GetNumberString(ConsoleService.ErrorCount, Max, MaxString);
 | |
|             }
 | |
| 
 | |
|             if (HasChanged(ConsoleService.WarningCount, ref _prevWarningCount, Max))
 | |
|             {
 | |
|                 WarningCountText.text = Internal.SRDebuggerUtil.GetNumberString(ConsoleService.WarningCount, Max,
 | |
|                     MaxString);
 | |
|             }
 | |
| 
 | |
|             if (HasChanged(ConsoleService.InfoCount, ref _prevInfoCount, Max))
 | |
|             {
 | |
|                 InfoCountText.text = Internal.SRDebuggerUtil.GetNumberString(ConsoleService.InfoCount, Max, MaxString);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         private static bool HasChanged(int newCount, ref int oldCount, int max)
 | |
|         {
 | |
|             var newCountClamped = Mathf.Clamp(newCount, 0, max);
 | |
|             var oldCountClamped = Mathf.Clamp(oldCount, 0, max);
 | |
| 
 | |
|             var hasChanged = newCountClamped != oldCountClamped;
 | |
| 
 | |
|             oldCount = newCount;
 | |
| 
 | |
|             return hasChanged;
 | |
|         }
 | |
|     }
 | |
| }
 |