User Tools

Site Tools


class:ui:imainframe

IMainFrame

Inherited from XListener,

Inherited by NULL

Friend class NULL

Description

IMainFrame是XT框架的接口类,它负责监听来自程序底层的消息并对消息作出相应的反应。它提供的接口包括:获取文档;获取命令管理器;响应应用事件;启动命令;执行命令;响应错误信息等。

Public interface


virtual XDocument * getDocument(int index) = 0

  • function: 获取第index个文档
  • parameters:
    1. [i]int index: 文档序号
  • return value: 文档指针

virtual XDocument * getCurrentDocument() = 0

  • function: 获取当前文档
  • parameters: NULL
  • return value: 文档指针

virtual void setCurrentDocument(XDocument * doc) = 0

  • function: 设置当前文档
  • parameters:
    1. [i]XDocument * doc: 文档指针
  • return value: 无

virtual void closeDocument(XDocument * doc, bool bCloseDocWindow = true) = 0

  • function: 关闭文档
  • parameters:
    1. [i]XDocument * doc: 文档指针
    2. [i] bool bCloseDocWindow = true: 是否关闭对应的文档窗口
  • return value: 无

virtual XDocument * newDocument(const char * docType) = 0

  • function: 新建文档,文档对应的界面代理也会一同构建
  • parameters:
    1. [i]const char * docType: 文档类型字符串
  • return value: 新建的文档指针

virtual UIProxy * newInstance(const char * schemeName) = 0

  • function: 新建应用实例,应用实例包含文档和对应的界面代理,如实例名没有定义或者相关的动态库没有导入,新建实例会失败
  • parameters:
    1. [i]const char * schemeName: 实例名,该实例名必须在配置文件中已定义
  • return value: 新建实例的界面代理指针

virtual const char * getCurrentSchemeName() = 0

  • function: 获取当前文档所属的实例名
  • parameters: NULL
  • return value: 当前文档所属的实例名字符串

virtual const char * getClipboardText() = 0

  • function: 获取剪贴板字符串
  • parameters: NULL
  • return value: 剪贴板内容字符串

virtual XPicker * getPicker() = 0

  • function: 获取选择器
  • parameters: NULL
  • return value: 选择器指针

virtual void launchCommand(int cid,const CmdParam * param = 0) = 0

  • function: 启动ID为cid的命令,并将命令按照参数param初始化。
  • parameters:
    1. [i]int cid: 命令的内部整型ID,它需要由命令管理器通过命令名获取
    2. [i]const CmdParam * param = 0: 指定命令参数的初始值,如为0,使用命令的默认参数值
  • return value: 无

virtual void nextCommand(ulong cid = 0) = 0

  • function: 启动命令序列中的下一个命令
  • parameters:
    1. [i]ulong cid = 0: 指定下一个命令的ID,如为0,则执行命令序列的第一个命令
  • return value: 无

virtual CommandManager * getCommandManager() = 0

  • function: 获取命令管理器
  • parameters: NULL
  • return value: 命令管理器指针

virtual ICommandWindow * getCommandWindow() = 0

  • function: 获取命令对话框窗口指针
  • parameters: NULL
  • return value: 命令对话框窗口指针

virtual void onApplicationEvent(EventTypeID et, XWord param = XWord()) = 0

  • function: 同步响应应用事件
  • parameters:
    1. [i]EventTypeID et: 事件类型
    2. [i] XWord param : 事件参数
  • return value: 无

virtual bool runGPUCalculation(const char * gcmd, const void * gin, void * gout) = 0

  • function: 运行GPU计算程序
  • parameters:
    1. [i]const char * gcmd: GPU计算命令
    2. [i] const void * gin: GPU计算输入
    3. [i] void * gout: GPU计算输出
  • return value: 成功计算返回true,否则返回false

virtual void inform(const char * msg, bool bWarning = false) = 0

  • function: 向用户显示通知
  • parameters:
    1. [i]const char * msg: 通知内容
    2. [i] bool bWarning = false: 是否为警告
  • return value: 无

virtual void message(const char * info,…) = 0

  • function: 在消息对话框显示消息
  • parameters:
    1. [i]const char * info: 格式化消息字符串
    2. [i]…: 消息参数
  • return value: 无

virtual void error(ErrorCode e) = 0

  • function: 处理错误
  • parameters:
    1. [i]ErrorCode e: 错误代码
  • return value: 无

virtual RunMode getRunMode() = 0

  • function: 获取框架运行模式
  • parameters: NULL
  • return value: 框架运行模式

virtual int askQuestion(const char * title,const char * q, bool bEnableCancel) =0

  • function: 弹出问题对话框,让用户交互选择下一步选项(一般为是、否、取消)
  • parameters:
    1. [i]const char * title: 问题对话框标题
    2. [i]const char * q: 问题
    3. [i] bool bEnableCancel: 是否允许取消选项
  • return value: 返回用户的选择码(0对应是,1对应否,2对应取消)

virtual int monitorProcess(const char * exe, const char * param, const char * title = 0, bool bSilent = false, const char * workdir = 0) = 0

  • function: 启动一个新的进程执行可执行程序并显示进度条监控它的运行过程
  • parameters:
    1. [i]const char * exe: 可执行程序路径
    2. [i] const char * param: 可执行程序命令行参数
    3. [i] const char * title = 0: 进度条窗口标题
    4. [i] bool bSilent = false: 是否静默方式执行
    5. [i] const char * workdir = 0: 可执行程序执行时的工作目录
  • return value: 当程序正常执行结束,返回0;当程序被中断退出,返回73;当程序执行错误退出,返回错误码

virtual int startThread(const char * name, ThreadFunc func,XWord param, bool bAsync) = 0

  • function: 启动名称为name的线程,该线程执行函数func,参数为param
  • parameters:
    1. [i]const char * name: 线程名
    2. [i] ThreadFunc func: 线程要执行的函数
    3. [i]XWord param: 线程的输入参数
    4. [i] bool bAsync: 是否异步
  • return value: 成功启动返回0,否则返回非0值

virtual void quitThread(const char * name) = 0

  • function: 中止名为name的线程
  • parameters:
    1. [i]const char * name: 线程名
  • return value: 无

virtual bool isThreadRunning(const char * name) = 0

  • function: 判断名为name的线程是否在运行
  • parameters:
    1. [i]const char * name: 线程名
  • return value: 如线程在运行返回true,否则返回false

virtual int startThreadProcess(ThreadData * tdata, const char * exe, LabelVarSection * param, ProcessOutputFunc outputFunc) = 0

  • function: 在线程内部启动exe进程
  • parameters:
    1. [i]ThreadData * tdata: 线程上下文
    2. [i] const char * exe: 进程exe路径
    3. [i] LabelVarSection * param: 进程参数
    4. [i] ProcessOutputFunc outputFunc: 进程输出回调函数
  • return value: 成功启动返回0,否则返回错误码

virtual void notifyThreadEvent(ThreadData * tdata, EventTypeID et, XWord param = XWord(), bool bFlushImmediatly = false) = 0

  • function: 向线程事件序列添加事件消息
  • parameters:
    1. [i]ThreadData * tdata: 线程上下文
    2. [i] EventTypeID et: 事件类型
    3. [i] XWord param = XWord(): 事件参数
    4. [i] bool bFlushImmediatly = false) = 0: 是否即时发送
  • return value: 无

virtual void flushThreadEvents(ThreadData * tdata) = 0

  • function: 向线程发送事件队列中所有消息
  • parameters:
    1. [i]ThreadData * tdata: 线程上下文
  • return value: 无

virtual void setPickType(TypeID type) = 0

  • function: 设置选择器的选择对象类型
  • parameters:
    1. [i]TypeID type: 选择对象类型ID
  • return value: 无

virtual bool isDockVisible(TypeID dock) = 0

  • function: 判断窗口坞是否可见
  • parameters:
    1. [i]TypeID dock: 窗口坞类型
  • return value: 窗口坞可见返回true,否则返回false

virtual void loadModule(const char * modules) = 0

  • function: 载入模块
  • parameters:
    1. [i]const char * modules: 模块名,可导入多个模块,模块名之间以;分割
  • return value: 无

virtual ErrorCode executeScript(const char * script,const char * param, bool bCheckParam = false) = 0

  • function: 执行脚本
  • parameters:
    1. [i]const char * script: 命令字符串
    2. [i]const char * param: 参数字符串
    3. [i] bool bCheckParam = false: 是否检查参数
  • return value: 成功执行返回true,否则返回false

virtual bool executeCommand(ICommand * cmd) = 0

  • function: 执行命令
  • parameters:
    1. [i]ICommand * cmd: 命令指针
  • return value: 成功执行返回true,否则返回false

virtual ErrorCode executeBatch(const char * batch_file) = 0

  • function: 执行脚本文件
  • parameters:
    1. [i]const char * batch_file: 脚本文件名
  • return value: 返回错误码,如成功之下返回0

virtual void updateAction(ulong cid, bool bUpdateGroup = false, bool bUpdateEnable = false) = 0

  • function: 更新命令入口控件状态
  • parameters:
    1. [i]ulong cid: 入口控件所对应的命令ID
    2. [i] bool bUpdateGroup = false: 是否更新入口控件所属的组(如果已定义组)
    3. [i] bool bUpdateEnable = false: 是否检查更新可用/不可用
  • return value: 无

virtual void setActionEnable(ulong cid, bool bEnable) = 0

  • function: 设置ID为cid的命令所对应的入口控件是否可用
  • parameters:
    1. [i]ulong cid: 入口控件所对应的命令ID
    2. [i] bool bEnable: 是否可用
  • return value: 无

virtual void refreshView() = 0

  • function: 更新当前文档的所有视图
  • parameters: NULL
  • return value: 无

virtual void previewDialog(const char * xml) = 0

  • function: 预览对话框
  • parameters:
    1. [i]const char * xml: 对话框配置文件
  • return value: 无

virtual void updateTreeView(TreeNode * tItem, bool bRecursive = true) = 0

  • function: 更新对象树指定节点
  • parameters:
    1. [i]TreeNode * tItem: 对象树节点
    2. [i] bool bRecursive = true: 是否递归更新
  • return value: 无
class/ui/imainframe.txt · Last modified: 2022/11/20 10:35 (external edit)