//------------------------------------------------------------ // Game Framework // Copyright © 2013-2021 loyalsoft. All rights reserved. // Homepage: http://www.game7000.com/ // Feedback: http://www.game7000.com/ //------------------------------------------------------------ using GameFramework.ObjectPool; using GameFramework.Resource; using System; using System.Collections.Generic; namespace GameFramework.UI { /// /// 界面管理器接口。 /// public interface IUIManager { /// /// 获取界面组数量。 /// int UIGroupCount { get; } /// /// 获取或设置界面实例对象池自动释放可释放对象的间隔秒数。 /// float InstanceAutoReleaseInterval { get; set; } /// /// 获取或设置界面实例对象池的容量。 /// int InstanceCapacity { get; set; } /// /// 获取或设置界面实例对象池对象过期秒数。 /// float InstanceExpireTime { get; set; } /// /// 获取或设置界面实例对象池的优先级。 /// int InstancePriority { get; set; } /// /// 打开界面成功事件。 /// event EventHandler OpenUIFormSuccess; /// /// 打开界面失败事件。 /// event EventHandler OpenUIFormFailure; /// /// 打开界面更新事件。 /// event EventHandler OpenUIFormUpdate; /// /// 打开界面时加载依赖资源事件。 /// event EventHandler OpenUIFormDependencyAsset; /// /// 关闭界面完成事件。 /// event EventHandler CloseUIFormComplete; /// /// 设置对象池管理器。 /// /// 对象池管理器。 void SetObjectPoolManager(IObjectPoolManager objectPoolManager); /// /// 设置资源管理器。 /// /// 资源管理器。 void SetResourceManager(IResourceManager resourceManager); /// /// 设置界面辅助器。 /// /// 界面辅助器。 void SetUIFormHelper(IUIFormHelper uiFormHelper); /// /// 是否存在界面组。 /// /// 界面组名称。 /// 是否存在界面组。 bool HasUIGroup(string uiGroupName); /// /// 获取界面组。 /// /// 界面组名称。 /// 要获取的界面组。 IUIGroup GetUIGroup(string uiGroupName); /// /// 获取所有界面组。 /// /// 所有界面组。 IUIGroup[] GetAllUIGroups(); /// /// 获取所有界面组。 /// /// 所有界面组。 void GetAllUIGroups(List results); /// /// 增加界面组。 /// /// 界面组名称。 /// 界面组辅助器。 /// 是否增加界面组成功。 bool AddUIGroup(string uiGroupName, IUIGroupHelper uiGroupHelper); /// /// 增加界面组。 /// /// 界面组名称。 /// 界面组深度。 /// 界面组辅助器。 /// 是否增加界面组成功。 bool AddUIGroup(string uiGroupName, int uiGroupDepth, IUIGroupHelper uiGroupHelper); /// /// 是否存在界面。 /// /// 界面序列编号。 /// 是否存在界面。 bool HasUIForm(int serialId); /// /// 是否存在界面。 /// /// 界面资源名称。 /// 是否存在界面。 bool HasUIForm(string uiFormAssetName); /// /// 获取界面。 /// /// 界面序列编号。 /// 要获取的界面。 IUIForm GetUIForm(int serialId); /// /// 获取界面。 /// /// 界面资源名称。 /// 要获取的界面。 IUIForm GetUIForm(string uiFormAssetName); /// /// 获取界面。 /// /// 界面资源名称。 /// 要获取的界面。 IUIForm[] GetUIForms(string uiFormAssetName); /// /// 获取界面。 /// /// 界面资源名称。 /// 要获取的界面。 void GetUIForms(string uiFormAssetName, List results); /// /// 获取所有已加载的界面。 /// /// 所有已加载的界面。 IUIForm[] GetAllLoadedUIForms(); /// /// 获取所有已加载的界面。 /// /// 所有已加载的界面。 void GetAllLoadedUIForms(List results); /// /// 获取所有正在加载界面的序列编号。 /// /// 所有正在加载界面的序列编号。 int[] GetAllLoadingUIFormSerialIds(); /// /// 获取所有正在加载界面的序列编号。 /// /// 所有正在加载界面的序列编号。 void GetAllLoadingUIFormSerialIds(List results); /// /// 是否正在加载界面。 /// /// 界面序列编号。 /// 是否正在加载界面。 bool IsLoadingUIForm(int serialId); /// /// 是否正在加载界面。 /// /// 界面资源名称。 /// 是否正在加载界面。 bool IsLoadingUIForm(string uiFormAssetName); /// /// 是否是合法的界面。 /// /// 界面。 /// 界面是否合法。 bool IsValidUIForm(IUIForm uiForm); /// /// 打开界面。 /// /// 界面资源名称。 /// 界面组名称。 /// 界面的序列编号。 int OpenUIForm(string uiFormAssetName, string uiGroupName); /// /// 打开界面。 /// /// 界面资源名称。 /// 界面组名称。 /// 加载界面资源的优先级。 /// 界面的序列编号。 int OpenUIForm(string uiFormAssetName, string uiGroupName, int priority); /// /// 打开界面。 /// /// 界面资源名称。 /// 界面组名称。 /// 是否暂停被覆盖的界面。 /// 界面的序列编号。 int OpenUIForm(string uiFormAssetName, string uiGroupName, bool pauseCoveredUIForm); /// /// 打开界面。 /// /// 界面资源名称。 /// 界面组名称。 /// 用户自定义数据。 /// 界面的序列编号。 int OpenUIForm(string uiFormAssetName, string uiGroupName, object userData); /// /// 打开界面。 /// /// 界面资源名称。 /// 界面组名称。 /// 加载界面资源的优先级。 /// 是否暂停被覆盖的界面。 /// 界面的序列编号。 int OpenUIForm(string uiFormAssetName, string uiGroupName, int priority, bool pauseCoveredUIForm); /// /// 打开界面。 /// /// 界面资源名称。 /// 界面组名称。 /// 加载界面资源的优先级。 /// 用户自定义数据。 /// 界面的序列编号。 int OpenUIForm(string uiFormAssetName, string uiGroupName, int priority, object userData); /// /// 打开界面。 /// /// 界面资源名称。 /// 界面组名称。 /// 是否暂停被覆盖的界面。 /// 用户自定义数据。 /// 界面的序列编号。 int OpenUIForm(string uiFormAssetName, string uiGroupName, bool pauseCoveredUIForm, object userData); /// /// 打开界面。 /// /// 界面资源名称。 /// 界面组名称。 /// 加载界面资源的优先级。 /// 是否暂停被覆盖的界面。 /// 用户自定义数据。 /// 界面的序列编号。 int OpenUIForm(string uiFormAssetName, string uiGroupName, int priority, bool pauseCoveredUIForm, object userData); /// /// 关闭界面。 /// /// 要关闭界面的序列编号。 void CloseUIForm(int serialId); /// /// 关闭界面。 /// /// 要关闭界面的序列编号。 /// 用户自定义数据。 void CloseUIForm(int serialId, object userData); /// /// 关闭界面。 /// /// 要关闭的界面。 void CloseUIForm(IUIForm uiForm); /// /// 关闭界面。 /// /// 要关闭的界面。 /// 用户自定义数据。 void CloseUIForm(IUIForm uiForm, object userData); /// /// 关闭所有已加载的界面。 /// void CloseAllLoadedUIForms(); /// /// 关闭所有已加载的界面。 /// /// 用户自定义数据。 void CloseAllLoadedUIForms(object userData); /// /// 关闭所有正在加载的界面。 /// void CloseAllLoadingUIForms(); /// /// 激活界面。 /// /// 要激活的界面。 void RefocusUIForm(IUIForm uiForm); /// /// 激活界面。 /// /// 要激活的界面。 /// 用户自定义数据。 void RefocusUIForm(IUIForm uiForm, object userData); /// /// 设置界面实例是否被加锁。 /// /// 要设置是否被加锁的界面实例。 /// 界面实例是否被加锁。 void SetUIFormInstanceLocked(object uiFormInstance, bool locked); /// /// 设置界面实例的优先级。 /// /// 要设置优先级的界面实例。 /// 界面实例优先级。 void SetUIFormInstancePriority(object uiFormInstance, int priority); } }