import { IObjRef } from "soui4/IObjRef"; export class IApplication extends IObjRef{ /** * @brief 获取当前app的hModule * @return HMODULE--当前app的hModule */ GetModule() :number; /** * @brief 从指定的ResProvider里加载系统资源 * @param pResProvider 提供系统资源的资源包 * @return UINT 0-成功,其它-失败 */ LoadSystemNamedResource(pResProvider:IResProvider) :number; /** * @brief 获取翻译接口 * @return ITranslatorMgr *--翻译接口 */ GetTranslator() :ITranslatorMgr; /** * @brief 设置翻译接口 * @param pTrans -- 翻译接口 * @return void * @remark 翻译接口可以通过加载翻译模块来创建 */ SetTranslator(pTrans:ITranslatorMgr) :void; /** * @brief 获取ToolTip类厂 * @return IToolTipFactory *--ToolTip类厂 */ GetToolTipFactory() :IToolTipFactory; /** * @brief 设置tooltip类厂 * @param IToolTipFactory * pToolTipFac -- tooltip类厂 * @return void * @remark 通过实现tooltip类厂可以自定义tooltip的显示效果 */ SetToolTipFactory(pToolTipFac:IToolTipFactory):void; /** * @brief 设定MsgLoop类厂 * @param IMsgLoopFactory * pMsgLoopFac -- MsgLoop类厂 * @return BOOL TRUE-成功 */ SetMsgLoopFactory(pMsgLoopFac:IMsgLoopFactory):boolean; /** * @brief 获取当前的MsgLoop类厂 * @return IMsgLoopFactory *--MsgLoop类厂 */ GetMsgLoopFactory() :IMsgLoopFactory; /** * @brief 设置日志输出模块 * @param ILog4zManager *pLogMgr --日志输出模块 * @return */ SetLogManager(pLogMgr:ILogMgr) :void; /** * @brief 获取日志输出模块 * @return ILog4zManager *--日志输出模块 */ GetLogManager() :ILogMgr; /** * @brief 设置属性持久久类厂 * @param IAttrStorageFactory* pAttrStorageFactory --属性持久久类厂 * @remark * 实现该接口并设置给SApp,可以保存SObject通过SetAttribute设置的属性,在GetAttribute时提供数据 */ SetAttrStorageFactory(pAttrStorageFactory:IAttrStorageFactory) :void; /** * @brief 获取属性持久久类厂 * @return IAttrStorageFactory *--属性持久久类厂 */ GetAttrStorageFactory() :IAttrStorageFactory; /** * @brief 进入消息循环运行程序 * @param HWND hMainWnd -- 主窗口句柄 * @return int -- 程序退出的返回值 */ Run(hMainWnd:HWND):number; /** * @brief 退出消息循环 * @return void * @param int nCode -- thread quit code * @remark 调用PostQuitMessage */ Quit(nCode:number) :void; /** * @brief 获取程序主窗口 * @return HWND--在Run方法中设定的窗口 */ GetMainWnd() :number; /** * @brief 将当前UI线程的msgLoop保存到SApp中 * @param IMessageLoop *pMsgLoop -- msgLoop * @param BOOL bReplace -- 替换标志 * @return BOOL TRUE-成功 * @remark 在多UI线程程序中,需要将工作线程的msgLoop交给SApp管理 */ AddMsgLoop(pMsgLoop:IMessageLoop,bReplace:boolean) :boolean; /** * @brief 从SApp中删除当前线程的msgLoop * @return BOOL TRUE-成功 */ RemoveMsgLoop() :boolean; /** * @brief 获取指定UI线程的msgLoop * @param DWORD dwThreadID--线程ID * @return IMessageLoop *--指定线程的msgloop */ GetMsgLoop(dwThreadID:number):IMessageLoop; /** * @brief 获取IResProviderMgr接口 * @return IResProviderMgr *--IResProviderMgr接口 */ GetResProviderMgr() :IResProviderMgr; /** * GetRealWndHander * @brief 获得RealWndHander * @return IRealWndHandler * -- RealWndHander * Describe */ GetRealWndHander() :IRealWndHandler; /** * SetRealWndHandler * @brief 设置RealWnd处理接口 * @param IRealWndHandler * pRealHandler -- RealWnd处理接口 * @return void * Describe */ SetRealWndHandler(pRealHandler:IRealWndHandler) :void; /** * GetRenderFactory * @brief 获得当前的渲染模块 * @return IRenderFactory * 渲染模块指针 * * Describe */ GetRenderFactory():IRenderFactory; /** * SetScriptModule * @brief 设置SOUI中使用的脚本模块类厂 * @param IScriptFactory *pScriptModule -- 脚本模块类厂 * @return void * * Describe */ SetScriptFactory(pScriptModule:IScriptFactory) :void; /** * @brief 初始化XML资源的name-id映射表 * @param pNames const LPCWSTR *--控件名表 * @param nIds const int *--控件ID表 * @param nCount int--控件数据 * @return * @remark 数据表由residbuilder工具自动生成 */ InitXmlNamedID(pNames:string, nIds:Uint32Array, nCount:number) :void; /** * @brief 从资源ID加载XML * @param strResId LPCTSTR--资源ID,为type:name格式 * @return IXmlDoc *--XML Doc * @remark 使用完成后调用Rlease释放 */ LoadXmlDocment(strResId:string) :IXmlDoc; /** * @brief 从资源加载动画资源 * @param strResId LPCTSTR--动画资源ID * @return IAnimation* 动画对象 * @remark 使用完成后调用Rlease释放 */ LoadAnimation(strResId:string) :IAnimation; /** * @brief 从资源加载数值动画资源 * @param strResId LPCTSTR--动画资源ID * @return IValueAnimator* 数值动画对象 * @remark 使用完成后调用Rlease释放 */ LoadValueAnimator(strResId:string) :IValueAnimator; /** * @brief 从资源加载图片 * @param strResId LPCTSTR--图片资源ID * @return IBitmapS* 图片对象 * @remark 使用完成后调用Rlease释放 */ LoadImage(strResId:string) :IBitmapS; /** * @brief 从资源加载翻译包 * @param strResId LPCTSTR--翻译包资源ID * @return ITranslator* 翻译包对象 * @remark 使用完成后调用Rlease释放 */ LoadTranslator(strResId:string) :ITranslator; /** * @brief 使用翻译包 * @param ITranslator * trModule--翻译包 * @return BOOL, TRUE--成功 */ InstallTranslator(trModule:ITranslator) :boolean; /** * @brief 卸载翻译包 * @param REFGUID langId--翻译包ID * @return BOOL, TRUE--成功 */ UnnstallTranslator(langId:REFGUID ) :boolean; /** * @brief 启用NotifyCenter * @param BOOL bEnable -- 是否启用 * @param int interval -- 处理事件时间间隔 * @return void */ EnableNotifyCenter(bEnable:boolean ,interval:number) :void; /** * @brief 设置默认字体 * @param LPCWSTR pszFontInfo -- 字体描述, 参考fontpool * @return void */ SetDefaultFontInfo(pszFontInfo:string) :void; /** * @brief 创建TaskLoop对象 * @param int nCount -- taskloop对象数量 * @param Priority priority -- taskloop的线程优先级 * @param BOOL bAutoStart -- 自动启动标志 * @return BOOL, TRUE--成功 */ CreateTaskLoop(nCount:number ,priority:Priority,bAutoStart:boolean):boolean; /** * @brief 获取TaskLoop对象 * @param int iTaskLoop -- taskloop索引 * @return ITaskLoop * -- taskloop接口,失败返回NULL */ GetTaskLoop(iTaskLoop:number) :ITaskLoop; }