using UI.Common; using FairyGUI; using System.Collections.Generic; using UnityEngine; using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; namespace GFGGame { public class LogView : BaseWindow { private UI_LogUI _ui; public override void Dispose() { UI_ListLogItem.ClearProxy(); base.Dispose(); } protected override void OnInit() { base.OnInit(); _ui = UI_LogUI.Create(); this.viewCom = _ui.target; this.viewCom.Center(); this.modal = true; _ui.m_listLog.itemRenderer = RenderListLogItem; _ui.m_listLog.onClickItem.Add(OnClickItem); _ui.m_c1.onChanged.Add(this.OnChangeC1); _ui.m_btnClear.onClick.Add(this.OnClickBtnClear); _ui.m_btnClose.onClick.Add(this.Hide); } protected override void OnShown() { base.OnShown(); _ui.m_c1.selectedIndex = 2; } private void RenderListLogItem(int index, GObject obj) { UI_ListLogItem item = UI_ListLogItem.Proxy(obj); string[] msg = (_ui.m_listLog.data as List)[index].Split('@'); item.m_txtLog.text = StringUtil.GetColorText(msg[1], msg[0] == "error" ? "#FF0000" : "#8F6129"); item.target.height = item.m_txtLog.height; UI_ListLogItem.ProxyEnd(); } private void OnChangeC1() { _ui.m_listLog.data = this.GetMsgList(_ui.m_c1.selectedIndex); _ui.m_listLog.numItems = (_ui.m_listLog.data as List).Count; if (_ui.m_listLog.numItems > 0) _ui.m_listLog.ScrollToView(_ui.m_listLog.numItems - 1); } private List GetMsgList(int index) { List list = new List(); if (index == 0 && LogController.Instance.msgDic.ContainsKey(LogController._all) == true) { list = LogController.Instance.msgDic[LogController._all]; } else if (index == 1 && LogController.Instance.msgDic.ContainsKey(LogController._log) == true) { list = LogController.Instance.msgDic[LogController._log]; } else if (index == 2 && LogController.Instance.msgDic.ContainsKey(LogController._error) == true) { list = LogController.Instance.msgDic[LogController._error]; } return list; } private void OnClickBtnClear() { int index = _ui.m_c1.selectedIndex; if (index == 0 && LogController.Instance.msgDic.ContainsKey(LogController._all) == true) { LogController.Instance.msgDic[LogController._all].Clear(); } else if (index == 1 && LogController.Instance.msgDic.ContainsKey(LogController._log) == true) { LogController.Instance.msgDic[LogController._log].Clear(); } else if (index == 2 && LogController.Instance.msgDic.ContainsKey(LogController._error) == true) { LogController.Instance.msgDic[LogController._error].Clear(); } this.OnChangeC1(); } private void OnClickItem(EventContext context) { UI_ListLogItem item = UI_ListLogItem.Proxy(context.data as GObject); GUIUtility.systemCopyBuffer = item.m_txtLog.text; } protected override void OnHide() { base.OnHide(); _ui.m_c1.selectedIndex = -1; } } }