using System; using System.Collections.Generic; using UILib; using UnityEngine; namespace XMainClient.UI.UICommon { internal class TabHandleBase : DlgBase, IDlgHandlerMgr where T : IXUIDlg, new() where V : DlgBehaviourBase { private Dictionary m_handles = new Dictionary(); protected XSysDefine m_select; public virtual void RefreshData() { DlgHandlerBase dlgHandlerBase; bool flag = this.m_handles.TryGetValue(this.m_select, out dlgHandlerBase) && dlgHandlerBase.IsVisible(); if (flag) { dlgHandlerBase.RefreshData(); } } protected void SetHandleVisible(XSysDefine define, bool isVisible) { DlgHandlerBase dlgHandlerBase; bool flag = this.m_handles.TryGetValue(define, out dlgHandlerBase); if (flag) { dlgHandlerBase.SetVisible(isVisible); if (isVisible) { this.m_select = define; } } } protected void RegisterHandler(XSysDefine define, GameObject g, bool show = false) where C : DlgHandlerBase, new() { bool flag = !this.m_handles.ContainsKey(define); if (flag) { C c = default(C); c = DlgHandlerBase.EnsureCreate(ref c, g, this, false); this.m_handles.Add(define, c); } } protected void RemoveHandler(XSysDefine define) { DlgHandlerBase dlgHandlerBase; bool flag = this.m_handles.TryGetValue(define, out dlgHandlerBase); if (flag) { DlgHandlerBase.EnsureUnload(ref dlgHandlerBase); this.m_handles.Remove(define); } } } }