项目

一般

简介

新增功能 #32

增加按照ribbon配置文件生成所有Command文件

王 绪伦大约一年 之前添加. 更新于 10 个月 之前.

状态:
已解决
优先级:
普通
指派给:
开始日期:
2024-03-12
计划完成日期:
% 完成:

100%

预期时间:

描述

1. 启动功能对话框,用户浏览选中ribbon文件,指定输出目录,指定获取文件标识的函数名(比如输入框直接输入“Document_Demo()”);
2. 根据ribbon文件中所有cid="<dir>/<name>.xml"形式的action,按照Command模板在指定目录下生成对应的Command文件,Command的文件标识按Document_Demo()获取,命令的标识符为<name>,命令类为Cmd<name>;
3. initWindow()函数应按照cid指定的路径给出对话框配置文件的路径;
void Cmd<name>::initWindow() {
m_pDlg->layoutBegin();
m_pDlg->loadFromXml(GetResourceFileDirPath("uisetting", "<dir>/<name>.xml"));
m_pDlg->layoutEnd();
}
4. CommandType getType() 统一返回Command_Dialog;
5. 命令的参数统一按照CmdParam作为成员变量给出:
CmdParam m_Param;
6. 其他必须包含的函数包括:
void onDataExchange(const char * diagXml);
bool checkContext();
void onControlEvent(const char * ctrlName, TypeID event = Event_Any);
bool checkContextParam(const TreeNode * targetNode, const TreeNode * fromNode = 0);
void setContextParam(const TreeNode * targetNode, const TreeNode * fromNode = 0);
ErrorCode execute();
const char * getName() const;
void setParam(const CmdParam *param);
CmdParam * getParam() { return &m_oParam; }
void exchangeScript(ParamList * param);
CommandType getType() { return Command_Dialog; }
void updateFrame();
void setEditItem(const XItem * pi);


文件

demo_ribbon.xml (386 Bytes) demo_ribbon.xml 示例ribbon配置文件 王 绪伦, 2024-03-12 14:23
cmd.png (113 KB) cmd.png 王 绪伦, 2024-07-16 16:24
cmd2.png (29.7 KB) cmd2.png 王 绪伦, 2024-07-16 16:56

导出 Atom PDF