CuLib需求
目标
实现一个基于curses的高级调用包。
内容
基础
- 开发一个公共调用层,使之更通用一些,比curses提供的更高级一点,而且更符合中国人的习惯。象 curses的坐标是(y,x)有些不习惯。
事件处理
- 实现事件处理调用机制
- 实现基础事件影响对象(暂定BUI)
- 所有UI元素均要求从此对象(BUI)派生
窗口对象
- 窗口对象均为UI元素
- 可以响应事件
- 有继承关系
- 显示分为模态和非模态两种。模态为必须关闭才可以切换到其它窗口,而非模态为不需关系就可以切换到其它窗口
窗体(frame)
- 为基本UI元素,实现基本的字符录入、显示、定位
- 要实现stack式屏幕保存,即可以把窗口内的某个矩形型区域拷贝下来,当执行多次将保存维护成一个栈,恢复屏幕时按照栈的顺序恢复。(可以考虑所有需要保存恢复屏幕的处理都生成新的窗口)
- 可以有多种样式选择
- 窗体可以大于显示大小
- 有滚动条并可以指定是否显示
- 可以移动
- 可以改变大小
- 显示分为模态和非模态
菜单(menu)
- 支持多级菜单
- 菜单项有多种状态可以设定:禁止/允许、显示/不显示、检查/不检查
- 支持配置文件生成菜单
- 自动判断屏幕边界保证菜单显示完整
- 菜单支持动态修改
列表(list)
- 分为表头,表体
- 可定制样式
- 多列显示,并可以定制
- 支持行数据动态装入
快速模板
- 可以快速实现的,含大量说明注释的实用模板
- 简单编辑窗口
- 简单交互窗口
- 简单字符式 web 窗口
- 简单运行监控窗口
我们主要是做工具,不是做应用,我想这个界线要划分清楚。交互窗口,web窗口应该是属于应用的。监控窗口是怎么想的?不过上面可以做为我们的demo程序。-- limodou [2025-04-19 17:22:33]
- 对!就是Demo 的意思!可以作为 整体测试框架来先实现之!
使用什么样的项目管理方式? 微集成? -- ZoomQuiet
- 我想就是简单的迭代吧。 -- limodou