//------------------------------------------------------------
// 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);
}
}